From 320a84fdce1f06d01609792b89b5d3f0221ad94d Mon Sep 17 00:00:00 2001 From: chenJinxu <2183691628@qq.com> Date: Thu, 7 Dec 2023 09:20:03 +0800 Subject: [PATCH] =?UTF-8?q?feat=20-=20c1=E5=90=8E=E5=8F=B0=E8=AE=BE?= =?UTF-8?q?=E5=A4=87=E5=8A=9F=E8=80=97=E6=9F=A5=E7=9C=8B=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=20=20=20=20=20-=20=E5=A2=9E=E5=8A=A0=20=E8=AE=BE=E5=A4=87?= =?UTF-8?q?=E7=8A=B6=E6=80=81=E6=9F=A5=E7=9C=8B=E8=8F=9C=E5=8D=95=20=20=20?= =?UTF-8?q?=20=20-=20=E4=BC=98=E5=8C=96=20=E8=AE=BE=E5=A4=87=E7=A6=BB?= =?UTF-8?q?=E7=BA=BF=E8=A1=8C=E4=B8=BA=E6=9F=A5=E7=9C=8B=E6=98=8E=E7=BB=86?= =?UTF-8?q?=EF=BC=8C=E5=A2=9E=E5=8A=A0=E6=9C=80=E8=BF=91=E7=A6=BB=E7=BA=BF?= =?UTF-8?q?=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 9 +- src/config/models.js | 2 +- .../gps-card-frontend/device-power/index.scss | 5 + .../gps-card-frontend/device-power/index.vue | 43 +- .../device-setting/index.vue | 390 ++++++++++++++++-- 5 files changed, 401 insertions(+), 48 deletions(-) diff --git a/README.md b/README.md index 241c1fc..7c6cdf2 100644 --- a/README.md +++ b/README.md @@ -837,4 +837,11 @@ update `2023.12.5` update - 心理监测首页 - - 区分 测试和正式环境接口地址 \ No newline at end of file + - 区分 测试和正式环境接口地址 + +## v1.0.106 +`2023.12.7` +feat +- c1后台设备功耗查看页面 + - 增加 设备状态查看菜单 + - 优化 设备离线行为查看明细,增加最近离线时间 \ No newline at end of file diff --git a/src/config/models.js b/src/config/models.js index d88e5af..79cb435 100644 --- a/src/config/models.js +++ b/src/config/models.js @@ -5,7 +5,7 @@ * @FilePath: \TelpoH5FrontendWeb\src\config\models.js * @description: */ -export const VERSION_MODEL = '1.0.105F'; //版本号 +export const VERSION_MODEL = '1.0.106F'; //版本号 export const IMAGE_URL = { production: 'http://zfb.ssjlai.com/web/', test: 'http://zfb.ssjlai.com/web/', diff --git a/src/views/gps-card-frontend/device-power/index.scss b/src/views/gps-card-frontend/device-power/index.scss index ff104d0..e608c81 100644 --- a/src/views/gps-card-frontend/device-power/index.scss +++ b/src/views/gps-card-frontend/device-power/index.scss @@ -51,6 +51,11 @@ max-height: 500px; overflow: scroll; } + .last-time { + text-align: left; + font-weight: bold; + padding-left: 1px; + } .echart { height: 30%; padding: 0 5px; diff --git a/src/views/gps-card-frontend/device-power/index.vue b/src/views/gps-card-frontend/device-power/index.vue index f7fd221..1ba963e 100644 --- a/src/views/gps-card-frontend/device-power/index.vue +++ b/src/views/gps-card-frontend/device-power/index.vue @@ -24,11 +24,12 @@
- {{ item.text }} + {{ item.text }}
+

最近一次离线时间:{{ lastTime }}

