对接部分接口

This commit is contained in:
471615499@qq.com 2024-09-24 23:04:06 +08:00
parent 5dc16e9566
commit ee09115377
9 changed files with 240 additions and 133 deletions

View File

@ -2,29 +2,32 @@ import {
request
} from '../selfRequest';
// 查询条件筛选
// 查询条件筛选,废弃
// 1.会议室类型2.人数3.会议室设备4.形式
export function meetingRoomDict(param) {
return request({
url: '/api/roomContent/searchInfo/' + param,
method: "get",
// url: '/api/roomContent/searchInfo/' + param,
url: '/app/mr/getConstData',
method: "post",
});
}
// 会议室列表
export function meetingRoomListRq(data) {
return request({
url: '/api/roomContent/list',
// url: '/api/roomContent/list',
url: '/app/mr/getAllRoom',
method: "post",
data
});
}
// 会议室详情信息
export function meetingRoomDetailRq(id) {
export function meetingRoomDetailRq(data) {
return request({
url: '/api/roomContent/info/' + id,
method: "get",
url: '/app/mr/roomMrs',
method: "post",
data
});
}
@ -172,10 +175,11 @@ export function queryServiceMsgRq(data) {
}
// 长阳-提交会议预约
// 提交会议预约
export function saveChangyangMeetingRecordRq(data) {
return request({
url: '/api/roomContent/saveChangyangMeetingRecord',
// url: '/api/roomContent/saveChangyangMeetingRecord',
url: '/app/mr/booking',
method: "post",
data
});

View File

@ -58,6 +58,7 @@ Page({
username: '', // 用户名
pwd: '', // 登录密码
depName: '', // 登录单位
depId: '', // 登录单位id
beforeClose(action) {
return new Promise(resolve => {
if (action === 'confirm') {
@ -98,7 +99,7 @@ Page({
// 跳转会议预约页面
goRes(e) {
wx.navigateTo({
url: '/pages/meeting/meetingReservation/meetingReservation?time=' + e.detail + '&dep=' + this.data.depName,
url: '/pages/meeting/meetingReservation/meetingReservation?time=' + e.detail + '&dep=' + this.data.depName + '&depId=' + this.data.depId,
})
},
// 跳转菜单
@ -215,7 +216,8 @@ Page({
username: '',
pwd: '',
showLogin: false,
depName: res.data.orgName
depName: res.data.orgName,
depId: res.data.orgId,
})
this.showTimePicker()
}

View File

@ -18,11 +18,12 @@ Page({
rId: '',
dep: '',
date: '',
dateStr: '',
queryParam: {
timeRangeDict: {
list: [{
text: '全天',
value: null
value: 4
}, {
text: '上午',
value: 1
@ -33,7 +34,7 @@ Page({
text: '晚上',
value: 3
}],
value: null,
value: 4,
},
meetingTypeDict: {
list: [],
@ -95,17 +96,14 @@ Page({
}
if (!options.dep) {
options.dep = ''
options.depId = ''
}
const time = options.time
if (!time || time === '') {
app.selfShowMsg('请选择时间!', '/pages/meeting/index/index')
return
}
this.setData({
date: time,
rId: options.rId,
dep: options.dep
})
const _date = new Date(parseInt(time))
const _year = _date.getFullYear()
const _month = _date.getMonth() + 1 // 月份从0开始需要+1
@ -114,6 +112,13 @@ Page({
wx.setNavigationBarTitle({
title: _year + '年' + _month + '月' + _day + '日'
})
this.setData({
date: time,
rId: options.rId,
dep: options.dep,
depId: options.depId,
dateStr: _year + '-' + _month + '-' + _day
})
// 初始化数据
this.initData();
},
@ -121,28 +126,76 @@ Page({
// 初始化数据
initData() {
let _this = this;
// 1.会议室类型2.人数3.会议室设备4.形式
meetingRoomDict("1").then(res => {
console.log('meetingRoomDict("1")', res);
meetingRoomDict().then(res => {
console.log('meetingRoomDict', res)
let queryParam = _this.data.queryParam
let dataObj = res.data
// 封装参数
let list = res.roomContents.map(item => {
return {
text: item.typeName,
value: item.typeValue
}
})
list = [{
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
}, ...list]
}, ...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]
})
}
// 赋值参数
let queryParam = _this.data.queryParam;
queryParam.meetingTypeDict.list = list;
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
_this.setData({
queryParam
})
console.log('meetingRoomDict("1")=>', list);
})
// 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);
// // 封装参数
@ -164,44 +217,44 @@ Page({
// })
// 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);
})
// 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()
},
@ -261,26 +314,27 @@ Page({
}
})
let param = {
"type": queryParam.meetingTypeDict.value,
"capacityNum": queryParam.personDict.value,
"roomItemList": roomItemList,
"shape": queryParam.shapeDict.value,
timeRange: queryParam.timeRangeDict.value
floor: queryParam.meetingTypeDict.value, // 楼层
capacityNum: queryParam.personDict.value, // 人数
device: '', // 设备
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.rows
let valueObj = res.data
for (let key in valueObj) {
let eachObj = valueObj[key]
if (eachObj['type'] in roomArr) {} else {
roomArr[eachObj['type']] = {
name: eachObj['typeName'],
if (eachObj['floorId'] in roomArr) {} else {
roomArr[eachObj['floorId']] = {
name: eachObj['floor'],
list: []
}
}
roomArr[eachObj['type']]['list'].push(eachObj)
roomArr[eachObj['floorId']]['list'].push(eachObj)
}
// console.log(roomArr)
_this.setData({
@ -296,7 +350,7 @@ Page({
timeRange = timeRange ? timeRange : 0
// 跳转预约详情
wx.navigateTo({
url: "/pages/meeting/meetingRoom/meetingRoom?id=" + e.currentTarget.dataset.id + '&time=' + this.data.date + '&timeRange=' + timeRange + '&rId=' + this.data.rId + '&dep=' + this.data.dep,
url: "/pages/meeting/meetingRoom/meetingRoom?id=" + e.currentTarget.dataset.id + '&time=' + this.data.date + '&timeRange=' + timeRange + '&rId=' + this.data.rId + '&dep=' + this.data.dep + '&depId=' + this.data.depId
})
},

View File

@ -27,9 +27,9 @@
<view class="roomType">{{item.name}}</view>
<view class="meetingRoomItem" bind:tap="jumpMeetingRoom" wx:for="{{item.list}}" wx:for-item="room" wx:key="*this" data-id="{{room.id}}">
<view class="content">
<view class="title">{{room.roomName}}</view>
<view class="title">{{room.roomNum}}</view>
<view class="priceView">
<view class="unit">{{room.capacityNum}}人 {{room.shape}}</view>
<view class="unit">{{room.capacityNum}}人 {{room.typeName}}</view>
</view>
</view>
<!-- <view class="imgView">

View File

@ -23,6 +23,7 @@ Page({
date: '',
rId: '',
dep: '',
depId: '',
dateText: '',
timeRange: '',
timeRangeText: '',
@ -112,7 +113,7 @@ Page({
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) + '&rId=' + _this.data.rId + '&dep=' + _this.data.dep;
let paramUrl = "?meetingRoomId=" + meetingRoomId + "&startTime=" + selfFormatTimeYMDHMS(startTime) + "&endTime=" + selfFormatTimeYMDHMS(endTime) + '&rId=' + _this.data.rId + '&dep=' + _this.data.dep + '&depId=' + _this.data.depId;
// 结束时间不能小于开始时间
if (startTime >= endTime) {
Notify('结束时间不能小于开始时间!')
@ -166,8 +167,8 @@ Page({
let _maxTime = ''
let _startTime = ''
if (_timeRange === 1) {
// 上午,从600 - 1200
_minTime = 6
// 上午,从800 - 1200
_minTime = 8
_maxTime = 11
_startTime = '9:00'
} else if (_timeRange === 2) {
@ -176,7 +177,7 @@ Page({
_maxTime = 17
_startTime = '14:00'
} else if (_timeRange === 3) {
// 下午从1200 - 1800
// 晚上从1800 - 2400
_minTime = 18
_maxTime = 23
_startTime = '18:00'
@ -213,13 +214,13 @@ Page({
let _timeRange = this.data.timeRange
_timeRange = parseInt(_timeRange)
if (_timeRange === 1) {
// 上午,从600 - 1200
// 上午,从800 - 1200
_endMaxTime = 11
} else if (_timeRange === 2) {
// 下午从1200 - 1800
_endMaxTime = 17
} else if (_timeRange === 3) {
// 下午从1200 - 1800
// 晚上从1800 - 2400
_endMaxTime = 23
}
this.setData({
@ -238,7 +239,7 @@ Page({
let _timeRange = options.timeRange
let _rangeOp = []
let _timeRangeText = ''
if (_timeRange === '0') {
if (_timeRange === '4') {
// 全天此时默认给1上午
_timeRange = '1'
}
@ -249,7 +250,7 @@ Page({
} else if (_timeRange === '3') {
_timeRangeText = '晚上'
}
if (options.timeRange === '0') {
if (options.timeRange === '4') {
// 全天,则三个都可选
_rangeOp = ['上午', '下午', '晚上']
} else {
@ -265,6 +266,7 @@ Page({
date: time,
rId: options.rId,
dep: options.dep,
depId: options.depId,
dateText: _year + '年' + _month + '月' + _day + '日',
timeRange: _timeRange,
timeRangeText: _timeRangeText,

View File

@ -9,7 +9,8 @@ import {
calculateMeetingRoomAmountRq,
saveMeetingRecordRq,
saveChangyangMeetingRecordRq,
selectReservationByIdRq
selectReservationByIdRq,
meetingRoomDict
} from "../../../../api/meeting/meetingRoom.js"
import {
@ -28,6 +29,7 @@ Page({
data: {
rId: '',
dep: '',
depId: '',
IMG_NAME: app.IMG_NAME,
detail: {},
meetingRoomId: null,
@ -86,7 +88,8 @@ Page({
title: '',
personNum: '',
leader: '',
depName: dep,
depName: _this.data.dep,
depId: _this.data.depId,
remark: ''
}
})
@ -139,8 +142,10 @@ Page({
serveId = serveId || []
// 获取会议室详情
let _this = this
meetingRoomDetailRq(this.data.meetingRoomId).then(res => {
let detail = res.roomContent;
meetingRoomDetailRq({
roomId: this.data.meetingRoomId
}).then(res => {
let detail = res.room
let bannerList = []
if (detail.indoorPicUrl) {
try {
@ -149,27 +154,55 @@ Page({
console.log(`JSON error : ${error}`);
}
}
_this.getService(serveId)
// 提前处理服务,不需要进入页面后获取
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'
}
})
// 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)
_this.setData({
serviceList: serviceList,
// serviceList: serviceList,
room: detail,
bannerList
})
})
},
getService() {
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)
serviceList.push({
serveId: eachObj[keys[0]],
serveName: keys[0],
isSelect: false,
num: '',
type: 'free'
})
}
console.log(serviceList)
// queryParam.shapeDict.list = typeList
_this.setData({
serviceList: serviceList
})
})
},
// input修改监听
inputChange(e) {
@ -245,25 +278,32 @@ Page({
let eachObj = serviceList[key]
console.log(eachObj)
if (eachObj.isSelect === true) {
service.push(eachObj)
service.push({
name: eachObj['serveName'],
value: eachObj['serveId'],
remark: ''
})
}
}
// console.log(service)
// return
saveChangyangMeetingRecordRq({
"roomContentId": _this.data.meetingRoomId,
"userId": _this.data.userData.id,
"customerId": _this.data.userData.icsCustomerId,
"title": _this.data.detail.title,
"personNum": _this.data.detail.personNum,
"startTime": _this.data.startTime,
"endDate": _this.data.endTime,
"orderMoney": 0,
"reservationServes": service,
"remark": _this.data.detail.remark,
"orderUser": _this.data.detail.orderUser,
"orderTel": _this.data.detail.orderTel,
"parkId": 25, // 写死园区ID
mr: {
"roomId": _this.data.meetingRoomId,
"start": _this.data.startTime,
"end": _this.data.endTime,
"mrdate": "2024-09-27",
"timeFormat": "0",
"title": _this.data.detail.title,
"personNum": _this.data.detail.personNum,
"leader": _this.data.detail.leader,
"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,
},
serve: service
}).then(res => {
console.log('saveMeetingRecordRq', res);
if (res.code == 0) {

View File

@ -1,7 +1,7 @@
<view class="containerView">
<!-- 轮播图 -->
<view class="swiperView">
<view class="tag">{{room.meetingName}}</view>
<view class="tag">{{room.name}}</view>
<swiper class='swiper-box' indicator-dots autoplay interval="3000" duration="1000" circular='true'>
<swiper-item wx:for="{{bannerList}}" wx:key="index">
<image class="img" src="{{IMG_NAME + item}}" mode="aspectFill"></image>
@ -12,7 +12,7 @@
<!-- 详细信息 -->
<view class="meetingDetailView">
<view class="detailView">
<view class="title">{{room.buildingName}} | {{room.roomName}} | {{room.capacityNum}}人 | {{room.shape}}</view>
<view class="title">{{room.floor}} | {{room.roomNum}} | {{room.capacityNum}}人 | {{room.typeName}}</view>
<view class="itemList">
<view class="item" wx:for="{{room.roomItemList}}" wx:for-item="serviceItem" wx:key="*this">#{{serviceItem.name}}</view>
<view class="item" wx:for="{{room.roomServeList}}" wx:for-item="serveItem" wx:key="*this">#{{serveItem.serveName}}</view>

View File

@ -17,6 +17,7 @@ Page({
date: '', // 选择的时间
rId: '', // 预约id
dep: '', // 预约单位
depId: '',
timeRange: '', // 选择的时间范围
detail: {},
bannerList: [],
@ -37,12 +38,15 @@ Page({
date: time,
timeRange: timeRange,
rId: options.rId,
dep: options.dep
dep: options.dep,
depId: options.depId
})
let meetingRoomId = options.id;
meetingRoomDetailRq(meetingRoomId).then(res => {
meetingRoomDetailRq({
roomId: meetingRoomId
}).then(res => {
console.log('meetingRoomDetailRq', res);
let detail = res.roomContent;
let detail = res.room
let bannerList = []
if (detail.indoorPicUrl) {
try {
@ -146,7 +150,7 @@ Page({
let time = this.data.date
let timeRange = this.data.timeRange
wx.navigateTo({
url: "/pages/meeting/meetingRoom/meetingBooked/meetingBooked?meetingRoomId=" + meetingRoomId + '&time=' + time + '&timeRange=' + timeRange + '&rId=' + this.data.rId + '&dep=' + this.data.dep,
url: "/pages/meeting/meetingRoom/meetingBooked/meetingBooked?meetingRoomId=" + meetingRoomId + '&time=' + time + '&timeRange=' + timeRange + '&rId=' + this.data.rId + '&dep=' + this.data.dep + '&depId=' + this.data.depId,
})
},

View File

@ -1,7 +1,7 @@
<view class="containerView public">
<!-- 轮播图 -->
<view class="swiperView">
<view class="tag">{{detail.meetingName}}</view>
<view class="tag">{{detail.name}}</view>
<swiper class='swiper-box' indicator-dots autoplay interval="3000" duration="1000" circular='true'>
<swiper-item wx:for="{{bannerList}}" wx:key="index">
<image class="img" src="{{IMG_NAME + item}}" mode="aspectFill"></image>
@ -10,10 +10,11 @@
</view>
<view class="meetingDetailView">
<view class="detailView">
<view class="title">{{detail.buildingName}} | {{detail.roomName}} | {{detail.capacityNum}}人 | {{detail.shape}}</view>
<view class="title">{{detail.floor}} | {{detail.roomNum}} | {{detail.capacityNum}}人 | {{detail.typeName}}</view>
<view class="itemList">
<view class="item" wx:for="{{detail.roomItemList}}" wx:for-item="serviceItem" wx:key="*this">#{{serviceItem.name}}</view>
<view class="item" wx:for="{{detail.roomServeList}}" wx:for-item="serveItem" wx:key="*this">#{{serveItem.serveName}}</view>
{{detail.device}}
<!-- <view class="item" wx:for="{{detail.roomItemList}}" wx:for-item="serviceItem" wx:key="*this">#{{serviceItem.name}}</view>
<view class="item" wx:for="{{detail.roomServeList}}" wx:for-item="serveItem" wx:key="*this">#{{serveItem.serveName}}</view> -->
</view>
</view>