{"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\\ValidataProperty.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\src\\components\\form\\ValidataProperty.vue","mtime":1675071992022},{"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//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n//\n\n    import Draggable from \"vuedraggable\";\n    import {Base64} from \"js-base64\";\n    import utils from \"@/hotent-ui-util.js\";\n    import {validateRules} from \"@/api/controlsConfig.js\";\n\n    export default {\n  name: \"layout-property\",\n  components: { Draggable },\n  props: [\"data\", \"boData\", \"fieldIndexData\"],\n  data() {\n    return {\n      validateRules,\n      isAddValidata:true,\n      dialogMethodVisible: false,\n      methodIndex: 0,\n      diyScript: \"\",\n      isFilter: false,\n      specialValidate: [\"confirmed\", \"isAfter\", \"isBefore\", \"isStart\", \"isEnd\"],\n      toolmethod: \"\",\n      cmOptions: {\n        value: \"\",\n        mode: \"javascript\",\n        readOnly: false,\n        tabSize: 2,\n        theme: \"base16-light\",\n        lineNumbers: true,\n        line: true\n      },\n      requiredIndex: -1,\n    };\n  },\n  computed: {\n    validateList: function() {\n      var rule = this.data.options.validateType;\n      if (!rule) {\n        return [];\n      }\n      //判断是否只有一个必填校验规并且选择了必填校验\n      if(rule==\"required\" &&  this.data.options.validate==\"'required'\"){\n        return this.data.options.validateList;\n      }\n      const filterRule = rule.split(\"|\");\n      return this.validateRules.filter(val => {\n        var res = true;\n        if (filterRule.indexOf(val.key) != -1) {\n          if (this.isFilter) {\n            const showValidate = this.data.options.validateList.find(function(\n              obj\n            ) {\n              return obj.key == val.key;\n            });\n            if (showValidate != undefined) {\n              res = false;\n            }\n          }\n        } else {\n          res = false;\n        }\n        return res;\n      });\n    }\n  },\n  created() {\n    this.$validator = this.$root.$validator;\n  },\n  watch: {\n    fieldIndexData: function(newVal){\n      if(newVal.fieldName){\n        this.data.options.validateList.forEach((v,i) =>{\n          if(v.key == \"required\"){\n            this.data.options.validateList.splice(i,1);\n          }\n        })\n        let k = {};\n        k.key = \"required\";\n        k.name = \"必填\";\n        this.data.options.validateList.push(k)\n        this.changeValidate(k);\n      }\n      this.requiredIndex = -1;\n      for(let i=0; i<this.data.options.validateList.length; i++){\n        if(this.data.options.validateList[i].key == \"required\" && newVal.fieldName){\n          this.requiredIndex = i;\n          return;\n        }else if(this.data.options.validateList[i].key == \"required\"){\n          this.data.options.validateList.splice(i,1);\n        }\n      }\n    }\n  },\n  methods: {\n    async diyScriptChange(myValue) {\n      const myField = this.$refs.scriptText;\n      var value = myValue;\n      if (myField.selectionStart || myField.selectionStart === 0) {\n        var startPos = myField.selectionStart;\n        var endPos = myField.selectionEnd;\n        this.toolmethod =\n          myField.value.substring(0, startPos) +\n          value +\n          myField.value.substring(endPos, myField.value.length);\n        await this.$nextTick(); // 这句是重点, 圈起来\n        myField.focus();\n        myField.setSelectionRange(endPos + value.length, endPos + value.length);\n      } else {\n        this.toolmethod += value;\n      }\n    },\n    methodOk() {\n      this.data.options.validateList[this.methodIndex].value = Base64.encode(\n        this.toolmethod\n      );\n      this.data.options.validate = this.newMergeValidate(\n        this.data.options.validateList\n      );\n      this.dialogMethodVisible = false;\n    },\n    methodClick(index) {\n      this.methodIndex = index;\n      this.dialogMethodVisible = true;\n      if (!this.data.options.validateList[index].value) return;\n      this.toolmethod = Base64.decode(\n        this.data.options.validateList[index].value\n      );\n    },\n    handleGridColumnRemove(index) {\n      this.data.options.validateList.splice(index, 1);\n    },\n    filterBoAttr(obj) {\n      return obj.filter(val => {\n        return val.name != this.data.target;\n      });\n    },\n    end(evt) {\n      this.isFilter = false;\n      let validateList = this.data.options.validateList;\n      this.data.options.validate = this.newMergeValidate(validateList);\n    },\n    appendValidate(item) {\n      let validateList = this.data.options.validateList;\n      this.data.options.validate = this.newMergeValidate(validateList);\n    },\n    changeValidate(item) {\n      const showValidate = this.validateRules.find(function(obj) {\n        return obj.key == item.key;\n      });\n      item.inputType = showValidate.inputType;\n      item.name = showValidate.name;\n      item.isInput = showValidate.isInput;\n      item.type = showValidate.type;\n      if(this.validateList.length!=1){\n        delete item.value;\n      }\n      if (!item.isInput) {\n        let validateList = this.data.options.validateList;\n        this.data.options.validate = this.newMergeValidate(validateList);\n      }\n    },\n\n    addValidata() {\n      this.isFilter = true;\n      if (!this.data.fieldPath) {\n        this.$validator.validateAll(\"field\");\n        this.$message.warning(\"请选择需要修改的组件或绑定属性\");\n        return;\n      }\n      this.isAddValidata = true;\n      //判断是否只有一个必填校验规\n      if(this.data.options.validateType==\"required\" && this.data.options.validateList.length == 1){\n        this.$message.warning(\"当前选择的控件只有一个必填校验\");\n        return;\n      }\n      if (this.data.options.validateList == undefined) {\n        this.data.options.validateList = [];\n      } else if (this.data.options.validateList.length > 0) {\n        const validata = this.data.options.validateList[\n          this.data.options.validateList.length - 1\n        ];\n        if (validata.key == \"\") {\n          this.$validator.validate(\"field.validatorSelect\");\n          return;\n        } else if (validata.key == \"between\") {\n          if (\n            validata.start == undefined ||\n            validata.start == \"\" ||\n            validata.end == undefined ||\n            validata.end == \"\"\n          ) {\n            this.$validator.validate(\"field.validatorValue\");\n            return;\n          }\n        } else if (\n          validata.inputType == \"select\" &&\n          (validata.value == undefined || validata.value.length == 0)\n        ) {\n          this.$validator.validate(\"field.validatorSelectInput\");\n          return;\n        } else if (\n          validata.inputType == \"input\" &&\n          (validata.value == undefined || validata.value.length == 0)\n        ) {\n          this.$validator.validate(\"field.validatorValue\");\n          return;\n        } else if (\n          validata.inputType == \"button\" &&\n          (validata.value == undefined || validata.value.length == 0)\n        ) {\n          this.$message.warning(\"请输入js方法校验\");\n          return;\n        }\n      }\n\n      this.$nextTick(() => {\n        setTimeout(() => {\n          this.data.options.validateList.push({ key: \"\", name: \"\" });\n        });\n      });\n    },\n\n    removeValidata(index) {\n      this.isFilter = false;\n      this.data.options.validateList.splice(index, 1);\n      this.data.options.validate = this.newMergeValidate(\n        this.data.options.validateList\n      );\n    },\n    getValidate(item) {\n      var validate = item.key;\n      if (item.isInput) {\n        if (item.inputType == \"select\") {\n          if(item.name == \"相同的值\" || item.name == \"日期不晚于\" || item.name == \"日期晚于\"\n            || item.name == \"日期早于\" || item.name == \"日期不早于\"){\n            if(item.value.split(\".\").length == 4){//子表\n              validate = item.key + \":\" + \"item.\"+item.value.split(\".\")[3];\n            }else if(item.value.split(\".\").length == 5){//孙表\n              validate = item.key + \":\" + \"item.\"+item.value.split(\".\")[4];\n            }else{\n              validate = item.key + \":\" + item.value;\n            }\n          }else{\n            validate = item.key + \":\" + item.value;\n          }\n        } else if (item.inputType == \"input\") {\n          validate = item.key + \":\" + item.value;\n        } else if (item.inputType == \"twoInput\") {\n          validate = \"between:\" + item.start + \",\" + item.end;\n        } else if (item.inputType == \"button\") {\n          validate = item.key + \":\" + item.value;\n        }\n      }\n      return validate;\n    },\n    newMergeValidate(validateList) {\n      var ref = false;\n      var validateObj1 = \"\";\n      var validateObj2 = [];\n      const me_ = this;\n      validateList.forEach(obj => {\n        const validate = me_.getValidate(obj);\n        validateObj2.push(validate);\n        const key = utils.stringSplit(validate, \":\")[0];\n        const value = utils.stringSplit(validate, \":\")[1];\n        var splitVar = \"\";\n        var op = \"\";\n        if (validateObj1 != \"\") {\n          op = \"|\";\n          splitVar = \"+\";\n        }\n        if (me_.specialValidate.indexOf(key) > -1) {\n          validateObj1 =\n            validateObj1 + splitVar + \"'\" + op + key + \":'+\" + value;\n          ref = true;\n        } else {\n          validateObj1 = validateObj1 + splitVar + \"'\" + op + validate + \"'\";\n        }\n      });\n      var validateStr = \"\";\n      if (ref) {\n        validateStr = validateObj1;\n      } else {\n        if (validateObj2.length == 0) {\n          validateStr = \"\";\n        }else{\n          validateStr = \"'\" + validateObj2.join(\"|\") + \"'\";\n        }\n      }\n      return validateStr;\n    }\n  }\n};\n",null]}