From 975bf975b91360cd4ce6098dbf0288dc4429758b Mon Sep 17 00:00:00 2001 From: lzh Date: Sun, 8 Mar 2026 00:14:04 +0800 Subject: [PATCH] =?UTF-8?q?feat(@vben/web-antd):=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E5=8C=BA=E5=9F=9F=E8=AE=BE=E5=A4=87=E5=8F=AF=E8=A7=86=E5=8C=96?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E9=A1=B5=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 左侧区域树 + 右侧设备卡片网格布局,点击卡片打开详情 Drawer, 支持设备基础信息查看、类型化实时数据展示(客流趋势/工牌状态)、 业务配置编辑及设备绑定/解绑操作。 Co-Authored-By: Claude Opus 4.6 --- .../web-antd/src/router/routes/modules/ops.ts | 10 + .../src/views/ops/area-device/index.vue | 311 +++++++ .../ops/area-device/modules/device-card.vue | 260 ++++++ .../modules/device-detail-drawer.vue | 845 ++++++++++++++++++ apps/web-antd/src/views/ops/area/data.ts | 17 + 5 files changed, 1443 insertions(+) create mode 100644 apps/web-antd/src/views/ops/area-device/index.vue create mode 100644 apps/web-antd/src/views/ops/area-device/modules/device-card.vue create mode 100644 apps/web-antd/src/views/ops/area-device/modules/device-detail-drawer.vue diff --git a/apps/web-antd/src/router/routes/modules/ops.ts b/apps/web-antd/src/router/routes/modules/ops.ts index fb2ff4ab2..a6739690e 100644 --- a/apps/web-antd/src/router/routes/modules/ops.ts +++ b/apps/web-antd/src/router/routes/modules/ops.ts @@ -21,6 +21,16 @@ const routes: RouteRecordRaw[] = [ }, component: () => import('#/views/ops/area/index.vue'), }, + // 区域设备管理 + { + path: 'area-device', + name: 'OpsAreaDevice', + meta: { + title: '区域设备管理', + activePath: '/ops/area-device', + }, + component: () => import('#/views/ops/area-device/index.vue'), + }, // 客流统计 { path: 'traffic', diff --git a/apps/web-antd/src/views/ops/area-device/index.vue b/apps/web-antd/src/views/ops/area-device/index.vue new file mode 100644 index 000000000..ce196b7c8 --- /dev/null +++ b/apps/web-antd/src/views/ops/area-device/index.vue @@ -0,0 +1,311 @@ + + + + + diff --git a/apps/web-antd/src/views/ops/area-device/modules/device-card.vue b/apps/web-antd/src/views/ops/area-device/modules/device-card.vue new file mode 100644 index 000000000..3c19563a7 --- /dev/null +++ b/apps/web-antd/src/views/ops/area-device/modules/device-card.vue @@ -0,0 +1,260 @@ + + + + + diff --git a/apps/web-antd/src/views/ops/area-device/modules/device-detail-drawer.vue b/apps/web-antd/src/views/ops/area-device/modules/device-detail-drawer.vue new file mode 100644 index 000000000..c6e660875 --- /dev/null +++ b/apps/web-antd/src/views/ops/area-device/modules/device-detail-drawer.vue @@ -0,0 +1,845 @@ + + + + + diff --git a/apps/web-antd/src/views/ops/area/data.ts b/apps/web-antd/src/views/ops/area/data.ts index 72e1b9b8e..90ee88275 100644 --- a/apps/web-antd/src/views/ops/area/data.ts +++ b/apps/web-antd/src/views/ops/area/data.ts @@ -44,6 +44,23 @@ export const RELATION_TYPE_OPTIONS: { label: string; value: RelationType }[] = [ { label: '工牌', value: 'BADGE' }, ]; +/** 关联类型颜色映射(卡片用) */ +export const RELATION_TYPE_COLORS: Record< + string, + { bg: string; text: string } +> = { + TRAFFIC_COUNTER: { bg: '#e6f4ff', text: '#1677ff' }, + BEACON: { bg: '#f6ffed', text: '#52c41a' }, + BADGE: { bg: '#fff7e6', text: '#fa8c16' }, +}; + +/** 关联类型 Tag 颜色映射(Ant Design Tag 用) */ +export const RELATION_TYPE_TAG_COLORS: Record = { + TRAFFIC_COUNTER: 'blue', + BEACON: 'green', + BADGE: 'orange', +}; + /** 启用状态选项(筛选用) */ export const ACTIVE_OPTIONS = [ { label: '全部', value: undefined },