From ac8e8998235f247365280d1a1632115c43b10037 Mon Sep 17 00:00:00 2001 From: ludc Date: 星期五, 17 十一月 2023 02:24:30 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/UBCS-WEB/src/components/FormTemplate/index.vue | 214 +++++++++++++++++++++++++++++++++++++++-------------- 1 files changed, 157 insertions(+), 57 deletions(-) diff --git a/Source/UBCS-WEB/src/components/FormTemplate/index.vue b/Source/UBCS-WEB/src/components/FormTemplate/index.vue index 021d2f3..fb3a61b 100644 --- a/Source/UBCS-WEB/src/components/FormTemplate/index.vue +++ b/Source/UBCS-WEB/src/components/FormTemplate/index.vue @@ -3,22 +3,25 @@ :visible.sync="dialogVisible" v-if="dialogVisible" v-dialogDrag - top="5vh" + top="-5vh" + class="avue-dialog avue-dialog--top" :title="title" :width="width" append-to-body @opened="openDialog" > <FormTemplate + key="masterForm" data-key="masterForm" v-bind="$attrs" - :visible="visible" :type="type" + :TreeValue="TreeValue" :rowOid="rowOid" + :eventList="eventList" :templateOid="templateOid" + v-if="dialogVisible" ref="FormTemplate" @getFormData="getFormData" ></FormTemplate> - <div class="tab_box" v-if=" @@ -31,12 +34,14 @@ <el-tabs v-model="activeName" type="border-card" @tab-click="handleClick"> <el-tab-pane label="鐮佸�肩敵璇�" name="codeApply" v-if="showCodeApply"> <FormTemplate - v-bind="$attrs" + key="codeApplyForm" data-key="codeApplyForm" + secDTOListv-bind="$attrs" :type="type" :selfColumnType="selfColumnType" :selfColumnConfig="selfColumnConfig" ref="CodeApply" @getFormData="getCodeApplyFormData" + @attrList="attrListForm" @referConfigDataUpdate="referConfigDataUpdate" ></FormTemplate> </el-tab-pane> @@ -91,6 +96,10 @@ type: Boolean, default: false, }, + TreeValue:{ + type: String, + default: "", + }, type: { type: String, default: "add", @@ -116,9 +125,17 @@ type: String, default: "纭� 瀹�", }, + setForm: { + type: Object, + default: () => ({}), + }, }, data() { return { + attrList:[], + eventList:[], + //鐮佸�肩殑绗簩绉嶅彧璇婚殣钘忔儏鍐� + codeValueApplyStatus:'', loading: false, submitBtnLoading: false, hasResemble: false, @@ -127,13 +144,16 @@ form: {}, codeApplyForm: {}, activeName: "codeApply", - showCodeApply: true, - showResembleQuery: true, + showCodeApply: false, + showResembleQuery: false, selfColumnType: { - codefixedsec: "combox", - codeclassifysec: "refer", - codevariablesec: "text", - coderefersec: "refer", + codefixedsec: "combox",//鍥哄畾鐮佹 + codeclassifysec: "refer",//鍒嗙被鐮佹 + codevariablesec: "text",//鍙彉鐮佹 + coderefersec: "refer",//寮曠敤鐮佹 + codeattrsec: "text", + codelevelsec: "text", + codedatesec: "date" }, selfColumnConfig: { function: { @@ -152,6 +172,7 @@ label: "name", maxlength: "codeSecLength", data: "fixedValueVOList", + dateFormate: "codeDateFormatStr" }, directVoluation: { search: true, @@ -193,6 +214,7 @@ "copyfromversion", "secretgrade", ], + codeRuleOid: "", }; }, created() {}, @@ -205,6 +227,13 @@ this.$emit("update:visible", val); }, }, + }, + watch:{ + codeApplyForm:{ + handler(newval,oldval){ + // console.log('newval',newval) + } + } }, methods: { openDialog() { @@ -232,8 +261,19 @@ if (this.hasResemble) { this.activeName = "resembleQuery"; this.showResembleQuery = true; + } else { + this.showResembleQuery = false; } - this.$refs.FormTemplate.templateRender(res.data.formDefineVO.items); + this.$nextTick(() => { + this.$refs.FormTemplate.templateRender( + res.data.formDefineVO.items + ); + this.eventList=res.data.templateVO.attributes + // this.$refs.FormTemplate.$emit('eventList', res.data.templateVO.attributes); + if (Object.keys(this.setForm).length > 0) { + this.$refs.FormTemplate.form = this.setForm; + } + }); } }) .catch(() => { @@ -242,31 +282,56 @@ }, // 鑾峰彇鐮佸�肩敵璇锋暟鎹� getCodeRule() { - getCodeRule({ codeClassifyOid: this.codeClassifyOid }).then((res) => { + let that = this; + getCodeRule({codeClassifyOid: that.codeClassifyOid}).then((res) => { if (res.data && res.data.code === 200) { + that.codeRuleOid = res.data.data.oid; const typeList = [ - "codefixedsec", - "codeclassifysec", + //灞炴�х爜娈� 鍙 + "codeattrsec", + //鍙彉鐮佹 "codevariablesec", + //鍥哄畾鐮佹 + "codefixedsec", + //鍒嗙被鐮佹 + "codeclassifysec", + //鏃ユ湡鐮佹 鍙 + "codedatesec", + //寮曠敤鐮佹 "coderefersec", + //灞傜骇鐮佹 鍙 + "codelevelsec", + //娴佹按鐮佹 闅愯棌 ]; - this.secVOList = (res.data.data.secVOList || []).filter((item) => + that.secVOList = (res.data.data.secVOList || []).filter((item) => typeList.includes(item.secType) ); - this.$nextTick(() => { - if (this.secVOList.length > 0 && this.type === "add") { - this.showCodeApply = true; - this.activeName = "codeApply"; - this.$refs.CodeApply.templateRender(this.secVOList); - } else { - this.showCodeApply = false; - } - }); + if (that.secVOList.length > 0 && that.type === "add") { + that.showCodeApply = true; + that.activeName = "codeApply"; + this.$nextTick(() => { + that.$refs.CodeApply.templateRender(that.secVOList, this.TreeValue); + }); + } else { + that.showCodeApply = false; + } } }); }, getFormData(form) { this.form = form; + //灞炴�х爜娈佃祴鍊� + if (this.attrList) { + this.attrList.forEach(item => { + if (this.form.hasOwnProperty(item.referAttributeId)) { + this.codeApplyForm[item.oid] = this.form[item.referAttributeId]; + } + }) + } + }, + //灞炴�х爜娈佃祴鍊� + attrListForm(attrListForm){ + this.attrList=attrListForm; }, getCodeApplyFormData(codeApplyForm) { this.codeApplyForm = codeApplyForm; @@ -274,14 +339,20 @@ // 鍙傜収缁勪欢鏁版嵁鍙樻洿 referConfigDataUpdate(data) { const { field } = data; + let childItems=[]; this.secVOList = this.secVOList.map((item) => { if (item.parentClassifySecOid === field) { this.$refs.CodeApply.form[item.oid] = undefined; this.$refs.CodeApply.form[item.name] = undefined; + item.readOnly=false; + item.referConfig.extraParams.parentClassifyValueOid=data.value; + item.referConfig.reloadData = true; + childItems.push(item) } return item; }); - this.$refs.CodeApply.templateRender(this.secVOList); + //this.$refs.CodeApply.templateRender(this.secVOList,this.TreeValue); + this.$refs.CodeApply.changeChildItem(childItems); }, resembleQuerySubmit() { this.activeName = "resembleQuery"; @@ -298,34 +369,22 @@ if (!formValidate) return; let codeValidate = true; // 杩涜鐮佸�肩敵璇锋牎楠� - if (this.showCodeApply) { - codeValidate = await this.$refs.CodeApply.validate(); - console.log(9999); - if (!codeValidate) return; - } - // 杩涜鐩镐技椤规煡璇� - const resembleQueryList = await this.$refs.resembleQueryRef.resembleQuery( - this.form - ); - if (resembleQueryList.length === 0) { - let resForm = {}; - const { defaultValue, formValue } = this.getDefaultValueAndFormValues( + // if (this.showCodeApply) { + // codeValidate = await this.$refs.CodeApply.validate(); + // if (!codeValidate) { + // this.activeName = "codeApply"; + // return false; + // } + // } + let resembleQueryList = []; + if (this.showResembleQuery && this.$refs.resembleQueryRef) { + // 杩涜鐩镐技椤规煡璇� + resembleQueryList = await this.$refs.resembleQueryRef.resembleQuery( this.form ); - resForm.data = formValue; - resForm = Object.assign({}, resForm, defaultValue); - resForm.secDTOList = []; - for (const key in this.codeApplyForm) { - if (Object.hasOwnProperty.call(this.codeApplyForm, key)) { - const value = this.codeApplyForm[key]; - if (value) { - resForm.secDTOList.push({ [key]: value }); - } - } - } - this.$emit("submit", resForm); - } else { - this.$confirm( + } + if (resembleQueryList.length > 0) { + await this.$confirm( `璇ョ墿鏂欏凡鏈�${resembleQueryList.length}鏉$浉浼兼暟鎹紝鏄惁缁х画淇濆瓨锛焋, "闇�瑕佹偍纭", { @@ -333,12 +392,50 @@ cancelButtonText: "鍙栨秷", type: "warning", } - ) - .then(() => { - this.$emit("submit", this.form); - }) - .catch(() => {}); + ); } + // 鎺掗櫎涓�浜涘瓧娈� + const noData = [ + "jiliangdwname", + "materialtypeText", + "morengongysname", + "$caigouwl", + "$xiaoshouwl", + "$shifoupihaoguanli", + "lcstatus_text", + "hesuanfenleiname", + "$kucunwl", + "oldcode", + "lastmodifier" + ]; + let resForm = {}; + const { defaultValue, formValue } = this.getDefaultValueAndFormValues( + this.form + ); + noData.forEach((item) => { + this.$delete(formValue, item); + }); + const keys = Object.keys(formValue); + keys.forEach((item, index) => { + keys.forEach((itm, idx) => { + if ((item === ('$' + itm)) && idx !== index) { + this.$delete(formValue, keys[index]); + } + }) + }); + + resForm.data = formValue; + resForm = Object.assign({}, resForm, defaultValue); + resForm.secDTOList = this.secVOList.map((item) => { + return { + secOid: item.oid, + secValue: this.codeApplyForm[item.oid], + }; + }); + resForm.codeClassifyOid = this.codeClassifyOid; + resForm.codeRuleOid = this.codeRuleOid; + resForm.templateOid = this.templateOid; + this.$emit("submit", resForm); }, getDefaultValueAndFormValues(form) { let defaultValue = {}; @@ -364,6 +461,7 @@ getReferConfig(item) { let params = {}; if (item.secType == "codeclassifysec") { + //鍒嗙被鐮佹 params = { isMuti: false, type: "grid", @@ -408,7 +506,8 @@ }, }; } else if (item.secType == "coderefersec") { - params = JSON.parse(item.referConfig); + //寮曠敤鐮佹 + params = JSON.parse(item.referValueInfo); } return params; }, @@ -426,6 +525,7 @@ isRequired(item) { return item.nullableFlag != "true"; }, + //榛樿鍊� getOptionList(item) { if ( Array.isArray(item.fixedValueVOList) && -- Gitblit v1.9.3