const { API_BASE_URL, IMG_BASE_URL, entryDetail, getAllConditionList, acceptItems,saveAcceptItem } = require('../../../api/api') Page({ data: { API_BASE_URL: API_BASE_URL, IMG_BASE_URL: IMG_BASE_URL, itemList: [], tabIndex: 1, detail:{},//详情信息 formSetObj: {}, rightCount: 0, wrongCount: 0 }, onLoad(options) { this.setData({ id: options.id, entryId:options.entryId, }); this.initData(); }, onShow() { }, //切换TAB changeTab(e){ let type = e.currentTarget.dataset.index this.setData({ tabIndex: type }) }, //验收结果-单选 radioChange(e) { let index = e.currentTarget.dataset.index; let pindex = e.currentTarget.dataset.pindex; let rightCount = 0 let wrongCount = 0 this.setData({ [`listData[${pindex}].items[${index}].columns.result`]: e.detail.value }) let listData = JSON.parse(JSON.stringify(this.data.listData)); setTimeout(()=>{ listData.forEach(item=>{ item.items.forEach(item2=>{ if(item2.columns.type != '4'){//有选择项的才做统计 if(item2.columns.result == '0'){//合格数量 rightCount = rightCount+1 }else if(item2.columns.result == '1'){//整改数量 wrongCount = wrongCount+1 } } }) }) this.setData({ wrongCount, rightCount }) },50) }, //文本输入 descFun(e) { let name = e.currentTarget.dataset.name; let index = e.currentTarget.dataset.index; let pindex = e.currentTarget.dataset.pindex; let value = e.detail.value; if(name =='result_desc'){ // value = value.replace(/^(\-)*(\d+)\.(\d{2}).*$/, '$1$2.$3'); // this.setData({ // [`listData[${pindex}].items[${index}].columns.${name}`]: value // }) }else if(name =='special_desc'){// 只能输入大于0的整数 // this.setData({ // [`listData[${pindex}].items[${index}].columns.${name}`]: value // }) // if (value<1) { // this.setData({ // [`listData[${pindex}].items[${index}].columns.${name}`]: 1 // }) // } }else{ this.setData({ [`listData[${pindex}].items[${index}].columns.${name}`]: e.detail.value }) } // console.log(1212, pindex, index, this.data.listData) }, descBlurFun(e){ let name = e.currentTarget.dataset.name; let index = e.currentTarget.dataset.index; let pindex = e.currentTarget.dataset.pindex; let value = e.detail.value; if(name =='special_desc'){// 只能输入大于0的整数 if(value<1){ value = 1 }else if(!/^[1-9]\d*$/.test(value)) { value = this.data.listData[pindex].items[index].columns.special_desc?this.data.listData[pindex].items[index].columns.special_desc: 1; // 重置为上次的值 } this.setData({ [`listData[${pindex}].items[${index}].columns.${name}`]: value }) } }, // 将输入值的小数点替换为一个字符,确保只有2位小数 descBlurflex2(e){ let name = e.currentTarget.dataset.name; let index = e.currentTarget.dataset.index; let pindex = e.currentTarget.dataset.pindex; let value = e.detail.value; if(name =='special_desc'){// 只能输入大于0的整数 value = value.replace(/^(\-)*(\d+)\.(\d{2}).*$/, '$1$2.$3'); this.setData({ [`listData[${pindex}].items[${index}].columns.${name}`]: value }) } }, /** 数据 **/ initData(){ wx.showLoading({ title: "加载中" }); //电站详情 entryDetail({ userId: wx.getStorageSync('userId'), entryId: this.data.entryId }).then(res=>{ this.setData({ detail: res, }) this.getFormSet(res.management) }); //获取字段 acceptItems({ detailId: this.data.id }).then(res=>{ if(res.code == 200){ let list = res.data.itemList.map(item=>item.columns); let rightCount = 0; let wrongCount = 0; list.forEach(item=>{ item.items.forEach(item2=>{ item2.columns.result = item2.columns.result?item2.columns.result:'0' //默认都选中 item2.columns.imgPath = item2.columns.img_path ? item2.columns.img_path.split(",").map(itm => { return { name: itm, url: IMG_BASE_URL + itm}}) : [] if(item2.columns.type != '4'){//有选择项的才做统计 if(item2.columns.result == '0'){//合格数量 rightCount = rightCount+1 }else if(item2.columns.result == '1'){//整改数量 wrongCount = wrongCount+1 } } }) }) this.setData({ listData: list, wrongCount, rightCount // rightCount: res.data.countRecord.columns.rightCount, // wrongCount: res.data.countRecord.columns.wrongCount }) } wx.hideLoading(); }); }, /** 获取自定义字段 */ getFormSet(partner) { //01:信息登记,02:踏勘设计,03:电站安装,04:电站并网,05 档案 getAllConditionList({ partner: partner, }).then((res) => { this.setData({ formSetObj: res.data }) }) }, /** 上传图片 **/ afteruploadPhotoRead(e) { var that = this; const choseType = Array.isArray(e.detail.file) ? (e.detail.file[0].choseType || undefined) : (e.detail.file.choseType || undefined); //camera相机 album相册 const index = e.currentTarget.dataset.index const pindex = e.currentTarget.dataset.pindex console.log("上传后", this.data.listData, choseType, e); if (Array.isArray(e.detail.file)) { //多张 var count = 0; this.afteruploadPhotoReadS(e, count) return } const { file } = e.detail; wx.showLoading({ title: '上传中', }) wx.uploadFile({ url: that.data.API_BASE_URL + 'common/weChat/uploadImage', filePath: file.url, name: 'file', complete: function (res) { console.log("上传图片", res) wx.hideLoading() if (res.statusCode == 200) { wx.showToast({ title: '选择成功', icon: 'none', }) var item = { url: "", name: "", } item.url = file.url; item.name = res.data; that.data.listData[pindex].items[index].columns.imgPath.push(item) that.setData({ [`listData[${pindex}].items[${index}].columns.imgPath`]: that.data.listData[pindex].items[index].columns.imgPath }) } else { wx.showToast({ title: '选择失败', icon: 'error' }) } } }) }, /** 上传多张图片递归 **/ afteruploadPhotoReadS(e, count) { let ob = { name: '', url: '', } const index = e.currentTarget.dataset.index const pindex = e.currentTarget.dataset.pindex wx.showLoading({ title: '加载第' + (count + 1) + '张照片中', mask: true, }) const element = e.detail.file[count]; var that = this; wx.uploadFile({ url: that.data.API_BASE_URL + 'common/weChat/uploadImage', filePath: element.url, name: 'file', success(res) { wx.hideLoading() if (res.statusCode == 200) { count = count + 1; ob.name = res.data ob.url = element.url that.data.listData[pindex].items[index].columns.imgPath.push(ob) that.setData({ [`listData[${pindex}].items[${index}].columns.imgPath`]: that.data.listData[pindex].items[index].columns.imgPath }) if (count == e.detail.file.length) { wx.showToast({ title: '选择成功', icon: 'none' }) } else { that.afteruploadPhotoReadS(e, count) } } else { wx.showToast({ title: '选择失败', icon: 'error' }) } } }) }, /** 删除图片 **/ deleteImg(e) { const cindex = e.currentTarget.dataset.index const pindex = e.currentTarget.dataset.pindex const index = e.detail.index //删除图片的下标 this.data.listData[pindex].items[cindex].columns.imgPath.splice(index, 1); this.setData({ [`listData[${pindex}].items[${cindex}].columns.imgPath`]: this.data.listData[pindex].items[cindex].columns.imgPath }) }, //打开pdf文件或者大图查看图片 openDocument(res) { let path = res.currentTarget.dataset.path if (path) { let suffix = path.substring(path.lastIndexOf('.') + 1) //获取文件后缀 if (suffix == 'pdf') { wx.showLoading({ title: '加载中', }) wx.downloadFile({ url: IMG_BASE_URL + path, complete: function (res) { wx.hideLoading() const filePath = res.tempFilePath wx.openDocument({ filePath: filePath, showMenu: true, success: function (res) {} }) } }) } else { wx.previewImage({ urls: [IMG_BASE_URL + path] // 需要预览的图片http链接列表 }) } } }, //提交 submitFrom(e){ let type = e.currentTarget.dataset.type; let listData = JSON.parse(JSON.stringify(this.data.listData)); let itemList = [] let isCheck = true try{ listData.forEach(item=>{ item.items.forEach(item2=>{ if(item2.columns.name != '其他' && item2.columns.name != '各路电压正常' && type == '1'){//提交时,除了标题是其他和各路电压正常,任意验收结果,验收图片都是必传 if(item2.columns.imgPath.length == 0){ wx.showModal({ title: '', content: item2.columns.name + ',验收照片不能为空', showCancel: false, complete: (res) => { if (res.confirm) {} } }) isCheck = false throw Error() }else if(item2.columns.result == '1' && item2.columns.test_remarks == ''){ wx.showModal({ title: '', content: item2.columns.name + ',验收说明不能为空', showCancel: false, complete: (res) => { if (res.cancel) {} if (res.confirm) {} } }) isCheck = false throw Error() } }else if(item2.columns.name == '各路电压正常' && item2.columns.result == '1' && type == '1'){//提交时,各路电压正常验收结果不正常的情况下验收图片必传 if(item2.columns.imgPath.length == 0){ wx.showModal({ title: '', content: item2.columns.name + ',验收照片不能为空', showCancel: false, complete: (res) => { if (res.cancel) {} if (res.confirm) {} } }) isCheck = false throw Error() } } let resultDesc = '' if(item2.columns.result=='0' && item2.columns.type<4){ resultDesc = item2.columns.result_right }else if(item2.columns.result=='1'&& item2.columns.type<4){ resultDesc = item2.columns.result_wrong }else{ resultDesc = item2.columns.result_desc } itemList.push({ groupName: item.name, itemName: item2.columns.name, resultDesc: resultDesc, result: item2.columns.result, specialDesc: item2.columns.special_desc, imgPath: item2.columns.imgPath.length>0?item2.columns.imgPath.map(itm => itm.name).join(",") : "", testRemarks: item2.columns.test_remarks, sort: item2.columns.sort, }) }) }) }catch(e) { console.log(e) } if(!isCheck){ return } console.log(666, itemList, isCheck) // return wx.showLoading({ title: "提交中", mask: true }); saveAcceptItem({ detailId: this.data.id, saveResult: type,//0 暂存 1提交 items: itemList }).then(res=>{ if(res.code == 200){ wx.showToast({ title: '操作成功', }) setTimeout(()=>{ wx.navigateBack() },1500) }else{ wx.showModal({ title: '', content: res.errMsg, showCancel: false, complete: (res) => { if (res.confirm) {} } }) } setTimeout(()=>{ wx.hideLoading(); },1500) }); } })