From 565cd2921a7320a4534ebefcf674cee7e03ba4a4 Mon Sep 17 00:00:00 2001 From: xiaozhiyong Date: Thu, 11 Jun 2026 08:40:18 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/equipment/list.js | 8 + src/api/masterStation/equipment.js | 58 ++ src/api/securityControl/alarmList.js | 16 + src/pathInfo.json | 13 + .../detail/components/config/index.vue | 169 ++++ .../detail/components/trend/index.vue | 3 +- .../list/components/detail/index.vue | 16 +- .../detail/components/alarm/index.vue | 173 ++++ .../detail/components/config/index.vue | 169 ++++ .../detail/components/info/index.vue | 282 +++++++ .../detail/components/line/index.vue | 142 ++++ .../detail/components/trend/index.vue | 678 ++++++++++++++++ .../equipment/components/detail/index.vue | 79 ++ .../equipment/components/list/index.vue | 377 +++++++++ src/view/masterStation/equipment/index.vue | 25 + src/view/masterStation/index.vue | 20 + src/view/masterStation/project/index.vue | 754 ++++++++++++++++++ src/view/securityControl/alarmList/index.vue | 171 +++- .../securityControl/currentAlarm/index.vue | 251 ++++++ .../temperatureAlarm/index.vue | 328 ++++++++ 20 files changed, 3703 insertions(+), 29 deletions(-) create mode 100644 src/api/masterStation/equipment.js create mode 100644 src/api/securityControl/alarmList.js create mode 100644 src/view/equipment/list/components/detail/components/config/index.vue create mode 100644 src/view/masterStation/equipment/components/detail/components/alarm/index.vue create mode 100644 src/view/masterStation/equipment/components/detail/components/config/index.vue create mode 100644 src/view/masterStation/equipment/components/detail/components/info/index.vue create mode 100644 src/view/masterStation/equipment/components/detail/components/line/index.vue create mode 100644 src/view/masterStation/equipment/components/detail/components/trend/index.vue create mode 100644 src/view/masterStation/equipment/components/detail/index.vue create mode 100644 src/view/masterStation/equipment/components/list/index.vue create mode 100644 src/view/masterStation/equipment/index.vue create mode 100644 src/view/masterStation/index.vue create mode 100644 src/view/masterStation/project/index.vue create mode 100644 src/view/securityControl/currentAlarm/index.vue create mode 100644 src/view/securityControl/temperatureAlarm/index.vue diff --git a/src/api/equipment/list.js b/src/api/equipment/list.js index ccebb42..a5f6d48 100644 --- a/src/api/equipment/list.js +++ b/src/api/equipment/list.js @@ -48,3 +48,11 @@ export const getCircuitBreakerDetail = (data) => { data: data }) } +// 设备配置 +export const getDeviceConfigListByPage = (data) => { + return service({ + url: '/device/getDeviceConfigListByPage', + method: 'post', + data: data + }) +} diff --git a/src/api/masterStation/equipment.js b/src/api/masterStation/equipment.js new file mode 100644 index 0000000..a5f6d48 --- /dev/null +++ b/src/api/masterStation/equipment.js @@ -0,0 +1,58 @@ +import service from '@/utils/request' +// 网关 +export const getDeviceGatewayListByPage = (data) => { + return service({ + url: '/device/getDeviceGatewayListByPage', + method: 'post', + data: data + }) +} +// 设备 +export const getDeviceListByPage = (data) => { + return service({ + url: '/device/getDeviceListByPage', + method: 'post', + data: data + }) +} + +export const deviceOperation = (data) => { + return service({ + url: '/device/deviceOperation', + method: 'post', + data: data + }) +} +// 曲线 +export const getDeviceDetailsListByPage = (data) => { + return service({ + url: '/device/getDeviceDetailsListByPage', + method: 'post', + data: data + }) +} +// 报警 +export const getAlarmRecordListByPage = (data) => { + return service({ + url: '/device/getAlarmRecordListByPage', + method: 'post', + data: data + }) +} + +// 报警 +export const getCircuitBreakerDetail = (data) => { + return service({ + url: '/device/getCircuitBreakerDetail', + method: 'post', + data: data + }) +} +// 设备配置 +export const getDeviceConfigListByPage = (data) => { + return service({ + url: '/device/getDeviceConfigListByPage', + method: 'post', + data: data + }) +} diff --git a/src/api/securityControl/alarmList.js b/src/api/securityControl/alarmList.js new file mode 100644 index 0000000..7f51927 --- /dev/null +++ b/src/api/securityControl/alarmList.js @@ -0,0 +1,16 @@ +import service from '@/utils/request' +// echarts图 +export const getAlarmCategorySummary = (data) => { + return service({ + url: '/device/getAlarmCategorySummary', + method: 'post', + data: data + }) +} +export const getAlarmTrend = (data) => { + return service({ + url: '/device/getAlarmTrend', + method: 'post', + data: data + }) +} diff --git a/src/pathInfo.json b/src/pathInfo.json index 53accfa..80cd0f1 100644 --- a/src/pathInfo.json +++ b/src/pathInfo.json @@ -14,6 +14,7 @@ "/src/view/equipment/gateway/index.vue": "Index", "/src/view/equipment/index.vue": "Equipment", "/src/view/equipment/list/components/detail/components/alarm/index.vue": "Index", + "/src/view/equipment/list/components/detail/components/config/index.vue": "Index", "/src/view/equipment/list/components/detail/components/info/index.vue": "Index", "/src/view/equipment/list/components/detail/components/line/index.vue": "Index", "/src/view/equipment/list/components/detail/components/trend/index.vue": "Index", @@ -54,10 +55,22 @@ "/src/view/layout/setting/modules/layout/index.vue": "LayoutSettings", "/src/view/layout/tabs/index.vue": "HistoryComponent", "/src/view/login/index.vue": "Login", + "/src/view/masterStation/equipment/components/detail/components/alarm/index.vue": "Index", + "/src/view/masterStation/equipment/components/detail/components/config/index.vue": "Index", + "/src/view/masterStation/equipment/components/detail/components/info/index.vue": "Index", + "/src/view/masterStation/equipment/components/detail/components/line/index.vue": "Index", + "/src/view/masterStation/equipment/components/detail/components/trend/index.vue": "Index", + "/src/view/masterStation/equipment/components/detail/index.vue": "Index", + "/src/view/masterStation/equipment/components/list/index.vue": "Index", + "/src/view/masterStation/equipment/index.vue": "Index", + "/src/view/masterStation/index.vue": "MasterStation", + "/src/view/masterStation/project/index.vue": "Index", "/src/view/person/person.vue": "Person", "/src/view/routerHolder.vue": "RouterHolder", "/src/view/securityControl/alarmList/index.vue": "Index", + "/src/view/securityControl/currentAlarm/index.vue": "Index", "/src/view/securityControl/index.vue": "SecurityControl", + "/src/view/securityControl/temperatureAlarm/index.vue": "Index", "/src/view/superAdmin/api/api.vue": "Api", "/src/view/superAdmin/authority/authority.vue": "Authority", "/src/view/superAdmin/authority/components/apis.vue": "Apis", diff --git a/src/view/equipment/list/components/detail/components/config/index.vue b/src/view/equipment/list/components/detail/components/config/index.vue new file mode 100644 index 0000000..cc38385 --- /dev/null +++ b/src/view/equipment/list/components/detail/components/config/index.vue @@ -0,0 +1,169 @@ + + + + + diff --git a/src/view/equipment/list/components/detail/components/trend/index.vue b/src/view/equipment/list/components/detail/components/trend/index.vue index ae095c1..f8dde60 100644 --- a/src/view/equipment/list/components/detail/components/trend/index.vue +++ b/src/view/equipment/list/components/detail/components/trend/index.vue @@ -489,7 +489,8 @@ }) if (res.code === 0) { ElMessage.success('操作成功') - getDeviceGatewayListByPage() + // getDeviceGatewayListByPage() + getCircuitBreakerDetail() } }) } diff --git a/src/view/equipment/list/components/detail/index.vue b/src/view/equipment/list/components/detail/index.vue index 19c1a1b..c025fbb 100644 --- a/src/view/equipment/list/components/detail/index.vue +++ b/src/view/equipment/list/components/detail/index.vue @@ -11,18 +11,14 @@ + - - + @@ -32,6 +28,7 @@ import DeviceInfo from './components/info/index.vue' import DeviceLine from './components/line/index.vue' import DeviceTrend from './components/trend/index.vue' + import DeviceConfig from './components/config/index.vue' import DeviceAlarm from './components/alarm/index.vue' defineProps({ @@ -42,15 +39,8 @@ }) const activeMenu = ref('info') - const emit = defineEmits(['back']) - // const activeMenu = ref('info') - - // const handleMenuSelect = (index) => { - // activeMenu.value = index - // } - const handleBack = () => { activeMenu.value = '' emit('back') diff --git a/src/view/masterStation/equipment/components/detail/components/alarm/index.vue b/src/view/masterStation/equipment/components/detail/components/alarm/index.vue new file mode 100644 index 0000000..ef08708 --- /dev/null +++ b/src/view/masterStation/equipment/components/detail/components/alarm/index.vue @@ -0,0 +1,173 @@ + + + + + diff --git a/src/view/masterStation/equipment/components/detail/components/config/index.vue b/src/view/masterStation/equipment/components/detail/components/config/index.vue new file mode 100644 index 0000000..e1ccfc4 --- /dev/null +++ b/src/view/masterStation/equipment/components/detail/components/config/index.vue @@ -0,0 +1,169 @@ + + + + + diff --git a/src/view/masterStation/equipment/components/detail/components/info/index.vue b/src/view/masterStation/equipment/components/detail/components/info/index.vue new file mode 100644 index 0000000..9a4fcb0 --- /dev/null +++ b/src/view/masterStation/equipment/components/detail/components/info/index.vue @@ -0,0 +1,282 @@ + + + + + diff --git a/src/view/masterStation/equipment/components/detail/components/line/index.vue b/src/view/masterStation/equipment/components/detail/components/line/index.vue new file mode 100644 index 0000000..5a44fcb --- /dev/null +++ b/src/view/masterStation/equipment/components/detail/components/line/index.vue @@ -0,0 +1,142 @@ + + + + + diff --git a/src/view/masterStation/equipment/components/detail/components/trend/index.vue b/src/view/masterStation/equipment/components/detail/components/trend/index.vue new file mode 100644 index 0000000..211b8c1 --- /dev/null +++ b/src/view/masterStation/equipment/components/detail/components/trend/index.vue @@ -0,0 +1,678 @@ + + + + + diff --git a/src/view/masterStation/equipment/components/detail/index.vue b/src/view/masterStation/equipment/components/detail/index.vue new file mode 100644 index 0000000..c025fbb --- /dev/null +++ b/src/view/masterStation/equipment/components/detail/index.vue @@ -0,0 +1,79 @@ + + + + + diff --git a/src/view/masterStation/equipment/components/list/index.vue b/src/view/masterStation/equipment/components/list/index.vue new file mode 100644 index 0000000..25c0d1a --- /dev/null +++ b/src/view/masterStation/equipment/components/list/index.vue @@ -0,0 +1,377 @@ + + + + + diff --git a/src/view/masterStation/equipment/index.vue b/src/view/masterStation/equipment/index.vue new file mode 100644 index 0000000..37536dc --- /dev/null +++ b/src/view/masterStation/equipment/index.vue @@ -0,0 +1,25 @@ + + + diff --git a/src/view/masterStation/index.vue b/src/view/masterStation/index.vue new file mode 100644 index 0000000..00ee663 --- /dev/null +++ b/src/view/masterStation/index.vue @@ -0,0 +1,20 @@ + + + diff --git a/src/view/masterStation/project/index.vue b/src/view/masterStation/project/index.vue new file mode 100644 index 0000000..b23dd19 --- /dev/null +++ b/src/view/masterStation/project/index.vue @@ -0,0 +1,754 @@ + + + + + + + diff --git a/src/view/securityControl/alarmList/index.vue b/src/view/securityControl/alarmList/index.vue index c28b954..ab4bd37 100644 --- a/src/view/securityControl/alarmList/index.vue +++ b/src/view/securityControl/alarmList/index.vue @@ -1,22 +1,16 @@ + + diff --git a/src/view/securityControl/temperatureAlarm/index.vue b/src/view/securityControl/temperatureAlarm/index.vue new file mode 100644 index 0000000..d2c8ffd --- /dev/null +++ b/src/view/securityControl/temperatureAlarm/index.vue @@ -0,0 +1,328 @@ + + + + + From abe40c5ae96a9d1d491845593273bec465608e14 Mon Sep 17 00:00:00 2001 From: xiaozhiyong Date: Thu, 11 Jun 2026 17:09:09 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/view/masterStation/project/index.vue | 726 +++++++++++++++++------ 1 file changed, 534 insertions(+), 192 deletions(-) diff --git a/src/view/masterStation/project/index.vue b/src/view/masterStation/project/index.vue index b23dd19..3b70b87 100644 --- a/src/view/masterStation/project/index.vue +++ b/src/view/masterStation/project/index.vue @@ -1,12 +1,12 @@ @@ -508,4 +579,22 @@ width: 100%; height: calc(100% - 30px); } + + .date-type-select { + width: 72px; + margin-right: 8px; + } + + .date-picker { + width: 160px; + } + + .alarm-table-box { + padding: 12px; + background: #ffffff; + border: 1px solid #e4e7ed; + border-radius: 6px; + box-shadow: 0 1px 4px rgba(0, 0, 0, 0.04); + margin-top: 12px; + } diff --git a/src/view/securityControl/currentAlarm/index.vue b/src/view/securityControl/currentAlarm/index.vue index 858a6ec..7674579 100644 --- a/src/view/securityControl/currentAlarm/index.vue +++ b/src/view/securityControl/currentAlarm/index.vue @@ -1,17 +1,32 @@ From 987b2c8f90f1691ddf38d3fa6acaa298465fcf68 Mon Sep 17 00:00:00 2001 From: xiaozhiyong Date: Thu, 11 Jun 2026 18:32:58 +0800 Subject: [PATCH 6/7] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pathInfo.json | 1 - src/router/index.js | 5 ----- 2 files changed, 6 deletions(-) diff --git a/src/pathInfo.json b/src/pathInfo.json index d949da1..a0ce0c6 100644 --- a/src/pathInfo.json +++ b/src/pathInfo.json @@ -22,7 +22,6 @@ "/src/view/equipment/list/index.vue": "Index", "/src/view/error/index.vue": "Error", "/src/view/error/reload.vue": "Reload", - "/src/view/init/index.vue": "Init", "/src/view/largeScreen/index.vue": "Index", "/src/view/largeScreen2/index.vue": "Index", "/src/view/layout/aside/asideComponent/asyncSubmenu.vue": "AsyncSubmenu", diff --git a/src/router/index.js b/src/router/index.js index d5203b2..7fe00ed 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -5,11 +5,6 @@ const routes = [ path: '/', redirect: '/login' }, - { - path: '/init', - name: 'Init', - component: () => import('@/view/init/index.vue') - }, { path: '/login', name: 'Login', From 0ae8ba168b3eba86e7fdce4a0d67a600c03cfa55 Mon Sep 17 00:00:00 2001 From: xiaozhiyong Date: Thu, 11 Jun 2026 18:39:29 +0800 Subject: [PATCH 7/7] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{ => system/dictionary}/sysDictionary.js | 0 .../dictionary}/sysDictionaryDetail.js | 0 src/pathInfo.json | 2 + src/pinia/modules/dictionary.js | 59 +--- .../superAdmin/dictionary/sysDictionary.vue | 309 ++++++++++++++++ .../dictionary/sysDictionaryDetail.vue | 333 ++++++++++++++++++ 6 files changed, 655 insertions(+), 48 deletions(-) rename src/api/{ => system/dictionary}/sysDictionary.js (100%) rename src/api/{ => system/dictionary}/sysDictionaryDetail.js (100%) create mode 100644 src/view/superAdmin/dictionary/sysDictionary.vue create mode 100644 src/view/superAdmin/dictionary/sysDictionaryDetail.vue diff --git a/src/api/sysDictionary.js b/src/api/system/dictionary/sysDictionary.js similarity index 100% rename from src/api/sysDictionary.js rename to src/api/system/dictionary/sysDictionary.js diff --git a/src/api/sysDictionaryDetail.js b/src/api/system/dictionary/sysDictionaryDetail.js similarity index 100% rename from src/api/sysDictionaryDetail.js rename to src/api/system/dictionary/sysDictionaryDetail.js diff --git a/src/pathInfo.json b/src/pathInfo.json index a0ce0c6..da7147e 100644 --- a/src/pathInfo.json +++ b/src/pathInfo.json @@ -69,6 +69,8 @@ "/src/view/superAdmin/authority/components/apis.vue": "Apis", "/src/view/superAdmin/authority/components/datas.vue": "Datas", "/src/view/superAdmin/authority/components/menus.vue": "Menus", + "/src/view/superAdmin/dictionary/sysDictionary.vue": "SysDictionary", + "/src/view/superAdmin/dictionary/sysDictionaryDetail.vue": "SysDictionaryDetail", "/src/view/superAdmin/index.vue": "SuperAdmin", "/src/view/superAdmin/menu/components/components-cascader.vue": "ComponentsCascader", "/src/view/superAdmin/menu/icon.vue": "Icon", diff --git a/src/pinia/modules/dictionary.js b/src/pinia/modules/dictionary.js index b0c089f..e76d19f 100644 --- a/src/pinia/modules/dictionary.js +++ b/src/pinia/modules/dictionary.js @@ -1,5 +1,5 @@ -import { findSysDictionary } from '@/api/sysDictionary' -import { getDictionaryTreeListByType } from '@/api/sysDictionaryDetail' +import { findSysDictionary } from '@/api/system/dictionary/sysDictionary' +import { getDictionaryTreeListByType } from '@/api/system/dictionary/sysDictionaryDetail' import { defineStore } from 'pinia' import { ref } from 'vue' @@ -32,9 +32,7 @@ export const useDictionaryStore = defineStore('dictionary', () => { label: item.label, value: item.value, extend: item.extend, - children: item.children - ? filterTreeByDepth(item.children, currentDepth + 1, targetDepth) - : undefined + children: item.children ? filterTreeByDepth(item.children, currentDepth + 1, targetDepth) : undefined })) } @@ -66,20 +64,12 @@ export const useDictionaryStore = defineStore('dictionary', () => { label: item.label, value: item.value, extend: item.extend, - children: - item.children && item.children.length > 0 - ? normalizeTreeData(item.children) - : undefined + children: item.children && item.children.length > 0 ? normalizeTreeData(item.children) : undefined })) } // 根据value和depth查找指定节点并返回其children - const findNodeByValue = ( - items, - targetValue, - currentDepth = 1, - maxDepth = 0 - ) => { + const findNodeByValue = (items, targetValue, currentDepth = 1, maxDepth = 0) => { for (const item of items) { // 如果找到目标value的节点 if (item.value === targetValue) { @@ -95,17 +85,8 @@ export const useDictionaryStore = defineStore('dictionary', () => { } // 如果当前深度小于最大深度,继续在children中查找 - if ( - item.children && - item.children.length > 0 && - (maxDepth === 0 || currentDepth < maxDepth) - ) { - const result = findNodeByValue( - item.children, - targetValue, - currentDepth + 1, - maxDepth - ) + if (item.children && item.children.length > 0 && (maxDepth === 0 || currentDepth < maxDepth)) { + const result = findNodeByValue(item.children, targetValue, currentDepth + 1, maxDepth) if (result !== null) { return result } @@ -120,29 +101,16 @@ export const useDictionaryStore = defineStore('dictionary', () => { // 构建缓存key,包含value和depth信息 const cacheKey = `${type}_value_${value}_depth_${depth}` - if ( - dictionaryMap.value[cacheKey] && - dictionaryMap.value[cacheKey].length - ) { + if (dictionaryMap.value[cacheKey] && dictionaryMap.value[cacheKey].length) { return dictionaryMap.value[cacheKey] } try { // 获取完整的树形结构数据 const treeRes = await getDictionaryTreeListByType({ type }) - if ( - treeRes.code === 0 && - treeRes.data && - treeRes.data.list && - treeRes.data.list.length > 0 - ) { + if (treeRes.code === 0 && treeRes.data && treeRes.data.list && treeRes.data.list.length > 0) { // 查找指定value的节点并返回其children - const targetNodeChildren = findNodeByValue( - treeRes.data.list, - value, - 1, - depth - ) + const targetNodeChildren = findNodeByValue(treeRes.data.list, value, 1, depth) if (targetNodeChildren !== null) { let resultData @@ -179,12 +147,7 @@ export const useDictionaryStore = defineStore('dictionary', () => { try { // 首先尝试获取树形结构数据 const treeRes = await getDictionaryTreeListByType({ type }) - if ( - treeRes.code === 0 && - treeRes.data && - treeRes.data.list && - treeRes.data.list.length > 0 - ) { + if (treeRes.code === 0 && treeRes.data && treeRes.data.list && treeRes.data.list.length > 0) { // 使用树形结构数据 const treeData = treeRes.data.list diff --git a/src/view/superAdmin/dictionary/sysDictionary.vue b/src/view/superAdmin/dictionary/sysDictionary.vue new file mode 100644 index 0000000..a8690c5 --- /dev/null +++ b/src/view/superAdmin/dictionary/sysDictionary.vue @@ -0,0 +1,309 @@ + + + + + diff --git a/src/view/superAdmin/dictionary/sysDictionaryDetail.vue b/src/view/superAdmin/dictionary/sysDictionaryDetail.vue new file mode 100644 index 0000000..d6964b8 --- /dev/null +++ b/src/view/superAdmin/dictionary/sysDictionaryDetail.vue @@ -0,0 +1,333 @@ + + + + +