You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
405 lines
14 KiB
405 lines
14 KiB
// package/troubleshooting/shootingForm/index.js
|
|
import { getPatrolRecordIssueHandleById, getStructuresUsers, editPatrolRecordIssueHandle } from "../../../utils/getApiUrl";
|
|
import { Request } from "../../../common";
|
|
const moment = require("../../../utils/moment");
|
|
|
|
Page({
|
|
|
|
/**
|
|
* 页面的初始数据
|
|
*/
|
|
data: {
|
|
imgServer: getApp().globalData.imgUrl,
|
|
userInfo: wx.getStorageSync("userInfo"),
|
|
data: {},
|
|
strucFocusUser: {},
|
|
focusPerson: [],
|
|
shootingid: '',
|
|
pointItemCollapseActiveNames: undefined,
|
|
maintenancePersonIndex: undefined,
|
|
maintenancePersonId: null,
|
|
maintenancePersonDepartmentShow: '',
|
|
maintenanceRequirement: '',
|
|
qualityPersonIndex: undefined,
|
|
planStartTimePopupShow: false,
|
|
planStartTime: '',
|
|
planStartTimeShow: '',
|
|
planEndTimePopupShow: false,
|
|
planEndTime: '',
|
|
planEndTimeShow: '',
|
|
planApproval: '',
|
|
planApprovalPerson: '',
|
|
planApprovalTime: '',
|
|
repair: '',
|
|
|
|
// 表单控制
|
|
isPlanState: false,
|
|
isApprove: false,
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面加载
|
|
*/
|
|
onLoad (options) {
|
|
const { shootingid } = options
|
|
if (shootingid) {
|
|
this.setData({
|
|
shootingid
|
|
})
|
|
Promise.all(
|
|
[
|
|
Request.get(getPatrolRecordIssueHandleById(shootingid), {}),
|
|
Request.get(getStructuresUsers(), {})
|
|
]
|
|
).then(res => {
|
|
console.log(res, 222);
|
|
const [issue, strucUser] = res
|
|
const nextData = {
|
|
...issue,
|
|
PatrolRecord: {
|
|
...issue.PatrolRecord,
|
|
inspectionTime: moment(issue.PatrolRecord.inspectionTime).format('YYYY-MM-DD HH:mm:ss'),
|
|
points: {
|
|
...issue.PatrolRecord.points,
|
|
inspectContent: (() => {
|
|
let inspectContent = []
|
|
for (let k in issue.PatrolRecord.points.inspectContent) {
|
|
inspectContent.push({
|
|
...issue.PatrolRecord.points.inspectContent[k],
|
|
itemName: k
|
|
})
|
|
}
|
|
return inspectContent
|
|
})()
|
|
}
|
|
}
|
|
}
|
|
console.log(nextData);
|
|
this.setData({
|
|
data: nextData,
|
|
isPlanState: issue.state == 1 || issue.state == 3,
|
|
isApprove: issue.state == 2
|
|
})
|
|
this.setData({
|
|
strucFocusUser: {
|
|
...strucUser,
|
|
}
|
|
})
|
|
const focusPerson = (strucUser.find(s => s.id == issue.PatrolRecord.points.project.id) || {}).users || []
|
|
this.setData({
|
|
focusPerson: focusPerson
|
|
})
|
|
if (issue.state > 1) {
|
|
let maintenancePersonIndex = focusPerson.findIndex(f => f.id == issue.repairPerson.id)
|
|
console.log(issue.startTime, moment(issue.startTime).format('YYYY-MM-DD HH:mm:ss'));
|
|
this.setData({
|
|
maintenancePersonIndex: maintenancePersonIndex,
|
|
maintenancePersonDepartmentShow: focusPerson[maintenancePersonIndex].department.name,
|
|
qualityPersonIndex: focusPerson.findIndex(f => f.id == issue.checkPerson.id),
|
|
planStartTime: moment(issue.startTime).unix(),
|
|
planStartTimeShow: moment(issue.startTime).format('YYYY-MM-DD HH:mm:ss'),
|
|
planEndTimeShow: moment(issue.endTime).format('YYYY-MM-DD HH:mm:ss'),
|
|
maintenanceRequirement: issue.repairAsk
|
|
})
|
|
}
|
|
if (issue.state > 2) {
|
|
this.setData({
|
|
planApproval: issue.approveOpinion,
|
|
planApprovalPerson: issue.approvePerson ? issue.approvePerson.name : '',
|
|
planApprovalTime: issue.approveDate ? moment(issue.approveDate).format('YYYY-MM-DD HH:mm:ss') : '',
|
|
})
|
|
}
|
|
})
|
|
} else {
|
|
|
|
}
|
|
},
|
|
|
|
onPointItemCollapseActiveChange (event) {
|
|
this.setData({
|
|
pointItemCollapseActiveNames: event.detail,
|
|
});
|
|
},
|
|
|
|
onMaintenancePersonPopupChange (e) {
|
|
console.log(e);
|
|
if (e.target.dataset.type == 'zhijian') {
|
|
this.setData({
|
|
qualityPersonIndex: e.detail.value
|
|
})
|
|
} else {
|
|
let selectedUser = this.data.focusPerson[e.detail.value]
|
|
this.setData({
|
|
maintenancePersonIndex: e.detail.value,
|
|
maintenancePersonDepartmentShow: selectedUser ? selectedUser.department.name : ''
|
|
})
|
|
}
|
|
},
|
|
|
|
showPlanStartTimePopup () {
|
|
if (this.data.isPlanState) {
|
|
this.setData({ planStartTimePopupShow: true })
|
|
}
|
|
},
|
|
|
|
closePlanStartTimePopup (e) {
|
|
this.setData({ planStartTimePopupShow: false })
|
|
console.log(e.target, this.data.planStartTime);
|
|
if (e.target.dataset.option == 'cancel') {
|
|
// this.setData({ planStartTime: '' })
|
|
} else if (e.target.dataset.option == 'confirmed') {
|
|
this.setData({
|
|
planStartTimeShow: this.data.planStartTime ? moment(this.data.planStartTime).format('YYYY-MM-DD HH:mm') : ''
|
|
})
|
|
}
|
|
},
|
|
|
|
onPlanStartTimeChange (event) {
|
|
console.log(event);
|
|
this.setData({
|
|
planStartTime: event.detail,
|
|
})
|
|
},
|
|
|
|
showPlanEndTimePopup () {
|
|
if (this.data.isPlanState) {
|
|
this.setData({ planEndTimePopupShow: true })
|
|
}
|
|
},
|
|
|
|
closePlanEndTimePopup (e) {
|
|
this.setData({ planEndTimePopupShow: false })
|
|
if (e.target.dataset.option == 'confirmed') {
|
|
this.setData({
|
|
planEndTimeShow: this.data.planEndTime ? moment(this.data.planEndTime).format('YYYY-MM-DD HH:mm') : ''
|
|
})
|
|
}
|
|
},
|
|
|
|
onPlanEndTimeChange (event) {
|
|
this.setData({
|
|
planEndTime: event.detail,
|
|
})
|
|
},
|
|
|
|
onInputChange (e) {
|
|
console.log(e);
|
|
this.setData({
|
|
[e.target.dataset.type]: e.detail.value
|
|
})
|
|
},
|
|
|
|
// 预览图片
|
|
previewImg: function (e) {
|
|
console.log(e);
|
|
const { index, itemindex } = e.currentTarget.dataset
|
|
const imgs = this.data.data.PatrolRecord.points.inspectContent[itemindex].imgs;
|
|
const newImgs = imgs.map(i => this.data.imgServer + i);
|
|
wx.previewImage({
|
|
current: newImgs[index],
|
|
urls: newImgs
|
|
})
|
|
},
|
|
|
|
// 上传图片
|
|
chooseImg: function (e) { // 这里是选取图片的方法
|
|
const that = this;
|
|
let pics = [];
|
|
// const detailPics = that.data.inspectContent[e.currentTarget.dataset.item].imgs;
|
|
// if (detailPics.length >= 20) {
|
|
// wx.showToast({
|
|
// title: '最多选择20张图片上传',
|
|
// icon: 'none'
|
|
// });
|
|
// return;
|
|
// }
|
|
// wx.chooseMedia({
|
|
// count: 20, // 基础库2.25.0前,最多可支持9个文件,2.25.0及以后最多可支持20个文件
|
|
// mediaType: ['image'], // 文件类型
|
|
// sizeType: ['original', 'compressed'], // original 原图,compressed 压缩图,默认二者都有
|
|
// sourceType: ['album', 'camera'], // album 从相册选图,camera 使用相机,默认二者都有
|
|
// success: function (res) {
|
|
// const imgs = res.tempFiles;
|
|
// for (let i = 0; i < imgs.length; i++) {
|
|
// if (res.tempFiles[i].size > 15728640) {
|
|
// wx.showToast({ title: '图片大于15M,不可上传', icon: 'none' });
|
|
// return;
|
|
// }
|
|
// const fileNameArr = res.tempFiles[i].tempFilePath.split('.');
|
|
// const extension = res.tempFiles[i].tempFilePath.split('.')[fileNameArr.length - 1];
|
|
// if (extension !== 'jpg' && extension !== 'png' && extension !== 'jpeg') {
|
|
// wx.showToast({ title: '只能上传jpg、jpeg、png格式的图片', icon: 'none' });
|
|
// return;
|
|
// }
|
|
// pics.push(imgs[i].tempFilePath)
|
|
// }
|
|
// that.uploadimg({
|
|
// url: getApp().globalData.webUrl + '_upload/attachments/project', // 图片上传的接口
|
|
// path: pics, // 选取的图片的地址数组
|
|
// }, e.currentTarget.dataset.item);
|
|
// },
|
|
// })
|
|
},
|
|
|
|
//多张图片上传
|
|
uploadimg: function (data, itemName) {
|
|
// wx.showLoading({
|
|
// title: '上传中...',
|
|
// mask: true,
|
|
// })
|
|
// let that = this,
|
|
// i = data.i ? data.i : 0,
|
|
// success = data.success ? data.success : 0,
|
|
// fail = data.fail ? data.fail : 0;
|
|
// let imgs = that.data.inspectContent[itemName].imgs;
|
|
// wx.uploadFile({
|
|
// url: data.url,
|
|
// filePath: data.path[i],
|
|
// name: 'file',
|
|
// success: (resp) => {
|
|
// wx.hideLoading();
|
|
// success++;
|
|
// let str = JSON.parse(resp.data) // 返回的结果,可能不同项目结果不一样
|
|
// str = str.uploaded
|
|
// console.log(str);
|
|
// if (imgs.length >= 20) {
|
|
// const inspectContent = that.data.inspectContent;
|
|
// inspectContent[itemName].imgs = imgs;
|
|
// that.setData({
|
|
// inspectContent,
|
|
// });
|
|
// return false;
|
|
// } else {
|
|
// imgs.push(str);
|
|
// const inspectContent = that.data.inspectContent;
|
|
// inspectContent[itemName].imgs = imgs;
|
|
// that.setData({
|
|
// inspectContent,
|
|
// })
|
|
// }
|
|
// },
|
|
// fail: (res) => {
|
|
// fail++;
|
|
// console.log('fail:' + i + "fail:" + fail);
|
|
// },
|
|
// complete: () => {
|
|
// i++;
|
|
// if (i == data.path.length) { // 当图片传完时,停止调用
|
|
// console.log('执行完毕');
|
|
// console.log('成功:' + success + " 失败:" + fail);
|
|
// } else { // 若图片还没有传完,则继续调用函数
|
|
// data.i = i;
|
|
// data.success = success;
|
|
// data.fail = fail;
|
|
// that.uploadimg(data, itemName); // 递归,回调自己
|
|
// }
|
|
// }
|
|
// });
|
|
},
|
|
|
|
// 删除图片
|
|
deleteImg: function (e) {
|
|
// let imgs = this.data.inspectContent[e.currentTarget.dataset.item].imgs;
|
|
// const index = e.currentTarget.dataset.index;
|
|
// imgs.splice(index, 1);
|
|
// const inspectContent = this.data.inspectContent;
|
|
// inspectContent[e.currentTarget.dataset.item].imgs = imgs;
|
|
// this.setData({
|
|
// inspectContent
|
|
// });
|
|
},
|
|
|
|
confirm (e) {
|
|
console.log(e);
|
|
const { approve } = e.target.dataset
|
|
const { state } = this.data.data
|
|
const {
|
|
shootingid, focusPerson,
|
|
maintenancePersonIndex, maintenancePersonDepartmentShow, qualityPersonIndex, planStartTime, planEndTime, maintenanceRequirement,
|
|
userInfo, planApproval,
|
|
} = this.data
|
|
let nextState = ''
|
|
let confirmData = {}
|
|
if (state == 1 || state == 3) {
|
|
nextState = 2
|
|
confirmData = {
|
|
...confirmData,
|
|
repairPerson: focusPerson[maintenancePersonIndex],
|
|
repairUnit: maintenancePersonDepartmentShow,
|
|
checkPerson: focusPerson[qualityPersonIndex],
|
|
startTime: moment(planStartTime).format(),
|
|
endTime: moment(planEndTime).format(),
|
|
repairAsk: maintenanceRequirement,
|
|
}
|
|
} else if (state == 2) {
|
|
confirmData = {
|
|
...confirmData,
|
|
approveOpinion: planApproval,
|
|
approvePerson: userInfo,
|
|
approveDate: moment().format(),
|
|
}
|
|
if (approve == 'agree') {
|
|
nextState = 4
|
|
} else {
|
|
nextState = 3
|
|
}
|
|
}
|
|
Request.put(editPatrolRecordIssueHandle(shootingid), {
|
|
...confirmData,
|
|
state: nextState,
|
|
}).then(res => {
|
|
// wx.redirectTo({
|
|
// url: '/package/troubleshooting/index'
|
|
// })
|
|
})
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面初次渲染完成
|
|
*/
|
|
onReady () {
|
|
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面显示
|
|
*/
|
|
onShow () {
|
|
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面隐藏
|
|
*/
|
|
onHide () {
|
|
|
|
},
|
|
|
|
/**
|
|
* 生命周期函数--监听页面卸载
|
|
*/
|
|
onUnload () {
|
|
|
|
},
|
|
|
|
/**
|
|
* 页面相关事件处理函数--监听用户下拉动作
|
|
*/
|
|
onPullDownRefresh () {
|
|
|
|
},
|
|
|
|
/**
|
|
* 页面上拉触底事件的处理函数
|
|
*/
|
|
onReachBottom () {
|
|
|
|
},
|
|
|
|
/**
|
|
* 用户点击右上角分享
|
|
*/
|
|
onShareAppMessage () {
|
|
|
|
}
|
|
})
|