{"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\\ConditionSetting.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\src\\components\\form\\dataTemplate\\ConditionSetting.vue","mtime":1675071992131},{"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//\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 deepmerge from \"deepmerge\";\r\nconst templateCtrlFieldDialog = () =>\r\n  import(\"@/components/form/dataTemplate/TemplateCtrlFieldDialog.vue\");\r\n  const BTN_TYPE = {\r\n  isShow: '1',\r\n  notShow: '2',\r\n}\r\nexport default {\r\n  name: \"condition-setting\",\r\n  components: {\r\n    templateCtrlFieldDialog\r\n  },\r\n  props: [\"data\"],\r\n  data() {\r\n    return {\r\n      btnType:BTN_TYPE,//移动端显示隐藏按钮\r\n      dataTemplate: {},\r\n      conditionSettingFields: [],\r\n      conditionFields: [],\r\n      tabHeight: `${document.documentElement.clientHeight}` - 245,\r\n      controlTypes: [\r\n        { key: \"onetext\", value: \"单行文本框\" },\r\n        { key: \"date\", value: \"日期控件\" },\r\n        { key: \"select\", value: \"下拉选项\" },\r\n        { key: \"radio\", value: \"单选按钮\" },\r\n        { key: \"customDialog\", value: \"自定义对话框\" }\r\n      ],\r\n      editField: {},\r\n      editFieldIndex: -1,\r\n      option:{\r\n        choiceType: \"static\",\r\n        customQuery:{}\r\n      }\r\n    };\r\n  },\r\n  mounted() {\r\n    this.dataTemplate = this.data.bpmDataTemplate;\r\n    if (this.data.fields) {\r\n      let fields = deepmerge({}, this.data.fields, { clone: true });\r\n      fields=fields.filter(item=>!item.flowField);\r\n      this.conditionSettingFields = fields;\r\n    }\r\n    this.templates = this.data.templates;\r\n    this.initData();\r\n  },\r\n  methods: {\r\n    isShow(row){\r\n      this.$set(row,'isShow',!row.isShow)\r\n    },\r\n    btnChange(row){\r\n      this.$set(row,'mpDisplay',row.mpDisplay==='1' ? '2' : '1')\r\n    },\r\n    //保存查询条件数据\r\n    saveConditionField() {\r\n      let unPassCondtionArr = [];\r\n      this.conditionFields.forEach(c => {\r\n        if (\r\n          (c.ct == \"select\" || c.ct == \"radio\" || c.ct == \"customDialog\") &&\r\n          !c.controlContent\r\n        ) {\r\n          unPassCondtionArr.push(c.cm);\r\n        }\r\n      });\r\n      if (unPassCondtionArr.length > 0) {\r\n        this.$message.error(\r\n          \"查询字段【\" +\r\n            unPassCondtionArr.join(\",\") +\r\n            \"】尚未配置控件，无法保存\"\r\n        );\r\n        return \"false\";\r\n      }\r\n      this.dataTemplate.conditionField = this.conditionFields\r\n        ? JSON.stringify(this.conditionFields)\r\n        : null;\r\n    },\r\n    //初始化处理\r\n    initData() {\r\n      if (this.dataTemplate.conditionField) {\r\n        this.conditionFields = JSON.parse(this.dataTemplate.conditionField);\r\n      }\r\n      if (this.conditionFields) {\r\n        this.conditionFields.forEach(item => {\r\n          if (\r\n            item.ct != \"onetext\" &&\r\n            item.ct != \"date\" &&\r\n            item.ct != \"select\" &&\r\n            item.ct != \"radio\" &&\r\n            item.ct != \"customDialog\"\r\n          ) {\r\n            item.ct = \"onetext\";\r\n          }\r\n        });\r\n      }\r\n    }, //查询字段控件设置\r\n    addCtrlField(index, row,conditionFields) {\r\n      if(row.ct == \"select\" && !row.option){\r\n        row.option={\r\n          choiceType: \"static\",\r\n          customQuery:{}\r\n        };\r\n      }\r\n      this.editFieldIndex = index;\r\n      this.editField = row;\r\n      this.$refs.templateCtrlFieldDialog.showDialog(row,conditionFields);\r\n    }, //回填查询字段控件设置\r\n    ctrlFieldDialogOnConfirm(field) {\r\n      this.editField = field;\r\n    },\r\n    //双击字段列表中的字段时将该字段加入到显示字段\r\n    fillToCondition(row, event, column) {\r\n      let isIn = this.isInConditionFields(row.name);\r\n      if (!isIn) {\r\n        let field = this.getConditionField(row);\r\n        this.conditionFields.push(field);\r\n      }\r\n    },\r\n    //将字段列表中的已选字段加入到显示字段列表\r\n    allfillToCondition() {\r\n      let selectrows = this.$refs.conditionSettingTable.store.states.selection;\r\n      if (!selectrows || selectrows.length < 1) {\r\n        this.$message({\r\n          message: \"请在左侧列表中选择要作为条件的字段\",\r\n          type: \"warning\"\r\n        });\r\n      }\r\n      selectrows.forEach(obj => {\r\n        let ctrlType = obj.ctrlType;\r\n        if (ctrlType == \"dialog\") {\r\n          ctrlType = \"customDialog\";\r\n        } else if (ctrlType == \"input\") {\r\n          ctrlType = \"onetext\";\r\n        }\r\n        if (obj.type === 'date') {\r\n          ctrlType = \"date\";\r\n        }\r\n        let isTrue = false;\r\n        for (let i = 0; i < this.controlTypes.length; i++) {\r\n          if (ctrlType == this.controlTypes[i].key) {\r\n            isTrue = true;\r\n            break;\r\n          }\r\n        }\r\n        if (!isTrue) {\r\n          ctrlType = \"onetext\";\r\n        }\r\n        this.$set(obj, \"ctrlType\", ctrlType);\r\n        if (!this.isInConditionFields(obj.name)) {\r\n          let field = this.getConditionField(obj);\r\n          this.conditionFields.push(field);\r\n        }\r\n      });\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.conditionFields[index - 1];\r\n          this.$set(\r\n            this.conditionFields,\r\n            index - 1,\r\n            this.conditionFields[index]\r\n          );\r\n          this.$set(this.conditionFields, index, temp);\r\n        }\r\n      } else {\r\n        if (index === this.conditionFields.length - 1) {\r\n          this.$message({\r\n            message: \"已经是列表中最后一位\",\r\n            type: \"warning\"\r\n          });\r\n        } else {\r\n          let i = this.conditionFields[index + 1];\r\n          this.$set(this.conditionFields, index + 1, this.displayFields[index]);\r\n          this.$set(this.conditionFields, index, i);\r\n        }\r\n      }\r\n    },\r\n    //删除显示字段\r\n    remove(index) {\r\n      this.conditionFields.splice(index, 1);\r\n    },\r\n    //判断字段是否已在显示字段列表中\r\n    isInConditionFields(name) {\r\n      let isIn = false;\r\n      if (this.conditionFields && this.conditionFields.length > 0) {\r\n        this.conditionFields.forEach(obj => {\r\n          if (obj.name == name) {\r\n            isIn = true;\r\n            return;\r\n          }\r\n        });\r\n      }\r\n      return isIn;\r\n    },\r\n    getConditionField(field) {\r\n      let option = field.option ? JSON.parse(field.option) : null;\r\n      let ctrlType = field.ctrlType;\r\n      let resultField;\r\n      ctrlType = ctrlType == \"multiselect\" ? \"select\" : ctrlType; //下拉框多选也为下拉框\r\n      if (ctrlType == \"selector\" && option) {\r\n        ctrlType = this.getSelectorOptions(option.selector.type.alias);\r\n        for (var bind in option.bind) {\r\n          if (\r\n            option.bind[bind].json &&\r\n            option.bind[bind].json.name == field.name\r\n          ) {\r\n            resultField = option.bind[bind].key;\r\n            break;\r\n          }\r\n        }\r\n        if (!resultField) {\r\n          resultField = option.bind[0].key;\r\n        }\r\n      }\r\n      if (\"text\" == ctrlType || \"checkbox\" == ctrlType) {\r\n        ctrlType = \"onetext\";\r\n      }\r\n      var colPrefix = this.data.colPrefix;\r\n      return {\r\n        colPrefix: colPrefix,\r\n        name: field.name,\r\n        na: field.name,\r\n        ty: field.type,\r\n        op: field.type == \"varchar\" ? \"equal\" : \"1\",\r\n        cm: field.desc,\r\n        va: \"\",\r\n        vf: (option && option.choiceType) || \"static\",\r\n        ct: ctrlType || \"onetext\",\r\n        qt: this.getQueryType(field.fieldType || field.type, 1),\r\n        option: option,\r\n        controlContent:\r\n          resultField ||\r\n          (option && option.choice) ||\r\n          (option && option[ctrlType]) ||\r\n          \"\"\r\n      };\r\n    },\r\n    getQueryType(type, op) {\r\n      let qt = \"equal\";\r\n      op = parseInt(op);\r\n      switch (type) {\r\n        case \"varchar\":\r\n        case \"clob\":\r\n          if (op) {\r\n            switch (op) {\r\n              case 1:\r\n                qt = \"EQUAL\";\r\n                break;\r\n              case 2:\r\n                qt = \"NOT_EQUAL\";\r\n                break;\r\n              case 3:\r\n                qt = \"LIKE\";\r\n                break;\r\n              case 4:\r\n                qt = \"RIGHT_LIKE\";\r\n                break;\r\n              case 5:\r\n                qt = \"LEFT_LIKE\";\r\n                break;\r\n              case 6:\r\n                qt = \"IN\";\r\n                break;\r\n              default:\r\n                qt = \"LIKE\";\r\n                break;\r\n            }\r\n          }\r\n          break;\r\n        case \"int\":\r\n        case \"number\":\r\n          if (op) {\r\n            switch (op) {\r\n              case 1:\r\n                qt = \"EQUAL\";\r\n                break;\r\n              case 2:\r\n                qt = \"GREAT\";\r\n                break;\r\n              case 3:\r\n                qt = \"LESS\";\r\n                break;\r\n              case 4:\r\n                qt = \"GREAT_EQUAL\";\r\n                break;\r\n              case 5:\r\n                qt = \"LESS_EQUAL\";\r\n                break;\r\n              default:\r\n                qt = \"EQUAL\";\r\n                break;\r\n            }\r\n          }\r\n          break;\r\n        case \"date\":\r\n          if (op) {\r\n            switch (op) {\r\n              case 1:\r\n                qt = \"EQUAL\";\r\n                break;\r\n              case 2:\r\n                qt = \"GREAT\";\r\n                break;\r\n              case 3:\r\n                qt = \"LESS\";\r\n                break;\r\n              case 4:\r\n                qt = \"GREAT_EQUAL\";\r\n                break;\r\n              case 5:\r\n                qt = \"LESS_EQUAL\";\r\n                break;\r\n              case 6:\r\n                qt = \"between\";\r\n                break;\r\n              default:\r\n                qt = \"EQUAL\";\r\n                break;\r\n            }\r\n          }\r\n          break;\r\n        default:\r\n          qt = \"equal\";\r\n          break;\r\n      }\r\n      return qt;\r\n    },\r\n    getSelectorOptions(type) {\r\n      let selector = \"userSelector\";\r\n      switch (type) {\r\n        case \"RoleDialog\":\r\n          selector = \"roleSelector\";\r\n          break;\r\n        case \"PostDialog\":\r\n          selector = \"postSelector\";\r\n          break;\r\n        case \"OrgDialog\":\r\n          selector = \"orgSelector\";\r\n          break;\r\n        default:\r\n          selector = \"userSelector\";\r\n          break;\r\n      }\r\n      return selector;\r\n    },\r\n    getOpOptions(type) {\r\n      let options = {\r\n        varchar: [\r\n          { key: \"equal\", value: \"=\" },\r\n          { key: \"2\", value: \"!=\" },\r\n          { key: \"3\", value: \"like\" },\r\n          { key: \"4\", value: \"left_like\" },\r\n          { key: \"5\", value: \"right_like\" },\r\n          { key: \"6\", value: \"in\" }\r\n        ],\r\n        clob: [\r\n          { key: \"1\", value: \"=\" },\r\n          { key: \"2\", value: \"!=\" },\r\n          { key: \"3\", value: \"like\" },\r\n          { key: \"4\", value: \"left_like\" },\r\n          { key: \"5\", value: \"right_like\" },\r\n          { key: \"6\", value: \"in\" }\r\n        ],\r\n        number: [\r\n          { key: \"1\", value: \"=\" },\r\n          { key: \"2\", value: \">\" },\r\n          { key: \"3\", value: \"<\" },\r\n          { key: \"4\", value: \">=\" },\r\n          { key: \"5\", value: \"<=\" }\r\n        ],\r\n        int: [\r\n          { key: \"1\", value: \"=\" },\r\n          { key: \"2\", value: \">\" },\r\n          { key: \"3\", value: \"<\" },\r\n          { key: \"4\", value: \">=\" },\r\n          { key: \"5\", value: \"<=\" }\r\n        ],\r\n        date: [\r\n          { key: \"1\", value: \"=\" },\r\n          { key: \"2\", value: \">\" },\r\n          { key: \"3\", value: \"<\" },\r\n          { key: \"4\", value: \">=\" },\r\n          { key: \"5\", value: \"<=\" },\r\n          { key: \"6\", value: \"日期范围\" }\r\n        ]\r\n      };\r\n      let otherOption = [\r\n        { key: \"1\", value: \"=\" },\r\n        { key: \"2\", value: \">\" },\r\n        { key: \"3\", value: \"<\" },\r\n        { key: \"4\", value: \">=\" },\r\n        { key: \"5\", value: \"<=\" }\r\n      ];\r\n      if (options[type]) {\r\n        return options[type];\r\n      } else {\r\n        return otherOption;\r\n      }\r\n    },\r\n    changeQt(row, index) {\r\n      let qt = this.getQueryType(row.ty, row.op);\r\n      this.conditionFields[index].qt = qt;\r\n    },\r\n    initMpDisplay(row){\r\n      this.$set(row,\"mpDisplay\",\"2\");\r\n    },\r\n    controlTypeChange(index){\r\n      this.conditionFields[index].controlContent = \"\";\r\n      let option = {...this.option};\r\n      let field = this.conditionFields[index];\r\n      if( field.ct=='select' || field.ct == 'radio'){\r\n            if(field.ct == 'radio'){\r\n              option.choiceType = 'static';\r\n            }\r\n            this.$set(field,\"option\",option);\r\n      }\r\n    },\r\n    setDefaultValue(row){\r\n      let inputErrorMessage = \"\";\r\n      let pattern = /(.)*/;\r\n      if(row.ty == 'number'){\r\n        pattern = /^\\d*$/;\r\n        inputErrorMessage = \"只能输入数字\"\r\n      }\r\n      let defaultValue = \"请输入默认值\"\r\n      if(row.defaultValue){\r\n        defaultValue = row.defaultValue;\r\n      }\r\n      this.$prompt('请输入默认值','提示',{\r\n        confirmButtonText:\"确定\",\r\n        cancelButtonText:\"取消\",\r\n        inputPlaceholder:defaultValue,\r\n        inputPattern:pattern,\r\n        inputErrorMessage:inputErrorMessage,\r\n        inputValue:row.defaultValue\r\n      }).then(({value})=>{\r\n        this.$set(row,\"defaultValue\",value)\r\n      }).catch(()=>{\r\n\r\n      })\r\n    }\r\n  }\r\n};\r\n",null]}