Commit Graph

38 Commits

Author SHA1 Message Date
lzh
887e51eaaa [F11] 设备查询页 subsystemId 筛选 + 未归属标签
- apps/web-antd/src/api/iot/device/device/index.ts
  - Device 接口加 subsystemId/subsystemName
  - 新增 BindSubsystemReqVO + bindDeviceSubsystem (PUT /iot/device/bindSubsystem)
- apps/web-antd/src/views/iot/device/device/index.vue
  - 筛选器:子系统下拉 + 未归属哨兵 -1 (→ queryParams.unassigned=true)
  - 单设备/批量绑定弹窗,批量 100 台/批
  - 行操作 + TableAction 增加"绑定子系统"按钮 (auth: iot:device:update)
- apps/web-antd/src/views/iot/device/device/data.ts
  - useGridColumns 追加"所属子系统"列 (slot: subsystem)
- apps/web-antd/src/views/iot/device/device/modules/card-view.vue
  - 卡片视图加子系统信息行 + 未归属红标签
  - Props 透传 subsystems / searchParams.subsystemId / unassigned
- apps/web-antd/src/views/iot/device/device/__tests__/device-subsystem-filter.spec.ts
  - 14 用例: 筛选参数转换 / 未归属标签条件 / 批量分批逻辑
- locales/langs/{zh-CN,en-US}/page.json: iot.device.filter.subsystem.* 12 键同步
- Known Pitfalls 落地: 评审 A2 NULL 醒目红标签 / 哨兵 -1 → unassigned=true /
  批量 100 台分批 / iot:device:update 权限 / simple-list 加载静默降级

后端 B11 API 补充契约:
- GET /iot/device/page?unassigned=true (subsystemId IS NULL 过滤)
- PUT /iot/device/bindSubsystem { deviceId, subsystemId: number | null }
- 分页响应 Device 含 subsystemId?: number | null + subsystemName?: string

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 23:02:01 +08:00
lzh
ba459aa1d7 [F9/F10] 子系统管理 + 告警正交 5 态列表(UI 骨架 + mock)
两任务并行完成,因同动 router/iot.ts 与 locales/page.json 合并 commit。

F9 子系统管理 + 设备批量绑定:
- apps/web-antd/src/api/iot/subsystem/index.ts
- apps/web-antd/src/views/iot/subsystem/{list,form,devices}.vue
- apps/web-antd/src/views/iot/subsystem/__tests__/subsystem-utils.test.ts (18 用例)
- Known Pitfalls: 评审 A6 Redis stats 降级 / A7 403 拦截器 / 批量 100 台 / code regex snake_case
- 后端 B10/B11 API 契约: /iot/subsystem/{page,get,create,update,delete,simple-list,device-count}
  + /iot/device/{batchBindSubsystem,bindSubsystem} + /iot/device/page 加 subsystemId 过滤

F10 告警记录 (评审 C1 正交 5 态):
- apps/web-antd/src/views/iot/alarm/record/{list,detail}.vue
- apps/web-antd/src/views/iot/alarm/record/{alarm-state,api}.ts
- apps/web-antd/src/views/iot/alarm/record/components/{AlarmStateTag,AlarmOperations}.vue
- apps/web-antd/src/views/iot/alarm/record/__tests__/AlarmStateTag.spec.ts (12 用例)
- 5 态: 活跃·未确认(red) / 活跃·已确认(orange) / 已清除·未确认(gold醒目) / 已清除·已确认(green) / 已归档(default)
- Known Pitfalls: C1 5 态必展示 / archived 优先判断 / 30s 轮询 / 严重度颜色映射
- 后端 B12 API 契约: /iot/alarm-record/{page,get,ack,unack,clear,archive,batch-*,history,remark}

共同:
- apps/web-antd/src/router/routes/modules/iot.ts 追加 subsystem + alarm 路由
- locales/langs/{zh-CN,en-US}/page.json 追加 iot.subsystem.* + iot.alarm.*

note: 路由用顶级路径;项目采用动态菜单机制,菜单注册需后端 menu 表配置(运维侧工作),
      前端路由可通过 URL 直接访问。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 22:39:47 +08:00
lzh
8613641d1d [F2] DAG 节点面板(左侧拖拽区)
- apps/web-antd/src/components/iot-dag/DagNodePanel.vue
  - 3 类分组 collapse + 搜索过滤 + 加载/错误/空态
