SelfRidicule c44a6b606a 1
2024-08-15 16:25:45 +08:00

284 lines
7.4 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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: {},
currentLog: {},
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
})
_this.getDetail(options.id)
},
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
})
// 日志
if (detail.logId) {
let firstLog = res.log.find(item => item.id == detail.logId)
if (firstLog) {
let preLog = res.log.find(item => item.id == firstLog.pid)
_this.setData({
currentLog: preLog
})
}
}
// 第一张图片
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()
})
},
// 初始化按钮
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(() => {
_this.setData({
innerAudioContextIsPlay: false
})
})
}
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() {
},
/**
* 生命周期函数--监听页面隐藏
*/
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;
}
})