{"remainingRequest":"D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\cssc-fvue\\src\\components\\eipControl\\EipTreeselect.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\cssc-fvue\\src\\components\\eipControl\\EipTreeselect.vue","mtime":1667804639118},{"path":"D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\cssc-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//\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\nimport req from \"@/request.js\";\r\nexport default {\r\n name: \"eip-treeselect\",\r\n props: [\r\n \"validate\",\r\n \"value\",\r\n \"name\",\r\n \"permission\",\r\n \"multiple\",\r\n \"selectlist\",\r\n \"ganged\",\r\n \"filterable\",\r\n \"allowCreate\",\r\n \"styles\",\r\n \"customQuery\"\r\n ],\r\n mixins: [sub_pio_mixin],//混入方式引入表单组件中公共属性,处理子表、孙表行内联动(切面修改permission_sub_sub)\r\n data() {\r\n return {\r\n config: {},\r\n total: 10,\r\n pageSize: 5,\r\n currentPage: 1,\r\n options: [],\r\n tempoptions: [],\r\n valueDesc: \"\",\r\n tagFormatValue: [],\r\n defaultProps: {\r\n children: \"children\",\r\n label: \"value\"\r\n },\r\n newValidate: null,\r\n curSubIndex: null\r\n };\r\n },\r\n watch: {\r\n valueDesc: function(newVal, oldVal) {\r\n if (newVal && newVal != oldVal) {\r\n this.tagFormatValue = newVal.split(\",\");\r\n }\r\n }\r\n },\r\n computed: {\r\n inputVal: {\r\n get() {\r\n if (this.multiple) {\r\n if (this.value) {\r\n if (this.$refs.treeselectElTree) {\r\n let checkedNodes = this.$refs.treeselectElTree.getCheckedNodes();\r\n for (let data of checkedNodes) {\r\n if (!this.value.split(\",\").includes(data.key)) {\r\n this.$refs.treeselectElTree.setChecked(data, false);\r\n }\r\n }\r\n }\r\n return this.value.split(\",\");\r\n } else {\r\n if (this.$refs.treeselectElTree) {\r\n let checkedNodes = this.$refs.treeselectElTree.getCheckedNodes();\r\n for (let data of checkedNodes) {\r\n this.$refs.treeselectElTree.setChecked(data, false);\r\n }\r\n }\r\n return [];\r\n }\r\n } else if (this.value || this.value === 0) {\r\n return this.value + \"\";\r\n } else {\r\n return this.value;\r\n }\r\n },\r\n set(val) {\r\n if (this.multiple) {\r\n this.$emit(\"input\", val.join(\",\"));\r\n } else {\r\n this.$emit(\"input\", val);\r\n if (!this.multiple && val) {\r\n //判断对话框是否绑定了关联查询\r\n if(this.customQuery&&this.customQuery.custQueryJson&&this.customQuery.custQueryJson.length>0){\r\n let custQueryJson = this.customQuery.custQueryJson;\r\n for(let i=0;i0){\r\n this.doQuery(custQueryJson[i]);\r\n }else{\r\n console.error(\"[\"+custQueryJson[i].comment+\"]关联查询取值参数未绑定表单字段\");\r\n }\r\n }\r\n }\r\n }\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 if (this.newValidate) {\r\n return this.newValidate;\r\n }\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 mounted() {\r\n this.options = this.selectlist ? this.selectlist : [];\r\n const _me = this;\r\n let { subScopeEl } = hotentUtils.getSubScopeElAndIndex(_me.$el);\r\n if (subScopeEl) {\r\n this.curSubIndex = subScopeEl.dataset[\"index\"];\r\n }\r\n const ganged = this.ganged;\r\n //判断是否有参数绑定\r\n if (\r\n ganged &&\r\n ganged.bind &&\r\n JSON.stringify(ganged.bind) != \"{}\" &&\r\n this.config\r\n ) {\r\n const bind = ganged.bind;\r\n const formVm = utils.getOnlineFormInstance(_me);\r\n for (var key in bind) {\r\n let paramDom = null;\r\n if (this.curSubIndex == null) {\r\n paramDom = document.querySelector('[model-name=\"' + bind[key] + '\"]');\r\n } else {\r\n let subFiledName = bind[key].split(\".\")[3];\r\n paramDom = subScopeEl.querySelector(\r\n '[model-name=\"item.' + subFiledName + '\"]'\r\n );\r\n }\r\n if (paramDom && paramDom.__vue__) {\r\n paramDom.__vue__.$watch(\"value\", function(newVal, oldVal) {\r\n if (newVal != oldVal) {\r\n _me.search(false, newVal, true);\r\n }\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 (\r\n this.ganged &&\r\n this.ganged.alias &&\r\n this.options.length < 1 &&\r\n this.ganged\r\n ) {\r\n const this_ = this;\r\n this_.$store.dispatch(\"form/getByAliasCq\", this_.ganged.alias).then(res => {\r\n this_.config = res;\r\n let objIsEmpty = this_.objIsEmpty(this_.ganged.bind);\r\n if (this_.ganged && !objIsEmpty) {\r\n this_.handelInitGangedsearch();\r\n } else {\r\n this_.search(false, \"\");\r\n }\r\n });\r\n }\r\n this.$validator = this.$root.$validator;\r\n },\r\n methods: {\r\n //判断对象里面的值是否为空\r\n objIsEmpty(obj){\r\n for(let key in obj){\r\n if(obj[key]){\r\n return false;\r\n }\r\n }\r\n return true;\r\n },\r\n async doQuery(param){\r\n let paramLoadData = [];\r\n const pInst = utils.getOnlineFormInstance(this);\r\n //获取关联查询绑定的表单参数\r\n for(let i=0;i {\r\n //判断是否有关联查询数据返回\r\n if(res.data.rows.length>0){\r\n //获取关联查询返回的表单参数\r\n for(let i=0;i {\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 handleCheckChange(data) {\r\n if (this.multiple) {\r\n let checkedNodes = this.$refs.treeselectElTree.getCheckedNodes();\r\n let modelValue = [];\r\n this.tempoptions = checkedNodes;\r\n for (let data of checkedNodes) {\r\n modelValue.push(data.key);\r\n }\r\n this.$emit(\"input\", modelValue.join(\",\"));\r\n }\r\n },\r\n handleNodeClick(data) {\r\n this.$refs.treeselectElTree.setChecked(data, true);\r\n if (!this.multiple) {\r\n this.$emit(\"input\", data.key);\r\n if (data.key) {\r\n //判断对话框是否绑定了关联查询\r\n if(this.customQuery&&this.customQuery.custQueryJson&&this.customQuery.custQueryJson.length>0){\r\n let custQueryJson = this.customQuery.custQueryJson;\r\n for(let i=0;i0){\r\n this.doQuery(custQueryJson[i]);\r\n }else{\r\n console.error(\"[\"+custQueryJson[i].comment+\"]关联查询取值参数未绑定表单字段\");\r\n }\r\n }\r\n }\r\n }\r\n this.$refs.treeselect.blur();\r\n setTimeout(() => {\r\n this.$validator.validate();\r\n });\r\n } else if (this.multiple) {\r\n let checkedNodes = this.$refs.treeselectElTree.getCheckedNodes();\r\n let modelValue = [];\r\n this.tempoptions = checkedNodes;\r\n for (let data of checkedNodes) {\r\n modelValue.push(data.key);\r\n }\r\n this.$emit(\"input\", modelValue.join(\",\"));\r\n }\r\n },\r\n filterNode(value, data) {\r\n if (!value) return true;\r\n return data.value.indexOf(value) !== -1;\r\n },\r\n filterMethod(query) {\r\n this.$refs.treeselectElTree.filter(query);\r\n },\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, gangedChange) {\r\n this.options = [];\r\n if (gangedChange) {\r\n this.$emit(\"input\", \"\");\r\n }\r\n let objIsEmpty = this.objIsEmpty(this.ganged.bind);\r\n if (\r\n !this.config ||\r\n (this.ganged.bind && !objIsEmpty && !param)\r\n )\r\n 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(\r\n pInst,\r\n ganged.bind[key],\r\n this.curSubIndex\r\n );\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 if (this.config && this.config.dsType === \"restful\") {\r\n _this.options = res.rows;\r\n //tree数组转list\r\n this.addSelectList(_this.options);\r\n //处理只读回填显示\r\n if (\r\n _this.inputVal &&\r\n _this.inputVal.constructor == Array &&\r\n _this.inputVal.length > 0\r\n ) {\r\n for (let i = 0; i < _this.inputVal.length; i++) {\r\n this.findDesc(_this.options, _this.inputVal[i]);\r\n }\r\n //默认选中树节点\r\n if (this.inputWriteable) {\r\n this.$refs.treeselectElTree.setCheckedKeys(_this.inputVal);\r\n }\r\n } else {\r\n this.findDesc(_this.options, _this.inputVal);\r\n }\r\n if (this.valueDesc != \"\") {\r\n this.valueDesc = this.valueDesc.substring(\r\n 0,\r\n this.valueDesc.length - 1\r\n );\r\n }\r\n\r\n return;\r\n }\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\r\n //tree数组转list\r\n this.addSelectList(_this.options);\r\n if (\r\n _this.inputVal &&\r\n _this.inputVal.constructor == Array &&\r\n _this.inputVal.length > 0\r\n ) {\r\n for (let j = 0; j < _this.inputVal.length; j++) {\r\n this.findDesc(_this.options, _this.inputVal[j]);\r\n }\r\n //默认选中树节点\r\n this.$nextTick(()=>{\r\n _this.$refs.treeselectElTree && _this.$refs.treeselectElTree.setCheckedKeys(_this.inputVal);\r\n })\r\n } else {\r\n this.findDesc(_this.options, _this.inputVal);\r\n }\r\n if (this.valueDesc != \"\") {\r\n this.valueDesc = this.valueDesc.substring(\r\n 0,\r\n this.valueDesc.length - 1\r\n );\r\n }\r\n });\r\n },\r\n findDesc(list, key) {\r\n if (list && list.length > 0) {\r\n for (let i = 0; i < list.length; i++) {\r\n if (list[i].key == key) {\r\n this.valueDesc += list[i].value + \",\";\r\n return;\r\n }\r\n if (list[i].children) {\r\n this.findDesc(list[i].children, key);\r\n }\r\n }\r\n }\r\n },\r\n addSelectList(list) {\r\n if (list && list.length > 0) {\r\n list.forEach(l => {\r\n this.tempoptions.push(l);\r\n if (l.children) {\r\n this.addSelectList(l.children);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n};\r\n",null]}