- apps/web-antd/src/components/iot-dag/NodeTypeCard.vue
  - HTML5 dragstart 双 MIME:application/x-iot-dag-node + text/plain
  - payload: { type: providerType, category: dagNodeType }
- apps/web-antd/src/components/iot-dag/hooks/useNodeCatalog.ts
  - Mock 13 节点类型(5 trigger / 3 condition / 5 action)
  - fetcher 可注入、permissionFilter 预留
  - TODO(F3/F7): 替换为 @vben/request /iot/rule/provider/metadata
- apps/web-antd/src/components/iot-dag/__tests__/useNodeCatalog.spec.ts 17 用例
- apps/web-antd/src/components/iot-dag/index.ts barrel 增加 DagNodePanel/NodeTypeCard
- i18n: iot.dag.panel.* + iot.dag.node.<type>.{name,desc} zh-CN/en-US 同步
- Known Pitfalls 落地: ⚠️ Firefox dataTransfer 双 MIME / 权限过滤预留 / icon Lucide 名

note: Acceptance #3 drop 由 F3/F7 DagCanvasContainer 实现,F2 只负责发送方。
      图标通过 data-icon attribute 传递,F3/F7 集成时接入 lucide-vue-next 渲染。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 22:07:37 +08:00
lzh
7dbf41b75f [F1] @vue-flow/core 依赖 + DagCanvas 基础组件
- apps/web-antd/src/components/iot-dag/ 7 文件
  - DagCanvas.vue / DagCanvasToolbar.vue
  - hooks/useDagState.ts(50 步撤销栈 + structuredClone 深拷贝)
  - hooks/useDagShortcuts.ts(Del/Ctrl+Z/Ctrl+Y + input guard)
  - types.ts(DagNode/DagEdge/DagCanvasProps + 6 emits)
  - index.ts barrel + __tests__/DagCanvas.spec.ts(16 用例全绿)
- pnpm-workspace.yaml: catalog 新增 @vue-flow/{core,background,controls,minimap}
- apps/web-antd/package.json: 4 包全部 'catalog:' 引用
- i18n: zh-CN/en-US iot.dag.toolbar.* + iot.dag.canvas.* 同步
- Known Pitfalls 落地: ⚠️ catalog 约束 / 样式 import / TS 严格零 any

note: Acceptance #7 (Storybook/playground) 项目未集成 Storybook,
      由 F7 规则链编辑页自然 dogfood。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-23 21:32:11 +08:00
