[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
@@ -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;
}
.meeting—status {
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,