diff --git a/layui_exts/dynamicCondition/dcConfig.js b/layui_exts/dynamicCondition/dcConfig.js index 88eb6eb5864db0aa703e350dea63cba0b3cda7da..0d733fe62f1e6c31cf921ab627f9cf3dbde46dbd 100644 --- a/layui_exts/dynamicCondition/dcConfig.js +++ b/layui_exts/dynamicCondition/dcConfig.js @@ -25,7 +25,8 @@ layui.define(['jquery'], function (exports) { unpopupShowAddBtn: false, //非弹窗模式下,是否显示新增条件按钮。之前版本默认是不显示的 //可以自定义操作选项,特例between会创建2个编辑控件;empty和notempty不会创建编辑控件 opsMap: {"greater_than":"大于","less_than":"小于"},//新增操作选项, - opsList:["equal","like","between","unequal","empty","notempty"],//操作选项列表 + // opsList:["equal","like","between","unequal","empty","notempty"],//操作选项列表 + opsList: ["equal","gt","egt","lt","elt","like","unlike","between","notbetween","unequal","empty","notempty","isnull","notnull"], extraParams:[],//请求时会附带
  • 标签定义的额外的参数 extendBtns:function(btnDivJq, instance){ //下面可以添加扩展按钮 diff --git a/layui_exts/dynamicCondition/dynamicCondition.js b/layui_exts/dynamicCondition/dynamicCondition.js index 89ef9e7690e22da0aea5d5ce47a818d0b7322e03..3bee218eeefd7f324c4b0a827fe81d05abaa4436 100644 --- a/layui_exts/dynamicCondition/dynamicCondition.js +++ b/layui_exts/dynamicCondition/dynamicCondition.js @@ -55,7 +55,7 @@ layui.extend({ ,requestData:{} ,hideCondition:[] //隐藏的查询条件,即buildRequestData时会添加进去提交给服务器,但界面上不显示,用户不知道这些条件(或者知道但这些条件不需要改变) ,cacheCondition:[] //缓存查询条件 - ,conditionContainerId:(Math.random()+"").substr(2)//随机日期id + ,conditionContainerId: Math.random().toString().substr(2)//随机日期id ,conditionLogicalOperatorWidth:_config.conditionLogicalOperatorWidth || 60 //逻辑操作列默认宽度 ,conditionFieldWidth:_config.conditionFieldWidth || 120 //字段列默认宽度 ,conditionOptionWidth:_config.conditionOptionWidth || 100//操作列列默认宽度 @@ -83,6 +83,7 @@ layui.extend({ } /**根据字段名称获取对应的配置项*/ instance.getObjByField=function(conditionFieldVal){ + // console.log(instance.data, conditionFieldVal) for(var i=0;i 设置条件后是否立即刷新表格 * */ - instance.setCondition = function(conditionArr){ + instance.setCondition = function(conditionArr, reload = true){ if(typeof conditionArr == "string"){ instance.cacheCondition = $.parseJSON(conditionArr); }else{ @@ -180,15 +182,15 @@ layui.extend({ var conditionValueRightVal = item["init-right-val"]; conditionTemp[1] = conditionTemp[1] || item.firstOp; var conditionOptionVal = conditionTemp[1]; - if(conditionOptionVal == "between"){ + if(-1 < $.inArray(conditionOptionVal, ["between" ,"notbetween"])){ conditionTemp[2] = conditionTemp[2] || {value:conditionValueLeftVal}; conditionTemp[3] = conditionTemp[3] || {value:conditionValueRightVal}; }else{ conditionTemp[2] = conditionTemp[2] || {value:conditionValueVal}; } } -// * logicalOperator,groupname,subgroupname,rowlevel,conditionFieldVal,conditionOptionVal, -// * conditionValueVal,conditionValueLeftVal,conditionValueRightVal + // * logicalOperator,groupname,subgroupname,rowlevel,conditionFieldVal,conditionOptionVal, + // * conditionValueVal,conditionValueLeftVal,conditionValueRightVal //缓存查询条件 var cacheCondition = parseToCacheCondition(conditionArr, instance.config.type); for(var i=0;i'); @@ -230,16 +234,16 @@ layui.extend({ logicalOperator.css("margin-left", (parentRowObj.rowlevel + 1) * instance.widthLevel); //字段 var conditionField=$('
    '); -// conditionField.width(instance.conditionFieldWidth); + // conditionField.width(instance.conditionFieldWidth); conditionField.append($(instance.conditionFieldHtml)); //操作 var conditionOption=$('
    '); -// conditionOption.width(instance.conditionOptionWidth); + // conditionOption.width(instance.conditionOptionWidth); conditionOption.append($(instance.conditionOptionHtml)); //值 var conditionValue=$('
    '); -// conditionValue.width(instance.conditionValueWidth*2+20); -// conditionDel.width(30); + // conditionValue.width(instance.conditionValueWidth*2+20); + // conditionDel.width(30); //新增嵌套查询按钮 var conditionAddSub=$('
    '); var addSubJq=$(''); @@ -277,9 +281,9 @@ layui.extend({ form.render(null, 'conditionDiv'+instance.conditionContainerId); }); aotuSetParentWidth(parentRowJq); -// if(instance.config.type == "simple"){ -// conditionOption.hide(); -// } + // if(instance.config.type == "simple"){ + // conditionOption.hide(); + // } return conditionRowJq; } /**更新conditionValue*/ @@ -299,14 +303,14 @@ layui.extend({ conditionOptionVal = idx == -1 ? obj.ops : obj.ops.substring(0,idx); } conditionObj = { - conditionValueVal:{value:obj["init-val"]}, - conditionValueLeftVal:{value:obj["init-left-val"]}, - conditionValueRightVal:{value:obj["init-right-val"]}, - conditionOptionVal: conditionOptionVal, + conditionValueVal:{value:obj["init-val"]}, + conditionValueLeftVal:{value:obj["init-left-val"]}, + conditionValueRightVal:{value:obj["init-right-val"]}, + conditionOptionVal: conditionOptionVal, } } -// conditionObj = conditionObj || {conditionValueVal:{},conditionValueLeftVal:{},conditionValueRightVal:{}} + // conditionObj = conditionObj || {conditionValueVal:{},conditionValueLeftVal:{},conditionValueRightVal:{}} if(conditionObj.logicalOperator){ conditionRowJq.find("select[name='logicalOperator']").val(conditionObj.logicalOperator); } @@ -334,13 +338,13 @@ layui.extend({ conditionValueJq.attr("conditionOptionVal", conditionOptionVal); var curEditor = dynamicCondition.editor[obj.edit]; conditionRowJq[0].curEditor = curEditor; - if(conditionOptionVal == "empty" || conditionOptionVal == "notempty"){ + if(-1 < $.inArray(conditionOptionVal,["empty","notempty","isnull","notnull"])){ conditionValueJq.html(""); -// form.render(null, 'conditionDiv'+instance.conditionContainerId); + // form.render(null, 'conditionDiv'+instance.conditionContainerId); return ; } if(curEditor){ - if(conditionOptionVal == "between"){ + if(-1 < $.inArray(conditionOptionVal,["between","notbetween"])){ var eleLeftJq = $(curEditor.createElement(obj)); var eleRightJq = $(curEditor.createElement(obj)); var divLeft = $("
    "); @@ -374,7 +378,7 @@ layui.extend({ divJq.attr("name","conditionValue"); conditionValueJq.html(""); conditionValueJq.append(divJq); -// divJq.attr("xpl-dc-val",conditionObj.conditionValueVal); + divJq.attr("xpl-dc-val",conditionObj.conditionValueVal); //必须将jq对象转换为dom对象才能绑定对象属性。 conditionRowJq[0].eleJq = eleJq; conditionRowJq[0].eleLeftJq = null; @@ -382,7 +386,7 @@ layui.extend({ curEditor.fillElement(eleJq,conditionObj.conditionValueVal); curEditor.render(eleJq,obj); } -// form.render(null, 'conditionDiv'+instance.conditionContainerId); + form.render(null, 'conditionDiv'+instance.conditionContainerId); return ; } } @@ -490,7 +494,7 @@ layui.extend({ var ValueLeftText = conditionObj.conditionValueLeftVal.text; var ValueRightText = conditionObj.conditionValueRightVal.text; var rsValueText=""; - if(conditionObj.conditionOptionVal == "between"){ + if(-1 < $.inArray(conditionObj.conditionOptionVal,["between","notbetween"])){ if((ValueLeftText || ValueRightText)){ rsValueText = ValueLeftText + blankStr+"至"+ blankStr + ValueRightText; } @@ -506,12 +510,12 @@ layui.extend({ } //复杂模式 else{ - if(conditionObj.conditionOptionVal == "empty" || conditionObj.conditionOptionVal == "notempty"){ + if(-1 < $.inArray(conditionObj.conditionOptionVal,["empty","notempty","isnull","notnull"])){ tempText = fieldText + blankStr + OptionText; }else if(rsValueText){ tempText = fieldText + blankStr + OptionText + blankStr + rsValueText; } -// conditionHtml += fieldText + blankStr + OptionText + blankStr + rsValueText; + // conditionHtml += fieldText + blankStr + OptionText + blankStr + rsValueText; } var spanJq = $(""); spanJq.html(tempText); @@ -594,15 +598,15 @@ layui.extend({ if(instance.config.extendBtns){ instance.config.extendBtns(btnDivJq,instance); } -// btnDivJq.width(instance.config.unpopupBtnswidth); + // btnDivJq.width(instance.config.unpopupBtnswidth); msgJq.append($("
    ")); btnDivJq.find(".xpl-unpopup-query").on("click",function(){ if(instance.verifyForm()){ - // layer.msg('校验通过'); + // layer.msg('校验通过'); instance.buildCacheCondition(); instance.query(); }else{ - // layer.msg('校验失败'); + // layer.msg('校验失败'); } }); btnDivJq.find(".xpl-unpopup-add").on("click",function(){ @@ -612,14 +616,14 @@ layui.extend({ } /**删除条件*/ instance.delete = function(ele){ -// var index = $(ele).parent().attr("index"); + // var index = $(ele).parent().attr("index"); var subgroupname = $(ele).parent().attr("subgroupname"); var conditionContainerJq = $("#query"+instance.conditionContainerId); var delRowBtnJq = conditionContainerJq.find(".conditionRow[subgroupname="+subgroupname+"]").find(".delRowBtn"); delRowBtnJq.click(); conditionContainerJq.find(".queryBtn").click(); -// instance.cacheCondition.splice(index, 1); -// instance.query(); + // instance.cacheCondition.splice(index, 1); + // instance.query(); } /**查询*/ instance.query = function(){ @@ -650,7 +654,7 @@ layui.extend({ //复杂模式请求参数是数组模式,通过数组长度可以控制,所以不用考虑缓layui缓存问题 params = instance.requestData; } -// var curPage = $(".layui-laypage-next").attr("data-page") - 1; + // var curPage = $(".layui-laypage-next").attr("data-page") - 1; table.reload(instance.config.tableId, { page: { curr: 1 //重新加载当前页 @@ -691,10 +695,10 @@ layui.extend({ area: [instance.getPopupWidth() + 'px', instance.height +'px'], //宽高 maxmin:true, content: query_conditionContainerJq -// content: conditionContainerHtml -// content: "
    " + // content: conditionContainerHtml + // content: "
    " }); -// instance.render(query_conditionContainerJq); + // instance.render(query_conditionContainerJq); } /**渲染弹出/非弹窗界面*/ instance.render = function(divJq){ @@ -737,7 +741,7 @@ layui.extend({ //隐藏删除按钮 conditionRowJq.find(".delRowBtn").hide(); //移除其他下拉选项 -// conditionRowJq.find("select[name='conditionField']").attr("disabled","disabled"); + // conditionRowJq.find("select[name='conditionField']").attr("disabled","disabled"); removeOption(conditionRowJq.find("select[name='conditionField']"),conditionObj.conditionFieldVal); } cecheParentRowJq[conditionObj.subgroupname] = conditionRowJq; @@ -773,13 +777,13 @@ layui.extend({ //查询 conditionContainerJq.find(".queryBtn").on("click",function(){ if(instance.verifyForm(conditionContainerJq)){ -// layer.msg('校验通过'); + // layer.msg('校验通过'); instance.renderText(); instance.query(); layer.close(instance.openPageIndex); instance.openPageIndex = null; }else{ -// layer.msg('校验失败'); + // layer.msg('校验失败'); } }); form.render(null, 'conditionDiv'+instance.conditionContainerId); @@ -819,9 +823,9 @@ layui.extend({ popupShowQueryBtn: false, //弹窗模式下,是否显示查询按钮。之前版本默认是不显示的 unpopupBtnswidth: 180,//非弹窗模式下按钮工具面板宽度。500px unpopupShowQueryBtn: false, //非弹窗模式下,是否显示新增条件按钮。之前版本默认是不显示的 - opsMap: {"equal":"等于","like":"包含","between":"范围","in":"多选" - ,"start":"开头字符","end":"结尾字符","unequal":"不等于","empty":"为空","notempty":"不为空"}, //操作选项列表 - opsList:["equal","like","between","start","end","unequal","empty"],//默认显示操作列表(按数组顺序) + opsMap: {"equal":"等于","gt":"大于","egt":"大于等于","lt":"小于","elt":"小于等于","like":"包含","unlike":"不包含","between":"范围内","notbetween":"范围外","in":"多选" + ,"start":"开头字符","end":"结尾字符","unequal":"不等于","empty":"为空","notempty":"不为空","isnull":"Is Null","notnull":"is not Null"}, //操作选项列表 + opsList:["equal","gt","egt","lt","elt","like","unlike","between","notbetween","start","end","unequal","empty","notempty","isnull","notnull"],//默认显示操作列表(按数组顺序) extraParams:["datatype"],//请求时会附带
  • 标签定义的额外的参数 nestedQuery:false,//逻辑运算操作,默认不开启。 }; @@ -974,6 +978,7 @@ layui.extend({ conditionArr.push(conditionObj); } } + // console.log(conditionArr) instance.setCondition(conditionArr); //如果counts为0,且是非弹窗模式,unpopupShowAddBtn为false。则隐藏查询按钮。 if(instance.config.counts == 0 && instance.config.displayModel=='unpopup'&& instance.config.unpopupShowAddBtn==false){ @@ -1114,7 +1119,7 @@ layui.extend({ var editorRadio = dynamicCondition.createEditor("radio"); $.extend( editorRadio ,{ createElement:function(item){ - var randomId= (Math.random()+"").substr(2); + var randomId= (Math.random()).toString().substr(2); var ele = $("
    "); if(item.templet){ var radioArr = item.templet.split("|") @@ -1145,7 +1150,7 @@ layui.extend({ var editorCheckbox = dynamicCondition.createEditor("checkbox"); $.extend( editorCheckbox ,{ createElement:function(item){ - var randomId= (Math.random()+"").substr(2); + var randomId= (Math.random()).toString().substr(2); var ele = $("
    "); if(item.templet){ if(item.templet.startsWith("#")){ @@ -1240,7 +1245,7 @@ layui.extend({ if(typeof curCondition[2] != "object"){ valTemp2 = {value:curCondition[2],text:curCondition[2]}; } - if(curCondition[1] == "between"){ + if( -1 < $.inArray(curCondition[1], ["between","notbetween"])){ conditionObj.conditionValueLeftVal = valTemp2; if(typeof curCondition[3] == "object"){//between选项才考虑第4个参数,否则忽略他 conditionObj.conditionValueRightVal = curCondition[3]; @@ -1250,9 +1255,9 @@ layui.extend({ }else{ conditionObj.conditionValueVal = valTemp2; } -// * logicalOperator,groupname,subgroupname,rowlevel,conditionFieldVal,conditionOptionVal, -// * conditionValueVal,conditionValueLeftVal,conditionValueRightVal - $.extend(conditionObj,{logicalOperator:'and',groupname:'groupname2',subgroupname:"groupname" + (Math.random()+"").substr(2) ,rowlevel:0}) + // * logicalOperator,groupname,subgroupname,rowlevel,conditionFieldVal,conditionOptionVal, + // * conditionValueVal,conditionValueLeftVal,conditionValueRightVal + $.extend(conditionObj,{logicalOperator:'and',groupname:'groupname2',subgroupname:"groupname" + (Math.random()).toString().substr(2) ,rowlevel:0}) cacheCondition.push(conditionObj); } return cacheCondition; @@ -1414,7 +1419,7 @@ layui.extend({ * @returns */ function isValid(conditionObj){ - if(conditionObj.conditionOptionVal == "between"){ + if( -1 < $.inArray(conditionObj.conditionOptionVal, ["between","notbetween"])){ if(conditionObj.conditionValueLeftVal.value){ return true; } @@ -1423,7 +1428,7 @@ layui.extend({ }else{ return false; } - }else if(conditionObj.conditionOptionVal == "empty" || conditionObj.conditionOptionVal == "notempty"){ + }else if( -1 < $.inArray(conditionObj.conditionOptionVal, ["empty","notempty","isnull","notnull"])){ return true; }else{ if(conditionObj.conditionValueVal.value){