// pageage/safetyManagement/addSafetyInspect/index.js const app = getApp() Page({ /** * 页面的初始数据 */ data: { id:"", maxDate:new Date(2088,1,1).getTime(), currentDate:new Date().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 }, /** * 生命周期函数--监听页面加载 */ 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}); }); } that.setData({ infoData:res.data, 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} = 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(this.data.infoData.detectionFile!=null && detectionFileData.length==0){ app.toast("请上传检测报告!") that.setData({ loadShow:false }) return; } let path=this.data.infoData.detectionFile; 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; } }else{ detectionFileData.push(null); } detectionFileData.forEach(async (item)=>{ if(item!=null && item.path.indexOf("/profile/")==-1){ let uploadUrl = app.globalData.uploadUrl+'/common/upload' let uploadName = "file" //这里复杂的图片上传,改为同步上传,因为小程序只能上传一张图片 let obj = await that.syncUploadImage(uploadUrl,item.path,uploadName); path = obj.data.fileName; } let params = { id, checkType, materialName, usePosition, sampleNum, qualifiedFlag, witnessUser, witnessUserName, checkTime:checkTime+":00", laboratoryName, updateBy:loginName, detectionFile:path, approveStatus:path==null?null:"1" } wx.request({ url: app.globalData.reqUrl + '/wechat/projectDetection/edit', method:"POST", data:params, header: { "Username": 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 }) }, returnToPage: function () { /*关闭当前页面,跳转到应用内的某个页面。但是不允许跳转到 tabbar 页面*/ wx.redirectTo({ url: '../list/index', }) }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady() { }, /** * 生命周期函数--监听页面显示 */ onShow() { }, /** * 生命周期函数--监听页面隐藏 */ onHide() { }, /** * 生命周期函数--监听页面卸载 */ onUnload() { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh() { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom() { }, /** * 用户点击右上角分享 */ onShareAppMessage() { } })