From c71cca6babec17f4bdfa54f80aeaf4135e7440ef Mon Sep 17 00:00:00 2001 From: 田源 <lastanimals@163.com> Date: 星期五, 01 十二月 2023 14:35:55 +0800 Subject: [PATCH] 主数据标准需求更改 --- Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue | 238 ++++++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 153 insertions(+), 85 deletions(-) diff --git a/Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue b/Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue index 90e1442..e75483c 100644 --- a/Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue +++ b/Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue @@ -3,37 +3,37 @@ <template> <div> <avue-form - v-model="form" - :option="option" - v-loading="loading" - ref="form" - :style="{ minHeight: loading ? '300px' : '' }" :key="updateIndex" + ref="form" + v-model="form" + v-loading="loading" + :option="option" + :style="{ minHeight: loading ? '300px' : '' }" > - <template :slot="item.prop + 'Label'" v-for="item in slotColumnList"> + <template v-for="item in slotColumnList" :slot="item.prop + 'Label'"> <span> <span>{{ item.label }} </span> <el-tooltip v-if="item.keyAttr" class="item" - effect="dark" content="璇ュ睘鎬т负鍏抽敭灞炴��" + effect="dark" placement="top-start" > <i class="el-icon-star-on key_attr_icon"></i> </el-tooltip> </span> </template> - <template :slot="item.prop + ''" v-for="item in slotColumnList"> + <template v-for="item in slotColumnList" :slot="item.prop + ''"> <vciWebRefer - :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]" + v-if="item.type == 'refer'" :key="item.dataKey" + :data-key="item.dataKey" :disabled="item.disabled" :display="item.display" + :referConfig="item.referConfig || {}" :reloadData="item.referConfig.reloadData || false" + :text="form[item.referConfig.showField]" + :value="form[item.referConfig.field] || item.value" @setReferValue="setReferValue" ></vciWebRefer> </template> @@ -42,12 +42,13 @@ </template> <script> -import { getFormDetail } from "@/api/formTemplate"; -import { getEnumDictionary } from "../../api/system/dict"; +import {getFormDetail} from "@/api/formTemplate"; +import {getEnumDictionary} from "../../api/system/dict"; import vciWebRefer from "../refer/vciWebRefer.vue"; + export default { name: "FormTemplate", - components: { vciWebRefer }, + components: {vciWebRefer}, props: { // 榛樿绂佺敤鍏冪礌 disabledProp: { @@ -62,9 +63,9 @@ type: String, default: "", }, - LoadingStatus:{ + LoadingStatus: { type: String, - default : "code" + default: "code" }, // 鍒楄〃鏁版嵁oid rowOid: { @@ -74,7 +75,7 @@ // 琛ㄥ崟绫诲瀷锛坅dd, edit, detail锛� type: { type: String, - default: "", + default: "add", }, // 鑷畾涔夎〃鍗曠被鍨� selfColumnType: { @@ -91,20 +92,34 @@ type: Number, default: 8, }, - TreeValue:{ + TreeValue: { type: String, default: "", }, - eventList:{ - type:Array - } + eventList: { + type: Array + }, + status: { + type: String, + default: "", + }, }, data() { return { - codeattrsecValue:'', - ValidataValue:false, - eventFlag:{}, - TreeValueForm:'', + //骞翠唬鍙� + dataYearCode: { + type: "", + value: "" + }, + filteredObject: {}, + filteredArray: [], + isSeriesType: {}, + attrList: [], + add: '', + codeattrsecValue: '', + ValidataValue: false, + eventFlag: {}, + TreeValueForm: '', updateIndex: 0, form: {}, option: { @@ -129,6 +144,7 @@ // 琛ㄥ崟灞炴�� attributes: [], slotColumnList: [], + isShow: "", }; }, mounted() { @@ -161,21 +177,42 @@ this.$emit("getFormData", newV); }, }, - TreeValue:{ - handler(newval,oldval){ - if(newval){ - this.TreeValueForm=newval; + attrList: { + deep: true, + immediate: true, + handler(newVal, oldVal) { + if (newVal) { + this.$emit("attrList", newVal) + } + } + }, + TreeValue: { + handler(newval, oldval) { + if (newval) { + this.TreeValueForm = newval; } }, - deep:true, - immediate:true + deep: true, + immediate: true }, + isShow: { + handler(newV) { + this.$emit("isShow", newV) + } + }, + dataYearCode: { + deep:true, + immediate:true, + handler(newV) { + this.$emit("dataYearCode", newV) + } + } }, methods: { // 娓叉煋琛ㄥ崟妯℃澘 - templateRender(formItemList,TreeValue) { + templateRender(formItemList, TreeValue) { if (this.eventList) { - this.eventFlag= this.eventList.some(item => { + this.eventFlag = this.eventList.some(item => { if (item.classifyInvokeEditFlag === 'true') { this.eventObject = item; return true; @@ -189,6 +226,16 @@ let slotColumnList = []; formItemList.forEach((formItem) => { formItem = this.resetFormConfig(formItem); + //灞炴�х爜娈佃鍒� + if (formItem.secType === "codeattrsec") { + this.attrList.push(formItem); + } + //绯诲垪鍙疯鍒� + if (formItem.field === "codeStandardEditType") { + if (this.status === "amend") { + formItem.readOnly = true; + } + } if (formItem.type === "line") { group.push({ label: formItem.text, @@ -204,7 +251,7 @@ (!Array.isArray(formItem.dicData) || formItem.dicData.length === 0) && (!Array.isArray(formItem.data) || formItem.data.length === 0) ) { - dictKeys.push({ dictKey: formItem.comboxKey, field: formItem.field }); + dictKeys.push({dictKey: formItem.comboxKey, field: formItem.field}); } // 绂佺敤閮ㄥ垎灞炴�э紙澶栭儴浼犲�肩鐢ㄥ拰鍙傜収绂佺敤锛� if (this.disabledProp.includes(formItem.field)) { @@ -221,24 +268,39 @@ 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 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 = { - change:(val)=>{ - // console.log(val) - if(val.column.field === "drawingno"){ - this.codeattrsecValue=val.value; + change: (val) => { + if (val.column.field === "drawingno") { + this.codeattrsecValue = val.value; + return; } - console.log(this.codeattrsecValue) + //鏄惁绯诲垪-绯诲垪鍙� + if (val.column.field === "isSeries") { + if (val.value === "false") { + this.isShow = true; + } else { + this.isShow = false; + } + } + if (val.column.field === "releaseDate") { + if (val.value) { + this.dataYearCode.type = val.column.valueFormat; + this.dataYearCode.value = val.value; + } else { + this.dataYearCode.type = ""; + this.dataYearCode.value = ""; + } + } }, - dataKey:formItem.dataKey || formItem.field, + dataKey: formItem.dataKey || formItem.field, label: formItem.text, labelslot: true, prop: this.$utilFunc.isValuableObj(formItem.referConfig) @@ -247,22 +309,21 @@ 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) , + 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 || "yyyy-MM-dd HH:mm:ss", 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 == "codeattrsec" ? this.codeattrsecValue : null), + value:formItem.defaultValue || (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 == "codeattrsec" ? this.add : null) || (this.status === "apply" && formItem.field === "codeStandardEditType" ? "1" : null) || + (this.status === "amend" && formItem.field === "codeStandardEditType" ? "2" : 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, @@ -272,7 +333,7 @@ title: formItem.text, showField: formItem.showField || formItem.field, field: formItem.field, - fieldMap:formItem.fieldMap || {}, + fieldMap: formItem.fieldMap || {}, placeholder: formItem.inputTip, options: formItem.referConfig } @@ -296,12 +357,11 @@ }, ], props: { - label: "itemName", + label: "value", value: "key", }, }; - // console.log('formItem',formItem) - // console.log('columnItem',columnItem) + this.filteredObject = columnItem slotColumnList.push(columnItem); if (group.length === 0) { column.push(columnItem); @@ -309,6 +369,7 @@ group[group.length - 1]["column"].push(columnItem); } }); + this.slotColumnList = slotColumnList; this.$set(this.option, "column", column); this.$set(this.option, "group", group); @@ -319,13 +380,15 @@ this.geDictData(dictKeys); this.getFormDetail(); - }, //淇敼绾ц仈椤� - changeChildItem(items,TreeValue) { - let column = this.option.column; - let group = this.option.group; - let that=this; + changeChildItem(items, TreeValue, type) { + type = type || "add" + // let column = this.option.column; + // let group = this.option.group; + let column = []; + let group = []; + let that = this; items.forEach((item) => { let formItem = this.resetFormConfig(item); if (formItem.field == "lcstatus") { @@ -355,16 +418,18 @@ 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), + disabled: 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 || "yyyy-MM-dd HH:mm:ss", 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.add : null) || (this.status === "apply" && formItem.field === "codeStandardEditType" ? "1" : null) || + (this.status === "amend" && formItem.field === "codeStandardEditType" ? "2" : null), placeholder: formItem.inputTip, comboxKey: formItem.comboxKey, tip: formItem.tooltips, @@ -407,9 +472,8 @@ value: "key", }, }; - if (group.length === 0) { - that.slotColumnList.forEach((colItem,index) => { + that.slotColumnList.forEach((colItem, index) => { if (colItem.field == columnItem.field) { that.slotColumnList[index] = columnItem; column[index] = columnItem; @@ -417,14 +481,14 @@ } }) } else { - that.slotColumnList.forEach((colItem,index) => { + that.slotColumnList.forEach((colItem, index) => { if (colItem.field == columnItem.field) { that.slotColumnList[index] = columnItem; return; } }) - group.forEach((groupItem,index) => { - groupItem.column.forEach((colItem,colIndex) => { + group.forEach((groupItem, index) => { + groupItem.column.forEach((colItem, colIndex) => { if (colItem.field == columnItem.field) { group[index].column[colIndex] = columnItem; return; @@ -453,6 +517,7 @@ if (Object.hasOwnProperty.call(element, newAttr)) { const oldAttr = element[newAttr]; formItem[newAttr] = formItem[oldAttr]; + } } } else if (configType === "directVoluation") { @@ -502,14 +567,13 @@ // 寮傛鑾峰彇瀛楀吀鏁版嵁 geDictData(dictKeys) { dictKeys.forEach((dictObj) => { - getEnumDictionary({ code: dictObj.dictKey }).then((res) => { - console.log(res) + getEnumDictionary({code: dictObj.dictKey}).then((res) => { if (res.data && res.data.code === 200) { this.option.column = this.option.column.map((item) => { if (item.field === dictObj.field) { let dictData = (res.data.data || []).map((itm) => { - itm.value = itm.dictValue; - itm.key = itm.dictKey; + itm.value = itm.itemName; + itm.key = itm.itemValue; return itm; }); item.dicData = dictData; @@ -527,7 +591,7 @@ if (valid) { done(); resolve(true); - this.ValidataValue=true; + this.ValidataValue = true; } else { resolve(false); } @@ -537,12 +601,16 @@ // 鑾峰彇琛ㄥ崟璇︽儏鏁版嵁 getFormDetail() { if (this.type === "add") return; - getFormDetail({ templateOid: this.templateOid, oid: this.rowOid }).then( - (res) => { - this.form = Object.assign(this.form, res.data.data[0]); - this.loading = false; - } - ); + if(this.templateOid){ + getFormDetail({templateOid: this.templateOid, oid: this.rowOid}).then( + (res) => { + this.form = Object.assign(this.form, res.data.data[0]); + this.loading = false; + } + ); + return; + } + }, setReferValue(data) { if (data.field) { @@ -566,7 +634,7 @@ 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]; + temp = _item['attributes'][mapField] || _item['attributes']['data'][mapField] || _item[mapField]; } } else { //鏈夊涓� -- Gitblit v1.9.3