diff --git a/miniprogram/api/repair/repair.js b/miniprogram/api/repair/repair.js
index 7650cfd..232d58f 100644
--- a/miniprogram/api/repair/repair.js
+++ b/miniprogram/api/repair/repair.js
@@ -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 = [{
diff --git a/miniprogram/pages/reportRepair/repair/case/case.js b/miniprogram/pages/reportRepair/repair/case/case.js
index db30979..dfae772 100644
--- a/miniprogram/pages/reportRepair/repair/case/case.js
+++ b/miniprogram/pages/reportRepair/repair/case/case.js
@@ -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)
+ }
+ })
+ },
+
/**
* 生命周期函数--监听页面初次渲染完成
*/
diff --git a/miniprogram/pages/reportRepair/repair/case/case.json b/miniprogram/pages/reportRepair/repair/case/case.json
index d796559..b93498a 100644
--- a/miniprogram/pages/reportRepair/repair/case/case.json
+++ b/miniprogram/pages/reportRepair/repair/case/case.json
@@ -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"
}
}
\ No newline at end of file
diff --git a/miniprogram/pages/reportRepair/repair/case/case.wxml b/miniprogram/pages/reportRepair/repair/case/case.wxml
index 3e77cb4..6abe6f7 100644
--- a/miniprogram/pages/reportRepair/repair/case/case.wxml
+++ b/miniprogram/pages/reportRepair/repair/case/case.wxml
@@ -12,9 +12,9 @@
{{detail.createTime}}
-
- 处理完成
- {{detail.createTime}}
+
+ 处理完成
+ {{detail.createTime}}
@@ -25,7 +25,7 @@
报修单信息
-
+
报修名称
{{detail.repairName}}
@@ -79,47 +79,56 @@
-
- 接收
- 退回
+
+ 接收
+ 退回
-
+
分析原因
-
+
解决方案
-
+
- 图片
+ 故障类型
+
+
+
+ {{item.name}}
+
+
+
+
+ 图片/视频
-
+
是否解决
-
-
- {{item.name}}
+
+
+ {{item.name}}
- 提交反馈
+ 提交反馈
-
+
处理成功
@@ -129,4 +138,7 @@
返回首页
-
\ No newline at end of file
+
+
+
+
\ No newline at end of file