【update】- 国际研讨会-WASIC 需求变更

This commit is contained in:
fengchenchen
2023-10-25 18:10:22 +08:00
parent 7e1340ca94
commit c8917f5aef
11 changed files with 240 additions and 26 deletions
+5 -1
View File
@@ -29,6 +29,9 @@ const editGenerateCodeList = (params) => postAction('/meeting/randomCode/edit',
// 标协会议-问题征集详情-查询标准号下拉框数据
const getStandardNumberList = (params) => getAction('/meeting/standardsMeeting/getStandardNumberList', params)
// 国际研讨会-WASIC-通过会议ID获取关联主题的信息
const getLinkTopics = (params) => getAction('/meeting/internalMeeting/getLinkTopics', params)
export {
getUserInfo,
@@ -42,5 +45,6 @@ export {
generateCode,
addGenerateCodeList,
editGenerateCodeList,
getStandardNumberList
getStandardNumberList,
getLinkTopics
}
+1 -1
View File
@@ -1,6 +1,6 @@
<template>
<a-checkbox-group v-if="tagType=='checkbox'" @change="onChange" :value="arrayValue" :disabled="disabled">
<a-checkbox v-for="(item, key) in dictOptions" :key="key" :value="item.value">{{ item.text || item.label }}</a-checkbox>
<a-checkbox v-for="item in dictOptions" :key="'a_checkbox_'+ item.value" :value="item.value">{{ item.text || item.label }}</a-checkbox>
</a-checkbox-group>
<a-select
+2 -2
View File
@@ -34,7 +34,7 @@
import { ACCESS_TOKEN } from '@/store/mutation-types'
import { getFileAccessHttpUrl } from '@/api/manage'
import {getFileInfo} from '@api/api'
import { isExternalTerminal } from '../../utils/util'
import {isExternalTerminal} from '../../utils/util'
// eslint-disable-next-line
const Base64 = require('js-base64').Base64
@@ -122,7 +122,7 @@
created(){
const token = Vue.ls.get(ACCESS_TOKEN)
this.headers = {
'X-Access-Token':token,
'X-Access-Token': token,
'externalTerminalShow': isExternalTerminal ? 'external' : 'inside'
}
},
+11
View File
@@ -22,3 +22,14 @@ export const InvoiceTypeEnums = {
plain: { name: '增值税普通发票', index: 1 },
special: { name: '增值税专用发票', index: 2 }
}
// 国际研讨会关联课题
//汽车网络安全与数据安全标准合规专题,
// 智能网汽车标准化领航及标准路线图专题,
// 汽车地毯专题,
// 动力电池安全专题,
// 弱势道路交通参与者(VRU)保护专题,
// 免费专题
export const LinkTopicsEnums = {
free: { name: '免费专题', index: 6 }
}
@@ -94,6 +94,34 @@
</a-form-item>
</a-col>
<template v-if="meetingType === '3' ">
<!--国际研讨会-【是否WASIC】 -->
<a-col :xxl="8" :xl="12" :sm="24" >
<a-form-item label="是否WASIC" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-dict-select-tag
v-decorator="['isWasic',validatorRules.isWasic]"
:trigger-change="true"
style="width: 100%"
dict-code="yn"
placeholder="请选择是否WASIC"
@change="isWasicChange"
></j-dict-select-tag>
</a-form-item>
</a-col>
<a-col :xxl="8" :xl="12" :sm="24" v-if="isWasic">
<a-form-item label="关联课题" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-multi-select-tag
v-decorator="['linkTopics',validatorRules.linkTopics]"
:trigger-change="true"
style="width: 100%"
dict-code="linkTopics"
placeholder="请选择关联课题"
>
</j-multi-select-tag>
</a-form-item>
</a-col>
</template>
</a-row>
<a-row>
@@ -282,17 +310,18 @@
<span class="working-group-remind" v-if="isWorkGroupMeetType">不收费请填写0元</span>
</div>
<a-row :gutter="24">
<a-col :xxl="8" :xl="12" :sm="24">
<a-form-item label="会议费用" :labelCol="labelCol" :wrapperCol="{ xs: {span: 24},sm: {span: 16}}">
<a-input placeholder="请输入会议费用"
:maxLength='50'
@change="(e) => {e.target.value = e.target.value.replace(/[^0-9.]/g,'')}"
@blur="addZero"
v-decorator="[ 'meetingCosts',validateInviteCode.meetingCosts]"></a-input>
<span class="yuan">元/人</span>
</a-form-item>
</a-col>
<template v-if="!isWasic">
<a-col :xxl="8" :xl="12" :sm="24">
<a-form-item label="会议费用" :labelCol="labelCol" :wrapperCol="{ xs: {span: 24},sm: {span: 16}}">
<a-input placeholder="请输入会议费用"
:maxLength='50'
@change="(e) => {e.target.value = e.target.value.replace(/[^0-9.]/g,'')}"
@blur="addZero"
v-decorator="[ 'meetingCosts',validateInviteCode.meetingCosts]"></a-input>
<span class="yuan">元/人</span>
</a-form-item>
</a-col>
</template>
<!-- 标协会议才有 -->
<a-col :xxl="8" :xl="12" :sm="24" v-if="meetingType === '2' ">
<a-form-item label="会议费用(标协会员)" :labelCol="{ xs: {span: 24},sm: {span: 8}}"
@@ -305,6 +334,34 @@
<span class="yuan">元/人</span>
</a-form-item>
</a-col>
<!--2023-10-23 wasic会议的时候存在-->
<template v-if="isWasic">
<a-col :xxl="8" :xl="12" :sm="24">
<a-form-item label="会议费用(2个课题)" :labelCol="{ xs: {span: 24},sm: {span: 8}}" :wrapperCol="{ xs: {span: 24},sm: {span: 14}}">
<a-input placeholder="请输入会议费用(2个课题)"
:maxLength='50'
@change="(e) => {e.target.value = e.target.value.replace(/[^0-9.]/g,'')}"
@blur="addZero"
v-decorator="[ 'meetingCostsTwoTopic',validateInviteCode.meetingCostsTwoTopic]"></a-input>
<span class="yuan">元/人</span>
</a-form-item>
</a-col>
<a-col :xxl="8" :xl="12" :sm="24">
<a-form-item label="会议费用(3个及以上)" :labelCol="{ xs: {span: 24},sm: {span: 8}}" :wrapperCol="{ xs: {span: 24},sm: {span: 14}}">
<a-input placeholder="请输入会议费用(3个及以上)"
:maxLength='50'
@change="(e) => {e.target.value = e.target.value.replace(/[^0-9.]/g,'')}"
@blur="addZero"
v-decorator="[ 'meetingCostsThreeTopic',validateInviteCode.meetingCostsThreeTopic]"></a-input>
<span class="yuan">元/人</span>
</a-form-item>
</a-col>
</template>
<template>
</template>
<!--收款二维码-->
<a-col :xxl="8" :xl="12" :sm="24" v-if="QRcodeBool">
<a-form-item label="收款二维码" :labelCol="{ xs: {span: 24},sm: {span: 8}}"
@@ -565,6 +622,18 @@ export default {
],
validateTrigger: ['blur']
},
meetingCostsTwoTopic: {
rules: [
{required: true, validator: this.validateMeetingCostsTwoTopic},
],
validateTrigger: ['blur']
},
meetingCostsThreeTopic: {
rules: [
{required: true, validator: this.validateMeetingCostsThreeTopic},
],
validateTrigger: ['blur']
},
directorPhone: {
rules: [
{required: true, validator: this.validateDirectorPhone}
@@ -591,6 +660,8 @@ export default {
meetingType: '',
// 是否需要 问题征集
isAddQuestion: 0,
// 是否需要 特殊课题
isWasic: 0,
// 标协会议类型
tbMeetingType: undefined,
}
@@ -685,6 +756,9 @@ export default {
}]
}
this.model.isAddQuestion = this.model.isAddQuestion || 0 // 处理历史数据的问题
// 是否WASIC--处理历史数据的问题
this.model.isWasic = this.model.isWasic || 0
this.isWasic = this.model.isWasic || 0
} else {
this.title = '新增会议'
// 所有的会议都显示酒店联系人
@@ -759,7 +833,7 @@ export default {
}
// 如果是国际研讨会则赋值邀请码
if (this.meetingType === '3') {
this.form.setFieldsValue(pick(this.model, 'vipInvitationCode', 'speakerInvitationCode', 'guestInvitationCode', 'cooperativeInvitationCode','exhibitorInvitationCode'))
this.form.setFieldsValue(pick(this.model, 'isWasic', 'linkTopics', 'meetingCostsTwoTopic', 'meetingCostsThreeTopic', 'vipInvitationCode', 'speakerInvitationCode', 'guestInvitationCode', 'cooperativeInvitationCode','exhibitorInvitationCode'))
}
})
@@ -798,6 +872,10 @@ export default {
}
// 添加编辑会议需要增加会议类型
formData.meetingType = this.meetingType
// 国际研讨会 对isWasic做处理
if(formData.meetingType === '3') {
formData.isWasic = Number(formData.isWasic)
}
// 如果是工作会议维护跳转的需要加上会议类型为工作组会议和工作组id
if (this.isWorkGroupMeetType) {
formData.meetingType = '1'
@@ -1110,6 +1188,11 @@ export default {
changeIsAddQuestion(e) {
this.isAddQuestion = e.target.value
},
// 是否WASIC 会议
isWasicChange(e) {
console.log(e)
this.isWasic = Number(e)
},
/*
* 根据会议类型返回不同的会议新增与编辑接口
* */
@@ -1260,6 +1343,26 @@ export default {
callback('请输入合法的金额数字,最多2位小数,10位整数')
}
},
validateMeetingCostsTwoTopic(rule, value, callback) {
if (value === undefined || value === '' || value === null) {
callback('请输入会议费用(2个课题)')
}
if (value && money(value)) {
callback()
} else {
callback('请输入合法的金额数字,最多2位小数,10位整数')
}
},
validateMeetingCostsThreeTopic(rule, value, callback) {
if (value === undefined || value === '' || value === null) {
callback('请输入会议费用(3个及以上)')
}
if (value && money(value)) {
callback()
} else {
callback('请输入合法的金额数字,最多2位小数,10位整数')
}
},
validateDirectorPhone(rule, value, callback) {
if (value && value !== '') {
if (phoneReg(value)) {
@@ -16,6 +16,16 @@
<a-col :xxl="8" :xl="12" :sm="24" v-show="currentMeetingInfo.meetingType === '2' ">
<label>标协会议类型</label><span>{{ tbMeetingType }}</span>
</a-col>
<!--国际研讨会的判断-是否WASIC-->
<template v-if="currentMeetingInfo.meetingType === '3' ">
<a-col :xxl="8" :xl="12" :sm="24" >
<label>是否WASIC</label><span>{{ currentMeetingInfo.isWasic_dictText || '否' }}</span>
</a-col>
<a-col :xxl="8" :xl="12" :sm="24" v-if="currentMeetingInfo.isWasic">
<label>关联课题</label><span><j-ellipsis :value="currentMeetingInfo.linkTopics_dictText" :length="35"></j-ellipsis></span>
</a-col>
</template>
<a-col :xxl="8" :xl="12" :sm="24">
<label>负责人</label><span>{{ currentMeetingInfo.directorName }}</span>
</a-col>
@@ -38,12 +48,23 @@
<a-col :xxl="8" :xl="12" :sm="24">
<label>召开地点</label><span>{{ currentMeetingInfo.venue + '/' + currentMeetingInfo.address }}</span>
</a-col>
<a-col :xxl="8" :xl="12" :sm="24">
<label>会议费用</label><span>{{ currentMeetingInfo.meetingCosts }} /</span>
</a-col>
<a-col :xxl="8" :xl="12" :sm="24" v-show="currentMeetingInfo.meetingType === '2' ">
<label>会议费用(标协会员)</label><span>{{ currentMeetingInfo.meetingCostsVip }} /</span>
</a-col>
<!--国际研讨会 且为WASIC-->
<template v-if="currentMeetingInfo.meetingType === '3' && currentMeetingInfo.isWasic">
<a-col :xxl="8" :xl="12" :sm="24">
<label>会议费用2个课题</label><span>{{ currentMeetingInfo.meetingCostsTwoTopic }} /</span>
</a-col>
<a-col :xxl="8" :xl="12" :sm="24">
<label>会议费用3个及以上</label><span>{{ currentMeetingInfo.meetingCostsThreeTopic }} /</span>
</a-col>
</template>
<template v-else>
<a-col :xxl="8" :xl="12" :sm="24" >
<label>会议费用</label><span>{{ currentMeetingInfo.meetingCosts }} /</span>
</a-col>
<a-col :xxl="8" :xl="12" :sm="24" v-show="currentMeetingInfo.meetingType === '2' ">
<label>会议费用(标协会员)</label><span>{{ currentMeetingInfo.meetingCostsVip }} /</span>
</a-col>
</template>
<a-col :xxl="8" :xl="12" :sm="24">
<label>预计参加人数</label><span>{{ currentMeetingInfo.estimatedNumber }}</span>
</a-col>
@@ -1089,4 +1110,5 @@ export default {
/deep/.flex-width-zero .ant-form-item-control-wrapper {
width: 0;
}
</style>
@@ -401,6 +401,13 @@ export default {
checkTaxMoney(rules, value, callback) {
this.checkMoneyTemplate(rules, value, callback, '税额')
},
changeReceivableAmountParent(params) {
// 表单赋值
this.form.setFieldsValue({
'amountReceivable': params.target.value
})
this.changeReceivableAmount(params)
},
handleOk() {
this.form.validateFields((err, values) => {
if (!err) {
@@ -43,6 +43,23 @@
v-decorator="['phone',validatorRules.phone]"></a-input>
</a-form-item>
</a-col>
<!-- 国际研讨会 WASIC 增加课题名称的选择--已经到账的信息不能修改-->
<a-col :xxl="8" :xl="12" :sm="24" v-if="currentMeetingInfo.isWasic">
<a-form-item label="课题名称" :labelCol="labelCol" :wrapperCol="wrapperCol">
<j-multi-select-tag
v-decorator="['choiceTopic',validatorRules.choiceTopic]"
:trigger-change="true"
style="width: 100%"
dict-code="linkTopics"
placeholder="请选择课题名称"
:options="linkTopicsOptionArr"
type="checkbox"
class="meeting-form-multi-select"
:disabled="model.inAccount === 1"
>
</j-multi-select-tag>
</a-form-item>
</a-col>
<a-col :xxl="8" :xl="12" :sm="24">
<a-form-item label="身份" :labelCol="labelCol" :wrapperCol="wrapperCol">
@@ -129,12 +146,13 @@ import SeminarVipForm from '@views/incomePayments/meetManage/modules/SeminarVipF
import SeminarPartnerForm from '@views/incomePayments/meetManage/modules/SeminarPartnerForm'
import AddMeetingCompany from '@comp/company/AddMeetingCompany'
import {getContactsById} from '@api/api'
import {getSingUpUserInfo, validateStandard, getMeetInfoById} from '@api/incomeMeetingApi'
import {getSingUpUserInfo, validateStandard, getMeetInfoById, getLinkTopics} from '@api/incomeMeetingApi'
import { judgeInternalEnterprise } from '../../../api/incomePaymentsApi'
import {httpAction} from '@api/manage'
import pick from 'lodash.pick'
import PageHeaderTitle from '@comp/layouts/PageHeaderTitle'
import { queryCompanyInfoById } from '../../../api/api'
import { LinkTopicsEnums } from "../../../enums/commonEnums";
export default {
name: 'SignUpInfoEdit',
@@ -184,6 +202,12 @@ export default {
rules: [{required: true, message: '请输入手机号'}],
validateTrigger: 'blur'
},
choiceTopic: {
rules: [
{required: true, message: '请选择课题名称'},
],
validateTrigger: ['change']
},
identify: {
rules: [{required: true, message: '请选择身份'}],
validateTrigger: 'change'
@@ -244,7 +268,9 @@ export default {
},
title:'添加参会人',
// 当前参会企业是否是内部企业
isInternalEnterprise: false
isInternalEnterprise: false,
// 可选课题名称的数组
linkTopicsOptionArr: []
}
},
created() {
@@ -289,6 +315,14 @@ export default {
},
},
methods: {
// 获取国际研讨会-能选择课题的数据字典数据
getLinkTopicsOptionArr(meetingId) {
getLinkTopics({id: meetingId}).then(res =>{
if(res.success) {
this.linkTopicsOptionArr = res.result || []
}
})
},
// 通过企业的id获取企业管理中的基本信息,用于发票回显
queryCompanyInfoById(id) {
return new Promise(resolve => {
@@ -384,6 +418,7 @@ export default {
'companyId',
'companyContactId',
'phone',
'choiceTopic',
'email',
'post',
'identity',
@@ -572,9 +607,13 @@ export default {
* */
queryMeetingInfo(meetingId){
this.currentMeetingInfo = {}
getMeetInfoById({id:meetingId}).then(res => {
getMeetInfoById({id: meetingId}).then(res => {
if(res.success){
this.currentMeetingInfo = res.result
// 国际研讨会 且为WASIC 会议
if (this.currentMeetingInfo.meetingType === '3' && this.currentMeetingInfo.isWasic){
this.getLinkTopicsOptionArr(meetingId)
}
}
})
}
@@ -615,4 +654,15 @@ export default {
}
}
// 国际研讨会-关联课题 多选样式的修改
.meeting-form-multi-select{
/deep/.ant-checkbox-wrapper + .ant-checkbox-wrapper {
margin-left: 0!important;
}
/deep/ .ant-checkbox-wrapper{
margin-right: 8px;
}
}
</style>
@@ -29,6 +29,18 @@ export default {
],
validateTrigger: ['change']
},
isWasic: {
rules: [
{required: true, message: '请选择是否WASIC'},
],
validateTrigger: ['change']
},
linkTopics: {
rules: [
{required: true, message: '请选择关联课题'},
],
validateTrigger: ['change']
},
registerDeadline: {
rules: [
{required: true, message: '请选择报名截止时间'},
@@ -79,7 +79,7 @@ import { downloadFile } from '../../../../api/manage'
import { ACCESS_TOKEN } from '../../../../store/mutation-types'
import { Modal } from 'ant-design-vue'
import store from '@/store'
import { isExternalTerminal } from '../../../../utils/util'
import {isExternalTerminal} from '../../../../utils/util'
const FILE_TYPE_ALL = 'all'
const columns = [
@@ -55,6 +55,11 @@
</j-date>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="是否WASIC">
<j-dict-select-tag placeholder="请选择是否WASIC" dict-code="yn" v-model="queryParam.isWasic"></j-dict-select-tag>
</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="'internalMeeting:search'">查询</a-button>