Commit Graph

432 Commits

Author SHA1 Message Date
lzh
b15b6b4f4d feat(@vben/web-antd): 用户-项目绑定管理双入口
- 用户管理页:下拉操作新增 "分配项目" 按钮 + assign-project-form.vue 弹窗
  沿用现有 assign-role-form 的交互(多选 + 覆盖写入)
- 项目管理页:行操作新增 "管理成员" 按钮 + assign-user-form.vue 弹窗
  下拉支持搜索用户 nickname/username
- 新建 api/system/user-project/ 封装 4 个接口
- api/system/project 新增 getAllProjectSimpleList:
  顶栏 simple-list 已改为用户授权过滤,管理员分配场景需要全量下拉
- 空集保存二次确认:清空所有分配/成员时弹 AntModal.confirm,防误操作
- 权限点:system:user:assign-project / system:project:assign-user

设计文档:docs/design/2026-04-23-user-project-binding.md

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 14:51:09 +08:00
lzh
37acdcf394 feat(@vben/web-antd): 顶栏项目切换器 + 物联运维平台 SSO 无感跳转
- 顶栏 TenantDropdown 替换为 ProjectDropdown(新建 widget)
  - 进入时拉 /system/project/simple-list;仅当本地 projectId 不在列表时
    才回退到首项,避免静默改写用户选择
  - 空列表不渲染,避免出现永远空下拉
- 新增"物联运维"按钮,走 OAuth2 authorization code 流程跳 IoT 前端
  - state 使用 crypto.randomUUID() / getRandomValues() 生成(CSRF 防护)
  - VITE_IOT_BASE_URL 未配置时按钮隐藏,不再硬编码兜底 URL
  - 使用原生 <button disabled> 替代 <a role="button">,修复可访问性
- 新增 /sso-callback 回调页 + /system/sso/callback API
  - 挂载后立即 history.replaceState 清 code/state,避免二次 exchange
  - API 层做 snake_case → camelCase 映射,统一前端风格
  - 文档化 redirectUri 必须与 OAuth2 客户端 redirectUris 白名单一致
- authStore 新增 ssoLogin,与 authLogin 抽取共用 postAuthSuccess
  - token 为空直接抛错,fetchUserInfo 失败回滚 token 避免 401 循环

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-22 23:43:44 +08:00
lzh
72ed0eb5aa feat(@vben/web-antd): 支持按 platform 过滤多前端菜单
业务平台 (biz) 与物联运维平台 (iot) 共享同一后端,需按前端来源过滤菜单,
避免同一角色在两端看到相同菜单。

- 新增 CLIENT_ID 常量,请求拦截器 / 基础 client 统一注入 X-Client-Id 头,
  后端密码登录 & refresh-token 据此绑定 token 的 client/platform
- SystemMenuApi.Menu 增加 platform 字段
- 菜单表单新增"所属平台"选择项(PLATFORM_OPTIONS),为 null 则两端共享

配合后端迁移 sql/mysql/migrations/2026-04-20_oauth2_client_platform.sql。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-22 23:40:19 +08:00
lzh
44b2dd9d05 feat(@vben/web-antd): 项目管理前端页面和请求拦截器适配
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-16 23:08:25 +08:00
lzh
615e928929 style(@vben/web-antd): 修正 linter 自动格式化残留
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-14 09:14:44 +08:00
lzh
2d2197d40d fix(@vben/web-antd): 修复工牌状态接口类型定义
- BadgeStatusItem 新增 nickname 字段
- batteryLevel 类型修正为 number | null
- ManualDispatchReq 新增 assigneeName 字段

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
2026-04-13 23:48:27 +08:00
lzh
c3e3389868 fix(@vben/web-antd): 修复工单详情工牌状态字段对齐及依赖清理
- work-order/detail: 工牌状态 lastHeartbeatTime→onlineTime,移除 rssi 展示
- trajectory/api: lint 修正(移除冗余空行)
- badge-status-card: linter 格式修正
- pnpm-lock: 更新依赖锁定文件

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-05 15:38:57 +08:00
lzh
1468a4062b feat(@vben/web-antd): 对齐后端轨迹与工牌接口 DTO 类型定义
- TrajectoryRecord 新增 fullAreaName、TimelineQuery.deviceId 改为可选
- AreaStayStats 新增 fullAreaName 字段
- BadgeRealtimeStatus 字段对齐后端:lastHeartbeatTime→onlineTime,移除 rssi
- 新增 TrajectorySummary、HourlyTrend、AreaStayStats 统计接口及类型

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-05 15:25:31 +08:00
lzh
16434a0d88 feat(@vben/web-antd): 新增工牌出入轨迹页面 2026-03-31 22:54:45 +08:00
lzh
69edf26550 style(@vben/web-antd): lint 自动格式化修正工单模块
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 16:54:07 +08:00
lzh
6ca2833df6 refactor(@vben/web-antd): 工单操作接口按业务线拆分(保洁/安保)
后端 OpsOrderController 移除了 assign/cancel/complete/create 通用接口,
改由 CleanWorkOrderController 和 SecurityOrderController 各自提供 manual-* 系列接口。

