This commit is contained in:
SelfRidicule 2024-08-15 11:07:04 +08:00
parent 00957a8eff
commit cf3170e869
3 changed files with 187 additions and 306 deletions

View File

@ -1,18 +1,12 @@
const app = getApp() const app = getApp()
import Dialog from '@vant/weapp/dialog/dialog';
import Notify from '@vant/weapp/notify/notify'; import Notify from '@vant/weapp/notify/notify';
import { import {
selfFormatTimeYMD, repairListRq,
selfFormatTimeHM getStatusName
} from "../../../../utils/util.js" } from "../../../../api/repair/repair.js"
import {
selectReservationListByUserIdRq,
selectVisitorInvitationRecordRq,
cancelOrderRq
} from "../../../../api/meeting/meetingRoom.js"
Page({ Page({
@ -23,17 +17,39 @@ Page({
IMG_NAME: app.IMG_NAME, IMG_NAME: app.IMG_NAME,
userData: null, userData: null,
dataChange: false, dataChange: false,
tabTitle: '预约记录', tabTitle: '全部',
// 预约记录参数 // 全部
reservationPageNum: 1, allOrder: {
reservationPageSize: 10, pageNum: 1,
reservationDataList: [], pageSize: 10,
reservationIsDataAll: false, type: 'all',
// 参与记录参数 dataList: [],
participatePageNum: 1, isDataAll: false,
participatePageSize: 10, },
participateDataList: [], // 处理中
participateIsDataAll: false, processOrder: {
pageNum: 1,
pageSize: 10,
type: 'process',
dataList: [],
isDataAll: false,
},
// 待评价
evalingOrder: {
pageNum: 1,
pageSize: 10,
type: 'evaling',
dataList: [],
isDataAll: false,
},
// 已评价
evaledOrder: {
pageNum: 1,
pageSize: 10,
type: 'evaled',
dataList: [],
isDataAll: false,
},
}, },
/** /**
@ -46,40 +62,60 @@ Page({
}) })
// 获取数据 // 获取数据
let userId = _this.data.userData.id let userId = _this.data.userData.id
// 获取预约数据 },
_this.getReservationData({
userId, // tab 点击切换
pageNum: _this.data.reservationPageNum, tabClickSwitch(event) {
pageSize: _this.data.reservationPageSize, console.log('tabClickSwitch', event);
}) let _this = this;
// 获取参与数据 _this.setData({
_this.getParticipateData({ tabTitle: event.detail.title
userId,
pageNum: _this.data.participatePageNum,
pageSize: _this.data.participatePageSize
}) })
}, },
// 获取数据 // 获取数据
getDataList() { getDataList(transferTabTitle) {
// 获取参数 // 获取参数
let _this = this; let _this = this;
let tabTitle = _this.data.tabTitle let tabTitle = _this.data.tabTitle
let userId = _this.data.userData.id if (transferTabTitle) {
let isDataAll = null tabTitle = transferTabTitle
}
let pageNum = null let pageNum = null
let pageSize = null let pageSize = null
if (tabTitle == '预约记录') { let type = null
// 预约记录参数 let isDataAll = null
isDataAll = _this.data.reservationIsDataAll
pageNum = _this.data.reservationPageNum //
pageSize = _this.data.reservationPageSize let allOrder = _this.data.allOrder
let processOrder = _this.data.processOrder
let evalingOrder = _this.data.evalingOrder
let evaledOrder = _this.data.evaledOrder
if (tabTitle == '全部') {
pageNum = allOrder.pageNum
pageSize = allOrder.pageSize
type = allOrder.type
isDataAll = allOrder.isDataAll
} else if (tabTitle == '处理中') {
pageNum = processOrder.pageNum
pageSize = processOrder.pageSize
type = processOrder.type
isDataAll = processOrder.isDataAll
} else if (tabTitle == '待评价') {
pageNum = evalingOrder.pageNum
pageSize = evalingOrder.pageSize
type = evalingOrder.type
isDataAll = evalingOrder.isDataAll
} else if (tabTitle == '已评价') {
pageNum = evaledOrder.pageNum
pageSize = evaledOrder.pageSize
type = evaledOrder.type
isDataAll = evaledOrder.isDataAll
} else if (tabTitle == '预约记录') {
// 参与记录参数
isDataAll = _this.data.participateIsDataAll
pageNum = _this.data.participatePageNum
pageSize = _this.data.participatePageSize
} else { } else {
wx.showToast({ wx.showToast({
title: `tab 切换错误(${tabTitle})`, title: `tab 切换错误(${tabTitle})`,
@ -94,236 +130,73 @@ Page({
} }
// 传递参数 // 传递参数
let param = { let param = {
userId,
pageNum,
pageSize
}
if (tabTitle == '预约记录') {
// 获取预约数据
_this.getReservationData(param)
} else if (tabTitle == '预约记录') {
// 获取参与数据
_this.getParticipateData(param)
}
},
// 获取预约数据
getReservationData(param) {
let _this = this;
let {
pageNum, pageNum,
pageSize, pageSize,
userId menu: '1', // 报修
} = param type,
}
// 查询数据 // 查询数据
selectReservationListByUserIdRq({ repairListRq(param).then(res => {
pageNum, console.log('repairListRq', res);
pageSize, let dataList = res.rows
userId let isDataAll = false
}).then(res => { if (pageNum * pageSize >= res.total) {
console.log('selectReservationListByUserIdRq', res); isDataAll = true
// 判断数据是否全部查询
let queryDataList = res.page.records;
if (queryDataList && queryDataList.length > 0) {
// 更新参数
let reservationDataList = _this.data.reservationDataList.concat(_this.formartData(queryDataList));
let reservationPageNum = _this.data.reservationPageNum + 1;
_this.setData({
reservationPageNum,
reservationDataList,
})
} else {
_this.setData({
reservationIsDataAll: true
})
}
})
},
// 获取参与数据
getParticipateData(param) {
let _this = this;
let {
pageNum,
pageSize,
userId
} = param
// 查询数据
selectVisitorInvitationRecordRq({
pageNum,
pageSize,
userId
}).then(res => {
console.log('selectVisitorInvitationRecordRq', res);
// 判断数据是否全部查询
let queryDataList = res.page.records;
if (queryDataList && queryDataList.length > 0) {
// 更新参数
let participateDataList = _this.data.participateDataList.concat(_this.formartData(queryDataList));
let participatePageNum = _this.data.participatePageNum + 1;
_this.setData({
participatePageNum,
participateDataList,
})
} else {
_this.setData({
participateIsDataAll: true
})
}
})
},
// 格式化数据
formartData(queryDataList) {
// 格式化数据
return queryDataList.map(item => {
item.timeSlot = selfFormatTimeYMD(item.startTime) + ' ' + selfFormatTimeHM(item.startTime) + '~' + selfFormatTimeHM(item.endDate);
// 状态字体颜色
let statusColor = "#FFB119";
// 按钮是否显示
let statusValue = item.statusValue;
let showPay = false;
let showInvite = false;
let showCancel = false;
let showDetail = false;
// 待支付 0 :去支付、取消订单、查看详情
if (statusValue == 0) {
showPay = true;
showCancel = true;
showDetail = true;
// 状态字体颜色
statusColor = "#FFB119";
}
// 待使用 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) {
showDetail = true;
// 状态字体颜色
statusColor = "#333333";
}
// 已取消 4查看详情
if (statusValue == 4) {
showDetail = true;
// 状态字体颜色
statusColor = "#7F7F7F";
} }
// //
// 赋值 if (tabTitle == '全部') {
item.showPay = showPay; allOrder.dataList = allOrder.dataList.concat(_this.formartData(dataList))
item.showInvite = showInvite; allOrder.pageNum = allOrder.pageNum + 1
item.showCancel = showCancel; allOrder.isDataAll = isDataAll
item.showDetail = showDetail; _this.setData({
// 状态字体颜色 allOrder
item.statusColor = statusColor; })
// 图片
if (item.roomContent.indoorPicUrl) { } else if (tabTitle == '处理中') {
try { processOrder.dataList = processOrder.dataList.concat(_this.formartData(dataList))
item.roomContent.indoorPicUrlFirst = JSON.parse(item.roomContent.indoorPicUrl)[0].url processOrder.pageNum = processOrder.pageNum + 1
} catch (error) { processOrder.isDataAll = isDataAll
console.log(`JSON error : ${error}`); _this.setData({
processOrder
})
} else if (tabTitle == '待评价') {
evalingOrder.dataList = evalingOrder.dataList.concat(_this.formartData(dataList))
evalingOrder.pageNum = evalingOrder.pageNum + 1
evalingOrder.isDataAll = isDataAll
_this.setData({
evalingOrder
})
} else if (tabTitle == '已评价') {
evaledOrder.dataList = evaledOrder.dataList.concat(_this.formartData(dataList))
evaledOrder.pageNum = evaledOrder.pageNum + 1
evaledOrder.isDataAll = isDataAll
_this.setData({
evaledOrder
})
} }
})
},
// 格式化数据
formartData(dataList) {
// 格式化数据
return dataList.map(item => {
let ext1 = item.ext1
if (ext1) {
item.visibleImg = ext1
} else {
item.visibleImg = '/profile/static/repair/index/noneImg.png'
} }
item.statusName = getStatusName(item.status)
return item; return item;
}) })
}, },
// 跳转-支付 jumpDetail() {
jumpPay(e) {
console.log('jumpPay', e);
wx.navigateTo({
url: "/pages/meeting/pay/waitPay/waitPay?id=" + e.currentTarget.dataset.id + "&type=meetingRoom"
})
},
// 跳转-预约详情
jumpMeetingDetail(e) {
console.log('jumpMeetingDetail', e);
let id = e.currentTarget.dataset.id
wx.navigateTo({
url: "/pages/meeting/reservationRecord/meetingRecord/meetingDetail/meetingDetail?id=" + id,
})
},
// 跳转-参与详情
jumpParticipateDetail(e) {
console.log('jumpParticipateDetail', e);
let id = e.currentTarget.dataset.id
wx.navigateTo({
url: "/pages/meeting/invite/invite?id=" + id,
})
},
// tab 点击切换
tabClickSwitch(event) {
console.log('tabClickSwitch', event);
let _this = this;
_this.setData({
tabTitle: event.detail.title
})
},
// 取消订单
cancelOrder(e) {
console.log('cancelOrder', e);
let _this = this;
let id = e.currentTarget.dataset.id
const beforeClose = (action) => {
console.log('action', action);
return new Promise((resolve) => {
if (action === 'confirm') {
cancelOrderRq({
id,
cancelResaon: ""
}).then(res => {
console.log('cancelOrderRq', res);
if (res.code == 0) {
// 刷新预约数据
_this.setData({
reservationPageNum: 1,
reservationDataList: [],
reservationIsDataAll: false,
})
_this.getDataList()
} else {
// 危险通知
Notify({
type: 'danger',
message: res.msg
});
}
resolve(true);
})
} else {
// 拦截取消操作
resolve(true);
}
});
}
Dialog.confirm({
title: '提示',
message: '是否取消预约!',
beforeClose,
});
},
jumpDetail(){
wx.navigateTo({ wx.navigateTo({
url: '/pages/reportRepair/query/detail/detail', url: '/pages/reportRepair/query/detail/detail',
}) })
@ -341,36 +214,45 @@ Page({
*/ */
onShow() { onShow() {
let _this = this; let _this = this;
// 数据是否变化
if (_this.data.dataChange) {
// 刷新数据
_this.setData({ _this.setData({
dataChange: false, // 全部
// 预约记录参数 allOrder: {
reservationPageNum: 1, pageNum: 1,
reservationDataList: [], pageSize: 10,
reservationIsDataAll: false, type: 'all',
// 参与记录参数 dataList: [],
participatePageNum: 1, isDataAll: false,
participateDataList: [], },
participateIsDataAll: false, // 处理中
processOrder: {
pageNum: 1,
pageSize: 10,
type: 'process',
dataList: [],
isDataAll: false,
},
// 待评价
evalingOrder: {
pageNum: 1,
pageSize: 10,
type: 'evaling',
dataList: [],
isDataAll: false,
},
// 已评价
evaledOrder: {
pageNum: 1,
pageSize: 10,
type: 'evaled',
dataList: [],
isDataAll: false,
},
}) })
//
// 获取数据 _this.getDataList('全部')
let userId = _this.data.userData.id _this.getDataList('处理中')
// 获取预约数据 _this.getDataList('待评价')
_this.getReservationData({ _this.getDataList('已评价')
userId,
pageNum: _this.data.reservationPageNum,
pageSize: _this.data.reservationPageSize,
})
// 获取参与数据
_this.getParticipateData({
userId,
pageNum: _this.data.participatePageNum,
pageSize: _this.data.participatePageSize
})
}
}, },
/** /**
@ -411,13 +293,12 @@ Page({
onShareAppMessage(e) { onShareAppMessage(e) {
console.log('onShareAppMessage', e); console.log('onShareAppMessage', e);
let _this = this; let _this = this;
let id = e.target.dataset.id; let obj = e.currentTarget.dataset.obj
let detail = _this.data.reservationDataList.find(item => item.id == id)
// //
let param = { let param = {
title: detail.title, title: obj.repairName,
path: "/pages/meeting/invite/invite?id=" + id, path: `/pages/reportRepair/assign/detail/detail?id=${obj.id}`,
imageUrl: app.IMG_NAME + detail.roomContent.indoorPicUrlFirst, imageUrl: app.IMG_NAME + obj.visibleImg,
} }
console.log('onShareAppMessage', param); console.log('onShareAppMessage', param);
return param; return param;

View File

@ -1,23 +1,23 @@
<view class="containerView public"> <view class="containerView public">
<van-tabs bind:click="tabClickSwitch" color="#4e96f8" border animated title-active-color="black" title-inactive-color="gray"> <van-tabs bind:click="tabClickSwitch" color="#4e96f8" border animated title-active-color="black" title-inactive-color="gray">
<van-tab title="全部"> <van-tab title="全部">
<view class="itemView" wx:for="{{3}}" wx:for-item="item" wx:key="*this" bind:tap="jumpDetail"> <view class="itemView" wx:for="{{allOrder.dataList}}" wx:for-item="item" wx:key="*this" bind:tap="jumpDetail">
<view class="topTitle">301空调坏了</view> <view class="topTitle">{{item.repairName}}</view>
<view class="centerView"> <view class="centerView">
<view class="showImg" style="background: no-repeat center/cover url({{IMG_NAME + '/profile/static/index/banner/1.jpg'}});"></view> <view class="showImg" style="background: no-repeat center/contain url({{IMG_NAME + item.visibleImg}});"></view>
<view class="rightView"> <view class="rightView">
<view class="labelContent">维修单号20111101001002011110100100201111</view> <view class="labelContent">类型: {{item.typeName + '/' + item.deviceName}}</view>
<view class="labelContent">维修单号2011110100100</view> <view class="labelContent">地点: {{item.address + '/' + item.floor}}</view>
<view class="labelContent">维修单号2011110100100</view> <view class="labelContent">门牌号: {{item.room ? item.room : ''}}</view>
</view> </view>
</view> </view>
<view class="bottomLine"></view> <view class="bottomLine"></view>
<view class="bottomView"> <view class="bottomView">
<view class="status">已完成</view> <view class="status">{{item.statusName}}</view>
<view class="evaluate">评价</view> <view class="share" data-obj="{{item}}" bind:tap="onShareAppMessage">分享</view>
</view> </view>
</view> </view>
<view class="loadAllLine" wx:if="{{reservationIsDataAll}}"> <view class="loadAllLine" wx:if="{{allOrder.isDataAll}}">
<van-divider class="van-divider" customStyle="font-size: 26rpx;" contentPosition="center">数据已全部加载</van-divider> <van-divider class="van-divider" customStyle="font-size: 26rpx;" contentPosition="center">数据已全部加载</van-divider>
</view> </view>
</van-tab> </van-tab>

View File

@ -25,7 +25,7 @@
} }
.itemView .centerView .showImg { .itemView .centerView .showImg {
width: 200rpx; width: 180rpx;
height: 120rpx; height: 120rpx;
border-radius: 8rpx; border-radius: 8rpx;
flex-shrink: 0; flex-shrink: 0;
@ -69,11 +69,11 @@
line-height: 1; line-height: 1;
} }
.bottomView .evaluate { .bottomView .share {
font-size: 24rpx; font-size: 24rpx;
color: #ffffff; color: #ffffff;
padding: 10rpx 36rpx; padding: 10rpx 36rpx;
background: #ee6f2e; background: #409eff;
} }
.loadAllLine { .loadAllLine {