From 62367c55445894dfc2d5b4f7a97bdc3300a00d6c Mon Sep 17 00:00:00 2001 From: 23688nl <329261658@qq.com> Date: Thu, 1 Sep 2022 16:51:30 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=EF=BC=9A=20=E9=A1=B9?= =?UTF-8?q?=E7=9B=AE=E7=AE=A1=E7=90=86=20=E6=96=B0=E7=89=88=E6=9C=AC=20?= =?UTF-8?q?=E5=AE=89=E5=85=A8=E7=9B=91=E6=8E=A7=E6=A8=A1=E5=9D=97=E4=B8=8B?= =?UTF-8?q?=20=E5=8A=9F=E8=83=BD=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/iot/project_new.js | 82 ++++ .../components/bigscLocation/indexV_3.vue | 1 - src/utils/hciot.js | 36 ++ .../project/profileV2/AlarmManage/ETiming.vue | 41 ++ .../project/profileV2/AlarmManage/index.vue | 418 ++++++++++++++++ .../DeviceManage/EDeviceChildren.vue | 292 ++++++++---- .../profileV2/DeviceManage/EDeviceTable.vue | 4 +- src/views/iot/project/profileV2/ENavMenu.vue | 127 ++++- .../profileV2/EnergyManage/EElectricity.vue | 344 ++++++++++++++ .../profileV2/SafetyTemplate/EDebuff.vue | 256 ++++++++++ .../SafetyTemplate/EDeviceSwitchWarning.vue | 232 +++++++++ .../SafetyTemplate/ELeakageCurrent.vue | 438 +++++++++++++++++ .../profileV2/SafetyTemplate/index.vue | 448 ++++++++++++++++++ src/views/iot/project/profileV2/details.vue | 98 +++- 14 files changed, 2711 insertions(+), 106 deletions(-) create mode 100644 src/views/iot/project/profileV2/AlarmManage/ETiming.vue create mode 100644 src/views/iot/project/profileV2/AlarmManage/index.vue create mode 100644 src/views/iot/project/profileV2/EnergyManage/EElectricity.vue create mode 100644 src/views/iot/project/profileV2/SafetyTemplate/EDebuff.vue create mode 100644 src/views/iot/project/profileV2/SafetyTemplate/EDeviceSwitchWarning.vue create mode 100644 src/views/iot/project/profileV2/SafetyTemplate/ELeakageCurrent.vue create mode 100644 src/views/iot/project/profileV2/SafetyTemplate/index.vue diff --git a/src/api/iot/project_new.js b/src/api/iot/project_new.js index be260e16..f363c2dd 100644 --- a/src/api/iot/project_new.js +++ b/src/api/iot/project_new.js @@ -35,3 +35,85 @@ export function statProject(query) { params: query }); } + +// 查询 全部报警图表 +export function projectAlarmEcharts(query) { + return request({ + url: "/iot/project/monitor/allAlarmChart", + method: "get", + params: query + }); +} + +// 查询 全部报警表格 +export function projectAlarmTable(query) { + return request({ + url: "/iot/project/monitor/allAlarmList", + method: "get", + params: query + }); +} + +// 查询 报警 图表 +export function projectAlarmRecordEcharts(query) { + return request({ + url: "/iot/project/monitor/alarmChart", + method: "get", + params: query + }); +} + +// 查询 报警 表格 +export function projectAlarmRecordTable(query) { + return request({ + url: "/iot/project/monitor/alarmList", + method: "get", + params: query + }); +} + + +// 查询 异常 列表 +export function projectAbnormalRecordTable(query) { + return request({ + url: "/iot/project/monitor/abnormalList", + method: "get", + params: query + }); +} + +// 查询 分合闸 警示 +export function projectWarningRecordTable(query) { + return request({ + url: "/iot/project/monitor/deviceOutList", + method: "get", + params: query + }); +} + +// 查询 异常 导出 +export function projectAbnormalRecordExport(query) { + return request({ + url: "/iot/project/monitor/abnormalExport", + method: "get", + params: query + }); +} + +// 查询 分合闸 导出 +export function projectWarningRecordExport(query) { + return request({ + url: "/iot/project/monitor/deviceOutExport", + method: "get", + params: query + }); +} + +// 查询 能源 列表 +export function projectEneElectricityTable(query) { + return request({ + url: "/iot/project/monitor/deviceOutList", + method: "get", + params: query + }); +} diff --git a/src/components/Amap/components/bigscLocation/indexV_3.vue b/src/components/Amap/components/bigscLocation/indexV_3.vue index c0be7423..b6a329a7 100644 --- a/src/components/Amap/components/bigscLocation/indexV_3.vue +++ b/src/components/Amap/components/bigscLocation/indexV_3.vue @@ -96,7 +96,6 @@ export default { // 地图标点 点击事件 markerClick(e) { // console.log("地图点击标注点!!"); - debugger; if (!this.infoWindow) { this.createInfoWindowO(); } diff --git a/src/utils/hciot.js b/src/utils/hciot.js index f24f355d..745e5435 100644 --- a/src/utils/hciot.js +++ b/src/utils/hciot.js @@ -262,3 +262,39 @@ export const downloadFile = (data, fileName) => { navigator.msSaveBlob(blob, fileName); } } +/** + * 查询两个时间之间 相差具体 天 小时 分钟 秒 + * @param {*} $begin_time 开始时间 + * @param {*} $end_time 结束时间 + * @returns + */ +export const timeDiff = ($begin_time, $end_time ) => { + $begin_time = $begin_time ? $begin_time : parseTime(new Date(), '{y}-{m}-{d} {h}:{i}:{s}'); + $end_time = $end_time ? $end_time : parseTime(new Date(), '{y}-{m}-{d} {h}:{i}:{s}'); + + var starttime = new Date($begin_time).getTime() / 1000; + var endTime = new Date($end_time).getTime() / 1000; + //计算天数 + var $timediff = 0; + if (starttime < endTime) { + $timediff = endTime - starttime + } else { + $timediff = starttime - endTime + } + var $days = parseInt($timediff / 86400); + //计算小时数 + var $remain = $timediff % 86400; + var $hours = parseInt($remain / 3600); + //计算分钟数 + var $remain = $remain % 3600; + var $mins = parseInt($remain / 60); + //计算秒数 + var $secs = $remain % 60; + // $days=>天 + // $hours=>时 + // $mins=>分 + // $secs=>秒 + var $res = [$days,$hours,$mins,$secs] + return $res + +} diff --git a/src/views/iot/project/profileV2/AlarmManage/ETiming.vue b/src/views/iot/project/profileV2/AlarmManage/ETiming.vue new file mode 100644 index 00000000..446e8658 --- /dev/null +++ b/src/views/iot/project/profileV2/AlarmManage/ETiming.vue @@ -0,0 +1,41 @@ + + + diff --git a/src/views/iot/project/profileV2/AlarmManage/index.vue b/src/views/iot/project/profileV2/AlarmManage/index.vue new file mode 100644 index 00000000..91146e35 --- /dev/null +++ b/src/views/iot/project/profileV2/AlarmManage/index.vue @@ -0,0 +1,418 @@ + + + diff --git a/src/views/iot/project/profileV2/DeviceManage/EDeviceChildren.vue b/src/views/iot/project/profileV2/DeviceManage/EDeviceChildren.vue index 6824468d..481ff48f 100644 --- a/src/views/iot/project/profileV2/DeviceManage/EDeviceChildren.vue +++ b/src/views/iot/project/profileV2/DeviceManage/EDeviceChildren.vue @@ -24,16 +24,33 @@
-
- 刷新 -
-
+
刷新
+
一键合闸
-
+
一键分闸
- + -
@@ -52,7 +68,12 @@ :tableTotal="deviceTotal" :queryParams="queryParams" :tableList="tableList" - :filterList="[...defaultFilterList, ...filterList]" + :filterList="[ + ...defaultFilterList, + ...filterList, + ...status, + ...operate, + ]" :isIndex="true" :tableHeight="tableList.length > 0 ? '470px' : '495px'" :isSelect="true" @@ -60,18 +81,52 @@ @tableSelectionChange="handleTableChange" @handleQuery="handleQuery" > - diff --git a/src/views/iot/project/profileV2/DeviceManage/EDeviceTable.vue b/src/views/iot/project/profileV2/DeviceManage/EDeviceTable.vue index 485edf5e..7e5ce5cd 100644 --- a/src/views/iot/project/profileV2/DeviceManage/EDeviceTable.vue +++ b/src/views/iot/project/profileV2/DeviceManage/EDeviceTable.vue @@ -103,7 +103,7 @@
- +
{{ devItem.deviceId }} @@ -136,6 +136,7 @@ import ESimpleCard from "@/components/Cards/index"; import EDeviceChildren from './EDeviceChildren' import { webSocketProjectGatewayUrl } from "@/config/env"; import { listProjectDevice, listProjectModel } from '@/api/iot/project_new' +import { getIotFileUrl } from "@/utils/hciot" export default { name: "EDeviceTable", components: { @@ -238,6 +239,7 @@ export default { this.initHTML() }, methods: { + getIotFileUrl, // init html initHTML() { this.getGatewayList(); diff --git a/src/views/iot/project/profileV2/ENavMenu.vue b/src/views/iot/project/profileV2/ENavMenu.vue index 88102ef5..fa9d7777 100644 --- a/src/views/iot/project/profileV2/ENavMenu.vue +++ b/src/views/iot/project/profileV2/ENavMenu.vue @@ -1,14 +1,60 @@ @@ -19,8 +65,8 @@ export default { value: { type: [String, Number], default: () => { - return 0 - } + return 0; + }, }, props: { type: Object, @@ -28,6 +74,7 @@ export default { return { label: "label", key: "key", + children: "children", }; }, }, @@ -37,21 +84,58 @@ export default { return [ { label: "项目管理", - key: "projectOt" + key: "projectOt", }, { label: "设备管理", - key: "projectOt" + key: "projectOt", }, ]; }, }, + singleDevelop: { + type: Boolean, + default: () => { + return true; + }, + }, + defaultDevelop: { + type: Array, + default: () => { + return []; + }, + }, + }, + data() { + return { + developList: [], + }; + }, + created() { + this.developList = this.defaultDevelop; }, methods: { handleClick(row) { - this.$emit('input', row[this.props['key']]); - } - } + if ( + !row[this.props["children"]] || + row[this.props["children"]].length <= 0 + ) { + this.$emit("input", row); + } else { + if (this.developList.indexOf(row[this.props["key"]]) >= 0) { + this.developList = this.developList.filter((v) => { + v !== row[this.props["key"]]; + }); + } else { + // 执行展开操作 + if (this.singleDevelop) { + this.developList = []; + } + this.developList.push(row[this.props["key"]]); + } + } + }, + }, }; diff --git a/src/views/iot/project/profileV2/SafetyTemplate/EDebuff.vue b/src/views/iot/project/profileV2/SafetyTemplate/EDebuff.vue new file mode 100644 index 00000000..8b561db4 --- /dev/null +++ b/src/views/iot/project/profileV2/SafetyTemplate/EDebuff.vue @@ -0,0 +1,256 @@ + + + diff --git a/src/views/iot/project/profileV2/SafetyTemplate/EDeviceSwitchWarning.vue b/src/views/iot/project/profileV2/SafetyTemplate/EDeviceSwitchWarning.vue new file mode 100644 index 00000000..358cb51e --- /dev/null +++ b/src/views/iot/project/profileV2/SafetyTemplate/EDeviceSwitchWarning.vue @@ -0,0 +1,232 @@ + + + diff --git a/src/views/iot/project/profileV2/SafetyTemplate/ELeakageCurrent.vue b/src/views/iot/project/profileV2/SafetyTemplate/ELeakageCurrent.vue new file mode 100644 index 00000000..7d8a7834 --- /dev/null +++ b/src/views/iot/project/profileV2/SafetyTemplate/ELeakageCurrent.vue @@ -0,0 +1,438 @@ + + + diff --git a/src/views/iot/project/profileV2/SafetyTemplate/index.vue b/src/views/iot/project/profileV2/SafetyTemplate/index.vue new file mode 100644 index 00000000..96adcadf --- /dev/null +++ b/src/views/iot/project/profileV2/SafetyTemplate/index.vue @@ -0,0 +1,448 @@ + + + diff --git a/src/views/iot/project/profileV2/details.vue b/src/views/iot/project/profileV2/details.vue index 71540ad1..e094ff9c 100644 --- a/src/views/iot/project/profileV2/details.vue +++ b/src/views/iot/project/profileV2/details.vue @@ -57,11 +57,12 @@
@@ -71,6 +72,7 @@ :projectInfo="infoData" :projectTypeOptions="projectTypeOptions" :sourceId="stateSourceId" + :tempType="activeType" >
@@ -112,6 +114,12 @@ import ETypeCensus from "./ETypeCensus"; import ETrendCensus from "./ETrendCensus"; import EObjectContainer from "./EObjectContainer"; import EDeviceManage from "./DeviceManage/index"; +import EAlarmManage from './AlarmManage/index' +import ESafetyTemplate from './SafetyTemplate/index' +import ELeakageCurrent from './SafetyTemplate/ELeakageCurrent' +import EDebuff from './SafetyTemplate/EDebuff' +import EDeviceSwitchWarning from './SafetyTemplate/EDeviceSwitchWarning' +import EElectricity from './EnergyManage/EElectricity' export default { name: "projectDetailV2", @@ -127,6 +135,12 @@ export default { ETrendCensus, EObjectContainer, EDeviceManage, + EAlarmManage, + ESafetyTemplate, + ELeakageCurrent, + EDebuff, + EDeviceSwitchWarning, + EElectricity }, props: { sourceId: { @@ -139,14 +153,94 @@ export default { stateSourceId: null, resultInfo: {}, activeName: "EObjectContainer", + activeType: 'EObjectContainer', activeList: [ { label: "项目信息", key: "EObjectContainer", + template: "EObjectContainer", }, { label: "设备管理", key: "EDeviceManage", + template: "EDeviceManage", + }, + { + label: "安全监管", + key: "safety", + children: [ // 漏电流 温度 漏电报警 温度报警 漏保自检 短路报警 过欠压 过流过载 电弧报警 三相报警 异常状态 分合闸警示 + { + label: "全部报警", + key: "EAlarmManage", + template: "EAlarmManage", + }, + { + label: "漏电流", + key: "ELeakageCurrent", + template: "ELeakageCurrent", + }, + { + label: "温度", + key: "A006,A007,A008,A009,B004,B005,B006,B007", + template: 'ESafetyTemplate' + }, + { + label: "漏电报警", + key: "A002,B002", + template: "ESafetyTemplate", + }, + { + label: "漏保自检", + key: "A002,B004", + template: "ESafetyTemplate", + }, + { + label: "短路报警", + key: "A001,B004", + template: "ESafetyTemplate", + }, + { + label: "过欠压", + key: "A005,A004,B000,B001", + template: "ESafetyTemplate", + }, + { + label: "过流过载", + key: "A003,B003", + template: "ESafetyTemplate", + }, + { + label: "电弧报警", + key: "A003,B003", + template: "ESafetyTemplate", + }, + { + label: "三相报警", + key: "A003,B003", + template: "ESafetyTemplate", + }, + { + label: "异常状态", + key: "A010", + template: "EDebuff", + }, + { + label: "分合闸警示", + key: "A011", + template: "EDeviceSwitchWarning", + }, + ] + }, + { + label: "综合管理", + key: "energy", + children: [ + { + label: "电量", + key: "electricity", + template: "EElectricity", + }, + ], }, ], projectTypeOptions: [],