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/index.vue | 462 ++++++++++++++++++++++++++++----------------------------- 1 files changed, 226 insertions(+), 236 deletions(-) diff --git a/Source/UBCS-WEB/src/components/FormTemplate/index.vue b/Source/UBCS-WEB/src/components/FormTemplate/index.vue index a908408..886ce91 100644 --- a/Source/UBCS-WEB/src/components/FormTemplate/index.vue +++ b/Source/UBCS-WEB/src/components/FormTemplate/index.vue @@ -3,23 +3,24 @@ :visible.sync="dialogVisible" v-if="dialogVisible" v-dialogDrag - top="0vh" - :title="title" + top="-5vh" class="avue-dialog avue-dialog--top" + :title="title" :width="width" append-to-body @opened="openDialog" > - <FormTempalte + <FormTemplate v-bind="$attrs" - :visible="visible" :type="type" + :TreeValue="TreeValue" :rowOid="rowOid" + :eventList="eventList" :templateOid="templateOid" - ref="FormTempalte" + v-if="dialogVisible" + ref="FormTemplate" @getFormData="getFormData" - ></FormTempalte> - + ></FormTemplate> <div class="tab_box" v-if=" @@ -30,16 +31,16 @@ " > <el-tabs v-model="activeName" type="border-card" @tab-click="handleClick"> - <el-tab-pane label="鐮佸�肩敵璇�" name="codeApply"> - <FormTempalte + <el-tab-pane label="鐮佸�肩敵璇�" name="codeApply" v-if="showCodeApply"> + <FormTemplate v-bind="$attrs" :type="type" :selfColumnType="selfColumnType" :selfColumnConfig="selfColumnConfig" ref="CodeApply" - @getFormData="getFormData" + @getFormData="getCodeApplyFormData" @referConfigDataUpdate="referConfigDataUpdate" - ></FormTempalte> + ></FormTemplate> </el-tab-pane> <el-tab-pane label="鐩镐技椤规煡璇�" @@ -58,32 +59,43 @@ </el-tab-pane> </el-tabs> </div> - <div class="avue-dialog__footer" v-if="type !== 'detail'"> - <el-button @click="close()">鍙� 娑�</el-button> - <el-button @click="submit()" type="primary" :loading="submitBtnLoading">{{ - submitText - }}</el-button> - <el-button - @click="resembleQuerySubmit" - type="primary" - v-if="showResembleQuery" - >鐩镐技鍍忔煡璇�</el-button - > - </div> + <template #footer> + <div class="" v-if="type !== 'detail'"> + <el-button @click="close()" size="small">鍙� 娑�</el-button> + <el-button + @click="submit()" + type="primary" + :loading="submitBtnLoading" + size="small" + >{{ submitText }}</el-button + > + <el-button + @click="resembleQuerySubmit" + type="primary" + size="small" + v-if="showResembleQuery" + >鐩镐技鍍忔煡璇�</el-button + > + </div> + </template> </el-dialog> </template> <script> import { getCodeRule, getFormTemplate } from "@/api/formTemplate.js"; -import FormTempalte from "./FormTempalte"; +import FormTemplate from "./FormTemplate"; import ResembleQuery from "./ResembleQuery"; export default { name: "FormTemplateDialog", - components: { ResembleQuery, FormTempalte }, + components: { ResembleQuery, FormTemplate }, props: { visible: { type: Boolean, default: false, + }, + TreeValue:{ + type: String, + default: "", }, type: { type: String, @@ -110,23 +122,34 @@ type: String, default: "纭� 瀹�", }, + setForm: { + type: Object, + default: () => ({}), + }, }, data() { return { + eventList:[], + //鐮佸�肩殑绗簩绉嶅彧璇婚殣钘忔儏鍐� + codeValueApplyStatus:'', loading: false, submitBtnLoading: false, hasResemble: false, resembleTableColumn: [], secVOList: [], 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: { @@ -145,6 +168,7 @@ label: "name", maxlength: "codeSecLength", data: "fixedValueVOList", + dateFormate: "codeDateFormatStr" }, directVoluation: { search: true, @@ -154,6 +178,39 @@ }, }, }, + defaultKeys: [ + "oid", + "id", + "name", + "description", + "revisionoid", + "nameoid", + "btmname", + "lastr", + "firstr", + "lastv", + "firstv", + "creator", + "createtime", + "lastModifier", + "lastmodifytime", + "revisionrule", + "revisionseq", + "revisionvalue", + "versionrule", + "versionseq", + "versionvalue", + "lcstatus", + "ts", + "owner", + "checkinby", + "checkintime", + "checkoutby", + "checkouttime", + "copyfromversion", + "secretgrade", + ], + codeRuleOid: "", }; }, created() {}, @@ -193,205 +250,68 @@ if (this.hasResemble) { this.activeName = "resembleQuery"; this.showResembleQuery = true; + } else { + this.showResembleQuery = false; } - this.$refs.FormTempalte.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((err) => { + .catch(() => { this.loading = false; - console.log(err); }); }, // 鑾峰彇鐮佸�肩敵璇锋暟鎹� 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 = [ - { - btmname: "codebasicsec", - checkInBy: "", - checkInTime: null, - checkOutBy: "", - checkOutTime: null, - codeDateFormatStr: "", - codeFillFlag: "", - codeFillLength: "", - codeFillLimit: 0, - codeFillSeparator: "", - codeFillType: "", - codeFillTypeText: "", - codeGetValueType: "", - codeGetValueTypeText: "", - codeLevelType: "", - codeLevelTypeText: "", - codeLevelValue: 0, - codeSecLength: "10", - codeSecLengthType: "code_sec_length_variable", - codeSecLengthTypeText: "", - componentCodeFlag: "false", - copyFromVersion: "", - createTime: "2023-06-06 14:10:27.000", - creator: "1", - customCodeSerialClass: "", - data: null, - description: "", - displayFlag: "false", - filterSql: "", - firstR: "1", - firstV: "1", - fixedValueVOList: null, - getValueClass: "", - id: "0001", - lastModifier: "1", - lastModifyTime: "2023-06-06 14:10:27.000", - lastR: "1", - lastV: "1", - lcStatus: "Exist", - lcStatusText: "瀛樺湪", - lctid: "defaultLC", - matchClassifyValueFlag: "false", - name: "鍒嗙被鐮佹鐖�", - nameOid: "C2998D32-E89E-6D41-0782-88E97E9EC65B", - nullableFlag: "false", - oid: "1668926002119708672", - orderNum: 1, - owner: "1", - parentClassifySecOid: "", - parentClassifySecText: "", - pkCodeRule: "B4766355-E4E1-490A-833B-D5AB73E9B877", - referAttributeId: "", - referAttributeName: "", - referBtmId: "", - referBtmName: "", - referCodeClassifyOid: "", - referCodeClassifyOidName: "", - referConfig: "", - referValueInfo: "", - revisionOid: "F0049108-6AAE-EAAD-BC76-E6714C2B8F2A", - revisionRule: "", - revisionSeq: 1, - revisionValue: "", - secretGrade: null, - secretGradeText: "", - sectype: "codeclassifysec", - sectypeText: "鍒嗙被鐮佹", - serialDependFlag: "false", - serialDependOrder: 0, - serialStart: "", - serialStep: 0, - ts: "2023-06-06 14:10:27.716", - valueCutLength: 0, - valueCutType: "", - valueCutTypeText: "", - versionRule: "0", - versionSeq: 1, - versionValue: "1", - }, - { - btmname: "codebasicsec", - checkInBy: "", - checkInTime: null, - checkOutBy: "", - checkOutTime: null, - codeDateFormatStr: "", - codeFillFlag: "", - codeFillLength: "", - codeFillLimit: 0, - codeFillSeparator: "", - codeFillType: "", - codeFillTypeText: "", - codeGetValueType: "", - codeGetValueTypeText: "", - codeLevelType: "", - codeLevelTypeText: "", - codeLevelValue: 0, - codeSecLength: "10", - codeSecLengthType: "code_sec_length_variable", - codeSecLengthTypeText: "", - componentCodeFlag: "false", - copyFromVersion: "", - createTime: "2023-06-06 14:10:50.000", - creator: "1", - customCodeSerialClass: "", - data: null, - description: "", - displayFlag: "false", - filterSql: "", - firstR: "1", - firstV: "1", - fixedValueVOList: null, - getValueClass: "", - id: "000101", - lastModifier: "1", - lastModifyTime: "2023-06-06 14:10:50.000", - lastR: "1", - lastV: "1", - lcStatus: "Exist", - lcStatusText: "瀛樺湪", - lctid: "defaultLC", - matchClassifyValueFlag: "false", - name: "鍒嗙被鐮佹瀛�", - nameOid: "1FDB20E3-9F68-A5B0-D097-2142EA054F9B", - nullableFlag: "false", - oid: "00AD9FE0-A31D-7962-10DF-DC6115EF80A5", - orderNum: 2, - owner: "1", - parentClassifySecOid: "1668926002119708672", - parentClassifySecText: "鍒嗙被鐮佹", - pkCodeRule: "B4766355-E4E1-490A-833B-D5AB73E9B877", - referAttributeId: "", - referAttributeName: "", - referBtmId: "", - referBtmName: "", - referCodeClassifyOid: "", - referCodeClassifyOidName: "", - referConfig: "", - referValueInfo: "", - revisionOid: "95183EF9-C9AD-2941-1C99-9E9024330D40", - revisionRule: "", - revisionSeq: 1, - revisionValue: "", - secretGrade: null, - secretGradeText: "", - sectype: "codeclassifysec", - sectypeText: "鍒嗙被鐮佹", - serialDependFlag: "false", - serialDependOrder: 0, - serialStart: "", - serialStep: 0, - ts: "2023-06-06 14:10:50.084", - valueCutLength: 0, - valueCutType: "", - valueCutTypeText: "", - versionRule: "0", - versionSeq: 1, - versionValue: "1", - }, - ]; - // this.secVOList = (res.data.data.secVOList || []).filter((item) => - // typeList.includes(item) - // ); - 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; - } - }); + that.secVOList = (res.data.data.secVOList || []).filter((item) => + typeList.includes(item.secType) + ); + if (that.secVOList.length > 0 && that.type === "add") { + that.showCodeApply = true; + that.activeName = "codeApply"; + that.$nextTick(() => { + that.$refs.CodeApply.templateRender(that.secVOList,this.TreeValue); + }); + } else { + that.showCodeApply = false; + } } }); }, getFormData(form) { this.form = form; + }, + getCodeApplyFormData(codeApplyForm) { + this.codeApplyForm = codeApplyForm; }, // 鍙傜収缁勪欢鏁版嵁鍙樻洿 referConfigDataUpdate(data) { @@ -400,9 +320,12 @@ 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; } + return item; }); - this.$refs.CodeApply.templateRender(); + this.$refs.CodeApply.templateRender(this.secVOList,this.TreeValue); }, resembleQuerySubmit() { this.activeName = "resembleQuery"; @@ -415,22 +338,26 @@ }, async submit() { // 杩涜琛ㄥ崟鏍¢獙 - const formValidate = await this.$refs.FormTempalte.validate(); + const formValidate = await this.$refs.FormTemplate.validate(); if (!formValidate) return; let codeValidate = true; // 杩涜鐮佸�肩敵璇锋牎楠� - if (this.showCodeApply) { - codeValidate = await this.$refs.codeApply.validate(); - if (!codeValidate) return; + // if (this.showCodeApply) { + // codeValidate = await this.$refs.CodeApply.validate(); + // if (!codeValidate) { + // this.activeName = "codeApply"; + // return false; + // } + // } + let resembleQueryList = []; + if (this.$refs.resembleQueryRef) { + // 杩涜鐩镐技椤规煡璇� + resembleQueryList = await this.$refs.resembleQueryRef.resembleQuery( + this.form + ); } - // 杩涜鐩镐技椤规煡璇� - const resembleQueryList = await this.$refs.resembleQueryRef.resembleQuery( - this.form - ); - if (resembleQueryList.length === 0) { - this.$emit("submit", this.form); - } else { - this.$confirm( + if (resembleQueryList.length > 0) { + await this.$confirm( `璇ョ墿鏂欏凡鏈�${resembleQueryList.length}鏉$浉浼兼暟鎹紝鏄惁缁х画淇濆瓨锛焋, "闇�瑕佹偍纭", { @@ -438,19 +365,76 @@ 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 = {}; + let formValue = {}; + for (const key in form) { + if (Object.hasOwnProperty.call(form, key)) { + const element = form[key]; + if (this.defaultKeys.includes(key)) { + defaultValue[key] = element; + } else { + formValue[key] = element; + } + } + } + return { + defaultValue, + formValue, + }; }, getType(item) { - return this.selfColumnType[item.sectype]; + return this.selfColumnType[item.secType]; }, getReferConfig(item) { let params = {}; - if (item.sectype == "codeclassifysec") { + if (item.secType == "codeclassifysec") { + //鍒嗙被鐮佹 params = { isMuti: false, type: "grid", @@ -489,16 +473,21 @@ url: "api/ubcs-code/ubcs-code/mdmEngineController/listCodeClassifyValueBySecOid", extraParams: { classifySecOid: item.oid, - parentClassifyValueOid: "", + parentClassifyValueOid: item.parentClassifySecOid + ? this.codeApplyForm[item.parentClassifySecOid] + : "", }, }; + } else if (item.secType == "coderefersec") { + //寮曠敤鐮佹 + params = JSON.parse(item.referValueInfo); } - return item.referConfig || params; + return params; }, getDisabled(item) { - if (item.sectype === "codeclassifysec") { + if (item.secType === "codeclassifysec") { if (item.parentClassifySecOid) { - if (!this.form[item.parentClassifySecOid]) { + if (!this.codeApplyForm[item.parentClassifySecOid]) { return true; } else { return false; @@ -509,6 +498,7 @@ isRequired(item) { return item.nullableFlag != "true"; }, + //榛樿鍊� getOptionList(item) { if ( Array.isArray(item.fixedValueVOList) && -- Gitblit v1.9.3