{"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\\form\\dataTemplate\\FilterSetting.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\src\\components\\form\\dataTemplate\\FilterSetting.vue","mtime":1675071992147},{"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\r\nconst eipAuthDialog = () => import(\"@/components/dialog/EipAuthDialog.vue\");\r\nconst templateFilterDialog = () =>\r\n import(\"@/components/form/dataTemplate/TemplateFilterDialog.vue\");\r\n\r\nexport default {\r\n components: {\r\n eipAuthDialog,\r\n templateFilterDialog\r\n },\r\n name: \"filter-setting\",\r\n props: [\"data\"],\r\n data() {\r\n return {\r\n dataTemplate: {},\r\n filterFields: [],\r\n permissionMap: {},\r\n permissionList: [],\r\n tabHeight: `${document.documentElement.clientHeight}` - 280,\r\n currentAuthRow: null,\r\n colPrefix: \"\",\r\n metafields: [],\r\n editFilterIndex: -1,\r\n conditionReplaceChar: \" &@ \"\r\n };\r\n },\r\n mounted() {\r\n this.dataTemplate = this.data.bpmDataTemplate;\r\n this.filterFields = this.dataTemplate.filterField\r\n ? JSON.parse(this.dataTemplate.filterField)\r\n : [];\r\n this.permissionMap = this.data.permissionList;\r\n this.colPrefix = this.data.colPrefix;\r\n this.metafields = this.data.fields;\r\n if (this.permissionMap) {\r\n for (let key in this.permissionMap) {\r\n this.permissionList.push({ type: key, title: this.permissionMap[key] });\r\n }\r\n }\r\n },\r\n methods: {\r\n copy(index) {\r\n let obj = JSON.parse(JSON.stringify(this.filterFields[index]));\r\n this.filterFields.push(obj);\r\n },\r\n //保存过滤数据\r\n saveFilterField() {\r\n this.dataTemplate.filterField = this.filterFields\r\n ? JSON.stringify(this.filterFields)\r\n : null;\r\n },\r\n //显示字段排序\r\n sort(index, type) {\r\n if (\"up\" == type) {\r\n if (index === 0) {\r\n this.$message({\r\n message: \"已经是列表中第一位\",\r\n type: \"warning\"\r\n });\r\n } else {\r\n let temp = this.filterFields[index - 1];\r\n this.$set(this.filterFields, index - 1, this.filterFields[index]);\r\n this.$set(this.filterFields, index, temp);\r\n }\r\n } else {\r\n if (index === this.filterFields.length - 1) {\r\n this.$message({\r\n message: \"已经是列表中最后一位\",\r\n type: \"warning\"\r\n });\r\n } else {\r\n let i = this.filterFields[index + 1];\r\n this.$set(this.filterFields, index + 1, this.displayFields[index]);\r\n this.$set(this.filterFields, index, i);\r\n }\r\n }\r\n },\r\n //删除显示字段\r\n remove(index) {\r\n this.filterFields.splice(index, 1);\r\n },\r\n //添加管理过滤\r\n addFilter(index, row) {\r\n let conf = { editFilter: {} };\r\n if (typeof index != \"undefined\" && index > -1) {\r\n this.editFilterIndex = index;\r\n conf.editFilter = { ...row };\r\n conf.editFilter.condition =\r\n row.type == 1\r\n ? this.transFromConditions(row.condition)\r\n : row.condition;\r\n } else {\r\n this.editFilterIndex = -1;\r\n }\r\n this.$refs.templateFilterDialog.showDialog(conf);\r\n },\r\n transFromConditions(condition) {\r\n let conditionObj = { junction: \"and\", condition: [] };\r\n condition.forEach(c => {\r\n if (c.branch) {\r\n let subs = c.sub;\r\n let subConditionObj = { junction: subs[0].compType, condition: [] };\r\n subs.forEach(sub => {\r\n let subCond = this.getTransDecode(sub);\r\n subConditionObj.condition.push(subCond);\r\n });\r\n conditionObj.condition.push(subConditionObj);\r\n } else {\r\n let cond = this.getTransDecode(c);\r\n conditionObj.junction = c.compType;\r\n conditionObj.condition.push(cond);\r\n }\r\n });\r\n return JSON.stringify(conditionObj);\r\n },\r\n getTransDecode(c) {\r\n let descArray = c.conDesc.split(this.conditionReplaceChar);\r\n let cond = {\r\n property: c.flowvarKey,\r\n operator: c.judgeCon1,\r\n dataType: descArray.length > 3 ? descArray[3] : \"varchar\",\r\n value: c.judgeVal1,\r\n compType: \"1\",\r\n style: descArray[2],\r\n indexStr: descArray[1],\r\n chooseDesc: descArray[0]\r\n };\r\n return cond;\r\n },\r\n transToConditions(filterCondition) {\r\n let filter = JSON.parse(filterCondition);\r\n let condition = [];\r\n if (filter && filter.junction) {\r\n let junction = filter.junction;\r\n if (filter.condition) {\r\n let conditions = filter.condition;\r\n conditions.forEach(c => {\r\n if (c.junction) {\r\n if (c.condition) {\r\n let subCond = { branch: true, sub: [] };\r\n let subConditions = c.condition;\r\n subConditions.forEach(sub => {\r\n let scond = this.getTransObj(sub, c.junction);\r\n subCond.sub.push(scond);\r\n });\r\n condition.push(subCond);\r\n }\r\n } else {\r\n let cond = this.getTransObj(c, junction);\r\n condition.push(cond);\r\n }\r\n });\r\n }\r\n }\r\n return condition;\r\n },\r\n getTransObj(c, junction) {\r\n let cond = {\r\n compType: junction,\r\n flowvarKey: c.property,\r\n judgeCon1: c.operator,\r\n judgeVal1: c.value,\r\n ruleType: \"1\"\r\n };\r\n switch (c.dataType) {\r\n case \"number\":\r\n cond.optType = \"1\";\r\n break;\r\n case \"date\":\r\n cond.optType = \"3\";\r\n break;\r\n default:\r\n cond.optType = \"2\";\r\n break;\r\n }\r\n cond.conDesc =\r\n c.chooseDesc +\r\n this.conditionReplaceChar +\r\n c.indexStr +\r\n this.conditionReplaceChar +\r\n c.style +\r\n this.conditionReplaceChar +\r\n c.dataType;\r\n return cond;\r\n },\r\n //打开设置权限\r\n setFieldRightDialog(row) {\r\n let conf = {\r\n right: JSON.parse(row.right),\r\n permissionList: this.permissionList\r\n };\r\n this.currentAuthRow = row;\r\n this.$refs.eipAuthDialog.showDialog(conf);\r\n },\r\n //设置权限\r\n authDialogOnConfirm(data) {\r\n if (this.currentAuthRow) {\r\n this.currentAuthRow.right = JSON.stringify(data);\r\n }\r\n },\r\n //设置过滤条件\r\n filterDialogOnConfirm(selection, rtn) {\r\n if (rtn) {\r\n if (this.editFilterIndex == -1) {\r\n var filter = new Object();\r\n filter.condition =\r\n rtn.filterType == 1\r\n ? this.transToConditions(rtn.filter)\r\n : rtn.filter;\r\n filter.name = rtn.name;\r\n filter.key = rtn.key;\r\n filter.type = rtn.filterType;\r\n filter.right = JSON.stringify([{ type: \"everyone\" }]);\r\n this.filterFields.push(filter);\r\n } else {\r\n this.filterFields[this.editFilterIndex].condition =\r\n rtn.filterType == 1\r\n ? this.transToConditions(rtn.filter)\r\n : rtn.filter;\r\n this.filterFields[this.editFilterIndex].name = rtn.name;\r\n this.filterFields[this.editFilterIndex].key = rtn.key;\r\n this.filterFields[this.editFilterIndex].type = rtn.filterType;\r\n }\r\n }\r\n },\r\n //显示权限信息\r\n rightToDesc(right) {\r\n if (right) {\r\n try {\r\n right = JSON.parse(right);\r\n } catch (error) {}\r\n }\r\n let desc = \"\";\r\n let _this = this;\r\n right.forEach(r => {\r\n if (desc) {\r\n desc += \" 和 \";\r\n }\r\n var str = _this.permissionMap[r.type];\r\n if (r.name) {\r\n str += \":\" + r.name;\r\n } else if (r.id) {\r\n str += \":\" + r.id;\r\n }\r\n desc += str;\r\n });\r\n return desc;\r\n },\r\n //显示类型描述\r\n getFilterType(type) {\r\n type = parseInt(type);\r\n var ft = \"条件脚本\";\r\n switch (type) {\r\n case 2:\r\n ft = \"SQL\";\r\n break;\r\n case 3:\r\n ft = \"追加SQL\";\r\n break;\r\n case 4:\r\n ft = \"数据权限\";\r\n break;\r\n }\r\n return ft;\r\n },\r\n //标题统一权限设置\r\n mrightRenderHeader(h, para) {\r\n //下拉框选项\r\n let _this = this;\r\n let rights = [\r\n { key: \"\", value: \"请选择\" },\r\n { key: \"none\", value: \"无\" },\r\n { key: \"everyone\", value: \"所有人\" }\r\n ];\r\n let rightMap = { \"\": \"请选择\", none: \"无\", everyone: \"所有人\" };\r\n //下拉框内容包裹在一个div里面\r\n return h(\"div\", {}, [\r\n h(\r\n \"span\",\r\n {\r\n //div里面有一个文字提示:下拉框所属内容\r\n style: {},\r\n class: \"level-font-class\"\r\n },\r\n para.column.label\r\n ),\r\n h(\r\n \"el-select\",\r\n {\r\n //el-select实现下拉框\r\n size: \"mini\",\r\n style: {\r\n width: \"120px\",\r\n marginLeft: \"10px\"\r\n },\r\n on: {\r\n input: value => {\r\n //随着下拉框的不同,文字框里的内容在边\r\n _this.rightLab = rightMap[value];\r\n if (\r\n value &&\r\n _this.filterFields &&\r\n _this.filterFields.length > 0\r\n ) {\r\n _this.filterFields.forEach(field => {\r\n if (field.right) {\r\n try {\r\n field.right = JSON.parse(field.right);\r\n } catch (error) {}\r\n }\r\n if (field.right[0].hasOwnProperty(\"v\")) {\r\n field.right[0] = { v: value };\r\n } else {\r\n field.right[0] = { type: value };\r\n }\r\n field.right = JSON.stringify(field.right);\r\n });\r\n }\r\n }\r\n },\r\n props: {\r\n value: _this.rightLab //文字框的内容取决于这个value,如果value不存在,会报错\r\n }\r\n },\r\n [\r\n //下拉框里面填充选项,通过rights遍历map,为每一个选项赋值。\r\n rights.map(item => {\r\n return h(\"el-option\", {\r\n props: {\r\n value: item.key,\r\n label: item.value\r\n }\r\n });\r\n })\r\n ]\r\n )\r\n ]);\r\n }\r\n }\r\n};\r\n",null]}