// pageage/safetyManagement/addSafetyInspect/index.js const app = getApp() Page({ /** * 页面的初始数据 */ data: { id: "", maxDate: new Date(2088, 1, 1).getTime(), deptId: "", projectId: "", projectName: "", loginName: "", rectifierData: [], loadShow: false, checkTypeList: [], checkType: "1", materialName: "", usePosition: "", sampleNum: "", qualifiedFlag: "Y", witnessUser: "", witnessUserName: "", checkTime: "", laboratoryName: "", infoData: {}, detectionFiles: "", fileUrls: "", fileUrlArray: [], activeName: "", flowRecordList: [], qualifiedFlagList: [{ id: 'Y', text: "是" }, { id: 'N', text: "否" }], detectionFileData: [], fileType: ["pdf", "png", "jpg", "jpeg"], request: app.globalData.reqUrl, flowNodes: [{ text: '开始' }, { text: '提交申请' }, { text: '检测报告' }, { text: '监理审批' }, { text: '结束' }], active: 1, trustDeed: [], attachments: [], fileType: ["doc", "docx", "xls", "xlsx", "ppt", "pptx", "pdf", "png", "jpg", "jpeg"] }, /** * 生命周期函数--监听页面加载 */ onLoad(options) { let { id } = options //获取缓存数据 wx.getStorage({ key: 'userinfo', success: res => { this.setData({ id, projectId: app.globalData.projectId, projectName: app.globalData.projectName, deptId: res.data.deptId, loginName: res.data.loginName, }) this.getProjectUserData(); this.getTypeList(); this.getInfo(); this.getAuditinfo(); } }) }, //查询项目人员数据 getProjectUserData() { let that = this wx.request({ url: app.globalData.reqUrl + '/wechat/projectuserinfo/selectProjectUnitUser', method: "get", data: { unitType: "4", projectId: that.data.projectId }, header: { 'content-type': 'application/x-www-form-urlencoded' }, success(res) { res = res.data if (res.code == 200) { that.setData({ rectifierData: res.data }) } } }) }, getTypeList() { let that = this wx.request({ url: app.globalData.reqUrl + '/wechat/projectDetection/queryType', method: "get", data: {}, header: { 'content-type': 'application/x-www-form-urlencoded' }, success(res) { res = res.data if (res.code == 200) { let list = []; res.data.forEach(it => { list.push({ "id": it.dictValue, "text": it.dictLabel }); }) that.setData({ checkTypeList: list }) } } }) }, /** * 获取安全检查详情信息 * */ getInfo() { let { id } = this.data let that = this wx.request({ url: app.globalData.reqUrl + '/wechat/projectDetection/info', method: "get", data: { id: id }, success(res) { res = res.data if (res.code == 200) { let fileUrls = []; let fileNames = []; let fileUrlArray = []; //判断附件 if (res.data.detectionFile) { res.data.detectionFile.split(',').forEach(element => { let it = element.split('/'); fileNames.push(it[it.length - 1]); fileUrls.push(element); fileUrlArray.push({ name: it[it.length - 1], path: element }); }); } let trustDeed = []; if (res.data.trustDeed != null) { res.data.trustDeed.split(',').forEach(item => { trustDeed.push(that.data.request + item + '.min.jpg'); }); } let attachments = []; if (res.data.attachment) { let files = JSON.parse(res.data.attachment); if (files && files.length > 0) { files.forEach(item => { let it = item.split('/'); attachments.push({ 'name': it[it.length - 1], path: item }); }); } } that.setData({ infoData: res.data, trustDeed, attachments, detectionFiles: fileNames, fileUrlArray, fileUrls, detectionFileData: fileUrlArray, checkType: res.data.checkType, materialName: res.data.materialName, usePosition: res.data.usePosition, sampleNum: res.data.sampleNum, qualifiedFlag: res.data.qualifiedFlag, witnessUser: res.data.witnessUser, witnessUserName: res.data.witnessUserName, checkTime: res.data.checkTime, laboratoryName: res.data.laboratoryName, loadShow: false }) } } }) }, /** * 查询流程日志 */ getAuditinfo() { let that = this wx.request({ url: app.globalData.reqUrl + '/wechat/projectAuditinfo/selectProjectAuditinfo', method: "get", data: { fromType: "1", fromId: this.data.id }, success(res) { res = res.data if (res.code == 200) { that.setData({ flowRecordList: res.data }) } } }) }, fileUpload(options) { let file = options.detail; this.setData({ detectionFileData: file }); }, // 手风琴 onChange(event) { this.setData({ activeName: event.detail, }); }, //材料名称 onInputMaterialNameValue(e) { let materialName = e.detail.value this.setData({ materialName }) }, //使用部位 onInputUsePositionValue(e) { let usePosition = e.detail.value this.setData({ usePosition }) }, //取样数量 onInputSampleNumValue(e) { let sampleNum = e.detail.value this.setData({ sampleNum }) }, //送检实验室名称 onInputLaboratoryNameValue(e) { let laboratoryName = e.detail.value this.setData({ laboratoryName }) }, //验收时间 onInputTime(e) { let checkTime = e.detail this.setData({ checkTime }) }, //添加监理专员 onAddSend(e) { if (e.detail.length > 0) { let phoneNumbers = ""; let userNames = ""; e.detail.forEach(it => { phoneNumbers += "," + it.phoneNumber; userNames += "," + it.userName; }); this.setData({ witnessUserName: userNames.substring(1), witnessUser: phoneNumbers.substring(1) }) } else { this.setData({ witnessUser: "", witnessUserName: "" }) } }, //取消页面 cancelSaveView() { this.returnToPage() }, //保存 onSubmitSave() { this.setData({ loadShow: true }) let that = this let { id, checkType, materialName, usePosition, sampleNum, qualifiedFlag, witnessUser, witnessUserName, checkTime, laboratoryName, loginName, detectionFileData, trustDeed, attachments } = that.data; //数据效验 if (id == "") { app.toast("数据异常,请刷新页面重试!") that.setData({ loadShow: false }) return; } if (checkType == "") { app.toast("请选择送检类型!") that.setData({ loadShow: false }) return; } if (materialName == "") { app.toast("请填写材料名称!") that.setData({ loadShow: false }) return; } if (sampleNum == "") { app.toast("请填写取样数量!") that.setData({ loadShow: false }) return; } if (usePosition == "") { app.toast("请填写使用部位!") that.setData({ loadShow: false }) return; } if (qualifiedFlag == "") { app.toast("请选择是否提供合格证!") that.setData({ loadShow: false }) return; } if (qualifiedFlag == "") { app.toast("请选择是否提供合格证!") that.setData({ loadShow: false }) return; } if (witnessUser == "" || witnessUserName == "") { app.toast("请选择见证人!") that.setData({ loadShow: false }) return; } if (checkTime == "") { app.toast("请选择送检时间!") that.setData({ loadShow: false }) return; } if (laboratoryName == "") { app.toast("请填写送检实验室名称!") that.setData({ loadShow: false }) return; } if (trustDeed.length == 0) { app.toast("请上传送检委托单!") that.setData({ loadShow: false }) return; } if (attachments.length > 0) { for (let i = 0; i < attachments.length; i++) { let _fileType = attachments[i].path.split('.'); _fileType = _fileType[_fileType.length - 1].toLowerCase(); //判断附件类型,如果是图片直接展示,非图片则显示附件 if (this.data.fileType.indexOf(_fileType) == -1) { app.toast("当前 [ " + _fileType + " ] 文件不支持上传!") that.setData({ loadShow: false }); return; } } } if (this.data.infoData.detectionFile != null && detectionFileData.length == 0) { app.toast("请上传检测报告!") that.setData({ loadShow: false }) return; } let path = ""; if (detectionFileData.length > 0) { let _fileType = detectionFileData[0].path.split('.'); _fileType = _fileType[_fileType.length - 1].toLowerCase(); //判断附件类型,如果是图片直接展示,非图片则显示附件 if (this.data.fileType.indexOf(_fileType) == -1) { app.toast("检测报告不支持 [ " + _fileType + " ] 格式!") that.setData({ loadShow: false }); return; } } //检验委托单 let trustDeedImages = []; //其它附件 let attachmentFiles = []; //检测报告 let detectionFiles = []; let params = { id, checkType, materialName, usePosition, sampleNum, qualifiedFlag, witnessUser, witnessUserName, checkTime: checkTime, laboratoryName, updateBy: loginName, approveStatus: that.data.approveStatus == null ? null : "1" } let uploadUrl = app.globalData.uploadUrl + '/common/upload'; let uploadName = "file"; trustDeed.forEach(async (item) => { if (item.indexOf("/profile/") > -1) { trustDeedImages.push(item.replace(that.data.request, "").replace(".min.jpg", "")); } else { let obj = await that.syncUploadImage(uploadUrl, item, uploadName); trustDeedImages.push(obj.data.fileName) } if (trustDeedImages.length == trustDeed.length) { params.trustDeed = trustDeedImages.toString(); if (attachments.length > 0) { attachments.forEach(async (file) => { if (file.path.indexOf("/profile/") > -1) { attachmentFiles.push(file.path); } else { let fObj = await that.syncUploadImage(uploadUrl, file.path, uploadName); attachmentFiles.push(fObj.data.fileName) } if (attachmentFiles.length == attachments.length) { params.attachment = JSON.stringify(attachmentFiles); if (detectionFileData.length > 0) { detectionFileData.forEach(async (df) => { if (df.path.indexOf("/profile/") > -1) { detectionFiles.push(df.path); } else { let dfObj = await that.syncUploadImage(uploadUrl, df.path, uploadName); detectionFiles.push(dfObj.data.fileName) } if (detectionFileData.length == detectionFiles.length) { params.detectionFile = detectionFiles.toString(); this.submitForm(params); } }); } else { this.submitForm(params); } } }); } else { if (detectionFileData.length > 0) { detectionFileData.forEach(async (df) => { if (df.path.indexOf("/profile/") > -1) { detectionFiles.push(df.path); } else { let dfObj = await that.syncUploadImage(uploadUrl, df.path, uploadName); detectionFiles.push(dfObj.data.fileName) } if (detectionFileData.length == detectionFiles.length) { params.detectionFile = detectionFiles.toString(); this.submitForm(params); } }); } else { this.submitForm(params); } } } }); }, /** * 提交表单 * @param {*} params */ submitForm(params) { let that = this; wx.request({ url: app.globalData.reqUrl + '/wechat/projectDetection/edit', method: "POST", data: params, header: { "Username": that.data.loginName, "Content-Type": "application/json" }, success(res) { that.setData({ loadShow: false }) res = res.data if (res.code == 200) { app.toast("修改成功!") setTimeout(() => { wx.redirectTo({ url: '../list/index', }) }, 200) } } }) }, /** * 这里考虑上传图片异步问题,封装为同步 */ syncUploadImage(url, uploadFile, name) { return new Promise((resolve, reject) => { wx.uploadFile({ url, // 上传的服务器接口地址 filePath: uploadFile, header: { "Content-Type": "application/x-www-form-urlencoded;charset=UTF-8" }, name, //上传的所需字段,后端提供 formData: { user: 'test' }, success: (res) => { // 上传完成操作 const data = JSON.parse(res.data) resolve({ data: data }) }, fail: (err) => { //上传失败:修改pedding为reject console.log("访问接口失败", err); wx.showToast({ title: "网络出错,上传失败", icon: 'none', duration: 1000 }); reject(err) } }); }) }, //选择检测类型 onSelectCheckType(e) { this.setData({ checkType: e.detail.id }) }, //选择是否提供合格证 onSelectQualifiedFlag(e) { this.setData({ qualified: e.detail.id }) }, // list 上传图片 onImagesArr(e) { this.setData({ trustDeed: e.detail }) }, /** * 相关附件上传 * @param {*} options */ otherFileUpload(options) { let file = options.detail; this.setData({ attachments: file }); }, returnToPage: function () { /*关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面*/ wx.redirectTo({ url: '../list/index', }) }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady() { }, /** * 生命周期函数--监听页面显示 */ onShow() { }, /** * 生命周期函数--监听页面隐藏 */ onHide() { }, /** * 生命周期函数--监听页面卸载 */ onUnload() { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh() { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom() { }, /** * 用户点击右上角分享 */ onShareAppMessage() { } })