Files
income_payments_enterprise_…/src/views/MessagePage/MeetingDetailModal.vue
T

1344 lines
49 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<template>
<j-modal
:title="title"
:width="width"
:visible="visible"
switchFullscreen
fullscreen
@cancel="handleCancel"
cancelText="关闭">
<a-spin :spinning="situationInfoLoading">
<!--会议信息begin-->
<section class="base-info">
<h3 class="title">会议信息</h3>
<a-row :gutter="24" class="flex-col">
<a-col :span="12">
<label>会议名称</label>
<span><j-ellipsis :value="model.meetingName" :length="20"></j-ellipsis></span>
</a-col>
<a-col :span="12">
<label>会议类型</label>
<span><j-ellipsis :value="generateMeetingType(model.meetingType)" :length="20"></j-ellipsis></span>
</a-col>
</a-row>
<!--国际研讨会的判断-是否WASIC-->
<template v-if="model.meetingType === MeetingTypeEnums.internationalSeminar.index">
<a-row :gutter="24" class="flex-col" >
<a-col :span="12">
<label>是否WASIC</label>
<span><j-ellipsis :value="model.isWasic_dictText || '否'" :length="20"></j-ellipsis></span>
</a-col>
</a-row>
<a-row :gutter="24" class="flex-col" v-if="model.isWasic">
<a-col :span="12">
<label>关联会议</label>
<div>
<div class="word-beak block-span" v-for="item in wasicLinkTopics" :key="item.name">
<div class="topic-title">{{ item.name }}</div>
<div v-for="innerItem in item.children" :key="'a_checked_'+ innerItem.value">{{ innerItem.text }}</div>
</div>
</div>
<!--<span>-->
<!--<span class="block-span" v-for="item in (model.linkTopics_dictText || '').split(',')" :key="item">{{item}}</span>-->
<!--</span>-->
</a-col>
</a-row>
</template>
<a-row :gutter="24" class="flex-col">
<a-col :span="12">
<label>召开时间</label>
<span>{{ model.startTime + '~' + model.endTime }}</span>
</a-col>
<a-col :span="12">
<label>年份</label>
<span><j-ellipsis :value="model.particularYear" :length="20"></j-ellipsis></span>
</a-col>
</a-row>
<a-row :gutter="24" class="flex-col">
<a-col :span="12">
<label>召开地点</label>
<span><j-ellipsis :value="model.venue + '/' + model.address"></j-ellipsis></span>
</a-col>
<a-col :span="12">
<label>负责人</label>
<span><j-ellipsis :value="model.directorName" :length="20"></j-ellipsis></span>
</a-col>
</a-row>
<a-row :gutter="24" class="flex-col">
<a-col :span="12" v-for="(item,index) in model.meetingContactsList"
:key="index">
<label class="label">会议联系人及手机号</label>
<span class="mul-row-content">
<span
class="content"
>{{ item.meetingContactsName }} {{ item.meetingContactsName ? '' : '' }} {{
item.meetingContactsPhone + ' '
}}</span>
</span>
</a-col>
</a-row>
<a-row :gutter="24" class="flex-col">
<a-col :span="12">
<label>酒店名称</label><span>{{ model.hotelName }}</span>
</a-col>
<a-col :span="12">
<label>酒店地址</label><span>{{ model.hotelAddress }}</span>
</a-col>
</a-row>
<a-row :gutter="24" class="flex-col">
<a-col :span="12" v-for="(item,index) in model.hotelContactsList"
:key="index">
<label class="label">酒店联系人及手机号</label>
<span class="mul-row-content">
<span
class="content"
>{{ item.hotelContacts }} {{ item.hotelContacts ? '' : '' }} {{ item.hotelContactsPhone + ' ' }}</span>
</span>
</a-col>
</a-row>
<a-row :gutter="24" class="flex-col">
<a-col :span="12">
<label>报名截止时间</label>
<span><j-ellipsis :value="model.registerDeadline" :length="20"></j-ellipsis></span>
</a-col>
<a-col :span="12">
<label style="width: 160px">会议通知</label>
<span style="width: 100%;">
<preview-file style="width: 80%" :file-id="model.meetingFiles"></preview-file>
</span>
</a-col>
</a-row>
<a-row :gutter="24" class="flex-col">
<!--国际研讨会 且为WASIC-->
<template v-if="Number(model.meetingType) === MeetingTypeEnums.internationalSeminar.index && model.isWasic">
<a-col :span="12">
<label>114/22焦点论坛+国际发展论坛+ 1个及以下专题研讨</label><span>{{ model.meetingCostsTwoTopic }} /</span>
</a-col>
<a-col :span="12">
<label>114/22焦点论坛+国际发展论坛+ 2个及以上专题研讨</label><span>{{ model.meetingCostsThreeTopic }} /</span>
</a-col>
</template>
<template v-else>
<a-col :span="12">
<label>会议费用</label>
<span>{{ model.meetingCosts }} /</span>
</a-col>
<a-col :span="12" v-show="Number(model.meetingType) === MeetingTypeEnums.standard.index">
<label>会议费用(标协会员)</label>
<span>{{ model.meetingCostsVip }} /</span>
</a-col>
</template>
<a-col :span="12" v-if="model.paymentQrCode && Number(model.meetingType) !== MeetingTypeEnums.standard.index">
<label>收费二维码</label>
<span>
<img :src="paymentQrCodeSrc" alt="nothing show" class="payment-qrcode-img"/>
</span>
</a-col>
</a-row>
<a-row :gutter="24" class="flex-col" v-if="model.paymentQrCode && Number(model.meetingType) === MeetingTypeEnums.standard.index">
<a-col :span="24">
<label>收费二维码</label>
<span>
<img :src="paymentQrCodeSrc" alt="nothing show" class="payment-qrcode-img"/>
</span>
</a-col>
</a-row>
<!-- 标协会议增加问题征集相关字段 -->
<a-row :gutter="24" class="flex-col" v-if="Number(model.meetingType) === MeetingTypeEnums.standard.index">
<a-col :span="12">
<label>问题征集</label>
<span>{{ model.isAddQuestion === '1' ? '需要' : '不需要'}} </span>
</a-col>
<a-col :span="12" v-if="model.isAddQuestion === '1'">
<label>征集截止时间</label>
<span>{{ model.endTimeAddQuestion }}</span>
</a-col>
</a-row>
<a-row :gutter="24" class="flex-col">
<a-col :span="24">
<label>会议内容</label>
<span><j-ellipsis :value="model.meetingContent" :length="100"></j-ellipsis></span>
</a-col>
</a-row>
<a-row :gutter="24" class="flex-col">
<a-col :span="24">
<label>会议备注</label>
<span>{{model.remark}}</span>
</a-col>
</a-row>
</section>
<!--会议信息end-->
<!--开票邮寄信息begin-->
<section class="logistics-info">
<h3 class="title">开票邮寄信息</h3>
<div>
<span class="collapse-span color-blue"
@click="showMoreInfo = !showMoreInfo">{{ showMoreInfo ? '收起' : '查看' }}</span>
</div>
<div class="wrap-table" :class="{'hide': !showMoreInfo}">
<a-table
ref="table"
size="middle"
rowKey="id"
:scroll="{x:true}"
:pagination="false"
:columns="columns"
:dataSource="logisticsInfoList"
class="j-table-force-nowrap"
:class="{'hide': !showMoreInfo}"
>
<span slot="action" slot-scope="record" class="action-span-cell">
<a @click="lookLogistics(record)" v-if="record.postStatus === 1">查看物流</a>
</span>
<!-- <p slot="expandedRowRender" slot-scope="record" style="margin: 0">-->
<!-- {{ record.sendDate }}-->
<!-- </p>-->
</a-table>
</div>
</section>
<!--开票邮寄信息end-->
<!--报名信息begin-->
<!-- 除开国际研讨会嘉宾身份个人信息的显示 -->
<section class="base-info" v-if="!(model.meetingType === 3 && situationInfo.identity === 1 )">
<h3 class="title">报名信息</h3>
<template v-if="Object.keys(situationInfo).length > 0">
<section>
<a-row :gutter="24" class="flex-col">
<a-col :span="12">
<label>参会单位</label>
<span><j-ellipsis :value="situationInfo.companyName" :length="20"></j-ellipsis></span>
</a-col>
</a-row>
<a-row :gutter="24" class="flex-col">
<a-col :span="12">
<label>参会人</label>
<span><j-ellipsis :value="situationInfo.companyContactName" :length="20"></j-ellipsis></span>
</a-col>
<a-col :span="12">
<label>身份</label>
<span><j-ellipsis :value="situationInfo.identity_dictText" :length="20"></j-ellipsis></span>
</a-col>
</a-row>
<a-row :gutter="24" class="flex-col">
<!--是否为WASIC字段判断-->
<a-col :span="12" v-if="model.isWasic">
<label>会议名称</label>
<div>
<div class="word-beak block-span" v-for="item in wasicChoiceTopics" :key="item.name">
<div class="topic-title">{{ item.name }}</div>
<div v-for="innerItem in item.children" :key="'a_checked_'+ innerItem.value">{{ innerItem.text }}</div>
</div>
</div>
<!--<span>-->
<!-- <span class="block-span" v-for="item in (situationInfo.choiceTopic_dictText || '').split(',')" :key="item">{{item}}</span>-->
<!--</span>-->
</a-col>
<a-col :span="12">
<label>手机号</label>
<span><j-ellipsis :value="situationInfo.phone" :length="20"></j-ellipsis></span>
</a-col>
</a-row>
<!-- 行程信息 -->
<a-row :gutter="24" class="flex-col" v-show="situationInfo.checkInHotel_dictText">
<a-col :span="12" >
<label>是否住酒店</label>
<span>{{ situationInfo.checkInHotel_dictText }}</span>
</a-col>
</a-row>
<a-row :gutter="24" class="flex-col" v-if=" (situationInfo.arrivalTime || situationInfo.departureTime)">
<a-col :span="12" v-show="situationInfo.arrivalTime">
<label>抵达时间</label>
<span>{{ situationInfo.arrivalTime }}</span>
</a-col>
<a-col :span="12" v-show="situationInfo.departureTime">
<label>离开时间</label>
<span> {{ situationInfo.departureTime }}</span>
</a-col>
</a-row>
<!-- 只有参会人才会显示 会议费用为 0 不显示 -->
<a-row :gutter="24" class="flex-col"
v-show="situationInfo.identity === 2 && model.meetingCosts !== '0.00' ">
<a-col :span="12">
<label>付款方式</label>
<span><j-ellipsis :value="situationInfo.payMode_dictText" :length="20"></j-ellipsis></span>
</a-col>
<!-- 缴费方式为打包不显示-->
<a-col :span="12" v-show="situationInfo.payMode !== 3">
<label>需要发票</label>
<span><j-ellipsis :value="situationInfo.needInvoice_dictText" :length="20"></j-ellipsis></span>
</a-col>
</a-row>
<!--缴费方式非打包并且需要发票显示发票的相关信息-->
<template v-if="situationInfo.payMode !== 3 && situationInfo.needInvoice">
<a-row :gutter="24" class="flex-col">
<a-col :span="12">
<label>企业名称</label>
<span><j-ellipsis :value="situationInfo.companyName" :length="20"></j-ellipsis></span>
</a-col>
<a-col :span="12">
<label>信用代码</label>
<span><j-ellipsis :value="situationInfo.dutyCode" :length="20"></j-ellipsis></span>
</a-col>
</a-row>
<template v-if="situationInfo.needInvoice === InvoiceTypeEnums.special.index">
<a-row :gutter="24" class="flex-col">
<a-col :span="12">
<label>公司地址</label>
<span><j-ellipsis :value="situationInfo.companyAddress" :length="20"></j-ellipsis></span>
</a-col>
<a-col :span="12">
<label>公司电话</label>
<span><j-ellipsis :value="situationInfo.companyPhone" :length="20"></j-ellipsis></span>
</a-col>
</a-row>
<a-row :gutter="24" class="flex-col">
<a-col :span="12">
<label>开户行</label>
<span><j-ellipsis :value="situationInfo.openingBank" :length="20"></j-ellipsis></span>
</a-col>
<a-col :span="12">
<label>银行账号</label>
<span><j-ellipsis :value="situationInfo.bankAccount" :length="20"></j-ellipsis></span>
</a-col>
</a-row>
<a-row :gutter="24" class="flex-col">
<a-col :span="12">
<label>联行号</label>
<span><j-ellipsis :value="situationInfo.linkBankNumber" :length="20"></j-ellipsis></span>
</a-col>
<a-col :span="12">
<label>发票项目</label>
<span><j-ellipsis :value="situationInfo.invoiceProject_dictText" :length="20"></j-ellipsis></span>
</a-col>
</a-row>
</template>
<template v-else>
<a-row :gutter="24" class="flex-col">
<a-col :span="12">
<label>发票项目</label>
<span><j-ellipsis :value="situationInfo.invoiceProject_dictText" :length="20"></j-ellipsis></span>
</a-col>
</a-row>
</template>
</template>
<!-- 缴费方式为打包时候 不需要发票 不显示 会议费用为 0 不显示 -->
<a-row :gutter="24"
v-if=" situationInfo.needInvoice !== 0 && situationInfo.identity === 2 && model.meetingCosts !== '0.00' "
class="flex-col">
<a-col :span="12">
<label>发票邮寄地址</label>
<span><j-ellipsis :value="situationInfo.postContactAddress" :length="20"></j-ellipsis></span>
</a-col>
<a-col :span="12">
<label>邮编</label>
<span><j-ellipsis :value="situationInfo.postCode" :length="20"></j-ellipsis></span>
</a-col>
</a-row>
</section>
</template>
<template>
<a-row :gutter="24" class="flex-col">
<!-- /*
* 1、判断当前会议是否需要缴费,通过会议详情中的 meetingCosts 字段判断,如果是‘0.00’则是不需要花钱的
* 2、报名详情中的 registerProcess 代表报名状态,类型是 1-15 对应需求文档中的不同状态
* */ -->
<a-col :span="12">
<label>报名流程</label>
<span>
<sign-step :register-process="Number(situationInfo.registerProcess)"
:need-costs="model.meetingCosts !== '0.00'"></sign-step>
</span>
</a-col>
</a-row>
<!-- <div>-->
<!-- <a-button type="primary" @click="goSignUpPage">报名</a-button>-->
<!-- </div>-->
</template>
</section>
<!-- 国际研讨会嘉宾身份个人信息的显示 -->
<section class="base-info" v-else>
<div style="display: flex">
<h3 class="title">报名信息</h3>
<!--报名状态为待签到 会议类型是国际研讨会 并且是嘉宾 才能编辑报名信息 不是企业管理员-->
<a-button type="primary" v-if="model.signUpStatus === 6 && $store.getters.userInfo.roleCode !== '3' " class="m-l-10" @click="editSignUpInfo">编辑报名信息</a-button>
</div>
<template v-if="Object.keys(situationInfo).length > 0">
<section>
<a-row :gutter="24" class="flex-col">
<a-col :span="12">
<label>参会单位</label>
<span><j-ellipsis :value="situationInfo.companyName" :length="20"></j-ellipsis></span>
</a-col>
</a-row>
<a-row :gutter="24" class="flex-col">
<a-col :span="12">
<label>参会人</label>
<span><j-ellipsis :value="situationInfo.companyContactName" :length="20"></j-ellipsis></span>
</a-col>
<a-col :span="12">
<label>身份</label>
<span><j-ellipsis :value="situationInfo.identity_dictText" :length="20"></j-ellipsis></span>
</a-col>
</a-row>
<a-row :gutter="24" class="flex-col">
<a-col :span="12">
<label>手机号</label>
<span><j-ellipsis :value="situationInfo.phone" :length="20"></j-ellipsis></span>
</a-col>
</a-row>
<!--vip身份显示-->
<section v-show="situationInfo.guestType == 1 ">
<a-row :gutter="24" class="flex-col">
<a-col :span="12" v-show="situationInfo.speechTopic">
<label>演讲题目</label>
<span>{{ situationInfo.speechTopic }}</span>
</a-col>
<a-col :span="12" v-show="situationInfo.speechPpt">
<label>演讲ppt</label>
<span style="width: 100%;"><preview-file style="width: 80%"
:file-id="situationInfo.speechPpt"></preview-file></span>
</a-col>
</a-row>
<a-row :gutter="24" class="flex-col">
<a-col :span="12" v-show="situationInfo.photo">
<label>照片</label>
<span><j-image-upload v-if="situationInfo.photo" :return-id="true" v-model="situationInfo.photo"
disabled></j-image-upload></span>
</a-col>
<a-col :span="12" v-show="situationInfo.profile">
<label>个人简介</label>
<span>{{ situationInfo.profile }}</span>
</a-col>
</a-row>
<a-row :gutter="24" class="flex-col">
<a-col :span="12">
<label>是否用餐</label>
<span>{{ situationInfo.haveMeals_dictText }}</span>
</a-col>
<a-col :span="12" v-show="situationInfo.haveMeals === 1">
<label>是否回民</label>
<span> {{ situationInfo.huiPeople_dictText }}</span>
</a-col>
</a-row>
<a-row :gutter="24" class="flex-col">
<a-col :span="12">
<label>是否住酒店</label>
<span>{{ situationInfo.checkInHotel_dictText }}</span>
</a-col>
<a-col :span="12" v-show="situationInfo.checkInHotel === 1">
<label>入住酒店时间</label>
<span> {{ situationInfo.inHotelTime }}</span>
</a-col>
</a-row>
<a-row :gutter="24" class="flex-col" v-show="situationInfo.checkInHotel === 1">
<a-col :span="12">
<label>离店时间</label>
<span>{{ situationInfo.outHotelTime }}</span>
</a-col>
<a-col :span="12">
<label>房型</label>
<span> {{ situationInfo.roomLayout }}</span>
</a-col>
</a-row>
<a-row :gutter="24" class="flex-col">
<a-col :span="12">
<label>是否需要接站</label>
<span>{{ situationInfo.pickUp_dictText }}</span>
</a-col>
<a-col :span="12" v-show="situationInfo.pickUp === 1">
<label>抵达时间</label>
<span> {{ situationInfo.arrivalTime }}</span>
</a-col>
</a-row>
<a-row :gutter="24" class="flex-col" v-show="situationInfo.pickUp === 1">
<a-col :span="12">
<label>到达站</label>
<span>{{ situationInfo.destination }}</span>
</a-col>
<a-col :span="12">
<label>到达班次</label>
<span> {{ situationInfo.arrivalShift }}</span>
</a-col>
</a-row>
<a-row :gutter="24" class="flex-col">
<a-col :span="12">
<label>是否需要送站</label>
<span>{{ situationInfo.deliveryStation_dictText }}</span>
</a-col>
<a-col :span="12" v-show="situationInfo.deliveryStation === 1">
<label>离开时间</label>
<span> {{ situationInfo.departureTime }}</span>
</a-col>
</a-row>
<a-row :gutter="24" class="flex-col" v-show="situationInfo.deliveryStation === 1">
<a-col :span="12">
<label>离开站</label>
<span>{{ situationInfo.departureStation }}</span>
</a-col>
<a-col :span="12">
<label>离开班次</label>
<span> {{ situationInfo.departureShift }}</span>
</a-col>
</a-row>
<a-row :gutter="24" class="flex-col">
<a-col :span="12" v-show="situationInfo.peer">
<label>同行人</label>
<span>{{ situationInfo.peer }}</span>
</a-col>
<a-col :span="12" v-show="situationInfo.remark">
<label>备注</label>
<span> {{ situationInfo.remark }}</span>
</a-col>
</a-row>
</section>
<!-- 演讲嘉宾显示 -->
<section v-show="situationInfo.guestType == 2 ">
<a-row :gutter="24" class="flex-col">
<a-col :span="12" v-show="situationInfo.speechTopic">
<label>演讲题目</label>
<span>{{ situationInfo.speechTopic }}</span>
</a-col>
<a-col :span="12" v-show="situationInfo.speechPpt">
<label>演讲ppt</label>
<span style="width: 100%;"><preview-file style="width: 80%"
:file-id="situationInfo.speechPpt"></preview-file></span>
</a-col>
</a-row>
<a-row :gutter="24" class="flex-col">
<a-col :span="12" v-show="situationInfo.photo">
<label>照片</label>
<span><j-image-upload v-if="situationInfo.photo" :return-id="true" v-model="situationInfo.photo"
disabled></j-image-upload></span>
</a-col>
<a-col :span="12" v-show="situationInfo.profile">
<label>个人简介</label>
<span>{{ situationInfo.profile }}</span>
</a-col>
</a-row>
<a-row :gutter="24" class="flex-col">
<a-col :span="12">
<label>是否用餐</label>
<span>{{ situationInfo.haveMeals_dictText }}</span>
</a-col>
<a-col :span="12" v-show="situationInfo.haveMeals === 1">
<label>是否回民</label>
<span> {{ situationInfo.huiPeople_dictText }}</span>
</a-col>
</a-row>
<a-row :gutter="24" class="flex-col">
<a-col :span="12">
<label>是否需要接站</label>
<span>{{ situationInfo.pickUp_dictText }}</span>
</a-col>
<a-col :span="12" v-show="situationInfo.pickUp === 1">
<label>抵达时间</label>
<span> {{ situationInfo.arrivalTime }}</span>
</a-col>
</a-row>
<a-row :gutter="24" class="flex-col" v-show="situationInfo.pickUp === 1">
<a-col :span="12">
<label>到达站</label>
<span>{{ situationInfo.destination }}</span>
</a-col>
<a-col :span="12">
<label>到达班次</label>
<span> {{ situationInfo.arrivalShift }}</span>
</a-col>
</a-row>
<a-row :gutter="24" class="flex-col">
<a-col :span="12">
<label>是否需要送站</label>
<span>{{ situationInfo.deliveryStation_dictText }}</span>
</a-col>
<a-col :span="12" v-show="situationInfo.deliveryStation === 1">
<label>离开时间</label>
<span> {{ situationInfo.departureTime }}</span>
</a-col>
</a-row>
<a-row :gutter="24" class="flex-col" v-show="situationInfo.deliveryStation === 1">
<a-col :span="12">
<label>离开站</label>
<span>{{ situationInfo.departureStation }}</span>
</a-col>
<a-col :span="12">
<label>离开班次</label>
<span> {{ situationInfo.departureShift }}</span>
</a-col>
</a-row>
<a-row :gutter="24" class="flex-col">
<a-col :span="12" v-show="situationInfo.peer">
<label>同行人</label>
<span>{{ situationInfo.peer }}</span>
</a-col>
<a-col :span="12" v-show="situationInfo.remark">
<label>备注</label>
<span> {{ situationInfo.remark }}</span>
</a-col>
</a-row>
</section>
<!-- 特邀嘉宾显示-->
<section v-show="situationInfo.guestType == 3 ">
<a-row :gutter="24" class="flex-col">
<a-col :span="12">
<label>是否用餐</label>
<span>{{ situationInfo.haveMeals_dictText }}</span>
</a-col>
<a-col :span="12" v-show="situationInfo.haveMeals === 1">
<label>是否回民</label>
<span> {{ situationInfo.huiPeople_dictText }}</span>
</a-col>
</a-row>
<a-row :gutter="24" class="flex-col">
<a-col :span="12">
<label>是否需要接站</label>
<span>{{ situationInfo.pickUp_dictText }}</span>
</a-col>
<a-col :span="12" v-show="situationInfo.pickUp === 1">
<label>抵达时间</label>
<span> {{ situationInfo.arrivalTime }}</span>
</a-col>
</a-row>
<a-row :gutter="24" class="flex-col" v-show="situationInfo.pickUp === 1">
<a-col :span="12">
<label>到达站</label>
<span>{{ situationInfo.destination }}</span>
</a-col>
<a-col :span="12">
<label>到达班次</label>
<span> {{ situationInfo.arrivalShift }}</span>
</a-col>
</a-row>
<a-row :gutter="24" class="flex-col">
<a-col :span="12">
<label>是否需要送站</label>
<span>{{ situationInfo.deliveryStation_dictText }}</span>
</a-col>
<a-col :span="12" v-show="situationInfo.deliveryStation === 1">
<label>离开时间</label>
<span> {{ situationInfo.departureTime }}</span>
</a-col>
</a-row>
<a-row :gutter="24" class="flex-col" v-show="situationInfo.deliveryStation === 1">
<a-col :span="12">
<label>离开站</label>
<span>{{ situationInfo.departureStation }}</span>
</a-col>
<a-col :span="12">
<label>离开班次</label>
<span> {{ situationInfo.departureShift }}</span>
</a-col>
</a-row>
<a-row :gutter="24" class="flex-col">
<a-col :span="12" v-show="situationInfo.peer">
<label>同行人</label>
<span>{{ situationInfo.peer }}</span>
</a-col>
</a-row>
</section>
<!--合作伙伴或者参展商身份显示 -->
<a-row :gutter="24" class="flex-col" v-show="situationInfo.guestType == 4 || situationInfo.guestType == 5 ">
<a-col :span="12" v-show="situationInfo.arrivalTime">
<label>抵达时间</label>
<span>{{ situationInfo.arrivalTime }}</span>
</a-col>
<a-col :span="12" v-show="situationInfo.departureTime">
<label>离开时间</label>
<span> {{ situationInfo.departureTime }}</span>
</a-col>
</a-row>
</section>
</template>
<!-- v-if="!model.signUpStatus"-->
<template>
<a-row :gutter="24" class="flex-col">
<!-- /*
* 1、判断当前会议是否需要缴费,通过会议详情中的 meetingCosts 字段判断,如果是‘0.00’则是不需要花钱的
* 2、报名详情中的 registerProcess 代表报名状态,类型是 1-15 对应需求文档中的不同状态
* */ -->
<a-col :span="12">
<label>报名流程</label>
<span>
<sign-step :register-process="Number(situationInfo.registerProcess)"
:need-costs="model.meetingCosts !== '0.00'"></sign-step>
</span>
</a-col>
</a-row>
<!-- 只有可报名的会议 才能去报名 -->
</template>
</section>
<section>
</section>
<!-- 不是企业管理员-->
<div
v-if=" (Number(model.meetingSignUpType) === MeetingSignUpTypeEnums.canSignUp.index && !compareCurrentTime(model.registerDeadline)) && $store.getters.userInfo.roleCode !== '3' ">
<a-button type="primary" @click="goSignUpPage">报名</a-button>
</div>
</a-spin>
<!--报名信息end-->
<!--会议资料begin-->
<section class="base-info">
<h3 class="title">会议资料</h3>
<!-- 报名成功才显示查看按钮-->
<div class="table-operator upload-div" v-if="situationInfo.guestsUploadFileFlag">
<a-button type="primary" icon="plus" @click="uploadFileFunc">资料上传</a-button>
</div>
<file-table :file-id="model.meetingData" :has-limit-bool="true" :meeting-id="model.id"
show-detail-bool></file-table>
</section>
<!--会议资料end-->
<!--会议纪要begin-->
<section class="base-info">
<h3 class="title">会议纪要</h3>
<file-table :file-id="model.meetingMinute" :has-limit-bool="true" :meeting-id="model.id"
show-detail-bool></file-table>
</section>
<!--会议纪要end-->
<!--问题征集 --标协会议:并且会议的是否需要会议征集为需要 && 报名状态是已报名 存在 begin-->
<!-- {{model.meetingType === MeetingTypeEnums.standard.index }} &#45;&#45;{{model.isAddQuestion === '1'}} -&#45;&#45;{{hasQuestionList}}-->
<section
class="base-info"
v-if="model.meetingType === MeetingTypeEnums.standard.index && model.isAddQuestion === '1' && hasQuestionList"
>
<h3 class="title">问题征集</h3>
<problem-collection-table :can-ope="canOpe" :meeting-id="model.id" :table-data="model.questionList" ref="problemCollectionTable"></problem-collection-table>
</section>
<!-- --标协会议 存在 end-->
<!--到账信息 begin 2021-12-10 版需求变更去掉了-->
<!-- <section class="payment-info">
<h3 class="title">付款信息</h3>
<div class="payment-info-box">
<section class="payment-info-title">付款信息</section>
<template v-if="paymentInfoList && paymentInfoList.length > 0">
<div class="payment-info-content" v-for="item of paymentInfoList" :key="item.id">
{{ item.paymentDate }}付款{{ item.amountReceived }}
</div>
</template>
<a-list v-else :data-source="[]"/>
</div>
</section>-->
<!--到账信息end-->
<template slot="footer">
<a-button @click="handleCancel">关闭</a-button>
</template>
<edit-sign-up-info ref="editSignUpInfoForm"></edit-sign-up-info>
<file-upload-modal ref="fileUploadModal" :meeting-id="model.id" @ok="refreshData"></file-upload-modal>
</j-modal>
</template>
<script>
import PreviewFile from '@comp/jero/PreviewFile'
import FileTable from '@/views/MessagePage/modules/FileTable'
import JEllipsis from '@comp/jero/JEllipsis'
import {getMeetInfoById, queryCommonProjectById} from '@api/incomePaymentsApi'
import {getSingUpUserInfo, checkMember} from '@api/incomePaymentsApi'
import JImageUpload from '@comp/jero/JImageUpload'
import '@/assets/less/TableExpand.less'
import SignStep from './modules/SignStep'
import {InvoiceTypeEnums, MeetingSignUpTypeEnums, MeetingTypeEnums} from '../../enums/commonEnum'
import {compareCurrentTime} from '../../utils/meetingJudgeUtil'
import EditSignUpInfo from '@views/meetingActivity/modules/EditSignUpInfo'
// 问题征集的表格
import ProblemCollectionTable from './modules/ProblemCollectionTable'
import FileUploadModal from './modules/FileUploadModal'
import WasicTopicData from "./modules/wasicStaticData";
const columns = [
{
title: '开票人',
align: 'center',
dataIndex: 'realName'
},
{
title: '日期',
align: 'center',
dataIndex: 'billDate'
},
{
title: '金额(元)',
align: 'center',
dataIndex: 'invoiceAmount'
},
{
title: '票号',
align: 'center',
dataIndex: 'billNo'
},
{
title: '项目',
align: 'center',
dataIndex: 'projectName'
},
{
title: '邮寄人',
align: 'center',
dataIndex: 'mailName'
},
{
title: '快递',
align: 'center',
dataIndex: 'sendMethod_dictText'
},
{
title: '快递单号',
align: 'center',
dataIndex: 'postNo'
},
{
title: '操作',
align: 'center',
dataIndex: '',
scopedSlots: {customRender: 'action'}
}
]
export default {
name: 'MeetingDetailModal',
components: {
PreviewFile,
JEllipsis,
JImageUpload,
FileTable,
SignStep,
EditSignUpInfo,
ProblemCollectionTable,
FileUploadModal
},
props: {
// 是否是从会议点进来的 默认走消息
isMeetingBool: {
type: Boolean,
required: false,
default: false
}
},
data() {
return {
MeetingSignUpTypeEnums,
MeetingTypeEnums,
InvoiceTypeEnums,
title: '会议详情',
width: 900,
visible: false,
model: {},
// 会议信息
meetingInfo: {},
// 参会人信息
situationInfo: {},
// 加载参会信息的标识
situationInfoLoading: false,
columns,
// 到账信息
paymentInfoList: [],
// 开票邮寄信息
logisticsInfoList: [],
// 显示更多的开票邮寄信息
showMoreInfo: false,
showDetailBool: true,
hasQuestionList: false, // 是否显示问题征集表格
// 关联会议展示的字段
wasicLinkTopics: [],
// 选择的会议展示的信息
wasicChoiceTopics: []
}
},
computed: {
// eslint-disable-next-line
genderTest() {
if (this.$store.getters.userInfo.gender === 1) {
return '男'
} else if (this.$store.getters.userInfo.gender === 2) {
return '女'
}
},
// 收费二维码 src
paymentQrCodeSrc() {
return `${window._CONFIG['domianURL']}/sys/common/download/${this.model.paymentQrCode}`
},
// 比较当前会议的 问题征集面板 是否可以提问问题
canOpe() {
if(!this.model.endTimeAddQuestion) {
return false
} else {
return !compareCurrentTime(this.model.endTimeAddQuestion)
}
}
},
watch: {
model() {
this.changeShowDetailBool()
},
situationInfo() {
this.changeShowDetailBool()
}
},
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
},
// 是否显示文件查看
async changeShowDetailBool() {
// 增加判断,等后端接口开发完成后再做处理
//先判断当前的会议类型,如果会议是分标委会议或者理事会会议 需要判断当前人是否是 分标委成员或者理事会成员,
if (this.model.meetingType === MeetingTypeEnums.committee.index || this.model.meetingType === MeetingTypeEnums.council.index) {
// 判断是否是成员,如果是成员返回true 否则进行下面的判断
let isBool = await this.judgeIsMember()
this.showDetailBool = isBool
return
}
if ((this.situationInfo.checkResult == 1 && this.situationInfo.registerCheckResult == 1)) {
this.showDetailBool = true
} else {
this.showDetailBool = false
}
},
/**
* @description 国际研讨会嘉宾编辑个人信息
* */
editSignUpInfo(){
this.$refs.editSignUpInfoForm.open(this.situationInfo)
},
// 判断是否是 分标委成员或者理事会成员
judgeIsMember() {
return new Promise(resolve => {
const params = {
meetingType: this.model.meetingType,
meetingId: this.model.id,
}
checkMember(params).then(res => {
if (res.success) {
resolve(res.result)
} else {
resolve(false)
}
}).catch(() => {
resolve(false)
})
})
},
async open(param) {
this.visible = true
this.situationInfoLoading = true
this.showMoreInfo = false
// 通过id查询项目详情
if (param.situationId) {
queryCommonProjectById({id: param.situationId}).then(res => {
if (res.success) {
console.log(res.result, 'res.result')
// 到账信息
this.paymentInfoList = res.result.paymentRecord
// 开票邮寄信息
this.logisticsInfoList = res.result.mailBill
} else {
console.log('未查到相应的信息')
}
})
} else {
this.paymentInfoList = []
// 开票邮寄信息
this.logisticsInfoList = []
}
if (param && !this.isMeetingBool) {
// 查询参会人的信息
await this.getSingUpUserInfoFunc(param)
// 消息进来的获取会议的详情
this.queryMeetingInfoById(param.id).then(res => {
// 会议详情
this.model = Object.assign({}, res)
// 处理WASIC关联会议字段的展示信息
this.wasicLinkTopics = this.handleWasicLinkTopics(this.model)
// if((this.model.checkResult == 1 && this.model.registerCheckResult == 1)){
// this.showDetailBool =true
// }else{
// this.showDetailBool = false
// }
console.log(this.model, 'this.model')
})
} else {
// 会议进来查询的会议信息
this.model = Object.assign({}, param)
// 会议进来的查询参会人信息
await this.getSingUpUserInfoFunc(param)
this.wasicLinkTopics = this.handleWasicLinkTopics(this.model)
}
setTimeout(() => {
this.situationInfoLoading = false
}, 100)
},
getSingUpUserInfoFunc(param) {
return new Promise(resolve => {
this.hasQuestionList = false
// 存在报名信息
if (param.situationId) {
getSingUpUserInfo({id: param.situationId}).then(res => {
if (res.success) {
this.situationInfo = res.result
// WASIC 对已经选择的会议 做日期等格式的处理
this.wasicChoiceTopics = this.handleWasicLinkTopics(this.situationInfo, 'choiceTopic')
// 对当前的会议状态做判断,处理当前详情模态框是否显示问题征集 表格
let registerProcess = Number(this.situationInfo.registerProcess)
// 2022-11-10修改成报名完 就可以提问题
if(registerProcess === 6 || registerProcess === 7 || registerProcess === 8 || registerProcess === 9 || registerProcess === 10 || registerProcess === 14 || registerProcess === 15 || registerProcess === 3 || registerProcess === 4 || registerProcess === 5 || registerProcess === 11) {
this.hasQuestionList = true
}
} else {
this.situationInfo = {}
}
}).finally(() => {
resolve()
})
} else {
this.situationInfo = {}
resolve()
}
})
},
close() {
this.visible = false
},
handleCancel() {
this.close()
},
/*
* 生成每一个开票信息
* */
createItemInfo(item) {
let porjectItem = ''
if (item.projects.length > 0) {
item.projects.forEach((val, index) => {
if (index === item.projects.length - 1) {
porjectItem += val
} else {
porjectItem += val + '、'
}
})
}
return `${item.person}${item.time}开票,金额为:${item.money}元,票号:${item.piaoNo},项目:${porjectItem}`
},
/*
* 查看物流
* */
lookLogistics(record) {
const com = Number(record.sendMethod) === 1 && 'ems' || 'shunfeng'
// window.open(`https://www.kuaidi100.com/chaxun?com=${com}&nu=${record.postNo}`)
let url = ''
if (com === 'shunfeng' && record.contactMobile) {
url = `${window._CONFIG['lookExpressDomainURL']}?com=${ com }&nu=${ record.postNo }&phone=${ record.contactMobile }`
} else {
url = `${window._CONFIG['lookExpressDomainURL']}?com=${ com }&nu=${ record.postNo }`
}
window.open(url, '_blank')
},
/*
* 当前时间是否超过会议报名时间
* */
compareCurrentTime,
/*
* 通过会议id获取会议性情
* */
queryMeetingInfoById(id) {
return new Promise(resolve => {
let result = {}
getMeetInfoById({id}).then(res => {
if (res.success) {
result = res.result
}
}).finally(() => {
resolve(result)
})
})
},
/*
* 会议类型 1 工作组会议 2 标协会议 3国际研讨会 4 其他会议
* */
generateMeetingType(val) {
switch (val + '') {
case '1':
return '工作组会议'
case '2':
switch (this.model.tbMeetingType + '') {
case '1':
return '标协会议-标准宣贯'
case '2':
return '标协会议-培训会'
case '3':
return '标协会议-信息交流会'
}
break
// return '标协会议'
case '3':
return '国际研讨会'
case '4':
return '其他会议'
case '5':
return '分标委会议'
case '6':
return '理事会会议'
default:
return '其他会议'
}
},
goSignUpPage() {
let url = `${window._CONFIG['singInQRCodHref']}?id=${this.model.id}`
window.open(url, '_blank')
},
uploadFileFunc() {
this.$refs.fileUploadModal.add()
},
// 更新显示页面的数据
refreshData() {
console.log('---------refreshData--------')
this.$emit('refresh-data', this.model.situationId)
}
}
}
</script>
<style scoped lang="less">
.info {
.ant-col {
span {
display: inline-block;
word-break: keep-all;
white-space: nowrap;
max-width: calc(100% - 100px);
overflow: hidden;
text-overflow: ellipsis;
}
}
}
//会议内容、备注的样式
.info-textarea {
display: flex;
label {
flex-shrink: 0;
}
}
.flex-col {
.ant-col {
display: flex;
}
label {
flex-shrink: 0;
}
}
.ant-row {
margin: 12px;
}
h3 {
position: relative;
}
.label {
min-width: 145px;
color: #666;
}
.contract-num {
color: #42b983;
cursor: pointer;
}
h3.title::before {
position: absolute;
top: 4px;
left: -10px;
content: "";
height: 20px;
width: 3px;
background: #069f99;
}
/* 到账信息 */
.payment-info {
margin-bottom: 14px;
&-title {
text-align: center;
font-size: 14px;
height: 35px;
line-height: 35px;
letter-spacing: 1px;
color: #fff;
background: #a2e6e4;
}
&-content {
color: #424242;
//background: #efefef;
padding: 5px;
padding-left: 10px;
border: 1px solid #ccc;
border-top: none;
}
}
/* 到账信息 */
.payment-info {
margin-bottom: 14px;
&-box {
border: 1px solid #ccc;
}
&-title {
text-align: center;
font-size: 14px;
height: 35px;
line-height: 35px;
letter-spacing: 1px;
color: #fff;
background: #a2e6e4;
}
&-content {
color: #424242;
//background: #efefef;
padding: 5px;
padding-left: 10px;
//border: 1px solid #ccc;
border-top: none;
}
}
/* 开票邮寄信息 */
.wrap-table {
border: 1px solid #ccc;
border-bottom: none;
}
/deep/ .ant-table-thead {
tr > th {
color: #fff;
background: #a2e6e4;
border: none;
}
}
/deep/ .ant-table-tbody {
tr > td {
border: none;
border-bottom: 1px solid #ccc;
}
}
.payment-qrcode-img {
width: 100px;
height: 100px
}
// 查看 开票邮寄信息
.logistics-info {
position: relative;
.wrap-table.hide {
height: 0;
display: none;
transition: all 0.5s ease-out;
}
.wrap-table {
transition: all 0.5s ease-out;
}
}
.collapse-span {
cursor: pointer;
color: #069f99 !important;
line-height: 24px;
display: inline-block;
position: absolute;
right: 0;
top: 0;
}
/deep/ .ant-empty-normal {
padding: 0;
margin: 0;
}
// 多个酒店联系人及手机号 换行显示
.mul-row-row {
display: flex;
clear: both;
}
.mul-row-content {
display: block;
.content {
display: block;
}
}
.m-l-10 {
margin-left: 10px;
}
.upload-div{
margin-bottom: 10px;
}
.block-span {
display: block;
}
</style>