From 950964420449cc6c4d8a934627bb85824a082a20 Mon Sep 17 00:00:00 2001 From: wangting <675591594@qq.com> Date: 星期五, 15 九月 2023 11:13:07 +0800 Subject: [PATCH] 解决参照组件复用的问题 --- Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue | 65 +++++++++++++++++++++++--------- 1 files changed, 47 insertions(+), 18 deletions(-) diff --git a/Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue b/Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue index e516be0..14f0c2d 100644 --- a/Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue +++ b/Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue @@ -26,6 +26,7 @@ </template> <template :slot="item.prop + ''" v-for="item in slotColumnList"> <vciWebRefer + :key="item.prop" :data-key="item.prop" v-if="item.type == 'refer'" :referConfig="item.referConfig || {}" :value="form[item.referConfig.field] || item.value" @@ -85,9 +86,14 @@ type: Number, default: 8, }, + TreeValue:{ + type: String, + default: "", + }, }, data() { return { + TreeValueForm:'', updateIndex: 0, form: {}, option: { @@ -114,7 +120,7 @@ slotColumnList: [], }; }, - mounted() { + mounted() { this.handleResize(); }, computed: { @@ -126,18 +132,40 @@ return 24 / Math.floor(windowWidth / 500); } }, + + }, + watch: { + // 琛ㄥ崟鏁版嵁淇敼鍙嶉鍒扮埗缁勪欢 + form: { + deep: true, + immediate: true, + handler(newV) { + this.$emit("getFormData", newV); + }, + }, + TreeValue:{ + handler(newval,oldval){ + if(newval){ + this.TreeValueForm=newval; + // console.log(this.TreeValueForm) + } + }, + deep:true, + immediate:true + } }, methods: { // 娓叉煋琛ㄥ崟妯℃澘 - templateRender(formItemList) { - console.log(formItemList, "formItemList"); + templateRender(formItemList,TreeValue) { // 鏃犻渶鍒嗙粍鏁版嵁 let column = []; let group = []; let dictKeys = []; let slotColumnList = []; + let value='' formItemList.forEach((formItem) => { formItem = this.resetFormConfig(formItem); + // console.log('formItem.dicData.value',formItem.dicData) if (formItem.type === "line") { group.push({ label: formItem.text, @@ -185,18 +213,21 @@ field: formItem.field, type: this.columnType[formItem.type], dicData: this.getDataList(formItem.type, formItem.data), - disabled: this.type === "detail" ? true : formItem.readOnly, + disabled: this.type === "detail" ? true : formItem.readOnly || (formItem.codeValueApplyStatus && formItem.codeValueApplyStatus == 2 ?true : false) , prepend: this.preOrSufFixShow("text", formItem.prefix), append: this.preOrSufFixShow("text", formItem.suffix), prefixIcon: this.preOrSufFixShow("icon", formItem.prefix), suffixIcon: this.preOrSufFixShow("icon", formItem.suffix), - valueFormat: formItem.dateFormate, + valueFormat:formItem.dateFormate, format: formItem.dateFormate, keyAttr: formItem.keyAttr, - value: formItem.defaultValue, + value: (formItem.dicData && formItem.dicData.length > 0 && formItem.secType == "codefixedsec" ? formItem.dicData[0].id : null) || + (formItem.secType == "codedatesec"?formItem.codeDateValue: null) || ( TreeValue&& formItem.secType == "codelevelsec" ? TreeValue : null), placeholder: formItem.inputTip, comboxKey: formItem.comboxKey, tip: formItem.tooltips, + // hidden:formItem.secType && formItem.codeValueApplyStatus == 3 ? true : false, + // readonly:formItem.codeValueApplyStatus && formItem.codeValueApplyStatus == 2 ?true : false , display: !formItem.hidden, maxlength: formItem.maxlength, filterable: true, @@ -219,7 +250,7 @@ rules: [ { required: formItem.required, - message: `璇�${message}${formItem.text}`, + message: `${message}${formItem.text}`, trigger, }, { @@ -234,7 +265,9 @@ value: "key", }, }; + // console.log('columnItem',columnItem) slotColumnList.push(columnItem); + // console.log('slotColumnList',slotColumnList) if (group.length === 0) { column.push(columnItem); } else { @@ -242,7 +275,6 @@ } }); this.slotColumnList = slotColumnList; - console.log(column, "column"); this.$set(this.option, "column", column); this.$set(this.option, "group", group); this.updateIndex++; @@ -252,9 +284,12 @@ this.geDictData(dictKeys); this.getFormDetail(); + // console.log('selfColumnConfig',this.selfColumnConfig) + }, // 浣跨敤浼犲叆鐨勮〃鍗曟暟鎹厤缃� resetFormConfig(formItem) { + // console.log(this.selfColumnConfig) for (const configType in this.selfColumnConfig) { if (Object.hasOwnProperty.call(this.selfColumnConfig, configType)) { const element = this.selfColumnConfig[configType]; @@ -270,6 +305,9 @@ if (Object.hasOwnProperty.call(element, newAttr)) { const oldAttr = element[newAttr]; formItem[newAttr] = formItem[oldAttr]; + // console.log(formItem) + // console.log(newAttr,oldAttr) + // console.log(formItem[newAttr],formItem[oldAttr]) } } } else if (configType === "directVoluation") { @@ -360,6 +398,7 @@ ); }, setReferValue(data) { + // console.log(data) if (data.field) { this.form[data.field] = data.value || ""; this.form[data.showField] = data.text || ""; @@ -402,16 +441,6 @@ this.$emit("getFormData", this.form); this.$emit("referConfigDataUpdate", data); } - }, - }, - watch: { - // 琛ㄥ崟鏁版嵁淇敼鍙嶉鍒扮埗缁勪欢 - form: { - deep: true, - immediate: true, - handler(newV) { - this.$emit("getFormData", newV); - }, }, }, }; -- Gitblit v1.9.3