描述:订单信息

This commit is contained in:
SelfRidicule 2024-08-13 17:39:38 +08:00
parent 8e21c838ae
commit 31e3192087
6 changed files with 256 additions and 141 deletions

View File

@ -1,21 +0,0 @@
import {
request
} from '../selfRequest';
// 派单列表
export function dispatcherListRq(data) {
return request({
url: `/repair/dispatcherList?pageNum=${data.pageNum}&pageSize=${data.pageSize}`,
method: "post",
data
});
}
// 报修详情
export function reportDetailRq(id) {
return request({
url: `/repair/get/` + id,
method: "get",
});
}

View File

@ -45,3 +45,61 @@ export function repairSaveRq(data) {
data
});
}
// * 工单列表
// * menu:1.保修查询3派单入口5维修入口, 7 管理员
// * 报修查询:全部、处理中、待评价、已评价 type对应值all、process、evaling、evaled
// * 派单入口:重新派单、待派单、已派单、已关闭 type对应值anew、wait、already、close
// * 维修入口:待完成、进行中、已完成 type对应值wait、working、close
// * 管理员:重派单,全部 type对应值anew、all 【小程序暂时用不到】
export function repairListRq(data) {
return request({
url: `/app/repair/list?pageNum=${data.pageNum}&pageSize=${data.pageSize}`,
method: "post",
data
});
}
// 获取详情
export function getDetailRq(data) {
return request({
url: `/app/repair/get`,
method: "post",
data
});
}
// 返回订单状态
// 状态:1 待派单,3 重新派单,5 已派单,7 处理中, 9已完成 待评价, 11 已关闭 13 已评价
let statusList = [{
status: 1,
statusName: '待派单',
}, {
status: 3,
statusName: '重新派单',
}, {
status: 5,
statusName: '已派单',
}, {
status: 7,
statusName: '处理中',
}, {
status: 9,
statusName: '已完成',
}, {
status: 11,
statusName: '已关闭',
}, {
status: 13,
statusName: '已评价',
},]
export function getStatusName(status) {
let obj = statusList.find(item=> item.status == status )
if(obj){
return obj.statusName
}else{
return '状态不存在!'
}
}

View File