@@ -72,18 +73,20 @@ export default { data: [], xAxisData: [], filterData: [], - yAxisObject: {} + yAxisObject: {}, + lastTime: '', + params: {} } }, created() { - + this.loadParams(); }, mounted() { - this.loadParams(); }, methods: { loadParams() { let params = this.$route.query; + this.params = {...params}; if(params) { this.echarts.title = DEVICE_POWER[params.title].title; this.echarts.type = DEVICE_POWER[params.title].value; @@ -157,7 +160,8 @@ export default { } else if (this.echarts.type === 'offline') { // 设备离线次数 this.titleList = [ - { title: '时间', width: '60%', key: 'time'}, + { title: '时间', width: '40%', key: 'time'}, + { title: '最近离线时间', width: '60%', key: 'lastTime' }, { title: '离线次数', width: '40%', key: 'value' }, ], this.yAxisObject = { @@ -168,36 +172,49 @@ export default { splitNumber : 1, boundaryGap : [ '5%', '5%' ], */ }; - this.data = this.filterData.map(item => { + + this.data = this.filterData.sort((date1, date2) => { + // 日期升序排序 + return date2.time < date1.time ? 1 : -1 + }).map(item => { return { /* value: item.value, */ time: item.createTime.slice(0,10), day: item.createTime.slice(0,10), - type: 'offline' + type: 'offline', + lastTime: item.createTime.replace('T', ' ') } }).reduce((accumulator, currentValue) => { if (accumulator.find(obj => obj.day === currentValue.day)) { accumulator.find(obj => obj.day === currentValue.day).value++; } else { - accumulator.push({ day: currentValue.day, time: currentValue.time, value: 1, type: 'offline' }); + accumulator.push({ day: currentValue.day, time: currentValue.time, value: 1, type: 'offline', lastTime: currentValue.lastTime }); } return accumulator; }, []).sort(function(date1, date2) { // 日期升序排序 return date2.time < date1.time ? 1 : -1 }); - this.tableData = this.filterData.map(item => { + console.log("data", this.data); + console.log(this.data); + this.lastTime = this.data && this.data[this.data.length - 1].lastTime || ''; + + this.tableData = this.filterData/* .sort((date1, date2) => { + // 日期升序排序 + return date2.time > date1.time ? 1 : -1 + }). */.map(item => { return { /* value: item.value, */ time: item.createTime.slice(0,10), - day: item.createTime.slice(0,10) + day: item.createTime.slice(0,10), + lastTime: item.createTime.replace('T', ' ') } }).reduce((accumulator, currentValue) => { // 筛选遍历数据,获取相同日期的数据,计算出现的次数后重新累加组合到一个新的数组里面 if (accumulator.find(obj => obj.day === currentValue.day)) { accumulator.find(obj => obj.day === currentValue.day).value++; } else { - accumulator.push({ day: currentValue.day, time: currentValue.time, value: 1 }); + accumulator.push({ day: currentValue.day, time: currentValue.time, value: 1, lastTime: currentValue.lastTime }); } return accumulator; }, []).sort(function(date1, date2) { @@ -244,6 +261,9 @@ export default { this.chartOption = { title: { text: this.echarts.title, + textStyle: { + fontSize: 16 + }, }, xAxis: { type: "category", @@ -305,6 +325,7 @@ export default { }, formatter: function(params) { return `${params[0].marker}${params[0].data.time}
+ ${ params[0].data.type === 'offline' ? '最近离线时间:' + params[0].data.lastTime : ''}
${ params[0].data.type === 'offline' ? '离线次数:' + params[0].data.value + '次' : params[0].data.type === 'status' ? 'rssi值:' + params[0].data.value : '电量:' + params[0].data.value}` diff --git a/src/views/gps-card-frontend/device-setting/index.vue b/src/views/gps-card-frontend/device-setting/index.vue index f573f4d..8c6c698 100644 --- a/src/views/gps-card-frontend/device-setting/index.vue +++ b/src/views/gps-card-frontend/device-setting/index.vue @@ -15,7 +15,7 @@ -
+
点击查看
@@ -28,6 +28,7 @@ import customCell from '@/components/custom-cell/index'; import { isNotNull} from "@/utils/index"; import APICore from "@/api/core"; +import axios from 'axios'; export default { name:'', components: { customCell }, @@ -35,16 +36,16 @@ export default { return { active: 0, settingItems: [ - { text: '监护角色', index: 0, data: [],}, - { text: '场景模式', index: 1, data: []}, - { text: '加强省电模式', index: 2, data: []}, - { text: '定位监测', index: 3, data: []}, - { text: '危险区域监测', index: 4, data: [] }, - { text: '健康监测', index: 5, data: []}, - { text: '血压监测', index: 6, data: []}, - { text: '心理监测', index: 7, data: []}, - { text: '佩戴监测', index: 8, data: []}, - /* { text: '久坐提醒', index: 9, data: []}, */ + { text: '设备状态', index: 0, data: [],}, + { text: '监护角色', index: 1, data: [],}, + { text: '场景模式', index: 2, data: []}, + { text: '加强省电模式', index: 3, data: []}, + { text: '定位监测', index: 4, data: []}, + { text: '危险区域监测', index: 5, data: [] }, + { text: '健康监测', index: 6, data: []}, + { text: '血压监测', index: 7, data: []}, + { text: '心理监测', index: 8, data: []}, + { text: '佩戴监测', index: 9, data: []}, { text: '上报周期', index: 10, data: []}, { text: '电量查看', index: 11, data: []}, { text: '设备信号强度查看', index: 12, data: []}, @@ -64,7 +65,7 @@ export default { this.getUrlQueryParams(); }, mounted() { - this.$toast.loading({message: "加载中"}); + /* this.$toast.loading({message: "加载中"}); this.getWatchConfig(); this.getIotCtlMode(); this.getLocationConfig(); @@ -76,9 +77,45 @@ export default { this.getUploadConfig(); this.clientHeight = document.documentElement.clientHeight; this.active = Number(this.$store.getters.active) || 0; - this.$toast.success({message: "加载完成"}); + this.$toast.success({message: "加载完成"}); */ + //this.loadRequest(); + this.loadRequest(); }, methods: { + // 加载接口 + async loadRequest() { + this.$toast.loading({ + message: '数据加载中', + duration: 0 + }); + this.clientHeight = document.documentElement.clientHeight; + this.active = Number(this.$store.getters.active) || 0; + const allPromise = [ + this.getDeviceStatus(), + this.getWatchConfig(), + this.getIotCtlMode(), + this.getLocationConfig(), + this.getDrownConfig(), + this.getHealthConfig(), + this.getBloodConfig(), + this.getPsychAbilityConfig(), + this.getNowearConfig(), + this.getUploadConfig(), + ]; + const promise = Promise.all(allPromise); + try { + const result = await promise; + if(result) { + this.$toast.success({ + message: '数据加载完成', + duration: 2000 + }); + } + } catch(error){ + console.log('error', error); + this.$toast.clear(); + } + }, // 获取b端接口的token getAuth() { let manufactorId = "5bf13062-a41e-4d00-ba14-1101aad12650"; @@ -98,7 +135,7 @@ export default { }, // 获取设备场景模式参数 getWatchConfig() { - APICore.getWatchConfig({imei: this.imei}).then(res => { + /* APICore.getWatchConfig({imei: this.imei}).then(res => { let data = res.data.data; if(data) { const modeId = data.modeId; @@ -110,9 +147,34 @@ export default { } else { this.settingItems[0].text = `监护角色(无数据)`; this.settingItems[1].text = `场景模式(无数据)`; - /* this.modeId = 1; - this.roleId = 1; */ } + }) */ + return new Promise((resolve, reject) => { + APICore.getWatchConfig({imei: this.imei}).then(res => { + let data = res.data.data; + let roleViewIndex = 1; + let modeViewIndex = 2; + let roleIndex = this.settingItems.findIndex(item => { + return item.index === roleViewIndex + }); + let modeIndex = this.settingItems.findIndex(item => { + return item.index === modeViewIndex + }); + if(data) { + const modeId = data.modeId; + const roleId = data.roleId; + this.modeId = data.modeId; + this.roleId = data.roleId; + this.settingItems[roleIndex].text = `监护角色(${roleId === 1 ? '学生' : '老人'})`; + this.settingItems[modeIndex].text = `场景模式(${this.getModeById(modeId)})`; + } else { + this.settingItems[roleIndex].text = `监护角色(无数据)`; + this.settingItems[modeIndex].text = `场景模式(无数据)`; + /* this.modeId = 1; + this.roleId = 1; */ + }; + resolve(true); + }) }) }, // 通过模式id获取场景模式 @@ -131,7 +193,7 @@ export default { }, // 获取加强省电模式参数配置 getIotCtlMode() { - APICore.getIotCtlMode(this.imei).then(res => { + /* APICore.getIotCtlMode(this.imei).then(res => { let data = res.data.data; if(data) { this.checked = data.mode === 1; @@ -142,11 +204,30 @@ export default { } else { this.settingItems[2].text = this.concatTitle('加强省电模式','关闭', '耗电低'); } + }) */ + return new Promise((resolve) => { + APICore.getIotCtlMode(this.imei).then(res => { + let data = res.data.data; + let index = 3; + let findIndex = this.settingItems.findIndex(item => { + return item.index === index + }); + if(data) { + this.checked = data.mode === 1; + this.settingItems[findIndex].text = this.concatTitle('加强省电模式', data.mode === 1 ? '打开' : '关闭', data.mode === 1 ? '耗电高' : '耗电低'); + this.settingItems[findIndex].data = [ + { name: '开启状态:', value: data.enabled === 1 ? '打开': '关闭' }, + ]; + } else { + this.settingItems[findIndex].text = this.concatTitle('加强省电模式','关闭', '耗电低'); + } + }); + resolve(true) }) }, // 获取设备定位参数 getLocationConfig() { - APICore.getLocationConfig({imei: this.imei}).then(res => { + /* APICore.getLocationConfig({imei: this.imei}).then(res => { let data = res.data.data; if(data) { this.settingItems[3].text = this.concatTitle('定位监测', data.enabled === 1 ? '打开': '关闭', data.enabled === 1 ? '耗电高' : '耗电低'); @@ -157,6 +238,25 @@ export default { } else { this.settingItems[3].text = this.concatTitle('定位监测','关闭', '耗电低'); } + }); */ + return new Promise(resolve => { + APICore.getLocationConfig({imei: this.imei}).then(res => { + let data = res.data.data; + let index = 4; + let findIndex = this.settingItems.findIndex(item => { + return item.index === index + }); + if(data) { + this.settingItems[findIndex].text = this.concatTitle('定位监测', data.enabled === 1 ? '打开': '关闭', data.enabled === 1 ? '耗电高' : '耗电低'); + this.settingItems[findIndex].data = [ + { name: '开启状态:', value: data.enabled === 1 ? '打开': '关闭' }, + { name: '检测周期:', value: data.sampleinteval + '分钟' }, + ]; + } else { + this.settingItems[findIndex].text = this.concatTitle('定位监测','关闭', '耗电低'); + } + }); + resolve(true) }) }, // 获取免告警水域 @@ -174,7 +274,7 @@ export default { }, // 获取设备危险区域参数 getDrownConfig() { - APICore.getDrownConfig({imei: this.imei}).then(res => { + /* APICore.getDrownConfig({imei: this.imei}).then(res => { let data = res.data.data; if(data) { this.settingItems[4].text = this.concatTitle('危险区域监测', data.config.enabled === 1 ? '打开': '关闭', data.config.enabled === 1 ? '耗电高' : '耗电低'); @@ -193,6 +293,33 @@ export default { this.settingItems[4].text = this.concatTitle('危险区域监测','关闭', '耗电低'); this.settingItems[4].data = []; } + }); */ + return new Promise(resolve => { + APICore.getDrownConfig({imei: this.imei}).then(res => { + let data = res.data.data; + let index = 5; + let findIndex = this.settingItems.findIndex(item => { + return item.index === index + }); + if(data) { + this.settingItems[findIndex].text = this.concatTitle('危险区域监测', data.config.enabled === 1 ? '打开': '关闭', data.config.enabled === 1 ? '耗电高' : '耗电低'); + this.settingItems[findIndex].data = [ + { name: '涉水监测:', value: data.config.enabled === 1 ? '打开': '关闭' }, + { name: '检测周期:', value: data.config.intervallvl1 + data.config.intervallvl2 + '分钟' }, + { name: '告警阈值:', value: data.config.warningdistance + '米' }, + { name: '涉水停留告警间隔:', value: (data.config.distancelvl2 / 60) + '分钟' }, + { name: '告警提示持续次数:', value: data.config.warningtimes + '次' }, + { name: '首次告警逗留设置:', value: data.config.delaytimes + '次' }, + { name: '时速免告警(≥):', value: data.config.ignorespeed + '公里' }, + { name: '免告警水域:', value: '查看', router: 'drownWhiteList' }, + { name: '告警方式:', value: `${data.config.vibrateenabled === 1 ? '震动' : '无'} , ${data.config.lcdenabled === 1 ? '亮屏' : '无'} , ${data.config.musicenabled === 1 ? '声音' : '无'}`}, + ]; + } else { + this.settingItems[findIndex].text = this.concatTitle('危险区域监测','关闭', '耗电低'); + this.settingItems[findIndex].data = []; + } + }); + resolve(true); }) }, @@ -202,7 +329,7 @@ export default { }, // 获取设备健康参数 getHealthConfig() { - APICore.getHealthConfig({imei: this.imei}).then(res => { + /* APICore.getHealthConfig({imei: this.imei}).then(res => { let data = res.data.data; if(data) { let healthEnablelist = [ @@ -220,7 +347,6 @@ export default { { name: '体温监测:', value: config.temperatureenabled === 1 ? '打开': '关闭' }, { name: '检测周期:', value: this.formatInteval(config.temperatureinteval) }, { name: '告警阈值-高温:', value: (config.temperaturemaxvalue / 10) + '度' }, - /* { name: '告警阈值-低温:', value: config.temperatureminvalue + '度' }, */ { name: '告警方式:', value: `${config.temperaturevibrateenabled === 1 ? '震动' : '无'} , ${config.temperaturelcdenabled === 1 ? '亮屏' : '无'}`}, { name: '心率监测:', value: config.heartrateenabled === 1 ? '打开': '关闭' }, @@ -232,18 +358,62 @@ export default { { name: '血氧监测:', value: config.spo2enabled === 1 ? '打开': '关闭' }, { name: '检测周期:', value: this.formatInteval(config.spo2inteval) }, { name: '告警阈值-低于:', value: config.spo2minvalue + '%' }, - /* { name: '告警阈值-低温:', value: config.temperatureminvalue + '度' }, */ { name: '告警方式:', value: `${config.spo2vibrateenabled === 1 ? '震动' : '无'} , ${config.spo2lcdenabled === 1 ? '亮屏' : '无'}`}, ] } else { this.settingItems[5].text = this.concatTitle('健康监测','关闭', '耗电低'); this.settingItems[5].data = []; } + }); */ + return new Promise(resolve => { + APICore.getHealthConfig({imei: this.imei}).then(res => { + let data = res.data.data; + let index = 6; + let findIndex = this.settingItems.findIndex(item => { + return item.index === index + }); + if(data) { + let healthEnablelist = [ + { enabled: data.config.heartrateenabled}, + { enabled: data.config.spo2enabled}, + { enabled: data.config.temperatureenabled}, + ]; + let config = data.config; + // 获取健康设置打开的次数 + const healthSettingCount = healthEnablelist.reduce((acc, cur) => cur.enabled === 1 ? ++acc : acc, 0); + this.settingItems[findIndex].text = this.concatTitle('健康监测', healthSettingCount >= 3 ? '打开' + : healthSettingCount >= 1 ? '部分' + : '关闭', healthSettingCount > 2 ? '耗电高': healthSettingCount === 2 ? '耗电中': '耗电低'); + this.settingItems[findIndex].data = [ + { name: '体温监测:', value: config.temperatureenabled === 1 ? '打开': '关闭' }, + { name: '检测周期:', value: this.formatInteval(config.temperatureinteval) }, + { name: '告警阈值-高温:', value: (config.temperaturemaxvalue / 10) + '度' }, + /* { name: '告警阈值-低温:', value: config.temperatureminvalue + '度' }, */ + { name: '告警方式:', value: `${config.temperaturevibrateenabled === 1 ? '震动' : '无'} , ${config.temperaturelcdenabled === 1 ? '亮屏' : '无'}`}, + + { name: '心率监测:', value: config.heartrateenabled === 1 ? '打开': '关闭' }, + { name: '检测周期:', value: this.formatInteval(config.heartrateinteval) }, + { name: '告警阈值-上限:', value: config.heartratemaxvalue + '次' }, + { name: '告警阈值-下限:', value: config.heartrateminvalue + '次' }, + { name: '告警方式:', value: `${config.heartratevibrateenabled === 1 ? '震动' : '无'} , ${config.heartratelcdenabled === 1 ? '亮屏' : '无'}`}, + + { name: '血氧监测:', value: config.spo2enabled === 1 ? '打开': '关闭' }, + { name: '检测周期:', value: this.formatInteval(config.spo2inteval) }, + { name: '告警阈值-低于:', value: config.spo2minvalue + '%' }, + /* { name: '告警阈值-低温:', value: config.temperatureminvalue + '度' }, */ + { name: '告警方式:', value: `${config.spo2vibrateenabled === 1 ? '震动' : '无'} , ${config.spo2lcdenabled === 1 ? '亮屏' : '无'}`}, + ] + } else { + this.settingItems[findIndex].text = this.concatTitle('健康监测','关闭', '耗电低'); + this.settingItems[findIndex].data = []; + } + }); + resolve(true); }) }, // 获取血压监测参数设置 getBloodConfig() { - APICore.getBloodPressConfig({imei: this.imei}).then(res => { + /* APICore.getBloodPressConfig({imei: this.imei}).then(res => { let data = res.data.data; if(data) { this.settingItems[6].text = this.concatTitle('血压监测', data.bloodPressenabled === 1 ? '打开': '关闭', data.bloodPressenabled === 1 ? '耗电高' : '耗电低'); @@ -257,6 +427,28 @@ export default { this.settingItems[6].text = this.concatTitle('血压监测','关闭', '耗电低'); this.settingItems[6].data = []; } + }); */ + return new Promise(resolve => { + APICore.getBloodPressConfig({imei: this.imei}).then(res => { + let data = res.data.data; + let index = 7; + let findIndex = this.settingItems.findIndex(item => { + return item.index === index + }); + if(data) { + this.settingItems[findIndex].text = this.concatTitle('血压监测', data.bloodPressenabled === 1 ? '打开': '关闭', data.bloodPressenabled === 1 ? '耗电高' : '耗电低'); + this.settingItems[findIndex].data = [ + { name: '血压监测:', value: data.bloodPressenabled === 1 ? '打开': '关闭' }, + { name: '检测周期:', value: this.formatInteval(data.bloodPressinteval) }, + { name: '告警阈值-收缩压:', value: String(data.systolicmaxvalue)}, + { name: '告警方式:', value: `${data.bloodPressvibrateenabled === 1 ? '震动' : '无'} ,${data.bloodPresslcdenabled === 1 ? '亮屏' : '无'}`}, + ] + } else { + this.settingItems[findIndex].text = this.concatTitle('血压监测','关闭', '耗电低'); + this.settingItems[findIndex].data = []; + } + }); + resolve(true); }) }, // 格式化等级 @@ -280,7 +472,7 @@ export default { }, // 获取心理监测参数设置 getPsychAbilityConfig() { - APICore.getPsychAbilityConfig({imei: this.imei}).then(res => { + /* APICore.getPsychAbilityConfig({imei: this.imei}).then(res => { let data = res.data.data; if (data) { this.settingItems[7].text = this.concatTitle('心理监测', data.enabled === 1 ? '打开': '关闭', data.enabled === 1 ? '耗电高' : '耗电低'); @@ -298,6 +490,32 @@ export default { this.settingItems[7].text = this.concatTitle('心理监测', '关闭', '耗电低'); this.settingItems[7].data = []; } + }); */ + return new Promise(resolve => { + APICore.getPsychAbilityConfig({imei: this.imei}).then(res => { + let data = res.data.data; + let index = 8; + let findIndex = this.settingItems.findIndex(item => { + return item.index === index + }); + if (data) { + this.settingItems[findIndex].text = this.concatTitle('心理监测', data.enabled === 1 ? '打开': '关闭', data.enabled === 1 ? '耗电高' : '耗电低'); + this.settingItems[findIndex].data = [ + { name: '心理监测:', value: data.enabled === 1 ? '打开': '关闭' }, + { name: '设备显示:', value: data.device_display === 1 ? '打开': '关闭' }, + { name: '监测时段:', value: this.formatTimeArea(data.time_area) }, + { name: '提醒设置:', value: data.reminder_setting.enable === 1 ? '打开': '关闭' }, + { name: '抑郁等级:', value: this.formatReminder(data.reminder_setting.setting.depressive) }, + { name: '压力等级:', value: this.formatReminder(data.reminder_setting.setting.pressure) }, + { name: '疲劳等级:', value: this.formatReminder(data.reminder_setting.setting.fatigue) }, + { name: '告警方式:', value: `${data.vibrating_screen === 1 ? '震动' : '无'}, ${data.brightening_screen === 1 ? '亮屏' : '无'}`}, + ] + } else { + this.settingItems[findIndex].text = this.concatTitle('心理监测', '关闭', '耗电低'); + this.settingItems[findIndex].data = []; + } + }); + resolve(true); }) }, // 转换时间格式 @@ -321,7 +539,7 @@ export default { }, // 获取佩戴监测参数设置 getNowearConfig() { - APICore.getNowearConfig({ imei: this.imei }).then(res => { + /* APICore.getNowearConfig({ imei: this.imei }).then(res => { let data = res.data.data; if(data) { this.dateList = []; @@ -350,19 +568,118 @@ export default { this.settingItems[8].text = this.concatTitle('佩戴监测', '关闭', '耗电低'); this.settingItems[8].data = []; } + }); */ + return new Promise(resolve => { + APICore.getNowearConfig({ imei: this.imei }).then(res => { + let data = res.data.data; + let index = 9; + let findIndex = this.settingItems.findIndex(item => { + return item.index === index + }); + if(data) { + this.dateList = []; + this.shiftTime(data.timearea1, 0); + this.shiftTime(data.timearea2, 1); + this.shiftTime(data.timearea3, 2); + this.shiftTime(data.timearea4, 3); + this.shiftTime(data.timearea5, 4); + this.shiftTime(data.timearea6, 5); + this.shiftTime(data.timearea7, 6); + this.shiftTime(data.timearea8, 7); + this.shiftTime(data.timearea9, 8); + this.shiftTime(data.timearea10, 9); + this.settingItems[findIndex].text = this.concatTitle('佩戴监测', data.enabled === 1 ? '打开': '关闭', data.enabled === 1 ? '耗电高' : '耗电低'); + this.settingItems[findIndex].data = [ + { name: '佩戴监测:', value: data.enabled === 1 ? '打开': '关闭' }, + { name: '检测周期:', value: (data.interval / 60) + '分钟' }, + { name: '检测时段:', value: this.fomatTimeArr(this.dateList)}, + { name: '未佩戴处理方式:', value: data.mode === 1 ? '不处理': '飞行模式' }, + { name: '佩戴提醒:', value: data.warningtimes !== 0 ? '打开' : '关闭' }, + { name: '提醒时间间隔:', value: (data.warninginterval / 60) + '分钟' }, + { name: '提醒次数:', value: data.warningtimes + '次'}, + { name: '告警方式:', value: `${data.vibrateenabled === 1 ? '震动' : '无'} ,${data.lcdenabled === 1 ? '亮屏' : '无'} ,${data.soundenabled === 1 ? '声音' : '无'}`}, + ] + } else { + this.settingItems[findIndex].text = this.concatTitle('佩戴监测', '关闭', '耗电低'); + this.settingItems[findIndex].data = []; + } + }); + resolve(true); }) + }, // 获取设备上报参数 getUploadConfig() { - APICore.getUploadConfig({imei: this.imei}).then(res => { + /* APICore.getUploadConfig({imei: this.imei}).then(res => { const data = res.data.data; if(data) { this.settingItems[9].text = `上报周期(${data.uploadinteval}分钟)`; } else { this.settingItems[9].text = '上报周期(关闭)'; } + }); */ + return new Promise(resolve => { + APICore.getUploadConfig({imei: this.imei}).then(res => { + const data = res.data.data; + let index = 10; + let findIndex = this.settingItems.findIndex(item => { + return item.index === index + }); + if(data) { + this.settingItems[findIndex].text = `上报周期(${data.uploadinteval}分钟)`; + } else { + this.settingItems[findIndex].text = '上报周期(关闭)'; + } + }); + resolve(true); }) }, + // 获取设备状态 + getDeviceStatus() { + let reqBody = { + imei: /* '861281060086216' *//* '862838050029479' */this.$store.getters.imei + }; + // 线上地址 + let baseUrl = process.env.VUE_APP_BASE_API; + let reqUrl = `${baseUrl}/iotservice/queryDeviceDetail`; + //本地调试地址 + /* let reqUrl = `/api/id/queryDeviceDetail`; */ + return new Promise(resolve => { + axios.post(`${reqUrl}`, reqBody).then(res => { + let data = res.data; + let index = 0; + let findIndex = this.settingItems.findIndex(item => { + return item.index === index + }); + if(data.code === 200) { + this.settingItems[findIndex].text = `设备状态(${this.calcDeviceStatus(data.data.data.status)})`; + } else { + this.settingItems[findIndex].text = `设备状态(无数据)`; + } + }); + resolve(true); + }) + }, + // 计算设备状态 + calcDeviceStatus(status) { + let result = '' + switch(status) { + case 'ONLINE': + result = '在线'; + break; + case 'OFFLINE': + result = '离线'; + break; + case 'UNACTIVE': + result = '未激活'; + break; + case 'DISABLE': + result = '已禁用'; + break; + default: break; + }; + return result; + }, // 点击左边树形图 onCkickNav(value) { this.active = value; @@ -379,33 +696,36 @@ export default { }); break; */ case 0: - this.getWatchConfig(); + this.getDeviceStatus(); break; case 1: this.getWatchConfig(); break; case 2: - this.getIotCtlMode(); + this.getWatchConfig(); break; case 3: - this.getLocationConfig(); + this.getIotCtlMode(); break; case 4: - this.getDrownConfig(); + this.getLocationConfig(); break; case 5: - this.getHealthConfig(); + this.getDrownConfig(); break; case 6: - this.getBloodConfig(); + this.getHealthConfig(); break; case 7: - this.getPsychAbilityConfig(); + this.getBloodConfig(); break; case 8: - this.getNowearConfig(); + this.getPsychAbilityConfig(); break; case 9: + this.getNowearConfig(); + break; + case 10: this.getUploadConfig(); break; default: break; @@ -418,7 +738,7 @@ export default { this.$router.push({ name: 'devicePower', query: { - title: `${value === 10 ? 'BatteryLevel' : value === 11 ? 'status': 'Offline'}` + title: `${value === 11 ? 'BatteryLevel' : value === 12 ? 'status': 'Offline'}` } }) }