2024-02-26 17:17:27 +08:00
|
|
|
|
const app = getApp()
|
2024-03-01 16:42:56 +08:00
|
|
|
|
import {
|
2024-09-16 18:22:00 +08:00
|
|
|
|
meetingRoomDict,
|
|
|
|
|
meetingRoomListRq,
|
2024-03-01 16:42:56 +08:00
|
|
|
|
} from "../../../api/meeting/meetingRoom.js"
|
|
|
|
|
|
2024-05-17 09:15:54 +08:00
|
|
|
|
import Notify from '@vant/weapp/notify/notify';
|
|
|
|
|
|
|
|
|
|
|
2024-02-26 09:06:34 +08:00
|
|
|
|
Page({
|
|
|
|
|
|
2024-09-16 18:22:00 +08:00
|
|
|
|
/**
|
|
|
|
|
* 页面的初始数据
|
|
|
|
|
*/
|
|
|
|
|
data: {
|
|
|
|
|
IMG_NAME: app.IMG_NAME,
|
|
|
|
|
roomDataList: {},
|
2024-09-17 20:26:20 +08:00
|
|
|
|
rId: '',
|
2024-09-24 17:36:03 +08:00
|
|
|
|
dep: '',
|
2024-09-16 18:22:00 +08:00
|
|
|
|
date: '',
|
2024-09-24 23:04:06 +08:00
|
|
|
|
dateStr: '',
|
2024-09-16 18:22:00 +08:00
|
|
|
|
queryParam: {
|
|
|
|
|
timeRangeDict: {
|
|
|
|
|
list: [{
|
|
|
|
|
text: '全天',
|
2024-09-24 23:04:06 +08:00
|
|
|
|
value: 4
|
2024-09-16 18:22:00 +08:00
|
|
|
|
}, {
|
|
|
|
|
text: '上午',
|
|
|
|
|
value: 1
|
|
|
|
|
}, {
|
|
|
|
|
text: '下午',
|
|
|
|
|
value: 2
|
|
|
|
|
}, {
|
|
|
|
|
text: '晚上',
|
|
|
|
|
value: 3
|
|
|
|
|
}],
|
2024-09-24 23:04:06 +08:00
|
|
|
|
value: 4,
|
2024-09-16 18:22:00 +08:00
|
|
|
|
},
|
|
|
|
|
meetingTypeDict: {
|
|
|
|
|
list: [],
|
|
|
|
|
value: null,
|
|
|
|
|
},
|
|
|
|
|
personDict: {
|
2024-09-27 21:33:07 +08:00
|
|
|
|
list: [],
|
2024-09-16 18:22:00 +08:00
|
|
|
|
value: null,
|
|
|
|
|
},
|
|
|
|
|
itemDict: {
|
|
|
|
|
list: [],
|
|
|
|
|
value: null,
|
|
|
|
|
title: '设备'
|
|
|
|
|
},
|
|
|
|
|
shapeDict: {
|
|
|
|
|
list: [],
|
|
|
|
|
value: null,
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
},
|
2024-03-01 16:42:56 +08:00
|
|
|
|
|
2024-09-16 18:22:00 +08:00
|
|
|
|
/**
|
|
|
|
|
* 生命周期函数--监听页面加载
|
|
|
|
|
*/
|
|
|
|
|
onLoad(options) {
|
|
|
|
|
// 页面初始化 options为页面跳转所带来的参数
|
2024-09-28 17:46:21 +08:00
|
|
|
|
let userDetail = wx.getStorageSync('user')
|
2024-09-16 18:22:00 +08:00
|
|
|
|
if (options.name) {
|
|
|
|
|
wx.setNavigationBarTitle({
|
|
|
|
|
title: options.name
|
|
|
|
|
})
|
|
|
|
|
}
|
2024-09-17 20:26:20 +08:00
|
|
|
|
if (!options.rId) {
|
|
|
|
|
// 首页过来会找不到rId,设为空,否则会报错
|
|
|
|
|
options.rId = ''
|
|
|
|
|
}
|
2024-09-24 17:36:03 +08:00
|
|
|
|
if (!options.dep) {
|
|
|
|
|
options.dep = ''
|
2024-09-24 23:04:06 +08:00
|
|
|
|
options.depId = ''
|
2024-09-24 17:36:03 +08:00
|
|
|
|
}
|
2024-09-16 18:22:00 +08:00
|
|
|
|
const time = options.time
|
|
|
|
|
if (!time || time === '') {
|
|
|
|
|
app.selfShowMsg('请选择时间!', '/pages/meeting/index/index')
|
|
|
|
|
return
|
|
|
|
|
}
|
2024-09-24 23:04:06 +08:00
|
|
|
|
|
2024-09-16 18:22:00 +08:00
|
|
|
|
const _date = new Date(parseInt(time))
|
|
|
|
|
const _year = _date.getFullYear()
|
|
|
|
|
const _month = _date.getMonth() + 1 // 月份从0开始,需要+1
|
|
|
|
|
const _day = _date.getDate()
|
|
|
|
|
// 设置标题
|
|
|
|
|
wx.setNavigationBarTitle({
|
|
|
|
|
title: _year + '年' + _month + '月' + _day + '日'
|
|
|
|
|
})
|
2024-09-24 23:04:06 +08:00
|
|
|
|
this.setData({
|
|
|
|
|
date: time,
|
|
|
|
|
rId: options.rId,
|
|
|
|
|
dep: options.dep,
|
|
|
|
|
depId: options.depId,
|
2024-09-28 17:46:21 +08:00
|
|
|
|
dateStr: _year + '-' + _month + '-' + _day,
|
|
|
|
|
userDetail: userDetail
|
2024-09-24 23:04:06 +08:00
|
|
|
|
})
|
2024-09-28 17:46:21 +08:00
|
|
|
|
if (userDetail.roomRole != 5 && options.depId == '') {
|
|
|
|
|
// 非管理员必须认证单位
|
|
|
|
|
Notify('非法操作!')
|
|
|
|
|
wx.navigateBack()
|
|
|
|
|
return
|
|
|
|
|
}
|
2024-03-01 16:42:56 +08:00
|
|
|
|
// 初始化数据
|
2024-09-16 18:22:00 +08:00
|
|
|
|
this.initData();
|
|
|
|
|
},
|
2024-02-26 09:06:34 +08:00
|
|
|
|
|
2024-09-16 18:22:00 +08:00
|
|
|
|
// 初始化数据
|
|
|
|
|
initData() {
|
|
|
|
|
let _this = this;
|
2024-09-24 23:04:06 +08:00
|
|
|
|
meetingRoomDict().then(res => {
|
|
|
|
|
console.log('meetingRoomDict', res)
|
|
|
|
|
let queryParam = _this.data.queryParam
|
|
|
|
|
let dataObj = res.data
|
2024-09-16 18:22:00 +08:00
|
|
|
|
// 封装参数
|
2024-09-24 23:04:06 +08:00
|
|
|
|
let floorList = []
|
|
|
|
|
for (let key in dataObj.floors) {
|
|
|
|
|
let eachObj = dataObj.floors[key]
|
|
|
|
|
const keys = Object.keys(eachObj)
|
|
|
|
|
floorList.push({
|
|
|
|
|
text: keys[0],
|
|
|
|
|
value: keys[0]
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
floorList = [{
|
2024-09-16 18:22:00 +08:00
|
|
|
|
text: "楼层",
|
|
|
|
|
value: null
|
2024-09-24 23:04:06 +08:00
|
|
|
|
}, ...floorList]
|
|
|
|
|
queryParam.meetingTypeDict.list = floorList
|
|
|
|
|
let deviceList = []
|
|
|
|
|
for (let key in dataObj.devices) {
|
|
|
|
|
let eachObj = dataObj.devices[key]
|
|
|
|
|
const keys = Object.keys(eachObj)
|
|
|
|
|
deviceList.push({
|
|
|
|
|
text: keys[0],
|
|
|
|
|
value: keys[0]
|
|
|
|
|
})
|
|
|
|
|
}
|
2024-09-16 18:22:00 +08:00
|
|
|
|
// 赋值参数
|
2024-09-24 23:04:06 +08:00
|
|
|
|
queryParam.itemDict.list = deviceList
|
|
|
|
|
let typeList = []
|
|
|
|
|
for (let key in dataObj.types) {
|
|
|
|
|
let eachObj = dataObj.types[key]
|
|
|
|
|
const keys = Object.keys(eachObj)
|
|
|
|
|
typeList.push({
|
|
|
|
|
text: keys[0],
|
|
|
|
|
value: keys[0]
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
typeList = [{
|
|
|
|
|
text: "形式",
|
|
|
|
|
value: null
|
|
|
|
|
}, ...typeList]
|
|
|
|
|
queryParam.shapeDict.list = typeList
|
2024-09-27 21:33:07 +08:00
|
|
|
|
|
|
|
|
|
let numList = []
|
|
|
|
|
for (let key in dataObj.personNum) {
|
|
|
|
|
let eachObj = dataObj.personNum[key]
|
|
|
|
|
// const keys = Object.keys(eachObj)
|
|
|
|
|
numList.push({
|
|
|
|
|
text: eachObj,
|
|
|
|
|
value: eachObj
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
numList = [{
|
|
|
|
|
text: "人数",
|
|
|
|
|
value: null
|
|
|
|
|
}, ...numList]
|
|
|
|
|
queryParam.personDict.list = numList
|
|
|
|
|
|
2024-09-16 18:22:00 +08:00
|
|
|
|
_this.setData({
|
|
|
|
|
queryParam
|
|
|
|
|
})
|
|
|
|
|
})
|
2024-09-24 23:04:06 +08:00
|
|
|
|
// 1.会议室类型,2.人数,3.会议室设备,4.形式
|
|
|
|
|
// meetingRoomDict("1").then(res => {
|
|
|
|
|
// console.log('meetingRoomDict("1")', res);
|
|
|
|
|
// // 封装参数
|
|
|
|
|
// let list = res.roomContents.map(item => {
|
|
|
|
|
// return {
|
|
|
|
|
// text: item.typeName,
|
|
|
|
|
// value: item.typeValue
|
|
|
|
|
// }
|
|
|
|
|
// })
|
|
|
|
|
// list = [{
|
|
|
|
|
// text: "楼层",
|
|
|
|
|
// value: null
|
|
|
|
|
// }, ...list]
|
|
|
|
|
// // 赋值参数
|
|
|
|
|
// let queryParam = _this.data.queryParam;
|
|
|
|
|
// queryParam.meetingTypeDict.list = list;
|
|
|
|
|
// _this.setData({
|
|
|
|
|
// queryParam
|
|
|
|
|
// })
|
|
|
|
|
// console.log('meetingRoomDict("1")=>', list);
|
|
|
|
|
// })
|
2024-09-16 18:22:00 +08:00
|
|
|
|
// meetingRoomDict("2").then(res => {
|
|
|
|
|
// console.log('meetingRoomDict("2")', res);
|
|
|
|
|
// // 封装参数
|
|
|
|
|
// let list = res.roomContents.map(item => {
|
|
|
|
|
// return {
|
|
|
|
|
// text: item.capacityNum + '人',
|
|
|
|
|
// value: item.capacityNum
|
|
|
|
|
// }
|
|
|
|
|
// })
|
|
|
|
|
// list = [{
|
|
|
|
|
// text: "人数",
|
|
|
|
|
// value: null
|
|
|
|
|
// }, ...list]
|
|
|
|
|
// // 赋值参数
|
|
|
|
|
// let queryParam = _this.data.queryParam;
|
|
|
|
|
// queryParam.personDict.list = list;
|
|
|
|
|
// _this.setData({
|
|
|
|
|
// queryParam
|
|
|
|
|
// })
|
|
|
|
|
// console.log('meetingRoomDict("2")=>', list);
|
|
|
|
|
// })
|
2024-09-24 23:04:06 +08:00
|
|
|
|
// meetingRoomDict("3").then(res => {
|
|
|
|
|
// console.log('meetingRoomDict("3")', res);
|
|
|
|
|
// // 封装参数
|
|
|
|
|
// let list = res.roomItem.map(item => {
|
|
|
|
|
// return {
|
|
|
|
|
// text: item.name,
|
|
|
|
|
// value: item.id
|
|
|
|
|
// }
|
|
|
|
|
// })
|
|
|
|
|
// // 赋值参数
|
|
|
|
|
// let queryParam = _this.data.queryParam;
|
|
|
|
|
// queryParam.itemDict.list = list;
|
|
|
|
|
// _this.setData({
|
|
|
|
|
// queryParam
|
|
|
|
|
// })
|
|
|
|
|
// console.log('meetingRoomDict("3")=>', list);
|
|
|
|
|
// })
|
|
|
|
|
// meetingRoomDict("4").then(res => {
|
|
|
|
|
// console.log('meetingRoomDict("4")', res);
|
|
|
|
|
// // 封装参数
|
|
|
|
|
// let list = res.roomContents.map(item => {
|
|
|
|
|
// return {
|
|
|
|
|
// text: item.shape,
|
|
|
|
|
// value: item.shape
|
|
|
|
|
// }
|
|
|
|
|
// })
|
|
|
|
|
// list = [{
|
|
|
|
|
// text: "形式",
|
|
|
|
|
// value: null
|
|
|
|
|
// }, ...list]
|
|
|
|
|
// // 赋值参数
|
|
|
|
|
// let queryParam = _this.data.queryParam;
|
|
|
|
|
// queryParam.shapeDict.list = list;
|
|
|
|
|
// _this.setData({
|
|
|
|
|
// queryParam
|
|
|
|
|
// })
|
|
|
|
|
// console.log('meetingRoomDict("4")=>', list);
|
|
|
|
|
// })
|
2024-09-16 18:22:00 +08:00
|
|
|
|
// 数据-会议室列表
|
|
|
|
|
this.meetingRoomList()
|
|
|
|
|
},
|
2024-03-01 16:42:56 +08:00
|
|
|
|
|
2024-09-16 18:22:00 +08:00
|
|
|
|
// 查询条件变动
|
|
|
|
|
dictChange(e) {
|
|
|
|
|
console.log('dictChange', e);
|
|
|
|
|
let queryParam = this.data.queryParam;
|
|
|
|
|
queryParam[e.currentTarget.dataset.type].value = e.detail;
|
|
|
|
|
this.setData({
|
|
|
|
|
queryParam
|
|
|
|
|
})
|
2024-03-01 17:41:59 +08:00
|
|
|
|
// 数据-会议室列表
|
2024-09-16 18:22:00 +08:00
|
|
|
|
this.meetingRoomList()
|
|
|
|
|
},
|
2024-03-01 17:41:59 +08:00
|
|
|
|
|
2024-09-16 18:22:00 +08:00
|
|
|
|
// 设备-多选
|
|
|
|
|
dictSwitchChange(e) {
|
|
|
|
|
console.log('dictSwitchChange', e);
|
|
|
|
|
let select = e.detail;
|
|
|
|
|
let name = e.currentTarget.dataset.name;
|
|
|
|
|
let id = e.currentTarget.dataset.id;
|
|
|
|
|
let queryParam = this.data.queryParam;
|
|
|
|
|
queryParam.itemDict.list = queryParam.itemDict.list.map(item => {
|
|
|
|
|
if (item.value == id) {
|
|
|
|
|
item.select = select;
|
|
|
|
|
}
|
|
|
|
|
return item
|
|
|
|
|
})
|
|
|
|
|
// 计算选择数量
|
|
|
|
|
let selectCount = queryParam.itemDict.list.filter(item => item.select).length;
|
|
|
|
|
console.log('selectCount', selectCount);
|
|
|
|
|
if (selectCount > 0) {
|
|
|
|
|
queryParam.itemDict.title = '设备+' + selectCount;
|
|
|
|
|
} else {
|
|
|
|
|
queryParam.itemDict.title = '设备';
|
|
|
|
|
}
|
|
|
|
|
this.setData({
|
|
|
|
|
queryParam
|
|
|
|
|
})
|
|
|
|
|
// 数据-会议室列表
|
|
|
|
|
this.meetingRoomList()
|
|
|
|
|
},
|
|
|
|
|
// 设备多选收起
|
|
|
|
|
itemDictConfirm() {
|
|
|
|
|
this.selectComponent('#itemSelect').toggle();
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// 数据-会议室列表
|
|
|
|
|
meetingRoomList() {
|
|
|
|
|
let _this = this;
|
|
|
|
|
let queryParam = _this.data.queryParam;
|
2024-09-25 22:10:57 +08:00
|
|
|
|
let devicesArr = []
|
|
|
|
|
for (let key in queryParam.itemDict.list) {
|
|
|
|
|
let eachObj = queryParam.itemDict.list[key]
|
|
|
|
|
if (eachObj.select) {
|
|
|
|
|
devicesArr.push(eachObj.value)
|
2024-09-16 18:22:00 +08:00
|
|
|
|
}
|
2024-09-25 22:10:57 +08:00
|
|
|
|
}
|
|
|
|
|
// let roomItemList = queryParam.itemDict.list.filter(item => item.select).map(item => {
|
|
|
|
|
// return {
|
|
|
|
|
// "id": item.value,
|
|
|
|
|
// "name": item.text
|
|
|
|
|
// }
|
|
|
|
|
// })
|
2024-09-16 18:22:00 +08:00
|
|
|
|
let param = {
|
2024-09-24 23:04:06 +08:00
|
|
|
|
floor: queryParam.meetingTypeDict.value, // 楼层
|
|
|
|
|
capacityNum: queryParam.personDict.value, // 人数
|
2024-09-25 22:10:57 +08:00
|
|
|
|
devices: devicesArr, // 设备
|
2024-09-24 23:04:06 +08:00
|
|
|
|
typeName: queryParam.shapeDict.value, // 形状
|
|
|
|
|
timeFormat: queryParam.timeRangeDict.value, // 预约时间格式:0 任意时间(管理员),1上午,2下午,3晚上 4 全天。值为0时,读取startTime和endTime为预约会议时间范围;其他值读取mrdate,再拼接时间为预约会议时间范围。
|
|
|
|
|
mrdate: _this.data.dateStr
|
2024-09-16 18:22:00 +08:00
|
|
|
|
}
|
|
|
|
|
// 会议室列表数据
|
|
|
|
|
meetingRoomListRq(param).then(res => {
|
|
|
|
|
console.log('meetingRoomListRq', res);
|
|
|
|
|
let roomArr = {}
|
2024-09-24 23:04:06 +08:00
|
|
|
|
let valueObj = res.data
|
2024-09-16 18:22:00 +08:00
|
|
|
|
for (let key in valueObj) {
|
|
|
|
|
let eachObj = valueObj[key]
|
2024-09-24 23:04:06 +08:00
|
|
|
|
if (eachObj['floorId'] in roomArr) {} else {
|
|
|
|
|
roomArr[eachObj['floorId']] = {
|
|
|
|
|
name: eachObj['floor'],
|
2024-09-16 18:22:00 +08:00
|
|
|
|
list: []
|
|
|
|
|
}
|
2024-05-17 09:15:54 +08:00
|
|
|
|
}
|
2024-09-24 23:04:06 +08:00
|
|
|
|
roomArr[eachObj['floorId']]['list'].push(eachObj)
|
2024-09-16 18:22:00 +08:00
|
|
|
|
}
|
|
|
|
|
// console.log(roomArr)
|
|
|
|
|
_this.setData({
|
|
|
|
|
roomDataList: roomArr
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
},
|
2024-02-26 17:17:27 +08:00
|
|
|
|
|
2024-09-16 18:22:00 +08:00
|
|
|
|
// 会议室
|
|
|
|
|
jumpMeetingRoom(e) {
|
|
|
|
|
console.log('jumpMeetingRoom', e)
|
|
|
|
|
let timeRange = this.data.queryParam.timeRangeDict.value
|
|
|
|
|
timeRange = timeRange ? timeRange : 0
|
|
|
|
|
// 跳转预约详情
|
|
|
|
|
wx.navigateTo({
|
2024-09-25 22:10:57 +08:00
|
|
|
|
url: "/pages/meeting/meetingRoom/meetingRoom?status="+ e.currentTarget.dataset.status +"&id=" + e.currentTarget.dataset.id + '&time=' + this.data.date + '&timeRange=' + timeRange + '&rId=' + this.data.rId + '&dep=' + this.data.dep + '&depId=' + this.data.depId
|
2024-09-16 18:22:00 +08:00
|
|
|
|
})
|
|
|
|
|
},
|
2024-02-26 09:06:34 +08:00
|
|
|
|
|
2024-09-16 18:22:00 +08:00
|
|
|
|
/**
|
|
|
|
|
* 生命周期函数--监听页面初次渲染完成
|
|
|
|
|
*/
|
|
|
|
|
onReady() {
|
2024-02-26 09:06:34 +08:00
|
|
|
|
|
2024-09-16 18:22:00 +08:00
|
|
|
|
},
|
2024-02-26 09:06:34 +08:00
|
|
|
|
|
2024-09-16 18:22:00 +08:00
|
|
|
|
/**
|
|
|
|
|
* 生命周期函数--监听页面显示
|
|
|
|
|
*/
|
|
|
|
|
onShow() {
|
2024-02-26 09:06:34 +08:00
|
|
|
|
|
2024-09-16 18:22:00 +08:00
|
|
|
|
},
|
2024-02-26 09:06:34 +08:00
|
|
|
|
|
2024-09-16 18:22:00 +08:00
|
|
|
|
/**
|
|
|
|
|
* 生命周期函数--监听页面隐藏
|
|
|
|
|
*/
|
|
|
|
|
onHide() {
|
2024-02-26 09:06:34 +08:00
|
|
|
|
|
2024-09-16 18:22:00 +08:00
|
|
|
|
},
|
2024-02-26 09:06:34 +08:00
|
|
|
|
|
2024-09-16 18:22:00 +08:00
|
|
|
|
/**
|
|
|
|
|
* 生命周期函数--监听页面卸载
|
|
|
|
|
*/
|
|
|
|
|
onUnload() {
|
2024-02-26 09:06:34 +08:00
|
|
|
|
|
2024-09-16 18:22:00 +08:00
|
|
|
|
},
|
2024-02-26 09:06:34 +08:00
|
|
|
|
|
2024-09-16 18:22:00 +08:00
|
|
|
|
/**
|
|
|
|
|
* 页面相关事件处理函数--监听用户下拉动作
|
|
|
|
|
*/
|
|
|
|
|
onPullDownRefresh() {
|
2024-02-26 09:06:34 +08:00
|
|
|
|
|
2024-09-16 18:22:00 +08:00
|
|
|
|
},
|
2024-02-26 09:06:34 +08:00
|
|
|
|
|
2024-09-16 18:22:00 +08:00
|
|
|
|
/**
|
|
|
|
|
* 页面上拉触底事件的处理函数
|
|
|
|
|
*/
|
|
|
|
|
onReachBottom() {
|
2024-02-26 09:06:34 +08:00
|
|
|
|
|
2024-09-16 18:22:00 +08:00
|
|
|
|
},
|
2024-02-26 09:06:34 +08:00
|
|
|
|
|
2024-09-16 18:22:00 +08:00
|
|
|
|
/**
|
|
|
|
|
* 用户点击右上角分享
|
|
|
|
|
*/
|
|
|
|
|
onShareAppMessage() {
|
|
|
|
|
|
|
|
|
|
}
|
2024-02-26 09:06:34 +08:00
|
|
|
|
})
|