From d074b52c1911bdae4ba913b59658d82f11c59230 Mon Sep 17 00:00:00 2001 From: danshihao Date: Tue, 30 Jul 2024 11:41:01 +0800 Subject: [PATCH] =?UTF-8?q?[update=20=E6=A0=87=E5=87=86=E4=B8=BB=E8=AE=A1?= =?UTF-8?q?=E5=88=92]=20=E5=AE=8C=E5=96=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/standardRegulationLibraryApi.js | 3 + .../modules/StandardMasterPlanModal.vue | 241 ++++++++++-------- 2 files changed, 142 insertions(+), 102 deletions(-) diff --git a/src/api/standardRegulationLibraryApi.js b/src/api/standardRegulationLibraryApi.js index f8a89c0..8e9d720 100644 --- a/src/api/standardRegulationLibraryApi.js +++ b/src/api/standardRegulationLibraryApi.js @@ -133,6 +133,8 @@ const getStandardMasterPlanById = (params) => getAction('/laws/StandardMasterPla const addStandardMasterPlan = (params) => postAction('/laws/StandardMasterPlan/add', params) // 标准主计划-编辑 const editStandardMasterPlan = (params) => postAction('/laws/StandardMasterPlan/edit', params) +// 标准主计划新增回显 +const getStandardMasterPlanAddEcho = (params) => getAction('/laws/StandardMasterPlan/queryAssociationId', params) // 市场法规清单-基础信息-根据id查询 const getMarketRegulationListById = (params) => getAction('/laws/marketStandard/detail', params) @@ -233,6 +235,7 @@ export { getStandardMasterPlanById, addStandardMasterPlan, editStandardMasterPlan, + getStandardMasterPlanAddEcho, // 市场法规清单 getMarketRegulationListById, diff --git a/src/views/standardRegulationLibrary/standardMasterPlan/modules/StandardMasterPlanModal.vue b/src/views/standardRegulationLibrary/standardMasterPlan/modules/StandardMasterPlanModal.vue index 276ee00..fe7c2ae 100644 --- a/src/views/standardRegulationLibrary/standardMasterPlan/modules/StandardMasterPlanModal.vue +++ b/src/views/standardRegulationLibrary/standardMasterPlan/modules/StandardMasterPlanModal.vue @@ -7,13 +7,14 @@ :closable="true" @close="handleCancel" :visible="visible" + :destroyOnClose="true" class="custom-drawer-style">
- + @@ -30,19 +31,21 @@ - - - - - - - + + + + + + + + @@ -77,7 +80,7 @@ @@ -87,7 +90,7 @@ @@ -116,7 +119,7 @@ :getCalendarContainer="(trigger) => trigger.parentNode" format="YYYY-MM-DD" value-format="YYYY-MM-DD" - v-decorator="['data[0].actualCompletionDate', infoInputValidatorRules.actualCompletionDate]" + v-decorator="['data[0].actualCompletionDate', validatorRulesArr[0].actualCompletionDate]" :disabled="disableSubmit" style="width: 100%" /> @@ -167,6 +170,7 @@ @@ -206,7 +210,7 @@ :getCalendarContainer="(trigger) => trigger.parentNode" format="YYYY-MM-DD" value-format="YYYY-MM-DD" - v-decorator="['data[2].actualCompletionDate', validatorRules.actualCompletionDate]" + v-decorator="['data[2].actualCompletionDate']" style="width: 100%" disabled/> @@ -231,6 +235,7 @@ - @@ -268,7 +273,7 @@ :getCalendarContainer="(trigger) => trigger.parentNode" format="YYYY-MM-DD" value-format="YYYY-MM-DD" - v-decorator="['data[3].actualCompletionDate', validatorRules.actualCompletionDate]" + v-decorator="['data[3].actualCompletionDate']" style="width: 100%" disabled/> @@ -293,6 +298,7 @@ @@ -332,7 +338,7 @@ :getCalendarContainer="(trigger) => trigger.parentNode" format="YYYY-MM-DD" value-format="YYYY-MM-DD" - v-decorator="['data[4].actualCompletionDate', validatorRules.actualCompletionDate]" + v-decorator="['data[4].actualCompletionDate', validatorRulesArr[4].actualCompletionDate]" :disabled="disableSubmit" style="width: 100%" /> @@ -355,6 +361,7 @@ - @@ -392,7 +399,7 @@ :getCalendarContainer="(trigger) => trigger.parentNode" format="YYYY-MM-DD" value-format="YYYY-MM-DD" - v-decorator="['data[5].actualCompletionDate', validatorRules.actualCompletionDate]" + v-decorator="['data[5].actualCompletionDate']" style="width: 100%" disabled/> @@ -426,6 +433,7 @@ @@ -465,7 +473,7 @@ :getCalendarContainer="(trigger) => trigger.parentNode" format="YYYY-MM-DD" value-format="YYYY-MM-DD" - v-decorator="['data[6].actualCompletionDate', validatorRules.actualCompletionDate]" + v-decorator="['data[6].actualCompletionDate']" style="width: 100%" disabled/> @@ -499,6 +507,7 @@ @@ -538,7 +547,7 @@ :getCalendarContainer="(trigger) => trigger.parentNode" format="YYYY-MM-DD" value-format="YYYY-MM-DD" - v-decorator="['data[7].actualCompletionDate', validatorRules.actualCompletionDate]" + v-decorator="['data[7].actualCompletionDate', validatorRulesArr[7].actualCompletionDate]" :disabled="disableSubmit" style="width: 100%" /> @@ -606,16 +615,18 @@ import { Process, ProcessKey, ProcessType, StandardSource, YesOrNoEnum } from '@ import UserSelection from '@comp/selection/UserSelection' import { addStandardMasterPlan, - editStandardMasterPlan, + editStandardMasterPlan, getStandardMasterPlanAddEcho, getStandardMasterPlanById } from '@api/standardRegulationLibraryApi' -import MarketRegulationsListSelection from '@comp/selection/MarketRegulationsListSelection' import StandardResolutionSheetModal from '@views/standardRegulationLibrary/foreignStandard/detail/modules/StandardResolutionSheetModal' +import { getFormDictTreeList } from '@api/api' +import STreeSelect from '@comp/STreeSelect' +import { filterObj } from '@/utils/util' export default { name: 'StandardMasterPlanModal', - components: { StandardResolutionSheetModal, MarketRegulationsListSelection, UserSelection, StandardSelection }, + components: { STreeSelect, StandardResolutionSheetModal, UserSelection, StandardSelection }, data () { return { StandardSource, @@ -657,7 +668,8 @@ export default { isInvolved: { rules: [ { required: true, message: this.$t('standardRegulationLibrary.standardMasterPlan.isItRelatedTo') + this.$t('cannotEmpty') } - ] + ], + initialValue: YesOrNoEnum.NO.value }, // 交付物 deliverableFileId: { @@ -668,31 +680,29 @@ export default { }, // 适用市场下拉菜单 applicableMarketList: [], - // 信息输入是否涉及,控制必填 - infoInputIsInvolved: false, - // 信息输入验证规则 - infoInputValidatorRules: { - // 负责人 - responsiblePerson: { - rules: [ - { required: false, message: this.$t('standardRegulationLibrary.standardMasterPlan.responsiblePerson') + this.$t('cannotEmpty') } - ] - }, - // 计划完成日期 - plannedCompletionDate: { - rules: [ - { required: false, message: this.$t('standardRegulationLibrary.standardMasterPlan.plannedCompletionDate') + this.$t('cannotEmpty') } - ] - }, - // 实际完成日期 - actualCompletionDate: { - rules: [ - { required: false, message: this.$t('standardRegulationLibrary.standardMasterPlan.actualFinishingDate') + this.$t('cannotEmpty') } - ] + // 验证规则,根据是否涉及将其他字段控制必填 + validatorRulesArr: new Array(9).fill(9).map((_, index) => { + return { + // 负责人 + responsiblePerson: { + rules: [ + { required: false, message: this.$t('standardRegulationLibrary.standardMasterPlan.responsiblePerson') + this.$t('cannotEmpty') } + ] + }, + // 计划完成日期 + plannedCompletionDate: { + rules: [ + { required: false, message: this.$t('standardRegulationLibrary.standardMasterPlan.plannedCompletionDate') + this.$t('cannotEmpty') } + ] + }, + // 实际完成日期 + actualCompletionDate: { + rules: [ + { required: false, message: this.$t('standardRegulationLibrary.standardMasterPlan.actualFinishingDate') + this.$t('cannotEmpty') } + ] + } } - }, - // 选择的适用市场 - selectApplicableMarket: {} + }) } }, computed: { @@ -710,40 +720,64 @@ export default { } }, methods: { + // 回显页面信息 + updatePageInfo () { + const formData = this.form.getFieldsValue() + if (formData.base.marketStandard && this.model.standardId) { + getStandardMasterPlanAddEcho({ + applicableMarket: formData.base.marketStandard, + standardId: this.model.standardId + }).then(res => { + if (res.success) { + const data = res.result || [] + data.forEach(item => { + const index = Number(item.type) - 1 + // 回显表单 + this.form.setFieldsValue({ + [`data[${index}]`]: Object.assign(formData.data[index], filterObj(item)) + }) + // 存到页面 + this.data[index] = Object.assign(this.data[index], filterObj(item)) + }) + } + console.log(res) + }) + } + }, + // 获取国家地区、也是适用市场下拉 + getCountryOption () { + getFormDictTreeList({ dictId: '1801130851452059649' }).then(res => { + if (res.success) { + this.applicableMarketList = res.result + } + }) + }, /** * 查看标准分解单 */ previewStandardResolutionSheet (id) { this.$refs.standardResolutionSheetModal.open(id) }, - // 修改 - handleChangeApplicableMarket (list) { - console.log(list[0], '选择的清单') - this.selectApplicableMarket = (list && list[0]) || {} - this.model.applicableMarket_dictText = this.selectApplicableMarket.country_dictText || '' - }, add () { + this.getCountryOption() this.visible = true this.modelType = 'add' this.$nextTick(() => { - this.handleChangeInfoInputIsInvolved(YesOrNoEnum.NO.value) this.form.setFieldsValue({ base: this.model, - data: [ - // 信息输入是否涉及默认否 - { isInvolved: YesOrNoEnum.NO.value }, - ...this.data.slice(1) - ] + data: this.data }) }) }, edit (record) { + this.getCountryOption() this.model = Object.assign({}, record) this.visible = true this.modelType = 'edit' this.loadData() }, view (record) { + this.getCountryOption() this.model = Object.assign({}, record) this.visible = true this.modelType = 'view' @@ -758,7 +792,6 @@ export default { this.data = res.result.lawsStandardMasterPlanSublistList } this.$nextTick(() => { - this.handleChangeInfoInputIsInvolved(this.data[0].isInvolved) this.form.setFieldsValue({ base: this.model, data: this.data @@ -780,7 +813,6 @@ export default { this.data = new Array(9).fill(0).map((_, i) => ({ type: i + 1 })) this.modelType = '' this.disableSubmit = false - this.infoInputIsInvolved = false this.visible = false }, handleSubmit () { @@ -788,15 +820,6 @@ export default { if (!err) { const params = {} params.lawsStandardMasterPlanVO = Object.assign({}, this.model, values.base) - // 处理适用市场,选择清单带出 - if (this.selectApplicableMarket.id) { - // 清单id - params.lawsStandardMasterPlanVO.marketStandardId = this.selectApplicableMarket.id - // 适用市场 - params.lawsStandardMasterPlanVO.applicableMarket = this.selectApplicableMarket.country - // 版本标识 - params.versionFlag = this.selectApplicableMarket.versionFlag - } params.lawsStandardMasterPlanSublistList = this.data.map((_, index) => { const result = Object.assign({}, _, values.data[index]) if (!result.type) { @@ -826,13 +849,29 @@ export default { * 选择标准编号,回显标准名称和标准状态 */ handleStandardNumberListChange (list) { - const { standardName, standardState, id } = list[0] - console.log('选择标准', list, standardName, standardState) - this.model.standardId = id + const data = list[0] || {} + console.log('选择标准', list, data.standardName, data.standardState) + this.model.standardId = data.id this.form.setFieldsValue({ - 'base.standardName': standardName, - 'base.standardState': standardState + 'base.standardName': data.standardName, + 'base.standardState': data.standardState, + // 文本入库 责任人带入标准创建人 + 'data[1].responsiblePerson_dictText': data.createBy_dictText, + // 文本入库 实际完成日期带入标准创建日期(入库日期) + 'data[1].actualCompletionDate': data.createTime, + // 标准解读 责任人带入标准责任人 + 'data[3].responsiblePerson': data.responsibleUser }) + this.data[1].responsiblePerson_dictText = data.createBy_dictText + this.data[1].actualCompletionDate = data.createTime + this.data[3].responsiblePerson_dictText = data.responsibleUser_dictText + this.updatePageInfo() + }, + /** + * 适用市场改变 + */ + changeApplicableMarket (value) { + this.updatePageInfo() }, /** * 选择用户得到用户名 @@ -910,18 +949,16 @@ export default { }) }, /** - * 信息输入-是否涉及改变 + * 控制必填 + * @param val - 是否字典code值 + * @param index - 表单的下标 */ - handleChangeInfoInputIsInvolved (val) { - if (val + '' === YesOrNoEnum.YES.value) { - this.infoInputIsInvolved = true - } else { - this.infoInputIsInvolved = false - } + changeFormRequired (val, index) { // 控制必填 - this.infoInputValidatorRules.responsiblePerson.rules[0].required = this.infoInputIsInvolved - this.infoInputValidatorRules.plannedCompletionDate.rules[0].required = this.infoInputIsInvolved - this.infoInputValidatorRules.actualCompletionDate.rules[0].required = this.infoInputIsInvolved + const required = val + '' === YesOrNoEnum.YES.value + this.validatorRulesArr[index].responsiblePerson.rules[0].required = required + this.validatorRulesArr[index].plannedCompletionDate.rules[0].required = required + this.validatorRulesArr[index].actualCompletionDate.rules[0].required = required } } }