[update 海外会议] 对接接口
This commit is contained in:
@@ -32,6 +32,8 @@ const getStandardNumberList = (params) => getAction('/meeting/standardsMeeting/g
|
||||
// 国际研讨会-WASIC-通过会议ID获取关联主题的信息
|
||||
const getLinkTopics = (params) => getAction('/meeting/internalMeeting/getLinkTopics', params)
|
||||
|
||||
// 通过id获取海外会议参会人详细信息
|
||||
const getSingUpUserInfoOverseas = (params) => getAction('/meeting/overseasSituation/queryById', params)
|
||||
|
||||
export {
|
||||
getUserInfo,
|
||||
@@ -46,5 +48,6 @@ export {
|
||||
addGenerateCodeList,
|
||||
editGenerateCodeList,
|
||||
getStandardNumberList,
|
||||
getLinkTopics
|
||||
getLinkTopics,
|
||||
getSingUpUserInfoOverseas
|
||||
}
|
||||
|
||||
@@ -73,5 +73,5 @@ export const MeetingTypeEnums = {
|
||||
committee: { name: '分标委会议', value: '5' },
|
||||
council: { name: '理事会会议', value: '6' },
|
||||
draftGroup: { name: '起草会会议', value: '7' },
|
||||
overseas: { name: '海外会议', value: '9' }
|
||||
overseas: { name: '海外会议', value: '8' }
|
||||
}
|
||||
@@ -1417,8 +1417,8 @@ export default {
|
||||
// 海外会议
|
||||
case MeetingTypeEnums.overseas.value:
|
||||
return {
|
||||
add: '',
|
||||
edit: '',
|
||||
add: '/meeting/overseas/add',
|
||||
edit: '/meeting/overseas/edit'
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
@@ -174,7 +174,7 @@
|
||||
<!-- 查询区域 -->
|
||||
<div class="table-page-search-wrapper">
|
||||
<a-form layout="inline" @keyup.enter.native="searchQuery">
|
||||
<a-row :gutter="24">
|
||||
<a-row :gutter="24" v-if="!isOverseasMeeting">
|
||||
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
||||
<a-form-item label="参会单位">
|
||||
<a-input placeholder="请输入参会单位" v-model="queryParam.companyName" :maxLength='50'></a-input>
|
||||
@@ -273,6 +273,46 @@
|
||||
</span>
|
||||
</a-col>
|
||||
</a-row>
|
||||
<!-- 海外会议 -->
|
||||
<a-row :gutter="24" v-else>
|
||||
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
||||
<a-form-item label="姓名">
|
||||
<a-input placeholder="请输入姓名" v-model="queryParam.name" :maxLength='50'></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
||||
<a-form-item label="职务及单位">
|
||||
<a-input placeholder="请输入职务及单位" v-model="queryParam.unit" :maxLength='50'></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
||||
<a-form-item label="国籍">
|
||||
<a-input placeholder="请输入国籍" v-model="queryParam.nationality" :maxLength='50'></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
||||
<a-form-item label="地址">
|
||||
<a-input placeholder="请输入地址" v-model="queryParam.address" :maxLength='50'></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
||||
<a-form-item label="邮箱">
|
||||
<a-input placeholder="请输入邮箱" v-model="queryParam.email" :maxLength='50'></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
||||
<a-form-item label="联系电话">
|
||||
<a-input placeholder="请输入联系电话" v-model="queryParam.phone" :maxLength='50'></a-input>
|
||||
</a-form-item>
|
||||
</a-col>
|
||||
<a-col :xl="6" :lg="7" :md="8" :sm="24">
|
||||
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
|
||||
<a-button type="primary" @click="searchQuery" icon="search"
|
||||
v-has:[authorCode.search]="'attendance:search'">查询</a-button>
|
||||
<a-button @click="searchReset" icon="reload" class="reset-button" style="margin-left: 8px">重置</a-button>
|
||||
</span>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-form>
|
||||
</div>
|
||||
<!-- 查询区域-END -->
|
||||
@@ -571,6 +611,62 @@ export default {
|
||||
scopedSlots: { customRender: 'action' }
|
||||
}
|
||||
],
|
||||
// 海外会议表格
|
||||
overseasMeetingColumns: [
|
||||
{
|
||||
title: '序号',
|
||||
dataIndex: '',
|
||||
key: 'rowIndex',
|
||||
width: 60,
|
||||
align: 'center',
|
||||
customRender: function (t, r, index) {
|
||||
return parseInt(index) + 1
|
||||
}
|
||||
},
|
||||
{
|
||||
title: '姓名',
|
||||
align: 'center',
|
||||
dataIndex: 'name',
|
||||
width: 100
|
||||
},
|
||||
{
|
||||
title: '职务及单位',
|
||||
align: 'center',
|
||||
dataIndex: 'unit',
|
||||
width: 100
|
||||
},
|
||||
{
|
||||
title: '国籍',
|
||||
align: 'center',
|
||||
dataIndex: 'nationality',
|
||||
width: 100
|
||||
},
|
||||
{
|
||||
title: '地址',
|
||||
align: 'center',
|
||||
dataIndex: 'address',
|
||||
width: 300
|
||||
},
|
||||
{
|
||||
title: '邮箱',
|
||||
align: 'center',
|
||||
dataIndex: 'email',
|
||||
width: 200
|
||||
},
|
||||
{
|
||||
title: '联系电话',
|
||||
align: 'center',
|
||||
dataIndex: 'phone',
|
||||
width: 120
|
||||
},
|
||||
{
|
||||
title: '操作',
|
||||
align: 'center',
|
||||
fixed: 'right',
|
||||
width: 300,
|
||||
scopedSlots: { customRender: 'action' }
|
||||
}
|
||||
],
|
||||
// 权限编码
|
||||
authorCode: {},
|
||||
// 其他会议的参会情况的权限编码
|
||||
@@ -733,13 +829,13 @@ export default {
|
||||
exportXlsUrl: '/meeting/draftGroupMeetingSituation/exportXls',
|
||||
importExcelUrl: '/meeting/draftGroupMeetingSituation/importExcel'
|
||||
},
|
||||
// 起草组会议的url
|
||||
// 海外会议的url
|
||||
overseasMeetingUrl: {
|
||||
list: '',
|
||||
delete: '',
|
||||
deleteBatch: '',
|
||||
exportXlsUrl: '',
|
||||
importExcelUrl: ''
|
||||
list: '/meeting/overseasSituation/page',
|
||||
delete: '/meeting/overseasSituation/delete',
|
||||
deleteBatch: '/meeting/overseasSituation/deleteBatch',
|
||||
exportXlsUrl: '/meeting/overseasSituation/exportXls',
|
||||
importExcelUrl: '/meeting/overseasSituation/importExcel'
|
||||
},
|
||||
// 当前的会议信息详情
|
||||
currentMeetingInfo: {},
|
||||
@@ -760,6 +856,10 @@ export default {
|
||||
},
|
||||
created() {
|
||||
// console.log(this.$route,'this.$route this.$route')
|
||||
// 海外会议处理表格
|
||||
if (this.isOverseasMeeting) {
|
||||
this.columns = this.overseasMeetingColumns
|
||||
}
|
||||
// 为不同会议的参会情况去设置不同的权限编码
|
||||
this.setCodeByMeetingType(this.$route.query.meetingType)
|
||||
// 获取会议详情
|
||||
@@ -776,7 +876,9 @@ export default {
|
||||
// 列表表头只有国际研讨会有对接人字段
|
||||
if (this.currentMeetingInfo.meetingType !== '3') {
|
||||
let index = this.columns.findIndex(item => item.dataIndex === 'dockName')
|
||||
this.columns.splice(index, 1)
|
||||
if (index !== -1) {
|
||||
this.columns.splice(index, 1)
|
||||
}
|
||||
}
|
||||
// 计算会议费用 会议费用为0 添加参会人不显示邮寄信息与缴费信息 标协会议
|
||||
if (this.currentMeetingInfo.meetingType === '2' && this.currentMeetingInfo.meetingCostsVip) {
|
||||
@@ -823,6 +925,10 @@ export default {
|
||||
this.signInQRCode = await this.generateQRCode(this.signInUrl)
|
||||
},
|
||||
computed: {
|
||||
// 是否海外会议
|
||||
isOverseasMeeting () {
|
||||
return this.$route.query.meetingType === MeetingTypeEnums.overseas.value
|
||||
},
|
||||
// 标协会议类型
|
||||
tbMeetingType() {
|
||||
if (this.currentMeetingInfo.tbMeetingType === '1') {
|
||||
@@ -956,8 +1062,13 @@ export default {
|
||||
* 添加参会人
|
||||
* */
|
||||
addParticipant() {
|
||||
let path = '/incomePayments/meetManage/SignUpInfoEdit'
|
||||
// 海外会议跳转另一个页面
|
||||
if (this.isOverseasMeeting) {
|
||||
path = '/incomePayments/meetManage/SignUpInfoEditOverseas'
|
||||
}
|
||||
this.$router.push({
|
||||
path: '/incomePayments/meetManage/SignUpInfoEdit',
|
||||
path,
|
||||
query: {
|
||||
meetingType: this.currentMeetingInfo.meetingType,
|
||||
meetingId: this.$route.query.id,
|
||||
@@ -969,8 +1080,13 @@ export default {
|
||||
* 编辑参会人
|
||||
* */
|
||||
handleEdit(record) {
|
||||
let path = '/incomePayments/meetManage/SignUpInfoEdit'
|
||||
// 海外会议跳转另一个页面
|
||||
if (this.isOverseasMeeting) {
|
||||
path = '/incomePayments/meetManage/SignUpInfoEditOverseas'
|
||||
}
|
||||
this.$router.push({
|
||||
path: '/incomePayments/meetManage/SignUpInfoEdit',
|
||||
path,
|
||||
query: {
|
||||
id: record.id,
|
||||
meetingId: this.$route.query.id,
|
||||
@@ -1164,6 +1280,10 @@ export default {
|
||||
case '7':
|
||||
this.authorCode = Object.assign({}, this.draftGroupMeetingCode)
|
||||
break
|
||||
// 海外会议
|
||||
case MeetingTypeEnums.overseas.value:
|
||||
this.authorCode = Object.assign({}, this.overseasMeetingCode)
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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" v-if="!isOverseasMeeting">
|
||||
<a-form :form="form">
|
||||
<!--个人信息begin-->
|
||||
<div class="item-title">个人信息</div>
|
||||
<a-row :gutter="24">
|
||||
@@ -153,133 +153,6 @@
|
||||
</a-form-item>
|
||||
</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>
|
||||
@@ -304,16 +177,12 @@ import {httpAction} from '@api/manage'
|
||||
import pick from 'lodash.pick'
|
||||
import PageHeaderTitle from '@comp/layouts/PageHeaderTitle'
|
||||
import { queryCompanyInfoById } from '../../../api/api'
|
||||
import {LinkTopicsEnums, MeetingTypeEnums, YesOrNoEnums} from '../../../enums/commonEnums'
|
||||
import {LinkTopicsEnums, MeetingTypeEnums} 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,
|
||||
@@ -434,8 +303,8 @@ export default {
|
||||
},
|
||||
// 海外会议的url
|
||||
overseasMeetingUrl: {
|
||||
add: '',
|
||||
edit: ''
|
||||
add: '/meeting/overseasSituation/add',
|
||||
edit: '/meeting/overseasSituation/edit'
|
||||
},
|
||||
title:'添加参会人',
|
||||
// 当前参会企业是否是内部企业
|
||||
@@ -445,74 +314,7 @@ export default {
|
||||
// 可选会议名称的数组
|
||||
linkTopicsOptionArr: [],
|
||||
// WASIC可选会议的数组-前端写死
|
||||
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*/
|
||||
showTopicsArr: [...WasicTopicData]
|
||||
}
|
||||
},
|
||||
created() {
|
||||
@@ -538,10 +340,6 @@ export default {
|
||||
|
||||
},
|
||||
computed:{
|
||||
// 是否海外会议,报名信息调整
|
||||
isOverseasMeeting () {
|
||||
return this.meetingType + '' === MeetingTypeEnums.overseas.value
|
||||
},
|
||||
// eslint-disable-next-line
|
||||
url() {
|
||||
switch (this.$route.query.meetingType) {
|
||||
@@ -566,14 +364,6 @@ export default {
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
// 是否需要签证改变
|
||||
changeNeedVisa (val) {
|
||||
if (val + '' === YesOrNoEnums.no.value) {
|
||||
this.isNeedVisa = true
|
||||
} else {
|
||||
this.isNeedVisa = false
|
||||
}
|
||||
},
|
||||
// 验证选择会议名称的情况
|
||||
checkChoiceTopic(rules, value, callback) {
|
||||
console.log(value)
|
||||
@@ -675,13 +465,6 @@ 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
|
||||
@@ -815,9 +598,7 @@ export default {
|
||||
if(submitData.companyName) {
|
||||
submitData.companyName = (submitData.companyName || '').replaceAll(' (未审核)','').replaceAll(' (未审核)','')
|
||||
}
|
||||
if (values.companyId) {
|
||||
submitData.companyId = values.companyId.id
|
||||
}
|
||||
submitData.companyId = values.companyId.id
|
||||
// 会议id
|
||||
submitData.meetingId = this.$route.query.meetingId
|
||||
// 会议类型
|
||||
|
||||
@@ -0,0 +1,475 @@
|
||||
<template>
|
||||
<div>
|
||||
<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">
|
||||
<!-- 海外会议的表单 -->
|
||||
<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',validatorRules.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',validatorRules.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',validatorRules.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="['nationality',validatorRules.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="['address',validatorRules.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',validatorRules.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',validatorRules.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',validatorRules.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',validatorRules.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',validatorRules.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',validatorRules.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="['passportNo',validatorRules.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="['entryDate',validatorRules.entryDate]"
|
||||
: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">
|
||||
<j-date placeholder="请输入出境日期" style="width: 100%;"
|
||||
v-decorator="['exitDate',validatorRules.exitDate]"
|
||||
: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',validatorRules.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>
|
||||
</div>
|
||||
</a-form>
|
||||
</a-spin>
|
||||
|
||||
</a-card>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import {getMeetInfoById, getSingUpUserInfoOverseas} from '@api/incomeMeetingApi'
|
||||
import {httpAction} from '@api/manage'
|
||||
import PageHeaderTitle from '@comp/layouts/PageHeaderTitle'
|
||||
import {LinkTopicsEnums, MeetingTypeEnums, YesOrNoEnums} from '../../../enums/commonEnums'
|
||||
import JImageUpload from '@comp/jero/JImageUpload'
|
||||
import JDate from '@comp/tools/JDate'
|
||||
|
||||
export default {
|
||||
name: 'SignUpInfoEdit',
|
||||
components: {
|
||||
JDate,
|
||||
JImageUpload,
|
||||
PageHeaderTitle
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
MeetingTypeEnums,
|
||||
description: '海外会议报名信息编辑页',
|
||||
form: this.$form.createForm(this),
|
||||
confirmLoading: false,
|
||||
model: {},
|
||||
formData:{},
|
||||
labelCol: {
|
||||
xs: {span: 24},
|
||||
sm: {span: 6}
|
||||
},
|
||||
wrapperCol: {
|
||||
xs: {span: 24},
|
||||
sm: {span: 18}
|
||||
},
|
||||
remarksLabelCol: {
|
||||
xs: {span: 24},
|
||||
sm: {span: 3}
|
||||
},
|
||||
remarksWrapperCol: {
|
||||
xs: {span: 24},
|
||||
sm: {span: 21}
|
||||
},
|
||||
validatorRules: {
|
||||
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'
|
||||
},
|
||||
entryDate: {
|
||||
rules: [{required: true, message: '请选择入境日期'}],
|
||||
validateTrigger: 'change'
|
||||
},
|
||||
exitDate: {
|
||||
rules: [{required: true, message: '请选择出境日期'}],
|
||||
validateTrigger: 'change'
|
||||
},
|
||||
embassiesAndConsulates: {
|
||||
rules: [{required: true, message: '请输入办理签证使领馆'}],
|
||||
validateTrigger: 'blur'
|
||||
}
|
||||
},
|
||||
// 会议类型
|
||||
meetingType: '',
|
||||
// 当前会议的信息
|
||||
currentMeetingInfo:{},
|
||||
url:{
|
||||
add: '/meeting/overseasSituation/add',
|
||||
edit: '/meeting/overseasSituation/edit'
|
||||
},
|
||||
title:'添加参会人',
|
||||
// 是否需要签证
|
||||
isNeedVisa: false
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.meetingType = this.$route.query.meetingType
|
||||
// 参会情况页面判断的是否会议费用为0 true 为0
|
||||
if(this.$route.query.costBool === 'true'){
|
||||
this.meetingCostBool = true
|
||||
}else if(this.$route.query.costBool === 'false'){
|
||||
this.meetingCostBool = false
|
||||
}
|
||||
if(this.$route.query.id){
|
||||
getSingUpUserInfoOverseas({id: this.$route.query.id}).then(res => {
|
||||
if(res.success) {
|
||||
this.edit(res.result)
|
||||
}
|
||||
})
|
||||
}
|
||||
//获取 会议信息
|
||||
if(this.$route.query.meetingId){
|
||||
this.queryMeetingInfo(this.$route.query.meetingId)
|
||||
}
|
||||
|
||||
},
|
||||
computed:{
|
||||
// 是否海外会议,报名信息调整
|
||||
isOverseasMeeting () {
|
||||
return this.meetingType + '' === MeetingTypeEnums.overseas.value
|
||||
},
|
||||
// eslint-disable-next-line
|
||||
url() {
|
||||
switch (this.$route.query.meetingType) {
|
||||
case '1':
|
||||
return this.workGroupMeetingUrl
|
||||
case '2':
|
||||
return this.standardsMeetingUrl
|
||||
case '3':
|
||||
return this.internalMeetingUrl
|
||||
case '4':
|
||||
return this.otherMeetingUrl
|
||||
case '5':
|
||||
return this.committeeMeetingUrl
|
||||
case '6':
|
||||
return this.councilMeetingUrl
|
||||
case '7':
|
||||
return this.draftGroupMeetingUrl
|
||||
// 海外会议
|
||||
case MeetingTypeEnums.overseas.value:
|
||||
return this.overseasMeetingUrl
|
||||
}
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
// 是否需要签证改变
|
||||
changeNeedVisa (val) {
|
||||
if (val + '' === YesOrNoEnums.yes.value) {
|
||||
this.isNeedVisa = true
|
||||
} else {
|
||||
this.isNeedVisa = false
|
||||
}
|
||||
},
|
||||
// 验证选择会议名称的情况
|
||||
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()
|
||||
}
|
||||
}
|
||||
},
|
||||
/*
|
||||
* 编辑
|
||||
* */
|
||||
async edit(record){
|
||||
this.form.resetFields()
|
||||
this.model = Object.assign({},record)
|
||||
if(this.model.id){
|
||||
this.title = '编辑参会人'
|
||||
}
|
||||
// 海外会议回显单独处理
|
||||
this.changeNeedVisa(this.model.needVisa)
|
||||
this.$nextTick(() => {
|
||||
this.form.setFieldsValue(this.model)
|
||||
})
|
||||
},
|
||||
/*
|
||||
* 确定
|
||||
* */
|
||||
handleOk() {
|
||||
const that = this
|
||||
this.form.validateFields((err, values) => {
|
||||
if (!err) {
|
||||
this.confirmLoading = true
|
||||
let submitData = Object.assign({},values,this.formData)
|
||||
// 会议id
|
||||
submitData.meetingId = this.$route.query.meetingId
|
||||
// 会议类型
|
||||
submitData.meetingType = this.$route.query.meetingType
|
||||
console.log(submitData)
|
||||
let url = ''
|
||||
if(!this.model.id){
|
||||
url = this.url.add
|
||||
}else {
|
||||
url = this.url.edit
|
||||
// 编辑的时候需要传入id
|
||||
submitData.id = this.model.id
|
||||
}
|
||||
// that.confirmLoading = false
|
||||
// return
|
||||
let method = 'post'
|
||||
httpAction(url,submitData,method).then(res => {
|
||||
if(res.success){
|
||||
that.$emit('ok')
|
||||
that.handleCancel()
|
||||
that.$message.success(res.message)
|
||||
that.confirmLoading = false
|
||||
}else {
|
||||
that.$message.warn(res.message)
|
||||
}
|
||||
}).finally( () => {
|
||||
that.confirmLoading = false
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
/*
|
||||
* 获取表单的值
|
||||
* */
|
||||
getFormData(value){
|
||||
this.formData = Object.assign({},value)
|
||||
},
|
||||
/*
|
||||
* 取消
|
||||
* */
|
||||
handleCancel() {
|
||||
this.$router.go(-1)
|
||||
},
|
||||
/**
|
||||
* @Description 通过会议id获取会议信息
|
||||
* @Date 2021-11-29
|
||||
* @param meetingId 会议id
|
||||
* @author fac
|
||||
* */
|
||||
queryMeetingInfo(meetingId){
|
||||
this.currentMeetingInfo = {}
|
||||
getMeetInfoById({id: meetingId}).then(res => {
|
||||
if(res.success){
|
||||
this.currentMeetingInfo = res.result
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
@import '~@assets/less/common.less';
|
||||
|
||||
.center {
|
||||
text-align: center;
|
||||
|
||||
.submit {
|
||||
margin-right: 8px;
|
||||
}
|
||||
}
|
||||
|
||||
.item-title {
|
||||
padding-left: 40px;
|
||||
box-sizing: border-box;
|
||||
height: 46px;
|
||||
line-height: 46px;
|
||||
color: #333;
|
||||
position: relative;
|
||||
font-size: 16px;
|
||||
|
||||
&::before {
|
||||
position: absolute;
|
||||
content: "";
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
border-radius: 50%;
|
||||
background: #069f99;
|
||||
top: 50%;
|
||||
margin-top: -5px;
|
||||
left: 15px;
|
||||
}
|
||||
}
|
||||
|
||||
// 国际研讨会-关联会议 多选样式的修改
|
||||
.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-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;
|
||||
}
|
||||
|
||||
</style>
|
||||
@@ -61,6 +61,7 @@ import { ACCESS_TOKEN } from '../../../../store/mutation-types'
|
||||
import { Modal } from 'ant-design-vue'
|
||||
import store from '@/store'
|
||||
import { isExternalTerminal } from '../../../../utils/util'
|
||||
import {MeetingTypeEnums} from '@/enums/commonEnums'
|
||||
const FILE_TYPE_ALL = 'all'
|
||||
|
||||
const columns = [
|
||||
@@ -208,6 +209,12 @@ export default {
|
||||
uploadFile: '/meeting/draftGroupMeeting/uploadFile',
|
||||
uploadCouncilFile: '/meeting/draftGroupMeeting/uploadCouncilFile',
|
||||
}
|
||||
// 海外会议
|
||||
case MeetingTypeEnums.overseas.value:
|
||||
return {
|
||||
uploadFile: '/meeting/overseas/uploadFile',
|
||||
uploadCouncilFile: '/meeting/overseas/uploadCouncilFile',
|
||||
}
|
||||
}
|
||||
},
|
||||
handleOk() {
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
<a-button type="primary" icon="download" @click="handleExportXls('海外会议')" v-has="'overseasMeeting:export'">导出
|
||||
</a-button>
|
||||
<a-button type="danger" icon="delete" @click="batchDel" v-has="'overseasMeeting:batchDel'">批量删除</a-button>
|
||||
<a-button @click="releaseMeeing" type="primary" v-has="'overseasMeeting:release'">发布</a-button>
|
||||
<a-button @click="releaseMeeing" type="primary" v-has="'overseasMeeting:publish'">发布</a-button>
|
||||
</div>
|
||||
|
||||
<!-- table区域-begin -->
|
||||
@@ -230,21 +230,15 @@ export default {
|
||||
endKey: 'meetingEndTime'
|
||||
},
|
||||
url: {
|
||||
list: '/meeting/payMeeting/queryMeetingSummary',
|
||||
delete: '',
|
||||
deleteBatch: '',
|
||||
exportXlsUrl: '',
|
||||
importExcelUrl: '',
|
||||
releaseMeeingUrl: ''// 发布会议的接口
|
||||
list: '/meeting/overseas/page',
|
||||
delete: '/meeting/overseas/delete',
|
||||
deleteBatch: '/meeting/overseas/deleteBatch',
|
||||
exportXlsUrl: '/meeting/overseas/exportXls',
|
||||
releaseMeeingUrl: '/meeting/overseas/publishReminder'// 发布会议的接口
|
||||
},
|
||||
disableMixinCreated: true
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
importExcelUrl: function () {
|
||||
return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`
|
||||
},
|
||||
},
|
||||
created() {
|
||||
this.filters.meetingType = MeetingTypeEnums.overseas.value
|
||||
this.loadData(1)
|
||||
|
||||
Reference in New Issue
Block a user