From 49d881764103dab3c0b9acd7f896c9c282579802 Mon Sep 17 00:00:00 2001 From: SelfRidicule Date: Wed, 14 Aug 2024 19:07:39 +0800 Subject: [PATCH] 1 --- miniprogram/api/repair/repair.js | 8 + .../pages/reportRepair/repair/case/case.js | 88 +++++++- .../pages/reportRepair/repair/case/case.wxml | 70 +++--- .../pages/reportRepair/repair/index/index.js | 201 +++++++++++++++++- .../reportRepair/repair/index/index.json | 6 +- .../reportRepair/repair/index/index.wxml | 51 +++-- .../reportRepair/repair/index/index.wxss | 5 + 7 files changed, 374 insertions(+), 55 deletions(-) diff --git a/miniprogram/api/repair/repair.js b/miniprogram/api/repair/repair.js index 028fa1a..7650cfd 100644 --- a/miniprogram/api/repair/repair.js +++ b/miniprogram/api/repair/repair.js @@ -87,6 +87,14 @@ export function selectWorkerIdByTypeIdRq(id) { }); } +// 获取维修人员工单数量统计 +export function workerRepairNumberRq(id) { + return request({ + url: `/app/repair/workerRepairNumber`, + method: "post", + }); +} + // 返回订单状态 // 状态:1 待派单,3 重新派单,5 已派单,7 处理中, 9已完成 待评价, 11 已关闭 13 已评价 diff --git a/miniprogram/pages/reportRepair/repair/case/case.js b/miniprogram/pages/reportRepair/repair/case/case.js index 28e3194..db30979 100644 --- a/miniprogram/pages/reportRepair/repair/case/case.js +++ b/miniprogram/pages/reportRepair/repair/case/case.js @@ -1,5 +1,10 @@ const app = getApp() +import { + getDetailRq, + getStatusName +} from "../../../../api/repair/repair.js" + Page({ /** @@ -7,15 +12,19 @@ Page({ */ data: { IMG_NAME: app.IMG_NAME, - statusList : [ - { - name : '已解决', - status : 1, + id: '', + detail: {}, + files: [], + innerAudioContext: null, // 音频对象 + innerAudioContextIsPlay: false, // 音频对象-是否播放 + statusList: [{ + name: '已解决', + status: 1, isSelect: true, }, { - name : '未解决', - status : 2, + name: '未解决', + status: 2, isSelect: false, } ] @@ -25,7 +34,74 @@ Page({ * 生命周期函数--监听页面加载 */ onLoad(options) { + console.log('onLoad', options); + let _this = this + _this.setData({ + ...options + }) + _this.getDetail(options.id) + }, + getDetail(id) { + let _this = this + getDetailRq({ + id + }).then(res => { + console.log("getDetailRq", res); + // 详情 + let detail = res.repair + detail.statusName = getStatusName(detail.status) + // 附件 + let files = res.files + files.repair = files.repair.map(item => { + item.url = app.IMG_NAME + item.url + return item + }) + files.voice = files.voice.map(item => { + item.url = app.IMG_NAME + item.url + return item + }) + _this.setData({ + detail, + files + }) + }) + }, + + // 播放语音 + startAudio() { + console.log('startAudio'); + let _this = this + // 获取innerAudioContext实例 + let innerAudioContext = _this.data.innerAudioContext + let innerAudioContextIsPlay = _this.data.innerAudioContextIsPlay + if (!innerAudioContext) { + // 全局设置播放声音 + wx.setInnerAudioOption({ + obeyMuteSwitch: false + }); + innerAudioContext = wx.createInnerAudioContext() + // 设置音频文件的路径 + innerAudioContext.src = _this.data.files.voice[0].url + innerAudioContextIsPlay = false + innerAudioContext.onEnded(() => { + _this.setData({ + innerAudioContextIsPlay: false + }) + }) + } + if (innerAudioContextIsPlay) { // 播放中 + innerAudioContext.stop() + innerAudioContextIsPlay = false + } else { // 未播放 + innerAudioContext.play() + innerAudioContextIsPlay = true + } + // + _this.setData({ + innerAudioContext, + innerAudioContextIsPlay + }) }, /** diff --git a/miniprogram/pages/reportRepair/repair/case/case.wxml b/miniprogram/pages/reportRepair/repair/case/case.wxml index 53f1047..3e77cb4 100644 --- a/miniprogram/pages/reportRepair/repair/case/case.wxml +++ b/miniprogram/pages/reportRepair/repair/case/case.wxml @@ -2,62 +2,80 @@ - - 派单信息 - 2022-11-15 10:25:23 + + 派单信息 + {{detail.createTime}} - - 维修反馈 - 2022-11-15 10:25:23 + + 维修反馈 + {{detail.createTime}} - - 处理完成 - 2022-11-15 10:25:23 + + 处理完成 + {{detail.createTime}} - 报修人电话:19883286522 + 报修人电话:{{detail.phone}} 报修单信息 - 报修设备: - 南楼102室空调 + 报修名称 + {{detail.repairName}} - 派发对象: - 李四 + 故障等级 + {{detail.repairLevel}} - 报修内容: - 设备故障,及时检修设备故障,及时检修设备故障,及时检修设备故障,及时检修 + 故障时间 + {{detail.repairTime}} - 工单编号: - BX202112100001 + 故障类型 + {{detail.typeName + '/' + detail.deviceName}} - 报修人: - 张三 + 故障地点 + {{detail.address + '/' + detail.floor}} - 报修时间: - 2022-11-15 10:25:23 + 门牌号 + {{detail.room}} + + + 联系电话 + {{detail.phone}} + + + 报修人姓名 + {{detail.name}} + + + 故障描述 + {{detail.explain}} 相关语音: - 4s + + + + + 报修图片: - + + + @@ -92,7 +110,7 @@ 是否解决 - + {{item.name}} @@ -103,7 +121,7 @@ - + 处理成功 您已提交成功 diff --git a/miniprogram/pages/reportRepair/repair/index/index.js b/miniprogram/pages/reportRepair/repair/index/index.js index 0bd4c53..ae80eb2 100644 --- a/miniprogram/pages/reportRepair/repair/index/index.js +++ b/miniprogram/pages/reportRepair/repair/index/index.js @@ -1,5 +1,17 @@ const app = getApp() +import { + selfFormatTimeYMD, + selfFormatTimeHM, + checkIsImg +} from "../../../../utils/util.js" + + +import { + repairListRq, + workerRepairNumberRq +} from "../../../../api/repair/repair.js" + Page({ /** @@ -7,22 +19,161 @@ Page({ */ data: { IMG_NAME: app.IMG_NAME, + workerNumber: {}, + tabTitle: 'wait', // tab 标题 + // 待完成 + waitOrder: { + pageNum: 1, + pageSize: 10, + type: 'wait', + dataList: [], + isDataAll: false, + }, + // 进行中 + workOrder: { + pageNum: 1, + pageSize: 10, + type: 'working', + dataList: [], + isDataAll: false, + }, + // 已完成 + closeOrder: { + pageNum: 1, + pageSize: 10, + type: 'close', + dataList: [], + isDataAll: false, + }, }, /** * 生命周期函数--监听页面加载 */ onLoad(options) { - + let _this = this; }, - back(){ + back() { wx.navigateBack() }, - jumpCase(){ + // tab 点击切换 + tabClickSwitch(e) { + console.log('tabClickSwitch', e); + let _this = this; + _this.setData({ + tabTitle: e.target.dataset.type + }) + }, + + // 获取数据 + getDataList(transferTabTitle) { + // 获取参数 + let _this = this; + let tabTitle = _this.data.tabTitle + if (transferTabTitle) { + tabTitle = transferTabTitle + } + let pageNum = null + let pageSize = null + let type = null + let isDataAll = null + + // + let waitOrder = _this.data.waitOrder + let workOrder = _this.data.workOrder + let closeOrder = _this.data.closeOrder + + if (tabTitle == 'wait') { + pageNum = waitOrder.pageNum + pageSize = waitOrder.pageSize + type = waitOrder.type + isDataAll = waitOrder.isDataAll + + } else if (tabTitle == 'working') { + pageNum = workOrder.pageNum + pageSize = workOrder.pageSize + type = workOrder.type + isDataAll = workOrder.isDataAll + + } else if (tabTitle == 'close') { + pageNum = closeOrder.pageNum + pageSize = closeOrder.pageSize + type = closeOrder.type + isDataAll = closeOrder.isDataAll + + } else { + wx.showToast({ + title: `tab 切换错误(${tabTitle})`, + icon: 'none', + }); + return; + } + + // 判断数据是否已全部加载 + if (isDataAll) { + return; + } + // 传递参数 + let param = { + pageNum, + pageSize, + menu: '5', // 维修 + type, + } + // 查询数据 + repairListRq(param).then(res => { + console.log('repairListRq', res); + let dataList = res.rows + let isDataAll = false + if (!(dataList && dataList.length > 0)) { + dataList = [] + isDataAll = true + } + // + if (tabTitle == 'wait') { + waitOrder.dataList = waitOrder.dataList.concat(_this.formartData(dataList)) + waitOrder.pageNum = waitOrder.pageNum + 1 + waitOrder.isDataAll = isDataAll + _this.setData({ + waitOrder + }) + + } else if (tabTitle == 'working') { + workOrder.dataList = workOrder.dataList.concat(_this.formartData(dataList)) + workOrder.pageNum = workOrder.pageNum + 1 + workOrder.isDataAll = isDataAll + _this.setData({ + workOrder + }) + + } else if (tabTitle == 'close') { + closeOrder.dataList = closeOrder.dataList.concat(_this.formartData(dataList)) + closeOrder.pageNum = closeOrder.pageNum + 1 + closeOrder.isDataAll = isDataAll + _this.setData({ + closeOrder + }) + + } + }) + }, + + // 格式化数据 + formartData(dataList) { + // 格式化数据 + return dataList.map(item => { + return item; + }) + }, + + // 跳转 + jumpCase(e) { + console.log('jumpCase', e); + let id = e.currentTarget.dataset.obj.id wx.navigateTo({ - url: '/pages/reportRepair/repair/case/case', + url: `/pages/reportRepair/repair/case/case?id=${id}`, }) }, @@ -37,7 +188,45 @@ Page({ * 生命周期函数--监听页面显示 */ onShow() { + let _this = this; + _this.setData({ + // 待完成 + waitOrder: { + pageNum: 1, + pageSize: 10, + type: 'wait', + dataList: [], + isDataAll: false, + }, + // 进行中 + workOrder: { + pageNum: 1, + pageSize: 10, + type: 'working', + dataList: [], + isDataAll: false, + }, + // 已完成 + closeOrder: { + pageNum: 1, + pageSize: 10, + type: 'close', + dataList: [], + isDataAll: false, + }, + }) + // 数据 + _this.getDataList('wait') + _this.getDataList('working') + _this.getDataList('close') + // 获取维修人员工单数量统计 + workerRepairNumberRq().then(res => { + console.log('workerRepairNumberRq', res); + _this.setData({ + workerNumber: res.workerRepairNumber + }) + }) }, /** @@ -65,7 +254,9 @@ Page({ * 页面上拉触底事件的处理函数 */ onReachBottom() { - + console.log('onReachBottom'); + let _this = this + _this.getDataList() }, /** diff --git a/miniprogram/pages/reportRepair/repair/index/index.json b/miniprogram/pages/reportRepair/repair/index/index.json index 02854d6..70f33e6 100644 --- a/miniprogram/pages/reportRepair/repair/index/index.json +++ b/miniprogram/pages/reportRepair/repair/index/index.json @@ -1,6 +1,8 @@ { "navigationStyle": "custom", "usingComponents": { - "van-icon": "@vant/weapp/icon/index" - } + "van-icon": "@vant/weapp/icon/index", + "van-divider": "@vant/weapp/divider/index" + }, + "onReachBottomDistance": 100 } \ No newline at end of file diff --git a/miniprogram/pages/reportRepair/repair/index/index.wxml b/miniprogram/pages/reportRepair/repair/index/index.wxml index a938bf1..94d3e7f 100644 --- a/miniprogram/pages/reportRepair/repair/index/index.wxml +++ b/miniprogram/pages/reportRepair/repair/index/index.wxml @@ -14,25 +14,19 @@ - - 100 - + {{workerNumber.wait}} 待完成 - - 200 - + {{workerNumber.working}} 进行中 - - 300 - + {{workerNumber.close}} 已完成 @@ -40,17 +34,42 @@ - 待完成 - 进行中 - 已完成 + 待完成 + 进行中 + 已完成 - - - 王军发起一个订单王军发起一个订单王军发起一个订单 - 2024-01-01 10:10:10 + + + {{item.name}}发起一个订单 + {{item.createTime}} + + 数据已全部加载 + + + + + + {{item.name}}发起一个订单 + {{item.createTime}} + + + + 数据已全部加载 + + + + + + {{item.name}}发起一个订单 + {{item.createTime}} + + + + 数据已全部加载 + \ No newline at end of file diff --git a/miniprogram/pages/reportRepair/repair/index/index.wxss b/miniprogram/pages/reportRepair/repair/index/index.wxss index a83c7e4..deb7bfd 100644 --- a/miniprogram/pages/reportRepair/repair/index/index.wxss +++ b/miniprogram/pages/reportRepair/repair/index/index.wxss @@ -1,5 +1,6 @@ .containerView.public { background: none; + height: auto; } .elHidden { @@ -193,4 +194,8 @@ height: 20rpx; width: 20rpx; background: red; +} + +.loadAllLine { + margin-top: 80rpx; } \ No newline at end of file