【update】国际研讨会编辑嘉宾功能增加WASIC的相关判断;

This commit is contained in:
fengchenchen
2023-11-05 10:35:23 +08:00
parent 39f206a928
commit dfbd07cc84
5 changed files with 122 additions and 15 deletions
+1 -1
View File
@@ -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() {
@@ -67,6 +67,29 @@
</a-row>
<a-row :gutter="24" v-if="model.isWasic">
<!-- 国际研讨会 WASIC 增加会议名称的选择--已经到账的信息不能修改-->
<a-col :xxl="8" :xl="12" :sm="24">
<a-form-item label="会议名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-checkbox-group class="meeting-form-multi-select" @change="choiceTopicChange" v-decorator="['choiceTopic',validatorRules.choiceTopic]">
<div v-for="(item, index) in showTopicsArr" :key="'showTopicTitle_'+ index">
<div class="topic-title">{{item.name}}</div>
<div>
<a-checkbox v-for="item in item.children" :key="'a_checkbox_'+ item.value" :value="item.value" :disabled="item.disabled">{{ item.text }}</a-checkbox>
</div>
<div class="radio-div" v-if="item.radioChildren">
<a-radio-group v-decorator="[item.radioKey]" @change="changeRadioTopic">
<a-radio v-for="item in item.radioChildren" :key="'a_radio_'+ item.value" :value="item.value" :disabled="item.disabled">{{ item.text }}</a-radio>
</a-radio-group>
</div>
</div>
</a-checkbox-group>
<a-button class="clear-topic-btn" @click="cancelChoiceTopic">清空会议信息</a-button>
</a-form-item>
</a-col>
</a-row>
<a-row class="item-title">行程信息</a-row>
<a-row :gutter="24">
@@ -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,
@@ -67,7 +67,7 @@
</a-row>
<a-row :gutter="24" v-if="model.choiceTopic">
<a-row :gutter="24" v-if="model.isWasic">
<!-- 国际研讨会 WASIC 增加会议名称的选择--已经到账的信息不能修改-->
<a-col :xxl="8" :xl="12" :sm="24">
<a-form-item label="会议名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
@@ -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 = {}
@@ -66,7 +66,7 @@
</a-col>
</a-row>
<a-row :gutter="24" v-if="model.choiceTopic">
<a-row :gutter="24" v-if="model.isWasic">
<!-- 国际研讨会 WASIC 增加会议名称的选择--已经到账的信息不能修改-->
<a-col :xxl="8" :xl="12" :sm="24">
<a-form-item label="会议名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
@@ -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 = {}
@@ -66,7 +66,7 @@
</a-col>
</a-row>
<a-row :gutter="24" v-if="model.choiceTopic">
<a-row :gutter="24" v-if="model.isWasic">
<!-- 国际研讨会 WASIC 增加会议名称的选择--已经到账的信息不能修改-->
<a-col :xxl="8" :xl="12" :sm="24">
<a-form-item label="会议名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
@@ -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 = {}