From 52ffefd06e59cbd56c1a919972866592379cfed2 Mon Sep 17 00:00:00 2001 From: xiejun <xj@2023> Date: 星期四, 21 九月 2023 11:27:11 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue | 131 +++++++++++++++++++++++++++++++++++-------- 1 files changed, 106 insertions(+), 25 deletions(-) diff --git a/Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue b/Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue index b53cf1a..3e341d5 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,18 @@ type: Number, default: 8, }, + TreeValue:{ + type: String, + default: "", + }, + eventList:{ + type:Array + } }, data() { return { + eventFlag:{}, + TreeValueForm:'', updateIndex: 0, form: {}, option: { @@ -117,6 +127,9 @@ mounted() { this.handleResize(); }, + created() { + + }, computed: { localTrendsSpan() { if (this.trendsSpan) { @@ -126,11 +139,38 @@ 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; + } + }, + deep:true, + immediate:true + } }, methods: { // 娓叉煋琛ㄥ崟妯℃澘 - templateRender(formItemList) { - console.log(formItemList, "formItemList"); + templateRender(formItemList,TreeValue) { + if (this.eventList) { + this.eventFlag= this.eventList.some(item => { + if (item.classifyInvokeEditFlag === 'true') { + this.eventObject = item; + return true; + } + }); + } // 鏃犻渶鍒嗙粍鏁版嵁 let column = []; let group = []; @@ -170,6 +210,12 @@ message = "璇疯緭鍏�"; trigger = "blur"; } + let fieldMapKey='' + if( formItem.type == "refer"){ + if(!formItem.fieldMap){ + fieldMapKey=formItem.field+'Id' + } + } let columnItem = { label: formItem.text, labelslot: true, @@ -179,40 +225,44 @@ 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, referConfig: formItem.type == "refer" ? { - title: formItem.text, - showField: formItem.showField || formItem.field, - field: formItem.field, - placeholder: formItem.inputTip, - options: formItem.referConfig, - } + title: formItem.text, + showField: formItem.showField || formItem.field, + field: formItem.field, + fieldMap:formItem.fieldMap || {fieldMapKey:'id'}, + placeholder: formItem.inputTip, + options: formItem.referConfig + } : {}, span: formItem.span ? formItem.span : formItem.type === "textarea" - ? 24 - : this.localTrendsSpan, + ? 24 + : this.localTrendsSpan, rules: [ { required: formItem.required, - message: `璇�${message}${formItem.text}`, + message: `${message}${formItem.text}`, trigger, }, { @@ -235,7 +285,6 @@ } }); this.slotColumnList = slotColumnList; - console.log(column, "column"); this.$set(this.option, "column", column); this.$set(this.option, "group", group); this.updateIndex++; @@ -245,6 +294,8 @@ this.geDictData(dictKeys); this.getFormDetail(); + // console.log('selfColumnConfig',this.selfColumnConfig) + }, // 浣跨敤浼犲叆鐨勮〃鍗曟暟鎹厤缃� resetFormConfig(formItem) { @@ -353,22 +404,52 @@ ); }, setReferValue(data) { + debugger; if (data.field) { this.form[data.field] = data.value || ""; this.form[data.showField] = data.text || ""; + if (data.fieldMap) { + //璇存槑闇�瑕佹槧灏� + for (let key in data.fieldMap) { + let mapFields = data.fieldMap[key].split(","); + let value = []; + data.rawData.forEach(_item => { + var temp; + if (!_item.attributes) { + _item.attributes = _item; + } + if (!_item.attributes.data) { + _item.attributes.data = {}; + } + if (mapFields.length == 1) { + var mapField = mapFields[0]; + if (mapField.indexOf("attribute.") > -1) { + temp = _item['attributes'][mapField.subString("attribute.".length)] || _item['attributes']['data'][mapField.subString("attribute.".length)]; + } else { + temp = _item['attributes'][mapField] ||_item['attributes']['data'][mapField] || _item[mapField]; + } + } else { + //鏈夊涓� + var mutiTemp = []; + layui.each(mapFields, function (_indexField, _itemField) { + if (_itemField.indexOf("attribute.") > -1) { + mutiTemp.push(_item['attributes'][_itemField.subString("attribute.".length)] || _item['attributes']['data'][_itemField.subString("attribute.".length)]); + } else { + mutiTemp.push(_item['attributes'][_itemField] || _item['attributes']['data'][_itemField] || _item[_itemField]); + } + }); + temp = mutiTemp.join(' '); + } + if (temp != null && temp != '') { + value.push(temp); + } + }) + this.form[key] = value.join(','); + } + } 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