管理员功能

- 管理员进入系统
- 管理员进入会议室列表
- 管理员选择时间、占用会议、预约会议
- 管理员、普通人员权限
This commit is contained in:
471615499@qq.com 2024-09-28 17:46:21 +08:00
parent 176d037238
commit d397749fbf
21 changed files with 465 additions and 131 deletions

View File

@ -217,3 +217,20 @@ export function addStaff(data) {
data data
}) })
} }
// 提前占用会议室
export function useRoom(data) {
return request({
url: '/app/mr/beforehand',
method: "post",
data
})
}
// 会议室-获取所有单位
export function getDep() {
return request({
url: '/app/mr/getOrg',
method: "post",
})
}

View File

@ -77,6 +77,7 @@
"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/meeting/meetingRoom/meetingStaff/meetingStaff",
"pages/meeting/meetingRoom/meetingDep/meetingDep",
"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

@ -5,7 +5,6 @@ import {
depLogin depLogin
} from "../../../api/login/login.js" } from "../../../api/login/login.js"
Page({ Page({
/** /**
* 页面的初始数据 * 页面的初始数据
*/ */
@ -13,25 +12,25 @@ Page({
IMG_NAME: app.IMG_NAME, IMG_NAME: app.IMG_NAME,
userDetail: {}, userDetail: {},
menuList: [{ menuList: [{
type: "report", type: "reservation",
name: "会议预约", name: "会议预约",
img: "/profile/static/meeting/index/reservation.png", img: "/profile/static/meeting/index/reservation.png",
path: "/pages/meeting/meetingReservation/meetingReservation", path: "/pages/meeting/meetingReservation/meetingReservation",
visible: false visible: false
}, { }, {
type: "query", type: "record",
name: "预约记录", name: "预约记录",
img: "/profile/static/meeting/index/record.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: "approve",
name: "会议审核", name: "会议审核",
img: "/profile/static/meeting/index/examine.png", img: "/profile/static/meeting/index/examine.png",
path: "/pages/meeting/reservationRecord/approve/approve", path: "/pages/meeting/reservationRecord/approve/approve",
visible: true visible: false
}, { }, {
type: "repair", type: "service",
name: "会务服务", name: "会务服务",
img: "/profile/static/meeting/index/serve.png", img: "/profile/static/meeting/index/serve.png",
path: "/pages/meeting/reservationRecord/service/service", path: "/pages/meeting/reservationRecord/service/service",
@ -84,11 +83,15 @@ Page({
*/ */
onLoad(options) { onLoad(options) {
let _this = this let _this = this
// 获取一月后时间,默认只能选一个月之后 let userDetail = wx.getStorageSync('user')
// 获取一月后时间,默认只能选一个月之后,管理员可以选一年后的
const today = new Date() const today = new Date()
const newDate = new Date(today) const newDate = new Date(today)
if (userDetail.roomRole == 5) {
newDate.setFullYear(newDate.getFullYear() + 1)
} else {
newDate.setMonth(newDate.getMonth() + 1) newDate.setMonth(newDate.getMonth() + 1)
let userDetail = wx.getStorageSync('user') }
_this.setData({ _this.setData({
userDetail, userDetail,
maxDate: newDate.getTime() maxDate: newDate.getTime()
@ -124,10 +127,15 @@ Page({
} }
} else { } else {
if (obj.name === '会议预约') { if (obj.name === '会议预约') {
if (this.data.userDetail.roomRole == 5) {
// 管理员,不需要认证
this.showTimePicker()
} else {
// 未授权 // 未授权
this.setData({ this.setData({
showLogin: true showLogin: true
}) })
}
return return
// app.selfShowMsg('您暂无权限使用该功能请联系机关事务局XXX电话15888888888进行赋权后使用') // app.selfShowMsg('您暂无权限使用该功能请联系机关事务局XXX电话15888888888进行赋权后使用')
} else { } else {
@ -141,28 +149,34 @@ Page({
visibleBlock() { visibleBlock() {
let _this = this let _this = this
let userDetail = _this.data.userDetail let userDetail = _this.data.userDetail
let dataType = userDetail.dataType let userRole = userDetail.roomRole
let menuList = _this.data.menuList let menuList = _this.data.menuList
// 角色类型 1.普通用户3派单员5维修工7管理员 , 9楼层 // 角色类型 1.普通用户3.会务人员5.管理员
// if (dataType == 3 || dataType == 7) { // 展示-派单入口,仅有派单员、管理员能进 if (userRole == 3) {
// menuList = menuList.map(item => { // 会务人员,会务服务允许访问
// if (item.type == 'assign') { menuList = menuList.map(item => {
// item.visible = true if (item.type == 'service') {
// } item.visible = true
// return item }
// }) return item
// } })
// if (dataType == 5) { // 展示-维修入口 }
// menuList = menuList.map(item => { if (userRole == 5) {
// if (item.type == 'repair') { // 管理员,会务审核允许访问,且预约记录自动跳转到会议审核
// item.visible = true menuList = menuList.map(item => {
// } if (item.type == 'approve') {
// return item item.visible = true
// }) }
// } if (item.type == 'record') {
// _this.setData({ item.path = '/pages/meeting/reservationRecord/approve/approve'
// menuList item.visible = true
// }) }
return item
})
}
_this.setData({
menuList
})
}, },
back() { back() {

View File

@ -61,6 +61,7 @@ Page({
*/ */
onLoad(options) { onLoad(options) {
// 页面初始化 options为页面跳转所带来的参数 // 页面初始化 options为页面跳转所带来的参数
let userDetail = wx.getStorageSync('user')
if (options.name) { if (options.name) {
wx.setNavigationBarTitle({ wx.setNavigationBarTitle({
title: options.name title: options.name
@ -93,8 +94,15 @@ Page({
rId: options.rId, rId: options.rId,
dep: options.dep, dep: options.dep,
depId: options.depId, depId: options.depId,
dateStr: _year + '-' + _month + '-' + _day dateStr: _year + '-' + _month + '-' + _day,
userDetail: userDetail
}) })
if (userDetail.roomRole != 5 && options.depId == '') {
// 非管理员必须认证单位
Notify('非法操作!')
wx.navigateBack()
return
}
// 初始化数据 // 初始化数据
this.initData(); this.initData();
}, },

View File

@ -4,7 +4,7 @@
<view class="queryView"> <view class="queryView">
<van-dropdown-menu active-color="#4e96f8"> <van-dropdown-menu active-color="#4e96f8">
<!-- 时间范围 --> <!-- 时间范围 -->
<van-dropdown-item value="{{ queryParam.timeRangeDict.value }}" options="{{ queryParam.timeRangeDict.list }}" bind:change="dictChange" data-type="timeRangeDict" /> <van-dropdown-item wx:if="{{ userDetail.roomRole != 5 }}" value="{{ queryParam.timeRangeDict.value }}" options="{{ queryParam.timeRangeDict.list }}" bind:change="dictChange" data-type="timeRangeDict" />
<!-- 字典-会议室 --> <!-- 字典-会议室 -->
<van-dropdown-item value="{{ queryParam.meetingTypeDict.value }}" options="{{ queryParam.meetingTypeDict.list }}" bind:change="dictChange" data-type="meetingTypeDict" /> <van-dropdown-item value="{{ queryParam.meetingTypeDict.value }}" options="{{ queryParam.meetingTypeDict.list }}" bind:change="dictChange" data-type="meetingTypeDict" />
<!-- 字典-人数 --> <!-- 字典-人数 -->
@ -26,7 +26,7 @@
<view wx:for="{{roomDataList}}"> <view wx:for="{{roomDataList}}">
<view class="roomType">{{item.name}}</view> <view class="roomType">{{item.name}}</view>
<view class="meetingRoomItem" bind:tap="jumpMeetingRoom" wx:for="{{item.list}}" wx:for-item="room" wx:key="*this" data-id="{{room.id}}" data-status="{{room.status}}"> <view class="meetingRoomItem" bind:tap="jumpMeetingRoom" wx:for="{{item.list}}" wx:for-item="room" wx:key="*this" data-id="{{room.id}}" data-status="{{room.status}}">
<view class="content" wx:if="{{room.status === 0}}"> <view class="content" wx:if="{{ room.status === 0 || userDetail.roomRole == 5 }}">
<view class="title">{{room.roomNum}}</view> <view class="title">{{room.roomNum}}</view>
<view class="priceView"> <view class="priceView">
<view class="unit"> <view class="unit">
@ -34,7 +34,7 @@
</view> </view>
</view> </view>
</view> </view>
<view class="content disabled" wx:if="{{room.status === 1}}"> <view class="content disabled" wx:if="{{ room.status === 1 && userDetail.roomRole != 5 }}">
<view class="title">{{room.roomNum}}</view> <view class="title">{{room.roomNum}}</view>
<view class="priceView"> <view class="priceView">
<view class="unit"> <view class="unit">

View File

@ -4,22 +4,24 @@ import Notify from '@vant/weapp/notify/notify';
import { import {
meetingRoomBookedRecordRq, meetingRoomBookedRecordRq,
selectFreeMeetingRoomRq selectFreeMeetingRoomRq,
useRoom
} from "../../../../api/meeting/meetingRoom.js" } from "../../../../api/meeting/meetingRoom.js"
import { import {
selfFormatTimeReturnSecond59, selfFormatTimeReturnSecond59,
selfFormatTimeYMDHMS, selfFormatTimeYMDHMS,
selfFormatTimeYMD,
selfFormatTimeYMDH selfFormatTimeYMDH
} from "../../../../utils/util.js" } from "../../../../utils/util.js"
Page({ Page({
/** /**
* 页面的初始数据 * 页面的初始数据
*/ */
data: { data: {
IMG_NAME: app.IMG_NAME, IMG_NAME: app.IMG_NAME,
userDetail: {},
date: '', date: '',
rId: '', rId: '',
dep: '', dep: '',
@ -136,13 +138,12 @@ Page({
// 预约时间 // 预约时间
reservationTime() { reservationTime() {
// this.setData({
// showTime: true
// })
}, },
// 确认时间 // 确认时间
confirmTime() { confirmTime(e) {
let act = e.currentTarget.dataset.act
let _this = this; let _this = this;
let date = this.data.date let date = this.data.date
let meetingRoomId = _this.data.meetingRoomId let meetingRoomId = _this.data.meetingRoomId
@ -159,41 +160,46 @@ Page({
Notify('结束时间不能小于开始时间!') Notify('结束时间不能小于开始时间!')
return return
} }
if (act == 'use') {
// 提前占用
console.log('占用!')
// 获取当下
let nowTime = selfFormatTimeYMD(_this.data.date)
let data = {
"mr": {
"roomId": meetingRoomId,
"start": selfFormatTimeYMDHMS(startTime),
"end": selfFormatTimeYMDHMS(endTime),
"mrdate": nowTime,
"timeFormat": "0"
}
}
useRoom(data).then(res => {
console.log('占用结果', res)
if (res.code == 0) {
wx.reLaunch({
url: '/pages/meeting/pay/waitComplete/waitComplete',
})
} else {
// 错误提示
Notify({
type: 'danger',
message: res.msg
});
}
})
} else {
// 下一步填写信息
wx.navigateTo({ wx.navigateTo({
url: "/pages/meeting/meetingRoom/meetingOrder/meetingOrder" + paramUrl, url: "/pages/meeting/meetingRoom/meetingOrder/meetingOrder" + paramUrl,
}) })
}
// // 当前会议室是否可以预约
// selectFreeMeetingRoomRq({
// "roomContentId": meetingRoomId,
// "startTime": selfFormatTimeYMDHMS(startTime),
// "endDate": selfFormatTimeYMDHMS(endTime)
// }).then(res => {
// console.log('selectFreeMeetingRoomRq', res);
// // 可以预约
// if (!res.count) {
// wx.navigateTo({
// url: "/pages/meeting/meetingRoom/meetingOrder/meetingOrder" + paramUrl,
// })
// // _this.setData({
// // showTime: false
// // })
// } else { // 不能预约
// Notify({
// type: 'danger',
// message: res.msg,
// duration: 1000,
// selector: '#notify',
// });
// }
// })
}, },
// 取消时间 // 取消时间
cancelTime() { cancelTime() {
// this.setData({
// showTime: false
// })
}, },
// 初始化时间 // 初始化时间
@ -229,6 +235,14 @@ Page({
_minMintue = 30 _minMintue = 30
_maxMintue = 59 _maxMintue = 59
} }
if (this.data.userDetail.roomRole == 5) {
// 管理员全天可选
_minTime = 8
_maxTime = 23
_startTime = '8:30'
_minMintue = 30
_maxMintue = 59
}
// let maxTime = new Date(_date) // let maxTime = new Date(_date)
// maxTime.setFullYear(maxTime.getFullYear() + 3) // maxTime.setFullYear(maxTime.getFullYear() + 3)
this.setData({ this.setData({
@ -281,6 +295,11 @@ Page({
// 晚上从1730 - 2400 // 晚上从1730 - 2400
_endMaxTime = 23 _endMaxTime = 23
} }
if (this.data.userDetail.roomRole == 5) {
// 管理员全天可选
_endMaxTime = 23
_endMaxMinute = 59
}
this.setData({ this.setData({
endTime: _endMinTime, endTime: _endMinTime,
endMinTime: sTimeHour, endMinTime: sTimeHour,
@ -295,6 +314,7 @@ Page({
*/ */
onLoad(options) { onLoad(options) {
console.log('onLoad', options); console.log('onLoad', options);
let userDetail = wx.getStorageSync('user')
let time = options.time let time = options.time
let _timeRange = options.timeRange let _timeRange = options.timeRange
let _rangeOp = [] let _rangeOp = []
@ -316,6 +336,11 @@ Page({
} else { } else {
_rangeOp = [_timeRangeText] _rangeOp = [_timeRangeText]
} }
if (userDetail.roomRole == 5) {
_timeRange = '4'
_rangeOp = ['全天']
_timeRangeText = '全天'
}
const _date = new Date(parseInt(time)) const _date = new Date(parseInt(time))
const _year = _date.getFullYear() const _year = _date.getFullYear()
const _month = _date.getMonth() + 1 // 月份从0开始需要+1 const _month = _date.getMonth() + 1 // 月份从0开始需要+1
@ -330,7 +355,8 @@ Page({
dateText: _year + '年' + _month + '月' + _day + '日', dateText: _year + '年' + _month + '月' + _day + '日',
timeRange: _timeRange, timeRange: _timeRange,
timeRangeText: _timeRangeText, timeRangeText: _timeRangeText,
rangeOp: _rangeOp rangeOp: _rangeOp,
userDetail: userDetail
}) })
// minTime: null, // minTime: null,
// maxTime: null, // maxTime: null,

View File

@ -31,7 +31,9 @@
</view> </view>
<van-datetime-picker type="time" visible-item-count="4" value="{{ endTime }}" min-hour="{{ endMinTime }}" max-hour="{{ endMaxTime }}" min-minute="{{ endMinMinute }}" max-minute="{{ endMaxMinute }}" bind:change="onInputEndTime" confirm-button-text="" cancel-button-text="" show-toolbar="{{false}}" filter="{{ filterTime }}" /> <van-datetime-picker type="time" visible-item-count="4" value="{{ endTime }}" min-hour="{{ endMinTime }}" max-hour="{{ endMaxTime }}" min-minute="{{ endMinMinute }}" max-minute="{{ endMaxMinute }}" bind:change="onInputEndTime" confirm-button-text="" cancel-button-text="" show-toolbar="{{false}}" filter="{{ filterTime }}" />
</view> </view>
<view class="submitBtn" bind:tap="confirmTime">确认时间</view> <view wx:if="{{ userDetail.roomRole != 5 }}" data-act="confirm" class="submitBtn" bind:tap="confirmTime">确认时间</view>
<view wx:if="{{ userDetail.roomRole == 5 }}" data-act="confirm" class="submitBtn" style="width: 40%;left: 28%;" bind:tap="confirmTime">填写信息</view>
<view wx:if="{{ userDetail.roomRole == 5 }}" data-act="use" class="submitBtn" style="width: 40%;left: 72%;background: red;" bind:tap="confirmTime">提前占用</view>
<van-popup show="{{ showRangePicker }}" bind:close="hideRange" position="bottom"> <van-popup show="{{ showRangePicker }}" bind:close="hideRange" position="bottom">
<van-picker show-toolbar title="请选择会议时段" bind:cancel="hideRange" bind:confirm="rangePick" columns="{{ rangeOp }}" /> <van-picker show-toolbar title="请选择会议时段" bind:cancel="hideRange" bind:confirm="rangePick" columns="{{ rangeOp }}" />
</van-popup> </van-popup>

View File

@ -0,0 +1,136 @@
const app = getApp()
import Notify from '@vant/weapp/notify/notify';
import {
pinyin
} from 'pinyin-pro'
import {
getDep,
} from "../../../../api/meeting/meetingRoom.js"
Page({
/**
* 页面的初始数据
*/
data: {
depId: '',
depList: {}
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
console.log(options)
let _this = this
let depId = options.depId
_this.setData({
depId: depId
})
// 获取数据
_this.getData()
},
// 获取数据
getData() {
let _this = this
// 获取单位列表
getDep().then(res => {
console.log('单位列表', res)
let dep = res.data
let depList = {}
for (let key in dep) {
let eachObj = dep[key]
let depName = eachObj['orgName']
let depPinYin = pinyin(depName, {
pattern: 'first',
type: 'array'
})
depPinYin = depPinYin[0]
if (!depList.hasOwnProperty(depPinYin)) {
depList[depPinYin] = []
}
depList[depPinYin].push({
id: eachObj['orgId'],
name: depName
})
}
let newDepList = []
for (let key in depList) {
newDepList.push({
first: key,
dep: depList[key]
})
}
_this.setData({
depList: newDepList
})
})
},
// 选择单位方法
chooseDep(e) {
console.log(e)
let id = e.currentTarget.dataset.id
let name = e.currentTarget.dataset.name
// 数据状态变更,向上个页面传递变更
let pages = getCurrentPages() //获取page
let prevPage = pages[pages.length - 2] //上一个页面(父页面)
prevPage.setData({
dep: name,
depId: id,
'detail.depName': name,
'detail.depId': id,
})
wx.navigateBack()
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})

View File

@ -0,0 +1,14 @@
{
"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",
"van-index-bar": "@vant/weapp/index-bar/index",
"van-index-anchor": "@vant/weapp/index-anchor/index",
"van-cell": "@vant/weapp/cell/index",
"van-cell-group": "@vant/weapp/cell-group/index"
},
"navigationBarTitleText": "单位选择"
}

View File

@ -0,0 +1,6 @@
<van-index-bar>
<view wx:for="{{depList}}" >
<van-index-anchor index="{{item.first}}" />
<van-cell wx:for="{{item.dep}}" size="large" wx:for-item="dep" title="{{dep.name}}" data-name="{{dep.name}}" data-id="{{dep.id}}" bind:click="chooseDep" />
</view>
</van-index-bar>

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

@ -224,8 +224,9 @@ Page({
let value = e.detail let value = e.detail
let _data = _this.data.detail let _data = _this.data.detail
_data[name] = value _data[name] = value
let key = 'detail.' + name
this.setData({ this.setData({
..._data [key]: value
}) })
}, },
@ -331,7 +332,12 @@ Page({
} }
}) })
}, },
chooseDep() {
console.log(111)
wx.navigateTo({
url: '/pages/meeting/meetingRoom/meetingDep/meetingDep?depId=' + this.data.depId
})
},
/** /**
* 生命周期函数--监听页面初次渲染完成 * 生命周期函数--监听页面初次渲染完成
*/ */
@ -345,7 +351,7 @@ Page({
onShow() { onShow() {
console.log('onShow'); console.log('onShow');
let _this = this let _this = this
console.log(this.data)
}, },
/** /**

View File

@ -62,7 +62,7 @@
<view class="itemView"> <view class="itemView">
<view class="label">预约部门</view> <view class="label">预约部门</view>
<view class="content"> <view class="content">
<van-field value="{{ detail.depName }}" placeholder="" readonly clearable input-align="right" data-name="depName" /> <van-field value="{{ detail.depName }}" placeholder="点击选择部门" readonly clearable bind:click-input="chooseDep" input-align="right" data-name="depName" />
</view> </view>
</view> </view>
<view class="itemView"> <view class="itemView">
@ -112,18 +112,8 @@
</view> </view>
<view class="submitBtn" bind:tap="submitCase">提交预约</view> <view class="submitBtn" bind:tap="submitCase">提交预约</view>
</view>
<!-- 提示 --> <!-- 提示 -->
<van-dialog id="van-dialog" /> <van-dialog id="van-dialog" />
<van-dialog use-slot title="价格明细" show="{{ priceDialogShow }}">
<view class="priceDialogView">
<view class="content">{{room.money}}/小时({{room.duration}}小时起)</view>
<view class="remark">
<van-icon name="info-o" size="28rpx" />
{{room.remake}}
</view>
</view>
</van-dialog>
<!-- 提示 --> <!-- 提示 -->
<van-notify id="van-notify" /> <van-notify id="van-notify" />
</view>

View File

@ -30,18 +30,24 @@ Page({
* 生命周期函数--监听页面加载 * 生命周期函数--监听页面加载
*/ */
onLoad(options) { onLoad(options) {
let _this = this; let _this = this
console.log('onLoad', options); let userDetail = wx.getStorageSync('user')
console.log('onLoad', options)
let time = options.time let time = options.time
let timeRange = options.timeRange let timeRange = options.timeRange
let status = options.status let status = options.status
if (userDetail.roomRole == 5) {
// 管理员不受限制
status = '0'
}
_this.setData({ _this.setData({
date: time, date: time,
timeRange: timeRange, timeRange: timeRange,
rId: options.rId, rId: options.rId,
dep: options.dep, dep: options.dep,
depId: options.depId, depId: options.depId,
canRes: status === "1" ? false : true canRes: status == "1" ? false : true,
userDetail: userDetail
}) })
let meetingRoomId = options.id; let meetingRoomId = options.id;
meetingRoomDetailRq({ meetingRoomDetailRq({

View File

@ -4,24 +4,35 @@ Page({
* 页面的初始数据 * 页面的初始数据
*/ */
data: { data: {
id: '' id: '',
userDetail: {}
}, },
/** /**
* 生命周期函数--监听页面加载 * 生命周期函数--监听页面加载
*/ */
onLoad(options) { onLoad(options) {
let _this = this; let _this = this
let userDetail = wx.getStorageSync('user')
_this.setData({ _this.setData({
...options ...options,
userDetail: userDetail
}) })
}, },
// 跳转-会议预约记录 // 跳转-会议预约记录
jumpMeetingRecord() { jumpMeetingRecord() {
if (this.data.userDetail.roomRole == 5) {
// 管理员,跳到审核列表
wx.reLaunch({
url: "/pages/meeting/reservationRecord/approve/approve",
})
} else {
wx.reLaunch({ wx.reLaunch({
url: "/pages/meeting/reservationRecord/meetingRecord/meetingRecord", url: "/pages/meeting/reservationRecord/meetingRecord/meetingRecord",
}) })
}
}, },
/** /**

View File

@ -220,6 +220,12 @@ Page({
reservationPageNum, reservationPageNum,
reservationDataList, reservationDataList,
}) })
// 超过总大小,则加载完成
if (_this.data.reservationDataList.length >= res.total) {
_this.setData({
reservationIsDataAll: true
})
}
} else { } else {
_this.setData({ _this.setData({
reservationIsDataAll: true reservationIsDataAll: true
@ -285,15 +291,15 @@ Page({
if (statusValue == 3) { if (statusValue == 3) {
// 驳回,可以修改 // 驳回,可以修改
statusColor = "#333333" statusColor = "#333333"
showCancel = true // showCancel = true
showEdit = true // showEdit = true
statusName = '已驳回' statusName = '已驳回'
} }
if (statusValue == 4) { if (statusValue == 4) {
// 占用,可以修改,取消 // 占用,可以修改
showEdit = true showEdit = true
showCancel = true // showCancel = true
showStaff = true // showStaff = true
statusName = '已占用' statusName = '已占用'
} }
if (statusValue == 5) { if (statusValue == 5) {
@ -301,13 +307,14 @@ Page({
showEdit = true showEdit = true
showCancel = true showCancel = true
showApprove = true showApprove = true
showStaff = true // showStaff = true
statusName = '待审核' statusName = '待审核'
} }
if (statusValue == 7) { if (statusValue == 7) {
// 审核通过,以取消,不允许修改 // 审核通过,管理员可修改
showCancel = true // showCancel = true
showStaff = true showStaff = true
showEdit = true
statusName = '已通过' statusName = '已通过'
} }
if (statusValue == 11) { if (statusValue == 11) {
@ -331,6 +338,12 @@ Page({
console.log(`JSON error : ${error}`); console.log(`JSON error : ${error}`);
} }
} }
for (let key in item) {
// null设置为空
if (item[key] == null) {
item[key] = ''
}
}
return item return item
}) })
}, },

View File

@ -126,11 +126,13 @@ Page({
let showApprove = false // 显示审批操作 let showApprove = false // 显示审批操作
let statusName = '' let statusName = ''
// 预约状态1 取消 3 驳回 4 占用 5 待审核 7 审核通过,待开始 9 进行中 11已结束 // 预约状态1 取消 3 驳回 4 占用 5 待审核 7 审核通过,待开始 9 进行中 11已结束
let act = _this.data.act
if (statusValue == 1) { if (statusValue == 1) {
// 取消 // 取消
// 状态字体颜色 // 状态字体颜色
if (_this.data.act == '') { if (act == '') {
// 已取消 用户可修改 // 普通用户通过预约列表查看
showEdit = true showEdit = true
} }
statusColor = "#333333" statusColor = "#333333"
@ -138,16 +140,19 @@ Page({
} }
if (statusValue == 3) { if (statusValue == 3) {
// 驳回,可以修改 // 驳回,可以修改
statusColor = "#333333" if (act == '') {
showCancel = true // 普通用户通过预约列表查看
showEdit = true showEdit = true
}
statusColor = "#333333"
statusName = '已驳回' statusName = '已驳回'
} }
if (statusValue == 4) { if (statusValue == 4) {
// 占用,可以修改,取消 // 占用,管理员可以编辑
if (act == 'approve') {
// 管理员允许编辑
showEdit = true showEdit = true
showCancel = true }
showSatff = true
statusName = '已占用' statusName = '已占用'
} }
if (statusValue == 5) { if (statusValue == 5) {
@ -155,7 +160,7 @@ Page({
if (_this.data.act == 'approve') { if (_this.data.act == 'approve') {
showEdit = true showEdit = true
showApprove = true showApprove = true
showSatff = true // showSatff = true
} else { } else {
showCancel = true showCancel = true
} }
@ -166,6 +171,7 @@ Page({
// 审核通过,管理员可以修改 // 审核通过,管理员可以修改
if (_this.data.act == 'approve') { if (_this.data.act == 'approve') {
showEdit = true showEdit = true
showCancel = true
showSatff = true showSatff = true
} }
statusName = '已通过' statusName = '已通过'
@ -235,6 +241,11 @@ Page({
} }
} }
recordDetail.staff = staffArr recordDetail.staff = staffArr
for (let key in recordDetail) {
if (recordDetail[key] == null) {
recordDetail[key] = ''
}
}
_this.setData({ _this.setData({
detail: recordDetail detail: recordDetail
}) })

View File

@ -251,7 +251,14 @@ Page({
reservationPageNum, reservationPageNum,
reservationDataList, reservationDataList,
}) })
// 超过总大小,则加载完成
if (_this.data.reservationDataList.length >= res.total) {
_this.setData({
reservationIsDataAll: true
})
}
} else { } else {
console.log('111')
_this.setData({ _this.setData({
reservationIsDataAll: true reservationIsDataAll: true
}) })
@ -328,13 +335,14 @@ Page({
statusName = '已驳回' statusName = '已驳回'
} }
if (statusValue == 4) { if (statusValue == 4) {
// 占用,可以修改,取消 // 占用,普通人员不存在此情况
showEdit = true // showEdit = true
showCancel = true // showCancel = true
statusName = '已占用' statusName = '已占用'
} }
if (statusValue == 5) { if (statusValue == 5) {
// 待审核,普通用户只能取消,管理员可以修改 // 待审核,普通用户只能取消,管理员可以修改
showCancel = true
statusName = '待审核' statusName = '待审核'
} }
if (statusValue == 7) { if (statusValue == 7) {
@ -342,7 +350,7 @@ Page({
statusName = '已通过' statusName = '已通过'
} }
if (statusValue == 9) { if (statusValue == 9) {
// 已结束 // 进行中
statusColor = "#333333" statusColor = "#333333"
statusName = '进行中' statusName = '进行中'
} }
@ -365,6 +373,12 @@ Page({
console.log(`JSON error : ${error}`); console.log(`JSON error : ${error}`);
} }
} }
for (let key in item) {
// null设置为空
if (item[key] == null) {
item[key] = ''
}
}
return item return item
}) })
}, },

View File

@ -154,6 +154,12 @@ Page({
reservationPageNum, reservationPageNum,
reservationDataList, reservationDataList,
}) })
// 超过总大小,则加载完成
if (_this.data.reservationDataList.length >= res.total) {
_this.setData({
reservationIsDataAll: true
})
}
} else { } else {
_this.setData({ _this.setData({
reservationIsDataAll: true reservationIsDataAll: true

8
package-lock.json generated
View File

@ -5,13 +5,19 @@
"packages": { "packages": {
"": { "": {
"dependencies": { "dependencies": {
"@vant/weapp": "^1.11.4" "@vant/weapp": "^1.11.4",
"pinyin-pro": "^3.25.0"
} }
}, },
"node_modules/@vant/weapp": { "node_modules/@vant/weapp": {
"version": "1.11.4", "version": "1.11.4",
"resolved": "https://registry.npmjs.org/@vant/weapp/-/weapp-1.11.4.tgz", "resolved": "https://registry.npmjs.org/@vant/weapp/-/weapp-1.11.4.tgz",
"integrity": "sha512-egOsWO4hVMP1SQSqQ46jy8UD3WysvlnUecRzPM21Y3ovkOFZ6wlaO7oHQmTXRpwr+V41Qri1qEbtNjhVxFqdyw==" "integrity": "sha512-egOsWO4hVMP1SQSqQ46jy8UD3WysvlnUecRzPM21Y3ovkOFZ6wlaO7oHQmTXRpwr+V41Qri1qEbtNjhVxFqdyw=="
},
"node_modules/pinyin-pro": {
"version": "3.25.0",
"resolved": "https://registry.npmmirror.com/pinyin-pro/-/pinyin-pro-3.25.0.tgz",
"integrity": "sha512-MpwQPa9Ry+1vVHrsRgfJTvbtoMn0Gk529OZEWqN+O/iiSOqnd2dbKrDMaX87n7YvVPhy2W1/sKakK9zheYNWeg=="
} }
} }
} }

View File

@ -1,5 +1,6 @@
{ {
"dependencies": { "dependencies": {
"@vant/weapp": "^1.11.4" "@vant/weapp": "^1.11.4",
"pinyin-pro": "^3.25.0"
} }
} }