Files
income_payments_client/src/views/incomePayments/meetManage/Attendance.vue
T
2021-10-12 13:40:10 +08:00

840 lines
32 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>
<div>
<page-header-title :is-level-one="false" :level-two-title="$route.query.meetingName"></page-header-title>
<a-card :bordered="false">
<div class="part-title">
<div class="part-title-text">会议信息</div>
</div>
<a-row>
<a-col :xxl="8" :xl="12" :sm="24">
<label class="label">会议名称:</label><span>{{ currentMeetingInfo.meetingName }}</span>
</a-col>
<a-col :xxl="8" :xl="12" :sm="24">
<label>会议类型:</label><span>{{ meetingType }}</span>
</a-col>
<!--标协会议类型-->
<a-col :xxl="8" :xl="12" :sm="24" v-show="currentMeetingInfo.meetingType === '2' ">
<label>标协会议类型:</label><span>{{ tbMeetingType }}</span>
</a-col>
<a-col :xxl="8" :xl="12" :sm="24">
<label>负责人:</label><span>{{ currentMeetingInfo.directorName }}</span>
</a-col>
<!--工作组会议-->
<a-col :xxl="8" :xl="12" :sm="24" v-show="currentMeetingInfo.meetingType === '1' ">
<label>工作组:</label><span>{{ currentMeetingInfo.workingGroupName }}</span>
</a-col>
<a-col :xxl="8" :xl="12" :sm="24">
<label>手机号:</label><span>{{ currentMeetingInfo.directorPhone }}</span>
</a-col>
<a-col :xxl="8" :xl="12" :sm="24">
<label>召开时间:</label><span>{{ currentMeetingInfo.startTime + '~' + currentMeetingInfo.endTime }}</span>
</a-col>
<a-col :xxl="8" :xl="12" :sm="24">
<label>年份:</label><span>{{ currentMeetingInfo.particularYear }}</span>
</a-col>
<a-col :xxl="8" :xl="12" :sm="24">
<label>报名截止时间:</label><span>{{ currentMeetingInfo.registerDeadline }}</span>
</a-col>
<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>
<a-col :xxl="8" :xl="12" :sm="24">
<label>预计参加人数:</label><span>{{ currentMeetingInfo.estimatedNumber }}</span>
</a-col>
<a-col :xxl="8" :xl="12" :sm="24" v-show="currentMeetingInfo.meetingType === '2' ">
<label>酒店名称:</label><span>{{ currentMeetingInfo.hotelName }}</span>
</a-col>
<a-col :xxl="8" :xl="12" :sm="24" v-show="currentMeetingInfo.meetingType === '2' ">
<label>酒店地址:</label><span>{{ currentMeetingInfo.hotelAddress }}</span>
</a-col>
<!-- 国际研讨会的邀请码-->
<a-col :xxl="8" :xl="12" :sm="24" v-show="currentMeetingInfo.meetingType ==='3' ">
<label>VIP邀请码:</label><span>{{ currentMeetingInfo.vipInvitationCode }}</span>
</a-col>
<a-col :xxl="8" :xl="12" :sm="24" v-show="currentMeetingInfo.meetingType ==='3' ">
<label>演讲嘉宾邀请码:</label><span>{{ currentMeetingInfo.speakerInvitationCode }}</span>
</a-col>
<a-col :xxl="8" :xl="12" :sm="24" v-show="currentMeetingInfo.meetingType ==='3' ">
<label>特邀嘉宾邀请码:</label><span>{{ currentMeetingInfo.guestInvitationCode }}</span>
</a-col>
<a-col :xxl="8" :xl="12" :sm="24" v-show="currentMeetingInfo.meetingType ==='3' ">
<label>合作伙伴邀请码:</label><span>{{ currentMeetingInfo.cooperativeInvitationCode }}</span>
</a-col>
<a-col :xxl="8" :xl="12" :sm="24">
<label>会议通知:</label><span v-if="currentMeetingInfo.meetingFiles"><preview-file
:file-id="currentMeetingInfo.meetingFiles"></preview-file></span>
</a-col>
<a-col :xxl="8" :xl="12" :sm="24">
<label>报名链接:</label><span>{{ signUpHerfUrl }}</span>
</a-col>
<a-col :xxl="8" :xl="12" :sm="24">
<label>报名二维码:</label><img class="qr-code" :src="signUpQRCode" alt="报名二维码"/><i class="copy primary-color"
@click="copy(signUpHerfUrl)">复制</i>
</a-col>
<a-col :xxl="8" :xl="12" :sm="24">
<label>签到二维码:</label><img class="qr-code" :src="signInQRCode" alt="签到二维码"/>
<!-- <i class="copy primary-color" @click="copy(signUpHerfUrl)">复制</i>-->
</a-col>
<a-col :xxl="8" :xl="12" :sm="24" style="display:flex;">
<label>收款二维码:</label>
<j-image-upload :return-id="true" v-if="currentMeetingInfo.paymentQrCode"
v-model="currentMeetingInfo.paymentQrCode" disabled></j-image-upload>
</a-col>
</a-row>
<a-row v-show="currentMeetingInfo.meetingType === '2' ">
<label class="label">酒店联系人及手机号:</label><span class="content"
v-for="(item,index) of currentMeetingInfo.hotelContactsList"
:key="index">{{
item.hotelContacts + ':' + item.hotelContactsPhone + ' '
}}</span>
</a-row>
<a-row>
<label class="label">会议内容:</label><span class="content">{{ currentMeetingInfo.meetingContent }}</span>
</a-row>
<a-row>
<label class="label">备注:</label><span class="content">{{ currentMeetingInfo.remark }}</span>
</a-row>
<div class="part-title">
<div class="part-title-text">参会人员信息</div>
</div>
<!-- 查询区域 -->
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="参会单位">
<a-input placeholder="请输入参会单位" v-model="queryParam.companyName"></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.companyContactName"></a-input>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="审核">
<j-dict-select-tag v-model="queryParam.checkResult" placeholder="请选择"
dictCode="signup_status"/>
</a-form-item>
</a-col>
<!-- 只有工作组会议与分标委会议才有审核信息-->
<a-col :xl="6" :lg="7" :md="8" :sm="24"
v-show="currentMeetingInfo.meetingType === '1' || currentMeetingInfo.meetingType === '5' ">
<a-form-item label="审核报名信息">
<j-dict-select-tag v-model="queryParam.checkSingInResult" placeholder="请选择"
dictCode="signup_status"/>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="签到">
<j-dict-select-tag v-model="queryParam.checkIn" placeholder="请选择"
dictCode="signin_status"/>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="来款年份">
<j-year-date style="width:100%" placeholder="请选择来款年份" v-model="queryParam.particularYear"></j-year-date>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24">
<a-form-item label="身份">
<j-dict-select-tag v-model="queryParam.identity" placeholder="请选择身份"
dictCode="meet_identify_type"/>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="7" :md="8" :sm="24"
v-if="queryParam.identity === '1' && currentMeetingInfo.meetingType === '3' ">
<a-form-item label="嘉宾类型">
<j-dict-select-tag v-model="queryParam.guestType" placeholder="请选择嘉宾类型"
dictCode="guest_type"/>
</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 -->
<!-- 操作按钮区域 -->
<div class="table-operator">
<!-- 变更去掉了此功能 暂时注释 2021-09-16 -->
<!-- <a-button type="primary" icon="import" @click="importParticipant">导入参会人</a-button>-->
<a-button type="primary" icon="plus" @click="addParticipant" v-has:[authorCode.add]="'attendance:add'">添加参会人</a-button>
<a-button type="primary" icon="download" @click="handleExportXls('会员项目')" v-has:[authorCode.export]="'attendance:export'">导出
</a-button>
<a-button type="danger" icon="delete" @click="batchDel" v-has:[authorCode.batchDel]="'attendance:batchDel'">批量删除</a-button>
<!--当会议费用为0不需要合并开票 -->
<!-- 变更将此功能添加到到账开票了 暂时注释 2021-09-16 -->
<!-- <a-button type="primary" @click="batchInvoice" v-show="currentMeetingInfo.meetingCosts !== 0">合并开票</a-button>-->
<!--只有国际研讨会才会有设置对接人-->
<a-button type="primary" @click="batchSetDocker" v-if="currentMeetingInfo.meetingType === '3' "
v-has="'internalMeetingSituation:batchSetDocker'">设置对接人
</a-button>
</div>
<!-- table区域-begin -->
<div>
<a-table
ref="table"
size="middle"
bordered
rowKey="id"
:scroll="{x:true}"
:columns="columns"
:dataSource="dataSource"
:pagination="ipagination"
:loading="loading"
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
class="j-table-force-nowrap"
@change="handleTableChange">
<template slot="htmlSlot" slot-scope="text,record">
<div class="primary-color" @click="openDetailModal(record)">{{ text }}</div>
</template>
<template slot="person" slot-scope="text,record">
<!--缴费方式为付款 可以先签到后付款 需要添加标识-->
<div
v-if="record.payMode === 1 && record.checkIn === 1 && (record.paymentMethod !== '' || record.paymentMethod !== null)"
class="primary-color" @click="toSignUpDetail(record)">{{ text }}<span style="color: red">(参会未付款)</span>
</div>
<div v-else class="primary-color" @click="toSignUpDetail(record)">{{ text }}</div>
</template>
<template slot="text" slot-scope="text">
<j-ellipsis v-if="text" :value="text" :length="20"></j-ellipsis>
<span v-else></span>
</template>
<!-- 打包、需要发票、到账、开票、邮寄状态-->
<template slot="status" slot-scope="text,record">
<status-slot :statu-obj="record" :status-no="text" :status-type="true"></status-slot>
</template>
<template slot="status-pack" slot-scope="text,record">
<status-slot :statu-obj="record" :status-no="text"></status-slot>
</template>
<!-- 开票-->
<template slot="status-bill" slot-scope="text,record">
<status-slot :statu-obj="record" :status-no="text" :status-type="true" status-key="bill"></status-slot>
</template>
<!-- 邮寄-->
<template slot="status-mail" slot-scope="text,record">
<status-slot :statu-obj="record" :status-no="text" :status-type="true" status-key="mail"></status-slot>
</template>
<span slot="action" slot-scope="text, record" class="action-span-cell">
<!-- 只有缴费方式为汇款并且上传了汇款凭证的的才会有审核按钮-->
<a @click="handleAudit(record)" v-if="record.payMode === 1 && record.paymentRecord"
v-has:[authorCode.auditRecord]="'attendance:auditCredentials'">审核凭证</a>
<!-- 只有工作组会议与分标委会议才有审核报名信息-->
<a @click="handleAuditSignUp(record)"
v-show="(currentMeetingInfo.meetingType === '1' || currentMeetingInfo.meetingType === '5') && record.registerCheckResult !== 1 "
v-has:[authorCode.auditSignUpInfo]="'attendance:auditSignUp'">审核报名信息</a>
<a @click="handleEdit(record)" v-has:[authorCode.edit]="'attendance:edit'">编辑</a>
<!--删除参会人需要判断改参会人是否与合同关联-->
<a @click="handleDelete(record.id)" v-has:[authorCode.delete]="'attendance:delete'">删除</a>
</span>
</a-table>
</div>
<!-- 导入参会人-->
<import-participant-modal ref="importParticipantModal" @ok="modalFormOk"></import-participant-modal>
<!-- 批量开票-->
<batch-invocie-modal ref="batchInvoiceModal" @ok="modalFormOk"></batch-invocie-modal>
<!--设置对接人-->
<batch-set-docker-modal ref="batchSetDockerModal" @ok="modalFormOk"></batch-set-docker-modal>
<!--详情-->
<project-detail-modal ref="projectDetailModal"></project-detail-modal>
<!--审核-->
<audit-modal ref="auditModal" @ok="modalFormOk"></audit-modal>
</a-card>
</div>
</template>
<script>
import {JeroListMixin} from '@/mixins/JeroListMixin'
import {mixinDevice} from '@/utils/mixin'
import {getMeetInfoById, createQcCode} from '@api/incomeMeetingApi'
import JYearDate from '@comp/jero/JYearDate'
import JDictSelectTag from '@comp/dict/JDictSelectTag'
import ImportParticipantModal from '@views/incomePayments/meetManage/modules/ImportParticipantModal'
import BatchInvocieModal from '@views/incomePayments/meetManage/modules/BatchInvocieModal'
import BatchSetDockerModal from '@views/incomePayments/meetManage/modules/BatchSetDockerModal'
import ProjectDetailModal from '@comp/ProjectDetailModal'
import AuditModal from '@views/incomePayments/meetManage/modules/AuditModal'
import PageHeaderTitle from '@comp/layouts/PageHeaderTitle'
import StatusSlot from '@comp/tools/StatusSlot'
import PreviewFile from '@comp/jero/PreviewFile'
import JImageUpload from '@comp/jero/JImageUpload'
export default {
name: 'Attendance',
mixins: [JeroListMixin, mixinDevice],
components: {
JYearDate,
JDictSelectTag,
ImportParticipantModal,
BatchInvocieModal,
BatchSetDockerModal,
ProjectDetailModal,
AuditModal,
PageHeaderTitle,
StatusSlot,
PreviewFile,
JImageUpload
},
data() {
return {
description: '参会情况',
columns: [
{
title: '序号',
dataIndex: '',
key: 'rowIndex',
width: 60,
align: 'center',
customRender: function (t, r, index) {
return parseInt(index) + 1
}
},
{
title: '参会单位',
align: 'center',
dataIndex: 'companyName',
scopedSlots: {customRender: 'htmlSlot'},
width: 180
},
{
title: '参会人员',
align: 'center',
dataIndex: 'companyContactName',
width: 160,
scopedSlots: {customRender: 'person'},
},
{
title: '应收金额',
align: 'center',
dataIndex: 'amountReceivable',
width: 100
},
{
title: '实收金额',
align: 'center',
dataIndex: 'paidAmount',
width: 120
},
{
title: '缴费方式',
align: 'center',
dataIndex: 'payMode_dictText',
width: 120
},
{
title: '是否签到',
align: 'center',
dataIndex: 'checkIn_dictText',
width: 100
},
{
title: '打包',
align: 'center',
dataIndex: 'pack',
width: 100,
scopedSlots: {customRender: 'status-pack'}
},
{
title: '需要发票',
align: 'center',
dataIndex: 'needInvoice',
width: 100,
scopedSlots: {customRender: 'status-pack'}
},
{
title: '到账',
align: 'center',
width: 100,
dataIndex: 'inAccount',
scopedSlots: {customRender: 'status'}
},
{
title: '开票',
align: 'center',
width: 100,
dataIndex: 'makeInvoice',
scopedSlots: {customRender: 'status-bill'}
},
{
title: '邮寄',
align: 'center',
width: 100,
dataIndex: 'mail',
scopedSlots: {customRender: 'status-mail'}
},
{
title: '对接人',
align: 'center',
dataIndex: 'dockName'
},
{
title: '操作',
align: 'center',
fixed: 'right',
width: 300,
scopedSlots: {customRender: 'action'}
}
],
// 权限编码
authorCode:{
},
// 其他会议的参会情况的权限编码
otherMeetingCode:{
search:'otherMeetingSituation:search',
add:'otherMeetingSituation:add',
export:'otherMeetingSituation:export',
batchDel:'otherMeetingSituation:batchDel',
edit:'otherMeetingSituation:edit',
delete:'otherMeetingSituation:delete',
auditRecord:'otherMeetingSituation:auditCredentials',
auditSignUpInfo:'otherMeetingSituation:auditSignUp'
},
// 分标委会议的参会情况权限编码
committeeMeetingCode:{
search:'committeeMeetingSituation:search',
add:'committeeMeetingSituation:add',
export:'committeeMeetingSituation:export',
batchDel:'committeeMeetingSituation:batchDel',
edit:'committeeMeetingSituation:edit',
delete:'committeeMeetingSituation:delete',
auditRecord:'committeeMeetingSituation:auditCredentials',
auditSignUpInfo:'committeeMeetingSituation:auditSignUp'
},
// 工作组会议的参会情况的权限编码
workGroupMeetingCode:{
search:'workGroupMeetingSituation:search',
add:'workGroupMeetingSituation:add',
export:'workGroupMeetingSituation:export',
batchDel:'workGroupMeetingSituation:batchDel',
edit:'workGroupMeetingSituation:edit',
delete:'workGroupMeetingSituationS:delete',
auditRecord:'workGroupMeetingSituation:auditCredentials',
auditSignUpInfo:'workGroupMeetingSituation:auditSignUp'
},
// 国际研讨会的参会情况的权限编码
internalMeetingCode:{
search:'internalMeetingSituation:search',
add:'internalMeetingSituation:add',
export:'internalMeetingSituation:export',
batchDel:'internalMeetingSituation:batchDel',
edit:'internalMeetingSituation:edit',
delete:'internalMeetingSituation:delete',
auditRecord:'internalMeetingSituation:auditCredentials',
auditSignUpInfo:'internalMeetingSituation:auditSignUp',
},
// 标协会议的参会情况的权限编码
standardsMeetingCode:{
search:'standardsMeetingSituation:search',
add:'standardsMeetingSituation:add',
export:'standardsMeetingSituation:export',
batchDel:'standardsMeetingSituation:batchDel',
edit:'standardsMeetingSituation:edit',
delete:'standardsMeetingSituation:delete',
auditRecord:'standardsMeetingSituation:auditCredentials',
auditSignUpInfo:'standardsMeetingSituation:auditSignUp'
},
disableMixinCreated: true,
// url: {
// list: '/meeting/payMeetingSituation/page',
// delete: '/meeting/payMeetingSituation/delete',
// deleteBatch: '/meeting/payMeetingSituation/deleteBatch',
// exportXlsUrl: '/meeting/payMeetingSituation/exportXls',
// importExcelUrl: '/meeting/payMeetingSituation/importExcel'
// },
// 其他会议的url
otherMeetingUrl:{
list: '/meeting/ohterMeetingSituation/page',
delete: '/meeting/ohterMeetingSituation/delete',
deleteBatch: '/meeting/ohterMeetingSituation/deleteBatch',
exportXlsUrl: '/meeting/ohterMeetingSituation/exportXls',
importExcelUrl: '/meeting/ohterMeetingSituation/importExcel'
},
// 分标委会议的url
committeeMeetingUrl:{
list: '/meeting/committeeMeetingSituation/page',
delete: '/meeting/committeeMeetingSituation/delete',
deleteBatch: '/meeting/committeeMeetingSituation/deleteBatch',
exportXlsUrl: '/meeting/committeeMeetingSituation/exportXls',
importExcelUrl: '/meeting/committeeMeetingSituation/importExcel'
},
// 国际研讨会的url
internalMeetingUrl:{
list: '/meeting/internalMeetingSituation/page',
delete: '/meeting/internalMeetingSituation/delete',
deleteBatch: '/meeting/internalMeetingSituation/deleteBatch',
exportXlsUrl: '/meeting/internalMeetingSituation/exportXls',
importExcelUrl: '/meeting/internalMeetingSituation/importExcel'
},
// 标协会议的url
standardsMeetingUrl:{
list: '/meeting/standardsMeetingSituation/page',
delete: '/meeting/standardsMeetingSituation/delete',
deleteBatch: '/meeting/standardsMeetingSituation/deleteBatch',
exportXlsUrl: '/meeting/standardsMeetingSituation/exportXls',
importExcelUrl: '/meeting/standardsMeetingSituation/importExcel'
},
// 工作组会议的url
workGroupMeetingUrl:{
list: '/meeting/workGroupMeetingSituation/page',
delete: '/meeting/workGroupMeetingSituation/delete',
deleteBatch: '/meeting/workGroupMeetingSituation/deleteBatch',
exportXlsUrl: '/meeting/workGroupMeetingSituation/exportXls',
importExcelUrl: '/meeting/workGroupMeetingSituation/importExcel'
},
// 当前的会议信息详情
currentMeetingInfo: {},
meetingType: '',
// 报名二维码
signUpQRCode: '',
// 签到二维码
signInQRCode: '',
// 收款二维码
payMentQRCode: '',
// 会议费用
meetingCostBool: false
}
},
created() {
// 为不同会议的参会情况去设置不同的权限编码
this.setCodeByMeetingType(this.$route.query.meetingType)
// 获取会议详情
const param = {
id: this.$route.query.id
}
getMeetInfoById(param).then(res => {
if (res.success) {
console.log(res.result)
this.currentMeetingInfo = Object.assign({}, res.result)
// 转化会议类型
this.meetingType = this.generateMeetingType(this.currentMeetingInfo.meetingType)
// 列表表头只有国际研讨会有对接人字段
if (this.currentMeetingInfo.meetingType !== '3') {
let index = this.columns.findIndex(item => item.dataIndex === 'dockName')
this.columns.splice(index, 1)
}
// 计算会议费用 会议费用为0 添加参会人不显示邮寄信息与缴费信息 标协会议
if (this.currentMeetingInfo.meetingType === '2' && this.currentMeetingInfo.meetingCostsVip) {
// 标协会员的费用
let vipCost = this.currentMeetingInfo.meetingCostsVip
// 判断标协会员的费用是否是0
let flagVip = vipCost === 0 || vipCost === '0.00'
let cost = this.currentMeetingInfo.meetingCosts
// 判断普通会员的费用是否是0
let flag = cost === 0 || cost === '0.00'
if (flag && flagVip) {
// 说明会议费用为0
this.meetingCostBool = true
} else {
this.meetingCostBool = false
}
// 其他会议值判断一个费用
} else if (this.currentMeetingInfo.meetingCosts) {
// 判断其他会议
let cost = this.currentMeetingInfo.meetingCosts
// 判断普通会员的费用是否是0
let flag = cost === 0 || cost === '0.00'
if (flag) {
this.meetingCostBool = true
} else {
this.meetingCostBool = false
}
}
}
})
this.filters.meetingId = this.$route.query.id
this.loadData(1)
},
async mounted() {
// 生成会议报名二维码
this.signUpQRCode = await this.generateQRCode(this.signUpHerfUrl)
// 生成签到二维码
this.signInQRCode = await this.generateQRCode(this.signInUrl)
},
computed: {
// 标协会议类型
tbMeetingType() {
if (this.currentMeetingInfo.tbMeetingType === '1') {
return '标准宣贯'
}
if (this.currentMeetingInfo.tbMeetingType === '2') {
return '学习培训'
} else {
return ''
}
},
// 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
}
},
// 报名链接
signUpHerfUrl() {
return `${window._CONFIG['singUpQRCodeURL']}?id=${this.$route.query.id}`
},
// 签到地址
signInUrl() {
return `${window._CONFIG['signInUrl']}?id=${this.$route.query.id}`
}
},
methods: {
/*
* 审核
* */
handleAudit(record) {
this.$refs.auditModal.open(record, false)
},
/*
* 审核报名信息
* */
handleAuditSignUp(record) {
this.$refs.auditModal.title = '审核报名信息'
this.$refs.auditModal.open(record, true)
},
/*
* 导入参会人
* */
importParticipant() {
this.$refs.importParticipantModal.open()
this.$refs.importParticipantModal.title = '导入参会人'
},
/*
* 添加参会人
* */
addParticipant() {
this.$router.push({
path: '/incomePayments/meetManage/SignUpInfoEdit',
query: {
meetingType: this.currentMeetingInfo.meetingType,
meetingId: this.$route.query.id,
costBool: this.meetingCostBool
}
})
},
/*
* 编辑参会人
* */
handleEdit(record) {
this.$router.push({
path: '/incomePayments/meetManage/SignUpInfoEdit',
query: {
id: record.id,
meetingId: this.$route.query.id,
meetingType: this.currentMeetingInfo.meetingType,
costBool: this.meetingCostBool
}
})
},
/*
* 合并开票
* */
batchInvoice() {
let meetingId = this.$route.query.id
if (this.selectionRows.length === 0) {
this.$message.warn('请选择一条记录')
return
}
// 应收金额为0 不需要发票 打包 都不可以开发票
console.log(this.selectionRows)
// 只能选择相同的单位进行合并开票
if (this.selectionRows.length > 0) {
let initName = this.selectionRows[0].companyId
// 单位判重
let flag = this.selectionRows.some(item => {
return item.companyId !== initName
})
// 身份为嘉宾、内部企业和缴费方式为打包和不需要发票的不支持开票
let moneyFlag = this.selectionRows.some(item => {
return item.amountReceivable === '0.00' || item.needInvoice === 0 || item.payMode === 3
})
if (flag) {
// flag为true 说明有单位不一样
this.$message.warn('请选择同一企业的参会人进行开票')
return
} else if (moneyFlag) {
this.$message.warn('身份为嘉宾、内部企业和缴费方式为打包和不需要发票的不支持开票')
return
} else {
// 打开模态框
this.$refs.batchInvoiceModal.open(this.selectionRows, meetingId, this.selectedRowKeys)
}
}
},
/*
* 设置对接人 只有研讨会 会议才可以设置
* */
batchSetDocker() {
if (this.selectionRows.length === 0) {
this.$message.warn('请选择一条记录')
return
}
// let flag = this.selectionRows.some(item => {
// return item.meetingType !== 3
// })
let flag = this.currentMeetingInfo.meetingType !== '3'
if (flag) {
this.$message.warn('只有研讨会议才可设置对接人')
return
} else {
// 打开模态框
this.$refs.batchSetDockerModal.open(this.selectedRowKeys)
}
},
/*
* 打开项目详情
* */
openDetailModal(record) {
this.$refs.projectDetailModal.open(record)
},
/*
* 会议类型 1 工作组会议 2 标协会议 3国际研讨会 4 其他会议
* */
generateMeetingType(val) {
switch (val) {
case '1':
return '工作组会议'
case '2':
return '标协会议'
case '3':
return '国际研讨会'
case '4':
return '其他会议'
case '5':
return '分标委会议'
default:
return '其他会议'
}
},
/*
* 生成二维码
* */
generateQRCode(params) {
return new Promise(resolve => {
let code = ''
createQcCode({contact: params}).then(res => {
if (res.success) {
code = res.result
} else {
console.error('生成二维码失败')
}
}).finally(() => {
resolve(code)
})
})
},
/*
* 去报名详情
* */
toSignUpDetail(record) {
this.$router.push({
path: '/incomePayments/meetManage/SignUpInfoDetail',
query: {id: record.id, meetingType: this.currentMeetingInfo.meetingType,}
})
},
/*
* 复制地址
* */
copy(data) {
// 存储传递过来的数据
let OrderNumber = data
// 创建一个input 元素
// createElement() 方法通过指定名称创建一个元素
let newInput = document.createElement('input')
// 讲存储的数据赋值给input的value值
newInput.value = OrderNumber
// appendChild() 方法向节点添加最后一个子节点。
document.body.appendChild(newInput)
// 选中input元素中的文本
// select() 方法用于选择该元素中的文本。
newInput.select()
// 执行浏览器复制命令
// execCommand方法是执行一个对当前文档,当前选择或者给出范围的命令
document.execCommand('Copy')
// 清空输入框
newInput.remove()
this.$message.success('复制成功')
},
/*
* 通过会议类型设置权限编码
* type 会议类型
* */
setCodeByMeetingType(type){
switch (type){
case '1':this.authorCode = Object.assign({},this.workGroupMeetingCode);break
case '2':this.authorCode = Object.assign({},this.standardsMeetingCode);break
case '3':this.authorCode = Object.assign({},this.internalMeetingCode);break
case '4':this.authorCode = Object.assign({},this.otherMeetingCode);break
case '5':this.authorCode = Object.assign({},this.committeeMeetingCode);break
}
}
}
}
</script>
<style scoped lang="less">
@import '~@assets/less/common.less';
.ant-row {
line-height: 3;
.ant-col {
label {
color: #999;
}
span {
color: black;
}
}
}
.label {
color: #999999;
}
.content {
color: black;
}
.qr-code {
width: 100px;
height: 100px;
}
.copy {
font-style: normal;
cursor: pointer;
}
</style>