460 lines
12 KiB
JavaScript
Raw Normal View History

2024-03-04 14:38:21 +08:00
const app = getApp()
2024-03-04 16:37:45 +08:00
import Notify from '@vant/weapp/notify/notify';
2024-03-04 14:38:21 +08:00
import {
meetingRoomBookedRecordRq,
selectFreeMeetingRoomRq,
useRoom
2024-03-04 14:38:21 +08:00
} from "../../../../api/meeting/meetingRoom.js"
2024-03-04 16:37:45 +08:00
import {
selfFormatTimeReturnSecond59,
selfFormatTimeYMDHMS,
selfFormatTimeYMD,
selfFormatTimeYMDH
2024-03-04 16:37:45 +08:00
} from "../../../../utils/util.js"
2024-03-04 15:49:05 +08:00
2024-03-02 18:14:38 +08:00
Page({
/**
* 页面的初始数据
*/
data: {
IMG_NAME: app.IMG_NAME,
userDetail: {},
date: '',
rId: '',
dep: '',
2024-09-24 23:04:06 +08:00
depId: '',
dateText: '',
timeRange: '',
timeRangeText: '',
meetingRoomId: null,
minTime: null,
maxTime: null,
minMinute: null, // 开始时间最小分钟
maxMinute: null, // 开始时间最大分钟
endMinTime: null, // 结束时间最小小时(与开始时间联动)
endMaxTime: null, // 结束时间最大小时(根据范围固定)
endMinMinute: null, // 结束时间最小分钟
endMaxMinute: null, // 结束时间最小分钟
startTime: null,
endTime: null,
showTime: true,
showRangePicker: false,
dataList: [],
rangeOp: [],
filterTime(type, options) {
// if (type === 'minute') {
// return options.filter((option) => option == '00');
// }
return options;
2024-03-02 18:14:38 +08:00
},
},
showRange() {
this.setData({
showRangePicker: true
});
},
hideRange() {
this.setData({
showRangePicker: false
});
},
rangePick(e) {
let _this = this
let value = e.detail.value
let _timeRange = ''
if (value === '上午') {
_timeRange = 1
} else if (value === '下午') {
_timeRange = 2
} else if (value === '晚上') {
_timeRange = 3
}
_this.setData({
timeRange: _timeRange,
timeRangeText: value,
showRangePicker: false
})
_this.initParamTime()
},
// 选择-开始时间
onInputStartTime(event) {
let timeRange = this.data.timeRange
let valueArr = event.detail.getValues()
let detail = valueArr[0] + ':' + valueArr[1]
let _minMintue = ''
let _maxMintue = ''
// 时间调整上午900-1200下午1330-1730晚上1730-2400
if (valueArr[0] == '13') {
// 13点从30分开始
_minMintue = 30
_maxMintue = 59
} else if (valueArr[0] == '17') {
if (timeRange == 2) {
_minMintue = 0
_maxMintue = 30
} else if (timeRange == 3) {
_minMintue = 31
_maxMintue = 59
}
if (this.data.userDetail.roomRole == 5) {
// 管理员全天可选
_minMintue = 0
_maxMintue = 59
}
} else {
_minMintue = 0
_maxMintue = 59
}
this.setData({
minMinute: _minMintue,
maxMinute: _maxMintue,
startTime: detail,
})
this.setEndMaxTime(detail)
},
2024-03-02 18:14:38 +08:00
// 选择-结束时间
onInputEndTime(event) {
let valueArr = event.detail.getValues()
let timeRange = this.data.timeRange
let detail = valueArr[0] + ':' + valueArr[1]
let sTime = this.data.startTime
let sTimeArr = sTime.split(':')
let _endMinMinute = ''
let _endMaxMinute = ''
if (parseInt(valueArr[0]) == parseInt(sTimeArr[0])) {
// 小时相同,则分钟最小要大于开始时间的分钟
_endMinMinute = parseInt(sTimeArr[1])
_endMaxMinute = 59
} else {
// 小时大于开始时间则分钟数为0-59
_endMinMinute = 0
_endMaxMinute = 59
}
if (timeRange == 1 && valueArr[0] == '12') {
// 上午12点只允许选到0
_endMinMinute = 0
_endMaxMinute = 0
detail = '12:00'
}
if (timeRange == 2 && valueArr[0] == '17') {
// 下午17点只能选0-30
_endMinMinute = 0
_endMaxMinute = 30
}
this.setData({
endTime: detail,
endMinMinute: _endMinMinute,
endMaxMinute: _endMaxMinute
})
},
2024-03-02 18:14:38 +08:00
// 预约时间
reservationTime() {
},
2024-03-02 18:14:38 +08:00
// 确认时间
confirmTime(e) {
let act = e.currentTarget.dataset.act
let _this = this;
let date = this.data.date
let meetingRoomId = _this.data.meetingRoomId
let startTime = _this.data.startTime
let endTime = _this.data.endTime
// 计算时间戳
let startTimeArr = startTime.split(':')
startTime = parseInt(date) + (parseInt(startTimeArr[0]) * 60 * 60 + parseInt(startTimeArr[1]) * 60) * 1000
let endTimeArr = endTime.split(':')
endTime = parseInt(date) + (parseInt(endTimeArr[0]) * 60 * 60 + parseInt(endTimeArr[1]) * 60) * 1000
let paramUrl = "?meetingRoomId=" + meetingRoomId + "&startTime=" + selfFormatTimeYMDHMS(startTime) + "&endTime=" + selfFormatTimeYMDHMS(endTime) + '&timeRange=' + _this.data.timeRange + '&rId=' + _this.data.rId + '&dep=' + _this.data.dep + '&depId=' + _this.data.depId;
// 结束时间不能小于开始时间
if (startTime >= endTime) {
Notify('结束时间不能小于开始时间!')
return
}
2024-10-02 19:54:49 +08:00
// 判断开始时间是否已经超过了当前时间
let nowDate = new Date().getTime()
if (nowDate > startTime) {
Notify('开始时间请大于当前时间!')
return
}
if (act == 'use') {
// 提前占用
console.log('占用!')
// 获取当下
let nowTime = selfFormatTimeYMD(parseInt(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({
url: "/pages/meeting/meetingRoom/meetingOrder/meetingOrder" + paramUrl,
})
}
2024-03-04 14:38:21 +08:00
},
2024-03-02 18:14:38 +08:00
// 取消时间
cancelTime() {
},
2024-03-05 17:40:50 +08:00
// 初始化时间
initParamTime() {
let _date = this.data.date
_date = parseInt(_date)
let _timeRange = this.data.timeRange
_timeRange = parseInt(_timeRange)
let _minTime = ''
let _maxTime = ''
let _startTime = ''
let _minMintue = ''
let _maxMintue = ''
if (_timeRange === 1) {
// 上午从900 - 1200
_minTime = 9
_maxTime = 11
_startTime = '9:00'
_minMintue = 0
_maxMintue = 59
} else if (_timeRange === 2) {
// 下午从1330 - 1730
_minTime = 13
_maxTime = 17
_startTime = '13:30'
_minMintue = 30
_maxMintue = 59
} else if (_timeRange === 3) {
// 晚上从1730 - 2400
_minTime = 17
_maxTime = 23
_startTime = '17:31'
_minMintue = 31
_maxMintue = 59
}
if (this.data.userDetail.roomRole == 5) {
// 管理员全天可选
_minTime = 9
_maxTime = 23
_startTime = '9:00'
_minMintue = 0
_maxMintue = 59
}
// let maxTime = new Date(_date)
// maxTime.setFullYear(maxTime.getFullYear() + 3)
this.setData({
startTime: _startTime,
minTime: _minTime,
maxTime: _maxTime,
minMinute: _minMintue,
maxMinute: _maxMintue
// maxTime: maxTime.getTime()
})
this.setEndMaxTime(this.data.startTime)
2024-03-05 17:40:50 +08:00
// 设置最小时间
// this.setMinTime()
},
2024-03-04 14:38:21 +08:00
// 设置最小时间
// setMinTime() {
// // let minTime = new Date(selfFormatTimeYMDH(new Date()) + ':00:00').getTime()
// let minTime = new Date().getTime()
// this.setData({
// minTime,
// startTime: minTime
// })
// },
2024-03-04 14:38:21 +08:00
// 获取结束时间的最大时间和最小时间
setEndMaxTime(time) {
let timeArr = time.split(':')
let sTimeHour = timeArr[0]
let sTimeMin = timeArr[1]
// let endMaxTime = new Date(new Date(time).toLocaleDateString()).getTime() + 24 * 60 * 60 * 1000 - 1;
let _endMinTime = time
let _endMaxTime = ''
let _endMinMinute = sTimeMin // 分钟一定要大于开始时间的分钟(同小时)
let _endMaxMinute = 59 // 最大分钟仅有下午17点特殊最多为30
let _timeRange = this.data.timeRange
_timeRange = parseInt(_timeRange)
if (_timeRange === 1) {
// 上午从900 - 1200
_endMaxTime = 12
} else if (_timeRange === 2) {
// 下午从1330 - 1730
_endMaxTime = 17
// 分钟0-30
if (sTimeHour == '17') {
// 17点结束分钟从0-30
_endMaxMinute = 30
}
} else if (_timeRange === 3) {
// 晚上从1730 - 2400
_endMaxTime = 23
}
if (this.data.userDetail.roomRole == 5) {
// 管理员全天可选
_endMaxTime = 23
_endMaxMinute = 59
}
this.setData({
endTime: _endMinTime,
endMinTime: sTimeHour,
endMaxTime: _endMaxTime,
endMinMinute: _endMinMinute,
endMaxMinute: _endMaxMinute
})
},
2024-03-04 16:37:45 +08:00
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
console.log('onLoad', options);
let userDetail = wx.getStorageSync('user')
let time = options.time
let _timeRange = options.timeRange
let _rangeOp = []
let _timeRangeText = ''
2024-09-24 23:04:06 +08:00
if (_timeRange === '4') {
// 全天此时默认给1上午
_timeRange = '1'
}
if (_timeRange === '1') {
_timeRangeText = '上午'
} else if (_timeRange === '2') {
_timeRangeText = '下午'
} else if (_timeRange === '3') {
_timeRangeText = '晚上'
}
2024-09-24 23:04:06 +08:00
if (options.timeRange === '4') {
// 全天,则三个都可选
_rangeOp = ['上午', '下午', '晚上']
} else {
_rangeOp = [_timeRangeText]
}
if (userDetail.roomRole == 5) {
_timeRange = '4'
_rangeOp = ['全天']
_timeRangeText = '全天'
}
const _date = new Date(parseInt(time))
const _year = _date.getFullYear()
const _month = _date.getMonth() + 1 // 月份从0开始需要+1
const _day = _date.getDate()
// 获取传递参数
this.setData({
meetingRoomId: options.meetingRoomId,
date: time,
rId: options.rId,
dep: options.dep,
2024-09-24 23:04:06 +08:00
depId: options.depId,
dateText: _year + '年' + _month + '月' + _day + '日',
timeRange: _timeRange,
timeRangeText: _timeRangeText,
rangeOp: _rangeOp,
userDetail: userDetail
})
// minTime: null,
// maxTime: null,
// endMaxTime: null,
// startTime: null,
// endTime: null,
// 初始化时间
this.initParamTime()
},
2024-03-02 18:14:38 +08:00
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
2024-03-02 18:14:38 +08:00
},
2024-03-02 18:14:38 +08:00
/**
* 生命周期函数--监听页面显示
*/
onShow() {
// console.log('onShow', 111);
let _this = this;
// meetingRoomBookedRecordRq(this.data.meetingRoomId).then(res => {
// console.log('meetingRoomBookedRecordRq', res);
// let dataList = res.data;
// dataList.map(item => {
// item.nowDate = item.nowDate.substring(0, 10);
// item.reservations = item.reservations.map(record => {
// record.startTime = record.startTime.substring(11)
// record.endDate = record.endDate.substring(11)
// record.userName = record.userName.substring(0, 1) + "某"
// record.phone = record.phone.substring(0, 3) + "****" + record.phone.substring(7, record.phone.length)
// return record;
// })
// return item
// })
// _this.setData({
// dataList
// })
// })
},
2024-03-02 18:14:38 +08:00
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
2024-03-02 18:14:38 +08:00
},
2024-03-02 18:14:38 +08:00
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
2024-03-02 18:14:38 +08:00
},
2024-03-02 18:14:38 +08:00
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
2024-03-02 18:14:38 +08:00
},
2024-03-02 18:14:38 +08:00
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
2024-03-02 18:14:38 +08:00
},
2024-03-02 18:14:38 +08:00
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
2024-03-02 18:14:38 +08:00
}
2024-03-02 18:14:38 +08:00
})