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

// package/troubleshooting/shootingForm/index.js
import { getPatrolRecordIssueHandleById, getStructuresUsers, editPatrolRecordIssueHandle } from "../../../utils/getApiUrl";
2 years ago
import { Request } from "../../../common";
const moment = require("../../../utils/moment");
Page({
/**
* 页面的初始数据
*/
data: {
imgServer: getApp().globalData.imgUrl,
userInfo: wx.getStorageSync("userInfo"),
2 years ago
data: {},
strucFocusUser: {},
focusPerson: [],
shootingid: '',
pointItemCollapseActiveNames: undefined,
2 years ago
maintenancePersonIndex: undefined,
maintenancePersonId: null,
maintenancePersonDepartmentShow: '',
maintenanceRequirement: '',
2 years ago
qualityPersonIndex: undefined,
planStartTimePopupShow: false,
planStartTime: '',
2 years ago
planStartTimeShow: '',
planEndTimePopupShow: false,
planEndTime: '',
2 years ago
planEndTimeShow: '',
planApproval: '',
planApprovalPerson: '',
planApprovalTime: '',
repair: '',
2 years ago
// 表单控制
isPlanState: false,
isApprove: false,
},
/**
* 生命周期函数--监听页面加载
*/
onLoad (options) {
const { shootingid } = options
if (shootingid) {
this.setData({
shootingid
})
2 years ago
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
})()
2 years ago
}
}
}
console.log(nextData);
this.setData({
data: nextData,
isPlanState: issue.state == 1 || issue.state == 3,
isApprove: issue.state == 2
2 years ago
})
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') : '',
})
}
2 years ago
})
} else {
}
},
onPointItemCollapseActiveChange (event) {
this.setData({
pointItemCollapseActiveNames: event.detail,
});
},
onMaintenancePersonPopupChange (e) {
2 years ago
console.log(e);
if (e.target.dataset.type == 'zhijian') {
this.setData({
qualityPersonIndex: e.detail.value
})
} else {
let selectedUser = this.data.focusPerson[e.detail.value]
2 years ago
this.setData({
maintenancePersonIndex: e.detail.value,
maintenancePersonDepartmentShow: selectedUser ? selectedUser.department.name : ''
2 years ago
})
}
},
showPlanStartTimePopup () {
2 years ago
if (this.data.isPlanState) {
this.setData({ planStartTimePopupShow: true })
}
},
2 years ago
closePlanStartTimePopup (e) {
this.setData({ planStartTimePopupShow: false })
2 years ago
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) {
2 years ago
console.log(event);
this.setData({
planStartTime: event.detail,
})
},
showPlanEndTimePopup () {
2 years ago
if (this.data.isPlanState) {
this.setData({ planEndTimePopupShow: true })
}
},
2 years ago
closePlanEndTimePopup (e) {
this.setData({ planEndTimePopupShow: false })
2 years ago
if (e.target.dataset.option == 'confirmed') {
this.setData({
planEndTimeShow: this.data.planEndTime ? moment(this.data.planEndTime).format('YYYY-MM-DD HH:mm') : ''
})
}
},
onPlanEndTimeChange (event) {
2 years ago
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
// });
},
2 years ago
confirm (e) {
console.log(e);
const { approve } = e.target.dataset
2 years ago
const { state } = this.data.data
const {
shootingid, focusPerson,
maintenancePersonIndex, maintenancePersonDepartmentShow, qualityPersonIndex, planStartTime, planEndTime, maintenanceRequirement,
userInfo, planApproval,
} = this.data
2 years ago
let nextState = ''
let confirmData = {}
if (state == 1 || state == 3) {
2 years ago
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
2 years ago
}
}
Request.put(editPatrolRecordIssueHandle(shootingid), {
...confirmData,
state: nextState,
}).then(res => {
// wx.redirectTo({
// url: '/package/troubleshooting/index'
// })
})
2 years ago
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage () {
}
})