{"remainingRequest":"D:\\jenkins\\workspace\\cssc-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\cssc-fvue\\src\\components\\eipControl\\EipAutocomplete.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\cssc-fvue\\src\\components\\eipControl\\EipAutocomplete.vue","mtime":1667804638962},{"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\r\nimport utils from \"@/utils.js\";\r\nimport hotentUiUtils from '@/hotent-ui-util.js'\r\nimport sub_pio_mixin from \"@/sub-permission-mixin.js\";\r\n\r\nexport default {\r\n name: \"eip-autocomplete\",\r\n props: [\r\n \"validate\",\r\n \"value\",\r\n \"name\",\r\n \"permission\",\r\n \"autoTiplist\",\r\n \"linkage\",\r\n \"ganged\",\r\n \"styles\",\r\n \"placeholder\"\r\n ],\r\n mixins: [sub_pio_mixin],//混入方式引入表单组件中公共属性,处理子表、孙表行内联动(切面修改permission_sub)\r\n data() {\r\n return {\r\n inputValnew: \"\",\r\n options: [],\r\n config: {},\r\n newValidate:null,\r\n writeable:true,\r\n };\r\n },\r\n computed: {\r\n inputVal: {\r\n get: function() {\r\n return this.value;\r\n },\r\n set: function(val) {\r\n this.$emit(\"input\", val);\r\n }\r\n },\r\n inputWriteable: function() {\r\n if(!this.writeable){\r\n return this.writeable;\r\n }\r\n var getWriteable = utils.getWriteable(this.permission_sub);\r\n if (!getWriteable && this.inputVal.length > 0) {\r\n var inputValArr = [];\r\n if (this.inputVal && this.options.length > 0) {\r\n for (var a = 0; a < this.options.length; a++) {\r\n if (this.options[a].key == this.inputVal) {\r\n inputValArr.push(this.options[a].value);\r\n break;\r\n }\r\n }\r\n }\r\n this.inputValnew = inputValArr.join(\",\");\r\n }\r\n return getWriteable;\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 calInputVal: function(){\r\n return this.inputWriteable?this.inputValnew:this.inputVal;\r\n }\r\n },\r\n mounted() {\r\n const _me = this;\r\n const exp = this.linkage;\r\n const { subScopeEl, index } = hotentUiUtils.getSubScopeElAndIndex(this.$el);\r\n if (subScopeEl && (subScopeEl.getAttribute(\"row_readonly\") == 'true' || subScopeEl.getAttribute(\"row_readonly\") === true)) {\r\n this.writeable = false;\r\n }\r\n\r\n if (exp && exp.length > 0 && this.$parent.isView) {\r\n const pInst = utils.getOnlineFormInstance(_me);\r\n _me.traces = {};\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 m.effect.forEach(ef => {\r\n const p = `permission.fields.${ef.target}`;\r\n let val = _me.traces[p];\r\n _me.$store.dispatch(\"index/delValidate\", ef);\r\n utils.setValueByPath(pInst, p, val);\r\n });\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 if (!_me.inputWriteable) {\r\n val = val === \"n\" ? val : \"r\";\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 },\r\n created() {\r\n this.options = this.autoTiplist ? JSON.parse(this.autoTiplist) : [];\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 });\r\n }\r\n this.$validator = this.$root.$validator;\r\n },\r\n methods: {\r\n querySearchAsync(queryString, cb) {\r\n var options = this.options;\r\n if (this.ganged && this.ganged.alias) {\r\n this.search(1, queryString, cb);\r\n } else {\r\n var results = queryString\r\n ? options.filter(this.createStateFilter(queryString))\r\n : options;\r\n cb(results);\r\n }\r\n },\r\n createStateFilter(queryString) {\r\n return state => {\r\n return (\r\n state.value.toLowerCase().indexOf(queryString.toLowerCase()) >= 0\r\n );\r\n };\r\n },\r\n handleSelect(item) {},\r\n search(currentPage, param, cb) {\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 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 if(ganged.bind[key]){\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 }\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 } \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 _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.value = m[ganged.valueBind];\r\n }\r\n if (_this.ganged.labelBind) {\r\n option.key = m[ganged.labelBind];\r\n }\r\n _this.options.push(option);\r\n });\r\n cb(_this.options);\r\n });\r\n }\r\n }\r\n};\r\n",null]}