const app = getApp() import { checkIsImg } from "../../../../utils/util.js" import { getDetailRq, getStatusName } from "../../../../api/repair/repair.js" Page({ /** * 页面的初始数据 */ data: { IMG_NAME: app.IMG_NAME, title: '详情', userDetail: {}, id: '', detail: {}, files: {}, log: { feedback: {}, //反馈 invalid: {}, // 无效原因 }, innerAudioContext: null, // 音频对象 innerAudioContextIsPlay: false, // 音频对象-是否播放 operatorBtn: { invalid: false, //无效申请 affirm: false, // 确认损坏 feedback: false, // 提交反馈 again: false, // 重新派单 evaluate: false, // 评价 } }, /** * 生命周期函数--监听页面加载 */ onLoad(options) { console.log('onLoad', options); let _this = this let userDetail = wx.getStorageSync('user') _this.setData({ ...options, userDetail }) }, back() { app.selfBackPage(1) }, 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.feedback = files.feedback.map(item => { item.url = app.IMG_NAME + item.url return item }) files.eval = files.eval.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 }) // 日志 let log = _this.data.log // 派单反馈 if (detail.status == 3) { log.feedback = _this.findLog(res.log, detail.logId, 1) } // 无效原因 if (detail.status == 11) { log.invalid = _this.findLog(res.log, detail.logId, 1) } _this.setData({ log }) // 第一张图片 let firstImg = files.repair.find(item => checkIsImg(item.url)) if (firstImg) { detail.visibleImg = firstImg.url } else { detail.visibleImg = app.IMG_NAME + '/profile/static/repair/index/noneImg.png' } // _this.setData({ detail, files }) // 初始化按钮 _this.initOperatorBtn() }) }, findLog(logs, logId, step) { let log = logs.find(item => item.id == logId) if (log) { for (let i = 0; i < step; i++) { log = logs.find(item => item.id == log.pid) if (!log) { return {} } } return log } else { return {} } }, // 初始化按钮 initOperatorBtn() { console.log('initOperatorBtn', 111); let _this = this let userDetail = _this.data.userDetail let detail = _this.data.detail let operatorBtn = _this.data.operatorBtn // 登录用户id let loginUserId = userDetail.id // 角色类型 let dataType = userDetail.dataType // 订单状态 let status = detail.status // // 角色类型 1.普通用户,3派单员,5维修工,7管理员 // 订单状态 1 待派单,3 重新派单,5 已派单,7 处理中, 9已完成 待评价, 11 已关闭 13 已评价 // if (status == 1) { // 1 待派单 if ((dataType == 3 && detail.typeId == userDetail.typeId) || dataType == 7) { // 派单员 or 管理员 operatorBtn.invalid = true //无效申请 operatorBtn.affirm = true // 确认损坏 operatorBtn.feedback = true // 提交反馈 } } if (status == 3) { // 3 重新派单 if (dataType == 7) { // 管理员 operatorBtn.again = true //重新派单 } } if (status == 9) { // 9已完成 待评价 if (loginUserId == detail.createBy) { // 创建报修单的人才能评价 operatorBtn.evaluate = true //评价 } } _this.setData({ operatorBtn }) }, // 播放语音 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(() => { console.log('innerAudioContext.onEnded', _this.data.files.voice[0].url); _this.setData({ innerAudioContextIsPlay: false }) }) innerAudioContext.onError((errMsg, errCode) => { console.log('innerAudioContext.onError', errMsg, errCode); }) } if (innerAudioContextIsPlay) { // 播放中 innerAudioContext.stop() innerAudioContextIsPlay = false } else { // 未播放 innerAudioContext.play() innerAudioContextIsPlay = true } // _this.setData({ innerAudioContext, innerAudioContextIsPlay }) }, // 确认损坏 jumpAffirm() { let _this = this wx.navigateTo({ url: `/pages/reportRepair/assign/affirm/affirm?id=${_this.data.id}`, }) }, // 提交反馈 jumpFeedback() { let _this = this wx.navigateTo({ url: `/pages/reportRepair/assign/feedback/feedback?id=${_this.data.id}`, }) }, // 无效 jumpInvalid() { let _this = this wx.navigateTo({ url: `/pages/reportRepair/assign/nullify/nullify?id=${_this.data.id}`, }) }, // 重新派单 jumpAgain() { let _this = this wx.navigateTo({ url: `/pages/reportRepair/assign/again/again?id=${_this.data.id}`, }) }, // 评价 jumpEvaluate() { let _this = this wx.navigateTo({ url: `/pages/reportRepair/assign/evaluate/evaluate?id=${_this.data.id}`, }) }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady() { }, /** * 生命周期函数--监听页面显示 */ onShow() { let _this = this _this.getDetail(_this.data.id) }, /** * 生命周期函数--监听页面隐藏 */ onHide() { }, /** * 生命周期函数--监听页面卸载 */ onUnload() { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh() { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom() { }, /** * 用户点击右上角分享 */ onShareAppMessage() { console.log('onShareAppMessage'); let _this = this; let obj = _this.data.detail // let param = { title: obj.repairName, path: `/pages/reportRepair/assign/detail/detail?id=${obj.id}`, imageUrl: obj.visibleImg, } console.log('onShareAppMessage', param); return param; } })