737 lines
16 KiB
JavaScript
737 lines
16 KiB
JavaScript
|
// 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 () {
|
||
|
|
||
|
}
|
||
|
})
|