接口调试

预约列表接口调试
预约时间选择加入更完善判定
This commit is contained in:
unknown 2024-09-26 17:56:21 +08:00
parent abff71068e
commit 29cfc35a84
5 changed files with 133 additions and 76 deletions

View File

@ -81,7 +81,8 @@ export function saveMeetingRecordRq(data) {
// 根据用户id查询预约记录 // 根据用户id查询预约记录
export function selectReservationListByUserIdRq(data) { export function selectReservationListByUserIdRq(data) {
return request({ return request({
url: '/api/roomContent/selectReservationListByUserId?pageNum=' + data.pageNum + '&pageSize=' + data.pageSize, // url: '/api/roomContent/selectReservationListByUserId?pageNum=' + data.pageNum + '&pageSize=' + data.pageSize,
url: '/app/mr/list?pageNum=' + data.pageNum + '&pageSize=' + data.pageSize,
method: "post", method: "post",
data data
}); });

View File

@ -30,8 +30,12 @@ Page({
meetingRoomId: null, meetingRoomId: null,
minTime: null, minTime: null,
maxTime: null, maxTime: null,
minMinute: null, // 开始时间最小分钟
maxMinute: null, // 开始时间最大分钟
endMinTime: null, // 结束时间最小小时(与开始时间联动) endMinTime: null, // 结束时间最小小时(与开始时间联动)
endMaxTime: null, // 结束时间最大小时(根据范围固定) endMaxTime: null, // 结束时间最大小时(根据范围固定)
endMinMinute: null, // 结束时间最小分钟
endMaxMinute: null, // 结束时间最小分钟
startTime: null, startTime: null,
endTime: null, endTime: null,
showTime: true, showTime: true,
@ -75,22 +79,58 @@ Page({
}, },
// 选择-开始时间 // 选择-开始时间
onInputStartTime(event) { onInputStartTime(event) {
let timeRange = this.data.timeRange
let valueArr = event.detail.getValues() let valueArr = event.detail.getValues()
let detail = valueArr[0] + ':' + valueArr[1] 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({ this.setData({
minMinute: _minMintue,
maxMinute: _maxMintue,
startTime: detail, startTime: detail,
}) })
console.log(detail)
this.setEndMaxTime(detail) this.setEndMaxTime(detail)
}, },
// 选择-结束时间 // 选择-结束时间
onInputEndTime(event) { onInputEndTime(event) {
let valueArr = event.detail.getValues() let valueArr = event.detail.getValues()
let timeRange = this.data.timeRange
let detail = valueArr[0] + ':' + valueArr[1] let detail = valueArr[0] + ':' + valueArr[1]
console.log(detail) 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({ this.setData({
endTime: detail, endTime: detail,
endMinMinute: _endMinMinute,
endMaxMinute: _endMaxMinute
}) })
}, },
@ -165,28 +205,38 @@ Page({
let _minTime = '' let _minTime = ''
let _maxTime = '' let _maxTime = ''
let _startTime = '' let _startTime = ''
let _minMintue = ''
let _maxMintue = ''
if (_timeRange === 1) { if (_timeRange === 1) {
// 上午从800 - 1200 // 上午从830 - 1200
_minTime = 8 _minTime = 8
_maxTime = 11 _maxTime = 11
_startTime = '9:00' _startTime = '8:30'
_minMintue = 30
_maxMintue = 59
} else if (_timeRange === 2) { } else if (_timeRange === 2) {
// 下午从1200 - 1800 // 下午从1200 - 1730
_minTime = 12 _minTime = 12
_maxTime = 17 _maxTime = 17
_startTime = '14:00' _startTime = '12:00'
_minMintue = 0
_maxMintue = 59
} else if (_timeRange === 3) { } else if (_timeRange === 3) {
// 晚上从1800 - 2400 // 晚上从1730 - 2400
_minTime = 18 _minTime = 17
_maxTime = 23 _maxTime = 23
_startTime = '18:00' _startTime = '17:30'
_minMintue = 30
_maxMintue = 59
} }
// let maxTime = new Date(_date) // let maxTime = new Date(_date)
// maxTime.setFullYear(maxTime.getFullYear() + 3) // maxTime.setFullYear(maxTime.getFullYear() + 3)
this.setData({ this.setData({
startTime: _startTime, startTime: _startTime,
minTime: _minTime, minTime: _minTime,
maxTime: _maxTime maxTime: _maxTime,
minMinute: _minMintue,
maxMinute: _maxMintue
// maxTime: maxTime.getTime() // maxTime: maxTime.getTime()
}) })
this.setEndMaxTime(this.data.startTime) this.setEndMaxTime(this.data.startTime)
@ -207,25 +257,36 @@ Page({
// 获取结束时间的最大时间和最小时间 // 获取结束时间的最大时间和最小时间
setEndMaxTime(time) { setEndMaxTime(time) {
let timeArr = time.split(':') 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 endMaxTime = new Date(new Date(time).toLocaleDateString()).getTime() + 24 * 60 * 60 * 1000 - 1;
let _endMinTime = timeArr[0] let _endMinTime = time
let _endMaxTime = '' let _endMaxTime = ''
let _endMinMinute = sTimeMin // 分钟一定要大于开始时间的分钟(同小时)
let _endMaxMinute = 59 // 最大分钟仅有下午17点特殊最多为30
let _timeRange = this.data.timeRange let _timeRange = this.data.timeRange
_timeRange = parseInt(_timeRange) _timeRange = parseInt(_timeRange)
if (_timeRange === 1) { if (_timeRange === 1) {
// 上午从800 - 1200 // 上午从830 - 1200
_endMaxTime = 11 _endMaxTime = 12
} else if (_timeRange === 2) { } else if (_timeRange === 2) {
// 下午从1200 - 1800 // 下午从1200 - 1730
_endMaxTime = 17 _endMaxTime = 17
// 分钟0-30
if (sTimeHour == '17') {
// 17点结束分钟从0-29
_endMaxMinute = 30
}
} else if (_timeRange === 3) { } else if (_timeRange === 3) {
// 晚上从1800 - 2400 // 晚上从1730 - 2400
_endMaxTime = 23 _endMaxTime = 23
} }
this.setData({ this.setData({
endTime: _endMinTime + ':' + '00', endTime: _endMinTime,
endMinTime: _endMinTime, endMinTime: sTimeHour,
endMaxTime: _endMaxTime endMaxTime: _endMaxTime,
endMinMinute: _endMinMinute,
endMaxMinute: _endMaxMinute
}) })
}, },

View File

@ -21,7 +21,7 @@
<view style="width: 50%;text-align: center;">时</view> <view style="width: 50%;text-align: center;">时</view>
<view style="width: 50%;text-align: center;">分</view> <view style="width: 50%;text-align: center;">分</view>
</view> </view>
<van-datetime-picker type="time" visible-item-count="4" value="{{ startTime }}" min-hour="{{ minTime }}" max-hour="{{ maxTime }}" bind:change="onInputStartTime" confirm-button-text="" cancel-button-text="" filter="{{ filterTime }}" show-toolbar="{{false}}" /> <van-datetime-picker type="time" visible-item-count="4" value="{{ startTime }}" min-hour="{{ minTime }}" max-hour="{{ maxTime }}" min-minute="{{ minMinute }}" max-minute="{{ maxMinute }}" bind:change="onInputStartTime" confirm-button-text="" cancel-button-text="" filter="{{ filterTime }}" show-toolbar="{{false}}" />
<view class="labelView"> <view class="labelView">
<view class="leftLineTitle">请选择结束时间</view> <view class="leftLineTitle">请选择结束时间</view>
</view> </view>
@ -29,7 +29,7 @@
<view style="width: 50%;text-align: center;">时</view> <view style="width: 50%;text-align: center;">时</view>
<view style="width: 50%;text-align: center;">分</view> <view style="width: 50%;text-align: center;">分</view>
</view> </view>
<van-datetime-picker type="time" visible-item-count="4" value="{{ endTime }}" min-hour="{{ endMinTime }}" max-hour="{{ endMaxTime }}" bind:change="onInputEndTime" confirm-button-text="" cancel-button-text="" show-toolbar="{{false}}" filter="{{ filterTime }}" /> <van-datetime-picker type="time" visible-item-count="4" value="{{ endTime }}" min-hour="{{ endMinTime }}" max-hour="{{ endMaxTime }}" min-minute="{{ endMinMinute }}" max-minute="{{ endMaxMinute }}" bind:change="onInputEndTime" confirm-button-text="" cancel-button-text="" show-toolbar="{{false}}" filter="{{ filterTime }}" />
</view> </view>
<view class="submitBtn" bind:tap="confirmTime">确认时间</view> <view class="submitBtn" bind:tap="confirmTime">确认时间</view>
<van-popup show="{{ showRangePicker }}" bind:close="hideRange" position="bottom"> <van-popup show="{{ showRangePicker }}" bind:close="hideRange" position="bottom">

View File

@ -226,19 +226,20 @@ Page({
} = param } = param
// 查询数据 // 查询数据
selectReservationListByUserIdRq({ selectReservationListByUserIdRq({
role: 1, // 按不同角色去查询预约记录。1.普通用户, 3.会议服务人员 ,5.会议管理员
pageNum, pageNum,
pageSize, pageSize,
userId, // userId,
parkId: 25, // parkId: 25,
title: _this.data.search.title.value, name: _this.data.search.title.value, // 会议室名称
statusValue: _this.data.search.status.value status: _this.data.search.status.value // 预约状态
}).then(res => { }).then(res => {
console.log('selectReservationListByUserIdRq', res); console.log('selectReservationListByUserIdRq', res);
// 判断数据是否全部查询 // 判断数据是否全部查询
let queryDataList = res.page.records; let queryDataList = res.rows;
if (queryDataList && queryDataList.length > 0) { if (_this.data.reservationDataList.length < res.total) {
// 更新参数 // 更新参数
let reservationDataList = _this.data.reservationDataList.concat(_this.formartData(queryDataList)); let reservationDataList = _this.data.reservationDataList.concat(_this.formartData(queryDataList))
let reservationPageNum = _this.data.reservationPageNum + 1; let reservationPageNum = _this.data.reservationPageNum + 1;
_this.setData({ _this.setData({
reservationPageNum, reservationPageNum,
@ -289,69 +290,63 @@ Page({
formartData(queryDataList) { formartData(queryDataList) {
// 格式化数据 // 格式化数据
return queryDataList.map(item => { return queryDataList.map(item => {
item.timeSlot = selfFormatTimeYMD(item.startTime) + ' ' + selfFormatTimeHM(item.startTime) + '~' + selfFormatTimeHM(item.endDate); item.timeSlot = selfFormatTimeYMD(item.start) + ' ' + selfFormatTimeHM(item.start) + '~' + selfFormatTimeHM(item.end);
// 状态字体颜色 // 状态字体颜色
let statusColor = "#FFB119"; let statusColor = "#FFB119";
// 按钮是否显示 // 按钮是否显示
let statusValue = item.statusValue; let statusValue = item.status;
let showPay = false; let showCancel = false // 显示取消操作
let showInvite = false; let showEdit = false // 显示编辑操作
let showCancel = false; let statusName = ''
let showDetail = false; // 预约状态1 取消 3 驳回 4 占用 5 待审核 7 审核通过,待开始 9 进行中 11已结束
// 待支付 0 :去支付、取消订单、查看详情 if (statusValue == 1 ) {
if (statusValue == 0) { // 取消
showPay = true;
showCancel = true;
showDetail = true;
// 状态字体颜色 // 状态字体颜色
statusColor = "#FFB119"; statusColor = "#333333"
statusName = '已取消'
} }
// 待使用 1去邀请、取消订单、查看详情
if (statusValue == 1) {
showInvite = true;
showCancel = true;
showDetail = true;
// 状态字体颜色
statusColor = "#3794FF";
// 待使用 修改为 预约成功
item.statusName = '预约成功'
}
// 进行中 2去邀请、查看详情
if (statusValue == 2) {
showInvite = true;
showDetail = true;
// 状态字体颜色
statusColor = "#FF4040";
}
// 已结束 3查看详情
if (statusValue == 3) { if (statusValue == 3) {
showDetail = true; // 驳回,可以修改
// 状态字体颜色 showEdit = true
statusColor = "#333333"; statusName = '已驳回'
} }
// 已取消 4查看详情
if (statusValue == 4) { if (statusValue == 4) {
showDetail = true; // 占用,可以修改,取消
// 状态字体颜色 showEdit = true
statusColor = "#7F7F7F"; showCancel = true
statusName = '已占用'
}
if (statusValue == 5) {
// 待审核
showEdit = true
showCancel = true
statusName = '待审核'
}
if (statusValue == 7) {
// 审核通过,可以取消,不允许修改
showCancel = true
statusName = '已通过'
}
if (statusValue == 11) {
// 已结束
statusColor = "#333333"
statusName = '已结束'
} }
//
// 赋值 // 赋值
item.showPay = showPay;
item.showInvite = showInvite;
item.showCancel = showCancel; item.showCancel = showCancel;
item.showDetail = showDetail; item.showEdit = showEdit;
item.statusName = statusName
// 状态字体颜色 // 状态字体颜色
item.statusColor = statusColor; item.statusColor = statusColor;
// 图片 // 图片
if (item.roomContent.indoorPicUrl) { if (item.imgs) {
try { try {
item.roomContent.indoorPicUrlFirst = JSON.parse(item.roomContent.indoorPicUrl)[0].url item.indoorPicUrlFirst = item.imgs[0].url
} catch (error) { } catch (error) {
console.log(`JSON error : ${error}`); console.log(`JSON error : ${error}`);
} }
} }
return item; return item
}) })
}, },

View File

@ -69,10 +69,10 @@
<view class="status" style="color: {{item.statusColor}};">{{item.statusName}}</view> <view class="status" style="color: {{item.statusColor}};">{{item.statusName}}</view>
</view> </view>
<view class="contentView" bind:tap="jumpMeetingDetail" data-id="{{item.id}}"> <view class="contentView" bind:tap="jumpMeetingDetail" data-id="{{item.id}}">
<image class="img" src="{{IMG_NAME + item.roomContent.indoorPicUrlFirst}}" mode="aspectFill"></image> <image class="img" src="{{IMG_NAME + item.indoorPicUrlFirst}}" mode="aspectFill"></image>
<view class="msgView"> <view class="msgView">
<view class="title">{{item.roomContent.buildingName}} | {{item.roomContent.roomName}} | {{item.roomContent.capacityNum}} | {{item.roomContent.shape}}</view> <view class="title">{{item.floor}} | {{item.roomNum}} | {{item.capacityNum}} | {{item.typeName}}</view>
<view class="name">预约人: {{item.createBy}}</view> <view class="name">预约人: {{item.bookingUserName}}</view>
<view class="time">{{item.timeSlot}}</view> <view class="time">{{item.timeSlot}}</view>
</view> </view>
</view> </view>
@ -84,7 +84,7 @@
<button class="shareBtn" open-type="share" data-id="{{item.id}}">转发</button> <button class="shareBtn" open-type="share" data-id="{{item.id}}">转发</button>
</view> --> </view> -->
<van-button style="margin-right: 10rpx;" size="small" plain type="warning" wx:if="{{item.showCancel}}" bind:tap="cancelConfirm" data-id="{{item.id}}">取消预约</van-button> <van-button style="margin-right: 10rpx;" size="small" plain type="warning" wx:if="{{item.showCancel}}" bind:tap="cancelConfirm" data-id="{{item.id}}">取消预约</van-button>
<van-button style="margin-right: 10rpx;" size="small" plain type="info" wx:if="{{item.showCancel}}" bind:tap="editConfirm" data-id="{{item.id}}">修改信息</van-button> <van-button style="margin-right: 10rpx;" size="small" plain type="info" wx:if="{{item.showEdit}}" bind:tap="editConfirm" data-id="{{item.id}}">修改信息</van-button>
<!-- <view class="btn" wx:if="{{item.showCancel}}" bind:tap="cancelConfirm" data-id="{{item.id}}">取消预约</view> <!-- <view class="btn" wx:if="{{item.showCancel}}" bind:tap="cancelConfirm" data-id="{{item.id}}">取消预约</view>
<view class="btn" wx:if="{{item.showCancel}}" bind:tap="editConfirm" data-id="{{item.id}}">修改信息</view> --> <view class="btn" wx:if="{{item.showCancel}}" bind:tap="editConfirm" data-id="{{item.id}}">修改信息</view> -->
<!-- <view class="btn" wx:if="{{item.showDetail}}" bind:tap="jumpMeetingDetail" data-id="{{item.id}}">查看详情</view> --> <!-- <view class="btn" wx:if="{{item.showDetail}}" bind:tap="jumpMeetingDetail" data-id="{{item.id}}">查看详情</view> -->