{"remainingRequest":"D:\\jenkins\\workspace\\examine-fvue\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\examine-fvue\\src\\components\\eipControl\\EipCheckbox.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\examine-fvue\\src\\components\\eipControl\\EipCheckbox.vue","mtime":1667280203967},{"path":"D:\\jenkins\\workspace\\examine-fvue\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\examine-fvue\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\examine-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\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-checkbox\",\r\n props: [\r\n \"validate\",\r\n \"value\",\r\n \"name\",\r\n \"permission\",\r\n \"cklist\",\r\n \"linkage\",\r\n \"ganged\",\r\n \"styles\",\r\n \"optionLayout\"\r\n ],\r\n mixins: [sub_pio_mixin],//混入方式引入表单组件中公共属性,处理子表、孙表行内联动(切面修改permission_sub)\r\n data() {\r\n return {\r\n options: []\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 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 mounted() {\r\n const _me = this;\r\n const exp = this.linkage;\r\n if (\r\n exp &&\r\n exp.length > 0 &&\r\n (this.$parent.isView || this.$parent.$parent.$parent.isView)\r\n ) {\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) {\r\n newVal.forEach(newValue => {\r\n if (newValue === m.value) {\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/linkageValidate\", ef);\r\n utils.setValueByPath(pInst, p, ef.type);\r\n });\r\n }\r\n });\r\n }\r\n },\r\n { immediate: true }\r\n );\r\n });\r\n }\r\n this.loadOption();\r\n },\r\n created() {\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 loadOption: function() {\r\n // 动态选项\r\n if (this.ganged && this.ganged.alias) {\r\n this.dynamicLoadOption();\r\n } else {\r\n // 静态选项\r\n this.options = this.cklist ? JSON.parse(this.cklist) : [];\r\n }\r\n },\r\n // 动态加载选项\r\n dynamicLoadOption: function() {\r\n const params = this.prepareLoadParams(this.ganged.bind);\r\n this.$emit(\"dynamic-options:load\", this.ganged.alias, params);\r\n },\r\n // 准备查询参数\r\n prepareLoadParams: function(condition) {\r\n let params = {};\r\n if (condition && !hotentUtils.isEmpty(condition)) {\r\n // 获取当前控件是否在子表某行中\r\n let { index } = hotentUtils.getSubScopeElAndIndex(this.$el);\r\n\r\n const pInst = utils.getOnlineFormInstance(this);\r\n Object.keys(condition).forEach(k => {\r\n let val = null;\r\n // 主表\r\n if (index == null) {\r\n val = utils.getValueByPath(pInst, condition[k]);\r\n }\r\n // 子表\r\n else {\r\n val = utils.getValueByPath(pInst, condition[k], index);\r\n }\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 (\r\n this.ganged &&\r\n this.ganged.alias == alias &&\r\n this.ganged.valueBind &&\r\n this.ganged.labelBind\r\n ) {\r\n this.options = [];\r\n if (data && data.constructor == Array && data.length > 0) {\r\n data.forEach(d => {\r\n let key = d[this.ganged.valueBind];\r\n if(key.constructor != String){\r\n key = key.toString();\r\n }\r\n this.options.push({\r\n key: key,\r\n value: d[this.ganged.labelBind]\r\n });\r\n });\r\n }\r\n } else if (\r\n this.ganged &&\r\n this.ganged.alias &&\r\n (!this.ganged.valueBind || !this.ganged.labelBind)\r\n ) {\r\n this.$message.error(\r\n `下拉框【${this.inputName}】配置了动态选项,但是没有正确的配置选项绑定关系。`\r\n );\r\n }\r\n }\r\n }\r\n};\r\n",null]}