Commit Graph

3877 Commits

Author SHA1 Message Date
lzh
b651e9ae25 chore: build and deploy web-antd
All checks were successful
Web UI CI/CD / build-and-deploy (push) Successful in 8s
2026-04-07 13:03:22 +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
cc98ba4d0b feat(@vben/web-antd): 重构轨迹页面子组件
trajectory-gantt-area:
- 数字孪生甘特图,纵轴加载完整区域树,仅显示有数据区域
- 区域树缓存提取到 area-tree-cache.ts,单例 Promise 防并发重复请求
- 支持时段预设(自适应/全天/上午/下午/工作时段)和 1x-16x 缩放
- tooltip 类型安全:record 改为 null | TrajectoryRecord

badge-status-card:
- 新增实时轨迹时间线(最近15条,倒序展示)
- 排序改用 toSorted + dayjs valueOf

area-stay-chart:
- 显示 fullAreaName 全路径,标签内置于条形,统一高度 260px

trend-chart:
- 进入改蓝色,离开改橙色
- 修复 height 缺少 px 单位导致图表不渲染

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-05 15:37:59 +08:00
lzh
3a14de4d1c feat(@vben/web-antd): 重构工牌轨迹页面核心逻辑
- 接口调用:timeline/summary/hourly-trend/area-stay-stats 并行请求
- 轨迹加载:选中设备用 timeline 接口,deviceId 为空时不传参
- 时间规范化:支持毫秒时间戳/数组/字符串三种后端格式
- 轮询策略:今日每5分钟刷新,实时状态每10秒,历史日期不轮询
- badge 搜索加 300ms 防抖
- onMounted 并行加载工牌列表、数据和区域树
- 移除 useTrajectoryColumns 死代码
- 哈希函数改用 Math.trunc + codePointAt,移除非空断言

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-05 15:30:37 +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
c16d049c38 chore: build and deploy web-antd
All checks were successful
Web UI CI/CD / build-and-deploy (push) Successful in 8s
2026-03-31 23:16:25 +08:00
lzh
af034080ba feat(@vben/web-antd): 区域树默认展开园区和楼栋节点 2026-03-31 22:55:55 +08:00
lzh
f5f488080c fix(@vben/web-antd): 修正工单详情步骤展示与状态分布配色 2026-03-31 22:55:34 +08:00
lzh
16434a0d88 feat(@vben/web-antd): 新增工牌出入轨迹页面 2026-03-31 22:54:45 +08:00
lzh
91cd7adc39 chore: build and deploy web-antd
All checks were successful
Web UI CI/CD / build-and-deploy (push) Successful in 9s
2026-03-27 16:58:19 +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
cc2d7a0a04 feat(@vben/web-antd): 手动创建工单分步弹窗 + code review 修复
新增手动创建工单功能,分3步:选类型→选区域(TreeSelect全路径)→填表单。
优先级使用字典值,按工单类型动态显示保洁/安保专属字段。

- 新增 create-order-form.vue 分步创建弹窗组件
- work-order/index.vue 挂载弹窗替换占位
- card-view.vue 补充 OpsOrderCenterApi 类型导入
- 还原 auth.ts 误删的 visitTenantId 逻辑

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 16:52:15 +08:00
lzh
84cb4930fd refactor(@vben/web-antd): 删除保洁工单中心,统一使用通用工单中心
保洁工单中心与通用工单中心功能重叠,统一入口避免歧义。

