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.

419 lines
13 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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)
});
}
})