{"remainingRequest":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\xq-web-bpm\\src\\components\\flow\\FlowFormSubRowCondition.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\src\\components\\flow\\FlowFormSubRowCondition.vue","mtime":1675071991803},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":["//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\r\nimport flow from \"@/api/flow.js\";\r\nimport req from \"@/request.js\";\r\nimport { mapState, mapActions } from \"vuex\";\r\nimport FlowNodeCusersSelector from \"@/components/flow/FlowNodeCusersSelector.vue\";\r\nimport utils from \"@/hotent-ui-util.js\"\r\n\r\nexport default {\r\n components: { },\r\n props: [\"curTableAuth\", \"table\",\"boTree\",\"type\",\"finishTable\"],\r\n data() {\r\n return {\r\n userConditionTab:'first',\r\n dialogVisible:false,\r\n title:'子表数据授权',\r\n conditionObj:{},\r\n conditionName:'',\r\n pathList:[],\r\n data:{},\r\n branchList:[],\r\n tabList:[],\r\n Tree:[],\r\n svgHeight:'400px',\r\n Mleft:50, //初始左边距50\r\n Mtop:20, //初始上边距40\r\n XIncase:100,//x轴递增数值70 \r\n YIncase:50,//y轴递增数据50\r\n svgHtml:'',\r\n curEditTab:{},\r\n filedsObj: {},\r\n varTree: [],\r\n defaultCondition: {\r\n property: \"\",\r\n operator: \"1\",\r\n dataType: \"\",\r\n value: \"\",\r\n compType: \"2\"\r\n }\r\n };\r\n },\r\n computed: mapState({\r\n defConfigData:state => state.flow.defConfigData\r\n }),\r\n created() {\r\n this.initCondition(this.curTableAuth,this.table,this.boTree);\r\n let me_ =this;\r\n this.$root.$on('sub-row-auth-confirm-start',function(){\r\n me_.handleClose();\r\n });\r\n },\r\n methods: {\r\n initCondition: function(curTableAuth,table,boTree) {\r\n let this_ = this;\r\n this_.conditionObj = {'junction':'and','condition':[]};\r\n \r\n this_.buildVarTree(table,boTree);\r\n\r\n if (curTableAuth && curTableAuth[this.type] && curTableAuth[this.type].conditionObj) {\r\n this_.conditionObj = JSON.parse(curTableAuth[this.type].conditionObj);\r\n }\r\n this_.buildConditionTree(this_.conditionObj);\r\n },\r\n buildVarTree(table,boTree) {\r\n var treeArr = [];\r\n if (!boTree || boTree.length < 0) {\r\n return;\r\n }\r\n let fieldPrefix = boTree[0].children[0].fieldPrefix;\r\n let subEntList = boTree[0].children[0].children;\r\n if (subEntList && subEntList.length > 0) {\r\n subEntList.forEach(sub => {\r\n if (sub.name == table.tableName) {\r\n sub.attributeList.forEach(cAttr => {\r\n cAttr.path = cAttr.tableName;\r\n cAttr.pathStr =fieldPrefix+ cAttr.name;\r\n this.filedsObj[cAttr.pathStr] = cAttr;\r\n treeArr.push(cAttr);\r\n });\r\n }\r\n });\r\n }\r\n if (treeArr.length > 0) {\r\n this.varTree = treeArr;\r\n } \r\n },\r\n \r\n isNotEmpty(val){\r\n if (!val || val.length ==0) {\r\n return false;\r\n }\r\n return true;\r\n },\r\n //根据条件数组构建条件分支界面\r\n buildConditionTree(data){\r\n let pathArr=[];\r\n let tableArr=[];\r\n let branchArr=[];\r\n this.buildData(data,pathArr,tableArr,branchArr);\r\n this.pathList=pathArr;\r\n this.branchList=branchArr;\r\n this.tabList=tableArr;\r\n //取路径最后一条数据,因为该条数据的高度距离顶部最大\r\n let lastPath=pathArr[pathArr.length-1];\r\n let lastIndexArr=[];\r\n if(lastPath)lastIndexArr=lastPath.split(',');\r\n //取最后一个坐标点。终点纵坐标为整个svg中最大的纵坐标\r\n let lastYIndex=lastIndexArr[lastIndexArr.length-1];\r\n //设置svg的高度为最大纵坐标+100,从而实现svg页面高度自适应\r\n if(lastYIndex){\r\n this.svgHeight=(parseInt(lastYIndex)+50)+\"px\";\r\n }\r\n this.createSvgHtml(pathArr);\r\n },\r\n ArrayTool(ary,idx,direct){\r\n direct = direct || \"down\";\r\n let part = ary[idx];\r\n if (!part || (part.constructor !== Object && part.constructor !== Array)) {\r\n return ary;\r\n }\r\n if (part.constructor === Object) {\r\n part = [part];\r\n }\r\n if (direct == \"up\") {\r\n part.forEach(m => {\r\n let index = ary.indexOf(m, 1);\r\n if (index > 0) {\r\n let t=ary[index-1];\r\n ary.splice(index - 1,1,ary[index]);\r\n ary.splice(index,1,t);\r\n }\r\n });\r\n } else if (direct == \"down\") {\r\n for (var i = part.length - 1, m; (m = part[i--]);) {\r\n let index = ary.indexOf(m, 0);\r\n if (index > -1 && index < ary.length - 1) {\r\n let t=ary[index+1];\r\n ary.splice(index + 1,1,ary[index]);\r\n ary.splice(index,1,t);\r\n }\r\n }\r\n }\r\n },\r\n //构建svg图形页面\r\n createSvgHtml(pathArr){\r\n this.svgHtml = '';\r\n var html='';\r\n for(var i=0;i' ;\r\n }\r\n html+='';\r\n this.svgHtml = html;\r\n },\r\n changecondition (index) {\r\n var oldVal=this.branchList[index].oldjunction;\r\n var newVal=this.branchList[index].newjunction;\r\n if(newVal=='3' || newVal=='4' || newVal=='5'){\r\n this.branchList[index].newjunction=this.branchList[index].oldjunction;\r\n var indexStr=this.branchList[index].indexStr;\r\n if(newVal=='3'){\r\n this.addCondition(indexStr);\r\n }else if(newVal=='4'){\r\n this.addUnionCondition(indexStr);\r\n }else{\r\n this.$confirm(\"确定要删除此联合条件及其下属的所有子条件吗?\", \"提示\", {\r\n cancelButtonText: \"取消\",\r\n confirmButtonText: \"确定\",\r\n type: \"warning\",\r\n closeOnClickModal: false\r\n }).then(() => {\r\n this.removeCondition(indexStr);\r\n });\r\n }\r\n }else{\r\n this.branchList[index].oldjunction=this.branchList[index].newjunction;\r\n var indexStr=this.branchList[index].indexStr;\r\n var indexArr=indexStr.split(',');\r\n if(indexStr=='root'){\r\n this.conditionObj.junction=newVal;\r\n }else if(indexArr.length==1){\r\n this.conditionObj.condition[indexStr].junction=newVal;\r\n }else if(indexArr.length==2){\r\n this.conditionObj.condition[indexArr[0]].condition[indexArr[1]].junction=newVal;\r\n }\r\n }\r\n },\r\n //添加一个联合\r\n addCondition(indexStr){\r\n var data=this.conditionObj.condition;\r\n if(indexStr=='root'){\r\n data.push(JSON.parse(JSON.stringify(this.defaultCondition)));\r\n }else{\r\n var indexArr=[];\r\n if(indexStr) indexArr=indexStr.split(',');\r\n for(var i=0;i0 && i==indexArr[0]){\r\n if(indexArr.length>1){\r\n for(var j=0;j0){\r\n var data=this.conditionObj.condition;\r\n for(var i=0;i1){\r\n for(var j=0;j2){\r\n for(var z=0;z0 && i==indexArr[0]){\r\n if(indexArr.length>1){\r\n for(var j=0;j1 ? this.getyIncaseNum(conditionData.condition):1;\r\n //第一个节点 this.Mtop 最后一个节点Mtop+this.YIncase*(yIncaseNum-1)\r\n let startY1=(this.Mtop*2+this.YIncase*(yIncaseNum-1))/2;\r\n\r\n branchArr.push({\r\n newjunction:conditionData.junction,\r\n oldjunction:conditionData.junction,\r\n style:\"left:\"+(this.Mleft-35)+\"px; top:\"+(startY1-15)+\"px\",\r\n indexStr:'root',\r\n condition:'noDel'\r\n })\r\n for(var i=0;i0){\r\n for(var j=0;j0){\r\n for(var z=0;z {\r\n me_.curTableAuth[me_.type] =me_.getConditionData();\r\n if (me_.finishTable.indexOf(me_.type) <0) {\r\n me_.finishTable.push(me_.type);\r\n }\r\n me_.$root.$emit('sub-row-auth-confirm-end');\r\n }).catch(items => {\r\n me_.$message.error(`权限设置页面还有内容未填写。`);\r\n })\r\n },\r\n getConditionData(){\r\n if (!this.conditionObj) return;\r\n var data = this.getConditionStr(this.conditionObj);\r\n data.conditionObj = JSON.stringify(this.conditionObj);\r\n this.scriptStr = data.conditionString;\r\n return data;\r\n },\r\n getConditionStr(obj) {\r\n if (!obj || !obj.condition) return;\r\n var returnData = {};\r\n var data = obj.condition;\r\n var res = \"\";\r\n var desString = \"\";\r\n for (var i = 0; i < data.length; i++) {\r\n //第一节点的表达式\r\n var curcondStr1 = \"\";\r\n var curcondDes1 = \"\";\r\n //如果第一节点有分支则计算\r\n if (data[i].condition && data[i].condition.length > 0) {\r\n curcondStr1 += \"(\";\r\n curcondDes1 += \"(\";\r\n for (var j = 0; j < data[i].condition.length; j++) {\r\n //第二节点的表达式\r\n var curcondStr2 = \"\";\r\n var curcondDes2 = \"\";\r\n //如果第三级节点有分支,则计算分支\r\n if (\r\n data[i].condition[j].condition &&\r\n data[i].condition[j].condition.length > 0\r\n ) {\r\n curcondStr2 += \"(\";\r\n curcondDes2 += \"(\";\r\n var curcondStr3 = \"\";\r\n var curcondDes3 = \"\";\r\n for (var z = 0; z < data[i].condition[j].condition.length; z++) {\r\n curcondStr3 = this.getConditionStrByObj(\r\n data[i].condition[j].condition[z]\r\n );\r\n curcondDes3 = this.getConditionStrByObj(\r\n data[i].condition[j].condition[z],\r\n \"des\"\r\n );\r\n if (curcondStr3 != \"\") {\r\n //循环拼接第三节点的条件\r\n if (z == 0) {\r\n //第一个不拼接运算符\r\n curcondStr2 += curcondStr3;\r\n curcondDes2 += curcondDes3;\r\n } else {\r\n curcondStr2 +=\r\n this.getjunction(data[i].condition[j].junction) +\r\n curcondStr3;\r\n curcondDes2 +=\r\n this.getjunction(data[i].condition[j].junction) +\r\n curcondDes3;\r\n }\r\n }\r\n }\r\n curcondStr2 += \")\";\r\n curcondDes2 += \")\";\r\n } else if (data[i].condition[j].property) {\r\n //第二节点没有分只\r\n curcondStr2 = this.getConditionStrByObj(data[i].condition[j]);\r\n curcondDes2 = this.getConditionStrByObj(\r\n data[i].condition[j],\r\n \"des\"\r\n );\r\n }\r\n if (curcondStr2 != \"\") {\r\n //循环拼接第二节点的条件\r\n if (j == 0) {\r\n //第一个不拼接运算符\r\n curcondStr1 += curcondStr2;\r\n curcondDes1 += curcondDes2;\r\n } else {\r\n curcondStr1 += this.getjunction(data[i].junction) + curcondStr2;\r\n curcondDes1 += this.getjunction(data[i].junction) + curcondDes2;\r\n }\r\n }\r\n }\r\n curcondStr1 += \")\";\r\n curcondDes1 += \")\";\r\n } else if (data[i].property) {\r\n //第一节点没有分只\r\n curcondStr1 = this.getConditionStrByObj(data[i]);\r\n curcondDes1 = this.getConditionStrByObj(data[i], \"des\");\r\n }\r\n if (curcondStr1 != \"\") {\r\n //循环拼接第一节点的条件\r\n if (i == 0) {\r\n //第一个不拼接运算符\r\n res += curcondStr1;\r\n desString += curcondDes1;\r\n } else {\r\n res += this.getjunction(obj.junction) + curcondStr1;\r\n desString += this.getjunction(obj.junction) + curcondDes1;\r\n }\r\n }\r\n }\r\n returnData.conditionString = res;\r\n returnData.conditionDes = desString;\r\n return returnData;\r\n },\r\n getConditionStrByObj(obj, type) {\r\n var res = \"\";\r\n if (!obj.value) {\r\n throw '比较的值必填';\r\n }\r\n switch (obj.dataType) {\r\n case \"varchar\":\r\n res = this.buildStringCondition(obj, type);\r\n break;\r\n case \"date\":\r\n res = this.buildDateCondition(obj, type);\r\n break;\r\n case \"number\":\r\n res = this.buildIntCondition(obj, type);\r\n break;\r\n }\r\n return res;\r\n },\r\n buildDateCondition(obj, type) {\r\n var value = obj.value;\r\n var valueDes = \"\";\r\n var property = obj.property;\r\n let res = \"\";\r\n\r\n if (obj.compType == 2) {\r\n if (obj.operator == '9') {\r\n value =\"'\"+value[0] + \"' and '\"+value[1]+\"'\";\r\n } else {\r\n value = \"'\" + obj.value + \"'\";\r\n }\r\n } else {\r\n value = \"'{\" + obj.value + \"}'\";\r\n valueDes = obj.changeDesc;\r\n }\r\n\r\n if (type == \"des\") {\r\n property = obj.chooseDesc;\r\n value = valueDes || value;\r\n } \r\n\r\n switch (obj.operator) {\r\n case \"1\":\r\n res = property + \" = \" + value;\r\n break;\r\n case \"2\":\r\n res = property + \" != \" + value;\r\n break;\r\n case \"3\":\r\n res = property + \" > \" + value;\r\n break;\r\n case \"4\":\r\n res = property + \" < \" + value;\r\n break;\r\n case \"7\":\r\n res = property + \" >= \" + value;\r\n break;\r\n case \"8\":\r\n res = property + \" <= \" + value;\r\n break;\r\n case \"9\":\r\n res = property + \" BETWEEN \" + value;\r\n break;\r\n }\r\n return res;\r\n },\r\n buildStringCondition(obj, type) {\r\n var value = obj.value;\r\n var valueDes = \"\";\r\n var property = obj.property;\r\n let res = \"\";\r\n if (obj.compType == 2) {\r\n if (obj.operator== 5 || obj.operator== 6 ) {\r\n value = \"'%\" + obj.value + \"%'\";\r\n }else if(obj.operator== 9 || obj.operator== 10){\r\n value = \"('\" + obj.value.split(\",\").join(\"','\") + \"')\";\r\n }else{\r\n value = \"'\" + obj.value + \"'\";\r\n }\r\n valueDes = value;\r\n } else {\r\n value = \"'{\" + obj.value + \"}'\";\r\n valueDes = obj.changeDesc;\r\n }\r\n if (type == \"des\") {\r\n property = obj.chooseDesc;\r\n value = valueDes;\r\n } \r\n switch (obj.operator) {\r\n case \"1\":\r\n res = property + \" = \" + value;\r\n break;\r\n case \"2\":\r\n res = property + \" != \" + value;\r\n break;\r\n case \"5\":\r\n res = property + \" like \" + value;\r\n break;\r\n case \"6\":\r\n res = property + \" not like \" + value;\r\n break;\r\n case \"9\":\r\n res = property + \" in \" + value;\r\n break;\r\n case \"10\":\r\n res = property + \" not in \" + value;\r\n break;\r\n }\r\n\r\n return res;\r\n },\r\n buildIntCondition(obj, type) {\r\n var value = obj.value;\r\n var valueDes = \"\";\r\n var property = obj.property;\r\n if (obj.compType == 2) {\r\n value = obj.value;\r\n valueDes = value;\r\n } else {\r\n value = \"{\" + obj.value + \"}\";\r\n valueDes = obj.changeDesc;\r\n }\r\n if (type == \"des\") {\r\n property = obj.chooseDesc;\r\n value = valueDes;\r\n }\r\n var res = \"\";\r\n switch (obj.operator) {\r\n case \"1\":\r\n res = property + \" = \" + value;\r\n break;\r\n case \"2\":\r\n res = property + \" != \" + value;\r\n break;\r\n case \"3\":\r\n res = property + \" > \" + value;\r\n break;\r\n case \"4\":\r\n res = property + \" < \" + value;\r\n break;\r\n case \"7\":\r\n res = property + \" >= \" + value;\r\n break;\r\n case \"8\":\r\n res = property + \" <= \" + value;\r\n break;\r\n }\r\n return res;\r\n },\r\n getjunction(str) {\r\n return ' '+str+' ';\r\n },\r\n\r\n }\r\n};\r\n",null]}