- 删除 views/ops/cleaning/work-order 整个目录
- 迁移 cleaning-actions/detail-ext/work-progress 组件到 work-order/components/
- 迁移 CLEANING_TYPE_OPTIONS/TEXT_MAP 到 work-order/data.ts
- 删除路由中保洁工单详情和看板两条路由
- 更新详情页组件引用路径

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 16:48:13 +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
c6e51a215f chore: build and deploy web-antd
All checks were successful
Web UI CI/CD / build-and-deploy (push) Successful in 10s
2026-03-25 16:05:53 +08:00
lzh
0dbdba336f style(@vben/web-antd): lint 自动格式化修正工单模块
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 15:45:07 +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
de95c707a0 style(@vben/web-antd): lint 自动格式化修正工单模块
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 11:37:48 +08:00
lzh
9d2e7d9e13 style(@vben/web-antd): P0 紧急工单卡片改为右上角渐变光晕标识
- 移除左侧红色竖条(border-left),改为右上角径向渐变
- 渐变色与 P0 标签色系协调(#C01D1D 14% 不透明度)
- 暗色模式适配渐变加深至 18%
- 移除 overflow:hidden 避免裁切子元素阴影
- 状态标签改为 span + inline style 双色渲染
- 同步更新 cleaning/work-order 卡片视图

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 11:36:56 +08:00
lzh
0772a12074 feat(@vben/web-antd): 工单详情取消状态进度条改造及代码质量优化
- 取消状态下进度条展示 timeline 实际节点,末尾追加"已取消"终态
- 已走过节点灰色实心,取消终态节点深灰,进度线灰色
- 移除底部红色 cancelled-banner,改为进度条内联展示
- 进行中节点蓝色标签改为显示到达时间
- 提取 isCurrentActive / getStepTime 简化模板逻辑
- timeline 去重防御异常数据,取消终态改用索引判断
- 移除 progress-steps-wrapper 的 overflow:hidden 避免裁切光晕
- 清理无引用的 cancelled-banner CSS

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 11:36:19 +08:00
lzh
d0395ba40a style(@vben/web-antd): 统一工单中心配色方案为柔和浅底双色风格
- STATUS_COLOR_MAP / ORDER_TYPE_COLOR_MAP 由单色改为 { bg, text } 双色结构
- 新增 FACILITIES / SERVICE 工单类型配色
- 优先级配色改为按数值直接映射(P0~P3),不再依赖字典 colorType
- Tag 组件替换为 span + inline style,精确控制背景色与文字色
- 仪表板饼图 STATUS_COLORS 同步更新
- 同步更新 cleaning/work-order 模块保持一致

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-25 11:35:37 +08:00
lzh
7d22e4b395 fix: 修改文件上传大小限制20M
All checks were successful
Web UI CI/CD / build-and-deploy (push) Successful in 10s
2026-03-24 18:59:41 +08:00
lzh
c700ab38f4 chore: build and deploy web-antd
All checks were successful
Web UI CI/CD / build-and-deploy (push) Successful in 9s
2026-03-24 09:48:00 +08:00
lzh
0d505737b9 style(@vben/web-antd): lint 自动格式化修正 login.vue
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 09:45:59 +08:00
lzh
9c822ba9d9 fix(@vben/web-antd): 企微扫码登录前校验租户是否已选择
多租户模式下,未选择租户时点击企微扫码登录会触发
租户字段校验提示,避免无租户请求导致后端报错。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 09:44:21 +08:00
lzh
2c678c3a82 fix(@vben/web-antd): 优化企业微信扫码登录体验
自动社交登录时显示 loading 状态,跳过租户列表加载,
避免闪烁显示登录表单和租户错误信息。
租户 ID 已持久化在 store 中,无需重新获取。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 09:38:05 +08:00
lzh
f77a8c3e4c chore: build and deploy web-antd
All checks were successful
Web UI CI/CD / build-and-deploy (push) Successful in 8s
2026-03-24 09:30:39 +08:00
lzh
7aff45ddf5 fix(@vben/web-antd): 企业微信扫码登录适配 hash 路由模式
hash 路由下 OAuth 回调 code/state 在 URL query 中,Vue Router
读不到。登录流程同绑定流程一样通过 sessionStorage 中转参数,
路由守卫检测后重定向到 social-login 页面完成登录。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 09:19:18 +08:00
lzh
bfa2752ca1 chore: build and deploy web-antd
All checks were successful
Web UI CI/CD / build-and-deploy (push) Successful in 8s
2026-03-24 09:13:13 +08:00
lzh
10bd00e009 feat(@vben/web-antd): 企业微信扫码登录及绑定(适配 hash 路由)
- 登录页新增企业微信扫码登录入口(TDesign 官方图标)
- 个人中心开放企业微信绑定/解绑功能
- 适配 hash 路由模式:OAuth 回调 code 在 URL query 中,
  通过路由守卫转存 sessionStorage 并重定向到个人中心处理绑定

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-24 09:09:12 +08:00
lzh
b7a56f3743 revert(@vben/web-antd): 回退企业微信绑定相关改动,重新分析
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 17:49:12 +08:00
lzh
10951e5e87 chore: build and deploy web-antd
All checks were successful
Web UI CI/CD / build-and-deploy (push) Successful in 9s
2026-03-23 17:45:01 +08:00
lzh
8fa488feb7 style(@vben/web-antd): lint 自动格式化修正 user-social
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 17:42:49 +08:00
lzh
e18b6633a1 fix(@vben/web-antd): 重构企业微信绑定回调走核心路由
绑定回调从 /profile(动态路由)改为 /auth/social-login(核心路由),
解决页面刷新时动态路由未注册导致回调参数丢失的问题。
social-login.vue 通过 sessionStorage 区分绑定和登录操作,
绑定完成后自动跳转回个人中心。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 17:42:24 +08:00
lzh
24c3dbc8f1 chore: build and deploy web-antd
All checks were successful
Web UI CI/CD / build-and-deploy (push) Successful in 8s
2026-03-23 17:20:54 +08:00
lzh
91eec65734 fix(@vben/web-antd): 修复企业微信绑定回调 type 参数丢失问题
redirect_uri 中的查询参数会被企业微信 OAuth 截断,
改用 sessionStorage 暂存社交平台类型,同时增加绑定
错误处理和类型匹配的健壮性。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 17:19:03 +08:00
lzh
429e52007f chore: build and deploy web-antd
All checks were successful
Web UI CI/CD / build-and-deploy (push) Successful in 9s
2026-03-23 17:03:17 +08:00
lzh
47e35aa8cd style(@vben/web-antd): lint 自动格式化修正企业微信登录相关代码
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 16:59:50 +08:00
lzh
15b091dce2 feat(@vben/web-antd): 启用企业微信扫码登录及社交绑定
登录页新增企业微信扫码登录入口,使用 TDesign 官方企微图标;
个人中心社交账号页面开放企业微信绑定/解绑功能。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-23 16:50:38 +08:00
lzh
bdb873f06c chore: build and deploy web-antd
All checks were successful
Web UI CI/CD / build-and-deploy (push) Successful in 8s
2026-03-23 10:22:53 +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
ae55ab4800 chore(@vben/web-antd): 新增 qrcode、jszip 依赖并统一 catalog 管理
- 新增 qrcode、@types/qrcode 依赖(用于区域二维码功能)
- 新增 jszip 依赖(用于批量导出二维码 ZIP)
- jszip 版本统一纳入 pnpm-workspace catalog 管理

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 14:56:15 +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
7f34094642 feat(@vben/web-antd): 区域管理新增二维码功能及 UI 增强
- 新增单个区域二维码查看弹窗(qrcode-modal.vue),支持下载 PNG
- 新增批量导出二维码 ZIP 功能,自动构建区域全路径名称
- 列表 UI 增强:区域类型/功能类型/等级改用彩色 Tag,状态改用 Switch 开关
- 点击行任意非操作列可展开/收起树节点
- 递归构建全路径名称时增加循环引用保护
- 移除设备绑定入口,替换为二维码操作

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 14:54:44 +08:00
lzh
f98b4fa797 refactor(@vben/web-antd): 精简区域管理数据层,移除废弃设备绑定组件
- data.ts: 新增区域类型/功能类型/区域等级 Tag 颜色映射,列定义改用 slots 渲染
- data.ts: 移除未使用的绑定设备表单 schema 和设备关联列定义
- form.vue: 调整保存成功后的执行顺序(先提示 → 触发刷新 → 关闭弹窗)
- 删除废弃文件: index-enhanced.vue, device-bind-drawer.vue, device-bind-drawer-enhanced.vue

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-22 14:52:23 +08:00
lzh
35c3d0e06e chore: build and deploy web-antd
All checks were successful
Web UI CI/CD / build-and-deploy (push) Successful in 8s
2026-03-18 16:18:59 +08:00
lzh
60f4912401 style(@vben/web-antd): lint 自动格式化修正
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 15:22:29 +08:00
lzh
bdb06e761a refactor(@vben/web-antd): 重写升级优先级和取消工单弹窗,统一布局风格
- 移除 useVbenForm 避免弹窗内布局冲突,改用原生 Input.TextArea
- 统一为图标+标签+值的信息行布局,与安保派单弹窗风格一致
- 提交时增加 confirmLoading 状态反馈及 maxLength 保护校验
- 支持暗色模式样式适配

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 15:21:58 +08:00
lzh
ed50dc3f7e feat(@vben/web-antd): 安保工单告警图片优化及专用派单表单
- 告警图片改为缩略图展示(200x150),添加圆角和悬停放大效果
- 新增安保专用派单表单,基于分页用户列表选择执行人
- 工单中心列表页和详情页均根据工单类型路由到对应派单表单
- 搜索防抖300ms,组件卸载时清理定时器防止内存泄漏

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 15:21:29 +08:00