{"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\\eipControl\\EipCascader.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-fvue\\src\\components\\eipControl\\EipCascader.vue","mtime":1667327529200},{"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\r\nimport utils from \"@/utils.js\";\r\nimport hotentUtils from \"@/hotent-ui-util.js\";\r\nimport sub_pio_mixin from \"@/sub-permission-mixin.js\";\r\n\r\nexport default {\r\n  name: \"eip-cascader\",\r\n  props: [\r\n    \"validate\",\r\n    \"value\",\r\n    \"name\",\r\n    \"permission\",\r\n    \"atter\",\r\n    \"inputType\",\r\n    \"placeholder\",\r\n    \"ganged\",\r\n  ],\r\n  mixins: [sub_pio_mixin],//混入方式引入表单组件中公共属性，处理子表、孙表行内联动（切面修改permission_sub）\r\n  data() {\r\n    let _this = this;\r\n    return {\r\n      lazyLoadResolve: null,\r\n      props: {\r\n        value: _this.ganged.valueBind,\r\n        label: _this.ganged.labelBind,\r\n        lazy: true,\r\n        lazyLoad(node, resolve) {\r\n          _this.dynamicLoadOption(node, resolve);\r\n        },\r\n      },\r\n    };\r\n  },\r\n  computed: {\r\n    inputVal: {\r\n      get() {\r\n        if (this.value) {\r\n          if (this.value.constructor == String) {\r\n            if (!this.value) {\r\n              return \"\";\r\n            }\r\n            let cascaderModel = JSON.parse(this.value);\r\n            if (!this.inputWriteable) {\r\n              return cascaderModel.pathLabels.join(\"/\");\r\n            }\r\n            return cascaderModel.path;\r\n          }\r\n          return this.value.path;\r\n        } else {\r\n          return this.value;\r\n        }\r\n      },\r\n      set(val) {\r\n        let selectValArr = this.$refs[this.atter].getCheckedNodes(false);\r\n        if (selectValArr.length > 0 && selectValArr[0] !== null) {\r\n          let result = {\r\n            path: selectValArr[0].path,\r\n            pathLabels: selectValArr[0].pathLabels,\r\n          };\r\n          this.$emit(\"input\", JSON.stringify(result));\r\n        }\r\n      },\r\n    },\r\n    inputWriteable: function () {\r\n      return utils.getWriteable(this.permission_sub);\r\n    },\r\n    inputValidate: function () {\r\n      var validateObj = this.$store.state.index.validate;\r\n      return utils.addRequiredOrNot(\r\n        this.permission_sub,\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 (\r\n        this.$slots &&\r\n        this.$slots.labeldesc &&\r\n        this.$slots.labeldesc[0].children &&\r\n        this.$slots.labeldesc[0].children[0].text\r\n      ) {\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  created() {\r\n    if (\r\n      !this.ganged ||\r\n      !this.ganged.alias ||\r\n      !this.ganged.valueBind ||\r\n      !this.ganged.labelBind\r\n    ) {\r\n      const msg = `级联控件【${this.inputName}】未正确的设置选项配置`;\r\n      this.$message.error(msg);\r\n      throw msg;\r\n    }\r\n    // 动态选项所绑定的关联查询返回了查询结果\r\n    this.$on(\"dynamic-options:update\", this.dynamicOptionResponse);\r\n    this.$validator = this.$root.$validator;\r\n  },\r\n  methods: {\r\n    // 动态加载选项\r\n    dynamicLoadOption: function (node, resolve) {\r\n      this.lazyLoadResolve = resolve;\r\n      setTimeout(() => {\r\n        const params = this.prepareLoadParams(this.ganged.bind, node);\r\n        this.$emit(\"dynamic-options:load\", this.ganged.alias, params);\r\n      }, 0);\r\n    },\r\n    // 准备查询参数\r\n    prepareLoadParams: function (condition, node) {\r\n      let params = {};\r\n      // 根节点，没有上一级节点时获取不到查询参数值\r\n      if (node.level == 0) {\r\n        return params;\r\n      }\r\n\r\n      if (condition && !hotentUtils.isEmpty(condition)) {\r\n        Object.keys(condition).forEach((k) => {\r\n          const val = node.data[condition[k]];\r\n          if (!hotentUtils.isEmpty(val)) {\r\n            params[k] = val;\r\n          }\r\n        });\r\n      }\r\n      return params;\r\n    },\r\n    // 动态加载选项返回值处理\r\n    dynamicOptionResponse: function (alias, data) {\r\n      if (this.lazyLoadResolve) {\r\n        this.lazyLoadResolve(data);\r\n        // 动态加载选项后触发组件视图更新\r\n        this.$refs[this.atter].computePresentContent();\r\n      }\r\n    },\r\n  },\r\n};\r\n",null]}