@ -2,8 +2,9 @@ const app = getApp()
import {
reportDetailRq
} from "../../../../api/repair/distributionCase.js"
getDetailRq,
getStatusName
} from "../../../../api/repair/repair.js"
Page({
@ -14,6 +15,7 @@ Page({
IMG_NAME: app.IMG_NAME,
id: '',
detail: {},
files: {},
innerAudioContext: null, // 音频对象
innerAudioContextIsPlay: false, // 音频对象-是否播放
},
@ -36,27 +38,26 @@ Page({
getDetail(id) {
let _this = this
reportDetailRq(id).then(res => {
console.log("reportDetailRq", res);
let detail = res.data
let repairVoice = detail.repairVoice
let repairImages = detail.repairImages
// 音频
if (repairVoice) {
detail.voiceObj = JSON.parse(repairVoice)
detail.voiceObj.url = app.IMG_NAME + detail.voiceObj.url
}
// 图片/视频
if (repairImages) {
detail.fileList = JSON.parse(repairImages).map(item => {
return {
url: app.IMG_NAME + item.url,
name: item.url,
}
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
detail,
files
})
})
},
@ -75,7 +76,7 @@ Page({
});
innerAudioContext = wx.createInnerAudioContext()
// 设置音频文件的路径
innerAudioContext.src = _this.data.detail.voiceObj.url
innerAudioContext.src = _this.data.files.voice[0].url
innerAudioContextIsPlay = false
innerAudioContext.onEnded(() => {
_this.setData({

View File

@ -17,8 +17,8 @@
<view class="mainView">
<view class="statusView">
<view class="label">{{detail.sn}}</view>
<view class="time">{{detail.typeName + '/' + detail.repairDeviceName}}</view>
<view class="tag">{{detail.status}}</view>
<view class="time">{{detail.typeName + '/' + detail.deviceName}}</view>
<view class="tag">{{detail.statusName}}</view>
</view>
<view class="reportView">
@ -34,19 +34,19 @@
</view>
<view class="itemView">
<view class="label">故障时间</view>
<view class="content">{{detail.failureDate}}</view>
<view class="content">{{detail.repairTime}}</view>
</view>
<view class="itemView">
<view class="label">故障类型</view>
<view class="content">{{detail.typeName + '/' + detail.repairDeviceName}}</view>
<view class="content">{{detail.typeName + '/' + detail.deviceName}}</view>
</view>
<view class="itemView">
<view class="label">故障地点</view>
<view class="content">{{detail.addressName + '/' + detail.roomName}}</view>
<view class="content">{{detail.address + '/' + detail.floor}}</view>
</view>
<view class="itemView">
<view class="label">门牌号</view>
<view class="content">{{detail.area}}</view>
<view class="content">{{detail.room}}</view>
</view>
<view class="itemView">
<view class="label">联系电话</view>
@ -58,14 +58,14 @@
</view>
<view class="itemView">
<view class="label">故障描述</view>
<view class="content">{{detail.content}}</view>
<view class="content">{{detail.explain}}</view>
</view>
<view class="itemView">
<view class="label">语音</view>
<view class="content">
<view class="voiceView" wx:if="{{detail.voiceObj.url}}">
<view class="voiceView" wx:if="{{files.voice.length > 0}}">
<van-icon name="volume-o" color="black" size="40rpx" bind:tap="startAudio" />
<view class="voiceTimeView" bind:tap="startAudio">{{detail.voiceObj.time}} s</view>
<!-- <view class="voiceTimeView" bind:tap="startAudio">{{detail.voiceObj.time}} s</view> -->
</view>
</view>
</view>
@ -73,7 +73,7 @@
<view class="label">故障图片/视频</view>
<view class="content">
<view class="imgContentView">
<van-uploader file-list="{{ detail.fileList }}" show-upload="{{false}}" deletable="{{false}}"/>
<van-uploader file-list="{{ files.repair }}" show-upload="{{false}}" deletable="{{false}}"/>
</view>
</view>
</view>

View File

@ -11,8 +11,8 @@ import {
import {
dispatcherListRq
} from "../../../../api/repair/distributionCase.js"
repairListRq
} from "../../../../api/repair/repair.js"
Page({
@ -27,29 +27,37 @@ Page({
tabTitle: '待派单', // tab 标题
resendOrderVisible: false, // 重新派单显示
// 重新派单
resendOrderPageNum: 1,
resendOrderPageSize: 10,
resendOrderStatus: 0,
resendOrderDataList: [],
resendOrderIsDataAll: false,
resendOrder: {
pageNum: 1,
pageSize: 10,
type: 'anew',
dataList: [],
isDataAll: false,
},
// 待派单
pendingOrderPageNum: 1,
pendingOrderPageSize: 10,
pendingOrderStatus: 1,
pendingOrderDataList: [],
pendingOrderIsDataAll: false,
pendingOrder: {
pageNum: 1,
pageSize: 10,
type: 'wait',
dataList: [],
isDataAll: false,
},
// 已派单
assignOrderPageNum: 1,
assignOrderPageSize: 10,
assignOrderStatus: 2,
assignOrderDataList: [],
assignOrderIsDataAll: false,
assignOrder: {
pageNum: 1,
pageSize: 10,
type: 'already',
dataList: [],
isDataAll: false,
},
// 已关闭
closeOrderPageNum: 1,
closeOrderPageSize: 10,
closeOrderStatus: 3,
closeOrderDataList: [],
closeOrderIsDataAll: false,
closeOrder: {
pageNum: 1,
pageSize: 10,
type: 'close',
dataList: [],
isDataAll: false,
},
},
/**
@ -85,34 +93,40 @@ Page({
tabTitle = transferTabTitle
}
let userId = _this.data.userData.id
let isDataAll = null
let pageNum = null
let pageSize = null
let status = null
let type = null
let isDataAll = null
//
let resendOrder = _this.data.resendOrder
let pendingOrder = _this.data.pendingOrder
let assignOrder = _this.data.assignOrder
let closeOrder = _this.data.closeOrder
if (tabTitle == '重新派单') {
pageNum = _this.data.resendOrderPageNum
pageSize = _this.data.resendOrderPageSize
status = _this.data.resendOrderStatus
isDataAll = _this.data.resendOrderIsDataAll
pageNum = resendOrder.pageNum
pageSize = resendOrder.pageSize
type = resendOrder.type
isDataAll = resendOrder.isDataAll
} else if (tabTitle == '待派单') {
pageNum = _this.data.pendingOrderPageNum
pageSize = _this.data.pendingOrderPageSize
status = _this.data.pendingOrderStatus
isDataAll = _this.data.pendingOrderIsDataAll
pageNum = pendingOrder.pageNum
pageSize = pendingOrder.pageSize
type = pendingOrder.type
isDataAll = pendingOrder.isDataAll
} else if (tabTitle == '已派单') {
pageNum = _this.data.assignOrderPageNum
pageSize = _this.data.assignOrderPageSize
status = _this.data.assignOrderStatus
isDataAll = _this.data.assignOrderIsDataAll
pageNum = assignOrder.pageNum
pageSize = assignOrder.pageSize
type = assignOrder.type
isDataAll = assignOrder.isDataAll
} else if (tabTitle == '已关闭') {
pageNum = _this.data.closeOrderPageNum
pageSize = _this.data.closeOrderPageSize
status = _this.data.closeOrderStatus
isDataAll = _this.data.closeOrderIsDataAll
pageNum = closeOrder.pageNum
pageSize = closeOrder.pageSize
type = closeOrder.type
isDataAll = closeOrder.isDataAll
} else {
wx.showToast({
@ -128,15 +142,15 @@ Page({
}
// 传递参数
let param = {
userId,
pageNum,
pageSize,
statusValue: status
menu: '3', // 派单
type,
}
// 查询数据
dispatcherListRq(param).then(res => {
console.log('dispatcherListRq', res);
let dataList = res.data.records
repairListRq(param).then(res => {
console.log('repairListRq', res);
let dataList = res.rows
let isDataAll = false
if (!(dataList && dataList.length > 0)) {
dataList = []
@ -144,31 +158,35 @@ Page({
}
//
if (tabTitle == '重新派单') {
resendOrder.dataList = resendOrder.dataList.concat(_this.formartData(dataList))
resendOrder.pageNum = resendOrder.pageNum + 1
resendOrder.isDataAll = isDataAll
_this.setData({
resendOrderDataList: _this.data.resendOrderDataList.concat(_this.formartData(dataList)),
resendOrderPageNum: pageNum + 1,
resendOrderIsDataAll: isDataAll,
resendOrder
})
} else if (tabTitle == '待派单') {
pendingOrder.dataList = pendingOrder.dataList.concat(_this.formartData(dataList))
pendingOrder.pageNum = pendingOrder.pageNum + 1
pendingOrder.isDataAll = isDataAll
_this.setData({
pendingOrderDataList: _this.data.pendingOrderDataList.concat(_this.formartData(dataList)),
pendingOrderPageNum: pageNum + 1,
pendingOrderIsDataAll: isDataAll,
pendingOrder
})
} else if (tabTitle == '已派单') {
assignOrder.dataList = assignOrder.dataList.concat(_this.formartData(dataList))
assignOrder.pageNum = assignOrder.pageNum + 1
assignOrder.isDataAll = isDataAll
_this.setData({
assignOrderDataList: _this.data.assignOrderDataList.concat(_this.formartData(dataList)),
assignOrderPageNum: pageNum + 1,
assignOrderIsDataAll: isDataAll,
assignOrder
})
} else if (tabTitle == '已关闭') {
closeOrder.dataList = closeOrder.dataList.concat(_this.formartData(dataList))
closeOrder.pageNum = closeOrder.pageNum + 1
closeOrder.isDataAll = isDataAll
_this.setData({
closeOrderDataList: _this.data.closeOrderDataList.concat(_this.formartData(dataList)),
closeOrderPageNum: pageNum + 1,
closeOrderIsDataAll: isDataAll,
closeOrder
})
}
})

View File

@ -1,39 +1,16 @@
<view class="containerView public">
<van-tabs bind:click="tabClickSwitch" color="#4e96f8" border animated title-active-color="black" title-inactive-color="gray">
<van-tab title="重新派单" wx:if="{{resendOrderVisible}}">
<view class="itemView" wx:for="{{resendOrderDataList}}" wx:for-item="item" wx:key="*this" bind:tap="jumpAgain">
<view class="topTitle">编号: T123123123</view>
<view class="selfLine"></view>
<view class="centerView">
<view class="showImg" style="background: no-repeat center/cover url({{IMG_NAME + item.visibleImg}});"></view>
<view class="rightView">
<view class="labelName ellipsisFont">空调损坏</view>
<view class="labelContent1 ellipsisFont">设备名称: 空调</view>
<view class="labelContent2 ellipsisFont">设备地址: 301南楼</view>
</view>
</view>
<view class="selfLine"></view>
<view class="bottomView">
<view class="name">王军18300011120</view>
<view class="time">2024-01-01 12:12:00</view>
</view>
</view>
<view class="loadAllLine" wx:if="{{resendOrderIsDataAll}}">
<van-divider class="van-divider" customStyle="font-size: 26rpx;" contentPosition="center">数据已全部加载</van-divider>
</view>
</van-tab>
<van-tab title="待派单">
<view class="itemView" wx:for="{{pendingOrderDataList}}" wx:for-item="item" wx:key="*this" data-obj="{{item}}" bind:tap="jumpDetail">
<view class="itemView" wx:for="{{resendOrder.dataList}}" wx:for-item="item" wx:key="*this" data-obj="{{item}}" bind:tap="jumpDetail">
<view class="topTitle">编号: {{item.sn}}</view>
<view class="selfLine"></view>
<view class="centerView">
<view class="showImg" style="background: no-repeat center/cover url({{IMG_NAME + item.visibleImg}});"></view>
<view class="rightView">
<view class="labelName ellipsisFont">{{item.repairName}}</view>
<view class="labelContent1 ellipsisFont">类型: {{item.typeName + '/' + item.repairDeviceName}}</view>
<view class="labelContent2 ellipsisFont">地点: {{item.addressName + '/' + item.roomName}}</view>
<view class="labelContent2 ellipsisFont">门牌号: {{item.area ? item.area : ''}}</view>
<view class="labelContent1 ellipsisFont">类型: {{item.typeName + '/' + item.deviceName}}</view>
<view class="labelContent2 ellipsisFont">地点: {{item.address + '/' + item.floor}}</view>
<view class="labelContent2 ellipsisFont">门牌号: {{item.room ? item.room : ''}}</view>
</view>
</view>
<view class="selfLine"></view>
@ -48,16 +25,98 @@
</view>
</view>
</view>
<view class="loadAllLine" wx:if="{{pendingOrderIsDataAll}}">
<view class="loadAllLine" wx:if="{{resendOrder.isDataAll}}">
<van-divider class="van-divider" customStyle="font-size: 26rpx;" contentPosition="center">数据已全部加载</van-divider>
</view>
</van-tab>
<van-tab title="待派单">
<view class="itemView" wx:for="{{pendingOrder.dataList}}" wx:for-item="item" wx:key="*this" data-obj="{{item}}" bind:tap="jumpDetail">
<view class="topTitle">编号: {{item.sn}}</view>
<view class="selfLine"></view>
<view class="centerView">
<view class="showImg" style="background: no-repeat center/cover url({{IMG_NAME + item.visibleImg}});"></view>
<view class="rightView">
<view class="labelName ellipsisFont">{{item.repairName}}</view>
<view class="labelContent1 ellipsisFont">类型: {{item.typeName + '/' + item.deviceName}}</view>
<view class="labelContent2 ellipsisFont">地点: {{item.address + '/' + item.floor}}</view>
<view class="labelContent2 ellipsisFont">门牌号: {{item.room ? item.room : ''}}</view>
</view>
</view>
<view class="selfLine"></view>
<view class="bottomView">
<view class="name">
<van-icon name="manager-o" size="28rpx" color="#4e96f8"/>
{{item.name}}{{item.phone}}
</view>
<view class="time">
<van-icon name="calendar-o" size="30rpx" color="#4e96f8"/>
{{item.createTime}}
</view>
</view>
</view>
<view class="loadAllLine" wx:if="{{pendingOrder.isDataAll}}">
<van-divider class="van-divider" customStyle="font-size: 26rpx;" contentPosition="center">数据已全部加载</van-divider>
</view>
</van-tab>
<van-tab title="已派单">
<view class="itemView" wx:for="{{assignOrder.dataList}}" wx:for-item="item" wx:key="*this" data-obj="{{item}}" bind:tap="jumpDetail">
<view class="topTitle">编号: {{item.sn}}</view>
<view class="selfLine"></view>
<view class="centerView">
<view class="showImg" style="background: no-repeat center/cover url({{IMG_NAME + item.visibleImg}});"></view>
<view class="rightView">
<view class="labelName ellipsisFont">{{item.repairName}}</view>
<view class="labelContent1 ellipsisFont">类型: {{item.typeName + '/' + item.deviceName}}</view>
<view class="labelContent2 ellipsisFont">地点: {{item.address + '/' + item.floor}}</view>
<view class="labelContent2 ellipsisFont">门牌号: {{item.room ? item.room : ''}}</view>
</view>
</view>
<view class="selfLine"></view>
<view class="bottomView">
<view class="name">
<van-icon name="manager-o" size="28rpx" color="#4e96f8"/>
{{item.name}}{{item.phone}}
</view>
<view class="time">
<van-icon name="calendar-o" size="30rpx" color="#4e96f8"/>
{{item.createTime}}
</view>
</view>
</view>
<view class="loadAllLine" wx:if="{{assignOrder.isDataAll}}">
<van-divider class="van-divider" customStyle="font-size: 26rpx;" contentPosition="center">数据已全部加载</van-divider>
</view>
</van-tab>
<van-tab title="已关闭">
<view class="itemView" wx:for="{{closeOrder.dataList}}" wx:for-item="item" wx:key="*this" data-obj="{{item}}" bind:tap="jumpDetail">
<view class="topTitle">编号: {{item.sn}}</view>
<view class="selfLine"></view>
<view class="centerView">
<view class="showImg" style="background: no-repeat center/cover url({{IMG_NAME + item.visibleImg}});"></view>
<view class="rightView">
<view class="labelName ellipsisFont">{{item.repairName}}</view>
<view class="labelContent1 ellipsisFont">类型: {{item.typeName + '/' + item.deviceName}}</view>
<view class="labelContent2 ellipsisFont">地点: {{item.address + '/' + item.floor}}</view>
<view class="labelContent2 ellipsisFont">门牌号: {{item.room ? item.room : ''}}</view>
</view>
</view>
<view class="selfLine"></view>
<view class="bottomView">
<view class="name">
<van-icon name="manager-o" size="28rpx" color="#4e96f8"/>
{{item.name}}{{item.phone}}
</view>
<view class="time">
<van-icon name="calendar-o" size="30rpx" color="#4e96f8"/>
{{item.createTime}}
</view>
</view>
</view>
<view class="loadAllLine" wx:if="{{closeOrder.isDataAll}}">
<van-divider class="van-divider" customStyle="font-size: 26rpx;" contentPosition="center">数据已全部加载</van-divider>
</view>
</van-tab>
</van-tabs>