diff --git a/src/enums/commonEnums.js b/src/enums/commonEnums.js
index 131a3e1..0d1bab3 100644
--- a/src/enums/commonEnums.js
+++ b/src/enums/commonEnums.js
@@ -31,6 +31,7 @@ export const InvoiceTypeEnums = {
// 免费专题
export const LinkTopicsEnums = {
free: { name: '免费专题', index: 6 },
+ freeTwo: { name: '免费专题', index: 8 },
default: {name: '114/22焦点论坛(默认专题)', index: 99}
}
diff --git a/src/views/incomePayments/meetManage/AddOrDetailMeet.vue b/src/views/incomePayments/meetManage/AddOrDetailMeet.vue
index 945bcbf..cee0113 100644
--- a/src/views/incomePayments/meetManage/AddOrDetailMeet.vue
+++ b/src/views/incomePayments/meetManage/AddOrDetailMeet.vue
@@ -256,7 +256,7 @@
邀请码
-
+
event.target.value = event.target.value.trim()"
:maxLength='50'
@@ -265,7 +265,7 @@
-
+
event.target.value = event.target.value.trim()"
:maxLength='50'
@@ -274,7 +274,7 @@
-
+
event.target.value = event.target.value.trim()"
:maxLength='50'
@@ -283,7 +283,7 @@
-
+
event.target.value = event.target.value.trim()"
:maxLength='50'
@@ -292,7 +292,7 @@
-
+
event.target.value = event.target.value.trim()"
:maxLength='50'
@@ -339,7 +339,7 @@
-
+
{e.target.value = e.target.value.replace(/[^0-9.]/g,'')}"
@@ -349,7 +349,7 @@
-
+
{e.target.value = e.target.value.replace(/[^0-9.]/g,'')}"
@@ -571,6 +571,8 @@ export default {
xs: {span: 24},
sm: {span: 18}
},
+ labelColTwo: { xs: {span: 24},sm: {span: 8}},
+ wrapperColTwo: { xs: {span: 24},sm: {span: 14}},
remarksLabelCol: {
xxl: {span: 3},
xl: {span: 4},
diff --git a/src/views/incomePayments/meetManage/Attendance.vue b/src/views/incomePayments/meetManage/Attendance.vue
index 8957ffe..cca0809 100644
--- a/src/views/incomePayments/meetManage/Attendance.vue
+++ b/src/views/incomePayments/meetManage/Attendance.vue
@@ -23,9 +23,14 @@
-
- {{item}}
-
+
+
+
+
{{ item.name }}
+
{{ innerItem.text }}
+
+
+
@@ -113,19 +118,19 @@
- {{ currentMeetingInfo.vipInvitationCode }}
+ {{ currentMeetingInfo.vipInvitationCode }}
-
+
-
+
-
+
-
+
@@ -393,6 +398,7 @@ import PreviewFile from '@comp/jero/PreviewFile'
import JImageUpload from '@comp/jero/JImageUpload'
import SetGuessUploadFlagModal from './modules/SetGuessUploadFlagModal'
import { downloadFile } from '../../../api/manage'
+import WasicTopicData from "./modules/wasicStaticData";
export default {
@@ -667,6 +673,8 @@ export default {
meetingCostBool: false,
meetingId: '',
meetingTypeValue: '',
+ // 关联会议展示的字段
+ wasicLinkTopics: [],
}
},
created() {
@@ -681,6 +689,7 @@ export default {
getMeetInfoById(param).then(res => {
if (res.success) {
this.currentMeetingInfo = Object.assign({}, res.result)
+ this.wasicLinkTopics = this.handleWasicLinkTopics(this.currentMeetingInfo)
// 转化会议类型
this.meetingType = this.generateMeetingType(this.currentMeetingInfo.meetingType)
// 列表表头只有国际研讨会有对接人字段
@@ -780,6 +789,41 @@ export default {
},
},
methods: {
+ // 处理国际研讨会-WASIC-已经选择的数据如何展示
+ handleWasicLinkTopics(currentMeetingInfo, dictKey) {
+ dictKey = dictKey || 'linkTopics'
+ let resultArr = []
+ if(currentMeetingInfo[dictKey] && currentMeetingInfo[dictKey + '_dictText']) {
+ let topicArr = currentMeetingInfo[dictKey].split(',')
+ let topicTextArr = currentMeetingInfo[dictKey + '_dictText'].split(',')
+ let opeArr = JSON.parse(JSON.stringify(WasicTopicData))
+ opeArr.map(tt => {
+ // 先查询子集中
+ tt.allChildren = [...tt.children, ...(tt.radioChildren || [])]
+ let ele = tt.allChildren.find(item => topicArr.includes(item.value))
+ if(ele) {
+ let dateItem = {
+ name: tt.name,
+ date: tt.date,
+ children: []
+ }
+
+ tt.allChildren.map(innerItem => {
+ let index = topicArr.findIndex(a => a === innerItem.value)
+ if(index > -1) {
+ dateItem.children.push({
+ 'value': innerItem.value,
+ 'text': topicTextArr[index],
+ 'title': topicTextArr[index]
+ })
+ }
+ })
+ resultArr.push(dateItem)
+ }
+ })
+ }
+ return resultArr
+ },
selectIdentity(){
console.log(this.queryParam.identity)
if(this.queryParam.identity !== '1'){
diff --git a/src/views/incomePayments/meetManage/SignUpInfoEdit.vue b/src/views/incomePayments/meetManage/SignUpInfoEdit.vue
index 3546aeb..ece5d07 100644
--- a/src/views/incomePayments/meetManage/SignUpInfoEdit.vue
+++ b/src/views/incomePayments/meetManage/SignUpInfoEdit.vue
@@ -32,8 +32,6 @@
@ok="addContactsOk">
-
-
-
-
-
-
-
-
-
@@ -76,15 +57,49 @@
- VIP
- 演讲嘉宾
- 特邀嘉宾
- 合作伙伴
- 参展商
+ VIP(吃饭+住宿+接站)
+ 演讲嘉宾(吃饭+接站)
+ 特邀嘉宾(接站)
+ 合作伙伴(只登记行程)
+ 参展商类别(只登记行程)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 清空会议信息
+
+
+
@@ -153,6 +168,7 @@ import pick from 'lodash.pick'
import PageHeaderTitle from '@comp/layouts/PageHeaderTitle'
import { queryCompanyInfoById } from '../../../api/api'
import { LinkTopicsEnums } from '../../../enums/commonEnums'
+import WasicTopicData from './modules/wasicStaticData'
export default {
name: 'SignUpInfoEdit',
@@ -204,7 +220,7 @@ export default {
},
choiceTopic: {
rules: [
- {required: true, message: '请选择会议名称'},
+ {required: true, validator: this.checkChoiceTopic},
],
validateTrigger: ['change']
},
@@ -270,7 +286,9 @@ export default {
// 当前参会企业是否是内部企业
isInternalEnterprise: false,
// 可选会议名称的数组
- linkTopicsOptionArr: []
+ linkTopicsOptionArr: [],
+ // WASIC可选会议的数组-前端写死
+ showTopicsArr: [...WasicTopicData]
}
},
created() {
@@ -315,21 +333,74 @@ export default {
},
},
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(e) {
+ console.log(e)
+ },
+ changeRadioTopic() {
+ this.$nextTick(() => {
+ this.form.validateFields(['choiceTopic'])
+ })
+ },
+ // 取消会议名称的选中
+ cancelChoiceTopic() {
+ this.form.setFieldsValue({
+ choiceTopic: [],
+ radioKey: undefined,
+ radioKeyTwo: undefined,
+ })
+ },
// 获取国际研讨会-能选择课题的数据字典数据
getLinkTopicsOptionArr(meetingId) {
getLinkTopics({id: meetingId}).then(res =>{
if(res.success) {
this.linkTopicsOptionArr = res.result || []
- // 操作默认的课题,默认的课题不能删除
- this.linkTopicsOptionArr.map(item => {
- if((item.value + '') === (LinkTopicsEnums.default.index + '')) {
- item.disabled = true
- }
+ // 页面上展示的文字 按照数据字段返回的展示
+ this.showTopicsArr.map(tt => {
+ tt.children.map(item => {
+ let ele = this.linkTopicsOptionArr.find(a => a.value + '' === item.value)
+ if(ele) {
+ item.text = ele.text
+ item.title = ele.title
+ }
+ })
+ tt.radioChildren && tt.radioChildren.map(item => {
+ let ele = this.linkTopicsOptionArr.find(a => a.value + '' === item.value)
+ if(ele) {
+ item.text = ele.text
+ item.title = ele.title
+ }
+ })
})
- // 非新增页面,给Form赋值
+ // 操作默认的课题,默认的课题不能删除
+ // this.linkTopicsOptionArr.map(item => {
+ // if((item.value + '') === (LinkTopicsEnums.default.index + '')) {
+ // item.disabled = true
+ // }
+ // })
+ // 新增页面,给Form赋值
if(!this.model.id) {
this.form.setFieldsValue({
- choiceTopic: LinkTopicsEnums.default.index + ''
+ choiceTopic: []
})
}
}
@@ -397,6 +468,34 @@ export default {
id:this.model.companyContactTemporaryId,
name:this.model.companyContactName
}
+ // 如果存在所选择的课题,则对课题数据进行处理
+ if (this.model.choiceTopic) {
+ 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.form.setFieldsValue({
+ ...radioObj,
+ 'choiceTopic': checkboxArr
+ })
+
+ }
//国际研讨会的嘉宾编辑回显值
this.$nextTick(() => {
// 普通会议的编辑回显值
@@ -430,7 +529,6 @@ export default {
'companyId',
'companyContactId',
'phone',
- 'choiceTopic',
'email',
'post',
'identity',
@@ -476,6 +574,22 @@ export default {
if(this.meetingCostBool){
submitData.needInvoice = 0
}
+ // 国际研讨会处理 会议名称的问题
+ // 国际研讨会 且为WASIC 会议
+ if (this.currentMeetingInfo.meetingType === '3' && this.currentMeetingInfo.isWasic) {
+ let choiceTopicArr = submitData.choiceTopic
+ //11月27日 单选会议的处理
+ if(submitData.radioKey) {
+ choiceTopicArr.push(submitData.radioKey)
+ delete submitData.radioKey
+ }
+ //11月28日 单选会议的处理
+ if(submitData.radioKeyTwo) {
+ choiceTopicArr.push(submitData.radioKeyTwo)
+ delete submitData.radioKeyTwo
+ }
+ submitData.choiceTopic = choiceTopicArr.join(',')
+ }
console.log(submitData)
let url = ''
if(!this.model.id){
@@ -485,6 +599,8 @@ export default {
// 编辑的时候需要传入id
submitData.id = this.model.id
}
+ // that.confirmLoading = false
+ // return
let method = 'post'
httpAction(url,submitData,method).then(res => {
if(res.success){
@@ -668,14 +784,23 @@ export default {
// 国际研讨会-关联会议 多选样式的修改
.meeting-form-multi-select{
+ .topic-title{
+ padding: 10px 0;
+ }
/deep/.ant-checkbox-wrapper + .ant-checkbox-wrapper {
margin-left: 0!important;
}
- /deep/ .ant-checkbox-wrapper{
+ /deep/ .ant-checkbox-wrapper,
+ /deep/ .ant-radio-wrapper{
margin-right: 8px;
display: block;
}
}
+.radio-div{
+ border-top: 1px solid rgba(0, 0, 0, 0.2);
+ padding-top: 10px;
+ margin-top: 10px;
+}
diff --git a/src/views/incomePayments/meetManage/modules/SeminarVipForm.vue b/src/views/incomePayments/meetManage/modules/SeminarVipForm.vue
index 4e9ec03..4342d78 100644
--- a/src/views/incomePayments/meetManage/modules/SeminarVipForm.vue
+++ b/src/views/incomePayments/meetManage/modules/SeminarVipForm.vue
@@ -1,8 +1,8 @@
-
-
+
+
演讲信息
@@ -45,28 +45,30 @@
-
- 用餐信息
-
-
-
-
- 是
- 否
-
-
-
-
-
-
-
- 是
- 否
-
-
-
-
+
+
+ 用餐信息
+
+
+
+
+ 是
+ 否
+
+
+
+
+
+
+
+ 是
+ 否
+
+
+
+
+
@@ -147,6 +149,14 @@
v-decorator="[ 'arrivalShift',validatorRules.arrivalShift]">
+
+
+
+ event.target.value = event.target.value.trim()" :maxLength="50"
+ v-decorator="['destinationHotel']">
+
+
@@ -188,18 +198,8 @@
-
-
-
- event.target.value = event.target.value.trim()"
- v-decorator="[ 'peer']">
-
-
-
+
@@ -491,7 +491,8 @@ export default {
this.form.setFieldsValue(pick(record,
'arrivalTime',
'destination',
- 'arrivalShift'
+ 'arrivalShift',
+ 'destinationHotel'
))
})
} else if (record.pickUp === 0) {
diff --git a/src/views/incomePayments/meetManage/modules/wasicStaticData.js b/src/views/incomePayments/meetManage/modules/wasicStaticData.js
new file mode 100644
index 0000000..658d484
--- /dev/null
+++ b/src/views/incomePayments/meetManage/modules/wasicStaticData.js
@@ -0,0 +1,73 @@
+const WasicTopicData = [
+ {
+ name: '11月27日',
+ date: '11月27日',
+ radioKey: 'radioKey',
+ children: [
+ {
+ 'value': '6',
+ 'text': '国际发展论坛(09:00-15:00)',
+ 'title': '国际发展论坛(09:00-15:00)'
+ }
+ ],
+ radioChildren: [
+ {
+ 'value': '5',
+ 'text': '弱势道路交通参与者(VRU)保护专题(14:00-18:00)',
+ 'title': '弱势道路交通参与者(VRU)保护专题(14:00-18:00)'
+ },
+ {
+ 'value': '2',
+ 'text': '智能网联汽车标准化领航及标准路线图专题(14:00-18:00)',
+ 'title': '智能网联汽车标准化领航及标准路线图专题(14:00-18:00)'
+ },
+ {
+ 'value': '4',
+ 'text': '动力电池安全专题(14:00-18:00)',
+ 'title': '动力电池安全专题(14:00-18:00)'
+ }
+ ]
+ },
+ {
+ name: '11月28日',
+ date: '11月28日',
+ radioKey: 'radioKeyTwo',
+ children: [
+ {
+ 'value': '99',
+ 'text': '114/22焦点论坛(08:00-12:00,全体大会)',
+ 'title': '114/22焦点论坛(08:00-12:00,全体大会)',
+ // 'disabled': true
+ }
+ ],
+ radioChildren: [
+ {
+ 'value': '1',
+ 'text': '汽车网络安全与数据安全标准合规专题(14:00-18:00)',
+ 'title': '汽车网络安全与数据安全标准合规专题(14:00-18:00)'
+ },
+ {
+ 'value': '3',
+ 'text': '汽车低碳专题(14:00-18:00)',
+ 'title': '汽车低碳专题(14:00-18:00)'
+ },
+ {
+ 'value': '7',
+ 'text': '无人小车专题(14:00-18:00)',
+ 'title': '无人小车专题(14:00-18:00)'
+ }
+ ]
+ },
+ {
+ name: '11月29日',
+ date: '11月29日',
+ children: [
+ {
+ 'value': '8',
+ 'text': '湾区智联试验场参观(8:30-10:30)',
+ 'title': '湾区智联试验场参观(8:30-10:30)'
+ }
+ ]
+ }
+]
+export default WasicTopicData
\ No newline at end of file