mirror of
https://gitee.com/elegant_wings/dbd-meeting-wx-small.git
synced 2025-06-22 00:49:37 +08:00
1
This commit is contained in:
parent
e45c024d2f
commit
49d8817641
@ -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 已评价
|
||||
|
@ -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
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
|
@ -2,62 +2,80 @@
|
||||
|
||||
<view class="topHead">
|
||||
<view class="progressView">
|
||||
<view class="point">
|
||||
<view class="msgView">派单信息</view>
|
||||
<view class="time">2022-11-15 10:25:23</view>
|
||||
<view class="point {{detail.status == '5' ? 'activity' : ''}}">
|
||||
<view class="msgView {{detail.status == '5' ? 'activity' : ''}}">派单信息</view>
|
||||
<view class="time {{detail.status == '5' ? 'activity' : ''}}">{{detail.createTime}}</view>
|
||||
</view>
|
||||
<view class="line"></view>
|
||||
<view class="point">
|
||||
<view class="msgView">维修反馈</view>
|
||||
<view class="time">2022-11-15 10:25:23</view>
|
||||
<view class="point {{detail.status == '7' ? 'activity' : ''}}">
|
||||
<view class="msgView {{detail.status == '7' ? 'activity' : ''}}">维修反馈</view>
|
||||
<view class="time {{detail.status == '7' ? 'activity' : ''}}">{{detail.createTime}}</view>
|
||||
</view>
|
||||
<view class="line"></view>
|
||||
<view class="point activity">
|
||||
<view class="msgView activity">处理完成</view>
|
||||
<view class="time activity">2022-11-15 10:25:23</view>
|
||||
<view class="point {{detail.status == '9' ? 'activity' : ''}}">
|
||||
<view class="msgView {{detail.status == '9' ? 'activity' : ''}}">处理完成</view>
|
||||
<view class="time {{detail.status == '9' ? 'activity' : ''}}">{{detail.createTime}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="personMsgView">
|
||||
报修人电话:19883286522
|
||||
报修人电话:{{detail.phone}}
|
||||
</view>
|
||||
|
||||
<view class="labelView">报修单信息</view>
|
||||
|
||||
<view class="step1">
|
||||
<view class="itemView">
|
||||
<view class="name">报修设备:</view>
|
||||
<view class="content">南楼102室空调</view>
|
||||
<view class="name">报修名称</view>
|
||||
<view class="content">{{detail.repairName}}</view>
|
||||
</view>
|
||||
<view class="itemView">
|
||||
<view class="name">派发对象:</view>
|
||||
<view class="content">李四</view>
|
||||
<view class="name">故障等级</view>
|
||||
<view class="content">{{detail.repairLevel}}</view>
|
||||
</view>
|
||||
<view class="itemView">
|
||||
<view class="name">报修内容:</view>
|
||||
<view class="content">设备故障,及时检修设备故障,及时检修设备故障,及时检修设备故障,及时检修</view>
|
||||
<view class="name">故障时间</view>
|
||||
<view class="content">{{detail.repairTime}}</view>
|
||||
</view>
|
||||
<view class="itemView">
|
||||
<view class="name">工单编号:</view>
|
||||
<view class="content"> BX202112100001</view>
|
||||
<view class="name">故障类型</view>
|
||||
<view class="content">{{detail.typeName + '/' + detail.deviceName}}</view>
|
||||
</view>
|
||||
<view class="itemView">
|
||||
<view class="name">报修人:</view>
|
||||
<view class="content">张三</view>
|
||||
<view class="name">故障地点</view>
|
||||
<view class="content">{{detail.address + '/' + detail.floor}}</view>
|
||||
</view>
|
||||
<view class="itemView">
|
||||
<view class="name">报修时间:</view>
|
||||
<view class="content">2022-11-15 10:25:23</view>
|
||||
<view class="name">门牌号</view>
|
||||
<view class="content">{{detail.room}}</view>
|
||||
</view>
|
||||
<view class="itemView">
|
||||
<view class="name">联系电话</view>
|
||||
<view class="content">{{detail.phone}}</view>
|
||||
</view>
|
||||
<view class="itemView">
|
||||
<view class="name">报修人姓名</view>
|
||||
<view class="content">{{detail.name}}</view>
|
||||
</view>
|
||||
<view class="itemView">
|
||||
<view class="name">故障描述</view>
|
||||
<view class="content">{{detail.explain}}</view>
|
||||
</view>
|
||||
<view class="itemView">
|
||||
<view class="name">相关语音:</view>
|
||||
<view class="content">4s</view>
|
||||
<view class="content">
|
||||
<view class="voiceView" wx:if="{{files.voice.length > 0}}">
|
||||
<van-icon name="volume-o" color="black" size="40rpx" bind:tap="startAudio" />
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="itemView">
|
||||
<view class="name">报修图片:</view>
|
||||
<view class="content">
|
||||
<view wx:for="{{4}}" class="imgView" style="background: no-repeat center/cover url({{IMG_NAME + '/profile/static/index/banner/1.jpg'}});"></view>
|
||||
<view class="imgContentView">
|
||||
<van-uploader file-list="{{ files.repair }}" show-upload="{{false}}" deletable="{{false}}" />
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@ -103,7 +121,7 @@
|
||||
|
||||
<view class="step3">
|
||||
<view class="mainView">
|
||||
<van-icon name="success" color="#4e96f8" size="180rpx"/>
|
||||
<van-icon name="success" color="#4e96f8" size="180rpx" />
|
||||
<view class="label1">处理成功</view>
|
||||
<view class="label2">您已提交成功</view>
|
||||
</view>
|
||||
|
@ -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()
|
||||
},
|
||||
|
||||
/**
|
||||
|
@ -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
|
||||
}
|
@ -14,25 +14,19 @@
|
||||
<view class="itemListView">
|
||||
<view class="itemView">
|
||||
<view class="circle1 blueColor">
|
||||
<view class="circle2 blueCenterColor">
|
||||
100
|
||||
</view>
|
||||
<view class="circle2 blueCenterColor">{{workerNumber.wait}}</view>
|
||||
</view>
|
||||
<view class="name">待完成</view>
|
||||
</view>
|
||||
<view class="itemView">
|
||||
<view class="circle1 cyanColor">
|
||||
<view class="circle2 cyanCenterColor">
|
||||
200
|
||||
</view>
|
||||
<view class="circle2 cyanCenterColor">{{workerNumber.working}}</view>
|
||||
</view>
|
||||
<view class="name">进行中</view>
|
||||
</view>
|
||||
<view class="itemView">
|
||||
<view class="circle1 greenColor">
|
||||
<view class="circle2 greenCenterColor">
|
||||
300
|
||||
</view>
|
||||
<view class="circle2 greenCenterColor">{{workerNumber.close}}</view>
|
||||
</view>
|
||||
<view class="name">已完成</view>
|
||||
</view>
|
||||
@ -40,17 +34,42 @@
|
||||
</view>
|
||||
|
||||
<view class="statusView">
|
||||
<view class="status">待完成</view>
|
||||
<view class="status activity">进行中</view>
|
||||
<view class="status">已完成</view>
|
||||
<view class="status {{tabTitle == 'wait' ? 'activity' : ''}}" bind:tap="tabClickSwitch" data-type="wait">待完成</view>
|
||||
<view class="status {{tabTitle == 'working' ? 'activity' : ''}}" bind:tap="tabClickSwitch" data-type="working">进行中</view>
|
||||
<view class="status {{tabTitle == 'close' ? 'activity' : ''}}" bind:tap="tabClickSwitch" data-type="close">已完成</view>
|
||||
</view>
|
||||
|
||||
<view class="caseListView">
|
||||
<view class="caseView" wx:for="{{10}}" bind:tap="jumpCase">
|
||||
<view class="content ellipsisFont">王军发起一个订单王军发起一个订单王军发起一个订单</view>
|
||||
<view class="time">2024-01-01 10:10:10</view>
|
||||
<view class="caseListView" wx:if="{{tabTitle == 'wait'}}">
|
||||
<view class="caseView" wx:for="{{waitOrder.dataList}}" wx:for-item="item" wx:key="*this" data-obj="{{item}}" bind:tap="jumpCase">
|
||||
<view class="content ellipsisFont">{{item.name}}发起一个订单</view>
|
||||
<view class="time">{{item.createTime}}</view>
|
||||
<view class="status"></view>
|
||||
</view>
|
||||
<view class="loadAllLine" wx:if="{{waitOrder.isDataAll}}">
|
||||
<van-divider class="van-divider" customStyle="font-size: 26rpx;" contentPosition="center">数据已全部加载</van-divider>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="caseListView" wx:if="{{tabTitle == 'working'}}">
|
||||
<view class="caseView" wx:for="{{workOrder.dataList}}" wx:for-item="item" wx:key="*this" data-obj="{{item}}" bind:tap="jumpCase">
|
||||
<view class="content ellipsisFont">{{item.name}}发起一个订单</view>
|
||||
<view class="time">{{item.createTime}}</view>
|
||||
<view class="status"></view>
|
||||
</view>
|
||||
<view class="loadAllLine" wx:if="{{workOrder.isDataAll}}">
|
||||
<van-divider class="van-divider" customStyle="font-size: 26rpx;" contentPosition="center">数据已全部加载</van-divider>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="caseListView" wx:if="{{tabTitle == 'close'}}">
|
||||
<view class="caseView" wx:for="{{closeOrder.dataList}}" wx:for-item="item" wx:key="*this" data-obj="{{item}}" bind:tap="jumpCase">
|
||||
<view class="content ellipsisFont">{{item.name}}发起一个订单</view>
|
||||
<view class="time">{{item.createTime}}</view>
|
||||
<view class="status"></view>
|
||||
</view>
|
||||
<view class="loadAllLine" wx:if="{{closeOrder.isDataAll}}">
|
||||
<van-divider class="van-divider" customStyle="font-size: 26rpx;" contentPosition="center">数据已全部加载</van-divider>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
</view>
|
@ -1,5 +1,6 @@
|
||||
.containerView.public {
|
||||
background: none;
|
||||
height: auto;
|
||||
}
|
||||
|
||||
.elHidden {
|
||||
@ -194,3 +195,7 @@
|
||||
width: 20rpx;
|
||||
background: red;
|
||||
}
|
||||
|
||||
.loadAllLine {
|
||||
margin-top: 80rpx;
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user