{"remainingRequest":"D:\\jenkins\\workspace\\xq-web-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\xq-web-fvue\\src\\components\\control\\HtTreeselect.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\src\\components\\control\\HtTreeselect.vue","mtime":1667327529137},{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\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\r\nimport utils from \"@/utils.js\";\r\n\r\nexport default {\r\n  name: \"ht-select\",\r\n  props: [\r\n    \"validate\",\r\n    \"value\",\r\n    \"name\",\r\n    \"permission\",\r\n    \"multiple\",\r\n    \"selectlist\",\r\n    \"linkage\",\r\n    \"ganged\",\r\n\t\"tooltipplacement\",\r\n\t\"filterable\",\r\n\t\"allowCreate\",\r\n\t\"styles\"\r\n  ],\r\n  data() {\r\n    return {\r\n      inputVal: [],\r\n      inputValnew: \"\",\r\n      config: {},\r\n      total: 10,\r\n      pageSize: 5,\r\n      currentPage: 1,\r\n      options: [],\r\n\t  tempoptions:[],\r\n\t  defaultProps: {\r\n\t    children: \"children\",\r\n\t    label: \"value\"\r\n\t  }\r\n    };\r\n  },\r\n  watch: {\r\n    inputVal: function(newVal, oldVal) {\r\n      this.$emit(\"input\", newVal);\r\n    }\r\n  },\r\n  computed: {\r\n    inputWriteable: function() {\r\n      return utils.getWriteable(this.permission);\r\n    },\r\n    inputValidate: function() {\r\n      var validateObj = this.$store.state.index.validate;\r\n      return utils.addRequiredOrNot(\r\n        this.permission,\r\n        this.validate,\r\n        validateObj,\r\n        this\r\n      );\r\n    },\r\n    inputName: function() {\r\n      let labeldesc = \"\";\r\n      if(this.$slots && this.$slots.labeldesc && this.$slots.labeldesc[0].children && this.$slots.labeldesc[0].children[0].text){\r\n        labeldesc = this.$slots.labeldesc[0].children[0].text;\r\n        return this.name ? this.name : utils.getName()+ \"-\" +labeldesc;\r\n      }else{\r\n        return this.name ? this.name : utils.getName();\r\n      }\r\n    }\r\n  },\r\n  mounted() {\r\n    this.options = this.selectlist ? this.selectlist : [];\r\n    const _me = this;\r\n    const exp = this.linkage;\r\n    if (exp && exp.length > 0 && this.$parent.isView) {\r\n      const pInst = utils.getOnlineFormInstance(_me);\r\n      _me.traces = {};\r\n\r\n      exp.forEach(m => {\r\n        m.effect.forEach(m => {\r\n          const path = `permission.fields.${m.target}`;\r\n          const oldVal = utils.getValueByPath(pInst, path);\r\n          _me.traces[path] = oldVal;\r\n        });\r\n\r\n        _me.$watch(\r\n          \"inputVal\",\r\n          function(newVal, oldVal) {\r\n            if (newVal !== oldVal && m.value == newVal) {\r\n              m.effect.forEach(ef => {\r\n                _me.$store.dispatch(\"index/delValidate\");\r\n                const p = `permission.fields.${ef.target}`;\r\n                let val = _me.traces[p];\r\n                if (m.value === newVal) {\r\n                  val = ef.type;\r\n                }\r\n                _me.$store.dispatch(\"index/linkageValidate\", ef);\r\n                utils.setValueByPath(pInst, p, val);\r\n              });\r\n            }\r\n          },\r\n          { immediate: true }\r\n        );\r\n      });\r\n    }\r\n    const ganged = this.ganged;\r\n    //判断是否有参数绑定\r\n    if (ganged && ganged.bind && this.config) {\r\n      const bind = ganged.bind;\r\n      const formVm = utils.getOnlineFormInstance(_me);\r\n      formVm.$watch(\r\n        \"data\",\r\n        function(newVal, oldVal) {\r\n          for (var key in bind) {\r\n            const pInst = utils.getOnlineFormInstance(_me);\r\n            const val = utils.getValueByPath(pInst, bind[key]);\r\n            _me.search(false, val);\r\n          }\r\n        },\r\n        { deep: true }\r\n      );\r\n    }\r\n\r\n    //回显\r\n    if (\r\n      this.inputVal &&\r\n      this.inputVal.constructor == Array &&\r\n      this.inputVal.length > 0 &&\r\n      this.inputValnew == \"\" &&\r\n      this.selectlist\r\n    ) {\r\n      var inputValArr = [];\r\n      if (!(this.inputVal instanceof Array)) {\r\n        this.inputVal = this.inputVal.split(\",\");\r\n      }\r\n      for (var i = 0; i < this.inputVal.length; i++) {\r\n        for (var a = 0; a < this.selectlist.length; a++) {\r\n          if (this.selectlist[a].key == this.inputVal[i]) {\r\n            inputValArr.push(this.selectlist[a].value);\r\n            break;\r\n          }\r\n        }\r\n      }\r\n      this.inputValnew = inputValArr.join(\",\");\r\n    } else {\r\n      if (\r\n        this.inputVal &&\r\n        this.inputVal.length > 0 &&\r\n        this.inputVal instanceof Array\r\n      ) {\r\n        this.inputVal = this.inputVal.split(\",\");\r\n      } else {\r\n        this.inputValnew = this.inputVal;\r\n      }\r\n      if (this.inputVal != \"\" && this.options.length != 0) {\r\n        for (let i = 0; i < this.options.length; i++) {\r\n          if (this.options[i].key == this.inputVal) {\r\n            this.inputValnew = this.options[i].value;\r\n            break;\r\n          }\r\n        }\r\n      }\r\n    }\r\n  },\r\n  created() {\r\n    this.options = this.selectlist ? this.selectlist : [];\r\n    //动态传入\r\n    if (this.ganged && this.ganged.alias && this.options.length < 1) {\r\n      this.$store.dispatch(\"form/getByAliasCq\", this.ganged.alias).then(res => {\r\n        this.config = res;\r\n        this.search();\r\n      });\r\n    }\r\n    if (this.value && this.value.indexOf(\"[\") == 0) {\r\n      var selectVal = this.value.substr(0, this.value.length - 1);\r\n      selectVal = selectVal.substr(1);\r\n      if (selectVal === \"\") {\r\n        this.inputVal = selectVal;\r\n        return;\r\n      }\r\n      var selectVal2 = selectVal.split(\",\");\r\n      var selectValnew = [];\r\n      for (var i = 0; i < selectVal2.length; i++) {\r\n        selectValnew.push(selectVal2[i].trim());\r\n      }\r\n      this.inputVal = selectValnew;\r\n    } else {\r\n      this.inputVal = this.value;\r\n    }\r\n    this.$validator = this.$root.$validator;\r\n  },\r\n  methods: {\r\n    clear() {\r\n\t  if(this.multiple){\r\n\t\tthis.tempoptions = [];\r\n\t\tthis.$nextTick(function() {\r\n\t\t  this.$refs.treeselectElTree.setCheckedKeys([],true);\r\n\t    })\r\n\t  }else{\r\n\t\tthis.$refs.treeselectElTree.setCurrentNode({});\r\n\t  }\r\n    },\r\n    clickNative: function() {\r\n      //动态传入\r\n      if (this.ganged && this.ganged.alias && this.options.length < 1) {\r\n        this.$store\r\n          .dispatch(\"form/getByAliasCq\", this.ganged.alias)\r\n          .then(res => {\r\n            this.config = res;\r\n            this.search();\r\n          });\r\n      }\r\n    },\r\n    selectBlur: function(val) {\r\n      this.search();\r\n    },\r\n\thandleCheckChange(data){\r\n\t\tlet checkedNodes = this.$refs.treeselectElTree.getCheckedNodes();\r\n\t\tthis.inputVal = [];\r\n\t\tthis.tempoptions = checkedNodes;\r\n\t\tfor(let data of checkedNodes) {\r\n\t\t\tthis.inputVal.push(data.key);\r\n\r\n\t\t}\r\n\t},\r\n\thandleNodeClick(data) {\r\n\t  if(!this.multiple){\r\n\t\tthis.inputVal = data.value;\r\n\t\tthis.$refs.treeselect.blur();\r\n\t\tsetTimeout(() => {\r\n\t\t  this.$validator.validate();\r\n\t\t});\r\n\t  }\r\n\r\n\t},\r\n\tfilterNode(value, data) {\r\n\t\tif (!value) return true;\r\n\t\treturn data.value.indexOf(value) !== -1;\r\n\t},\r\n\tfilterMethod(query) {\r\n\t\tthis.$refs.treeselectElTree.filter(query);\r\n\t},\r\n    remoteMethod: function(val) {\r\n      if (val) {\r\n        this.search(false, val);\r\n      } else {\r\n        this.param = \"\";\r\n        this.search();\r\n      }\r\n    },\r\n    handleCurrentChange: function(currentPage) {\r\n      this.currentPage = currentPage;\r\n      this.search(currentPage);\r\n    },\r\n    search(currentPage, param) {\r\n      if (!this.config) return;\r\n      var str = this.config;\r\n      const _this = this;\r\n      var ganged = this.ganged;\r\n      this.pageSize = str.pageSize;\r\n      // if(str.needPage === 1){\r\n      var pageBean = {\r\n        pageBean: {\r\n          page: currentPage ? currentPage : 1,\r\n          pageSize: str.pageSize,\r\n          showTotal: \"true\"\r\n        }\r\n      };\r\n      if (param) {\r\n        if (str.dsType == \"dataSource\") {\r\n          let Base64 = require(\"js-base64\").Base64;\r\n          str.currentPage = currentPage ? currentPage : 1;\r\n          if (JSON.stringify(ganged.bind) === \"{}\") {\r\n            str.queryData = Base64.encode(\r\n              JSON.stringify([{ key: ganged.valueBind, value: param }])\r\n            );\r\n          } else {\r\n            var queryData = [];\r\n            for (var key in ganged.bind) {\r\n              const pInst = utils.getOnlineFormInstance(_this);\r\n              const val = utils.getValueByPath(pInst, ganged.bind[key]);\r\n              if (val) {\r\n                queryData.push({ key: key, value: val });\r\n              } else {\r\n                queryData.push({ key: key, value: param });\r\n              }\r\n            }\r\n            str.queryData = Base64.encode(JSON.stringify(queryData));\r\n          }\r\n        } else {\r\n          var templatePa = this.config.dataParam;\r\n          if (this.config.requestType == \"POST\" && templatePa) {\r\n            var conditionfield = JSON.parse(str.conditionfield);\r\n            conditionfield.forEach(ele => {\r\n              const pInst = utils.getOnlineFormInstance(_this);\r\n              const val = utils.getValueByPath(pInst, ganged.bind[ele.field]);\r\n              if (val) {\r\n                templatePa = templatePa.replace(\r\n                  new RegExp(\"\\\\{\" + ele.field + \"\\\\}\", \"g\"),\r\n                  val\r\n                );\r\n              } else {\r\n                templatePa = templatePa.replace(\r\n                  new RegExp(\"\\\\{\" + ele.field + \"\\\\}\", \"g\"),\r\n                  param\r\n                );\r\n              }\r\n            });\r\n          } else {\r\n          }\r\n          str.pageBean = utils.parseToJson(templatePa);\r\n        }\r\n      } else {\r\n        str.pageBean = pageBean;\r\n        str.currentPage = currentPage ? currentPage : 1;\r\n        str.queryData = \"\";\r\n      }\r\n      //}\r\n      this.$store.dispatch(\"form/selectQuery\", str).then(res => {\r\n\t\tif(this.config &&this.config.dsType === \"restful\"){\r\n\t\t\t_this.options = res.rows;\r\n\t\t\treturn ;\r\n\t\t}\r\n        _this.total = res.total;\r\n        _this.options = [];\r\n        res.rows.forEach(m => {\r\n          var option = {};\r\n          if (_this.ganged.valueBind) {\r\n            option.key = m[ganged.valueBind];\r\n          }\r\n          if (_this.ganged.labelBind) {\r\n            option.value = m[ganged.labelBind];\r\n          }\r\n          _this.options.push(option);\r\n        });\r\n        for (let i = 0; i < _this.options.length; i++) {\r\n          if (_this.inputValnew == _this.options[i].key) {\r\n            _this.inputValnew = _this.options[i].value;\r\n            break;\r\n          }\r\n        }\r\n      });\r\n    }\r\n  }\r\n};\r\n",null]}