|
|
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 |
|
|
|
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 |
|
|
|
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 |
|
|
|
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 |
|