water_xcx/pages/s-remould-task/s-remould-task.js

737 lines
16 KiB
JavaScript
Raw Normal View History

2025-04-15 15:44:51 +08:00
// pages/s-remould-task/s-remould-task.js
var myRequest = require("../../utils/api.js");
var utils = require("../../utils/utils.js");
import {
setWatcher
} from './watch.js';
const app = getApp()
Page({
/**
* 页面的初始数据
*/
data: {
type: '',
maxFile:10,
showMultiTextAndTitle: false,
handlerVisible: false,
inputValue:[],
handlerTitle: '改造类型',
handlerValue: '',
HandlersData: [],
selectChange: '',
checkArr: [0, undefined, undefined, undefined, undefined],
distArr: {},
proList: [],
fileList: [],
gridConfig: {
column: 4,
width: 160,
height: 160,
},
filePath: '',
planId: '',
deviceName: '',
build: {
devCompany: '',
consCompany: '',
buildDate: '',
manufacturer: '',
img: ''
},
datetimeVisible: false,
datetime: '',
renovationList: [],
mapVal: '',
oldDevice: {
id: '',
name: ''
},
dictType: ['renovationType', 'renovationContent', 'renovationReason', 'renovationMeasure', 'prodInfo'],
dialogType:null,
dialogExitIndex:null
},
watch: {
deviceName: {
handler(v, o) {
let mapVal = this.data.mapVal
let type = this.data.type
let oldDevice = this.data.oldDevice
if (type = 'exit') {
if (v != oldDevice.id) {
if (mapVal.has(v)) {
setTimeout(() => {
wx.showToast({
title: '当前站点已有方案,请选择其他站点',
icon: 'none'
})
this.setData({
deviceName: oldDevice.id,
deviceName: oldDevice.name
})
}, 0);
}
}
} else {
if (mapVal.has(v)) {
setTimeout(() => {
wx.showToast({
title: '当前站点已有方案,请选择其他站点',
icon: 'none'
})
this.setData({
deviceName: '',
deviceName: ''
})
}, 0);
}
}
}
}
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
let data = JSON.parse(options.data)
let mapVal = new Set(JSON.parse(data.mapVal))
if (data.type == 'exit') {
this.setData({
type: 'exit',
mapVal,
planId: data.planId,
deviceName: data.deviceName,
oldDevice: {
id: data.id,
name: data.name
},
deviceName: data.deviceName
})
this.getRenList()
this.getBuildInfo()
} else {
this.setData({
mapVal,
planId: data.planId,
})
}
setWatcher(this);
},
isExitType(){
return this.data.build.reviewStatus==3||this.data.build.reviewStatus==0||this.data.type!='exit'
},
chooseUpload() {
var that = this
wx.chooseMessageFile({
count: 10,
type: 'file',
extension: ['.xlsx', '.xls', '.XLSX', '.XLS', 'xlsx', 'xls', 'XLSX', 'XLS'],
success(res) {
const tempFilePaths = res.tempFiles
for (var i in tempFilePaths) {
wx.uploadFile({
url: 'http://xxx', //上传的服务器地址
filePath: tempFilePaths[i].path,
name: 'file',
formData: {
'file': tempFilePaths[i].path
},
header: {
[wx.getStorageSync('tokenName')]: wx.getStorageSync('token'),
},
success: function (resp) {
console.log(resp)
var data = JSON.parse(resp.data)
console.log(data)
if (data.code == 200) {
wx.showToast({
title: '上传成功',
icon: 'none',
duration: 1300
})
} else {
wx.showToast({
title: data.message,
icon: 'none',
duration: 2000
})
}
},
fail: function (err) {
console.log(err)
}
})
}
}
})
},
onSetDist(e){
this.setData({
selectChange:e.detail.index
})
this.onPickerChange({
detail:{
value:[e.detail.val.value],
label:[e.detail.val.label],
item:e.detail.val.item
}
})
},
showPikcer(e) {
if(this.isExitType()){
let index = e.currentTarget.dataset.key
if (this.data.checkArr[index] != undefined) {
if (index != 4) {
this.getlableData(this.data.checkArr[index],'').then(res => {
this.setData({
handlerVisible: true,
HandlersData: res,
selectChange: index
})
}).catch((e) => {
wx.showToast({
title: e,
icon: 'none',
})
})
} else {
this.getProData(this.data.checkArr[index]).then(res => {
this.setData({
handlerVisible: true,
HandlersData: res,
selectChange: index
})
}).catch((e) => {
wx.showToast({
title: e,
icon: 'none',
})
})
}
} else {
wx.showToast({
title: '请选择上级数据',
icon: 'none',
})
}
}
},
showPickerTime() {
if(this.isExitType()){
this.setData({
datetime: this.data.build.buildDate ? this.data.build.buildDate : new Date().getTime(),
datetimeVisible: true
})
}
},
onConfirm(e) {
console.log(e)
this.setData({
'build.buildDate': e.detail.value
})
},
handleAdd(e) {
var that = this;
const {
files
} = e.detail;
var fileLists = this.data.fileList;
for (let i = 0; i < files.length; i++) {
myRequest.updateImg({
file: files[i].url
}).then(function (res) {
fileLists.push({
url: app.globalData.fileUrl + res,
type: 'image',
percent: 100
});
that.setData({
fileList: fileLists,
})
}).catch(function (res) {
console.log(res);
})
}
},
handleRemove(e) {
if(!this.isExitType()){
return
}
const {
index
} = e.detail;
const {
fileList
} = this.data;
fileList.splice(index, 1);
this.setData({
fileList,
});
},
handleSuccess(e) {
var filed = e.currentTarget.dataset.filed;
const {
files
} = e.detail;
this.setData({
});
},
focusHandle(e){
let distArr=this.data.distArr
distArr[4].prodModel=e.detail.value
this.setData({
distArr
})
},
savedevDialog(e) {
console.log(this.data.distArr)
let dictType = this.data.dictType
let renovationList = this.data.renovationList
// if (Object.keys(this.data.distArr).length < 4) {
// wx.showToast({
// title: '请填写完整',
// icon: 'none',
// })
// return
// }
// let flag = false
// renovationList.forEach(item => {
// if (item.renovationContent.dictId == this.data.distArr[1].value) {
// flag = true
// }
// })
// if (flag) {
// wx.showToast({
// title: '不可添加重复的整改内容',
// icon: 'none',
// })
// return
// }
let obj = {}
for (let i in this.data.distArr) {
console.log(i)
if (i != 4) {
obj[dictType[i]] = {
dictId: this.data.distArr[i].value,
dictName: this.data.distArr[i].label,
}
} else {
obj[dictType[i]] = this.data.distArr[i]
}
}
if(this.data.dialogType=='add'){
renovationList.push(obj)
}else{
renovationList[this.data.dialogExitIndex]=obj
}
console.log(renovationList)
this.setData({
renovationList
})
this.closeDialog()
},
showDialog(e) {
if(!this.isExitType()){
return
}
if ( JSON.stringify(this.data.distArr) != '{}' && this.data.distArr[0].value != '') {
this.checkData(0)
this.setData({
showMultiTextAndTitle: true,
dialogType:'add'
});
} else {
wx.showToast({
title: '请选择改造类型',
icon: 'none',
})
}
},
checkItemData(e){
let {item,index} = e.currentTarget.dataset
console.log(item,index)
let inputValue=[item.renovationContent,item.renovationReason,item.renovationMeasure,{
dictId:item.prodInfo.prodId,
dictName:item.prodInfo.prodName,
...item.prodInfo}
]
let distArr={
...this.data.distArr,
1:{value:item.renovationContent.dictId,label:item.renovationContent.dictName},
2:{value:item.renovationReason.dictId,label:item.renovationReason.dictName},
3:{value:item.renovationMeasure.dictId,label:item.renovationMeasure.dictName},
4:{
value:item.prodInfo.prodId,
label:item.prodInfo.prodModel,
...item.prodInfo}
}
this.setData({
inputValue,
distArr,
showMultiTextAndTitle:true,
dialogType:'exit',
dialogExitIndex:index
})
console.log(this.data.distArr)
},
//清空数据选择
checkData(index) {
if(this.data.dialogType=='exit') return
let distArr = this.data.distArr
for (let i in distArr) {
if (i > index) {
distArr[i] = {}
}
}
this.setData({
distArr
})
},
getRenList() {
let that = this;
myRequest.myRequest('renovationList/list', {
planId: that.data.planId,
deviceName: that.data.deviceName
}, 'get').then(function (res) {
let responseData=res.data.data.items
let distArr = {
0: {
value: responseData[0].renovationType.dictId,
label: responseData[0].renovationType.dictName
}
}
that.setData({
distArr,
[`checkArr[1]`]: responseData[0].renovationType.dictId,
renovationList:responseData
})
}).catch(function (res) {
console.log(res);
})
},
getBuildInfo() {
let that = this;
myRequest.myRequest('renovationList/selectBuild', {
planId: that.data.planId,
deviceName: that.data.deviceName
}, 'get').then(function (res) {
if (res.data.data?.img) {
let fileLists = []
let img = JSON.parse(res.data.data.img)
img.forEach(item => {
fileLists.push({
url: item,
type: 'image',
percent: 100
});
})
that.setData({
fileList: fileLists,
maxFile:that.isExitType()?10:fileLists.length
})
}
that.setData({
build: res.data.data
})
}).catch(function (res) {
console.log(res);
})
},
ondelTap(e) {
console.log(e)
let index = e.currentTarget.dataset.index
let renovationList = this.data.renovationList
renovationList.splice(index, 1)
this.setData({
renovationList
})
},
closeDialog() {
let disArr = this.data.distArr
let newdisArr = {
0: disArr[0]
}
const child1 = this.selectComponent("#myComent1");
child1.clearvalue()
const child2 = this.selectComponent("#myComent2");
child2.clearvalue()
const child3 = this.selectComponent("#myComent3");
child3.clearvalue()
const child4 = this.selectComponent("#myComent4");
child4.clearvalue()
this.setData({
showMultiTextAndTitle: false,
distArr: newdisArr
});
},
search() {
if(this.isExitType()){
wx.navigateTo({
url: '../search-site/search-site?type=xunjian',
})
}
},
changeInputDeviceName(e){
this.setData({
deviceName:e.detail.value
})
},
changeInput(e) {
let obj = e.currentTarget.dataset.key
let key = `build.${obj}`
let val = e.detail.value
this.setData({
[key]: val
})
},
onPickerChange(e) {
let distArr = this.data.distArr;
if (this.data.selectChange != 4) {
distArr[this.data.selectChange] = {
value: e.detail.value[0],
label: e.detail.label[0]
}
} else {
if(e.detail.item){
distArr[this.data.selectChange] =e.detail.item
}else{
distArr[this.data.selectChange]={
prodName:e.detail.label[0]
}
}
}
let checkArr = this.data.checkArr;
checkArr[parseInt(this.data.selectChange) + 1] = e.detail.value[0]
this.checkData(this.data.selectChange)
this.setData({
distArr,
checkArr,
})
},
getlableData(parentId,dictName) {
var that = this;
return new Promise((resole, reject) => {
myRequest.myRequest('renovationDict/list', {
parentId,
dictName
}, 'get').then(function (res) {
if (res.data.data.length) {
let HandlersData = res.data.data.map(item => {
return {
label: item.dictName,
value: item.dictId,
item: item
}
})
resole(HandlersData)
} else {
reject([])
}
}).catch(function (res) {
console.log(res);
})
})
},
getProData(dictId) {
var that = this;
return new Promise((resole, reject) => {
})
},
sumitData() {
let that = this;
let build = this.data.build
let deviceName = this.data.deviceName
let renovationList = JSON.parse(JSON.stringify(this.data.renovationList))
build.img= ''
if (that.data.fileList.length != 0) {
let img = that.data.fileList.map(res => res.url)
build.img = JSON.stringify(img)
}
let details = []
renovationList.forEach(item => {
for (let i in item) {
console.log(i)
if (i != 'prodInfo'&&i!='listId') {
}else {
item['prodId'] = item[i].prodId
}
}
details.push(item)
})
if (deviceName == '') {
wx.showToast({
title: '请输入站点名称',
icon: 'none'
})
return
}
if (details.length == 0) {
wx.showToast({
title: '请完善整改详情',
icon: 'none'
})
return
}
myRequest.myRequest('renovationList/add', {
planId: that.data.planId,
deviceName: deviceName,
details: details,
build: build
}, 'post').then(function (res) {
setTimeout(() => {
var pages = getCurrentPages(); // 获取页面栈
var prevPage = pages[pages.length - 2]; // 上一个页面
prevPage.getPlanList()
wx.navigateBack({
delta: 1
})
}, 500);
wx.showToast({
title: '操作成功',
icon: 'none',
})
}).catch(function (res) {
console.log(res);
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
delsumitData() {
let that = this
myRequest.myRequest('renovationList/delete?planId=' + that.data.planId + '&buildId=' + that.data.build.buildId, {
}, 'post').then(function (res) {
setTimeout(() => {
var pages = getCurrentPages(); // 获取页面栈
var prevPage = pages[pages.length - 2]; // 上一个页面
prevPage.getPlanList()
wx.navigateBack({
delta: 1
})
}, 500);
wx.showToast({
title: '操作成功',
icon: 'none',
})
}).catch(function (res) {
console.log(res);
})
},
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})