From 711c0021a8c178c5ef00967711b0d3d6fa50637f Mon Sep 17 00:00:00 2001 From: yuxc <653031404@qq.com> Date: 星期三, 29 十一月 2023 17:34:50 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/UBCS-WEB/src/components/FormTemplate/index.vue | 163 ++++++++++++++++++++++++++++++++--------------------- 1 files changed, 98 insertions(+), 65 deletions(-) diff --git a/Source/UBCS-WEB/src/components/FormTemplate/index.vue b/Source/UBCS-WEB/src/components/FormTemplate/index.vue index dd94ab2..100ee4a 100644 --- a/Source/UBCS-WEB/src/components/FormTemplate/index.vue +++ b/Source/UBCS-WEB/src/components/FormTemplate/index.vue @@ -1,85 +1,88 @@ <template> <el-dialog - :visible.sync="dialogVisible" v-if="dialogVisible" v-dialogDrag - top="-5vh" - class="avue-dialog avue-dialog--top" :title="title" + :visible.sync="dialogVisible" :width="width" append-to-body + class="avue-dialog avue-dialog--top" + top="-5vh" @opened="openDialog" > <FormTemplate - key="masterForm" data-key="masterForm" - :status="status" - v-bind="$attrs" - :type="type" - :TreeValue="TreeValue" - :rowOid="rowOid" - :eventList="eventList" - :templateOid="templateOid" - v-if="dialogVisible" + v-if="dialogVisible" key="masterForm" ref="FormTemplate" + v-bind="$attrs" + :TreeValue="TreeValue" + :eventList="eventList" + :rowOid="rowOid" + :status="status" + :templateOid="templateOid" + :type="type" + data-key="masterForm" + @dataYearCode="dataYearHandler" @getFormData="getFormData" + @isShow="isShowHandler" ></FormTemplate> <div - class="tab_box" v-if=" type !== 'detail' && dialogVisible && (showCodeApply || showResembleQuery) && type !== 'preview' " + class="tab_box" > <el-tabs v-model="activeName" type="border-card" @tab-click="handleClick"> - <el-tab-pane label="鐮佸�肩敵璇�" name="codeApply" v-if="showCodeApply"> + <el-tab-pane v-if="showCodeApply" label="鐮佸�肩敵璇�" name="codeApply"> <FormTemplate - key="codeApplyForm" data-key="codeApplyForm" - secDTOListv-bind="$attrs" - :type="type" - :selfColumnType="selfColumnType" + key="codeApplyForm" ref="CodeApply" :selfColumnConfig="selfColumnConfig" - ref="CodeApply" - @getFormData="getCodeApplyFormData" + :selfColumnType="selfColumnType" + :type="type" + data-key="codeApplyForm" + secDTOListv-bind="$attrs" @attrList="attrListForm" - @isSeriesType="isSeriesTypeString" + @getFormData="getCodeApplyFormData" @referConfigDataUpdate="referConfigDataUpdate" ></FormTemplate> </el-tab-pane> <el-tab-pane + v-if="showResembleQuery" label="鐩镐技椤规煡璇�" name="resembleQuery" - v-if="showResembleQuery" > <ResembleQuery - v-bind="$attrs" ref="resembleQueryRef" - :hasResemble="this.hasResemble" - :column="this.resembleTableColumn" + v-bind="$attrs" :codeClassifyOid="codeClassifyOid" + :column="this.resembleTableColumn" :form="this.form" + :hasResemble="this.hasResemble" :templateOid="templateOid" ></ResembleQuery> </el-tab-pane> </el-tabs> </div> <template #footer> - <div class="" v-if="type !== 'detail'"> - <el-button @click="close()" size="small">鍙� 娑�</el-button> + <div v-if="type !== 'detail'" class=""> + <el-button size="small" @click="close()">鍙� 娑�</el-button> <el-button - @click="submit()" - type="primary" :loading="submitBtnLoading" size="small" - >{{ submitText }}</el-button + type="primary" + @click="submit()" + >{{ submitText }} + </el-button > <el-button - @click="resembleQuerySubmit" - type="primary" - size="small" v-if="showResembleQuery" - >鐩镐技鍍忔煡璇�</el-button + size="small" + type="primary" + @click="resembleQuerySubmit" + >鐩镐技鍍忔煡璇� + </el-button > </div> </template> @@ -87,14 +90,15 @@ </template> <script> -import { getCodeRule, getFormTemplate } from "@/api/formTemplate.js"; +import {getCodeRule, getFormTemplate} from "@/api/formTemplate.js"; import FormTemplate from "./FormTemplate"; import ResembleQuery from "./ResembleQuery"; + export default { name: "FormTemplateDialog", - components: { ResembleQuery, FormTemplate }, + components: {ResembleQuery, FormTemplate}, props: { - status:{ + status: { type: String, default: "", }, @@ -102,7 +106,7 @@ type: Boolean, default: false, }, - TreeValue:{ + TreeValue: { type: String, default: "", }, @@ -138,11 +142,11 @@ }, data() { return { - isSeriesType:{}, - attrList:[], - eventList:[], + isSeriesType: {}, + attrList: [], + eventList: [], //鐮佸�肩殑绗簩绉嶅彧璇婚殣钘忔儏鍐� - codeValueApplyStatus:'', + codeValueApplyStatus: '', loading: false, submitBtnLoading: false, hasResemble: false, @@ -222,9 +226,11 @@ "secretgrade", ], codeRuleOid: "", + isShowStatus: "" }; }, - created() {}, + created() { + }, computed: { dialogVisible: { get() { @@ -235,9 +241,9 @@ }, }, }, - watch:{ - codeApplyForm:{ - handler(newval,oldval){ + watch: { + codeApplyForm: { + handler(newval, oldval) { // console.log('newval',newval) } } @@ -245,7 +251,7 @@ methods: { openDialog() { this.getFormTemplate(); - if (this.type === "add") { + if (this.type === "add" || this.status === "amend") { this.getCodeRule(); } }, @@ -275,7 +281,7 @@ this.$refs.FormTemplate.templateRender( res.data.formDefineVO.items ); - this.eventList=res.data.templateVO.attributes + 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; @@ -313,9 +319,10 @@ that.secVOList = (res.data.data.secVOList || []).filter((item) => typeList.includes(item.secType) ); - if (that.secVOList.length > 0 && that.type === "add") { + if ((that.secVOList.length > 0 && that.type === "add") || that.status === "amend") { that.showCodeApply = true; that.activeName = "codeApply"; + this.$nextTick(() => { that.$refs.CodeApply.templateRender(that.secVOList, this.TreeValue); }); @@ -326,12 +333,7 @@ }); }, getFormData(form) { - // if (this.status === "apply"){ - // form.codeStandardEditType = "鍒跺畾"; - // return; - // } this.form = form; - // console.log("form",form) //灞炴�х爜娈佃祴鍊� if (this.attrList) { this.attrList.forEach(item => { @@ -342,12 +344,38 @@ } }, - isSeriesTypeString(val){ - this.isSeriesType = val; + //绯诲垪鍙疯鍒� + isShowHandler(val) { + this.isShowStatus = val; + + this.secVOList.forEach(item => { + if (item.name === "绯诲垪鍙�") { + this.$set(item, "readOnly", val) + } + }) + if (this.$refs.CodeApply) { // 娣诲姞涓�涓垽鏂鍙ワ紝妫�鏌ュ璞℃槸鍚︿负undefined + this.$refs.CodeApply.changeChildItem(this.secVOList, this.TreeValue, this.type); + } + }, + //骞翠唬鍙� + dataYearHandler(val) { + const readOnlyValue = val && Object.values(val).every(value => value !== ''); + + this.secVOList.forEach(item => { + if (item.name === "骞翠唬鍙�") { + const year = readOnlyValue ? val.value.slice(0, 4) : item.codeDateValue; + this.codeApplyForm[item.oid] = year; + this.$set(item, "readOnly", readOnlyValue); + } + }); + + if (this.$refs.CodeApply) { + this.$refs.CodeApply.changeChildItem(this.secVOList, this.TreeValue, this.type); + } }, //灞炴�х爜娈佃祴鍊� - attrListForm(attrListForm){ - this.attrList=attrListForm; + attrListForm(attrListForm) { + this.attrList = attrListForm; }, getCodeApplyFormData(codeApplyForm) { // console.log("codeApplyForm",codeApplyForm) @@ -355,21 +383,21 @@ }, // 鍙傜収缁勪欢鏁版嵁鍙樻洿 referConfigDataUpdate(data) { - const { field } = data; - let childItems=[]; + 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.readOnly = false; + item.referConfig.extraParams.parentClassifyValueOid = data.value; item.referConfig.reloadData = true; childItems.push(item) } return item; }); //this.$refs.CodeApply.templateRender(this.secVOList,this.TreeValue); - this.$refs.CodeApply.changeChildItem(childItems); + this.$refs.CodeApply.changeChildItem(childItems, this.TreeValue, this.type); }, resembleQuerySubmit() { this.activeName = "resembleQuery"; @@ -426,7 +454,7 @@ "lastmodifier" ]; let resForm = {}; - const { defaultValue, formValue } = this.getDefaultValueAndFormValues( + const {defaultValue, formValue} = this.getDefaultValueAndFormValues( this.form ); noData.forEach((item) => { @@ -534,9 +562,13 @@ if (!this.codeApplyForm[item.parentClassifySecOid]) { return true; } else { - return false; + return item.readOnly || false; } + } else { + return item.readOnly || false; } + } else { + return item.readOnly || false; } }, isRequired(item) { @@ -577,6 +609,7 @@ top: 2px; color: red; } + // 瑙e喅swich缁勪欢涓嶅瀭鐩村眳涓殑闂 /deep/ .el-switch { vertical-align: baseline; -- Gitblit v1.9.3