2024-02-27 12:00:47 +08:00
|
|
|
|
const app = getApp()
|
|
|
|
|
|
2024-03-05 19:18:13 +08:00
|
|
|
|
import Dialog from '@vant/weapp/dialog/dialog';
|
2024-03-05 20:07:13 +08:00
|
|
|
|
import Notify from '@vant/weapp/notify/notify';
|
2024-03-05 19:18:13 +08:00
|
|
|
|
|
2024-03-04 17:10:32 +08:00
|
|
|
|
import {
|
2024-09-16 23:14:30 +08:00
|
|
|
|
meetingRoomDetailRq,
|
|
|
|
|
getCustomerTicketRq,
|
|
|
|
|
calculateMeetingRoomAmountRq,
|
|
|
|
|
saveMeetingRecordRq,
|
|
|
|
|
saveChangyangMeetingRecordRq,
|
2024-09-24 23:04:06 +08:00
|
|
|
|
selectReservationByIdRq,
|
|
|
|
|
meetingRoomDict
|
2024-03-04 17:10:32 +08:00
|
|
|
|
} from "../../../../api/meeting/meetingRoom.js"
|
|
|
|
|
|
2024-03-04 18:00:27 +08:00
|
|
|
|
import {
|
2024-09-16 23:14:30 +08:00
|
|
|
|
selfFormatTimeYMD,
|
|
|
|
|
selfFormatTimeHM,
|
|
|
|
|
twoTimeInterval,
|
|
|
|
|
selfArrSum
|
2024-03-04 18:00:27 +08:00
|
|
|
|
} from "../../../../utils/util.js"
|
|
|
|
|
|
|
|
|
|
|
2024-02-27 12:00:47 +08:00
|
|
|
|
Page({
|
|
|
|
|
|
2024-09-16 23:14:30 +08:00
|
|
|
|
/**
|
|
|
|
|
* 页面的初始数据
|
|
|
|
|
*/
|
|
|
|
|
data: {
|
2024-09-17 20:26:20 +08:00
|
|
|
|
rId: '',
|
2024-09-24 17:36:03 +08:00
|
|
|
|
dep: '',
|
2024-09-24 23:04:06 +08:00
|
|
|
|
depId: '',
|
2024-09-16 23:14:30 +08:00
|
|
|
|
IMG_NAME: app.IMG_NAME,
|
|
|
|
|
detail: {},
|
|
|
|
|
meetingRoomId: null,
|
2024-09-25 22:10:57 +08:00
|
|
|
|
timeRange: null,
|
2024-09-16 23:14:30 +08:00
|
|
|
|
startTime: null,
|
|
|
|
|
endTime: null,
|
|
|
|
|
selectDay: null,
|
|
|
|
|
selectCountTime: null,
|
|
|
|
|
bannerList: [],
|
|
|
|
|
room: {},
|
|
|
|
|
userData: {},
|
|
|
|
|
serviceList: [],
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 生命周期函数--监听页面加载
|
|
|
|
|
*/
|
|
|
|
|
onLoad(options) {
|
|
|
|
|
console.log('onLoad', options);
|
|
|
|
|
this.setData({
|
|
|
|
|
...options,
|
|
|
|
|
userData: wx.getStorageSync('user'),
|
2024-09-17 20:26:20 +08:00
|
|
|
|
// selectDay: selfFormatTimeYMD(options.startTime),
|
|
|
|
|
// selectCountTime,
|
2024-09-16 23:14:30 +08:00
|
|
|
|
})
|
2024-09-17 20:26:20 +08:00
|
|
|
|
if (options.startTime && options.endTime) {
|
|
|
|
|
this.getTimeDetail(options.startTime, options.endTime)
|
|
|
|
|
}
|
2024-03-04 17:10:32 +08:00
|
|
|
|
// 详细信息
|
2024-09-16 23:14:30 +08:00
|
|
|
|
this.getDetail();
|
|
|
|
|
},
|
2024-09-17 20:26:20 +08:00
|
|
|
|
/**
|
|
|
|
|
* 计算并填充时间细节
|
|
|
|
|
* @param {*} sTime 开始时间 2024-09-18 09:04:00
|
|
|
|
|
* @param {*} eTime 结束时间 2024-09-18 10:04:00
|
|
|
|
|
*/
|
|
|
|
|
getTimeDetail(sTime, eTime) {
|
|
|
|
|
let selectCountTime = selfFormatTimeHM(sTime) + "-" + selfFormatTimeHM(eTime) + ' 共计' + twoTimeInterval(sTime, eTime)
|
|
|
|
|
this.setData({
|
|
|
|
|
selectDay: selfFormatTimeYMD(sTime),
|
|
|
|
|
selectCountTime,
|
|
|
|
|
})
|
|
|
|
|
},
|
2024-09-16 23:14:30 +08:00
|
|
|
|
// 详细信息
|
|
|
|
|
getDetail() {
|
|
|
|
|
let _this = this;
|
2024-09-17 20:26:20 +08:00
|
|
|
|
let _dataId = _this.data.rId
|
2024-09-16 23:14:30 +08:00
|
|
|
|
if (_dataId === '') {
|
2024-09-17 20:26:20 +08:00
|
|
|
|
console.log('新增预约')
|
2024-09-16 23:14:30 +08:00
|
|
|
|
// 为新增,新增的会议室id是传来的
|
|
|
|
|
let _meetingRoomId = _this.data.meetingRoomId
|
|
|
|
|
_this.getRoomInfo(_meetingRoomId)
|
|
|
|
|
_this.setData({
|
|
|
|
|
detail: {
|
|
|
|
|
orderUser: _this.data.userData.username,
|
|
|
|
|
orderTel: _this.data.userData.mobile,
|
|
|
|
|
title: '',
|
|
|
|
|
personNum: '',
|
|
|
|
|
leader: '',
|
2024-09-24 23:04:06 +08:00
|
|
|
|
depName: _this.data.dep,
|
|
|
|
|
depId: _this.data.depId,
|
2024-09-16 23:14:30 +08:00
|
|
|
|
remark: ''
|
2024-03-05 20:07:13 +08:00
|
|
|
|
}
|
2024-09-16 23:14:30 +08:00
|
|
|
|
})
|
|
|
|
|
} else {
|
2024-09-17 20:26:20 +08:00
|
|
|
|
// 为编辑,编辑有两种情况,一是重新选择会议室和时间,另一种是编辑基本信息
|
|
|
|
|
// 1. 无时间和会议室id,此时根据id获取信息,获取信息后其中有roomId
|
|
|
|
|
// 2. 有时间和会议室id,此时根据会议室id获取会议室信息即可
|
|
|
|
|
let _meetingRoomId = _this.data.meetingRoomId
|
|
|
|
|
if (_meetingRoomId !== null) {
|
|
|
|
|
_this.getRoomInfo(_meetingRoomId)
|
|
|
|
|
}
|
2024-09-26 22:31:45 +08:00
|
|
|
|
selectReservationByIdRq({id: _dataId}).then(res => {
|
2024-09-17 20:26:20 +08:00
|
|
|
|
console.log('编辑,获取信息', res)
|
2024-09-26 22:31:45 +08:00
|
|
|
|
let recordDetail = res.mr
|
|
|
|
|
let roomDetail = res.room
|
|
|
|
|
let serveDetail = res.serve
|
2024-09-17 20:26:20 +08:00
|
|
|
|
if (_meetingRoomId === null) {
|
2024-09-26 22:31:45 +08:00
|
|
|
|
_meetingRoomId = roomDetail.id
|
2024-09-17 20:26:20 +08:00
|
|
|
|
_this.setData({
|
|
|
|
|
meetingRoomId: _meetingRoomId,
|
2024-09-26 22:31:45 +08:00
|
|
|
|
startTime: recordDetail.start,
|
|
|
|
|
endTime: recordDetail.end,
|
|
|
|
|
timeRange: recordDetail.timeFormat
|
2024-09-17 20:26:20 +08:00
|
|
|
|
})
|
|
|
|
|
let serviceId = []
|
2024-09-26 22:31:45 +08:00
|
|
|
|
for (let key in serveDetail) {
|
|
|
|
|
let eachObj = serveDetail[key]
|
|
|
|
|
serviceId.push(eachObj.value)
|
2024-09-17 20:26:20 +08:00
|
|
|
|
}
|
|
|
|
|
_this.getRoomInfo(_meetingRoomId, serviceId)
|
|
|
|
|
// 计算日期和时间
|
2024-09-26 22:31:45 +08:00
|
|
|
|
_this.getTimeDetail(recordDetail.start, recordDetail.end)
|
2024-09-17 20:26:20 +08:00
|
|
|
|
}
|
|
|
|
|
_this.setData({
|
2024-09-26 22:31:45 +08:00
|
|
|
|
dep: recordDetail.userOrg,
|
|
|
|
|
depId: recordDetail.userOrgId,
|
2024-09-17 20:26:20 +08:00
|
|
|
|
detail: {
|
2024-09-26 22:31:45 +08:00
|
|
|
|
orderUser: recordDetail.bookingUserName,
|
|
|
|
|
orderTel: recordDetail.bookingUserPhone,
|
|
|
|
|
title: recordDetail.title,
|
|
|
|
|
personNum: recordDetail.personNum,
|
|
|
|
|
leader: recordDetail.leader,
|
|
|
|
|
depId: recordDetail.userOrgId,
|
|
|
|
|
depName: recordDetail.userOrg,
|
|
|
|
|
remark: recordDetail.remark,
|
2024-09-17 20:26:20 +08:00
|
|
|
|
}
|
|
|
|
|
})
|
2024-09-16 23:14:30 +08:00
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
},
|
2024-09-17 20:26:20 +08:00
|
|
|
|
/**
|
|
|
|
|
* 获取会议室基本信息
|
|
|
|
|
* @param {*} roomId 会议室id
|
|
|
|
|
* @param {*} serveId 提供服务id,用于编辑时默认勾选
|
|
|
|
|
*/
|
|
|
|
|
getRoomInfo(roomId, serveId) {
|
|
|
|
|
serveId = serveId || []
|
2024-09-16 23:14:30 +08:00
|
|
|
|
// 获取会议室详情
|
|
|
|
|
let _this = this
|
2024-09-24 23:04:06 +08:00
|
|
|
|
meetingRoomDetailRq({
|
|
|
|
|
roomId: this.data.meetingRoomId
|
|
|
|
|
}).then(res => {
|
|
|
|
|
let detail = res.room
|
2024-09-16 23:14:30 +08:00
|
|
|
|
let bannerList = []
|
2024-09-25 22:10:57 +08:00
|
|
|
|
if (detail.imgs) {
|
2024-09-16 23:14:30 +08:00
|
|
|
|
try {
|
2024-09-25 22:10:57 +08:00
|
|
|
|
bannerList = detail.imgs.map(item => item.url)
|
2024-09-16 23:14:30 +08:00
|
|
|
|
} catch (error) {
|
|
|
|
|
console.log(`JSON error : ${error}`);
|
2024-06-27 14:55:40 +08:00
|
|
|
|
}
|
2024-09-16 23:14:30 +08:00
|
|
|
|
}
|
2024-09-24 23:04:06 +08:00
|
|
|
|
_this.getService(serveId)
|
2024-09-17 20:26:20 +08:00
|
|
|
|
// 提前处理服务,不需要进入页面后获取
|
2024-09-24 23:04:06 +08:00
|
|
|
|
// let serviceList = detail.roomServeList.map(item => {
|
|
|
|
|
// let isSel = false
|
|
|
|
|
// if (serveId.includes(item.id)) {
|
|
|
|
|
// isSel = true
|
|
|
|
|
// }
|
|
|
|
|
// return {
|
|
|
|
|
// serveId: item.id,
|
|
|
|
|
// serveName: item.serveName,
|
|
|
|
|
// isSelect: isSel,
|
|
|
|
|
// num: '',
|
|
|
|
|
// type: 'free'
|
|
|
|
|
// }
|
|
|
|
|
// })
|
|
|
|
|
console.log(detail)
|
2024-09-16 23:14:30 +08:00
|
|
|
|
_this.setData({
|
2024-09-24 23:04:06 +08:00
|
|
|
|
// serviceList: serviceList,
|
2024-09-16 23:14:30 +08:00
|
|
|
|
room: detail,
|
|
|
|
|
bannerList
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
},
|
2024-09-25 22:10:57 +08:00
|
|
|
|
getService(serveId) {
|
2024-09-24 23:04:06 +08:00
|
|
|
|
let _this = this;
|
|
|
|
|
meetingRoomDict().then(res => {
|
|
|
|
|
console.log('meetingRoomDict', res)
|
|
|
|
|
let queryParam = _this.data.queryParam
|
|
|
|
|
let dataObj = res.data
|
|
|
|
|
// 封装参数
|
|
|
|
|
let serviceList = []
|
|
|
|
|
for (let key in dataObj.services) {
|
|
|
|
|
let eachObj = dataObj.services[key]
|
|
|
|
|
const keys = Object.keys(eachObj)
|
2024-09-25 22:10:57 +08:00
|
|
|
|
let isSel = false
|
|
|
|
|
let sId = eachObj[keys[0]]
|
|
|
|
|
if (serveId.includes(sId)) {
|
|
|
|
|
isSel = true
|
|
|
|
|
}
|
2024-09-24 23:04:06 +08:00
|
|
|
|
serviceList.push({
|
|
|
|
|
serveId: eachObj[keys[0]],
|
|
|
|
|
serveName: keys[0],
|
2024-09-25 22:10:57 +08:00
|
|
|
|
isSelect: isSel,
|
2024-09-24 23:04:06 +08:00
|
|
|
|
num: '',
|
|
|
|
|
type: 'free'
|
|
|
|
|
})
|
|
|
|
|
}
|
|
|
|
|
// queryParam.shapeDict.list = typeList
|
|
|
|
|
_this.setData({
|
2024-09-25 22:10:57 +08:00
|
|
|
|
serviceList: serviceList
|
2024-09-24 23:04:06 +08:00
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
},
|
2024-09-16 23:14:30 +08:00
|
|
|
|
|
|
|
|
|
// input修改监听
|
|
|
|
|
inputChange(e) {
|
|
|
|
|
console.log('input change', e);
|
|
|
|
|
let _this = this
|
|
|
|
|
let name = e.currentTarget.dataset.name
|
|
|
|
|
let value = e.detail
|
2024-09-25 22:10:57 +08:00
|
|
|
|
let _data = _this.data.detail
|
|
|
|
|
_data[name] = value
|
2024-09-28 17:46:21 +08:00
|
|
|
|
let key = 'detail.' + name
|
2024-09-16 23:14:30 +08:00
|
|
|
|
this.setData({
|
2024-09-28 17:46:21 +08:00
|
|
|
|
[key]: value
|
2024-09-16 23:14:30 +08:00
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// 跳转-空间设施
|
|
|
|
|
jumpMeetingFacilities() {
|
2024-09-25 22:10:57 +08:00
|
|
|
|
console.log(this.data.serviceList)
|
2024-09-16 23:14:30 +08:00
|
|
|
|
let meetingRoomId = this.data.meetingRoomId;
|
|
|
|
|
let serviceListJsonStr = JSON.stringify(this.data.serviceList)
|
|
|
|
|
wx.navigateTo({
|
|
|
|
|
url: `/pages/meeting/meetingRoom/meetingService/meetingService?meetingRoomId=${meetingRoomId}&serviceList=${serviceListJsonStr}`
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
// 提交订单
|
|
|
|
|
submitCase() {
|
|
|
|
|
let _this = this
|
|
|
|
|
// 参数校验
|
|
|
|
|
if (!_this.data.detail.title) {
|
|
|
|
|
// 错误提示
|
|
|
|
|
Notify({
|
|
|
|
|
type: 'danger',
|
|
|
|
|
message: '请输入会议名称!'
|
|
|
|
|
});
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
if (_this.data.detail.personNum == '') {
|
|
|
|
|
// 错误提示
|
|
|
|
|
Notify({
|
|
|
|
|
type: 'danger',
|
|
|
|
|
message: '请输入参会人数!'
|
|
|
|
|
});
|
|
|
|
|
return;
|
2024-02-27 12:00:47 +08:00
|
|
|
|
}
|
2024-09-16 23:14:30 +08:00
|
|
|
|
// if (_this.data.detail.orderName == '') {
|
|
|
|
|
// // 错误提示
|
|
|
|
|
// Notify({
|
|
|
|
|
// type: 'danger',
|
|
|
|
|
// message: '无队名单位!'
|
|
|
|
|
// });
|
|
|
|
|
// return;
|
|
|
|
|
// }
|
2024-09-17 20:26:20 +08:00
|
|
|
|
if (!_this.data.detail.orderUser || _this.data.detail.orderUser === '') {
|
2024-09-16 23:14:30 +08:00
|
|
|
|
// 错误提示
|
|
|
|
|
Notify({
|
|
|
|
|
type: 'danger',
|
|
|
|
|
message: '请输入预约人!'
|
|
|
|
|
});
|
2024-09-17 20:26:20 +08:00
|
|
|
|
return
|
2024-09-16 23:14:30 +08:00
|
|
|
|
}
|
2024-09-17 20:26:20 +08:00
|
|
|
|
if (!_this.data.detail.orderUser || _this.data.detail.orderTel == '') {
|
2024-09-16 23:14:30 +08:00
|
|
|
|
// 错误提示
|
|
|
|
|
Notify({
|
|
|
|
|
type: 'danger',
|
|
|
|
|
message: '请输入联系方式!'
|
|
|
|
|
});
|
|
|
|
|
return;
|
|
|
|
|
}
|
2024-09-17 20:26:20 +08:00
|
|
|
|
// 处理一下serviceList
|
|
|
|
|
let service = []
|
|
|
|
|
let serviceList = _this.data.serviceList
|
|
|
|
|
for (let key in serviceList) {
|
|
|
|
|
let eachObj = serviceList[key]
|
|
|
|
|
if (eachObj.isSelect === true) {
|
2024-09-24 23:04:06 +08:00
|
|
|
|
service.push({
|
|
|
|
|
name: eachObj['serveName'],
|
|
|
|
|
value: eachObj['serveId'],
|
|
|
|
|
remark: ''
|
|
|
|
|
})
|
2024-09-17 20:26:20 +08:00
|
|
|
|
}
|
|
|
|
|
}
|
2024-09-25 22:10:57 +08:00
|
|
|
|
let data = {
|
|
|
|
|
"mr": {
|
2024-09-26 22:31:45 +08:00
|
|
|
|
"id": _this.data.rId,
|
2024-09-24 23:04:06 +08:00
|
|
|
|
"roomId": _this.data.meetingRoomId,
|
|
|
|
|
"start": _this.data.startTime,
|
|
|
|
|
"end": _this.data.endTime,
|
2024-09-25 22:10:57 +08:00
|
|
|
|
"mrdate": _this.data.selectDay,
|
|
|
|
|
"timeFormat": _this.data.timeRange,
|
2024-09-24 23:04:06 +08:00
|
|
|
|
"title": _this.data.detail.title,
|
|
|
|
|
"personNum": _this.data.detail.personNum,
|
2024-09-25 22:10:57 +08:00
|
|
|
|
"leader": _this.data.detail.leader,
|
2024-09-24 23:04:06 +08:00
|
|
|
|
"userOrgId": _this.data.detail.depId,
|
|
|
|
|
"userOrg": _this.data.detail.depName,
|
|
|
|
|
"bookingUserName": _this.data.detail.orderUser,
|
|
|
|
|
"bookingUserPhone": _this.data.detail.orderTel,
|
|
|
|
|
"remark": _this.data.detail.remark,
|
|
|
|
|
},
|
2024-09-25 22:10:57 +08:00
|
|
|
|
"serve": service
|
|
|
|
|
}
|
|
|
|
|
console.log('saveData', data)
|
|
|
|
|
saveChangyangMeetingRecordRq(data).then(res => {
|
2024-09-16 23:14:30 +08:00
|
|
|
|
console.log('saveMeetingRecordRq', res);
|
|
|
|
|
if (res.code == 0) {
|
|
|
|
|
wx.reLaunch({
|
2024-09-25 22:10:57 +08:00
|
|
|
|
url: '/pages/meeting/pay/waitComplete/waitComplete',
|
2024-09-16 23:14:30 +08:00
|
|
|
|
})
|
|
|
|
|
} else {
|
|
|
|
|
// 错误提示
|
|
|
|
|
Notify({
|
|
|
|
|
type: 'danger',
|
|
|
|
|
message: res.msg
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
},
|
2024-09-28 17:46:21 +08:00
|
|
|
|
chooseDep() {
|
|
|
|
|
console.log(111)
|
|
|
|
|
wx.navigateTo({
|
|
|
|
|
url: '/pages/meeting/meetingRoom/meetingDep/meetingDep?depId=' + this.data.depId
|
|
|
|
|
})
|
|
|
|
|
},
|
2024-09-16 23:14:30 +08:00
|
|
|
|
/**
|
|
|
|
|
* 生命周期函数--监听页面初次渲染完成
|
|
|
|
|
*/
|
|
|
|
|
onReady() {
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 生命周期函数--监听页面显示
|
|
|
|
|
*/
|
|
|
|
|
onShow() {
|
|
|
|
|
console.log('onShow');
|
|
|
|
|
let _this = this
|
2024-09-28 17:46:21 +08:00
|
|
|
|
console.log(this.data)
|
2024-09-16 23:14:30 +08:00
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 生命周期函数--监听页面隐藏
|
|
|
|
|
*/
|
|
|
|
|
onHide() {
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 生命周期函数--监听页面卸载
|
|
|
|
|
*/
|
|
|
|
|
onUnload() {
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 页面相关事件处理函数--监听用户下拉动作
|
|
|
|
|
*/
|
|
|
|
|
onPullDownRefresh() {
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 页面上拉触底事件的处理函数
|
|
|
|
|
*/
|
|
|
|
|
onReachBottom() {
|
|
|
|
|
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 用户点击右上角分享
|
|
|
|
|
*/
|
|
|
|
|
onShareAppMessage() {
|
|
|
|
|
|
|
|
|
|
}
|
2024-02-27 12:00:47 +08:00
|
|
|
|
})
|