From 94904b4d8ee78488fc9960755a19b6c29bf62457 Mon Sep 17 00:00:00 2001 From: SelfRidicule Date: Wed, 14 Aug 2024 20:49:09 +0800 Subject: [PATCH] 1 --- miniprogram/api/repair/repair.js | 9 + .../pages/reportRepair/repair/case/case.js | 228 +++++++++++++++++- .../pages/reportRepair/repair/case/case.json | 3 +- .../pages/reportRepair/repair/case/case.wxml | 48 ++-- 4 files changed, 262 insertions(+), 26 deletions(-) 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