From cdf02470da825ae5b8f234f361416fd0e159544b Mon Sep 17 00:00:00 2001 From: 田源 <lastanimals@163.com> Date: 星期四, 09 十一月 2023 10:03:34 +0800 Subject: [PATCH] 标准枚举 --- Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue | 216 ++++++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 178 insertions(+), 38 deletions(-) diff --git a/Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue b/Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue index b6d93d8..90e1442 100644 --- a/Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue +++ b/Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue @@ -26,13 +26,14 @@ </template> <template :slot="item.prop + ''" v-for="item in slotColumnList"> <vciWebRefer - :key="item.prop" :data-key="item.prop" + :key="item.dataKey" :data-key="item.dataKey" v-if="item.type == 'refer'" :referConfig="item.referConfig || {}" :value="form[item.referConfig.field] || item.value" :text="form[item.referConfig.showField]" :disabled="item.disabled" :display="item.display" + :reloadData="item.referConfig.reloadData || false" @setReferValue="setReferValue" ></vciWebRefer> </template> @@ -42,7 +43,7 @@ <script> import { getFormDetail } from "@/api/formTemplate"; -import { getDictionary } from "../../api/system/dict"; +import { getEnumDictionary } from "../../api/system/dict"; import vciWebRefer from "../refer/vciWebRefer.vue"; export default { name: "FormTemplate", @@ -61,6 +62,10 @@ type: String, default: "", }, + LoadingStatus:{ + type: String, + default : "code" + }, // 鍒楄〃鏁版嵁oid rowOid: { type: String, @@ -69,7 +74,7 @@ // 琛ㄥ崟绫诲瀷锛坅dd, edit, detail锛� type: { type: String, - default: "add", + default: "", }, // 鑷畾涔夎〃鍗曠被鍨� selfColumnType: { @@ -96,6 +101,8 @@ }, data() { return { + codeattrsecValue:'', + ValidataValue:false, eventFlag:{}, TreeValueForm:'', updateIndex: 0, @@ -127,9 +134,13 @@ mounted() { this.handleResize(); }, + updated() { + }, created() { - - }, + if (this.LoadingStatus === 'code') { + this.loading = false; + } + }, computed: { localTrendsSpan() { if (this.trendsSpan) { @@ -158,7 +169,7 @@ }, deep:true, immediate:true - } + }, }, methods: { // 娓叉煋琛ㄥ崟妯℃澘 @@ -211,12 +222,23 @@ trigger = "blur"; } let fieldMapKey='' - if( formItem.type == "refer"){ - if(!formItem.fieldMap){ - fieldMapKey=formItem.field+'Id' - } + if( formItem.type == "refer" && !formItem.fieldMap){ + fieldMapKey=formItem.field+'Id' + formItem.fieldMap={} + formItem.fieldMap[fieldMapKey]='id' + formItem.fieldMap[formItem.field+'id']='id' } + + let columnItem = { + change:(val)=>{ + // console.log(val) + if(val.column.field === "drawingno"){ + this.codeattrsecValue=val.value; + } + console.log(this.codeattrsecValue) + }, + dataKey:formItem.dataKey || formItem.field, label: formItem.text, labelslot: true, prop: this.$utilFunc.isValuableObj(formItem.referConfig) @@ -234,7 +256,8 @@ format: formItem.dateFormate, keyAttr: formItem.keyAttr, 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) , + (formItem.secType == "codedatesec" ? formItem.codeDateValue: null) || ( TreeValue && formItem.secType == "codelevelsec" ? TreeValue : null) || + (formItem.secType == "codeattrsec" ? this.codeattrsecValue : null), placeholder: formItem.inputTip, comboxKey: formItem.comboxKey, tip: formItem.tooltips, @@ -246,19 +269,126 @@ referConfig: formItem.type == "refer" ? { - title: formItem.text, - showField: formItem.showField || formItem.field, - field: formItem.field, - fieldMap:formItem.fieldMap || {fieldMapKey:'id'}, - placeholder: formItem.inputTip, - options: formItem.referConfig - } + title: formItem.text, + showField: formItem.showField || formItem.field, + field: formItem.field, + fieldMap:formItem.fieldMap || {}, + 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}`, + trigger, + }, + { + // 濡傛灉娌℃湁姝e垯鍒欏尮閰嶄换浣曞瓧绗� + pattern: formItem.verify ? formItem.verify : /[\s\S.]*/g, + message: formItem.tooltips, + trigger, + }, + ], + props: { + label: "itemName", + value: "key", + }, + }; + // console.log('formItem',formItem) + // console.log('columnItem',columnItem) + slotColumnList.push(columnItem); + if (group.length === 0) { + column.push(columnItem); + } else { + group[group.length - 1]["column"].push(columnItem); + } + }); + this.slotColumnList = slotColumnList; + this.$set(this.option, "column", column); + this.$set(this.option, "group", group); + this.updateIndex++; + if (this.type === "add") { + this.loading = false; + } + + this.geDictData(dictKeys); + this.getFormDetail(); + + }, + //淇敼绾ц仈椤� + changeChildItem(items,TreeValue) { + let column = this.option.column; + let group = this.option.group; + let that=this; + items.forEach((item) => { + let formItem = this.resetFormConfig(item); + if (formItem.field == "lcstatus") { + formItem.field = formItem.field + "_text"; + formItem.readOnly = true; + } + // 璁剧疆琛ㄥ崟鏍¢獙鐨勮鍒欙紝鏂囨湰 + let message = "璇烽�夋嫨"; + let trigger = "change"; + if (formItem.type === "text") { + message = "璇疯緭鍏�"; + trigger = "blur"; + } + let fieldMapKey = '' + if (formItem.type == "refer" && !formItem.fieldMap) { + fieldMapKey = formItem.field + 'Id' + formItem.fieldMap = {} + formItem.fieldMap[fieldMapKey] = 'id' + formItem.fieldMap[formItem.field + 'id'] = 'id' + } + let columnItem = { + label: formItem.text, + labelslot: true, + prop: this.$utilFunc.isValuableObj(formItem.referConfig) + ? formItem.showField || formItem.field + : formItem.field, + field: formItem.field, + type: this.columnType[formItem.type], + dicData: this.getDataList(formItem.type, formItem.data), + 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, + format: formItem.dateFormate, + keyAttr: formItem.keyAttr, + 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, + fieldMap: formItem.fieldMap || {}, + placeholder: formItem.inputTip, + options: formItem.referConfig + } + : {}, + span: formItem.span + ? formItem.span + : formItem.type === "textarea" + ? 24 + : this.localTrendsSpan, rules: [ { required: formItem.required, @@ -277,25 +407,34 @@ value: "key", }, }; - slotColumnList.push(columnItem); + if (group.length === 0) { - column.push(columnItem); + that.slotColumnList.forEach((colItem,index) => { + if (colItem.field == columnItem.field) { + that.slotColumnList[index] = columnItem; + column[index] = columnItem; + return; + } + }) } else { - group[group.length - 1]["column"].push(columnItem); + that.slotColumnList.forEach((colItem,index) => { + if (colItem.field == columnItem.field) { + that.slotColumnList[index] = columnItem; + return; + } + }) + group.forEach((groupItem,index) => { + groupItem.column.forEach((colItem,colIndex) => { + if (colItem.field == columnItem.field) { + group[index].column[colIndex] = columnItem; + return; + } + }) + }); } }); - this.slotColumnList = slotColumnList; - this.$set(this.option, "column", column); - this.$set(this.option, "group", group); - this.updateIndex++; - if (this.type === "add") { - this.loading = false; - } - - this.geDictData(dictKeys); - this.getFormDetail(); - // console.log('selfColumnConfig',this.selfColumnConfig) - + that.$set(that.option, "column", column); + that.$set(that.option, "group", group); }, // 浣跨敤浼犲叆鐨勮〃鍗曟暟鎹厤缃� resetFormConfig(formItem) { @@ -363,7 +502,8 @@ // 寮傛鑾峰彇瀛楀吀鏁版嵁 geDictData(dictKeys) { dictKeys.forEach((dictObj) => { - getDictionary({ code: dictObj.dictKey }).then((res) => { + getEnumDictionary({ code: dictObj.dictKey }).then((res) => { + console.log(res) if (res.data && res.data.code === 200) { this.option.column = this.option.column.map((item) => { if (item.field === dictObj.field) { @@ -387,6 +527,7 @@ if (valid) { done(); resolve(true); + this.ValidataValue=true; } else { resolve(false); } @@ -404,7 +545,6 @@ ); }, setReferValue(data) { - debugger; if (data.field) { this.form[data.field] = data.value || ""; this.form[data.showField] = data.text || ""; @@ -447,8 +587,8 @@ this.form[key] = value.join(','); } } - this.$emit("getFormData", this.form); this.$emit("referConfigDataUpdate", data); + this.$emit("getFormData", this.form); } }, }, -- Gitblit v1.9.3