From dfbd07cc843109fb0e25a32be200ff7fb0cdcec1 Mon Sep 17 00:00:00 2001 From: fengchenchen Date: Sun, 5 Nov 2023 10:35:23 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90update=E3=80=91=E5=9B=BD=E9=99=85?= =?UTF-8?q?=E7=A0=94=E8=AE=A8=E4=BC=9A=E7=BC=96=E8=BE=91=E5=98=89=E5=AE=BE?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E5=A2=9E=E5=8A=A0WASIC=E7=9A=84=E7=9B=B8?= =?UTF-8?q?=E5=85=B3=E5=88=A4=E6=96=AD=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/MessagePage/MeetingDetailModal.vue | 2 +- .../modules/CooperativeForm.vue | 109 +++++++++++++++++- .../modules/SpeakGuestForm.vue | 10 +- .../modules/TeyaoGuestForm.vue | 10 +- src/views/meetingActivity/modules/VipForm.vue | 6 +- 5 files changed, 122 insertions(+), 15 deletions(-) diff --git a/src/views/MessagePage/MeetingDetailModal.vue b/src/views/MessagePage/MeetingDetailModal.vue index a664443..9129bef 100644 --- a/src/views/MessagePage/MeetingDetailModal.vue +++ b/src/views/MessagePage/MeetingDetailModal.vue @@ -945,7 +945,7 @@ export default { * @description 国际研讨会嘉宾编辑个人信息 * */ editSignUpInfo(){ - this.$refs.editSignUpInfoForm.open(this.situationInfo) + this.$refs.editSignUpInfoForm.open(Object.assign({}, this.situationInfo, {isWasic: !!this.model.isWasic})) }, // 判断是否是 分标委成员或者理事会成员 judgeIsMember() { diff --git a/src/views/meetingActivity/modules/CooperativeForm.vue b/src/views/meetingActivity/modules/CooperativeForm.vue index eda112d..a157120 100644 --- a/src/views/meetingActivity/modules/CooperativeForm.vue +++ b/src/views/meetingActivity/modules/CooperativeForm.vue @@ -67,6 +67,29 @@ + + + + + +
+
{{item.name}}
+
+ {{ item.text }} +
+
+ + {{ item.text }} + +
+
+
+ 清空会议信息 +
+
+
+ + 行程信息 @@ -118,6 +141,8 @@ import JDate from '@comp/jero/JDate' import moment from 'moment' import {httpAction} from '@api/manage' +import WasicTopicData from "../../MessagePage/modules/wasicStaticData"; +import {LinkTopicsEnums} from "../../../enums/commonEnum"; export default { name: 'CooperativeForm', @@ -131,6 +156,7 @@ export default { haveMealBool:false, pickUpBool:false, sendBool:false, + model: {}, labelCol: { xxl:{span: 9}, xl:{span: 8}, @@ -163,10 +189,48 @@ export default { }, url:{ edit:'/meeting/payMeetingSituation/editGuestInfo' - } + }, + // WASIC可选会议的数组-前端写死 + showTopicsArr: [...WasicTopicData] } }, methods:{ + // 验证选择会议名称的情况 + checkChoiceTopic(rules, value, callback) { + console.log(value) + let arr = [] + if (value && value.length > 0) { + arr = [...value] + } + let radioKey = this.form.getFieldValue('radioKey') + let radioKeyTwo = this.form.getFieldValue('radioKeyTwo') + if(radioKey || radioKeyTwo) { + callback() + } else { + arr = arr.filter(tt => tt !== LinkTopicsEnums.freeTwo.index + '') + if(arr.length === 0) { + callback('请至少选择一个非参观类会议') + } else { + callback() + } + } + }, + choiceTopicChange() { + + }, + changeRadioTopic() { + this.$nextTick(() => { + this.form.validateFields(['choiceTopic']) + }) + }, + // 取消会议名称的选中 + cancelChoiceTopic() { + this.form.setFieldsValue({ + choiceTopic: [], + radioKey: undefined, + radioKeyTwo: undefined, + }) + }, moment, handleOk() { const that = this @@ -175,6 +239,19 @@ export default { that.confirmLoading = true let url = this.url.edit const formData = Object.assign({}, values) + // 国际研讨会 且为WASIC 会议(有choiceTopic的才是WASIC) + if (this.model.isWasic) { + let choiceTopicArr = formData.choiceTopic + //11月27日 单选会议的处理 + if(formData.radioKey) { + choiceTopicArr.push(formData.radioKey) + } + //11月28日 单选会议的处理 + if(formData.radioKeyTwo) { + choiceTopicArr.push(formData.radioKeyTwo) + } + formData.choiceTopic = choiceTopicArr.join(',') + } formData.id = this.model.id httpAction(url, formData, 'post').then(res => { if (res.success) { @@ -193,6 +270,36 @@ export default { initForm(record){ this.model = Object.assign({},record) this.form.resetFields() + // 如果存在所选择的课题,则对课题数据进行处理 + if (this.model.isWasic) { + let choiceTopicArr = this.model.choiceTopic.split(',') + this.showTopicsArr = JSON.parse(JSON.stringify(WasicTopicData)) + let checkboxArr = [], radioObj = {} + choiceTopicArr.map(checkedItem => { + this.showTopicsArr.map(tt => { + let index = tt.children.findIndex(inner => inner.value === checkedItem) + if(index > -1) { + tt.children[index].checked = true + checkboxArr.push(checkedItem) + } + if(tt.radioChildren) { + let radioIndex = tt.radioChildren.findIndex(inner => inner.value === checkedItem) + if(radioIndex > -1) { + tt.radioChildren[radioIndex].checked = true + radioObj[tt.radioKey] = checkedItem + } + } + + }) + }) + this.$nextTick(() => { + this.form.setFieldsValue({ + ...radioObj, + 'choiceTopic': checkboxArr + }) + }) + + } this.form.setFieldsValue({ 'companyName':record.companyName, 'companyContactName':record.companyContactName, diff --git a/src/views/meetingActivity/modules/SpeakGuestForm.vue b/src/views/meetingActivity/modules/SpeakGuestForm.vue index 23afd47..782f1d7 100644 --- a/src/views/meetingActivity/modules/SpeakGuestForm.vue +++ b/src/views/meetingActivity/modules/SpeakGuestForm.vue @@ -67,7 +67,7 @@ - + @@ -264,8 +264,8 @@ import JDate from '@comp/jero/JDate' import moment from 'moment' import pick from 'lodash.pick' import {httpAction} from '@api/manage' -import WasicTopicData from "../../MessagePage/modules/wasicStaticData"; -import {LinkTopicsEnums} from "../../../enums/commonEnum"; +import WasicTopicData from '../../MessagePage/modules/wasicStaticData' +import {LinkTopicsEnums} from '../../../enums/commonEnum' export default { name: 'SpeakGuestForm', @@ -404,7 +404,7 @@ export default { let url = this.url.edit const formData = Object.assign({}, values) // 国际研讨会 且为WASIC 会议(有choiceTopic的才是WASIC) - if (this.model.choiceTopic) { + if (this.model.isWasic) { let choiceTopicArr = formData.choiceTopic //11月27日 单选会议的处理 if(formData.radioKey) { @@ -435,7 +435,7 @@ export default { this.model = Object.assign({},record) this.form.resetFields() // 如果存在所选择的课题,则对课题数据进行处理 - if (this.model.choiceTopic) { + if (this.model.isWasic) { let choiceTopicArr = this.model.choiceTopic.split(',') this.showTopicsArr = JSON.parse(JSON.stringify(WasicTopicData)) let checkboxArr = [], radioObj = {} diff --git a/src/views/meetingActivity/modules/TeyaoGuestForm.vue b/src/views/meetingActivity/modules/TeyaoGuestForm.vue index 6cc9165..a50e9fb 100644 --- a/src/views/meetingActivity/modules/TeyaoGuestForm.vue +++ b/src/views/meetingActivity/modules/TeyaoGuestForm.vue @@ -66,7 +66,7 @@ - + @@ -186,8 +186,8 @@ import JDate from '@comp/jero/JDate' import moment from 'moment' import pick from 'lodash.pick' import {httpAction} from '@api/manage' -import WasicTopicData from "../../MessagePage/modules/wasicStaticData"; -import {LinkTopicsEnums} from "../../../enums/commonEnum"; +import WasicTopicData from '../../MessagePage/modules/wasicStaticData' +import {LinkTopicsEnums} from '../../../enums/commonEnum' export default { name: 'TeyaoGuestForm', @@ -340,7 +340,7 @@ export default { let url = this.url.edit const formData = Object.assign({}, values) // 国际研讨会 且为WASIC 会议(有choiceTopic的才是WASIC) - if (this.model.choiceTopic) { + if (this.model.isWasic) { let choiceTopicArr = formData.choiceTopic //11月27日 单选会议的处理 if(formData.radioKey) { @@ -371,7 +371,7 @@ export default { this.model = Object.assign({},record) this.form.resetFields() // 如果存在所选择的课题,则对课题数据进行处理 - if (this.model.choiceTopic) { + if (this.model.isWasic) { let choiceTopicArr = this.model.choiceTopic.split(',') this.showTopicsArr = JSON.parse(JSON.stringify(WasicTopicData)) let checkboxArr = [], radioObj = {} diff --git a/src/views/meetingActivity/modules/VipForm.vue b/src/views/meetingActivity/modules/VipForm.vue index 8015ed2..64ab930 100644 --- a/src/views/meetingActivity/modules/VipForm.vue +++ b/src/views/meetingActivity/modules/VipForm.vue @@ -66,7 +66,7 @@ - + @@ -448,7 +448,7 @@ export default { let url = this.url.edit let formData = Object.assign({}, values) // 国际研讨会 且为WASIC 会议(有choiceTopic的才是WASIC) - if (this.model.choiceTopic) { + if (this.model.isWasic) { let choiceTopicArr = formData.choiceTopic //11月27日 单选会议的处理 if(formData.radioKey) { @@ -479,7 +479,7 @@ export default { this.model = Object.assign({},record) this.form.resetFields() // 如果存在所选择的课题,则对课题数据进行处理 - if (this.model.choiceTopic) { + if (this.model.isWasic) { let choiceTopicArr = this.model.choiceTopic.split(',') this.showTopicsArr = JSON.parse(JSON.stringify(WasicTopicData)) let checkboxArr = [], radioObj = {}