mirror of
https://gitee.com/elegant_wings/dbd-meeting-wx-small.git
synced 2025-06-21 21:19:37 +08:00
20250613-预约后提示功能
This commit is contained in:
parent
3a078ac8a3
commit
1993c97a54
@ -66,11 +66,15 @@ Page({
|
|||||||
console.log('会务人员:', resStaff)
|
console.log('会务人员:', resStaff)
|
||||||
let musicList = []
|
let musicList = []
|
||||||
let serveList = []
|
let serveList = []
|
||||||
|
let hasMusicStaff = false
|
||||||
|
let hasServiceStaff = false
|
||||||
|
|
||||||
for (let key in resStaff.voiceWaiter) {
|
for (let key in resStaff.voiceWaiter) {
|
||||||
let eachObj = resStaff.voiceWaiter[key]
|
let eachObj = resStaff.voiceWaiter[key]
|
||||||
let isSel = false
|
let isSel = false
|
||||||
if (staffIdArr.includes(eachObj.id)) {
|
if (staffIdArr.includes(eachObj.id)) {
|
||||||
isSel = true
|
isSel = true
|
||||||
|
hasMusicStaff = true
|
||||||
}
|
}
|
||||||
musicList.push({
|
musicList.push({
|
||||||
id: eachObj.id,
|
id: eachObj.id,
|
||||||
@ -83,6 +87,7 @@ Page({
|
|||||||
let isSel = false
|
let isSel = false
|
||||||
if (staffIdArr.includes(eachObj.id)) {
|
if (staffIdArr.includes(eachObj.id)) {
|
||||||
isSel = true
|
isSel = true
|
||||||
|
hasServiceStaff = true
|
||||||
}
|
}
|
||||||
serveList.push({
|
serveList.push({
|
||||||
id: eachObj.id,
|
id: eachObj.id,
|
||||||
@ -90,6 +95,13 @@ Page({
|
|||||||
isSelect: isSel
|
isSelect: isSel
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 保存初始状态到本地存储
|
||||||
|
wx.setStorageSync('staffStatus_' + _this.data.rId, {
|
||||||
|
hasMusicStaff,
|
||||||
|
hasServiceStaff
|
||||||
|
});
|
||||||
|
|
||||||
_this.setData({
|
_this.setData({
|
||||||
staffServeList: serveList,
|
staffServeList: serveList,
|
||||||
staffMusicList: musicList
|
staffMusicList: musicList
|
||||||
@ -138,8 +150,11 @@ Page({
|
|||||||
let staffMusicList = _this.data.staffMusicList
|
let staffMusicList = _this.data.staffMusicList
|
||||||
let staffServeList = _this.data.staffServeList
|
let staffServeList = _this.data.staffServeList
|
||||||
let musicId = ''
|
let musicId = ''
|
||||||
|
// 检查音控组是否有选择
|
||||||
|
let hasMusicStaff = false
|
||||||
for (let key in staffMusicList) {
|
for (let key in staffMusicList) {
|
||||||
if (staffMusicList[key].isSelect) {
|
if (staffMusicList[key].isSelect) {
|
||||||
|
hasMusicStaff = true
|
||||||
musicId += staffMusicList[key].id + ','
|
musicId += staffMusicList[key].id + ','
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -148,8 +163,11 @@ Page({
|
|||||||
musicId = musicId.substring(0, musicId.length - 1)
|
musicId = musicId.substring(0, musicId.length - 1)
|
||||||
}
|
}
|
||||||
let serveId = ''
|
let serveId = ''
|
||||||
|
// 检查会务服务组是否有选择
|
||||||
|
let hasServiceStaff = false
|
||||||
for (let key in staffServeList) {
|
for (let key in staffServeList) {
|
||||||
if (staffServeList[key].isSelect) {
|
if (staffServeList[key].isSelect) {
|
||||||
|
hasServiceStaff = true
|
||||||
serveId += staffServeList[key].id + ','
|
serveId += staffServeList[key].id + ','
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -157,6 +175,13 @@ Page({
|
|||||||
// 去掉最后一个,
|
// 去掉最后一个,
|
||||||
serveId = serveId.substring(0, serveId.length - 1)
|
serveId = serveId.substring(0, serveId.length - 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 保存选择状态到本地存储
|
||||||
|
wx.setStorageSync('staffStatus_' + _this.data.rId, {
|
||||||
|
hasMusicStaff,
|
||||||
|
hasServiceStaff
|
||||||
|
});
|
||||||
|
|
||||||
addStaff({
|
addStaff({
|
||||||
id: _this.data.rId,
|
id: _this.data.rId,
|
||||||
voiceWaiter: musicId,
|
voiceWaiter: musicId,
|
||||||
@ -166,6 +191,17 @@ Page({
|
|||||||
type: 'success',
|
type: 'success',
|
||||||
message: '分配成功!'
|
message: '分配成功!'
|
||||||
})
|
})
|
||||||
|
|
||||||
|
// 获取页面栈
|
||||||
|
let pages = getCurrentPages()
|
||||||
|
// 获取上一页实例
|
||||||
|
let prevPage = pages[pages.length - 2]
|
||||||
|
// 设置上一页的dataChange为true,触发刷新
|
||||||
|
prevPage.setData({
|
||||||
|
dataChange: true
|
||||||
|
})
|
||||||
|
|
||||||
|
// 返回上一页
|
||||||
wx.navigateBack()
|
wx.navigateBack()
|
||||||
})
|
})
|
||||||
|
|
||||||
|
@ -444,6 +444,47 @@ Page({
|
|||||||
showCancel = true
|
showCancel = true
|
||||||
showEdit = true
|
showEdit = true
|
||||||
showStaff = true
|
showStaff = true
|
||||||
|
|
||||||
|
// 根据会务负责人选择状态设置按钮颜色和提示
|
||||||
|
try {
|
||||||
|
// 从本地存储获取会务负责人选择状态
|
||||||
|
let staffStatus = wx.getStorageSync('staffStatus_' + item.id);
|
||||||
|
if (staffStatus) {
|
||||||
|
// 判断音控组和会务服务组选择状态
|
||||||
|
const hasMusicStaff = staffStatus.hasMusicStaff;
|
||||||
|
const hasServiceStaff = staffStatus.hasServiceStaff;
|
||||||
|
|
||||||
|
if (hasMusicStaff && hasServiceStaff) {
|
||||||
|
// 音控组和会务服务组都有选择
|
||||||
|
item.staffBtnType = '';
|
||||||
|
item.staffTip = '';
|
||||||
|
// 绿色样式标记
|
||||||
|
item.isStaffComplete = true;
|
||||||
|
} else if (!hasMusicStaff && !hasServiceStaff) {
|
||||||
|
// 音控组和会务服务组都没有选择
|
||||||
|
item.staffBtnType = 'danger';
|
||||||
|
item.staffTip = '请选择音控组和会务服务组';
|
||||||
|
item.isStaffComplete = false;
|
||||||
|
} else if (hasMusicStaff && !hasServiceStaff) {
|
||||||
|
// 只选择了音控组
|
||||||
|
item.staffBtnType = 'warning';
|
||||||
|
item.staffTip = '请选择会务服务组';
|
||||||
|
item.isStaffComplete = false;
|
||||||
|
} else if (!hasMusicStaff && hasServiceStaff) {
|
||||||
|
// 只选择了会务服务组
|
||||||
|
item.staffBtnType = 'warning';
|
||||||
|
item.staffTip = '请选择音控组';
|
||||||
|
item.isStaffComplete = false;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
// 默认状态:黄色按钮(与取消预约按钮一致),提示选择两个组
|
||||||
|
item.staffBtnType = 'warning';
|
||||||
|
item.staffTip = '请选择音控组和会务服务组';
|
||||||
|
item.isStaffComplete = false;
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error('获取会务负责人状态失败', error);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (statusValue == 9) {
|
if (statusValue == 9) {
|
||||||
@ -500,6 +541,41 @@ Page({
|
|||||||
url: "/pages/meeting/meetingRoom/meetingStaff/meetingStaff?rId=" + id,
|
url: "/pages/meeting/meetingRoom/meetingStaff/meetingStaff?rId=" + id,
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 生命周期函数--监听页面显示
|
||||||
|
* 添加刷新会务负责人状态按钮显示逻辑
|
||||||
|
*/
|
||||||
|
onShow() {
|
||||||
|
let _this = this;
|
||||||
|
|
||||||
|
// 每次页面显示时检查用户角色是否有变化
|
||||||
|
let currentUserData = wx.getStorageSync('user');
|
||||||
|
let userRoleChanged = false;
|
||||||
|
|
||||||
|
// 检查用户角色是否发生变化
|
||||||
|
if(_this.data.userData && currentUserData && _this.data.userData.roomRole !== currentUserData.roomRole) {
|
||||||
|
userRoleChanged = true;
|
||||||
|
// 更新用户数据
|
||||||
|
_this.setData({
|
||||||
|
userData: currentUserData
|
||||||
|
});
|
||||||
|
console.log('用户角色已变更,重新加载数据');
|
||||||
|
}
|
||||||
|
|
||||||
|
// 数据是否变化或用户角色变化
|
||||||
|
if (_this.data.dataChange || userRoleChanged) {
|
||||||
|
// 刷新数据
|
||||||
|
_this.setData({
|
||||||
|
dataChange: false,
|
||||||
|
// 预约记录参数
|
||||||
|
reservationPageNum: 1,
|
||||||
|
reservationDataList: [],
|
||||||
|
reservationIsDataAll: false,
|
||||||
|
})
|
||||||
|
_this.getDataList()
|
||||||
|
}
|
||||||
|
},
|
||||||
// 取消预约一系列方法
|
// 取消预约一系列方法
|
||||||
cancelConfirm(e) {
|
cancelConfirm(e) {
|
||||||
console.log('cancelConfirm', e);
|
console.log('cancelConfirm', e);
|
||||||
@ -673,18 +749,38 @@ Page({
|
|||||||
}).then(res => {
|
}).then(res => {
|
||||||
console.log('passOrder', res)
|
console.log('passOrder', res)
|
||||||
if (res.code == 0) {
|
if (res.code == 0) {
|
||||||
// 刷新预约数据
|
// 通知成功
|
||||||
_this.setData({
|
|
||||||
reservationPageNum: 1,
|
|
||||||
reservationDataList: [],
|
|
||||||
reservationIsDataAll: false,
|
|
||||||
showRejectReason: false
|
|
||||||
})
|
|
||||||
Notify({
|
Notify({
|
||||||
type: 'success',
|
type: 'success',
|
||||||
message: '已通过该申请!'
|
message: '已通过该申请!'
|
||||||
})
|
})
|
||||||
_this.getDataList()
|
|
||||||
|
// 先提示用户选择会务负责人,再刷新数据
|
||||||
|
wx.showModal({
|
||||||
|
title: '会务负责人',
|
||||||
|
content: '请选择会议的音控组和会务服务组负责人',
|
||||||
|
confirmText: '去选择',
|
||||||
|
cancelText: '我知道了',
|
||||||
|
success(res) {
|
||||||
|
if (res.confirm) {
|
||||||
|
// 点击"去选择",跳转到会务负责人页面
|
||||||
|
wx.navigateTo({
|
||||||
|
url: "/pages/meeting/meetingRoom/meetingStaff/meetingStaff?rId=" + id,
|
||||||
|
})
|
||||||
|
} else {
|
||||||
|
// 点击"我知道了",只刷新数据
|
||||||
|
console.log('用户选择稍后设置会务负责人')
|
||||||
|
// 刷新预约数据
|
||||||
|
_this.setData({
|
||||||
|
reservationPageNum: 1,
|
||||||
|
reservationDataList: [],
|
||||||
|
reservationIsDataAll: false,
|
||||||
|
showRejectReason: false
|
||||||
|
})
|
||||||
|
_this.getDataList()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
} else {
|
} else {
|
||||||
// 危险通知
|
// 危险通知
|
||||||
Notify({
|
Notify({
|
||||||
@ -772,39 +868,7 @@ Page({
|
|||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
|
||||||
* 生命周期函数--监听页面显示
|
|
||||||
*/
|
|
||||||
onShow() {
|
|
||||||
let _this = this;
|
|
||||||
|
|
||||||
// 每次页面显示时检查用户角色是否有变化
|
|
||||||
let currentUserData = wx.getStorageSync('user');
|
|
||||||
let userRoleChanged = false;
|
|
||||||
|
|
||||||
// 检查用户角色是否发生变化
|
|
||||||
if(_this.data.userData && currentUserData && _this.data.userData.roomRole !== currentUserData.roomRole) {
|
|
||||||
userRoleChanged = true;
|
|
||||||
// 更新用户数据
|
|
||||||
_this.setData({
|
|
||||||
userData: currentUserData
|
|
||||||
});
|
|
||||||
console.log('用户角色已变更,重新加载数据');
|
|
||||||
}
|
|
||||||
|
|
||||||
// 数据是否变化或用户角色变化
|
|
||||||
if (_this.data.dataChange || userRoleChanged) {
|
|
||||||
// 刷新数据
|
|
||||||
_this.setData({
|
|
||||||
dataChange: false,
|
|
||||||
// 预约记录参数
|
|
||||||
reservationPageNum: 1,
|
|
||||||
reservationDataList: [],
|
|
||||||
reservationIsDataAll: false,
|
|
||||||
})
|
|
||||||
_this.getDataList()
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 生命周期函数--监听页面隐藏
|
* 生命周期函数--监听页面隐藏
|
||||||
|
@ -29,6 +29,7 @@
|
|||||||
<view class="priceView">
|
<view class="priceView">
|
||||||
<view class="cancelContent" wx:if="{{item.status == 1 && item.operate && item.operate.length > 0}}">取消原因:{{item.operate[item.operate.length - 1].content}}</view>
|
<view class="cancelContent" wx:if="{{item.status == 1 && item.operate && item.operate.length > 0}}">取消原因:{{item.operate[item.operate.length - 1].content}}</view>
|
||||||
<view class="cancelContent" wx:if="{{item.status == 3 && item.operate && item.operate.length > 0}}">驳回原因:{{item.operate[item.operate.length - 1].content}}</view>
|
<view class="cancelContent" wx:if="{{item.status == 3 && item.operate && item.operate.length > 0}}">驳回原因:{{item.operate[item.operate.length - 1].content}}</view>
|
||||||
|
<view class="staff-tip" wx:if="{{item.showStaff && item.staffTip}}">{{item.staffTip}}</view>
|
||||||
</view>
|
</view>
|
||||||
<view class="btnView">
|
<view class="btnView">
|
||||||
<!-- <view class="btn" wx:if="{{item.showInvite}}">去邀请
|
<!-- <view class="btn" wx:if="{{item.showInvite}}">去邀请
|
||||||
@ -36,8 +37,8 @@
|
|||||||
</view> -->
|
</view> -->
|
||||||
<van-button style="margin-right: 10rpx;" size="small" plain type="warning" wx:if="{{item.showCancel}}" bind:tap="cancelConfirm" data-id="{{item.id}}" data-status="{{item.status}}">取消预约</van-button>
|
<van-button style="margin-right: 10rpx;" size="small" plain type="warning" wx:if="{{item.showCancel}}" bind:tap="cancelConfirm" data-id="{{item.id}}" data-status="{{item.status}}">取消预约</van-button>
|
||||||
<van-button style="margin-right: 10rpx;" size="small" plain type="info" wx:if="{{item.showEdit}}" bind:tap="editConfirm" data-id="{{item.id}}">修改信息</van-button>
|
<van-button style="margin-right: 10rpx;" size="small" plain type="info" wx:if="{{item.showEdit}}" bind:tap="editConfirm" data-id="{{item.id}}">修改信息</van-button>
|
||||||
<van-button style="margin-right: 10rpx;" size="small" plain type="warning" wx:if="{{item.showStaff}}" bind:tap="goStaff" data-id="{{item.id}}">会务负责人</van-button>
|
<van-button style="margin-right: 10rpx;" size="small" plain type="{{item.staffBtnType || 'warning'}}" custom-class="{{item.isStaffComplete ? 'approve-btn-success' : ''}}" wx:if="{{item.showStaff}}" bind:tap="goStaff" data-id="{{item.id}}">会务负责人</van-button>
|
||||||
<van-button style="margin-right: 10rpx;" size="small" plain type="primary" wx:if="{{item.showApprove}}" bind:tap="pass" data-id="{{item.id}}">通过</van-button>
|
<van-button style="margin-right: 10rpx;" size="small" plain type="primary" custom-class="approve-btn-success" wx:if="{{item.showApprove}}" bind:tap="pass" data-id="{{item.id}}">通过</van-button>
|
||||||
<van-button style="margin-right: 10rpx;" size="small" plain type="danger" wx:if="{{item.showApprove}}" bind:tap="rejectConfirm" data-id="{{item.id}}">驳回</van-button>
|
<van-button style="margin-right: 10rpx;" size="small" plain type="danger" wx:if="{{item.showApprove}}" bind:tap="rejectConfirm" data-id="{{item.id}}">驳回</van-button>
|
||||||
|
|
||||||
<!-- <view class="btn" wx:if="{{item.showDetail}}" bind:tap="jumpMeetingDetail" data-id="{{item.id}}">查看详情</view> -->
|
<!-- <view class="btn" wx:if="{{item.showDetail}}" bind:tap="jumpMeetingDetail" data-id="{{item.id}}">查看详情</view> -->
|
||||||
|
@ -151,3 +151,17 @@
|
|||||||
.loadAllLine {
|
.loadAllLine {
|
||||||
margin-top: 80rpx;
|
margin-top: 80rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.staff-tip {
|
||||||
|
color: #ff4d4f;
|
||||||
|
font-size: 28rpx;
|
||||||
|
margin: 10rpx 0;
|
||||||
|
text-align: right;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 通过按钮绿色样式 */
|
||||||
|
.approve-btn-success {
|
||||||
|
color: #07c160 !important;
|
||||||
|
border-color: #07c160 !important;
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user