From 32f4bb41c82ded759e7db18c9fa449b1442f15c8 Mon Sep 17 00:00:00 2001 From: fujunling <2984387807@qq.com> Date: 星期三, 21 六月 2023 16:39:12 +0800 Subject: [PATCH] Merge branch 'master' of http://dev.vci-tech.com:1065/r/ubcs --- Source/UBCS-WEB/src/components/FormTemplate/FormTempalte.vue | 114 ++++++++++++++++++++++++++------------------------------ 1 files changed, 53 insertions(+), 61 deletions(-) diff --git a/Source/UBCS-WEB/src/components/FormTemplate/FormTempalte.vue b/Source/UBCS-WEB/src/components/FormTemplate/FormTempalte.vue index ec78c2f..0733ce0 100644 --- a/Source/UBCS-WEB/src/components/FormTemplate/FormTempalte.vue +++ b/Source/UBCS-WEB/src/components/FormTemplate/FormTempalte.vue @@ -8,6 +8,7 @@ v-loading="loading" ref="form" :style="{ minHeight: loading ? '300px' : '' }" + :key="updateIndex" > <template :slot="item.prop + 'Label'" v-for="item in slotColumnList"> <span> @@ -26,8 +27,12 @@ <template :slot="item.prop + ''" v-for="item in slotColumnList"> <vciWebRefer v-if="item.type == 'refer'" - :value="item.value" - :options="item.referConfig || {}" + :referConfig="item.referConfig || {}" + :value="form[item.referConfig.field] || item.value" + :text="form[item.referConfig.showField]" + :disabled="item.disabled" + :display="item.display" + @setReferValue="setReferValue" ></vciWebRefer> </template> </avue-form> @@ -35,7 +40,7 @@ </template> <script> -import { getFormTemplate, getFormDetail } from "@/api/formTemplate"; +import { getFormDetail } from "@/api/formTemplate"; import { getDictionary } from "../../api/system/dict"; import vciWebRefer from "../refer/vciWebRefer.vue"; export default { @@ -78,7 +83,7 @@ }, data() { return { - formIndex: 0, + updateIndex: 0, form: {}, option: { emptyBtn: false, @@ -197,7 +202,7 @@ tooltips: "璇疯緭鍏ユ暟瀛�", type: "text", unique: false, - verify: "/[0-9]/", + verify: /^[0-9]+$/g, }, { comboxKey: null, @@ -497,31 +502,6 @@ this.handleResize(); }, methods: { - // 鍒濆鍖� - init(columnList) { - if (Array.isArray(columnList)) { - this.templateRender(columnList); - } else { - this.getFormTemplate(); - } - }, - // 鎺ュ彛鑾峰彇琛ㄥ崟鏁版嵁 - getFormTemplate() { - getFormTemplate({ - templateOid: this.templateOid, - codeClassifyOid: this.codeClassifyOid, - }) - .then((res) => { - if (res.status === 200) { - this.templateRender(res.data.formDefineVO.items); - this.$emit("getFormTemplateEnd", res.data); - } - }) - .catch((err) => { - this.loading = false; - console.log(err); - }); - }, // 娓叉煋琛ㄥ崟妯℃澘 templateRender(formItemList) { // 鏃犻渶鍒嗙粍鏁版嵁 @@ -538,6 +518,7 @@ collapse: true, column: [], }); + return; } if ( formItem.type === "combox" && @@ -575,17 +556,21 @@ format: formItem.dateFormate, keyAttr: formItem.keyAttr, value: formItem.defaultValue, - // tip: formItem.tooltips, - // tipPlacement: "right", placeholder: formItem.inputTip, comboxKey: formItem.comboxKey, display: !formItem.hidden, maxlength: formItem.maxlength, filterable: true, - referConfig:formItem.referConfig, - change: () => { - this.changeFun(formItem.displayExtension, formItem.prop); - }, + referConfig: + formItem.type == "refer" + ? { + title: formItem.text, + showField: formItem.showField || formItem.field, + field: formItem.field, + placeholder: formItem.inputTip, + options: formItem.referConfig, + } + : {}, span: formItem.type === "textarea" ? 24 : this.trendsSpan, rules: [ { @@ -615,10 +600,12 @@ this.slotColumnList = slotColumnList; this.$set(this.option, "column", column); this.$set(this.option, "group", group); - this.formIndex++; - this.loading = false; + this.updateIndex++; + if (this.type === "add") { + this.loading = false; + } this.geDictData(dictKeys); - this.getFormDetail() + this.getFormDetail(); }, // 浣跨敤浼犲叆鐨勮〃鍗曟暟鎹厤缃� resetFormConfig(formItem) { @@ -655,7 +642,7 @@ handleResize() { let windowWidth = document.body.clientWidth; this.trendsSpan = 24 / Math.floor(windowWidth / 500); - this.formIndex++; + this.updateIndex++; }, // 鍓嶅悗缂� preOrSufFixShow(type, val) { @@ -664,11 +651,6 @@ if ((type === "text" && !isIcon) || (type === "icon" && isIcon)) { return val; } - }, - changeFun(displayExtension, prop) { - // executeCode({displayExtension, data: this.form}).then(res => { - // this.form[prop] = res.data.data - // }) }, // 鑾峰彇swich鍜屽凡鎷垮埌鐨勪笅鎷夋暟鎹� getDataList(type, dicData) { @@ -709,26 +691,36 @@ }); }, // 琛ㄥ崟鏍¢獙 - validate() { + validate() { return new Promise((resolve) => { - this.$refs.form.validate((valid, done, msg) => { - console.error(msg, valid) - if (valid) { - resolve(true) - } else { - resolve(false); - } + this.$refs.form.validate((valid, done) => { + if (valid) { + done(); + resolve(true); + } else { + resolve(false); + } + }); }); - }) - }, - // 鑾峰彇琛ㄥ崟鏁版嵁 + // 鑾峰彇琛ㄥ崟璇︽儏鏁版嵁 getFormDetail() { - if (this.type === 'add') return - getFormDetail({templateOid: this.templateOid, oid: this.rowOid}).then(res => { - console.log(res, 'res'); - }) - } + 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; + } + ); + }, + setReferValue(data) { + if (data.field) { + this.form[data.field] = data.value || ""; + this.form[data.showField] = data.text || ""; + this.$emit("getFormData", this.form); + this.$emit("referConfigDataUpdate", data); + } + }, }, watch: { // 琛ㄥ崟鏁版嵁淇敼鍙嶉鍒扮埗缁勪欢 -- Gitblit v1.9.3