mirror of
https://gitee.com/elegant_wings/dbd-meeting-wx-small.git
synced 2025-06-21 21:19:37 +08:00
1
This commit is contained in:
parent
49d8817641
commit
94904b4d8e
@ -96,6 +96,15 @@ export function workerRepairNumberRq(id) {
|
||||
}
|
||||
|
||||
|
||||
// 故障原因-字典
|
||||
export function faultTypeListRq() {
|
||||
return request({
|
||||
url: `/repairDeviceApi/faultTypeList`,
|
||||
method: "get",
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
// 返回订单状态
|
||||
// 状态:1 待派单,3 重新派单,5 已派单,7 处理中, 9已完成 待评价, 11 已关闭 13 已评价
|
||||
let statusList = [{
|
||||
|
@ -1,8 +1,17 @@
|
||||
const app = getApp()
|
||||
|
||||
import Notify from '@vant/weapp/notify/notify';
|
||||
|
||||
import {
|
||||
selfFormatTimeYMDHMS,
|
||||
repairAttachUpload,
|
||||
} from "../../../../utils/util.js"
|
||||
|
||||
import {
|
||||
getDetailRq,
|
||||
getStatusName
|
||||
getStatusName,
|
||||
flowHandleRq,
|
||||
faultTypeListRq
|
||||
} from "../../../../api/repair/repair.js"
|
||||
|
||||
Page({
|
||||
@ -17,17 +26,26 @@ Page({
|
||||
files: [],
|
||||
innerAudioContext: null, // 音频对象
|
||||
innerAudioContextIsPlay: false, // 音频对象-是否播放
|
||||
statusList: [{
|
||||
form: {
|
||||
cause: "",
|
||||
solution: "",
|
||||
failureTypeId: null,
|
||||
failureTypeName: "",
|
||||
resolve: null,
|
||||
fileList: [],
|
||||
},
|
||||
solveList: [{
|
||||
name: '已解决',
|
||||
status: 1,
|
||||
isSelect: true,
|
||||
isSelect: false,
|
||||
},
|
||||
{
|
||||
name: '未解决',
|
||||
status: 2,
|
||||
status: 0,
|
||||
isSelect: false,
|
||||
}
|
||||
]
|
||||
],
|
||||
failureTypeList: []
|
||||
},
|
||||
|
||||
/**
|
||||
@ -39,7 +57,10 @@ Page({
|
||||
_this.setData({
|
||||
...options
|
||||
})
|
||||
// 详情
|
||||
_this.getDetail(options.id)
|
||||
// 查询故障原因-字典
|
||||
_this.getFaultTypeList()
|
||||
},
|
||||
|
||||
getDetail(id) {
|
||||
@ -68,8 +89,8 @@ Page({
|
||||
})
|
||||
},
|
||||
|
||||
// 播放语音
|
||||
startAudio() {
|
||||
// 播放语音
|
||||
startAudio() {
|
||||
console.log('startAudio');
|
||||
let _this = this
|
||||
// 获取innerAudioContext实例
|
||||
@ -104,6 +125,199 @@ Page({
|
||||
})
|
||||
},
|
||||
|
||||
// 接收/退回-提交
|
||||
receiveSubmit(e) {
|
||||
console.log('receiveSubmit', e);
|
||||
let _this = this
|
||||
let status = e.currentTarget.dataset.status
|
||||
let data = {
|
||||
"repair": {
|
||||
"id": _this.data.id
|
||||
},
|
||||
"content": "",
|
||||
"operate": ""
|
||||
}
|
||||
if (status == 'yes') {
|
||||
data.content = "接收工单"
|
||||
data.operate = "NEXT"
|
||||
} else {
|
||||
data.content = "退回工单"
|
||||
data.operate = "BACK"
|
||||
}
|
||||
flowHandleRq(data).then(res => {
|
||||
console.log('flowHandleRq', res);
|
||||
if (res.code == 0) {
|
||||
app.vantNotifySuccess(Notify, res.msg)
|
||||
_this.getDetail(_this.data.id)
|
||||
} else {
|
||||
app.vantNotifyErr(Notify, res.msg)
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
// input输入内容监听
|
||||
fieldInput(e) {
|
||||
console.log('fieldInput', e);
|
||||
let _this = this;
|
||||
let form = _this.data.form;
|
||||
form[e.currentTarget.dataset.name] = e.detail
|
||||
_this.setData({
|
||||
form
|
||||
})
|
||||
},
|
||||
|
||||
// 查询故障原因-字典
|
||||
getFaultTypeList() {
|
||||
let _this = this
|
||||
faultTypeListRq().then(res => {
|
||||
console.log('getFaultTypeList', res);
|
||||
let failureTypeList = res.rows.map(item => {
|
||||
return {
|
||||
id: item.id,
|
||||
name: item.name,
|
||||
isSelect: false,
|
||||
}
|
||||
})
|
||||
_this.setData({
|
||||
failureTypeList
|
||||
})
|
||||
})
|
||||
},
|
||||
|
||||
// 选择故障类型
|
||||
selectFaultType(e) {
|
||||
console.log('selectFaultType', e);
|
||||
let _this = this
|
||||
let obj = e.currentTarget.dataset.obj
|
||||
let failureTypeList = _this.data.failureTypeList.map(item => {
|
||||
if (item.id == obj.id) {
|
||||
item.isSelect = !item.isSelect
|
||||
let form = _this.data.form
|
||||
if (item.isSelect) {
|
||||
form.failureTypeId = item.id
|
||||
form.failureTypeName = item.name
|
||||
} else {
|
||||
form.failureTypeId = null
|
||||
form.failureTypeName = ''
|
||||
}
|
||||
_this.setData(form)
|
||||
} else {
|
||||
item.isSelect = false
|
||||
}
|
||||
return item
|
||||
})
|
||||
_this.setData({
|
||||
failureTypeList
|
||||
})
|
||||
},
|
||||
|
||||
// 选择-是否解决
|
||||
selectSolve(e) {
|
||||
console.log('selectSolve', e);
|
||||
let _this = this
|
||||
let obj = e.currentTarget.dataset.obj
|
||||
let solveList = _this.data.solveList.map(item => {
|
||||
if (item.status == obj.status) {
|
||||
item.isSelect = !item.isSelect
|
||||
let form = _this.data.form
|
||||
if (item.isSelect) {
|
||||
form.resolve = item.status
|
||||
} else {
|
||||
form.resolve = null
|
||||
}
|
||||
_this.setData(form)
|
||||
} else {
|
||||
item.isSelect = false
|
||||
}
|
||||
return item
|
||||
})
|
||||
_this.setData({
|
||||
solveList
|
||||
})
|
||||
},
|
||||
|
||||
// 文件-上传后
|
||||
async fileAfterRead(event) {
|
||||
let _this = this;
|
||||
console.log('fileAfterRead', event);
|
||||
// 上传完成需要更新 fileList
|
||||
let fileList = _this.data.form.fileList;
|
||||
//
|
||||
const {
|
||||
file
|
||||
} = event.detail;
|
||||
// 当设置 mutiple 为 true 时, file 为数组格式,否则为对象格式
|
||||
for (let i = 0; i < file.length; i++) {
|
||||
let url = file[i].url;
|
||||
await repairAttachUpload({
|
||||
url,
|
||||
operate: 'repair'
|
||||
}).then(res => {
|
||||
console.log('upload file ', res);
|
||||
fileList.push({
|
||||
id: res.id,
|
||||
relativeUrl: res.url,
|
||||
url: app.IMG_NAME + res.url,
|
||||
deletable: true,
|
||||
})
|
||||
})
|
||||
}
|
||||
let form = _this.data.form
|
||||
form.fileList = fileList
|
||||
_this.setData({
|
||||
form
|
||||
})
|
||||
},
|
||||
|
||||
|
||||
// 删除图片
|
||||
deleteImg(event) {
|
||||
console.log('deleteImg', event);
|
||||
let _this = this;
|
||||
let fileList = _this.data.form.fileList;
|
||||
fileList.splice(event.detail.index, 1);
|
||||
//
|
||||
let form = _this.data.form
|
||||
form.fileList = fileList
|
||||
_this.setData({
|
||||
form
|
||||
})
|
||||
},
|
||||
|
||||
// 反馈-提交
|
||||
feedbackSubmit() {
|
||||
console.log('feedbackSubmit');
|
||||
let _this = this
|
||||
let form = _this.data.form
|
||||
// 校验数据
|
||||
//
|
||||
// 报修名称
|
||||
if (form.resolve == null) {
|
||||
app.vantNotifyErr(Notify, '请选择是否解决!')
|
||||
return;
|
||||
}
|
||||
//
|
||||
let files = form.fileList.map(item => item.id)
|
||||
let data = {
|
||||
"repair": {
|
||||
"id": _this.data.id,
|
||||
...form,
|
||||
},
|
||||
files,
|
||||
"content": "维修-提交反馈",
|
||||
"operate": "NEXT"
|
||||
}
|
||||
flowHandleRq(data).then(res => {
|
||||
console.log('flowHandleRq', res);
|
||||
if (res.code == 0) {
|
||||
app.vantNotifySuccess(Notify, res.msg)
|
||||
_this.getDetail(_this.data.id)
|
||||
} else {
|
||||
app.vantNotifyErr(Notify, res.msg)
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面初次渲染完成
|
||||
*/
|
||||
|
@ -5,6 +5,7 @@
|
||||
"van-field": "@vant/weapp/field/index",
|
||||
"van-uploader": "@vant/weapp/uploader/index",
|
||||
"van-checkbox": "@vant/weapp/checkbox/index",
|
||||
"van-checkbox-group": "@vant/weapp/checkbox-group/index"
|
||||
"van-checkbox-group": "@vant/weapp/checkbox-group/index",
|
||||
"van-notify": "@vant/weapp/notify/index"
|
||||
}
|
||||
}
|
@ -12,9 +12,9 @@
|
||||
<view class="time {{detail.status == '7' ? 'activity' : ''}}">{{detail.createTime}}</view>
|
||||
</view>
|
||||
<view class="line"></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 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>
|
||||
@ -25,7 +25,7 @@
|
||||
|
||||
<view class="labelView">报修单信息</view>
|
||||
|
||||
<view class="step1">
|
||||
<view class="step1" wx:if="{{detail.status == '5' || detail.status == '7' }}">
|
||||
<view class="itemView">
|
||||
<view class="name">报修名称</view>
|
||||
<view class="content">{{detail.repairName}}</view>
|
||||
@ -79,47 +79,56 @@
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="bottomView">
|
||||
<view class="btn">接收</view>
|
||||
<view class="btn oragen">退回</view>
|
||||
<view class="bottomView" wx:if="{{detail.status == '5' }}">
|
||||
<view class="btn" data-status="yes" bind:tap="receiveSubmit">接收</view>
|
||||
<view class="btn oragen" data-status="no" bind:tap="receiveSubmit">退回</view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="step2">
|
||||
<view class="step2" wx:if="{{detail.status == '7' }}">
|
||||
<view class="itemView">
|
||||
<view class="title">分析原因</view>
|
||||
<view class="content">
|
||||
<van-field model:value="{{ value }}" type="textarea" placeholder="请输入用户名" maxlength="{{100}}" show-word-limit border="{{true}}" autosize input-class="selfTextarea" />
|
||||
<van-field model:value="{{ form.cause }}" bind:input="fieldInput" data-name="cause" type="textarea" placeholder="请输入" maxlength="{{100}}" show-word-limit border="{{true}}" autosize input-class="selfTextarea" clearable/>
|
||||
</view>
|
||||
</view>
|
||||
<view class="itemView">
|
||||
<view class="title">解决方案</view>
|
||||
<view class="content">
|
||||
<van-field model:value="{{ value }}" type="textarea" placeholder="请输入用户名" maxlength="{{100}}" show-word-limit border="{{true}}" autosize input-class="selfTextarea" />
|
||||
<van-field model:value="{{ form.solution }}" bind:input="fieldInput" data-name="solution" type="textarea" placeholder="请输入" maxlength="{{100}}" show-word-limit border="{{true}}" autosize input-class="selfTextarea" clearable/>
|
||||
</view>
|
||||
</view>
|
||||
<view class="itemView">
|
||||
<view class="title">图片</view>
|
||||
<view class="title">故障类型</view>
|
||||
<view class="content">
|
||||
<view class="checkItemView" wx:for="{{failureTypeList}}" wx:key="*this" bind:tap="selectFaultType" data-obj="{{item}}">
|
||||
<van-checkbox value="{{ item.isSelect }}" shape="square" icon-size="36rpx"></van-checkbox>
|
||||
<view class="name">{{item.name}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="itemView">
|
||||
<view class="title">图片/视频</view>
|
||||
<view class="content">
|
||||
<!-- 上传图片 -->
|
||||
<view class="uploadImgView">
|
||||
<van-uploader file-list="{{ fileList }}" upload-text="点击上传照片" use-before-read bind:before-read="beforeRead" bind:after-read="afterRead" deletable="{{ true }}" bind:delete="deleteImg" max-count="1" />
|
||||
<van-uploader file-list="{{ form.fileList }}" upload-text="点击上传" bind:after-read="fileAfterRead" deletable="{{ true }}" bind:delete="deleteImg" max-count="6" accept="media" multiple/>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="itemView">
|
||||
<view class="title">是否解决</view>
|
||||
<view class="content">
|
||||
<view class="checkItemView" wx:for="{{statusList}}" wx:key="*this">
|
||||
<van-checkbox value="{{ item.isSelect }}" data-id="{{item.status}}" shape="square" icon-size="36rpx" bind:tap="checkBoxClick"></van-checkbox>
|
||||
<view class="name" data-id="{{item.status}}" bind:tap="checkBoxClick">{{item.name}}</view>
|
||||
<view class="checkItemView" wx:for="{{solveList}}" wx:key="*this" bind:tap="selectSolve" data-obj="{{item}}">
|
||||
<van-checkbox value="{{ item.isSelect }}" shape="square" icon-size="36rpx" ></van-checkbox>
|
||||
<view class="name">{{item.name}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="btn">提交反馈</view>
|
||||
<view class="btn" bind:tap="feedbackSubmit">提交反馈</view>
|
||||
</view>
|
||||
|
||||
<view class="step3">
|
||||
<view class="step3" wx:if="{{detail.status >= '9' }}">
|
||||
<view class="mainView">
|
||||
<van-icon name="success" color="#4e96f8" size="180rpx" />
|
||||
<view class="label1">处理成功</view>
|
||||
@ -129,4 +138,7 @@
|
||||
<view class="btn back">返回首页</view>
|
||||
</view>
|
||||
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<!-- 消息通知 -->
|
||||
<van-notify id="van-notify" />
|
Loading…
x
Reference in New Issue
Block a user