mirror of
https://gitee.com/elegant_wings/dbd-meeting-wx-small.git
synced 2025-06-21 23:39:36 +08:00
411 lines
11 KiB
JavaScript
411 lines
11 KiB
JavaScript
const app = getApp()
|
||
|
||
import Notify from '@vant/weapp/notify/notify';
|
||
|
||
import {
|
||
meetingRoomBookedRecordRq,
|
||
selectFreeMeetingRoomRq
|
||
} from "../../../../api/meeting/meetingRoom.js"
|
||
|
||
import {
|
||
selfFormatTimeReturnSecond59,
|
||
selfFormatTimeYMDHMS,
|
||
selfFormatTimeYMDH
|
||
} from "../../../../utils/util.js"
|
||
|
||
Page({
|
||
|
||
/**
|
||
* 页面的初始数据
|
||
*/
|
||
data: {
|
||
IMG_NAME: app.IMG_NAME,
|
||
date: '',
|
||
rId: '',
|
||
dep: '',
|
||
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;
|
||
},
|
||
},
|
||
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 = ''
|
||
if (valueArr[0] == '08') {
|
||
// 8点和17点,从30分开始
|
||
_minMintue = 30
|
||
_maxMintue = 59
|
||
} else if (valueArr[0] == '17') {
|
||
_minMintue = 0
|
||
_maxMintue = 30
|
||
} else {
|
||
_minMintue = 0
|
||
_maxMintue = 59
|
||
}
|
||
this.setData({
|
||
minMinute: _minMintue,
|
||
maxMinute: _maxMintue,
|
||
startTime: detail,
|
||
})
|
||
this.setEndMaxTime(detail)
|
||
},
|
||
|
||
// 选择-结束时间
|
||
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'
|
||
}
|
||
this.setData({
|
||
endTime: detail,
|
||
endMinMinute: _endMinMinute,
|
||
endMaxMinute: _endMaxMinute
|
||
})
|
||
},
|
||
|
||
// 预约时间
|
||
reservationTime() {
|
||
// this.setData({
|
||
// showTime: true
|
||
// })
|
||
},
|
||
|
||
// 确认时间
|
||
confirmTime() {
|
||
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
|
||
}
|
||
wx.navigateTo({
|
||
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() {
|
||
// this.setData({
|
||
// showTime: false
|
||
// })
|
||
},
|
||
|
||
// 初始化时间
|
||
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) {
|
||
// 上午,从8:30 - 12:00
|
||
_minTime = 8
|
||
_maxTime = 11
|
||
_startTime = '8:30'
|
||
_minMintue = 30
|
||
_maxMintue = 59
|
||
} else if (_timeRange === 2) {
|
||
// 下午,从12:00 - 17:30
|
||
_minTime = 12
|
||
_maxTime = 17
|
||
_startTime = '12:00'
|
||
_minMintue = 0
|
||
_maxMintue = 59
|
||
} else if (_timeRange === 3) {
|
||
// 晚上,从17:30 - 24:00
|
||
_minTime = 17
|
||
_maxTime = 23
|
||
_startTime = '17:30'
|
||
_minMintue = 30
|
||
_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)
|
||
// 设置最小时间
|
||
// this.setMinTime()
|
||
},
|
||
|
||
// 设置最小时间
|
||
// setMinTime() {
|
||
// // let minTime = new Date(selfFormatTimeYMDH(new Date()) + ':00:00').getTime()
|
||
// let minTime = new Date().getTime()
|
||
// this.setData({
|
||
// minTime,
|
||
// startTime: minTime
|
||
// })
|
||
// },
|
||
|
||
// 获取结束时间的最大时间和最小时间
|
||
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) {
|
||
// 上午,从8:30 - 12:00
|
||
_endMaxTime = 12
|
||
} else if (_timeRange === 2) {
|
||
// 下午,从12:00 - 17:30
|
||
_endMaxTime = 17
|
||
// 分钟,0-30
|
||
if (sTimeHour == '17') {
|
||
// 17点,结束分钟从0-29
|
||
_endMaxMinute = 30
|
||
}
|
||
} else if (_timeRange === 3) {
|
||
// 晚上,从17:30 - 24:00
|
||
_endMaxTime = 23
|
||
}
|
||
this.setData({
|
||
endTime: _endMinTime,
|
||
endMinTime: sTimeHour,
|
||
endMaxTime: _endMaxTime,
|
||
endMinMinute: _endMinMinute,
|
||
endMaxMinute: _endMaxMinute
|
||
})
|
||
},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面加载
|
||
*/
|
||
onLoad(options) {
|
||
console.log('onLoad', options);
|
||
let time = options.time
|
||
let _timeRange = options.timeRange
|
||
let _rangeOp = []
|
||
let _timeRangeText = ''
|
||
if (_timeRange === '4') {
|
||
// 全天,此时默认给1,上午
|
||
_timeRange = '1'
|
||
}
|
||
if (_timeRange === '1') {
|
||
_timeRangeText = '上午'
|
||
} else if (_timeRange === '2') {
|
||
_timeRangeText = '下午'
|
||
} else if (_timeRange === '3') {
|
||
_timeRangeText = '晚上'
|
||
}
|
||
if (options.timeRange === '4') {
|
||
// 全天,则三个都可选
|
||
_rangeOp = ['上午', '下午', '晚上']
|
||
} else {
|
||
_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,
|
||
depId: options.depId,
|
||
dateText: _year + '年' + _month + '月' + _day + '日',
|
||
timeRange: _timeRange,
|
||
timeRangeText: _timeRangeText,
|
||
rangeOp: _rangeOp
|
||
})
|
||
// minTime: null,
|
||
// maxTime: null,
|
||
// endMaxTime: null,
|
||
// startTime: null,
|
||
// endTime: null,
|
||
// 初始化时间
|
||
this.initParamTime()
|
||
},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面初次渲染完成
|
||
*/
|
||
onReady() {
|
||
|
||
},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面显示
|
||
*/
|
||
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
|
||
// })
|
||
// })
|
||
},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面隐藏
|
||
*/
|
||
onHide() {
|
||
|
||
},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面卸载
|
||
*/
|
||
onUnload() {
|
||
|
||
},
|
||
|
||
/**
|
||
* 页面相关事件处理函数--监听用户下拉动作
|
||
*/
|
||
onPullDownRefresh() {
|
||
|
||
},
|
||
|
||
/**
|
||
* 页面上拉触底事件的处理函数
|
||
*/
|
||
onReachBottom() {
|
||
|
||
},
|
||
|
||
/**
|
||
* 用户点击右上角分享
|
||
*/
|
||
onShareAppMessage() {
|
||
|
||
}
|
||
}) |