2021-11-01 15:45:43 +08:00

552 lines
17 KiB
JavaScript

// pages/ranqidetails/ranqidetails.js
const app = getApp();
Page({
/**
* 页面的初始数据
*/
data: {
id: '',
status: '',
temp: '',
humi: '',
voltage: '',
electric: '',
error: '',
oilfume: '',
hydrocarbon: '',
oiltemp: '',
oilhumi: '',
puri: '',
fan: '',
switchChecked: false,
time: '',
errorcolor: '#11EE11',
sensor_state: 'close',
inductor_fenstate: 'close',
inductor_purifierstate: 'close',
highpower_state: 'close',
devicestate: 'offline',
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (e) {
app.globalData.imei = e.imei; //修改全局变量-imei
//获取设备列表
wx.request({
url: 'https://api.mpecloud.cn/iotsystem/client/allData',
header: {
'content-type': 'application/json',
'Authorization': 'Bearer ' + app.globalData.token + ''
},
success: res => {
if (res.data.msg == '操作成功') {
console.log(res.data)
//设置设备数据
var datas = new Array(); //创建数据
datas = res.data.data.datas;
//设置设备数据
var devices = new Array();
devices = res.data.data.devices;
for (var i = 0; i < datas.length; i++) {
if (e.imei == datas[i]['imei']) {
app.globalData.productId = datas[i]['productId'];
var str = datas[i]['dataValue'];
var strToObj = JSON.parse(str);
let iosDate = datas[i]['createTime'].slice(0, 22).replace(/-/g, '/').replace('T', ' ') + '+0000';
var createdate = new Date(iosDate);
var month = createdate.getMonth() + 1;
if (month < 10) {
month = "0" + month;
}
var day = createdate.getDate();
if (day < 10) {
day = "0" + day;
}
var hour = createdate.getHours();
if (hour < 10) {
hour = "0" + hour;
}
var min = createdate.getMinutes();
if (min < 10) {
min = "0" + min;
}
var sec = createdate.getSeconds();
if (sec < 10) {
sec = "0" + sec;
}
var cdate = month + "/" + day + " " + hour + ":" + min + ":" + sec;
this.setData({
id: datas[i]['imei'],
time: cdate,
temp: parseInt(strToObj.internal_temperature),
humi: parseInt(strToObj.internal_humidity),
voltage: parseInt(strToObj.power_voltage),
electric: parseFloat(strToObj.power_electricity).toFixed(1),
oilfume: parseFloat(strToObj.Soot_concentration).toFixed(1),
hydrocarbon: parseFloat(strToObj.NMHC).toFixed(1),
oiltemp: parseInt(strToObj.sensor_temperature),
oilhumi: parseInt(strToObj.sensor_humidity),
puri: parseFloat(strToObj.purifier_electricity).toFixed(1),
fan: parseFloat(strToObj.fan_electricity).toFixed(1),
})
if (strToObj.openiostate == 0) {
this.setData({
switchChecked: false,
})
} else {
this.setData({
switchChecked: true,
})
}
if (strToObj.power_error == 0) {
this.setData({
error: '正常',
errorcolor: '#11EE11',
})
} else {
this.setData({
error: '故障',
errorcolor: 'red',
})
}
//油烟传感器状态
if (strToObj.sensor_state == 0) {
this.setData({
sensor_state: 'open',
})
} else if (strToObj.sensor_state == 1) {
this.setData({
sensor_state: 'erro',
})
} else if (strToObj.sensor_state == 2) {
this.setData({
sensor_state: 'close',
})
}
//风扇状态
if (strToObj.inductor_fenstate == 0) {
this.setData({
inductor_fenstate: 'open',
})
} else if (strToObj.inductor_fenstate == 1) {
this.setData({
inductor_fenstate: 'erro',
})
} else if (strToObj.inductor_fenstate == 2) {
this.setData({
inductor_fenstate: 'close',
})
}
//净化器状态
if (strToObj.inductor_purifierstate == 0) {
this.setData({
inductor_purifierstate: 'open',
})
} else if (strToObj.inductor_purifierstate == 1) {
this.setData({
inductor_purifierstate: 'erro',
})
} else if (strToObj.inductor_purifierstate == 2) {
this.setData({
inductor_purifierstate: 'close',
})
}
//高压电源状态
if (strToObj.highpower_state == 0) {
this.setData({
highpower_state: 'open',
})
} else if (strToObj.highpower_state == 1) {
this.setData({
highpower_state: 'erro',
})
} else if (strToObj.highpower_state == 2) {
this.setData({
highpower_state: 'close',
})
}
}
if (e.imei == devices[i]['imei']) {
app.globalData.deviceId = devices[i]['deviceId'];
//网络状态
if (devices[i]['isOnline'] == 0) {
this.setData({
devicestate: 'offline',
})
} else if (devices[i]['isOnline'] == 1) {
this.setData({
devicestate: 'green',
})
}
//设备状态
if (devices[i]['deviceStatus'] == 0) {
this.setData({
status: '创建成功',
})
} else if (devices[i]['deviceStatus'] == 1) {
this.setData({
status: '注册失败',
})
} else if (devices[i]['deviceStatus'] == 2) {
this.setData({
status: '注册成功',
})
} else if (devices[i]['deviceStatus'] == 3) {
this.setData({
status: '已激活',
})
}
}
}
}
},
fail: function () {
wx.showToast({
title: '设备详细数据获取错误!',
icon: 'none',
duration: 2000
})
}
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
this.refreshPull();
wx.stopPullDownRefresh();
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
},
refreshPull: function () {
var imei = app.globalData.imei;
if (imei != 0) {
//获取设备列表
wx.request({
url: 'https://api.mpecloud.cn/iotsystem/client/allData',
header: {
'content-type': 'application/json',
'Authorization': 'Bearer ' + app.globalData.token + ''
},
success: res => {
if (res.data.msg == '操作成功') {
console.log(res.data)
//设置设备数据
var datas = new Array(); //创建数据
datas = res.data.data.datas;
//设置设备数据
var devices = new Array();
devices = res.data.data.devices;
for (var i = 0; i < datas.length; i++) {
if (imei == datas[i]['imei']) {
app.globalData.productId = datas[i]['productId'];
var str = datas[i]['dataValue'];
var strToObj = JSON.parse(str);
let iosDate = datas[i]['createTime'].slice(0, 22).replace(/-/g, '/').replace('T', ' ') + '+0000';
var createdate = new Date(iosDate);
var month = createdate.getMonth() + 1;
if (month < 10) {
month = "0" + month;
}
var day = createdate.getDate();
if (day < 10) {
day = "0" + day;
}
var hour = createdate.getHours();
if (hour < 10) {
hour = "0" + hour;
}
var min = createdate.getMinutes();
if (min < 10) {
min = "0" + min;
}
var sec = createdate.getSeconds();
if (sec < 10) {
sec = "0" + sec;
}
var cdate = month + "-" + day + " " + hour + ":" + min + ":" + sec;
this.setData({
id: datas[i]['imei'],
time: cdate,
temp: parseInt(strToObj.internal_temperature),
humi: parseInt(strToObj.internal_humidity),
voltage: parseInt(strToObj.power_voltage),
electric: parseFloat(strToObj.power_electricity).toFixed(1),
oilfume: parseFloat(strToObj.Soot_concentration).toFixed(1),
hydrocarbon: parseFloat(strToObj.NMHC).toFixed(1),
oiltemp: parseInt(strToObj.sensor_temperature),
oilhumi: parseInt(strToObj.sensor_humidity),
puri: parseFloat(strToObj.purifier_electricity).toFixed(1),
fan: parseFloat(strToObj.fan_electricity).toFixed(1),
})
if (strToObj.openiostate == 0) {
this.setData({
switchChecked: false,
})
} else {
this.setData({
switchChecked: true,
})
}
if (strToObj.power_error == 0) {
this.setData({
error: '正常',
errorcolor: '#11EE11',
})
} else {
this.setData({
error: '故障',
errorcolor: 'red',
})
}
//油烟传感器状态
if (strToObj.sensor_state == 0) {
this.setData({
sensor_state: 'open',
})
} else if (strToObj.sensor_state == 1) {
this.setData({
sensor_state: 'erro',
})
} else if (strToObj.sensor_state == 2) {
this.setData({
sensor_state: 'close',
})
}
//风扇状态
if (strToObj.inductor_fenstate == 0) {
this.setData({
inductor_fenstate: 'open',
})
} else if (strToObj.inductor_fenstate == 1) {
this.setData({
inductor_fenstate: 'erro',
})
} else if (strToObj.inductor_fenstate == 2) {
this.setData({
inductor_fenstate: 'close',
})
}
//净化器状态
if (strToObj.inductor_purifierstate == 0) {
this.setData({
inductor_purifierstate: 'open',
})
} else if (strToObj.inductor_purifierstate == 1) {
this.setData({
inductor_purifierstate: 'erro',
})
} else if (strToObj.inductor_purifierstate == 2) {
this.setData({
inductor_purifierstate: 'close',
})
}
//高压电源状态
if (strToObj.highpower_state == 0) {
this.setData({
highpower_state: 'open',
})
} else if (strToObj.highpower_state == 1) {
this.setData({
highpower_state: 'erro',
})
} else if (strToObj.highpower_state == 2) {
this.setData({
highpower_state: 'close',
})
}
}
if (imei == devices[i]['imei']) {
app.globalData.deviceId = devices[i]['deviceId'];
//网络状态
if (devices[i]['isOnline'] == 0) {
this.setData({
devicestate: 'offline',
})
} else if (devices[i]['isOnline'] == 1) {
this.setData({
devicestate: 'green',
})
}
//设备状态
if (devices[i]['deviceStatus'] == 0) {
this.setData({
status: '创建成功',
})
} else if (devices[i]['deviceStatus'] == 1) {
this.setData({
status: '注册失败',
})
} else if (devices[i]['deviceStatus'] == 2) {
this.setData({
status: '注册成功',
})
} else if (devices[i]['deviceStatus'] == 3) {
this.setData({
status: '已激活',
})
}
}
}
}
},
fail: function () {
wx.showToast({
title: '设备详细数据获取错误!',
icon: 'none',
duration: 2000
})
}
})
}
},
RetClick: function (e) {
var that = this;
//跳转到设备列表
wx.switchTab({
url: '../homefree/homefree'
})
},
REshClick: function () {
wx.request({
url: 'https://api.mpecloud.cn/iotsystem/command',
header: {
'content-type': 'application/json',
'Authorization': 'Bearer ' + app.globalData.token + ''
},
data: {
"commandValue": "{\"refreshing\":\"1\"}",
"createBy": "admin",
"createUserName": app.globalData.userid,
"deviceId": app.globalData.deviceId,
"identifier": "issue_refresh",
"productId": app.globalData.productId,
"serviceId": 8008,
"serviceName": "刷新数据指令",
"serviceType": "Command",
},
method: 'post',
success: res => {
console.log(res.data)
wx.showToast({
title: '刷新成功',
icon: 'none',
duration: 2000
})
},
fail: function () {
wx.showToast({
title: '无法刷新数据!',
icon: 'none',
duration: 2000
})
}
})
},
switchChange: function (e) {
var swithstate = 0;
if (e.detail.value == true) {
swithstate = 1;
}
console.log(e.detail.value);
console.log(app.globalData.userid);
console.log(app.globalData.deviceId);
console.log(app.globalData.productId);
console.log(app.globalData.token);
wx.request({
url: 'https://api.mpecloud.cn/iotsystem/command',
header: {
'content-type': 'application/json',
'Authorization': 'Bearer ' + app.globalData.token + ''
},
data: {
"commandValue": "{\"openiostate\":\"" + swithstate + "\"}",
"createBy": "admin",
"createUserName": app.globalData.userid + "",
"deviceId": app.globalData.deviceId + "",
"identifier": "remote_control",
"productId": app.globalData.productId + "",
"serviceId": "8005",
"serviceName": "远程开关控制",
"serviceType": "Command",
},
method: 'post',
success: res => {
console.log(res.data)
wx.showToast({
title: '远程开关设备已成功!',
icon: 'none',
duration: 2000
})
},
fail: function () {
wx.showToast({
title: '无法远程开关设备!',
icon: 'none',
duration: 2000
})
}
})
}
})