From afbe6b99f5ad08087c982c78a5965b49f58f0c37 Mon Sep 17 00:00:00 2001 From: 田源 <lastanimals@163.com> Date: 星期四, 09 十一月 2023 14:39:17 +0800 Subject: [PATCH] 整合代码 --- Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue | 682 ++++++++++++++++++++------------------------------------ 1 files changed, 248 insertions(+), 434 deletions(-) diff --git a/Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue b/Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue index 5f034cb..f16ba65 100644 --- a/Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue +++ b/Source/UBCS-WEB/src/components/FormTemplate/FormTemplate.vue @@ -26,12 +26,14 @@ </template> <template :slot="item.prop + ''" v-for="item in slotColumnList"> <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]" :disabled="item.disabled" :display="item.display" + :reloadData="item.referConfig.reloadData || false" @setReferValue="setReferValue" ></vciWebRefer> </template> @@ -41,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", @@ -50,7 +52,7 @@ // 榛樿绂佺敤鍏冪礌 disabledProp: { type: Array, - default: () => ["id","lcstatus"], + default: () => ["id", "lcstatus"], }, templateOid: { type: String, @@ -60,6 +62,10 @@ type: String, default: "", }, + LoadingStatus:{ + type: String, + default : "code" + }, // 鍒楄〃鏁版嵁oid rowOid: { type: String, @@ -68,7 +74,7 @@ // 琛ㄥ崟绫诲瀷锛坅dd, edit, detail锛� type: { type: String, - default: "add", + default: "", }, // 鑷畾涔夎〃鍗曠被鍨� selfColumnType: { @@ -80,9 +86,26 @@ type: Object, default: () => ({}), }, + // 涓�琛屾斁鍑犱釜琛ㄥ崟 + trendsSpan: { + type: Number, + default: 8, + }, + TreeValue:{ + type: String, + default: "", + }, + eventList:{ + type:Array + } }, data() { return { + add:'', + codeattrsecValue:'', + ValidataValue:false, + eventFlag:{}, + TreeValueForm:'', updateIndex: 0, form: {}, option: { @@ -103,395 +126,6 @@ date: "date", refer: "refer", }, - // 鍋囨暟鎹� - testItems: [ - { - comboxKey: null, - customClass: null, - data: null, - dateFormate: "", - defaultValue: "", - displayExtension: null, - extendAttrMap: null, - extendAttrString: null, - field: "id", - hidden: false, - keyAttr: false, - prefix: "", - readOnly: false, - referConfig: null, - required: false, - selectLibFlag: "", - showField: null, - suffix: "", - text: "浼犲�肩鐢ㄥ姛鑳�", - tooltips: "", - type: "combox", - unique: false, - verify: "", - }, - { - customClass: null, - data: null, - dateFormate: "", - defaultValue: "", - displayExtension: null, - extendAttrMap: null, - extendAttrString: null, - field: "state", - hidden: false, - keyAttr: false, - prefix: "", - readOnly: true, - referConfig: null, - required: false, - selectLibFlag: "", - showField: null, - suffix: "", - text: "鎺ュ彛绂佺敤鍔熻兘", - tooltips: "", - type: "combox", - unique: false, - verify: "", - }, - { - comboxKey: null, - customClass: null, - data: null, - dateFormate: "", - defaultValue: "", - displayExtension: null, - extendAttrMap: null, - extendAttrString: null, - field: "oldcode", - hidden: false, - keyAttr: false, - prefix: "el-icon-search", - readOnly: false, - referConfig: null, - required: false, - selectLibFlag: "", - showField: null, - suffix: "鏂囨湰鍚庣紑娴嬭瘯", - text: "鍓嶅悗缂�鍔熻兘", - tooltips: "", - type: "text", - unique: false, - verify: "", - }, - { - comboxKey: null, - customClass: null, - data: null, - dateFormate: "", - defaultValue: "", - displayExtension: null, - extendAttrMap: null, - extendAttrString: null, - field: "materialname", - hidden: false, - keyAttr: false, - prefix: "", - readOnly: false, - referConfig: null, - required: true, - selectLibFlag: "", - showField: null, - suffix: "", - text: "姝e垯鏍¢獙鍔熻兘", - tooltips: "璇疯緭鍏ユ暟瀛�", - type: "text", - unique: false, - verify: /^[0-9]+$/g, - }, - { - comboxKey: null, - customClass: null, - data: [ - { - attributes: {}, - key: "model_type", - value: "妯″瀷", - }, - { - attributes: {}, - key: "part_type", - value: "闆朵欢", - }, - ], - dateFormate: "", - defaultValue: "", - displayExtension: null, - extendAttrMap: null, - extendAttrString: null, - field: "dataSelect", - hidden: false, - keyAttr: false, - prefix: "", - readOnly: false, - referConfig: null, - required: false, - selectLibFlag: "", - showField: null, - suffix: "", - text: "鐩存帴杩斿洖涓嬫媺", - tooltips: "", - type: "combox", - unique: false, - verify: "", - }, - { - comboxKey: "formTemplateTest", - customClass: null, - data: [], - dateFormate: "", - defaultValue: "", - displayExtension: null, - extendAttrMap: null, - extendAttrString: null, - field: "dictSelect", - hidden: false, - keyAttr: false, - prefix: "", - readOnly: false, - referConfig: null, - required: false, - selectLibFlag: "", - showField: null, - suffix: "", - text: "瀛楀吀杩斿洖涓嬫媺", - tooltips: "", - type: "combox", - unique: false, - verify: "", - }, - { - comboxKey: null, - customClass: null, - data: null, - dateFormate: "", - defaultValue: "", - displayExtension: null, - extendAttrMap: null, - extendAttrString: null, - field: "firstfl", - hidden: false, - keyAttr: false, - prefix: "", - readOnly: false, - referConfig: null, - required: false, - selectLibFlag: "", - showField: null, - suffix: "", - text: "鏁板瓧杈撳叆妗�", - tooltips: "", - type: "number", - unique: false, - verify: "", - }, - { - comboxKey: null, - customClass: null, - data: null, - dateFormate: "yyyy-MM-dd HH:mm:ss", - defaultValue: "", - displayExtension: null, - extendAttrMap: null, - extendAttrString: null, - field: "datetime", - hidden: false, - keyAttr: false, - prefix: "", - readOnly: false, - referConfig: null, - required: false, - selectLibFlag: "", - showField: null, - suffix: "", - text: "鏃ユ湡鏃堕棿閫夋嫨鍣�", - tooltips: "", - type: "datetime", - unique: false, - verify: "", - }, - { - comboxKey: null, - customClass: null, - data: null, - dateFormate: "", - defaultValue: "", - displayExtension: null, - extendAttrMap: null, - extendAttrString: null, - field: "time", - hidden: false, - keyAttr: false, - prefix: "", - readOnly: false, - referConfig: null, - required: false, - selectLibFlag: "", - showField: null, - suffix: "", - text: "鏃堕棿閫夋嫨鍣�", - tooltips: "", - type: "date", - unique: false, - verify: "", - }, - { - comboxKey: null, - customClass: null, - data: null, - dateFormate: "", - defaultValue: "false", - displayExtension: null, - extendAttrMap: null, - extendAttrString: null, - field: "xiaoshouwl", - hidden: false, - keyAttr: false, - prefix: "", - readOnly: false, - referConfig: null, - required: false, - selectLibFlag: "", - showField: null, - suffix: "", - text: "寮�鍏�", - tooltips: "", - type: "truefalse", - unique: false, - verify: "", - }, - { - comboxKey: null, - customClass: null, - data: null, - dateFormate: "", - defaultValue: "鎴戞槸榛樿鍊�", - displayExtension: null, - extendAttrMap: null, - extendAttrString: null, - field: "tuhao", - hidden: false, - keyAttr: false, - prefix: "", - readOnly: false, - referConfig: null, - required: false, - selectLibFlag: "", - showField: null, - suffix: "", - text: "榛樿鍊煎姛鑳�", - tooltips: "鎻愮ず", - type: "text", - unique: false, - verify: "", - }, - { - comboxKey: null, - customClass: null, - data: null, - dateFormate: "", - defaultValue: "", - displayExtension: null, - extendAttrMap: null, - extendAttrString: null, - field: "xinghaoguige", - hidden: false, - keyAttr: true, - prefix: "", - readOnly: false, - referConfig: null, - required: false, - selectLibFlag: "", - showField: null, - suffix: "", - text: "灞炴�у叧閿��", - tooltips: "", - type: "text", - unique: false, - verify: "", - }, - { - comboxKey: null, - customClass: null, - data: null, - dateFormate: "", - defaultValue: "", - displayExtension: null, - extendAttrMap: null, - extendAttrString: null, - field: "jiliangdw", - hidden: false, - keyAttr: false, - prefix: "", - readOnly: false, - tip: "鎴戞槸鎻愮ず鍔熻兘", - required: false, - selectLibFlag: "", - showField: "jiliangdwname", - suffix: "", - text: "鎻愮ず鍔熻兘", - tooltips: "", - type: "text", - unique: false, - verify: "", - }, - { - comboxKey: null, - customClass: null, - data: null, - dateFormate: "", - defaultValue: "", - displayExtension: null, - extendAttrMap: null, - extendAttrString: null, - field: "textarea", - hidden: false, - keyAttr: false, - prefix: "", - readOnly: false, - referConfig: null, - required: false, - selectLibFlag: "", - showField: null, - suffix: "", - text: "鏂囨湰鍩�", - tooltips: "", - type: "textarea", - unique: false, - verify: "", - }, - { - comboxKey: null, - customClass: null, - data: null, - dateFormate: "", - defaultValue: "", - displayExtension: null, - extendAttrMap: null, - extendAttrString: null, - field: "cz", - hidden: false, - keyAttr: false, - prefix: "", - readOnly: true, - referConfig: {}, - required: false, - selectLibFlag: "", - showField: "depId", - suffix: "", - text: "鍙傜収", - tooltips: "", - type: "refer", - unique: false, - verify: "", - }, - ], - trendsSpan: 8, defaultValue: {}, // 琛ㄥ崟灞炴�� attributes: [], @@ -501,9 +135,54 @@ mounted() { this.handleResize(); }, + updated() { + }, + created() { + if (this.LoadingStatus === 'code') { + this.loading = false; + } + }, + computed: { + localTrendsSpan() { + if (this.trendsSpan) { + return this.trendsSpan; + } else { + let windowWidth = document.body.clientWidth; + 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) { + 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 = []; @@ -523,7 +202,8 @@ if ( formItem.type === "combox" && formItem.comboxKey && - (!Array.isArray(formItem.dicData) || formItem.dicData.length === 0) &&(!Array.isArray(formItem.data) || formItem.data.length === 0) + (!Array.isArray(formItem.dicData) || formItem.dicData.length === 0) && + (!Array.isArray(formItem.data) || formItem.data.length === 0) ) { dictKeys.push({ dictKey: formItem.comboxKey, field: formItem.field }); } @@ -531,9 +211,9 @@ if (this.disabledProp.includes(formItem.field)) { formItem.readOnly = true; } - if(formItem.field=='lcstatus'){ - formItem.field=formItem.field+'_text'; - formItem.readOnly=true; + if (formItem.field == "lcstatus") { + formItem.field = formItem.field + "_text"; + formItem.readOnly = true; } // 璁剧疆琛ㄥ崟鏍¢獙鐨勮鍒欙紝鏂囨湰 let message = "璇烽�夋嫨"; @@ -543,12 +223,22 @@ 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)=>{ + 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) @@ -557,37 +247,45 @@ 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) || + (formItem.secType == "codeattrsec" ? this.add : 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 || {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.trendsSpan, + span: formItem.span + ? formItem.span + : formItem.type === "textarea" + ? 24 + : this.localTrendsSpan, rules: [ { required: formItem.required, - message: `璇�${message}${formItem.text}`, + message: `${message}${formItem.text}`, trigger, }, { @@ -602,6 +300,8 @@ value: "key", }, }; + // console.log('formItem',formItem) + // console.log('columnItem',columnItem) slotColumnList.push(columnItem); if (group.length === 0) { column.push(columnItem); @@ -619,6 +319,125 @@ 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 = { + change:(val)=>{ + console.log('1',val) + }, + 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, + message: `${message}${formItem.text}`, + trigger, + }, + { + // 濡傛灉娌℃湁姝e垯鍒欏尮閰嶄换浣曞瓧绗� + pattern: formItem.verify ? formItem.verify : /[\s\S.]*/g, + message: formItem.tooltips, + trigger, + }, + ], + props: { + label: "value", + value: "key", + }, + }; + + if (group.length === 0) { + that.slotColumnList.forEach((colItem,index) => { + if (colItem.field == columnItem.field) { + that.slotColumnList[index] = columnItem; + column[index] = columnItem; + return; + } + }) + } else { + 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; + } + }) + }); + } + }); + that.$set(that.option, "column", column); + that.$set(that.option, "group", group); }, // 浣跨敤浼犲叆鐨勮〃鍗曟暟鎹厤缃� resetFormConfig(formItem) { @@ -637,6 +456,7 @@ if (Object.hasOwnProperty.call(element, newAttr)) { const oldAttr = element[newAttr]; formItem[newAttr] = formItem[oldAttr]; + } } } else if (configType === "directVoluation") { @@ -653,9 +473,9 @@ }, // 鏍规嵁灞忓箷鍔ㄦ�侀厤缃〃鍗曞竷灞� handleResize() { - let windowWidth = document.body.clientWidth; - this.trendsSpan = 24 / Math.floor(windowWidth / 500); - this.updateIndex++; + // let windowWidth = document.body.clientWidth; + // this.trendsSpan = 24 / Math.floor(windowWidth / 500); + // this.updateIndex++; }, // 鍓嶅悗缂� preOrSufFixShow(type, val) { @@ -686,13 +506,13 @@ // 寮傛鑾峰彇瀛楀吀鏁版嵁 geDictData(dictKeys) { dictKeys.forEach((dictObj) => { - getDictionary({ code: dictObj.dictKey }).then((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; @@ -710,6 +530,7 @@ if (valid) { done(); resolve(true); + this.ValidataValue=true; } else { resolve(false); } @@ -740,21 +561,24 @@ 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)]; + temp = _item['attributes'][mapField.subString("attribute.".length)] || _item['attributes']['data'][mapField.subString("attribute.".length)]; } else { - temp = _item['attributes'][mapField] || _item[mapField]; + 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)]); + mutiTemp.push(_item['attributes'][_itemField.subString("attribute.".length)] || _item['attributes']['data'][_itemField.subString("attribute.".length)]); } else { - mutiTemp.push(_item['attributes'][_itemField] || _item[_itemField]); + mutiTemp.push(_item['attributes'][_itemField] || _item['attributes']['data'][_itemField] || _item[_itemField]); } }); temp = mutiTemp.join(' '); @@ -766,19 +590,9 @@ this.form[key] = value.join(','); } } - this.$emit("getFormData", this.form); this.$emit("referConfigDataUpdate", data); + this.$emit("getFormData", this.form); } - }, - }, - watch: { - // 琛ㄥ崟鏁版嵁淇敼鍙嶉鍒扮埗缁勪欢 - form: { - deep: true, - immediate: true, - handler(newV) { - this.$emit("getFormData", newV); - }, }, }, }; -- Gitblit v1.9.3