[add 海外会议] 添加参会人

This commit is contained in:
danshihao
2024-06-24 10:00:10 +08:00
parent 43388454db
commit 0f886b6df3
2 changed files with 223 additions and 5 deletions
@@ -3,7 +3,7 @@
<page-header-title :is-level-one="false" :level-two-title="title"></page-header-title>
<a-card :bordered="false">
<a-spin :spinning="confirmLoading">
<a-form :form="form">
<a-form :form="form" v-if="!isOverseasMeeting">
<!--个人信息begin-->
<div class="item-title">个人信息</div>
<a-row :gutter="24">
@@ -154,6 +154,132 @@
</a-col>
</a-row>
<div class="center">
<a-button class="submit" type="primary" @click="handleOk" v-preventclick>确定</a-button>
<a-button @click="handleCancel">取消</a-button>
</div>
</a-form>
<!-- 海外会议单独的表单 -->
<a-form :form="form" v-else>
<!-- 海外会议的表单 -->
<div class="item-title">个人信息</div>
<a-row :gutter="24">
<a-col :xxl="8" :xl="12" :sm="24">
<a-form-item label="照片" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-image-upload v-decorator="['photo',overseasRules.photo]" :return-id="true"></j-image-upload>
</a-form-item>
</a-col>
</a-row>
<a-row :gutter="24">
<a-col :xxl="8" :xl="12" :sm="24">
<a-form-item label="姓名" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入姓名"
:maxLength='50'
v-decorator="['name',overseasRules.name]"></a-input>
</a-form-item>
</a-col>
<a-col :xxl="8" :xl="12" :sm="24">
<a-form-item label="职务及单位" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入职务及单位"
:maxLength='50'
v-decorator="['unit',overseasRules.unit]"></a-input>
</a-form-item>
</a-col>
<a-col :xxl="8" :xl="12" :sm="24">
<a-form-item label="国际" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入国际"
:maxLength='50'
v-decorator="['international',overseasRules.international]"></a-input>
</a-form-item>
</a-col>
<a-col :xxl="8" :xl="12" :sm="24">
<a-form-item label="地址" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入地址"
:maxLength='50'
v-decorator="['address',overseasRules.address]"></a-input>
</a-form-item>
</a-col>
<a-col :xxl="8" :xl="12" :sm="24">
<a-form-item label="邮箱" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入邮箱"
:maxLength='50'
v-decorator="['email',overseasRules.email]"></a-input>
</a-form-item>
</a-col>
<a-col :xxl="8" :xl="12" :sm="24">
<a-form-item label="联系电话" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入联系电话"
:maxLength='50'
v-decorator="['phone',overseasRules.phone]"></a-input>
</a-form-item>
</a-col>
<a-col :xxl="8" :xl="12" :sm="24">
<a-form-item label="是否需要签证" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-dict-select-tag v-decorator="['needVisa',overseasRules.needVisa]"
:triggerChange="true"
placeholder="请选择是否需要签证"
@change="changeNeedVisa"
type="radio"
dictCode="yn"/>
</a-form-item>
</a-col>
<template v-if="isNeedVisa">
<a-col :xxl="8" :xl="12" :sm="24">
<a-form-item label="外文姓名" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入外文姓名"
:maxLength='50'
v-decorator="['foreignName',overseasRules.foreignName]"></a-input>
</a-form-item>
</a-col>
<a-col :xxl="8" :xl="12" :sm="24">
<a-form-item label="性别" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入性别"
:maxLength='50'
v-decorator="['sex',overseasRules.sex]"></a-input>
</a-form-item>
</a-col>
<a-col :xxl="8" :xl="12" :sm="24">
<a-form-item label="出生日期" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-date placeholder="请选择出生日期" style="width: 100%;"
v-decorator="['birthday',overseasRules.birthday]"
:trigger-change="true"
show-type="day"
date-format="YYYY-MM-DD"/>
</a-form-item>
</a-col>
<a-col :xxl="8" :xl="12" :sm="24">
<a-form-item label="国籍" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入国籍"
:maxLength='50'
v-decorator="['nationality',overseasRules.nationality]"></a-input>
</a-form-item>
</a-col>
<a-col :xxl="8" :xl="12" :sm="24">
<a-form-item label="护照号码" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入护照号码"
:maxLength='50'
v-decorator="['passportNo',overseasRules.passportNo]"></a-input>
</a-form-item>
</a-col>
<a-col :xxl="8" :xl="12" :sm="24">
<a-form-item label="出入境日期" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-date placeholder="请输入出入境日期" style="width: 100%;"
v-decorator="['entryAndExitDate',overseasRules.entryAndExitDate]"
:trigger-change="true"
show-type="day"
date-format="YYYY-MM-DD"/>
</a-form-item>
</a-col>
<a-col :xxl="8" :xl="12" :sm="24">
<a-form-item label="办理签证使领馆" :labelCol="labelCol" :wrapperCol="wrapperCol">
<a-input placeholder="请输入办理签证使领馆"
:maxLength='50'
v-decorator="['embassiesAndConsulates',overseasRules.embassiesAndConsulates]"></a-input>
</a-form-item>
</a-col>
</template>
</a-row>
<div class="center">
<a-button class="submit" type="primary" @click="handleOk" v-preventclick>确定</a-button>
<a-button @click="handleCancel">取消</a-button>
@@ -178,12 +304,16 @@ import {httpAction} from '@api/manage'
import pick from 'lodash.pick'
import PageHeaderTitle from '@comp/layouts/PageHeaderTitle'
import { queryCompanyInfoById } from '../../../api/api'
import {LinkTopicsEnums, MeetingTypeEnums} from '../../../enums/commonEnums'
import {LinkTopicsEnums, MeetingTypeEnums, YesOrNoEnums} from '../../../enums/commonEnums'
import WasicTopicData from './modules/wasicStaticData'
import JImageUpload from '@comp/jero/JImageUpload'
import JDate from '@comp/tools/JDate'
export default {
name: 'SignUpInfoEdit',
components: {
JDate,
JImageUpload,
SelectContacts,
SeminarPartnerForm,
// JDictSelectTag,
@@ -315,7 +445,74 @@ export default {
// 可选会议名称的数组
linkTopicsOptionArr: [],
// WASIC可选会议的数组-前端写死
showTopicsArr: [...WasicTopicData]
showTopicsArr: [...WasicTopicData],
/*海外会议start*/
// 是否需要签证
isNeedVisa: false,
// 海外会议表单校验
overseasRules: {
photo: {
rules: [{required: true, message: '请上传照片'}],
validateTrigger: 'change'
},
name: {
rules: [{required: true, message: '请输入姓名'}],
validateTrigger: 'blur'
},
unit: {
rules: [{required: true, message: '请输入职务及单位'}],
validateTrigger: 'blur'
},
international: {
rules: [{required: true, message: '请输入国际'}],
validateTrigger: 'blur'
},
address: {
rules: [{required: true, message: '请输入地址'}],
validateTrigger: 'blur'
},
email: {
rules: [{required: true, message: '请输入邮箱'}],
validateTrigger: 'blur'
},
phone: {
rules: [{required: true, message: '请输入联系电话'}],
validateTrigger: 'blur'
},
needVisa: {
rules: [{required: true, message: '请选择是否需要签证'}],
validateTrigger: 'change'
},
foreignName: {
rules: [{required: true, message: '请输入外文姓名'}],
validateTrigger: 'blur'
},
sex: {
rules: [{required: true, message: '请输入性别'}],
validateTrigger: 'blur'
},
birthday: {
rules: [{required: true, message: '请输入选择日期'}],
validateTrigger: 'change'
},
nationality: {
rules: [{required: true, message: '请输入国籍'}],
validateTrigger: 'blur'
},
passportNo: {
rules: [{required: true, message: '请输入护照号码'}],
validateTrigger: 'blur'
},
entryAndExitDate: {
rules: [{required: true, message: '请选择出入境日期'}],
validateTrigger: 'change'
},
embassiesAndConsulates: {
rules: [{required: true, message: '请输入办理签证使领馆'}],
validateTrigger: 'blur'
},
}
/*海外会议end*/
}
},
created() {
@@ -341,6 +538,10 @@ export default {
},
computed:{
// 是否海外会议,报名信息调整
isOverseasMeeting () {
return this.meetingType + '' === MeetingTypeEnums.overseas.value
},
// eslint-disable-next-line
url() {
switch (this.$route.query.meetingType) {
@@ -365,6 +566,14 @@ export default {
},
},
methods: {
// 是否需要签证改变
changeNeedVisa (val) {
if (val + '' === YesOrNoEnums.no.value) {
this.isNeedVisa = true
} else {
this.isNeedVisa = false
}
},
// 验证选择会议名称的情况
checkChoiceTopic(rules, value, callback) {
console.log(value)
@@ -466,6 +675,13 @@ export default {
if(this.model.id){
this.title = '编辑参会人'
}
// 海外会议回显单独处理
if (this.isOverseasMeeting) {
this.$nextTick(() => {
this.form.setFieldsValue(this.model)
})
return
}
// 设置编辑的显示隐藏状态
this.identifyType = this.model.identity
this.guestType = this.model.guestType ? this.model.guestType : null
@@ -599,7 +815,9 @@ export default {
if(submitData.companyName) {
submitData.companyName = (submitData.companyName || '').replaceAll(' (未审核)','').replaceAll(' (未审核)','')
}
submitData.companyId = values.companyId.id
if (values.companyId) {
submitData.companyId = values.companyId.id
}
// 会议id
submitData.meetingId = this.$route.query.meetingId
// 会议类型
@@ -230,7 +230,7 @@ export default {
endKey: 'meetingEndTime'
},
url: {
list: '',
list: '/meeting/payMeeting/queryMeetingSummary',
delete: '',
deleteBatch: '',
exportXlsUrl: '',