471615499@qq.com 3c4e6da8ae 20240827内容修改
完成以下修改:
首页消息提醒,点击直接到维修界面
我要报修上传图片后图片不展示
我要报修->故障描述输入框点击没反应
维修员在报修查询里面看到别人的报修记录
报修人姓名和联系电话移至故障类型上面
报修记录查询里,加入搜索和切换(我的数据、全部数据)
维修入口查看数据后提示红点消失
退回工单提示的tip显示错位
报修详情页,维修中时加入维修员姓名和电话
消息提示文字
消息通知批量清除
维修入口点击上方统计圆圈也可以切换tab
分享时的标题为null
2024-08-27 22:15:54 +08:00

325 lines
8.6 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: {},
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)
}
if (detail.status == 1) {
log.back = _this.findLog(res.log, detail.logId, 1)
}
console.log(log)
_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管理员, 9楼层
// 订单状态 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}`,
})
},
// 点击拨打电话联系
makePhoneCall(e) {
let _phone = e.currentTarget.dataset.phone
if (_phone) {
wx.makePhoneCall({
phoneNumber: _phone
})
}
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
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 title = `${obj.address + '/' + obj.floor}${obj.room}${obj.typeName}`
//
let param = {
title,
path: `/pages/reportRepair/assign/detail/detail?id=${obj.id}`,
imageUrl: obj.visibleImg,
}
console.log('onShareAppMessage', param);
return param;
}
})