- 新增 api/ops/security/index.ts 安保工单操作 API
- cleaning/index.ts 新增 manualCreate/Dispatch/Cancel/UpgradePriority
- order-center/index.ts 移除 assignOrder/cancelOrder
- 表单组件按工单类型路由到对应 API
- cancel-form/upgrade-priority-form 支持 orderType 区分调用路径

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 16:45:11 +08:00
lzh
506625164c feat(@vben/web-antd): 安保工单详情左图右表布局改造及工单模块代码质量优化
- 安保详情事件信息改为左图右表布局,新增摄像头名称和处理人手机号字段
- 工单卡片展示处理人手机号,时间字段类型兼容时间戳和格式化字符串
- 工单详情页安保扩展区位置下移,安保工单隐藏重复的执行人行
- 登录后默认设置访问租户为登录租户
- 修复 scoped 暗色模式选择器不生效问题,移除 as any 类型断言

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 15:43:24 +08:00
lzh
e361b2f002 style(@vben/web-antd): lint 自动格式化修正巡检及区域模块
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 14:56:54 +08:00
lzh
be40db2a9c feat(@vben/web-antd): 新增巡检记录模块及路由配置
- 新增巡检记录 API(分页查询、详情、统计)
- 卡片式列表展示巡检记录,支持按状态 Tab 筛选
- 统计栏展示合格率/总数/合格数/不合格数
- 详情抽屉展示巡检明细项、照片、归因结果
- 注册巡检记录和巡检模板路由

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 14:55:45 +08:00
lzh
9ee16e2db3 feat(@vben/web-antd): 新增巡检模板管理模块
- 新增巡检检查项模板 API(CRUD + 批量排序)
- 左侧功能类型分类面板 + 右侧检查项表格
- 支持拖拽排序检查项顺序
- 支持启用/停用状态切换(带确认弹窗)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 14:55:15 +08:00
lzh
b9f45c8fdc feat(@vben/web-antd): 新增区域安保配置模块
- 新增区域安保 API 接口定义
- 新增区域安保配置页面,支持区域视图和人员视图
- 包含人员绑定弹窗和人员卡片组件

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 16:54:38 +08:00
lzh
7156e1dd1e feat(@vben/web-antd): 工单中心 API 类型增强及新增区域安保路由
- OrderItem 新增 responseSeconds、completionSeconds、inspectorName、qualityScore 等字段
- CleaningExtInfo.isAuto 类型由 number 改为 boolean,新增 images 字段
- 新增区域安保配置路由 OpsAreaSecurity

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 16:49:39 +08:00
lzh
805b0bfcf7 feat(@vben/web-antd): 新增安保工单扩展信息类型和触发来源枚举
添加 SecurityExtInfo 接口支持安保工单扩展字段,扩展 TriggerSource 枚举
增加视频告警、门禁告警、巡更告警、紧急按钮等触发来源类型。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 11:13:14 +08:00
lzh
6de80f2f93 fix(ops): 修复工牌队列统计字段名与后端不匹配
后端 BadgeQueueStats 返回的字段为 queueData,前端误用 queueCounts,
导致工牌队列统计图表数据为 undefined 无法渲染。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 15:55:34 +08:00
lzh
81da329cbd fix(ops): 修复仪表盘图表不显示 — funnelData 字段名与后端 statusDistribution 不匹配
后端 API 返回的字段名为 statusDistribution,但前端类型定义和数据映射使用的是 funnelData,
导致工单状态分布、工牌队列统计、功能类型排行图表数据为 undefined 无法渲染。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 15:46:39 +08:00
lzh
482d892b24 feat(ops): 优化仪表盘图表与客流统计交互
- 工单仪表盘:趋势图改为当月vs上月对比,漏斗图改为状态分布环形饼图,新增工牌队列统计图表,移除无用的 hourly/heatmap 死代码
- 客流统计:小时趋势和趋势图支持日期选择器,移除昨日对比线,API 支持日期参数
- 工作台:紧急任务过滤已取消和已完成状态,在岗人员仅显示在岗数

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 00:05:12 +08:00
lzh
9bf042f817 feat(project): 新增客流统计独立页面
- 新建 /ops/traffic 路由和客流统计页面
- 新建客流 API 模块(全局/设备/区域维度的实时和趋势接口)
- 新建 AreaTree 组件(区域树选择、搜索过滤保留祖先节点、递归获取子孙ID)
- 支持全局总览和按区域查看客流数据
- 今日/昨日小时客流趋势对比曲线图、近7天客流趋势折线图
- 核心指标卡片 + 客流态势分析面板
- 更新旧 API 路径适配新后端接口

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 16:52:37 +08:00
lzh
e111d5cc4e fix: 工作台、工单统计看板接口对接 2026-02-10 23:21:49 +08:00
lzh
71fc0d0fad refactor: 工作台、工单统计看板接口对接 2026-02-10 18:13:16 +08:00
lzh
b62d86f415 feat: 新增OPS模块API接口定义
- 新增区域管理API(Area):区域树、区域设备关联
- 新增保洁管理API(Cleaning):工牌状态、工单时间轴、设备通知
- 新增工单中心API(OrderCenter):工单查询、统计、操作接口

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-03 18:06:10 +08:00
lzh
9a9263f7a1 feat: ops接口ts文件 2026-02-03 15:37:52 +08:00
lzh
712cbd5aaf feat(ops): add cleaning work order management module 2026-01-25 22:33:34 +08:00
lzh
647dd1ac7e Merge branch 'master' of https://gitee.com/yudaocode/yudao-ui-admin-vben into cleaning 2025-12-31 10:50:50 +08:00
lzh
7df833446d fix: 产品、设备功能配置bug修复 2025-12-26 15:03:40 +08:00
dylanmay
6c5a65a6bd Merge branch 'dev' of https://gitee.com/yudaocode/yudao-ui-admin-vben into dev 2025-11-27 12:17:53 +08:00
dylanmay
5374e64bcb fix: resolve todo 2025-11-27 09:55:24 +08:00
YunaiV
672a6c9ccc feat:【antd】【mp】模版消息的新增 2025-11-26 19:05:08 +08:00
puhui999
0ae62ef7e7 feat:【antd】【mall】spu 优化 2025-11-24 12:00:50 +08:00
YunaiV
5622b810e4 feat:【antd/ele】【mp】图文草稿箱的 review 2025-11-23 20:52:13 +08:00
YunaiV
80b4a16dc4 review:【antd】【iot】数据流转 2025-11-21 11:35:39 +08:00
YunaiV
543e48504b review:【antd】【iot】设备管理(暂未彻底 review,等 product 搞完) 2025-11-21 10:53:54 +08:00
YunaiV
863fbf7456 review:【antd】【iot】设备分组 2025-11-21 09:34:28 +08:00
YunaiV
0251dc2f3b review:【antd】【iot】商品分类 2025-11-21 09:23:55 +08:00
YunaiV
c38d746c25 review:【antd】【iot】首页统计 2025-11-21 09:17:19 +08:00
芋道源码
23b87b13c4 !260 refactor:【antd】【iot】优化设备详情中的自动刷新开关样式
Merge pull request !260 from haohaoMT/dev
2025-11-20 13:54:57 +00:00
hw
05bf8092d0 Merge branch 'dev' of https://gitee.com/yudaocode/yudao-ui-admin-vben into reform-mp 2025-11-20 16:31:23 +08:00
YunaiV
cf581f3bb3 feat:【antd/ele】【mall/stat】优化 api 的注释 2025-11-20 11:05:51 +08:00
YunaiV
f278ebaf79 feat:【antd/ele】【mall/stat】优化 api 的注释 2025-11-20 11:00:24 +08:00
YunaiV
937aac5b01 feat:【antd/ele】【mall/trade】优化 api 的注释 2025-11-20 10:50:17 +08:00
hw
cf14806b6f fix: todo修复 2025-11-20 10:34:21 +08:00
YunaiV
2e4d79c99d feat:【antd/ele】【mall/product】优化 api 的注释 2025-11-20 09:16:08 +08:00
YunaiV
19c45368db feat:【antd/ele】【mall/promotion】优化 api 的注释 2025-11-20 09:09:46 +08:00
YunaiV
4d6eeb2681 feat:【antd/ele】【pay】优化 api 的注释 2025-11-20 08:43:34 +08:00
YunaiV
55cd88080c feat:【antd】【mp】优化 api 的注释 2025-11-19 22:18:02 +08:00
YunaiV
25cd2b629c feat:【antd】【mp】review 枚举类相关的代码 2025-11-19 21:05:32 +08:00