@jecloud/func
Version:
JECloud 功能库
1 lines • 3.54 kB
JavaScript
import{Data as e}from"@jecloud/ui";import{reactive as l}from"vue";import{isEmpty as t,encode as a,decode as n}from"@jecloud/utils";export function useFuncQueys(u){var i=u.props,r=(u.context,l({tableData:e.Store.useGridStore({data:[]}),contextText:"备注:字段选择范围为本功能内部字段,且可以通过{parent.字段编码}的形式获取主功能表单字段值。也可通过例如{@USER_ID@}的方式得到全局变量",SQLFILTER_CN_OPTIONS:[{value:"and",label:"并且"},{value:"or",label:"或者"}],inputRender:{autofocus:".ant-input"},SQLFILTER_TYPE_OPTIONS:[{value:"=",label:"精确"},{value:"like",label:"模糊"},{value:"in",label:"包含"},{value:"between",label:"区间"},{value:">",label:"大于"},{value:">=",label:"大于等于"},{value:"<",label:"小于"},{value:"<=",label:"小于等于"},{value:"!=",label:"不等于"},{value:"originalLike",label:"originalLike"},{value:"notIn",label:"notIn"},{value:"notNull",label:"notNull"},{value:"isNull",label:"isNull"},{value:"inSelect",label:"inSelect"},{value:"notInSelect",label:"notInSelect"}],textareaValue:i.queryParams.value||"",queryArr:[{code:"RESOURCECOLUMN_FUNCINFO_ID",value:i.queryParams.funcId,type:"=",cn:"and"},{code:"RESOURCECOLUMN_XTYPE",value:"uxcolumn",type:"=",cn:"and"}]})),v=function(e){if(!t(e)){for(var l=function(t,a){if("1"==t.leftvalue)if("1"==t.rightvalue)t={type:t.cn||"and",value:[{type:t.type,code:t.code,value:-1!=["inSelect","notInSelect"].indexOf(t.type)?n(t.value):t.value,cn:t.cn||"and"}]};else for(t={type:t.cn||"and",value:[{type:t.type,code:t.code,value:-1!=["inSelect","notInSelect"].indexOf(t.type)?n(t.value):t.value,cn:t.cn||"and"}]},a++;a<e.length;a++){var u=l(e[a],a);if(a=u.index,t.value.push({type:u.item.type,code:u.item.code,value:-1!=["inSelect","notInSelect"].indexOf(u.item.type)?n(u.item.value):u.item.value,cn:u.item.cn||"and"}),"1"==u.item.rightvalue)break}return"0"==t.leftvalue&&"0"==t.rightvalue&&(t={type:t.type,code:t.code,value:-1!=["inSelect","notInSelect"].indexOf(t.type)?n(t.value):t.value,cn:t.cn||"and"}),{item:t,index:a}},a=[],u=0;u<e.length;u++){var i=e[u],r=l(i,u);u=r.index,a.push(r.item)}return a}},o=function(e){if(!t(e)){for(var l=[],n=0;n<e.length;n++){var u=e[n];"and"!=u.type&&"or"!=u.type?(u.leftvalue="0",u.rightvalue="0",-1!=["inSelect","notInSelect"].indexOf(u.type)&&(u.value=a(u.value)),l.push(u)):i(u.value)}return l}function i(e){if(1==e.length)e[0].leftvalue="1",e[e.length-1].rightvalue="1",-1!=["inSelect","notInSelect"].indexOf(e[0].type)&&(e[0].value=a(e[0].value)),l.push(e[0]);else for(var t=0;t<e.length;t++){var n=e[t];"and"!=n.type&&"or"!=n.type?(0!=t&&t!=e.length-1&&(n.leftvalue="0",n.rightvalue="0"),0==t&&(n.leftvalue="1",n.rightvalue="0"),t==e.length-1&&(n.leftvalue="0",n.rightvalue="1"),-1!=["inSelect","notInSelect"].indexOf(n.type)&&(n.value=a(n.value)),l.push(n)):i(n.value)}}};return{state:r,addColumn:function(){r.tableData.insert({cn:"",type:"",leftvalue:"0",code:"",value:"",rightvalue:"0"},-1)},deleteColumn:function(e){r.tableData.remove(e)},getSelectLabel:function(e,l,t,a){void 0===t&&(t="value"),void 0===a&&(a="label");var n=l.find((function(l){return l[t]===e}));return n?n[a]:null},getPopupContainer:function(){return document.body},disposeSql:function(e){if(e){var l=r.tableData.data,t=v(l);r.textareaValue=JSON.stringify(t)}else{var a=o(JSON.parse(r.textareaValue));r.tableData.loadData(a)}},codeSwitching:function(e){var l="";l=e?JSON.stringify(JSON.parse(r.textareaValue),null,2):JSON.stringify(JSON.parse(r.textareaValue)),r.textareaValue=l}}}