From dc5cb0990fb24e30eb7e7c87d383c5a8c155232f Mon Sep 17 00:00:00 2001 From: hwj Date: Mon, 30 Mar 2026 18:09:30 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E8=AE=BE=E5=A4=87=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E9=A1=B5=E9=9D=A2=E5=AF=B9=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/iot/orgNode/index.ts | 50 + src/router/modules/remaining.ts | 2 +- src/views/iot/device/management/NodeForm.vue | 319 ++++++ src/views/iot/device/management/index.vue | 959 +++++++++++-------- 4 files changed, 948 insertions(+), 382 deletions(-) create mode 100644 src/api/iot/orgNode/index.ts create mode 100644 src/views/iot/device/management/NodeForm.vue diff --git a/src/api/iot/orgNode/index.ts b/src/api/iot/orgNode/index.ts new file mode 100644 index 0000000..dfe5968 --- /dev/null +++ b/src/api/iot/orgNode/index.ts @@ -0,0 +1,50 @@ +import request from '@/config/axios' + +export interface OrgNodeVO { + id?: number | string + customerId?: number | string + parentId?: number | string + nodeType?: number | string + name?: string + sort?: number | string + createTime?: string + children?: OrgNodeVO[] + deviceId?: number | string +} + +export interface OrgNodeQuery { + customerId?: number | string +} + +export interface OrgNodeSaveReqVO { + id?: number | string + customerId?: number | string + parentId: number | string + nodeType: number | string + name: string + sort?: number | string + createTime?: string +} + +export interface OrgNodeDeviceListReqVO { + nodeId: number | string + nodeType: number | string +} + +export const OrgNodeApi = { + getOrgNodeTree: async (params?: OrgNodeQuery) => { + return await request.get({ url: '/iot/org-node/tree', params }) + }, + createOrgNode: async (data: OrgNodeSaveReqVO) => { + return await request.post({ url: '/iot/org-node/create', data }) + }, + updateOrgNode: async (data: OrgNodeSaveReqVO) => { + return await request.put({ url: '/iot/org-node/update', data }) + }, + getDeviceListByNode: async (params: OrgNodeDeviceListReqVO) => { + return await request.get({ url: '/iot/org-node/device-list-by-node', params }) + }, + deleteOrgNode: async (id: number | string) => { + return await request.delete({ url: '/iot/org-node/delete?id=' + id }) + } +} diff --git a/src/router/modules/remaining.ts b/src/router/modules/remaining.ts index a3e17f1..7627d42 100644 --- a/src/router/modules/remaining.ts +++ b/src/router/modules/remaining.ts @@ -732,7 +732,7 @@ const remainingRouter: AppRouteRecordRaw[] = [ hidden: true, activeMenu: '/iot/device/device' }, - component: () => import('@/views/iot/device/index.vue') + component: () => import('@/views/iot/device/management/index.vue') }, { path: 'ota/operation/firmware/detail/:id', diff --git a/src/views/iot/device/management/NodeForm.vue b/src/views/iot/device/management/NodeForm.vue new file mode 100644 index 0000000..f25583d --- /dev/null +++ b/src/views/iot/device/management/NodeForm.vue @@ -0,0 +1,319 @@ + + + diff --git a/src/views/iot/device/management/index.vue b/src/views/iot/device/management/index.vue index 21ac83f..c1f42c3 100644 --- a/src/views/iot/device/management/index.vue +++ b/src/views/iot/device/management/index.vue @@ -10,24 +10,6 @@ placeholder="搜索设备/产线/公司" class="device-mgmt__search" /> -
-
-
设备
-
{{ deviceTotal }}
-
-
-
在线
-
{{ - deviceOnline - }}
-
-
-
离线
-
- {{ deviceTotal - deviceOnline }} -
-
-
{{ data.code }} +
+ + 新增 + + 编辑 + + 删除 + +
@@ -62,260 +69,332 @@
- -
-
- -
-
{{ selectedDevice?.name || '-' }}
-
{{ selectedDevice?.code || '-' }}
+
+ + + + + + + + + + + + + + + + + + +
- - - - - - - +
+ +