mirror of
https://gitee.com/elegant_wings/dbd-meeting-wx-small.git
synced 2025-06-21 23:39:36 +08:00
284 lines
7.4 KiB
JavaScript
284 lines
7.4 KiB
JavaScript
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) || 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;
|
||
}
|
||
}) |