会议预约

加入会务负责人选择页面;
修改会议图标
This commit is contained in:
471615499@qq.com 2024-09-18 20:35:54 +08:00
parent a7dcd25647
commit 5089236079
11 changed files with 366 additions and 10 deletions

View File

@ -76,7 +76,7 @@
"pages/meeting/reservationRecord/exhibitionRecord/list/list", "pages/meeting/reservationRecord/exhibitionRecord/list/list",
"pages/meeting/reservationRecord/exhibitionRecord/detail/detail", "pages/meeting/reservationRecord/exhibitionRecord/detail/detail",
"pages/meeting/meetingRoom/meetingService/meetingService", "pages/meeting/meetingRoom/meetingService/meetingService",
"pages/meeting/meetingRoom/meetingStaff/meetingStaff",
"pages/reportRepair/index/index", "pages/reportRepair/index/index",
"pages/reportRepair/report/report", "pages/reportRepair/report/report",
"pages/reportRepair/query/record/record", "pages/reportRepair/query/record/record",

View File

@ -13,25 +13,25 @@ Page({
menuList: [{ menuList: [{
type: "report", type: "report",
name: "会议预约", name: "会议预约",
img: "/profile/static/repair/index/my.png", img: "/profile/static/meeting/index/reservation.png",
path: "/pages/meeting/meetingReservation/meetingReservation", path: "/pages/meeting/meetingReservation/meetingReservation",
visible: true visible: true
}, { }, {
type: "query", type: "query",
name: "预约记录", name: "预约记录",
img: "/profile/static/repair/index/query.png", img: "/profile/static/meeting/index/record.png",
path: "/pages/meeting/reservationRecord/meetingRecord/meetingRecord", path: "/pages/meeting/reservationRecord/meetingRecord/meetingRecord",
visible: true visible: true
}, { }, {
type: "assign", type: "assign",
name: "会议审核", name: "会议审核",
img: "/profile/static/repair/index/case.png", img: "/profile/static/meeting/index/examine.png",
path: "/pages/meeting/reservationRecord/approve/approve", path: "/pages/meeting/reservationRecord/approve/approve",
visible: true visible: true
}, { }, {
type: "repair", type: "repair",
name: "会务服务", name: "会务服务",
img: "/profile/static/repair/index/repair.png", img: "/profile/static/meeting/index/serve.png",
path: "/pages/meeting/reservationRecord/service/service", path: "/pages/meeting/reservationRecord/service/service",
visible: true visible: true
}], }],

View File

@ -2,7 +2,7 @@
<view class="topHead"> <view class="topHead">
<view class="maskView1"></view> <view class="maskView1"></view>
<view class="maskView2" style="background: no-repeat center/cover url({{IMG_NAME + '/profile/static/repair/index/person.png'}});"></view> <view class="maskView2" style="background: no-repeat center/cover url({{IMG_NAME + '/profile/static/meeting/index/bg.png'}});"></view>
<view class="maskView3"></view> <view class="maskView3"></view>
<view class="homeView" bind:tap="back"> <view class="homeView" bind:tap="back">

View File

@ -0,0 +1,163 @@
const app = getApp()
import Notify from '@vant/weapp/notify/notify';
import {
getMeetingRoomServiceAndEquipmentRq,
queryServiceMsgRq
} from "../../../../api/meeting/meetingRoom.js"
Page({
/**
* 页面的初始数据
*/
data: {
IMG_NAME: app.IMG_NAME,
rId: '',
checkUser: [],
staffMusicList: [{
id: 1,
name: '张三',
isSelect: false
}, {
id: 2,
name: '李四',
isSelect: false
}, {
id: 3,
name: '王五',
isSelect: false
}],
staffServeList: [{
id: 4,
name: '赵六',
isSelect: false
}, {
id: 5,
name: '朱七',
isSelect: false
}, {
id: 6,
name: '冯八',
isSelect: false
}]
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
let _this = this
let rId = options.rId
// console.log(ser)
_this.setData({
rId: rId
})
// 获取数据
_this.getData()
},
// 获取数据
getData() {
let _this = this;
// ajax获取当前预约的人员以及会务人员列表
},
// 服务选择
checkBoxClick(e) {
let _this = this
console.log('checkBoxClick', e)
// get param
let id = e.target.dataset.id
let type = e.target.dataset.type
if (type === 'music') {
let staffMusicList = _this.data.staffMusicList.map(item => {
if (item.id == id) {
item.isSelect = !item.isSelect
}
return item
})
_this.setData({
staffMusicList
})
} else {
let staffServeList = _this.data.staffServeList.map(item => {
if (item.id == id) {
item.isSelect = !item.isSelect
}
return item
})
_this.setData({
staffServeList
})
}
},
// 确定
submit() {
let _this = this;
// 提交
console.log(_this.data.staffMusicList)
console.log(_this.data.staffServeList)
// let pages = getCurrentPages(); //获取page
// let prevPage = pages[pages.length - 2]; //上一个页面(父页面)
// prevPage.setData({
// serviceList: _this.data.serviceList
// })
// console.log(_this.data.serviceList)
wx.navigateBack()
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})

View File

@ -0,0 +1,10 @@
{
"usingComponents": {
"van-icon": "@vant/weapp/icon/index",
"van-checkbox": "@vant/weapp/checkbox/index",
"van-checkbox-group": "@vant/weapp/checkbox-group/index",
"van-field": "@vant/weapp/field/index",
"van-notify": "@vant/weapp/notify/index"
},
"navigationBarTitleText": "会务负责人"
}

View File

@ -0,0 +1,28 @@
<view class="containerView public">
<!-- 音控组 -->
<view class="serviceView">
<view class="leftLineTitle">音控组</view>
<view class="serviceItemView">
<view class="serviceItem" wx:for="{{staffMusicList}}" wx:key="*this">
<van-checkbox value="{{ item.isSelect }}" data-id="{{item.id}}" data-type="music" shape="square" bind:tap="checkBoxClick"></van-checkbox>
<view class="name" data-id="{{item.id}}" data-type="music" bind:tap="checkBoxClick">{{item.name}}</view>
</view>
</view>
</view>
<!-- 会务服务组 -->
<view class="serviceView">
<view class="leftLineTitle">会务服务组</view>
<view class="serviceItemView">
<view class="serviceItem" wx:for="{{staffServeList}}" wx:key="*this">
<van-checkbox value="{{ item.isSelect }}" data-id="{{item.id}}" data-type="serve" shape="square" bind:tap="checkBoxClick"></van-checkbox>
<view class="name" data-id="{{item.id}}" data-type="serve" bind:tap="checkBoxClick">{{item.name}}</view>
</view>
</view>
</view>
<view class="submitBtn" bind:tap="submit">确定</view>
<!-- 提示 -->
<van-notify id="van-notify" />
</view>

View File

@ -0,0 +1,46 @@
.serviceView {
margin-top: 80rpx;
}
.serviceView .leftLineTitle {
margin-left: 20rpx;
}
.serviceView .serviceItemView {
margin-top: 30rpx;
}
.serviceView .serviceItemView .serviceItem {
border-bottom: 1px solid rgb(126, 126, 126, 0.2);
display: flex;
justify-content: space-between;
align-items: center;
word-break: break-all;
padding: 20rpx 20rpx;
}
.serviceView .serviceItemView .serviceItem:first-of-type {
border-top: 1px solid rgb(126, 126, 126, 0.2);
}
.serviceView .serviceItem .name {
position: relative;
flex: 1;
margin-right: 20rpx;
padding-left: 10rpx;
font-size: 26rpx;
}
.serviceView .serviceItem .content {
color: red;
font-size: 24rpx;
max-width: 400rpx;
}
.statementView {
padding: 80rpx 40rpx;
font-size: 24rpx;
text-indent: 48rpx;
color: gray;
}

View File

@ -331,10 +331,19 @@ Page({
console.log('jumpMeetingDetail', e); console.log('jumpMeetingDetail', e);
let id = e.currentTarget.dataset.id let id = e.currentTarget.dataset.id
wx.navigateTo({ wx.navigateTo({
url: "/pages/meeting/reservationRecord/meetingRecord/meetingDetail/meetingDetail?id=" + id, url: "/pages/meeting/reservationRecord/meetingRecord/meetingDetail/meetingDetail?act=approve&id=" + id,
})
},
/**
* 跳转会务负责人页面选择会务负责人
* @param {}} e
*/
goStaff(e) {
let id = e.currentTarget.dataset.id
wx.navigateTo({
url: "/pages/meeting/meetingRoom/meetingStaff/meetingStaff?rId=" + id,
}) })
}, },
// 取消预约一系列方法 // 取消预约一系列方法
cancelConfirm(e) { cancelConfirm(e) {
console.log('cancelConfirm', e); console.log('cancelConfirm', e);
@ -459,7 +468,7 @@ Page({
// on cancel // on cancel
}); });
}, },
// 取消预约一系列方法 // 驳回预约
rejectConfirm(e) { rejectConfirm(e) {
console.log('rejectConfirm', e); console.log('rejectConfirm', e);
let _this = this; let _this = this;

View File

@ -34,6 +34,7 @@
</view> --> </view> -->
<!-- <view class="btn" wx:if="{{item.showCancel}}" bind:tap="cancelConfirm" data-id="{{item.id}}">取消预约</view> --> <!-- <view class="btn" wx:if="{{item.showCancel}}" bind:tap="cancelConfirm" data-id="{{item.id}}">取消预约</view> -->
<van-button style="margin-right: 10rpx;" size="small" plain type="info" wx:if="{{item.showCancel}}" bind:tap="editConfirm" data-id="{{item.id}}">修改信息</van-button> <van-button style="margin-right: 10rpx;" size="small" plain type="info" wx:if="{{item.showCancel}}" bind:tap="editConfirm" data-id="{{item.id}}">修改信息</van-button>
<van-button style="margin-right: 10rpx;" size="small" plain type="warning" bind:tap="goStaff" data-id="{{item.id}}">会务负责人</van-button>
<van-button style="margin-right: 10rpx;" size="small" plain type="primary" bind:tap="pass" data-id="{{item.id}}">通过</van-button> <van-button style="margin-right: 10rpx;" size="small" plain type="primary" bind:tap="pass" data-id="{{item.id}}">通过</van-button>
<van-button style="margin-right: 10rpx;" size="small" plain type="danger" bind:tap="rejectConfirm" data-id="{{item.id}}">驳回</van-button> <van-button style="margin-right: 10rpx;" size="small" plain type="danger" bind:tap="rejectConfirm" data-id="{{item.id}}">驳回</van-button>

View File

@ -67,6 +67,20 @@ Page({
} }
return value; return value;
}, },
// 驳回相关参数
showRejectReason: false, // 是否展示弹出层
rejectlId: '', // 驳回预约会议id
rejectReason: '', // 驳回预约原因
beforeReject(action) {
return new Promise(resolve => {
if (action === 'confirm') {
resolve(false)
} else {
resolve(true)
}
});
}, // 弹出层点击确认不关闭,手动关
act: '' // 动作
}, },
/** /**
@ -185,6 +199,84 @@ Page({
}) })
}) })
}, },
pass() {
Dialog.confirm({
title: '确认',
message: '是否确认通过会议室申请?',
})
.then(() => {
// on confirm
console.log('已通过')
// 重新加载数据
this.getDataList()
})
.catch(() => {
// on cancel
});
},
// 驳回预约
rejectConfirm(e) {
console.log('rejectConfirm', e);
let _this = this;
let id = e.currentTarget.dataset.id
_this.setData({
rejectId: id,
showRejectReason: true,
rejectReason: ''
})
},
onCloseReject(e) {
let _this = this;
_this.setData({
rejectId: '',
showRejectReason: false,
rejectReason: ''
})
},
onChangeRejectReason(e) {
let _this = this;
_this.setData({
rejectReason: e.detail
})
},
// 取消订单
rejectOrder() {
let _this = this;
let id = _this.data.rejectId
let reason = _this.data.rejectReason
if (id === '') {
return
}
if (reason === '') {
Notify('请输入驳回原因!')
return
}
// 执行驳回方法
console.log('驳回,原因为' + reason)
return
cancelOrderRq({
id: id,
cancelResaon: reason
}).then(res => {
console.log('rejectOrder', res);
if (res.code == 0) {
// 刷新预约数据
_this.setData({
reservationPageNum: 1,
reservationDataList: [],
reservationIsDataAll: false,
showRejcctReason: false
})
_this.getDataList()
} else {
// 危险通知
Notify({
type: 'danger',
message: res.msg
});
}
})
},
// 取消预约一系列方法 // 取消预约一系列方法
cancelConfirm(e) { cancelConfirm(e) {
console.log('cancelConfirm', e); console.log('cancelConfirm', e);

View File

@ -102,8 +102,10 @@
<!-- <view class="btn" wx:if="{{detail.showInvite}}">去邀请 <!-- <view class="btn" wx:if="{{detail.showInvite}}">去邀请
<button class="shareBtn" open-type="share" data-id="{{detail.id}}">转发</button> <button class="shareBtn" open-type="share" data-id="{{detail.id}}">转发</button>
</view> --> </view> -->
<van-button style="margin-right: 10rpx;" size="normal" plain type="warning" wx:if="{{detail.showCancel}}" bind:tap="cancelConfirm" data-id="{{detail.id}}">取消预约</van-button> <van-button style="margin-right: 10rpx;" size="normal" plain type="warning" wx:if="{{detail.showCancel && act !== 'approve'}}" bind:tap="cancelConfirm" data-id="{{detail.id}}">取消预约</van-button>
<van-button style="margin-right: 10rpx;" size="normal" plain type="info" wx:if="{{detail.showCancel}}" bind:tap="editConfirm" data-id="{{detail.id}}">修改信息</van-button> <van-button style="margin-right: 10rpx;" size="normal" plain type="info" wx:if="{{detail.showCancel}}" bind:tap="editConfirm" data-id="{{detail.id}}">修改信息</van-button>
<van-button style="margin-right: 10rpx;" size="normal" plain type="primary" wx:if="{{act === 'approve'}}" bind:tap="pass" data-id="{{detail.id}}">通过</van-button>
<van-button style="margin-right: 10rpx;" size="normal" plain type="danger" wx:if="{{act === 'approve'}}" bind:tap="rejectConfirm" data-id="{{detail.id}}">驳回</van-button>
<!-- <view class="btn" wx:if="{{detail.showCancel}}" bind:tap="cancelConfirm" data-id="{{detail.id}}">取消预约</view> <!-- <view class="btn" wx:if="{{detail.showCancel}}" bind:tap="cancelConfirm" data-id="{{detail.id}}">取消预约</view>
<view class="btn" wx:if="{{detail.showCancel}}" bind:tap="editConfirm" data-id="{{detail.id}}">修改信息</view> --> <view class="btn" wx:if="{{detail.showCancel}}" bind:tap="editConfirm" data-id="{{detail.id}}">修改信息</view> -->
</view> </view>
@ -113,6 +115,11 @@
<!-- 提示框 --> <!-- 提示框 -->
<van-notify id="van-notify" /> <van-notify id="van-notify" />
<van-dialog id="van-dialog" /> <van-dialog id="van-dialog" />
<van-dialog use-slot title="驳回申请" show="{{ showRejectReason }}" show-cancel-button bind:close="onCloseRejct" bind:confirm="rejectOrder" beforeClose="{{ beforeReject }}" zIndex="109">
<van-cell-group style="margin: 20px;">
<van-field bind:change="onChangeRejectReason" value="{{ rejectReason }}" clearable label="" type="textarea" placeholder="请输入驳回原因" autosize />
</van-cell-group>
</van-dialog>
<van-dialog use-slot title="取消预约" show="{{ showCancelReason }}" show-cancel-button bind:close="onCloseCancel" bind:confirm="cancelOrder" beforeClose="{{ beforeClose }}" zIndex="109"> <van-dialog use-slot title="取消预约" show="{{ showCancelReason }}" show-cancel-button bind:close="onCloseCancel" bind:confirm="cancelOrder" beforeClose="{{ beforeClose }}" zIndex="109">
<van-cell-group style="margin: 20px;"> <van-cell-group style="margin: 20px;">
<van-field bind:change="onChangeCancelReason" value="{{ cancelReason }}" clearable label="" type="textarea" placeholder="请输入取消预约原因" autosize /> <van-field bind:change="onChangeCancelReason" value="{{ cancelReason }}" clearable label="" type="textarea" placeholder="请输入取消预约原因" autosize />