{"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]}