[update]-标协会议token换成变量;标协会议的增加

This commit is contained in:
fengchenchen
2021-12-14 20:53:35 +08:00
parent c5a40fd92c
commit b03ce57e35
19 changed files with 784 additions and 75 deletions
+7
View File
@@ -3,10 +3,17 @@
*/
window._CONFIG = {};
window._CONFIG["domianURL"] = "/jero-boot"; // 路由转发 devServer
window._CONFIG["domianWebSocketURL"] = "http://localhost:8080/jero-boot";
// 单点登录地址
window._CONFIG["staticDomainURL"] = window._CONFIG["domianURL"] + "/sys/common/download";
window._CONFIG["pdfDomainURL"] = window._CONFIG["domianURL"] + "/sys/common/pdf/pdfPreviewIframe";
window._CONFIG["casPrefixUrl"] = "http://cas.example.org:8443/cas";
// 预览文件地址
window._CONFIG["onlinePreviewDomainURL"] = "http://127.0.0.1:8012/onlinePreview";
// 路由转发 -会员系统的路由转发前缀
window._CONFIG["memberURL"] = "/memberApi";
// 会员系统的静态文件的地址
window._CONFIG["memberStaticDomainURL"] = window._CONFIG["memberURL"] + "/sys/common/static";
+3 -3
View File
@@ -4,13 +4,13 @@
window._CONFIG = {};
window._CONFIG["domianURL"] = "/jero-boot"; // 路由转发 devServer
// websocket连接的地址
window._CONFIG["domianWebSocketURL"] = "http://localhost:21824/jero-boot";
window._CONFIG["domianWebSocketURL"] = "http://10.0.10.78:21824/jero-boot";
// 单点登录地址
window._CONFIG["staticDomainURL"] = window._CONFIG["domianURL"] + "/sys/common/download";
window._CONFIG["pdfDomainURL"] = window._CONFIG["domianURL"] + "/sys/common/pdf/pdfPreviewIframe";
window._CONFIG["casPrefixUrl"] = "http://cas.example.org:8443/cas";
// 预览文件地址
window._CONFIG["onlinePreviewDomainURL"] = "http://127.0.0.1:8012/onlinePreview";
window._CONFIG["onlinePreviewDomainURL"] = "http://10.0.10.78:8012/onlinePreview";
// 会议管理报名二维码地址
window._CONFIG['singUpQRCodeURL'] = 'http://localhost:3000/signupentrance'
@@ -19,4 +19,4 @@ window._CONFIG['singUpQRCodeURL'] = 'http://localhost:3000/signupentrance'
window._CONFIG["memberURL"] = "/memberApi";
// 会员系统的静态文件的地址
window._CONFIG["memberStaticDomainURL"] = window._CONFIG["memberURL"] + "/sys/common/static";
window._CONFIG["memberDomianWebSocketURL"] = "http://127.0.0.1:9000/memberApi";
window._CONFIG["memberDomianWebSocketURL"] = "http://10.0.10.78:9000/memberApi";
+2 -3
View File
@@ -15,9 +15,8 @@ const queryCommonProjectById = (param) => incomeGetAction('/project/payCommonPro
const previewPdf = (file) => {
// const url = `${window._CONFIG['memberURL']}/sys/common/static/${id}?type=view&${TokenKey}=${Vue.ls.get(ACCESS_TOKEN)}`
// return `${process.env.BASE_URL}pdfjs/web/viewer.html?file=` + encodeURIComponent(url) + '&.pdf'
// const token = Vue.ls.get(ACCESS_TOKEN)
// todo 先写死token
const token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2Mzk0NjEyMzcsInVzZXJuYW1lIjoiMGI4ZDQ2YTBiZTI0NGJlZGI5ZDI1Y2Y5ZmQ5OTc3MTcifQ.jKG-mtZ4VHS5BAFGayuwOJgBBzZTiKQc3bkbya2YTNA'
const token = Vue.ls.get(ACCESS_TOKEN)
// const token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2Mzk0NjEyMzcsInVzZXJuYW1lIjoiMGI4ZDQ2YTBiZTI0NGJlZGI5ZDI1Y2Y5ZmQ5OTc3MTcifQ.jKG-mtZ4VHS5BAFGayuwOJgBBzZTiKQc3bkbya2YTNA'
const fileFullUrl = `${window._CONFIG['memberDomianWebSocketURL']}/sys/common/download/${file.id}?token=${token}&fullfilename=${file.fileName}`
console.log(fileFullUrl, '$$$$$$$$')
let url = `${window._CONFIG['onlinePreviewDomainURL']}?url=${encodeURIComponent(fileFullUrl)}`
@@ -113,9 +113,9 @@ export default {
}
},
created() {
// const token = Vue.ls.get(ACCESS_TOKEN)
const token = Vue.ls.get(ACCESS_TOKEN)
//TODO 暂时将token写成固定值,后续再做动态
const token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2Mzk0NjEyMzcsInVzZXJuYW1lIjoiMGI4ZDQ2YTBiZTI0NGJlZGI5ZDI1Y2Y5ZmQ5OTc3MTcifQ.jKG-mtZ4VHS5BAFGayuwOJgBBzZTiKQc3bkbya2YTNA'
// const token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2Mzk0NjEyMzcsInVzZXJuYW1lIjoiMGI4ZDQ2YTBiZTI0NGJlZGI5ZDI1Y2Y5ZmQ5OTc3MTcifQ.jKG-mtZ4VHS5BAFGayuwOJgBBzZTiKQc3bkbya2YTNA'
this.headers = { 'X-Access-Token': token }
},
methods: {
+2 -1
View File
@@ -22,7 +22,8 @@ export const RangeDateMixin = {
}
// console.log(endValue.valueOf(),'endValue.valueOf()')
if(this.rangeDateFormat.begin === 'YYYY-MM-DD') {
return startValue.valueOf() > endValue.valueOf() + 86400000
// return startValue.valueOf() > endValue.valueOf() + 86400000
return startValue.valueOf() > endValue.valueOf()
} else {
return startValue.valueOf() > endValue.valueOf()
}
+2 -2
View File
@@ -100,9 +100,9 @@ const err = (error) => {
// request interceptor
service.interceptors.request.use(config => {
// const token = Vue.ls.get(ACCESS_TOKEN)
const token = Vue.ls.get(ACCESS_TOKEN)
//TODO 暂时将token写成固定值,后续再做动态
const token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2Mzk0NjEyMzcsInVzZXJuYW1lIjoiMGI4ZDQ2YTBiZTI0NGJlZGI5ZDI1Y2Y5ZmQ5OTc3MTcifQ.jKG-mtZ4VHS5BAFGayuwOJgBBzZTiKQc3bkbya2YTNA'
// const token = 'eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE2Mzk0NjEyMzcsInVzZXJuYW1lIjoiMGI4ZDQ2YTBiZTI0NGJlZGI5ZDI1Y2Y5ZmQ5OTc3MTcifQ.jKG-mtZ4VHS5BAFGayuwOJgBBzZTiKQc3bkbya2YTNA'
if (token) {
config.headers[ 'X-Access-Token' ] = token // 让每个请求携带自定义 token 请根据实际情况自行修改
}
+73 -36
View File
@@ -65,6 +65,35 @@
</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 )">
@@ -427,16 +456,18 @@
<!--会议资料begin-->
<section class="base-info">
<h3 class="title">会议资料</h3>
<a-row :gutter="24" class="flex-col">
<a-col :span="12">
<label>会议资料</label>
<span style="width: 100%"><preview-file style="width: 80%" :file-id="model.meetingData" :is-meeting-data-bool="true"></preview-file></span>
</a-col>
</a-row>
<file-table :file-id="model.meetingData" :is-meeting-data-bool="true"></file-table>
</section>
<!--会议资料end-->
<!--开票邮寄信息begin-->
<section class="payment-info">
<!--会议纪要begin-->
<section class="base-info">
<h3 class="title">会议纪要</h3>
<file-table :file-id="model.meetingMinute" :is-meeting-data-bool="false"></file-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>
@@ -447,32 +478,8 @@
</template>
<a-list v-else :data-source="[]"/>
</div>
</section>
</section>-->
<!--到账信息end-->
<!--开票邮寄信息begin-->
<section class="logistics-info">
<h3 class="title">开票邮寄信息</h3>
<div class="wrap-table">
<a-table
ref="table"
size="middle"
rowKey="id"
:scroll="{x:true}"
:pagination="false"
:columns="columns"
:dataSource="logisticsInfoList"
class="j-table-force-nowrap"
>
<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-->
<template slot="footer">
<a-button @click="handleCancel">关闭</a-button>
@@ -482,6 +489,7 @@
<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} from '@api/incomePaymentsApi'
@@ -541,7 +549,8 @@ export default {
components: {
PreviewFile,
JEllipsis,
JImageUpload
JImageUpload,
FileTable
},
props: {
// 是否是从会议点进来的 默认走消息
@@ -565,7 +574,9 @@ export default {
// 到账信息
paymentInfoList: [],
// 开票邮寄信息
logisticsInfoList: []
logisticsInfoList: [],
// 显示更多的开票邮寄信息
showMoreInfo: false
}
},
computed: {
@@ -833,4 +844,30 @@ h3.title::before {
width: 100px;
height: 100px
}
</style>
// 查看 开票邮寄信息
.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;
}
//.ant-table.hide{
// height: 0;
// display: none;
//}
}
.collapse-span {
cursor: pointer;
color: #069f99 !important;
line-height: 24px;
display: inline-block;
position: absolute;
right: 0;
top: 0;
}
</style>
+141
View File
@@ -0,0 +1,141 @@
<!--会议详情 里面写的 会议资料会议纪要 的表格显示-->
<template>
<div class="file-table">
<a-table
ref="table"
size="middle"
rowKey="id"
:scroll="{x:true}"
:pagination="false"
:columns="columns"
:dataSource="fileList"
class="j-table-force-nowrap"
>
<span slot="action" slot-scope="record" class="action-span-cell">
<a class="color-blue" @click="handleDownLoad(record)">下载</a>
<a class="color-blue" @click="handlePreview(record)">查看</a>
</span>
</a-table>
</div>
</template>
<script>
import Vue from 'vue'
import {ACCESS_TOKEN} from '@/store/mutation-types'
import {getFileInfo} from '@/api/api'
import {downloadFile} from '@api/manage'
const columns = [
{
title: '文件名',
align: 'center',
dataIndex: 'name'
},
{
title: '上传时间',
align: 'center',
dataIndex: 'createTime'
},
{
title: '操作',
align: 'center',
dataIndex: '',
scopedSlots: {customRender: 'action'}
}
]
export default {
name: 'FileTable',
props: {
/*
* 文件id
* */
fileId: {
type: String,
required: false
},
/* 是否是会议资料 会议资料有下载的限制 */
isMeetingDataBool:{
type:Boolean,
required: false,
default:false
}
},
data() {
return {
fileInfo: {},
fileList: [],
columns
}
},
mounted() {
this.getFileInfo(this.fileId)
},
watch: {
fileId: {
immediate: true,
handler(val) {
this.initFileList(val)
}
}
},
methods: {
/*
* 通过文件id获取文件的相关信息
* */
getFileInfo(id) {
return new Promise(resolve => {
let result = {}
getFileInfo({id: id}).then(res => {
if (res.success) {
result = res.result
}
}).finally(() => {
resolve(result)
})
})
},
/*
* 获取文件信息
* */
async initFileList(fileIds) {
if (fileIds) {
const fileList = []
let arr = fileIds.split(',')
for (let i = 0; i < arr.length; i++) {
let fileObj = {}
fileObj = await this.getFileInfo(arr[i])
fileList.push({id: fileObj.id, name: fileObj.fileName, createTime: fileObj.createTime})
}
this.fileList = [...fileList]
} else {
this.fileList = []
}
},
handleDownLoad(file) {
console.log(file)
if(this.isMeetingDataBool){
// 会议资料更换了接口
downloadFile(`sys/common/userDownload/${file.id}`, file.name)
}else {
downloadFile(`sys/common/download/${file.id}`, file.name)
}
},
handlePreview(file) {
if (file && file.id) {
const fileFullUrl = `${window._CONFIG['domianWebSocketURL']}/sys/common/download/${file.id}?token=${Vue.ls.get(ACCESS_TOKEN)}&fullfilename=${file.name}`
let url = `${window._CONFIG['onlinePreviewDomainURL']}?url=${encodeURIComponent(fileFullUrl)}`
// let url = `${window._CONFIG['onlinePreviewDomainURL']}?url=${encodeURIComponent(fileFullUrl)}`
window.open(url)
}
}
}
}
</script>
<style scoped lang="less">
.color-blue + .color-blue{
padding-left: 20px;
}
</style>
@@ -1,13 +1,20 @@
<!--信息交流会-->
<template>
<div>信息交流会</div>
<div class="main-box">
<meeting-list :standard-meeting-type="2"></meeting-list>
</div>
</template>
<script>
import MeetingList from './meeting/MeetingList'
export default {
name: 'InfoCommunicationMeeting'
name: 'InfoCommunicationMeeting',
components: {
MeetingList
},
}
</script>
<style scoped>
</style>
<style scoped lang="less">
@import '~@assets/less/common.less';
</style>
@@ -280,8 +280,10 @@ export default {
* */
getMemberInfo() {
// const url = this.url.detail + '?id=' + this.$route.query.id
// todo 暂时写死用户,后续在user等信息中调取
const url = this.url.detail + '?id=' + '1413419593870872578'
// 会员用户id,后续在user等信息中调取
const memberId = this.$store.getters.userInfo.memberId
// const url = this.url.detail + '?id=' + '1413419593870872578'
const url = this.url.detail + '?id=' + memberId
// 会员剩余天数
this.pageType = this.$route.query.pageType
getAction(url).then(res => {
@@ -136,8 +136,8 @@ export default {
begin: 'YYYY-MM-DD hh:mm:ss',
end: 'YYYY-MM-DD hh:mm:ss'
},
// todo 目前先固定id
userId: '1413419593870872578',
// 会员用户id
userId: this.$store.getters.userInfo.memberId,
description: '证书缴费信息表管理页面',
// 表头
columns: [],
@@ -155,8 +155,8 @@ export default {
begin: 'YYYY-MM-DD hh:mm:ss',
end: 'YYYY-MM-DD hh:mm:ss'
},
// todo 目前先固定id
userId: '1413419593870872578',
// 会员用户id
userId: this.$store.getters.userInfo.memberId,
isAdmin: false,
description: '缴费信息表管理页面',
// 表头
@@ -288,8 +288,7 @@ export default {
},
data() {
return {
// todo 目前先固定id
userId: '1413419593870872578',
userId: this.$store.getters.userInfo.memberId,
// userName: JSON.parse(localStorage.getItem('pro__Login_Userinfo')).value.realname,
userName: '',
form: this.$form.createForm(this),
@@ -514,8 +514,8 @@ export default {
},
data() {
return {
//todo 当前登录的会员账户在标协系统中的id 目前先写死zoey 后期通过接口调用
userId: '1413419593870872578',
// 会员用户id
userId: this.$store.getters.userInfo.memberId,
isMember: true,
form: this.$form.createForm(this),
title: '操作',
@@ -1,13 +1,26 @@
<!--标协会员-标准宣贯-->
<template>
<div>标准宣贯</div>
<div class="main-box standard-publicizing-implementation">
<meeting-list></meeting-list>
</div>
</template>
<script>
import MeetingList from './meeting/MeetingList'
export default {
name: 'StandardPublicizingImplementation'
name: 'StandardPublicizingImplementation',
components: {
MeetingList
},
data() {
return {}
}
}
</script>
<style scoped>
<style scoped lang="less">
@import '~@assets/less/common.less';
</style>
</style>
@@ -1,13 +1,20 @@
<!--培训会-->
<template>
<div>培训会</div>
<div class="main-box">
<meeting-list :standard-meeting-type="3"></meeting-list>
</div>
</template>
<script>
import MeetingList from './meeting/MeetingList'
export default {
name: 'TrainingMeeting'
name: 'TrainingMeeting',
components: {
MeetingList
},
}
</script>
<style scoped>
</style>
<style scoped lang="less">
@import '~@assets/less/common.less';
</style>
@@ -0,0 +1,485 @@
<!--标协会员-标准宣贯信息交流会培训会共用页面-->
<template>
<div class="meeting-list meeting">
<div class="title">
<!-- <a-icon type="user"/>-->
<span class="my-meeting">{{ $route.meta.title }}</span>
</div>
<div class="content">
<section class="meeting—status">
<span>会议分类</span>
<span
@click="filterMeeting(item.key)" class="inactive-status"
:class="{'active-status':item.key === meetingKey}"
v-for="item of meetingStatusArr"
:key="item.key">{{ item.value }}</span>
</section>
<!--查询区域begin-->
<div class="table-page-search-wrapper">
<a-form layout="inline" @keyup.enter.native="searchQuery">
<a-row :gutter="24">
<a-col :xl="7" :lg="8" :md="8" :sm="24">
<a-form-item label="会议名称">
<a-input placeholder="请输入会议名称" v-model="queryParam.meetingName" :maxLength="50"></a-input>
</a-form-item>
</a-col>
<a-col :xxl="7" :xl="10" :md="10" :sm="24">
<a-form-item label="会议时间">
<j-date
placeholder="请选择开始日期"
class="query-group-cust"
v-model="queryParam.meetingStartTime"
:disabled-date="disabledStartDate">
</j-date>
<span class="query-group-split-cust"></span>
<j-date
placeholder="请选择结束日期"
class="query-group-cust"
v-model="queryParam.meetingEndTime"
:disabled-date="disabledEndDate">
</j-date>
</a-form-item>
</a-col>
<a-col :xl="7" :lg="8" :md="8" :sm="24">
<a-form-item label="会议状态">
<j-dict-select-tag dict-code="meeting_status" placeholder="请选择会议状态"
v-model="queryParam.meetingStatus"></j-dict-select-tag>
</a-form-item>
</a-col>
<a-col :xl="7" :lg="8" :md="8" :sm="24">
<a-form-item label="报名状态">
<j-dict-select-tag
dict-code="sign_up_status"
placeholder="请选择报名状态"
v-model="queryParam.signUpStatus"
></j-dict-select-tag>
</a-form-item>
</a-col>
<a-col :xl="6" :lg="8" :md="8" :sm="24">
<span style="float: left;overflow: hidden;" class="table-page-search-submitButtons">
<a-button type="primary" @click="searchQuery" icon="search">查询</a-button>
<a-button class="reset-button" @click="searchReset" icon="reload" style="margin-left: 8px">重置</a-button>
</span>
</a-col>
</a-row>
</a-form>
</div>
<!--查询区域end-->
<!--列表区域begin-->
<a-spin :spinning="loading">
<div class="list" v-if="tableData.length > 0">
<div class="item-meeting" v-for="(item,index) of tableData" :key="index" @click.stop="openMeetingDetail(item)">
<p class="item-meeting-meetingName">
<j-ellipsis
class="primary-color"
:value="item.meetingName"
:length="20"
></j-ellipsis>
</p>
<!--这里需要修改 会议费用分人显示不同的会议费用 2021-09-29 跟需求沟通说是不显示-->
<!-- <p class="item-meeting-meetingCost"><span></span>{{ item.meetingCosts }}</p>-->
<p class="item-meeting-img item-meeting-meetingDirector">
<img src="@/assets/meetingImgs/meeting-user.png" />
负责人{{ item.directorName }}
</p>
<p class="item-meeting-img item-meeting-meetingTime">
<img src="@/assets/meetingImgs/meeting-time.png" />
召开时间{{ item.startTime }}~{{ item.endTime }}
<!-- <j-ellipsis :value="item.startTime + '~' + item.endTime" :length="30"></j-ellipsis>-->
</p>
<p class="item-meeting-img item-meeting-meetingAddress">
<img src="@/assets/meetingImgs/meeting-address.png" />
召开地点
<j-ellipsis :value="item.venue + '/' + item.address " :length="20"></j-ellipsis>
</p>
<!-- 报名状态 缴费方式为打包 不显示 item.signUpStatus !== null-->
<p class="item-meeting-img item-meeting-meetingTime" v-show="item.payMode !== 3 ">
<img src="@/assets/meetingImgs/meeting-audit.png"
class="audit-img" />报名状态{{ item.signUpStatus_dictText }}
</p>
<!-- 有缴费方式在显示 -->
<p class="item-meeting-img item-meeting-meetingPaymode" v-if="item.payMode_dictText !== null">
<img src="@/assets/meetingImgs/meeting_paymode.png" />
缴费方式{{ item.payMode_dictText }}
<!-- 缴费方式为线上缴费或者汇款的 审核通过才显示 只有在会议召开时间期间才显示上传凭证按钮 "-->
<!-- 报名状态为 凭证审核中 显示查看凭证 -->
<!-- 报名成功不显示-->
<a-button
v-show="(item.payMode === 2 || item.payMode === 1) && (item.meetingStatus == 2 || item.meetingStatus === 3) && item.registerCheckResult === 1 && item.meetingStatus === 3 && item.signUpStatus !== 6 "
type="primary" @click="uploadPaymentRecord(item)">
{{ item.signUpStatus === 2 ? '查看凭证' : '上传凭证' }}
</a-button>
</p>
<img v-if="item.meetingStatus === 2 " class="meeting-img-status" src="@/assets/meetingImgs/no-start.png" />
<img v-if="item.meetingStatus === 3 " class="meeting-img-status" src="@/assets/meetingImgs/ing.png" />
<img v-if="item.meetingStatus === 4 " class="meeting-img-status" src="@/assets/meetingImgs/end.png" />
</div>
</div>
<section v-else class="list-empty">
<a-list :data-source="[]" />
</section>
</a-spin>
<!--列表区域end-->
<div class="fenye" v-if="total > 0">
<!--分页-->
<a-pagination
v-model="current"
:page-size.sync="pageSize"
class="pagination"
show-size-changer
:show-total="(total, range) => `${range[0]}-${range[1]}${total}`"
:pageSizeOptions="['10','20', '30', '50','100']"
show-quick-jumper
:total="total"
@change="changePagination"
@showSizeChange="onShowSizeChange"
/>
</div>
</div>
<MeetingDetailModal ref="meetingDetail"></MeetingDetailModal>
</div>
</template>
<script>
import JDictSelectTag from '@comp/dict/JDictSelectTag'
import { RangeDateMixin } from '@/mixins/RangeDateMixin'
import JDate from '@comp/tools/JDate'
import UploadMeetingCertificateModal from '@views/MessagePage/UploadMeetingCertificateModal'
import { getAction } from '@api/manage'
import JEllipsis from '@comp/jero/JEllipsis'
import MeetingDetailModal from '@views/MessagePage/MeetingDetailModal'
export default {
name: 'MeetingList',
mixins: [RangeDateMixin],
components: {
// eslint-disable-next-line vue/no-unused-components
MeetingDetailModal,
JDictSelectTag,
JDate,
// eslint-disable-next-line vue/no-unused-components
UploadMeetingCertificateModal,
JEllipsis
},
props: {
standardMeetingType: {
type: Number,
required: false,
default: 1
}
},
data() {
return {
// 会议分类 全部 0 可报名 1 已报名 2
meetingStatusArr: [
{
key: '0',
value: '全部'
},
{
key: '1',
value: '可报名'
},
{
key: '2',
value: '已报名'
}
],
// 会议的key值 默认是全部
meetingKey: '0',
// 禁用时间的key值
dateKeyObj: {
beginKey: 'meetingStartTime',
endKey: 'meetingEndTime'
},
url: {
list: '/meeting/payMeeting/pageContract'
},
tableData: [],
// 查询参数
queryParam: {},
lastQueryParam: {},
filter: {
meetingType: 2,
tbMeetingType: this.standardMeetingType
},
// 分页参数
pageNo: 1,
pageSize: 10,
total: 0,
// 当前页
current: 1,
// 加载状态
loading: false
// 会议类型
// meetingType: ''
}
},
computed: {
// 会议报名 审核状态
auditStatus() {
// 报名信息审核中 工作组会议或者分标委会议 非成员报名 需要审核报名信息
// 凭证审核中 上传了汇款凭证待审核的
// 不可参会 非成员单位报名信息审核被拒绝的
// 待上传凭证 来款方式为线上或者汇款
// 凭证被拒绝 上传审核凭证被拒绝的
// 报名成功 审核凭证通过或者不需要审核的
return '报名成功'
}
},
created() {
// 会议类型
if (this.$route.query.meetingType) {
// this.meetingType = this.$route.query.meetingType
// this.filter.meetingType = this.$route.query.meetingType
}
this.initData(1)
},
methods: {
/*
* 会议分类筛选
* */
filterMeeting(key) {
this.meetingKey = key
this.filter.meetingSignUpType = this.meetingKey
this.initData(1)
},
/*
* 分页
* */
onShowSizeChange(current, pageSize) {
this.pageNo = current
this.pageSize = pageSize
console.log(current, pageSize)
this.initData()
},
/*
* 页码改变后的回调
* */
changePagination(pageNo, pageSize) {
this.pageSize = pageSize
this.pageNo = pageNo
this.initData()
},
/*
* 初始化加载数据
* */
initData(arg) {
if (!this.url.list) {
this.$message.error('请设置url.list属性!')
return
}
//加载数据 若传入参数1则加载第一页的内容
if (arg === 1) {
this.pageNo = 1
}
var params = Object.assign({}, this.lastQueryParam, this.filter)
params.pageNo = this.pageNo
params.pageSize = this.pageSize
this.loading = true
getAction(this.url.list, params).then((res) => {
if (res.success) {
this.tableData = [...res.result.records] || res.result
this.current = res.result.current
if (res.result.total) {
this.total = res.result.total
} else {
this.total = 0
}
}
if (res.code === 510) {
this.$message.warning(res.message)
}
}).finally(() => {
this.loading = false
})
},
/*
* 查询
* */
searchQuery() {
this.queryParam.meetingStartTime = this.queryParam.meetingStartTime ? this.queryParam.meetingStartTime + ' ' + '00:00:00' : undefined
this.queryParam.meetingEndTime = this.queryParam.meetingEndTime ? this.queryParam.meetingEndTime + ' ' + '23:59:59' : undefined
this.queryParam.createTime_begin = this.queryParam.createTime_begin ? this.queryParam.createTime_begin + ' ' + '00:00:00' : undefined
this.queryParam.createTime_end = this.queryParam.createTime_end ? this.queryParam.createTime_end + ' ' + '23:59:59' : undefined
this.lastQueryParam = { ...this.queryParam }
this.initData(1)
},
/*
* 重置
* */
searchReset() {
this.queryParam = {}
this.lastQueryParam = {}
this.pageNo = 1
this.pageSize = 10
this.initData(1)
},
/*
* 上传凭证
* */
uploadPaymentRecord(item) {
if (item) {
this.$refs.upload.open(item)
}
},
/*
* 打开会议详情
* */
openMeetingDetail(item) {
// 可报名的点击应该是去报名
// if (item.meetingSignUpType === 1) {
// let url = `${window._CONFIG['singUpQRCodeURL']}?id=${item.id}`
// window.open(url, '_blank')
// } else {
// 打开会议详情
this.$refs.meetingDetail.open(item)
// }
}
}
}
</script>
<style scoped lang="less">
@import '~@assets/less/common.less';
.meeting-list {
background: #fff;
}
.title {
height: 56px;
line-height: 56px;
background: #fff;
border-bottom: 2px solid #f2f2f2;
padding: 0 20px;
.my-meeting {
margin-left: 6px;
font-size: 16px;
}
}
/*内容begin*/
.content {
padding: 0 20px 20px 20px;
}
.meetingstatus {
height: 56px;
box-sizing: border-box;
line-height: 56px;
color: #666;
}
.inactive-status {
user-select: none;
padding: 0 20px;
cursor: pointer;
}
.active-status {
background: #069f99;
padding: 8px 20px;
border-radius: 4px;
color: white;
}
.list {
display: flex;
justify-content: space-between;
flex-wrap: wrap;
& > i {
width: 323px;
}
}
.item-meeting {
position: relative;
margin-bottom: 20px;
display: flex;
flex-direction: column;
justify-content: space-between;
font-size: 14px;
color: #999;
padding: 10px;
width: 323px;
height: 219px;
opacity: 1;
background: #ffffff;
border-radius: 4px;
box-shadow: -2px 0px 10px 10px rgba(51, 51, 51, 0.10);
cursor: pointer;
& > p {
margin: 0;
padding: 0;
}
&-img > img {
margin-right: 4px;
margin-bottom: 2px;
user-select: none;
}
&-meetingName {
color: #333;
font-size: 16px;
font-weight: 700;
}
&-meetingCost {
color: #FF5252;
font-size: 22px;
font-weight: 700;
font-family: Acre, Acre-Medium;
& > span {
font-size: 16px;
}
}
&-meetingPaymode {
.ant-btn {
float: right;
}
}
}
.meeting-img-status {
position: absolute;
right: 0;
top: 0;
}
.audit-img {
transform: translate(-3px);
width: 20px;
height: 20px;
}
/*内容end*/
.fenye {
background: #fff;
height: 50px;
}
.pagination {
float: right;
margin-right: 20px;
}
.list-empty {
margin: 20px auto !important;
}
</style>
@@ -2582,8 +2582,8 @@ export default {
data() {
return {
checkEffectDate: '',
//todo 当前登录的会员账户在标协系统中的id 目前先写死zoey 后期通过接口调用
loginUserId: '1413419593870872578',
// 会员用户id
loginUserId: this.$store.getters.userInfo.memberId,
// loginUserId: JSON.parse(localStorage.getItem('pro__Login_Userinfo')).value.id,
// 角色码
// isMember: Vue.ls.get(USER_INFO).roleCode,
+13 -2
View File
@@ -79,7 +79,7 @@ module.exports = {
},
devServer: {
port: 3001,
port: 21826,
proxy: {
/* '/api': {
target: 'https://mock.ihx.me/mock/5baf3052f7da7e07e04a5116/antd-pro', //mock API接口系统
@@ -90,10 +90,21 @@ module.exports = {
}
},*/
'/jero-boot': {
target: 'http://localhost:8080', //请求本地 jero-boot后台项目
// target: 'http://localhost:21824', //请求本地 jero-boot后台项目
target: 'http://10.0.10.78:21824', //请求本地 jero-boot后台项目
ws: false,
changeOrigin: true
},
// 会员系统的路由转发
'/memberApi': {
// target: 'http://localhost:9000', //请求本地 jero-boot后台项目
target: 'http://10.0.10.78:9000', //请求本地 jero-boot后台项目
ws: false,
changeOrigin: true,
pathRewrite: {
'/memberApi': '/api' //默认所有请求都加了api前缀,需要去掉
}
},
}
},