会议详情 会议报名

This commit is contained in:
fengachen
2021-10-13 19:50:38 +08:00
parent 4a0dd996b6
commit 2f3f9aba1d
14 changed files with 424 additions and 15 deletions
+4
View File
@@ -851,3 +851,7 @@ color: #2A2A2A;
align-items: center;
color: #999;
}
.center {
text-align: center;
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

+78 -6
View File
@@ -31,30 +31,102 @@ Page({
}
],
// 会议列表数据
meetingList:[]
meetingList:[],
// 下拉框送搜索数据
selectData:[],
// 控制弹窗显示的
visible:false,
// 控制月份选择器显示
visibleDate:false,
// 是哪个筛选条件
index:-1
},
// 会议详情
meetingDetail(e){
// 会议id
let meetingInfo =JSON.stringify(e.currentTarget.dataset.meetinginfo)
wx.navigateTo({
url: `../meetingDetailSigned/meetingDetailSigned?meetingInfo=${meetingInfo}`, // (已报名)
// url: `../meetingDetailSigned/meetingDetailSigned?meetingInfo=${meetingInfo}`, // (已报名)
url:'../signUpPage/signUpPage'
})
},
// 获取会议列表数据
queryMeetingList(){
const that = this
MeetingApi.meetingList().then(res => {
console.log(res,'res');
if(res.success){
that.setData({
meetingList:res.result.records
})
}
}).catch(err => {
wx.showToast({
title: '加载失败',
icon: 'fail',
duration: 2000
})
})
},
// 点击搜索条件
changeTab(e){
let index = e.currentTarget.dataset.index
switch(index) {
case 1: this.setData({
visible:true,
selectData:[
{label:'可报名',value:1},
{label:'未开始',value:1},
{label:'进行中',value:1},
{label:'已结束',value:1},
]
})
break
case 2:this.setData({
visible:true,
selectData:[
{label:'工作组会议',value:1},
{label:'标协会议',value:2},
{label:'国际研讨会',value:3},
{label:'其他会议',value:4},
{label:'分标委会议',value:5},
]
})
break
case 3 : this.setData({
visibleDate:true
})
}
},
// 关闭弹出层
close() {
this.setData({
visible: false
})
},
// 下拉框选中
ok(e){
this.data.pageNo = 1
if(this.data.index === 0){
this.setData({
'searchParams.needInvoice': e.detail
})
}else if(this.data.index === 1){
this.setData({
'searchParams.pack': e.detail
})
}
this.loadData()
},
// 日期选中
dateOk(value){
// this.data.pageNo = 1
this.setData({
// "searchParams.year": value.detail,
visibleDate: false
})
this.loadData()
},
/**
* 生命周期函数--监听页面加载
*/
@@ -110,4 +182,4 @@ Page({
onShareAppMessage: function () {
}
})
})
+5 -2
View File
@@ -1,4 +1,7 @@
{
"navigationBarTitleText": "会议",
"usingComponents": {}
}
"usingComponents": {
"popup": "../../components/popup/popup",
"dateMonth": "../../components/dateMonth/dateMonth"
}
}
+8 -1
View File
@@ -1,6 +1,6 @@
<!--pages/meeting/meeting.wxml首页会议活动-->
<view class="select-list">
<view class="select-item" bindtap="changeTab(select)" wx:for="{{selects}}" wx:for-item="select" wx:key="tabIndex">
<view class="select-item" bindtap="changeTab" data-index="{{select.tabIndex}}" wx:for="{{selects}}" wx:for-item="select" wx:key="tabIndex">
<text>{{select.select}}</text>
<image wx:if="{{!select.active}}" src="../../assets/images/toTop.png"></image>
<image wx:if="{{select.active}}" src="../../assets/images/toBottom.png"></image>
@@ -21,4 +21,11 @@
<text>{{item.venue + '/' + item.address}}</text>
</view>
</view>
<view wx:if="{{meetingList.length === 0}}" class="no-data">
<text>暂无数据</text>
</view>
</view>
<!-- 下拉框的弹出层 -->
<popup visible="{{visible}}" bindclose="close" outClickCanClose="true" bindok="ok" data="{{selectData}}"></popup>
<!-- 年份选择器 或者月份选择器 -->
<dateMonth visible="{{visibleDate}}" mode="month" bindok="dateOk"></dateMonth>
@@ -89,6 +89,7 @@ Page({
onLoad: function (options) {
// 获取上一个页面的会议数据
const meetingInfo = JSON.parse(options.meetingInfo)
console.log(meetingInfo);
const that = this
this.setData({
meetingInfo:meetingInfo
@@ -41,11 +41,6 @@
<text>会议内容</text>
<text>{{meetingInfo.meetingContent}}</text>
</view>
<!-- 原型上没有备注 暂时注释 -->
<!-- <view>
<text>备注</text>
<text>{{meetingInfo.remark}}</text>
</view> -->
<view class="meeting-files">
<text>会议通知</text>
<view class="file-name" wx:for="{{meetingFilesList}}" wx:key="item">
@@ -57,6 +52,7 @@
</view>
</view>
<view class="meeting-files" style="margin-top: 0;">
<!-- 只有报名且审核通过的用户才可下载会议资料 -->
<text>会议文件</text>
<view class="warning-text">
<image src="../../assets/images/warn.png"></image>
@@ -69,6 +65,7 @@
</view>
<text class="look-file" bindtap="previewFile" data-file ='{{item}}'>查看</text>
</view>
<view class="center"> <text wx:if="{{meetingDataList.length === 0 }}">暂无</text></view>
</view>
</view>
<!-- 报名信息begin -->
@@ -130,6 +127,25 @@
</view>
</view>
<!-- 报名信息end -->
<!-- 签到信息begin -->
<view class="basic-info" style="margin-top: 10px;">
<view class="title">
<text>签到信息</text>
</view>
<view>
<text>签到时间</text>
<text>签到时间的显示</text>
</view>
</view>
<!-- 签到信息end -->
<!-- 会议状态begin -->
<!-- 进行中 -->
<image wx:if="{{meetingInfo.meetingStatus === 3}}" class="img" src="../../assets/images/ing.png"></image>
<!-- 未开始 -->
<image wx:if="{{meetingInfo.meetingStatus === 2}}" class="img" src="../../assets/images/no-start.png"></image>
<!-- 已结束 -->
<image wx:if="{{meetingInfo.meetingStatus === 4}}" class="img" src="../../assets/images/end.png"></image>
<!-- 会议状态end -->
<view class="sign-up-empty"></view>
<view class="sign-up">
<text>确定</text>
@@ -148,4 +148,14 @@ page{
display: block;
text-align: center;
line-height: 40px;
}
}
.img {
width: 138rpx;
height: 120rpx;
position: fixed;
left: 0;
right: 0;
top: 0;
bottom: 0;
margin: auto;
}
+116
View File
@@ -0,0 +1,116 @@
// pages/signUpPage/signUpPage.js
Page({
/**
* 页面的初始数据
*/
data: {
// 参会身份
identifyList:[
{value: '2', name: '参会人'},
{value: '1', name: '嘉宾'},
{value: '3', name: '内部企业'},
],
// 缴费方式
paymentMethodList:[
{value: '1', name: '汇款'},
{value: '2', name: '线上缴费'},
{value: '3', name: '打包'},
],
// 是否需要发票
needInvoiceList:[
{value: '0', name: '不需要'},
{value: '1', name: '增值税普通发票'},
{value: '2', name: '增值税专用发票'},
],
// 是否住酒店
needCheckInHotel:[
{value: '1', name: '是'},
{value: '0', name: '否'},
],
// 是否选择发票的选中的索引
index:-1,
// 抵达时间
arrivalTime:'请选择抵达时间',
// 离开时间
departureTime:'请选择离开时间'
},
// 是否需要发票的选择
needInvoiceChange(e){
console.log(e);
this.setData({
index:e.detail.value
})
},
// 抵达时间选择
bindDateChangeArriveTime(e){
this.setData({
arrivalTime:e.detail.value
})
},
// 离开时间选择
bindDateChangeLeaveTime(e){
this.setData({
departureTime:e.detail.value
})
},
// 确定
formSubmit(){
console.log(113);
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})
+3
View File
@@ -0,0 +1,3 @@
{
"usingComponents": {}
}
+114
View File
@@ -0,0 +1,114 @@
<!--报名页面-->
<view class="color-f5">
<form bindsubmit="formSubmit">
<view class="form-wrap">
<view class="form-item">
<text class="item-label flex-1">参会单位:</text>
<input placeholder-class="text-right" name="phone" bindinput="bindInputPhone" value="{{phone}}" placeholder="请选择参会单位" />
</view>
<view class="form-item">
<text class="item-label flex-1">参会人:</text>
<input placeholder-class="text-right" name="phone" bindinput="bindInputPhone" value="{{phone}}" placeholder="请选择" />
</view>
<view class="form-item">
<text class="item-label flex-1">手机号:</text>
<input placeholder-class="text-right" name="phone" bindinput="bindInputPhone" value="{{phone}}" placeholder="请输入手机号" />
</view>
<view class="form-item-radio">
<view class="radio-label">
<text class="item-label flex-1 validate">参会身份:</text>
</view>
<view>
<radio-group bindchange="identifyRadioChange">
<label class="radio radio-item" wx:for="{{identifyList}}" wx:key="item">
<radio value="{{item.value}}"/>{{item.name}}
</label>
</radio-group>
</view>
</view>
<view class="form-item-radio">
<view class="radio-label">
<text class="item-label flex-1 validate">缴费方式:</text>
</view>
<view>
<radio-group bindchange="paymentMethodRadioChange">
<label class="radio radio-item" wx:for="{{paymentMethodList}}" wx:key="item">
<radio value="{{item.value}}"/>{{item.name}}
</label>
</radio-group>
</view>
</view>
<view class="form-item">
<text class="item-label flex-1 validate">是否需要发票:</text>
<picker bindchange="needInvoiceChange" range="{{needInvoiceList}}" value="{{index}}" range-key='name'>
<view class="picker">
{{index === -1 ? '请选择' :needInvoiceList[index].name }}
</view>
</picker>
</view>
<view class="form-item">
<text class="item-label flex-1 validate">邮寄联系人:</text>
<input placeholder-class="text-right" name="phone" bindinput="bindInputPhone" value="{{phone}}" placeholder="请选择邮寄联系人" />
</view>
<view class="form-item">
<text class="item-label flex-1 validate">邮寄地址:</text>
<input placeholder-class="text-right" name="phone" bindinput="bindInputPhone" value="{{phone}}" placeholder="请输入邮寄地址" />
</view>
<view class="form-item">
<text class="item-label flex-1 validate">邮编:</text>
<input placeholder-class="text-right" name="phone" bindinput="bindInputPhone" value="{{phone}}" placeholder="请输入邮编" />
</view>
<view class="form-item-radio">
<view class="radio-label">
<text class="item-label flex-1 validate">是否住酒店:</text>
</view>
<view>
<radio-group bindchange="paymentMethodRadioChange">
<label class="radio radio-item" wx:for="{{needCheckInHotel}}" wx:key="item">
<radio value="{{item.value}}"/>{{item.name}}
</label>
</radio-group>
</view>
</view>
<view class="form-item">
<text class="item-label flex-1">抵达时间:</text>
<picker mode="date" value="{{date}}" bindchange="bindDateChangeArriveTime">
<view class="picker">
{{arrivalTime}}
</view>
</picker>
</view>
<view class="form-item">
<text class="item-label flex-1">离开时间:</text>
<picker mode="date" value="{{date}}" bindchange="bindDateChangeLeaveTime">
<view class="picker">
{{departureTime}}
</view>
</picker>
</view>
<view class="form-item">
<text class="item-label flex-1">费用合计:</text>
<text>200元</text>
</view>
<view class="btn-wrap">
<button class="btn-ok" formType="submit">确定</button>
</view>
</view>
</form>
</view>
+63
View File
@@ -0,0 +1,63 @@
/* 报名页面 */
.form-wrap {
width: 100wh;
height: 20px;
background-color: #fff;
}
.form-item {
width: 100%;
display: flex;
justify-content: space-between;
height: 40px;
padding: 10rpx 20rpx;
box-sizing: border-box;
}
.form-item-radio {
margin-top: 20px;
width: 100%;
display: flex;
flex-direction: column;
padding: 10rpx 20rpx;
box-sizing: border-box;
}
.radio-label {
margin-bottom: 20px;
}
.item-label {
width:100px;
}
.text-right {
text-align: right;
}
.btn-wrap {
padding: 0 20rpx;
margin: 20rpx 0;
line-height: 80rpx;
}
.btn-ok {
width: 100%!important;
height: 80rpx;
border-radius: 4px;
background-color: #069F99;
font-weight: 400;
color: #fff;
font-size: 16px;
letter-spacing: 1px;
}
.radio-item {
margin-right: 20rpx;
}
.validate::before{
content: '*';
font-size: 18px;
color: red;
position: absolute;
left: 2rpx;
}