const app = getApp() import { meetingRoomDict, meetingRoomListRq, } from "../../../api/meeting/meetingRoom.js" import Notify from '@vant/weapp/notify/notify'; Page({ /** * 页面的初始数据 */ data: { IMG_NAME: app.IMG_NAME, roomDataList: {}, rId: '', dep: '', date: '', dateStr: '', queryParam: { timeRangeDict: { list: [{ text: '全天', value: 4 }, { text: '上午', value: 1 }, { text: '下午', value: 2 }, { text: '晚上', value: 3 }], value: 4, }, meetingTypeDict: { list: [], value: null, }, personDict: { list: [], value: null, }, itemDict: { list: [], value: null, title: '设备' }, shapeDict: { list: [], value: null, }, } }, /** * 生命周期函数--监听页面加载 */ onLoad(options) { // 页面初始化 options为页面跳转所带来的参数 let userDetail = wx.getStorageSync('user') if (options.name) { wx.setNavigationBarTitle({ title: options.name }) } if (!options.rId) { // 首页过来会找不到rId,设为空,否则会报错 options.rId = '' } if (!options.dep) { options.dep = '' options.depId = '' } const time = options.time if (!time || time === '') { app.selfShowMsg('请选择时间!', '/pages/meeting/index/index') return } 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 + '日' }) this.setData({ date: time, rId: options.rId, dep: options.dep, depId: options.depId, dateStr: _year + '-' + _month + '-' + _day, userDetail: userDetail }) if (userDetail.roomRole != 5 && options.depId == '') { // 非管理员必须认证单位 Notify('非法操作!') wx.navigateBack() return } // 初始化数据 this.initData(); }, // 初始化数据 initData() { let _this = this; meetingRoomDict().then(res => { console.log('meetingRoomDict', res) let queryParam = _this.data.queryParam let dataObj = res.data // 封装参数 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 = [{ text: "楼层", value: null }, ...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] }) } // 赋值参数 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 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 _this.setData({ queryParam }) }) // 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); // }) // 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); // }) // 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); // }) // 数据-会议室列表 this.meetingRoomList() }, // 查询条件变动 dictChange(e) { console.log('dictChange', e); let queryParam = this.data.queryParam; queryParam[e.currentTarget.dataset.type].value = e.detail; this.setData({ queryParam }) // 数据-会议室列表 this.meetingRoomList() }, // 设备-多选 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; let devicesArr = [] for (let key in queryParam.itemDict.list) { let eachObj = queryParam.itemDict.list[key] if (eachObj.select) { devicesArr.push(eachObj.value) } } // let roomItemList = queryParam.itemDict.list.filter(item => item.select).map(item => { // return { // "id": item.value, // "name": item.text // } // }) let param = { floor: queryParam.meetingTypeDict.value, // 楼层 capacityNum: queryParam.personDict.value, // 人数 devices: devicesArr, // 设备 typeName: queryParam.shapeDict.value, // 形状 timeFormat: queryParam.timeRangeDict.value, // 预约时间格式:0 任意时间(管理员),1上午,2下午,3晚上 4 全天。值为0时,读取startTime和endTime为预约会议时间范围;其他值读取mrdate,再拼接时间为预约会议时间范围。 mrdate: _this.data.dateStr } // 会议室列表数据 meetingRoomListRq(param).then(res => { console.log('meetingRoomListRq', res); let roomArr = {} let valueObj = res.data for (let key in valueObj) { let eachObj = valueObj[key] if (eachObj['floorId'] in roomArr) {} else { roomArr[eachObj['floorId']] = { name: eachObj['floor'], list: [] } } roomArr[eachObj['floorId']]['list'].push(eachObj) } // console.log(roomArr) _this.setData({ roomDataList: roomArr }) }) }, // 会议室 jumpMeetingRoom(e) { console.log('jumpMeetingRoom', e) let timeRange = this.data.queryParam.timeRangeDict.value timeRange = timeRange ? timeRange : 0 // 跳转预约详情 wx.navigateTo({ 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 }) }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady() { }, /** * 生命周期函数--监听页面显示 */ onShow() { }, /** * 生命周期函数--监听页面隐藏 */ onHide() { }, /** * 生命周期函数--监听页面卸载 */ onUnload() { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh() { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom() { }, /** * 用户点击右上角分享 */ onShareAppMessage() { } })