扫码会议报名的页面

This commit is contained in:
fengachen
2021-10-18 12:00:41 +08:00
parent 78715f6712
commit 8bc8301e2f
5 changed files with 446 additions and 0 deletions
+4
View File
@@ -97,6 +97,10 @@ Page({
wx.navigateTo({
url: `../meetingDetailSigned/meetingDetailSigned?meetingInfo=${meetingInfo}`, // (已报名)
})
}else{
wx.navigateTo({
url: `../meetingDetailSigned/meetingDetailSigned?meetingInfo=${meetingInfo}`, // (已报名)
})
}
},
+151
View File
@@ -0,0 +1,151 @@
// pages/signUpEntrance/signUpEntrance.js
import MeetingApi from '../../assets/js/http/meetingApi'
import {
initFileList,
previewFile,
getFileInfo
} from '../../assets/js/preview'
import {
baseUrl,
URL_CONFIG
} from '../../assets/js/http/api'
Page({
/**
* 页面的初始数据
*/
data: {
// 会议详情信息
meetingDetailIngfo: {},
// 会议类型
meetingType: '',
// 标协会议类型 1标准宣贯 2学习培训
tbMeetingType:'',
// 会议通知文件资料数组
meetingFilesList: [],
// 缴费二维码的图片路径
payOrCode: '',
},
// 获取会议详情
queryMeetingDetail(id) {
const that = this
MeetingApi.meetingDetail({
id
}).then(res => {
if (res.success) {
that.setData({
meetingDetailIngfo: res.result,
meetingType: that.generateMeetingType(res.result.meetingType),
payOrCode: baseUrl + URL_CONFIG + 'sys/common/download/' + res.result.paymentQrCode,
tbMeetingType:that.generateTbMeetingType(res.result.tbMeetingType)
})
initFileList(res.result.meetingFiles).then(res => {
that.setData({
meetingFilesList: res,
})
})
}
})
},
// 报名
signUp() {
// 不同的会议通跳转不同的会议页面
let meetingType = this.data.meetingDetailIngfo.meetingType
if (meetingType !== '3') {
wx.navigateTo({
url: '../signUpPage/signUpPage',
})
} else {
wx.navigateTo({
url: '../signUpPageGuoji/signUpPageGuoji',
})
}
},
// 会议类型
generateMeetingType(meetingType) {
switch (meetingType) {
case "1":
return "工作组会议"
case "2":
return "标协会议"
case "3":
return "国际研讨会议"
case "4":
return "其他会议"
case "5":
return "分标委会议"
}
},
// 标协会议类型
generateTbMeetingType(type) {
switch (type) {
case "1":
return "标准宣贯"
case "2":
return "学习培训"
}
},
// 预览文件
preview(e) {
console.log(e);
const fileObj = e.currentTarget.dataset.file;
previewFile(fileObj.id, fileObj.name)
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
this.queryMeetingDetail('1448568227696041986')
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})
+3
View File
@@ -0,0 +1,3 @@
{
"usingComponents": {}
}
+108
View File
@@ -0,0 +1,108 @@
<!--pages/signUpEntrance/signUpEntrance.wxml-->
<view>
<view class="basic-info">
<view class="meeting-name">
<text>会议名称</text>
<text>{{meetingDetailIngfo.meetingName}}</text>
</view>
<view>
<text>会议类型</text>
<text>{{meetingType}}</text>
</view>
<view wx:if="{{meetingDetailIngfo.meetingType === '2'}}">
<text>标协会议类型</text>
<text>{{tbMeetingType}}</text>
</view>
<view>
<text>负责人</text>
<text>{{meetingDetailIngfo.directorName}}</text>
</view>
<view wx:if="{{meetingDetailIngfo.meetingType === '1'}}">
<text>所属工作组</text>
<text>{{meetingDetailIngfo.workingGroupName}}</text>
</view>
<view wx:if="{{meetingDetailIngfo.meetingType === '5'}}">
<text>所属分标委</text>
<text>{{meetingDetailIngfo.caseCommitteeName}}</text>
</view>
<view>
<text>召开时间</text>
<text>{{meetingDetailIngfo.startTime + '~' + meetingDetailIngfo.endTime }}</text>
</view>
<view>
<text>召开地点</text>
<text>{{meetingDetailIngfo.venue + '/' + meetingDetailIngfo.address}}</text>
</view>
<view>
<text>年份</text>
<text>{{meetingDetailIngfo.particularYear}}</text>
</view>
<view>
<text>报名截止时间</text>
<text>{{meetingDetailIngfo.registerDeadline}}</text>
</view>
<view>
<text>会议费用</text>
<text>{{meetingDetailIngfo.meetingCosts}}</text>
</view>
<view wx:if="{{meetingDetailIngfo.meetingType === '2' }}">
<text>会议费用(VIP</text>
<text>{{meetingDetailIngfo.meetingCostsVip}}</text>
</view>
<view wx:if="{{meetingDetailIngfo.meetingType === '2' }}" class="sign-in">
<text>注册签到时间</text>
<text class="sign-in-text">{{meetingDetailIngfo.startSignInTime + '~'+ meetingDetailIngfo.endSignInTime}}</text>
</view>
<view class="sign-in">
<text>会议内容</text>
<text class="sign-in-text">{{meetingDetailIngfo.meetingContent}}</text>
</view>
<view class="meeting-files" wx:if="{{meetingFilesList.length > 0}}" >
<text>会议通知</text>
<view class="file-name" wx:for="{{meetingFilesList}}" wx:key="item">
<view>
<image src="../../assets/images/pdf.png"></image>
<text>{{item.name}}</text>
</view>
<text class="look-file" bindtap='preview' data-file="{{item}}">查看</text>
</view>
</view>
<view class="meeting-files" wx:if="{{meetingFilesList.length === 0}}" >
<text>会议通知</text>
<view class="file-name" >
<view>
<image src="../../assets/images/pdf.png"></image>
<text>{{item.name}}</text>
</view>
<text style="color:#999" bindtap='preview' data-file="{{item}}">暂无</text>
</view>
</view>
<view class="form-payQrCode">
<text style="padding-left:15px">缴费二维码</text>
<view>
<image class="payQrCode" src='{{payOrCode}}'></image>
</view>
</view>
<view class="sign-in">
<text>备注</text>
<text class="sign-in-text">{{meetingDetailIngfo.remark === null ? '' : meetingDetailIngfo.remark}}</text>
</view>
</view>
<view class="sign-up-empty"></view>
<view class="sign-up" >
<button class="sign-up-btn" bindtap='signUp'>报名</button>
</view>
</view>
+180
View File
@@ -0,0 +1,180 @@
/* pages/signUpEntrance/signUpEntrance.wxss */
page{
box-sizing: border-box;
background-color: #F5F5F5;
}
.basic-info .title{
height: 40px;
}
.basic-info .title text{
display: block;
border-left: 3px solid #069F99;
height: 14px;
padding-left: 10px;
border-radius: 2px;
display: flex;
justify-content: center;
align-items: center;
color: #333;
font-size: 15px;
font-weight: 500;
}
.basic-info view{
background-color: #FFF;
padding: 15px;
height: 40px;
display: flex;
justify-content: space-between;
align-items: center;
color: #333;
font-size: 14px;
border-bottom: 0.5px solid #f5f5f5;
position: relative;
}
.basic-info view:last-child{
border-bottom: 0;
}
.meeting-name{
margin-bottom: 10px;
}
.meeting-files{
margin-top: 10px;
flex-direction: column;
align-items: flex-start !important;
height: auto !important;
}
.basic-info .meeting-files .file-name{
display: flex;
justify-content: space-between;
align-items: center;
width: 100%;
box-sizing: border-box;
padding: 0;
height: 40px;
margin-top: 10px;
}
.file-name view{
padding: 0;
height: 30px;
line-height: 30px;
border-bottom: 0;
}
.file-name view image{
width: 30px;
height: 30px;
margin-right: 10px;
}
.basic-info .meeting-files .file-name .look-file{
color: #069F99;
}
.warning-text{
position: absolute !important;
top: 5px;
left: 75px;
color: #FF5E60 !important;
font-size: 10px !important;
padding: 0 !important;
}
.warning-text image{
width: 10px;
height: 10px;
}
.pay-prove-box{
display: flex !important;
flex-direction: column !important;
justify-content: flex-start !important;
align-items: flex-start !important;
padding: 0;
height: 120px !important;
}
.pay-prove-box .pay-prove-content{
margin-top: 20px;
display: flex;
justify-content: flex-start;
align-items: center;
padding: 0;
height: 80px;
}
.pay-prove-box .pay-prove-content .pay-prove{
width: 80px;
height: 80px;
margin-right: 10px;
position: relative !important;
background-color: #D1D1D1;
padding: 0;
border-radius: 5px;
display: flex;
justify-content: center;
align-items: center;
}
.pay-prove-box .pay-prove-content .pay-prove image{
width: 80px;
height: 80px;
}
.pay-prove-box .pay-prove-content .pay-prove .delete-image{
width: 12px;
height: 12px;
color: #fff;
background-color: #FF5E60;
border-radius: 50%;
display: flex;
justify-content: center;
align-items: center;
font-size: 7px;
position: absolute;
top: -3px;
right: -3px;
}
.sign-up-empty{
height: 60px;
width: 100%;
display: block;
margin-top: 10px;
}
.sign-up{
width: 100%;
padding: 10px 15px;
box-sizing: border-box;
background-color: #fff;
position: fixed;
bottom: 0;
}
.sign-up text{
background-color: #069F99;
height: 40px;
border-radius: 10px;
color: #fff;
font-size: 16px;
font-weight: 600;
display: block;
text-align: center;
line-height: 40px;
}
.form-payQrCode {
height: 140px!important;
padding: 5rpx!important;
}
.payQrCode {
width: 120px;
height: 120px;
padding: 2px;
box-sizing: border-box;
border-radius: 4px;
}
.sign-up-btn {
background-color: #069F99;
font-weight: 500;
color:#fff
}
.basic-info view.sign-in {
display: flex!important;
flex-direction: column!important;
align-items: start;
justify-content: start;
height: auto!important;
}
.sign-in-text {
margin-top: 15px;
}