import $f from '../../../../service/baserequest'; import authservice from '../../../../service/authservice'; import deviceservice from '../../../../service/deviceservice'; import userservice from '../../../../service/userservice'; import bLoadingToast from '../../../../base/behaviors/bLoadingToast'; import moment from '../../../../utils/moment.min'; const app = getApp(); function newDevice() { return [ { name: 'id', id: 'vpId', input: true, value: '', noValue: false, required: false, show: false, }, { name: '企业id', id: 'ibGuid', input: true, value: '', noValue: false, required: false, show: false, }, { name: '设计风量', id: 'vpAirVolume', type: 'number', input: true, value: '', noValue: false, required: false, unit: '立方米/小时', }, { name: '吸附剂名称', id: 'vpAbsorbentName', input: true, value: '', noValue: false, required: false, }, { name: '填充量', id: 'vpAbsorbentAmount', type: 'number', input: true, value: '', noValue: false, required: false, unit: '公斤', }, { name: '更换周期', id: 'vpPeriodUnit', type: 'picker', pickerMode: 'selector', value: '', noValue: false, selectIndex: 0, options: [ { name: '每周', value: '每周' }, { name: '每月', value: '每月' }, { name: '每季度', value: '每季度' }, { name: '每年', value: '每年' }, ], required: false, }, { name: '更换次数', id: 'vpPeriodCount', type: 'number', input: true, value: '', noValue: false, required: false, unit: '次', show: true, }, { name: '每次更换量', id: 'vpPeriodWeight', type: 'number', input: true, value: '', noValue: false, required: false, unit: '公斤', }, { name: '最新更换时间', id: 'vpChangeTime', type: 'picker', pickerMode: 'date', value: moment().format('YYYY-MM-DD'), noValue: false, required: false, }, ]; } Page({ behaviors: [bLoadingToast], data: { icon1: $f.baseIconUrl + 'res/companyinfo-1.png', selfCheck: { // ibAdsorbentCorrect: false, // ibPeriodCorrect: false, // ibHasContract: false, // ibKeepContract: false, }, hasDevice: false, baseMsg: [], deviceMsg: [], }, /** * 生命周期函数--监听页面加载 */ onLoad(options) { this.setData({ sceneType: app.globalData.userInfo.extension2, }); this.getOpenerEventChannel().on('acceptDataFromOpenerPage', data => { this.setData({ authStatus: data.authStatus, }); }); const deviceMsg = [newDevice()]; this.setData({ deviceMsg }); this.getBaseInfo(); }, getBaseInfo() { var that = this; userservice.getBaseInfo( app.globalData.accessToken.userId, { success(data) { if (data.specialInfo != null) { const checkboxValue = []; data.specialInfo.ibAdsorbentCorrect ? checkboxValue.push('ibAdsorbentCorrect') : ''; data.specialInfo.ibPeriodCorrect ? checkboxValue.push('ibPeriodCorrect') : ''; data.specialInfo.ibHasContract ? checkboxValue.push('ibHasContract') : ''; data.specialInfo.ibKeepContract ? checkboxValue.push('ibKeepContract') : ''; that.setData({ hasDevice: data.specialInfo.ibHasAbsorbTechnique, selfCheck: { ibAdsorbentCorrect: data.specialInfo.ibAdsorbentCorrect, ibPeriodCorrect: data.specialInfo.ibPeriodCorrect, ibHasContract: data.specialInfo.ibHasContract, ibKeepContract: data.specialInfo.ibKeepContract, }, checkboxValue, }); } }, }, app.globalData.accessToken.openId, ); deviceservice.getVOCPurifyDeviceInfo(app.globalData.accessToken.userId, { success(data) { const { deviceMsg } = that.data; const value = data.length - deviceMsg.length; if (value > 0) { for (let i = 0; i < value; i++) { deviceMsg.push(newDevice()); } } for (let i = 0; i < data.length; i++) { const d = data[i]; const device = deviceMsg[i]; for (let y = 0; y < device.length; y++) { const e = device[y]; e.value = d[e.id]; if (e.options) { for (let i = 0; i < e.options.length; i++) { const o = e.options[i]; if (o.value == e.value) { e.selectIndex = i; break; } } } } } that.setData({ deviceMsg }); }, }); }, handleSwitchChange(e) { this.setData({ hasDevice: e.detail.value }); }, onCheckBoxChange(e) { console.log('onCheckBoxChange', e); const { value } = e.detail; const { selfCheck } = this.data; value.forEach(v => { selfCheck[v] = true; }); this.setData({ selfCheck, checkboxValue: value }); }, onNewDevice() { const { deviceMsg } = this.data; deviceMsg.push(newDevice()); this.setData({ deviceMsg }); console.log(deviceMsg); }, onDeleteDevice(e) { const { index } = e.currentTarget.dataset; const { deviceMsg } = this.data; deviceMsg.splice(index, 1); this.setData({ deviceMsg }); console.log(deviceMsg); }, onDeviceChange(e) { const { index } = e.currentTarget.dataset; const msg = e.detail; this.setData({ [`deviceMsg[${index}]`]: msg, }); }, onSubmit(e) { console.log(e); let info = e.detail; const { deviceMsg, selfCheck, hasDevice } = this.data; info = { ...info, ibHasAbsorbTechnique: hasDevice }; info = { ...info, ...selfCheck }; console.log(info); // 上传基本信息 const sceneInfoStr = JSON.stringify(info); if (hasDevice) { // 上传处理设施信息 console.log(deviceMsg); const deviceList = []; deviceMsg.forEach(d => { const device = {}; d.forEach(e => { device[e.id] = e.value; }); device.vpChangeTime = moment(device.vpChangeTime).format(); deviceList.push(device); }); this.loadStart(); authservice.authScene( app.globalData.accessToken.openId, app.globalData.userInfo.extension2, sceneInfoStr, { success(res) { deviceservice.uploadVOCDevice( app.globalData.accessToken.userId, deviceList, { success(res) { wx.navigateBack({ delta: 1, }); }, finally() { this.loadComplete(); }, }, ); }, fail() { this.loadComplete(); }, }, ); } else { authservice.authScene( app.globalData.accessToken.openId, app.globalData.userInfo.extension2, sceneInfoStr, { success(res) { wx.navigateBack({ delta: 1, }); }, fail() { this.loadComplete(); }, }, ); } }, });