dylanmay
5374e64bcb fix: resolve todo 2025-11-27 09:55:24 +08:00
xingyu4j
e44f9a0aca Merge branch 'main' of https://github.com/vbenjs/vue-vben-admin into dev 2025-11-24 11:47:31 +08:00
xingyu4j
e311cfb8da feat: route add profile 2025-11-10 17:51:10 +08:00
Li Kui
be843300be chore: update demo routes 2025-11-06 17:44:34 +08:00
dylanmay
5269d4c387 fix: code style 2025-11-06 15:25:11 +08:00
dylanmay
c2b0a91ffc feat: 消息迁移 2025-11-04 14:31:32 +08:00
xingyu4j
18273c42a6 feat: add table-action comp 2025-05-15 11:49:44 +08:00
xingyu4j
c19c6a7faf chore: naive init 2025-05-09 13:52:20 +08:00
xingyu4j
bd9d07dadd feat: add rangePicker locales 2025-05-06 23:44:30 +08:00
xingyu4j
bd02645e26 perf: 优化 租户切换 2025-05-06 15:44:31 +08:00
YunaiV
ff4a478e83 feat: action locales【6dad2152】 2025-03-24 21:30:21 +08:00
Vben
081d2aed23 perf: format code with better style (#5283) 2025-01-01 11:39:49 +08:00
Vben
860fc15ce6 perf: adjustment of form spelling errors, type adjustment, closer to actual development (#4694) 2024-10-20 21:44:25 +08:00
Vben
0df8c5c02c refactor: reconstruct language files into multi-file structures (#4683)
* refactor: reconstruct language files into multi-file structures

* chore: typo
2024-10-19 14:28:21 +08:00
dependabot[bot]
a0fbe0b21a chore(deps): bump tailwindcss from 3.4.13 to 3.4.14 in the non-breaking-changes group (#4650)
* chore(deps): bump tailwindcss in the non-breaking-changes group

Bumps the non-breaking-changes group with 1 update: [tailwindcss](https://github.com/tailwindlabs/tailwindcss).


Updates `tailwindcss` from 3.4.13 to 3.4.14
- [Release notes](https://github.com/tailwindlabs/tailwindcss/releases)
- [Changelog](https://github.com/tailwindlabs/tailwindcss/blob/v3.4.14/CHANGELOG.md)
- [Commits](https://github.com/tailwindlabs/tailwindcss/compare/v3.4.13...v3.4.14)

---
updated-dependencies:
- dependency-name: tailwindcss
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: non-breaking-changes
...

Signed-off-by: dependabot[bot] <support@github.com>

* chore: update deps

* chore: lint fix

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-16 21:23:11 +08:00
Li Kui
cd652941cd fix: switching language does not load the translation of the component correctly (#4205)
closes #4191
2024-08-21 10:06:06 +08:00
Vben
b464b87ac5 refactor: migrate demo applications to playground (#4116)
* chore: detail adjustment

* refactor: Migrate demo applications to playground

* perf: logic optimization

* chore: update docs

* chore: update docs
2024-08-11 16:09:32 +08:00
invalid w
f1e0278bd8 chore: define examples router & add ellipsis comp (#4019)
* chore: define components router

* chore: 组件路由放置到演示路由下

* Revert "chore: 组件路由放置到演示路由下"

This reverts commit 3c24632ad51f031cf95aafa49183d7c5538098bb.

* chore: typo

* chore: 增加密码强度组件

* chore: 国际化密码强度的菜单

* chore(@vben/web-antd): 迁移文本省略组件

* chore: typo

* chore: 组件命名方式遵从packages

* chore: Optimize the onExpand function

* chore: update css

* chore(@vben/web-antd): optimize the getPosition function

* chore: add ellipsis-text in comm-ui

* chore: 文本省略组件迁移至common-ui

* feat(@vben/common-ui): Tooltip的tip支持style传参

* chore: 优化组件渲染

* chore: 使用css module解决样式冲突

* chore: update props

* chore: 优化css

* chore: rm unuse attr

---------

Co-authored-by: Li Kui <90845831+likui628@users.noreply.github.com>
2024-08-09 10:57:46 +08:00
Vben
4f5783d00b perf: enable strict ts type checking (#4045) 2024-08-05 21:12:22 +08:00
Vben
376fd17a61 feat: Feature/pro docs (#70)
* chore: merge main

* feat: update docs

* feat: remove coze-assistant

* feat: add watermark plugin

* feat: update preferences

* feat: update docs

---------

Co-authored-by: vince <vince292007@gmail.com>
2024-07-28 14:29:05 +08:00
vince
14538f7ed5 refactor(project): re-adjust the overall folder 2024-07-23 00:03:59 +08:00
vben
a1a566cb2f chore: update deps 2024-07-20 23:01:49 +08:00
vben
480580f104 feat: add 'maxNumOfOpenTab' to limit the maximum number of tabs with the same name 2024-07-20 11:14:32 +08:00
vben
9987451647 feat: use simpler nitro instead of nestjs to implement mock service 2024-07-20 08:31:05 +08:00
vince
9ec91ac16d feat: add breadcrumb navigation example 2024-07-19 01:26:13 +08:00
vince
276ef2ebc3 fix: fix a series of known problems,fixed #54 2024-07-18 21:59:18 +08:00
vben
daa31f7156 refactor(project): simplified part of the package, code optimization 2024-07-13 16:35:47 +08:00
vben
5784d718c0 chore: update deps 2024-07-13 14:49:49 +08:00
Li Kui
7801a90dcb refactor: unify frontend and backend access control with shared page … (#43)
* refactor: unify frontend and backend access control with shared page components

* fix: role switch not show

* chore: update title
2024-07-13 11:26:36 +08:00
vince
d62a3da009 perf: improve the logic related to login expiration 2024-07-11 20:11:11 +08:00
vince
95b6bcce6a feat: can also see the menu without permission, but jump to 403 2024-07-10 22:13:55 +08:00
vince
4674380266 perf: optimize the naming of locale key 2024-07-10 21:55:16 +08:00
vince
a765d3bbc0 feat: new interface pendant can be configured to display hidden 2024-07-10 21:20:11 +08:00
vben
208d4188fc refactor: refactor locales, separate locales within apps,fixed #12 2024-07-07 00:17:44 +08:00