Compare commits

133 Commits

Author SHA1 Message Date
lzh
2d89503192 chore: build and deploy web-antd
All checks were successful
Web UI CI/CD / build-and-deploy (push) Successful in 7s
2026-04-07 23:09:46 +08:00
lzh
26aad7b5f4 fix(@vben/web-antd): 工单日志时间改为显示精确时间 2026-04-07 22:13:15 +08:00
lzh
60e00ae3d7 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:10:14 +08:00
lzh
93498273eb fix(@vben/web-antd): 修复甘特图组件 props 丢失导致运行时崩溃
linter 在 pre-commit 过程中移除了 defineProps/defineEmits,
导致 props 变量未定义,computed 计算 autoRange 等时抛出
ReferenceError: props is not defined

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 13:06:18 +08:00
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
lzh
5e053c6366 fix(@vben/web-antd): 移除文件配置自定义域名的必填校验
自定义域名为可选项,移除多余的 required 规则。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 15:21:10 +08:00
lzh
bea5a82825 feat(@vben/web-antd): 重构个人中心用户资料与社交绑定页面
- 用户资料页改为卡片式布局,头像居中展示角色标签
- 社交绑定页替换表格为卡片列表,支持已绑定详情展开
- 新增微信小程序社交类型枚举,小程序端绑定入口置灰提示
- 头像上传兼容 server/client 两种模式的返回值
- 社交绑定列表增加类型安全(SocialBindItem interface)
- 隐藏暂不支持的钉钉和企业微信绑定入口

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 15:19:56 +08:00
lzh
666f25404d chore(@vben/web-antd): 切换文件上传类型为前端直连并修复生产环境注释编码
将 VITE_UPLOAD_TYPE 从 server 改为 client(前端直连S3上传),
修复 .env.production 中因编码损坏导致的中文注释乱码。

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-18 15:19:29 +08:00
lzh
e7f14bd4e8 chore: build and deploy web-antd
All checks were successful
Web UI CI/CD / build-and-deploy (push) Successful in 37s
2026-03-15 17:05:46 +08:00
lzh
17042bd7c7 style(@vben/web-antd): lint 自动格式化修正区域安保模块
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 16:58:26 +08:00
lzh
287cb818b3 feat(@vben/web-antd): 新增保洁作业进度组件
展示保洁工单的实时作业进度,包含圆环进度图和关键指标网格。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 16:57:51 +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
b1db581d36 style(@vben/web-antd): lint 自动格式化修正
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 16:52:22 +08:00
lzh
813e84cff1 style(@vben/web-antd): 保洁/安保工单详情组件重构及样式优化
- cleaning-detail-ext: 精简为 Descriptions 表格展示,移除冗余的工牌状态面板和作业进度
- cleaning-actions: 按钮改为 size=small 行内样式,移除 block 布局
- security-detail-ext: 事件信息改为 Descriptions 表格,统一告警截图展示
- AreaTree: 支持 title 插槽透传
- 保洁工单列表移除 PAUSED Tab

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 16:51:42 +08:00
lzh
5fa437d9d0 feat(@vben/web-antd): 工单中心页面返回时自动刷新列表数据
- 新增 onActivated 钩子,页面从详情返回时自动刷新工单列表和统计栏
- 使用 isFirstActivate 标记避免首次挂载时与 onMounted 重复请求
- 移除 PAUSED 状态的 Tab 计数

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 16:51:12 +08:00
lzh
0d32c21e93 refactor(@vben/web-antd): 提取 usePriorityInfo 公共 composable,消除重复代码
- 将 4 处重复的 getPriorityInfo 函数提取至 work-order/data.ts 中的 usePriorityInfo composable
- 工单中心和保洁模块的 detail/card-view 统一使用公共 composable
- 移除两个 data.ts 中已无引用的 PRIORITY_STYLE_MAP 常量
- 清理不再需要的 DICT_TYPE、useDictStore 导入
- 工单中心 card-view 移除自身 onMounted 加载,改由父组件统一控制

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-15 16:50:41 +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
1ffab67986 style(@vben/web-antd): lint 自动格式化修正
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 11:20:15 +08:00
lzh
3801a06e98 feat(@vben/web-antd): 新增安保工单模块,重点展示工单描述和处理结果
新增安保工单详情扩展组件和配置文件,详情页以独立卡片形式突出展示
工单描述、告警截图(支持点击预览)、处理结果描述和处理图片。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 11:18:47 +08:00
lzh
ab0c7c53b0 feat(@vben/web-antd): 新增工单中心取消表单组件
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 11:18:08 +08:00
lzh
08e79ec20a feat(@vben/web-antd): 新增通用工单中心模块,支持多类型工单管理
添加工单中心路由(详情页和统计看板),工单列表、详情、看板等页面
支持保洁、安保、维修等多类型工单的统一管理。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 11:17:41 +08:00
lzh
d9a192bd07 feat(@vben/web-antd): 保洁工单模块增强,拆分组件并新增区域筛选
拆分保洁工单操作和详情扩展为独立组件,新增 config.ts 配置文件;
列表页增加区域筛选功能,详情页优化进度条和日志展示样式。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 11:15:07 +08:00
lzh
bf13067812 feat(@vben/web-antd): AreaTree 组件增强支持多选模式并新增 AreaFilterDrawer
AreaTree 新增 checkable、checkedKeys、selectedKeys 属性支持复选框多选,
暴露 getAreaName 方法;新增 AreaFilterDrawer 区域筛选抽屉组件。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 11:14:40 +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
19d36d1ffb chore: build and deploy web-antd
All checks were successful
Web UI CI/CD / build-and-deploy (push) Successful in 8s
2026-03-09 13:05:46 +08:00
lzh
f4c6c4437c style(@vben/web-antd): 优化保洁工单看板图表样式和命名
- 热力图:改用对数变换+RGB线性插值,0单与有单颜色自适应平滑过渡
- 工单趋势:双线改为蓝色系同色深浅,当月深蓝实线+上月浅蓝虚线
- 工牌队列统计改名为工单排队趋势(近7天)
- 功能类型排行改名为区域类型排行,按工单数从高到低排序
- 第四行卡片统一使用chart-card样式,补充右上角Tooltip说明

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 12:59:35 +08:00
lzh
2a18c8ce04 fix(@vben/web-antd): 修复设备详情客流数据不显示的问题
使用 watch 监听 trafficData 变化后再渲染 ECharts 图表,
解决 v-if 切换 DOM 后 chartRef 未就绪导致图表不渲染的时序问题。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 12:16:48 +08:00
lzh
2deb263bf9 chore: build and deploy web-antd
All checks were successful
Web UI CI/CD / build-and-deploy (push) Successful in 8s
2026-03-08 00:18:15 +08:00
lzh
975bf975b9 feat(@vben/web-antd): 新增区域设备可视化管理页面
左侧区域树 + 右侧设备卡片网格布局,点击卡片打开详情 Drawer,
支持设备基础信息查看、类型化实时数据展示(客流趋势/工牌状态)、
业务配置编辑及设备绑定/解绑操作。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 00:14:04 +08:00
lzh
f6f495fd25 chore: build and deploy web-antd
All checks were successful
Web UI CI/CD / build-and-deploy (push) Successful in 8s
2026-03-01 16:45:01 +08:00
lzh
8d365e8d23 fix(ops): 小时趋势日期仅刷新趋势图不影响统计指标,趋势范围限制30天
- 拆分 loadHourlyData:hourlyDate 变化时只更新 hourlyTrend 数据,
  不覆盖 totalIn/totalOut 等统计指标
- loadGlobalData/loadAreaData:不再传 hourlyDate 给 realtime 接口,
  统计指标始终显示今日数据
- disabledTrendDate:增加最早30天前的限制

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 16:39:18 +08:00
lzh
58b54a60bf style(ops): 上月趋势线改回虚线并降低透明度
线条、圆点、面积填充整体降低 opacity,作为当月数据的淡色参考线。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 16:34:29 +08:00
lzh
97781dbbb8 style(ops): 上月趋势线改实线,热力图增加颜色细分层级
- 工单趋势图:上月新增线条去掉虚线(dashed),改为实线
- 时段热力图:颜色从6级扩展到9级(#f0f5ff→#061178),splitNumber 5→8,低值与高值区分更明显

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 16:32:10 +08:00
lzh
67bfc39756 style(ops): 还原饼图右侧图例,饼图回到左侧布局
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 16:30:33 +08:00
lzh
c8b191a9d2 fix(ops): 移除饼图 hover 时的 emphasis label 横线标签
保留 tooltip 悬浮卡片,仅去掉 hover 饼块时弹出的文字标签。

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 16:29:37 +08:00
lzh
562f0a1753 style(ops): 饼图去掉图例仅保留悬浮卡片,柱状图紫色改为蓝色
- 状态分布饼图:移除右侧 legend 图例,饼图居中显示,仅通过 hover tooltip 查看详情
- 工牌队列柱状图:紫色系(#722ed1)改为蓝色系(#1677ff),与整体设计风格统一

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 16:28:16 +08:00
lzh
0c5ac04069 style(ops): 优化工单状态分布和工牌队列统计图表样式
状态分布饼图:
- 使用 Ant Design 色板统一配色
- legend 显示数量和百分比(rich text)
- 中心数字加大加粗,饼块增大圆角
- emphasis 放大效果增强

工牌队列柱状图:
- 最大值柱子高亮深色,其余渐变浅色
- 柱顶显示数值标签
- tooltip 改为卡片式样式
- hover 加深色强调效果,圆角加大

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 16:18:44 +08:00
lzh
919dcfb420 refactor(ops): 统计面板变量重命名与 EMPTY_STATS 补全
- hourlyChartRef → heatmapChartRef(实际用于热力图渲染)
- funnelChartRef → statusChartRef(漏斗图已改为状态分布饼图)
- getFunnelChartOptions → getStatusDistributionChartOptions
- EMPTY_STATS 补全 monthlyTrendData 和 badgeQueueStats 字段

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 16:09:12 +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
004897414a chore: build and deploy web-antd
All checks were successful
Web UI CI/CD / build-and-deploy (push) Successful in 9s
2026-03-01 13:54:19 +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
bac318aa46 chore: build and deploy web-antd
All checks were successful
Web UI CI/CD / build-and-deploy (push) Successful in 8s
2026-02-26 19:33:26 +08:00
lzh
82a3590107 style(dashboard): 修复 workspace 模板格式化
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 19:28:54 +08:00
lzh
b0e233cd95 refactor(ops): 代码格式化与 lint 修复
清理未使用的导入、修复格式化问题、优化 requiredSteps 为 Set 提升查找性能

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 19:28:04 +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
f1284142ac fix(ops): 修复 setInterval 在 keepAlive 下未清除导致内存泄漏
页面使用 keepAlive 缓存后 onUnmounted 不触发,setInterval 持续运行,
长时间放置导致 OOM 崩溃。统一使用 onActivated/onDeactivated 管理轮询生命周期。

涉及页面:工单统计栏、工单看板、工单详情、客流统计、工作台、全局布局通知轮询

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-26 13:24:51 +08:00
lzh
cd38d89fe5 chore: build and deploy web-antd
All checks were successful
Web UI CI/CD / build-and-deploy (push) Successful in 40s
2026-02-24 15:02:09 +08:00
lzh
9c6080e082 fix(project): fix json editor misalignment when opening modal with large data 2026-02-24 14:08:24 +08:00
lzh
735d553856 chore: switch CI runner to ui-runner for new Gitea instance
All checks were successful
Web UI CI/CD / build-and-deploy (push) Successful in 27s
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-14 12:23:41 +08:00
lzh
dbe240320c chore: build and deploy web-antd
All checks were successful
Web UI CI/CD / build-and-deploy (push) Successful in 16s
2026-02-11 16:00:36 +08:00
lzh
cd4788a0e5 Merge branch 'master' of http://124.221.55.225:3000/XW-AIOT/aiot-platform-ui 2026-02-11 15:56:27 +08:00
lzh
4c2874bfd0 fix: 工作台 待办事项卡片 2026-02-11 15:56:18 +08:00
lzh
602c0b1872 chore: build and deploy web-antd
All checks were successful
Web UI CI/CD / build-and-deploy (push) Successful in 8s
2026-02-10 23:32:58 +08:00
lzh
79d886f91b Merge branch 'master' of http://124.221.55.225:3000/XW-AIOT/aiot-platform-ui
All checks were successful
Web UI CI/CD / build-and-deploy (push) Successful in 43s
2026-02-10 23:32:04 +08:00
lzh
25a792c40f chore: build ande deploy web-antd 2026-02-10 23:31:57 +08:00
lzh
30139ef87e Merge branch 'master' of http://124.221.55.225:3000/XW-AIOT/aiot-platform-ui 2026-02-10 23:21:54 +08:00
lzh
e111d5cc4e fix: 工作台、工单统计看板接口对接 2026-02-10 23:21:49 +08:00
lzh
1e62ea46ad Merge branch 'master' of http://124.221.55.225:3000/XW-AIOT/aiot-platform-ui 2026-02-10 18:13:21 +08:00
lzh
71fc0d0fad refactor: 工作台、工单统计看板接口对接 2026-02-10 18:13:16 +08:00
lzh
7fc6bdda98 chore: build and deploy web-antd
All checks were successful
Web UI CI/CD / build-and-deploy (push) Successful in 8s
2026-02-04 11:14:06 +08:00
lzh
d4118123c1 fix(@vben/web-antd): 优化工单详情页面显示和交互逻辑
- 已完成状态的进度节点显示为绿色,移除"进行中"徽章
- 已完成状态显示作业进度信息
- 超时时进度圆环和100%文字显示红色
- 改用语音提醒替代震动提醒,调用IoT设备消息接口
- 已完成状态隐藏快捷操作卡片
- 基础信息新增到岗时间、完成时间、更新时间、作业类型字段
- 修复已完成节点图标和文字颜色显示
- 优化进度条颜色计算逻辑,根据实际时长计算进度
- 调整"进行中"徽章字体样式
- 删除重复的CSS选择器

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04 10:42:34 +08:00
lzh
220689d3f9 chore: build and deploy web-antd
All checks were successful
Web UI CI/CD / build-and-deploy (push) Successful in 36s
2026-02-04 09:17:41 +08:00
lzh
7acfbfb433 refactor(ops): 工单详情调整 2026-02-04 00:45:12 +08:00
lzh
ce3e57e398 feat(@vben/web-antd): 新增区域管理模块视图
- 新建区域管理页面目录结构
- 支持区域层级管理(建筑/楼层/功能区)
- 设备绑定抽屉:支持区域内IoT设备管理
- 区域表单:基础版本和增强版本
- 设备配置模态框和选择模态框
- 修复ESLint警告:使用严格相等运算符

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-03 22:43:25 +08:00
lzh
38a6eaa39e feat(@vben/web-antd): 完善保洁工单管理模块功能
- 工单看板:优化数据展示和交互逻辑
- 工单列表:增强筛选和分页功能
- 分配表单:改进表单验证和用户体验
- 卡片视图:优化布局和视觉效果
- 数据配置:更新常量定义和类型

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-03 21:37:05 +08:00
lzh
8a048a423a style(@vben/web-antd): 修复工单统计栏样式格式
- 修复 stats-bar 中 style 属性的换行格式问题
- 统一代码风格,符合 Prettier 格式要求

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-03 21:14:34 +08:00
lzh
b676e7648e fix(@vben/web-antd): 优化工单详情页面代码质量
- 移��调试用的 console.log 语句
- 修复 ESLint 警告:使用严格相等运算符 (===)
- 优化代码结构,提升可维护性

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-03 21:00:02 +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
feb196ead8 feat: ops字典添加 2026-02-03 15:35:03 +08:00
lzh
afa6949ff1 chore: build and deploy web-antd
All checks were successful
Web UI CI/CD / build-and-deploy (push) Successful in 8s
2026-01-26 16:16:37 +08:00
lzh
90b9e934e2 fix: 修改deviceName输入校验 2026-01-26 16:15:04 +08:00
lzh
57f9112f7f chore: build and deploy web-antd
All checks were successful
Web UI CI/CD / build-and-deploy (push) Successful in 14s
2026-01-26 16:11:17 +08:00
lzh
9f44fbfe75 fix(iot): adjust device identifier and name validation rules 2026-01-26 16:09:43 +08:00
lzh
0e7988bba5 chore: build and deploy web-antd
All checks were successful
Web UI CI/CD / build-and-deploy (push) Successful in 24s
2026-01-25 22:37:53 +08:00
lzh
7dac866616 fix: remove global card hover effect 2026-01-25 22:34:41 +08:00
lzh
712cbd5aaf feat(ops): add cleaning work order management module 2026-01-25 22:33:34 +08:00
lzh
dac4e33cc6 feat: add card hover effect and ECharts heatmap support 2026-01-25 22:25:49 +08:00
lzh
b7239c5b99 fix: 移除全局卡片浮动效果 2026-01-23 11:53:39 +08:00
lzh
67b3efffc1 feat: 忽略claude相关文件 2026-01-23 09:27:26 +08:00
lzh
cb81829d4c chore: build and deploy web-antd
All checks were successful
Web UI CI/CD / build-and-deploy (push) Successful in 24s
2026-01-14 14:15:09 +08:00
lzh
2378ea69cb feat: 开启验证码 2026-01-14 14:13:16 +08:00
lzh
8bf4ac8975 chore: build and deploy web-antd
All checks were successful
Web UI CI/CD / build-and-deploy (push) Successful in 1m2s
2026-01-14 14:09:12 +08:00
3422 changed files with 27111 additions and 5065 deletions

View File

@@ -14,7 +14,7 @@ on:
jobs:
build-and-deploy:
runs-on: xw-runner
runs-on: ui-runner
# 使用包含 Docker 客户端的镜像,这样我们可以在容器内构建镜像 (Docker-in-Docker 模式)
container:
image: catthehacker/ubuntu:act-latest

6
.gitignore vendored
View File

@@ -50,3 +50,9 @@ vite.config.ts.*
*.sw?
.history
.cursor
# uiux-pro generated files
design-system/
.agent/
.shared/
.claude/

View File

@@ -14,7 +14,7 @@ VITE_NITRO_MOCK=false
VITE_APP_TENANT_ENABLE=true
# 验证码的开关
VITE_APP_CAPTCHA_ENABLE=false
VITE_APP_CAPTCHA_ENABLE=true
# 文档地址的开关
VITE_APP_DOCALERT_ENABLE=false

View File

@@ -8,7 +8,7 @@ VITE_BASE_URL=http://127.0.0.1:48080
# 接口地址
VITE_GLOB_API_URL=/admin-api
# 文件上传类型server - 后端上传, client - 前端直连上传仅支持S3服务
VITE_UPLOAD_TYPE=server
VITE_UPLOAD_TYPE=client
# 是否打开 devtoolstrue 为打开false 为关闭
VITE_DEVTOOLS=false

View File

@@ -4,16 +4,17 @@ VITE_BASE=/
VITE_BASE_URL=/admin-api
# 接口地址
VITE_GLOB_API_URL=/admin-api
# 文件上传类型server - 后端上传<EFBFBD><EFBFBD>?client - 前端直连上传仅支持S3服务
VITE_UPLOAD_TYPE=server
# 文件上传类型server - 后端上传client - 前端直连上传仅支持S3服务
VITE_UPLOAD_TYPE=client
# 是否开启压缩,可以设置<EFBFBD><EFBFBD>?none, brotli, gzip
# 是否开启压缩,可以设置none, brotli, gzip
VITE_COMPRESS=none
# 是否开<EFBFBD><EFBFBD>?PWA
# 是否开PWA
VITE_PWA=false
# vue-router 的模<EFBFBD><EFBFBD>?VITE_ROUTER_HISTORY=hash
# vue-router 的模
VITE_ROUTER_HISTORY=hash
# 是否注入全局loading
VITE_INJECT_APP_LOADING=true

View File

@@ -0,0 +1 @@
.selected-hint[data-v-83468e94]{align-items:center;background:var(--ant-color-primary-bg);border:1px solid var(--ant-color-primary-border);border-radius:6px;color:var(--ant-color-primary);display:flex;gap:6px;margin-bottom:12px;padding:8px 12px}.hint-icon[data-v-83468e94]{flex-shrink:0;font-size:16px}.hint-text[data-v-83468e94]{font-size:13px;font-weight:500}.tree-container[data-v-83468e94]{flex:1;overflow-y:auto}.drawer-footer[data-v-83468e94]{display:flex;gap:8px;justify-content:flex-end}.btn-icon[data-v-83468e94]{margin-right:4px}html.dark .selected-hint[data-v-83468e94]{background:#1677ff1a;border-color:#1677ff4d}

View File

@@ -1 +0,0 @@
.button-setting-pane[data-v-53417e75]{display:flex;flex-direction:column;font-size:14px;margin-top:8px}.button-setting-pane .button-setting-desc[data-v-53417e75]{font-size:16px;font-weight:700;margin-bottom:16px;padding-right:8px}.button-setting-pane .button-setting-title[data-v-53417e75]{align-items:center;background-color:#f8fafc0a;border:1px solid rgba(31,56,88,.102);display:flex;height:45px;justify-content:space-between;padding-left:12px}.button-setting-pane .button-setting-title[data-v-53417e75]>:first-child{text-align:left!important;width:100px!important}.button-setting-pane .button-setting-title[data-v-53417e75]>:last-child{text-align:center!important}.button-setting-pane .button-setting-title .button-title-label[data-v-53417e75]{color:#000;font-size:13px;font-weight:700;text-align:left;width:150px}.button-setting-pane .button-setting-item[data-v-53417e75]{align-items:center;border:1px solid rgba(31,56,88,.102);border-top:0;display:flex;height:38px;justify-content:space-between;padding-left:12px}.button-setting-pane .button-setting-item[data-v-53417e75]>:first-child{width:100px!important}.button-setting-pane .button-setting-item[data-v-53417e75]>:last-child{text-align:center!important}.button-setting-pane .button-setting-item .button-setting-item-label[data-v-53417e75]{overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap;width:150px}.button-setting-pane .button-setting-item .editable-title-input[data-v-53417e75]{border:1px solid #d9d9d9;border-radius:4px;height:24px;line-height:24px;margin-left:4px;max-width:130px;transition:all .3s}.button-setting-pane .button-setting-item .editable-title-input[data-v-53417e75]:focus{border-color:#40a9ff;box-shadow:0 0 0 2px #1890ff33;outline:0}.field-setting-pane[data-v-53417e75]{display:flex;flex-direction:column;font-size:14px}.field-setting-pane .field-setting-desc[data-v-53417e75]{font-size:16px;font-weight:700;margin-bottom:16px;padding-right:8px}.field-setting-pane .field-permit-title[data-v-53417e75]{align-items:center;background-color:#f8fafc0a;border:1px solid rgba(31,56,88,.102);display:flex;height:45px;justify-content:space-between;line-height:45px;padding-left:12px}.field-setting-pane .field-permit-title .first-title[data-v-53417e75]{text-align:left!important}.field-setting-pane .field-permit-title .other-titles[data-v-53417e75]{display:flex;justify-content:space-between}.field-setting-pane .field-permit-title .setting-title-label[data-v-53417e75]{color:#000;display:inline-block;font-size:13px;font-weight:700;padding:5px 0;text-align:center;width:100px}.field-setting-pane .field-setting-item[data-v-53417e75]{align-items:center;border:1px solid rgba(31,56,88,.102);border-top:0;display:flex;height:38px;justify-content:space-between;padding-left:12px}.field-setting-pane .field-setting-item .field-setting-item-label[data-v-53417e75]{cursor:text;display:inline-block;min-height:16px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100px}.field-setting-pane .field-setting-item .field-setting-item-group[data-v-53417e75]{display:flex;justify-content:space-between}.field-setting-pane .field-setting-item .field-setting-item-group .item-radio-wrap[data-v-53417e75]{display:inline-block;text-align:center;width:100px}

View File

@@ -0,0 +1 @@
.area-stay-chart[data-v-f237a30e]{padding:16px}.chart-title[data-v-f237a30e]{color:#262626;font-size:14px;font-weight:600;margin-bottom:12px}.chart-empty[data-v-f237a30e]{align-items:center;display:flex;justify-content:center;min-height:200px}

View File

@@ -0,0 +1 @@
@media (max-width:768px){.layout-row[data-v-09672b7c]{flex-direction:column}.tree-col[data-v-09672b7c]{margin-bottom:12px}.tree-card[data-v-09672b7c] .ant-card-body{max-height:200px}}.layout-row[data-v-09672b7c]{flex-wrap:wrap}.layout-row[data-v-09672b7c],.tree-card[data-v-09672b7c],.tree-col[data-v-09672b7c]{display:flex}.tree-card[data-v-09672b7c]{border-radius:8px;flex-direction:column;width:100%}.tree-card[data-v-09672b7c] .ant-card-head{min-height:44px;padding:0 16px}.tree-card[data-v-09672b7c] .ant-card-head .ant-card-head-title{font-size:14px;font-weight:600;padding:12px 0}.tree-card[data-v-09672b7c] .ant-card-body{flex:1;overflow-y:auto;padding:12px 16px}.tree-card[data-v-09672b7c] .ant-tree{background:transparent}.content-header[data-v-09672b7c]{align-items:center;display:flex;justify-content:space-between}.content-header__left[data-v-09672b7c]{align-items:baseline;display:flex;gap:8px}.content-title[data-v-09672b7c]{color:#262626;font-size:16px;font-weight:600}.content-subtitle[data-v-09672b7c]{color:#8c8c8c;font-size:13px}.empty-card[data-v-09672b7c]{border-radius:8px}.empty-card[data-v-09672b7c] .ant-card-body{align-items:center;display:flex;justify-content:center;min-height:300px}.section[data-v-09672b7c]{margin-bottom:20px}.section__title[data-v-09672b7c]{color:#262626;font-size:14px;font-weight:600;margin-bottom:12px}.section__hint[data-v-09672b7c]{color:#8c8c8c;font-size:12px;font-weight:400}html.dark .content-title[data-v-09672b7c]{color:#ffffffd9}html.dark .content-subtitle[data-v-09672b7c]{color:#ffffff73}html.dark .section__title[data-v-09672b7c]{color:#ffffffd9}html.dark .section__hint[data-v-09672b7c]{color:#ffffff73}

View File

@@ -0,0 +1 @@
.assign-form .badge-grid[data-v-d835ebf0]{grid-template-columns:repeat(2,1fr)}.assign-form .badge-card[data-v-d835ebf0]{border-radius:8px}.assign-form .badge-card[data-v-d835ebf0] .ant-card-body{padding:12px}

View File

@@ -0,0 +1 @@
@keyframes pulse-13a8b58a{0%,to{opacity:1}50%{opacity:.4}}.badge-status-card[data-v-13a8b58a]{padding:16px}.card-header[data-v-13a8b58a]{align-items:center;border-bottom:1px solid #f5f5f5;display:flex;gap:8px;margin-bottom:16px;padding-bottom:12px}.card-title[data-v-13a8b58a]{color:#262626;font-size:14px;font-weight:600}.status-row[data-v-13a8b58a]{justify-content:space-between;padding:8px 0}.label[data-v-13a8b58a],.status-row[data-v-13a8b58a]{align-items:center;display:flex}.label[data-v-13a8b58a]{color:#8c8c8c;gap:4px}.label[data-v-13a8b58a],.value[data-v-13a8b58a]{font-size:13px}.value[data-v-13a8b58a]{color:#262626}.value.mono[data-v-13a8b58a]{color:#595959;font-family:SF Mono,Fira Code,monospace;font-size:12px}.value.muted[data-v-13a8b58a]{color:#8c8c8c}.battery-bar[data-v-13a8b58a]{flex:0 0 120px}.status-dot[data-v-13a8b58a]{border-radius:50%;display:inline-block;height:6px;margin-right:4px;vertical-align:middle;width:6px}.status-dot--pulse[data-v-13a8b58a]{animation:pulse-13a8b58a 2s infinite}.recent-timeline[data-v-13a8b58a]{border-top:1px solid #f5f5f5;margin-top:12px;padding-top:12px}.timeline-header[data-v-13a8b58a]{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.timeline-title[data-v-13a8b58a]{color:#262626;font-size:13px;font-weight:500}.timeline-count[data-v-13a8b58a]{color:#bfbfbf;font-size:11px}.timeline-list[data-v-13a8b58a]{max-height:280px;overflow-y:auto}.timeline-item[data-v-13a8b58a]{display:flex;gap:8px;min-height:48px}.timeline-dot-wrap[data-v-13a8b58a]{align-items:center;display:flex;flex-direction:column;flex-shrink:0;padding-top:5px;width:12px}.timeline-dot[data-v-13a8b58a]{background:#d9d9d9;border-radius:50%;flex-shrink:0;height:8px;width:8px}.timeline-dot--active[data-v-13a8b58a]{background:#52c41a;box-shadow:0 0 0 3px #52c41a26}.timeline-line[data-v-13a8b58a]{background:#f0f0f0;flex:1;min-height:20px;width:1px}.timeline-item:last-child .timeline-line[data-v-13a8b58a]{display:none}.timeline-content[data-v-13a8b58a]{flex:1;min-width:0;padding-bottom:10px}.timeline-area[data-v-13a8b58a]{color:#262626;font-size:12px;line-height:1.4;word-break:break-all}.timeline-meta[data-v-13a8b58a]{align-items:center;color:#8c8c8c;display:flex;flex-wrap:wrap;font-size:11px;gap:4px;margin-top:2px}.staying-tag[data-v-13a8b58a]{color:#52c41a;font-weight:500}.timeline-duration[data-v-13a8b58a]{color:#1677ff}.timeline-empty[data-v-13a8b58a]{color:#bfbfbf;font-size:12px;padding:16px 0;text-align:center}.empty-state[data-v-13a8b58a]{align-items:center;display:flex;justify-content:center;min-height:120px}.empty-text[data-v-13a8b58a]{color:#bfbfbf;font-size:13px}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
.cf-alert[data-v-2bb30899],.cf-order-info[data-v-2bb30899]{margin-bottom:12px}.cf-order-info[data-v-2bb30899]{background:#fafafa;border-radius:8px;display:flex;flex-direction:column;gap:8px;padding:10px 12px}.cf-info-row[data-v-2bb30899]{align-items:flex-start;display:flex;font-size:13px;gap:6px;line-height:20px}.cf-info-icon[data-v-2bb30899]{margin-top:2px}.cf-info-icon[data-v-2bb30899],.cf-info-label[data-v-2bb30899]{color:#8c8c8c;flex-shrink:0}.cf-info-value[data-v-2bb30899]{color:#333;flex:1;min-width:0;word-break:break-all}.cf-info-desc[data-v-2bb30899]{display:-webkit-box;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis;-webkit-box-orient:vertical}.cf-section[data-v-2bb30899]{margin-bottom:12px}.cf-section-title[data-v-2bb30899]{font-size:13px;font-weight:500;margin-bottom:8px}html.dark .cf-order-info[data-v-2bb30899]{background:#ffffff0f}html.dark .cf-info-value[data-v-2bb30899]{color:#ffffffd9}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
.device-card-view .device-card[data-v-df49c618]{overflow:hidden}.device-card-view .device-card[data-v-df49c618] .ant-card-body{display:flex;flex-direction:column;height:100%}.device-card-view .device-card .device-icon[data-v-df49c618]{align-items:center;background:linear-gradient(135deg,#40a9ff,#1890ff);border-radius:8px;color:#fff;display:flex;flex-shrink:0;height:36px;justify-content:center;width:36px}.device-card-view .device-card .device-title[data-v-df49c618]{font-size:15px;font-weight:600;line-height:36px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-card-view .device-card .status-tag[data-v-df49c618]{font-size:12px}.device-card-view .device-card .info-list .info-item[data-v-df49c618]{align-items:center;display:flex;font-size:13px;margin-bottom:8px}.device-card-view .device-card .info-list .info-item[data-v-df49c618]:last-child{margin-bottom:0}.device-card-view .device-card .info-list .info-item .info-label[data-v-df49c618]{flex-shrink:0;margin-right:8px;opacity:.65}.device-card-view .device-card .info-list .info-item .info-value[data-v-df49c618]{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-card-view .device-card .info-list .info-item .info-value.text-primary[data-v-df49c618]{color:#1890ff}.device-card-view .device-card .info-list .info-item .device-id[data-v-df49c618]{display:inline-block;font-family:Courier New,monospace;font-size:12px;max-width:150px;opacity:.85;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.device-card-view .device-card .info-list .info-item .info-tag[data-v-df49c618]{font-size:12px}.device-card-view .device-card .action-buttons[data-v-df49c618]{border-top:1px solid var(--ant-color-split);display:flex;gap:8px;margin-top:auto;padding-top:12px}.device-card-view .device-card .action-buttons .action-btn[data-v-df49c618]{border-radius:6px;flex:1;font-size:13px;height:32px;transition:all .2s}.device-card-view .device-card .action-buttons .action-btn.action-btn-edit[data-v-df49c618]{border-color:#1890ff;color:#1890ff}.device-card-view .device-card .action-buttons .action-btn.action-btn-edit[data-v-df49c618]:hover{background:#1890ff;color:#fff}.device-card-view .device-card .action-buttons .action-btn.action-btn-detail[data-v-df49c618]{border-color:#52c41a;color:#52c41a}.device-card-view .device-card .action-buttons .action-btn.action-btn-detail[data-v-df49c618]:hover{background:#52c41a;color:#fff}.device-card-view .device-card .action-buttons .action-btn.action-btn-data[data-v-df49c618]{border-color:#fa8c16;color:#fa8c16}.device-card-view .device-card .action-buttons .action-btn.action-btn-data[data-v-df49c618]:hover{background:#fa8c16;color:#fff}.device-card-view .device-card .action-buttons .action-btn.action-btn-delete[data-v-df49c618]{flex:0 0 32px;padding:0}html.dark .device-card-view .device-card .device-title[data-v-df49c618]{color:#ffffffd9}html.dark .device-card-view .device-card .info-list .info-label[data-v-df49c618]{color:#ffffffa6}html.dark .device-card-view .device-card .info-list .info-value[data-v-df49c618]{color:#ffffffd9}html.dark .device-card-view .device-card .info-list .device-id[data-v-df49c618]{color:#ffffffbf}

View File

@@ -0,0 +1 @@
.product-card-view .product-card[data-v-9f257ae6]{overflow:hidden}.product-card-view .product-card[data-v-9f257ae6] .ant-card-body{display:flex;flex-direction:column;height:100%}.product-card-view .product-card .product-icon[data-v-9f257ae6]{align-items:center;background:linear-gradient(135deg,#40a9ff,#1890ff);border-radius:8px;color:#fff;display:flex;flex-shrink:0;height:36px;justify-content:center;width:36px}.product-card-view .product-card .product-title[data-v-9f257ae6]{font-size:15px;font-weight:600;line-height:36px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.product-card-view .product-card .info-list .info-item[data-v-9f257ae6]{align-items:center;display:flex;font-size:13px;margin-bottom:8px}.product-card-view .product-card .info-list .info-item[data-v-9f257ae6]:last-child{margin-bottom:0}.product-card-view .product-card .info-list .info-item .info-label[data-v-9f257ae6]{flex-shrink:0;margin-right:8px;opacity:.65}.product-card-view .product-card .info-list .info-item .info-value[data-v-9f257ae6]{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.product-card-view .product-card .info-list .info-item .info-value.text-primary[data-v-9f257ae6]{color:#1890ff}.product-card-view .product-card .info-list .info-item .product-key[data-v-9f257ae6]{display:inline-block;font-family:Courier New,monospace;font-size:12px;max-width:150px;opacity:.85;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.product-card-view .product-card .info-list .info-item .info-tag[data-v-9f257ae6]{font-size:12px}.product-card-view .product-card .product-image[data-v-9f257ae6]{align-items:center;background:linear-gradient(135deg,#40a9ff15,#1890ff15);border-radius:8px;color:#1890ff;display:flex;flex-shrink:0;height:80px;justify-content:center;width:80px}.product-card-view .product-card .action-buttons[data-v-9f257ae6]{border-top:1px solid var(--ant-color-split);display:flex;gap:8px;margin-top:auto;padding-top:12px}.product-card-view .product-card .action-buttons .action-btn[data-v-9f257ae6]{border-radius:6px;flex:1;font-size:13px;height:32px;transition:all .2s}.product-card-view .product-card .action-buttons .action-btn.action-btn-edit[data-v-9f257ae6]{border-color:#1890ff;color:#1890ff}.product-card-view .product-card .action-buttons .action-btn.action-btn-edit[data-v-9f257ae6]:hover{background:#1890ff;color:#fff}.product-card-view .product-card .action-buttons .action-btn.action-btn-detail[data-v-9f257ae6]{border-color:#52c41a;color:#52c41a}.product-card-view .product-card .action-buttons .action-btn.action-btn-detail[data-v-9f257ae6]:hover{background:#52c41a;color:#fff}.product-card-view .product-card .action-buttons .action-btn.action-btn-model[data-v-9f257ae6]{border-color:#fa8c16;color:#fa8c16}.product-card-view .product-card .action-buttons .action-btn.action-btn-model[data-v-9f257ae6]:hover{background:#fa8c16;color:#fff}.product-card-view .product-card .action-buttons .action-btn.action-btn-delete[data-v-9f257ae6]{flex:0 0 32px;padding:0}html.dark .product-card-view .product-card .product-title[data-v-9f257ae6]{color:#ffffffd9}html.dark .product-card-view .product-card .info-list .info-label[data-v-9f257ae6]{color:#ffffffa6}html.dark .product-card-view .product-card .info-list .info-value[data-v-9f257ae6]{color:#ffffffd9}html.dark .product-card-view .product-card .info-list .product-key[data-v-9f257ae6]{color:#ffffffbf}html.dark .product-card-view .product-card .product-image[data-v-9f257ae6]{background:linear-gradient(135deg,#40a9ff25,#1890ff25);color:#69c0ff}

View File

@@ -0,0 +1 @@
.inspection-card-view .card-grid[data-v-3e4528d2]{min-height:300px}.inspection-card-view .record-card[data-v-3e4528d2]{--status-color:#52c41a;--card-gradient:none;background:#fff;border:1px solid #f0f0f0;border-radius:8px;cursor:pointer;display:flex;flex-direction:column;height:100%;min-height:190px;overflow:hidden;position:relative;transition:all .2s}.inspection-card-view .record-card[data-v-3e4528d2]:hover{border-color:#d9d9d9;box-shadow:0 2px 8px #0000000f}.inspection-card-view .card-gradient-bg[data-v-3e4528d2]{background:var(--card-gradient);border-radius:8px;inset:0;pointer-events:none;position:absolute}.inspection-card-view .card-inner[data-v-3e4528d2]{display:flex;flex:1;flex-direction:column;padding:14px;position:relative;z-index:1}.inspection-card-view .card-header[data-v-3e4528d2]{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.inspection-card-view .status-badge[data-v-3e4528d2]{align-items:center;display:flex;gap:4px}.inspection-card-view .status-badge__icon[data-v-3e4528d2]{color:var(--status-color);font-size:18px}.inspection-card-view .status-badge__text[data-v-3e4528d2]{color:var(--status-color);font-size:13px;font-weight:600}.inspection-card-view .exception-tag[data-v-3e4528d2]{font-size:11px;line-height:18px;margin:0}.inspection-card-view .area-name[data-v-3e4528d2]{color:#262626;display:-webkit-box;font-size:15px;font-weight:600;-webkit-line-clamp:2;line-height:1.4;margin:0 0 10px;overflow:hidden;-webkit-box-orient:vertical}.inspection-card-view .info-rows[data-v-3e4528d2]{display:flex;flex:1;flex-direction:column;gap:6px}.inspection-card-view .info-row[data-v-3e4528d2]{align-items:center;display:flex;gap:6px}.inspection-card-view .info-icon[data-v-3e4528d2]{color:#8c8c8c;flex-shrink:0;font-size:14px}.inspection-card-view .info-text[data-v-3e4528d2]{color:#595959;flex:1;font-size:13px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.inspection-card-view .card-footer[data-v-3e4528d2]{align-items:center;border-top:1px solid #f5f5f5;display:flex;gap:8px;margin-top:10px;padding-top:8px}.inspection-card-view .footer-tag[data-v-3e4528d2]{border:none;font-size:11px;line-height:18px;margin:0}.inspection-card-view .order-link[data-v-3e4528d2]{align-items:center;color:#1677ff;display:flex;font-size:11px;font-weight:500;gap:2px;margin-left:auto}.inspection-card-view .pagination-wrapper[data-v-3e4528d2]{border-top:1px solid #f0f0f0;display:flex;justify-content:flex-end;padding-top:12px}html.dark .inspection-card-view .record-card[data-v-3e4528d2]{background:#1f1f1f;border-color:#303030}html.dark .inspection-card-view .record-card[data-v-3e4528d2]:hover{border-color:#434343;box-shadow:0 4px 16px #0006}html.dark .inspection-card-view .card-gradient-bg[data-v-3e4528d2]{background:var(--card-gradient-dark)}html.dark .inspection-card-view .area-name[data-v-3e4528d2]{color:#ffffffd9}html.dark .inspection-card-view .info-icon[data-v-3e4528d2]{color:#ffffff73}html.dark .inspection-card-view .info-text[data-v-3e4528d2]{color:#ffffffa6}html.dark .inspection-card-view .card-footer[data-v-3e4528d2],html.dark .inspection-card-view .pagination-wrapper[data-v-3e4528d2]{border-color:#303030}

View File

@@ -0,0 +1 @@
.leave-warning[data-v-c158741a]{border-left:3px solid #faad14;border-radius:8px}.leave-warning[data-v-c158741a] .ant-alert-message{font-size:14px}.leave-warning[data-v-c158741a] .ant-alert-description{font-size:13px}.info-card[data-v-c158741a] .ant-descriptions-item-label{background:#fafafa;font-size:13px;font-weight:500}.info-card[data-v-c158741a] .ant-descriptions-item-content{font-size:13px}

View File

@@ -0,0 +1 @@
.wp-card[data-v-856e04a1]{border-radius:8px;box-shadow:0 1px 2px #0000000a;display:flex;flex-direction:column}[data-v-856e04a1] .ant-card-head{border-bottom:1px solid #f0f0f0;min-height:40px;padding:0 16px}[data-v-856e04a1] .ant-card-head-title{font-size:14px;font-weight:600;padding:10px 0}.wp-main[data-v-856e04a1]{align-items:center;display:flex;flex:1;gap:12px;justify-content:flex-end;padding-right:8px}.wp-ring[data-v-856e04a1]{flex-shrink:0}.wp-ring-inner[data-v-856e04a1]{align-items:baseline;display:flex;justify-content:center}.wp-ring-num[data-v-856e04a1]{font-size:26px;font-weight:800;letter-spacing:-.5px;line-height:1}.wp-ring-pct[data-v-856e04a1]{font-size:13px;font-weight:600;margin-left:1px}.wp-grid[data-v-856e04a1]{display:grid;flex:1;grid-template-columns:1fr 1fr;grid-gap:14px 10px;border-left:1px solid #f0f0f0;gap:14px 10px;padding-left:12px}.wp-cell[data-v-856e04a1],.wp-grid[data-v-856e04a1]{min-width:0}.wp-cell-label[data-v-856e04a1]{color:#8c8c8c;font-size:12px;line-height:1;margin-bottom:5px}.wp-cell-val[data-v-856e04a1]{color:#333;font-size:14px;font-weight:600;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.wp-cell-val--warn[data-v-856e04a1]{color:#ff4d4f}[data-v-856e04a1] .ant-card-body{display:flex;flex:1}.dark .wp-cell-val[data-v-856e04a1]{color:#ffffffd9}

View File

@@ -1 +0,0 @@
.component .component-wrap[data-v-5611573f]:hover{border:1px dashed hsl(var(--primary));box-shadow:0 0 5px #1890ff4d}.component .component-wrap:hover .component-name[data-v-5611573f]{left:-86px;top:1px}.component .component-wrap .component-name[data-v-5611573f]{background:hsl(var(--background));box-shadow:0 0 4px #00000014,0 2px 6px #0000000f,0 4px 8px 2px #0000000a;color:hsl(var(--text-color));display:block;font-size:12px;height:25px;left:-85px;line-height:25px;position:absolute;text-align:center;top:2px;width:80px}.component .component-wrap .component-name[data-v-5611573f]:after{border:5px solid transparent;border-left:5px solid hsl(var(--background));content:" ";height:0;position:absolute;right:-10px;top:7.5px;width:0}.component .component-wrap .component-toolbar[data-v-5611573f]{display:none;position:absolute;right:-55px;top:0}.component .component-wrap .component-toolbar[data-v-5611573f]:before{border:5px solid transparent;border-right:5px solid hsl(var(--primary));content:" ";height:0;left:-10px;position:absolute;top:10px;width:0}.component.active[data-v-5611573f]{margin-bottom:4px}.component.active .component-wrap[data-v-5611573f]{border:2px solid hsl(var(--primary))!important;box-shadow:0 0 10px #1890ff4d;margin-bottom:4px}.component.active .component-wrap .component-name[data-v-5611573f]{background:hsl(var(--primary));color:#fff;left:-87px!important;top:0!important}.component.active .component-wrap .component-name[data-v-5611573f]:after{border-left-color:hsl(var(--primary))}.component.active .component-wrap .component-toolbar[data-v-5611573f]{display:block}

View File

@@ -0,0 +1 @@
.component .component-wrap[data-v-95c113fb]:hover{border:1px dashed hsl(var(--primary));box-shadow:0 0 5px #1890ff4d}.component .component-wrap:hover .component-name[data-v-95c113fb]{left:-86px;top:1px}.component .component-wrap .component-name[data-v-95c113fb]{background:hsl(var(--background));box-shadow:0 0 4px #00000014,0 2px 6px #0000000f,0 4px 8px 2px #0000000a;color:hsl(var(--text-color));display:block;font-size:12px;height:25px;left:-85px;line-height:25px;position:absolute;text-align:center;top:2px;width:80px}.component .component-wrap .component-name[data-v-95c113fb]:after{border:5px solid transparent;border-left:5px solid hsl(var(--background));content:" ";height:0;position:absolute;right:-10px;top:7.5px;width:0}.component .component-wrap .component-toolbar[data-v-95c113fb]{display:none;position:absolute;right:-55px;top:0}.component .component-wrap .component-toolbar[data-v-95c113fb]:before{border:5px solid transparent;border-right:5px solid hsl(var(--primary));content:" ";height:0;left:-10px;position:absolute;top:10px;width:0}.component.active[data-v-95c113fb]{margin-bottom:4px}.component.active .component-wrap[data-v-95c113fb]{border:2px solid hsl(var(--primary))!important;box-shadow:0 0 10px #1890ff4d;margin-bottom:4px}.component.active .component-wrap .component-name[data-v-95c113fb]{background:hsl(var(--primary));color:#fff;left:-87px!important;top:0!important}.component.active .component-wrap .component-name[data-v-95c113fb]:after{border-left-color:hsl(var(--primary))}.component.active .component-wrap .component-toolbar[data-v-95c113fb]{display:block}

View File

@@ -0,0 +1 @@
.json-viewer-container[data-v-9456c5bf]{background-color:#f5f5f5;border:1px solid #d9d9d9;border-radius:4px;max-height:600px;overflow-y:auto;padding:12px}.json-code[data-v-9456c5bf]{color:#333;line-height:1.5;margin:0;word-wrap:break-word;white-space:pre-wrap}.json-code[data-v-9456c5bf],.json-editor[data-v-9456c5bf]{font-family:Monaco,Menlo,Ubuntu Mono,Consolas,monospace;font-size:13px}

View File

@@ -0,0 +1 @@
.co-steps[data-v-264c8d1f]{margin-bottom:20px;padding:0 16px}.co-step-content[data-v-264c8d1f]{min-height:200px}.co-type-grid[data-v-264c8d1f]{display:flex;flex-direction:column;gap:12px}.co-type-card[data-v-264c8d1f]{align-items:center;border:2px solid #f0f0f0;border-radius:10px;cursor:pointer;display:flex;gap:14px;padding:16px;position:relative;transition:all .2s}.co-type-card[data-v-264c8d1f]:hover{border-color:#d9d9d9}.co-type-card--active[data-v-264c8d1f]{background:#f0f7ff;border-color:#1677ff}.co-type-icon[data-v-264c8d1f]{align-items:center;border-radius:10px;display:flex;flex-shrink:0;height:48px;justify-content:center;width:48px}.co-type-info[data-v-264c8d1f]{flex:1}.co-type-title[data-v-264c8d1f]{color:#1f2937;font-size:15px;font-weight:600}.co-type-desc[data-v-264c8d1f]{color:#9ca3af;font-size:12px;margin-top:2px}.co-type-check[data-v-264c8d1f]{color:#1677ff;font-size:20px;position:absolute;right:12px;top:12px}.co-area-section[data-v-264c8d1f]{padding:8px 0}.co-section-label[data-v-264c8d1f]{color:#374151;font-size:14px;font-weight:500;margin-bottom:10px}.co-area-selected[data-v-264c8d1f]{align-items:center;background:#f0fdf4;border-radius:6px;color:#047857;display:flex;font-size:13px;gap:6px;margin-top:12px;padding:8px 12px}.co-area-icon[data-v-264c8d1f]{color:#10b981}.co-summary[data-v-264c8d1f]{align-items:center;background:#fafafa;border-radius:8px;display:flex;gap:10px;margin-bottom:16px;padding:8px 12px}.co-summary-tag[data-v-264c8d1f]{border-radius:4px;font-size:12px;font-weight:500;padding:2px 8px}.co-summary-area[data-v-264c8d1f]{align-items:center;color:#6b7280;display:flex;font-size:13px;gap:4px}.co-summary-icon[data-v-264c8d1f]{color:#9ca3af;font-size:14px}html.dark .co-type-card[data-v-264c8d1f]{border-color:#ffffff1f}html.dark .co-type-card[data-v-264c8d1f]:hover{border-color:#ffffff40}html.dark .co-type-card--active[data-v-264c8d1f]{background:#1677ff1a;border-color:#1677ff}html.dark .co-type-title[data-v-264c8d1f]{color:#ffffffe0}html.dark .co-type-desc[data-v-264c8d1f]{color:#ffffff73}html.dark .co-section-label[data-v-264c8d1f]{color:#ffffffd9}html.dark .co-area-selected[data-v-264c8d1f]{background:#10b9811a;color:#34d399}html.dark .co-summary[data-v-264c8d1f]{background:#ffffff0f}html.dark .co-summary-area[data-v-264c8d1f]{color:#ffffffa6}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
.device-card[data-v-fab000a0]{border-radius:8px;cursor:pointer;overflow:hidden;transition:all .3s ease}.device-card[data-v-fab000a0]:hover{box-shadow:0 4px 16px #00000014;transform:translateY(-2px)}.device-card__body[data-v-fab000a0]{padding:16px}.device-card__header[data-v-fab000a0]{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.device-card__name[data-v-fab000a0]{color:#262626;flex:1;font-size:15px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-card__header-right[data-v-fab000a0]{align-items:center;display:flex;flex-shrink:0;gap:6px}.device-card__type-badge[data-v-fab000a0]{border-radius:10px;font-size:12px;font-weight:600;line-height:20px;padding:2px 10px;white-space:nowrap}.device-card__more[data-v-fab000a0]{align-items:center;border-radius:4px;color:#8c8c8c;cursor:pointer;display:inline-flex;font-size:16px;font-weight:700;height:24px;justify-content:center;letter-spacing:1px;width:24px}.device-card__more[data-v-fab000a0]:hover{background:#f0f0f0;color:#1677ff}.device-card__info[data-v-fab000a0]{display:flex;flex-direction:column;font-size:13px;gap:4px;margin-bottom:10px}.device-card__info-row[data-v-fab000a0]{align-items:center;display:flex;gap:8px}.device-card__info-label[data-v-fab000a0]{color:#8c8c8c;flex-shrink:0}.device-card__info-value[data-v-fab000a0]{color:#595959;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.device-card__footer[data-v-fab000a0]{align-items:center;display:flex;gap:8px}.device-card__footer-sep[data-v-fab000a0]{color:#d9d9d9}html.dark .device-card__name[data-v-fab000a0]{color:#ffffffd9}html.dark .device-card__info-label[data-v-fab000a0]{color:#ffffff73}html.dark .device-card__info-value[data-v-fab000a0]{color:#ffffffa6}html.dark .device-card__more[data-v-fab000a0]:hover{background:#ffffff14}

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
[data-v-48851095] .ant-card-body{padding:20px}

View File

@@ -1 +0,0 @@
.json-viewer-container[data-v-d1b4c88b]{background-color:#f5f5f5;border:1px solid #d9d9d9;border-radius:4px;max-height:600px;overflow-y:auto;padding:12px}.json-code[data-v-d1b4c88b]{color:#333;line-height:1.5;margin:0;word-wrap:break-word;white-space:pre-wrap}.json-code[data-v-d1b4c88b],.json-editor[data-v-d1b4c88b]{font-family:Monaco,Menlo,Ubuntu Mono,Consolas,monospace;font-size:13px}

View File

@@ -0,0 +1 @@
.device-detail-drawer[data-v-4f023e04]{width:560px}.traffic-realtime .traffic-stats[data-v-4f023e04]{display:flex;gap:12px;margin-bottom:12px}.traffic-realtime .traffic-stats__item[data-v-4f023e04]{align-items:center;background:#fafafa;border-radius:6px;display:flex;flex:1;font-size:13px;gap:6px;padding:10px 12px}.traffic-realtime .traffic-stats__item--in[data-v-4f023e04]{color:#52c41a}.traffic-realtime .traffic-stats__item--out[data-v-4f023e04]{color:#ff4d4f}.traffic-realtime .traffic-stats__item--net[data-v-4f023e04]{color:#1677ff}.traffic-realtime .traffic-stats__label[data-v-4f023e04]{color:#8c8c8c}.traffic-realtime .traffic-stats__value[data-v-4f023e04]{font-size:18px;font-weight:700;margin-left:auto}.traffic-realtime .traffic-chart[data-v-4f023e04]{height:220px}.badge-realtime .badge-row[data-v-4f023e04]{display:flex;gap:12px;margin-bottom:12px}.badge-realtime .badge-item[data-v-4f023e04]{align-items:center;background:#fafafa;border-radius:8px;display:flex;flex:1;gap:10px;padding:12px}.badge-realtime .badge-item__icon[data-v-4f023e04]{align-items:center;border-radius:8px;display:flex;flex-shrink:0;font-size:18px;height:36px;justify-content:center;width:36px}.badge-realtime .badge-item__icon--bt[data-v-4f023e04]{background:#f0f5ff;color:#2f54eb}.badge-realtime .badge-item__content[data-v-4f023e04]{display:flex;flex-direction:column;gap:2px}.badge-realtime .badge-item__label[data-v-4f023e04]{color:#8c8c8c;font-size:12px}.badge-realtime .badge-item__value[data-v-4f023e04]{color:#262626;font-size:18px;font-weight:700}.beacon-list[data-v-4f023e04]{background:#fafafa;border-radius:8px;padding:12px}.beacon-list__title[data-v-4f023e04]{border-left:3px solid #2f54eb;color:#595959;font-size:13px;font-weight:600;margin-bottom:8px;padding-left:8px}.beacon-item[data-v-4f023e04]{align-items:center;display:flex;gap:12px;padding:6px 0}.beacon-item__mac[data-v-4f023e04]{color:#595959;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;font-size:12px}.beacon-item__signal[data-v-4f023e04]{align-items:center;display:flex;gap:8px;margin-left:auto}.beacon-item__rssi[data-v-4f023e04]{font-size:11px;font-weight:600;min-width:55px;text-align:right}.beacon-empty[data-v-4f023e04]{align-items:center;color:#bfbfbf;display:flex;font-size:13px;gap:6px;justify-content:center;padding:16px}.config-form[data-v-4f023e04]{display:flex;flex-direction:column;gap:16px}.config-item[data-v-4f023e04]{align-items:center;display:flex;gap:12px}.config-item--block[data-v-4f023e04]{align-items:stretch;flex-direction:column}.config-label[data-v-4f023e04]{color:#595959;font-size:13px;font-weight:500;min-width:80px}.config-actions[data-v-4f023e04]{border-top:1px solid #f0f0f0;display:flex;gap:12px;justify-content:flex-end;padding-top:8px}.config-editor-error[data-v-4f023e04]{border:1px solid #ff4d4f;border-radius:4px}.config-error-hint[data-v-4f023e04]{color:#ff4d4f;font-size:12px}html.dark .config-label[data-v-4f023e04]{color:#ffffffa6}html.dark .config-actions[data-v-4f023e04]{border-color:#ffffff14}html.dark .config-editor-error[data-v-4f023e04]{border-color:#a61d24}html.dark .config-error-hint[data-v-4f023e04]{color:#a61d24}html.dark .badge-item[data-v-4f023e04],html.dark .beacon-list[data-v-4f023e04],html.dark .traffic-stats__item[data-v-4f023e04]{background:#ffffff0a}html.dark .badge-item__label[data-v-4f023e04],html.dark .traffic-stats__label[data-v-4f023e04]{color:#ffffff73}html.dark .badge-item__value[data-v-4f023e04]{color:#ffffffd9}html.dark .badge-item__icon--bt[data-v-4f023e04]{background:#2f54eb26;color:#597ef7}html.dark .beacon-item__mac[data-v-4f023e04],html.dark .beacon-list__title[data-v-4f023e04]{color:#ffffffa6}

View File

@@ -1 +0,0 @@
[data-v-c6a91830] .ant-row{margin-left:-8px!important;margin-right:-8px!important}

View File

@@ -1 +0,0 @@
.property-history-container[data-v-cc4d39a2]{max-height:70vh;overflow:auto}.property-history-container .toolbar-wrapper[data-v-cc4d39a2]{background-color:hsl(var(--card)/90%);border:1px solid hsl(var(--border)/60%);border-radius:8px;padding:16px}.property-history-container .chart-container[data-v-cc4d39a2],.property-history-container .table-container[data-v-cc4d39a2]{background-color:hsl(var(--card));border:1px solid hsl(var(--border)/60%);border-radius:8px;padding:16px}

View File

@@ -1 +0,0 @@
.people-counter-wrapper[data-v-ecad4b12]{background:linear-gradient(135deg,#f0fff4,#e6fffb);border-radius:8px;padding:16px}.stat-item[data-v-ecad4b12]{align-items:center;background:#fff;border-radius:8px;display:flex;gap:10px;height:64px;padding:12px;transition:all .2s}.stat-item[data-v-ecad4b12]:hover{box-shadow:0 2px 8px #00000014}.stat-icon[data-v-ecad4b12]{align-items:center;border-radius:8px;display:flex;flex-shrink:0;font-size:18px;height:36px;justify-content:center;width:36px}.stat-item.in .stat-icon[data-v-ecad4b12]{background:#f6ffed;color:#52c41a}.stat-item.out .stat-icon[data-v-ecad4b12]{background:#fff1f0;color:#ff4d4f}.stat-item.net .stat-icon[data-v-ecad4b12]{background:#e6f7ff;color:#1890ff}.stat-item.signal .stat-icon[data-v-ecad4b12]{background:#f0f5ff;color:#2f54eb}.stat-content[data-v-ecad4b12]{flex:1;min-width:0}.stat-label[data-v-ecad4b12]{color:#8c8c8c;font-size:12px;margin-bottom:2px}.stat-value[data-v-ecad4b12]{color:#262626;font-size:20px;font-weight:700}.stat-item.in .stat-value[data-v-ecad4b12]{color:#52c41a}.stat-item.out .stat-value[data-v-ecad4b12]{color:#ff4d4f}.stat-value.positive[data-v-ecad4b12]{color:#52c41a}.stat-value.negative[data-v-ecad4b12]{color:#ff4d4f}.signal-bar[data-v-ecad4b12]{align-items:center;display:flex;gap:8px}.signal-val[data-v-ecad4b12]{font-size:12px;font-weight:600;white-space:nowrap}.status-row[data-v-ecad4b12]{height:64px;justify-content:space-between;padding:0 8px}.battery-info[data-v-ecad4b12],.status-row[data-v-ecad4b12]{align-items:center;display:flex}.battery-info[data-v-ecad4b12]{font-size:14px;font-weight:600;gap:4px}.update-info[data-v-ecad4b12]{align-items:center;display:flex;gap:8px}.update-time[data-v-ecad4b12]{color:#8c8c8c;font-size:11px}.flow-bar-section[data-v-ecad4b12]{background:#fff;border-radius:8px;margin-top:12px;padding:12px}.flow-bar[data-v-ecad4b12]{background:#f5f5f5;border-radius:18px;height:36px;overflow:hidden}.flow-bar[data-v-ecad4b12],.flow-in[data-v-ecad4b12],.flow-out[data-v-ecad4b12]{align-items:center;display:flex}.flow-in[data-v-ecad4b12],.flow-out[data-v-ecad4b12]{color:#fff;font-size:14px;font-weight:600;height:100%;justify-content:center;min-width:50px;transition:flex .5s ease}.flow-in[data-v-ecad4b12]{background:linear-gradient(90deg,#52c41a,#73d13d)}.flow-out[data-v-ecad4b12]{background:linear-gradient(90deg,#ff7875,#ff4d4f)}.flow-divider[data-v-ecad4b12]{align-items:center;background:#fff;border-radius:50%;box-shadow:0 1px 3px #0000001a;color:#8c8c8c;display:flex;flex-shrink:0;font-size:16px;height:32px;justify-content:center;margin:0 -16px;width:32px;z-index:1}

View File

@@ -0,0 +1 @@
.people-counter-wrapper[data-v-2baa73f9]{background:linear-gradient(135deg,#f0fff4,#e6fffb);border-radius:8px;padding:16px}.stat-item[data-v-2baa73f9]{align-items:center;background:#fff;border-radius:8px;display:flex;gap:10px;height:64px;padding:12px;transition:all .2s}.stat-item[data-v-2baa73f9]:hover{box-shadow:0 2px 8px #00000014}.stat-icon[data-v-2baa73f9]{align-items:center;border-radius:8px;display:flex;flex-shrink:0;font-size:18px;height:36px;justify-content:center;width:36px}.stat-item.in .stat-icon[data-v-2baa73f9]{background:#f6ffed;color:#52c41a}.stat-item.out .stat-icon[data-v-2baa73f9]{background:#fff1f0;color:#ff4d4f}.stat-item.net .stat-icon[data-v-2baa73f9]{background:#e6f7ff;color:#1890ff}.stat-item.signal .stat-icon[data-v-2baa73f9]{background:#f0f5ff;color:#2f54eb}.stat-content[data-v-2baa73f9]{flex:1;min-width:0}.stat-label[data-v-2baa73f9]{color:#8c8c8c;font-size:12px;margin-bottom:2px}.stat-value[data-v-2baa73f9]{color:#262626;font-size:20px;font-weight:700}.stat-item.in .stat-value[data-v-2baa73f9]{color:#52c41a}.stat-item.out .stat-value[data-v-2baa73f9]{color:#ff4d4f}.stat-value.positive[data-v-2baa73f9]{color:#52c41a}.stat-value.negative[data-v-2baa73f9]{color:#ff4d4f}.signal-bar[data-v-2baa73f9]{align-items:center;display:flex;gap:8px}.signal-val[data-v-2baa73f9]{font-size:12px;font-weight:600;white-space:nowrap}.status-row[data-v-2baa73f9]{height:64px;justify-content:space-between;padding:0 8px}.battery-info[data-v-2baa73f9],.status-row[data-v-2baa73f9]{align-items:center;display:flex}.battery-info[data-v-2baa73f9]{font-size:14px;font-weight:600;gap:4px}.update-info[data-v-2baa73f9]{align-items:center;display:flex;gap:8px}.update-time[data-v-2baa73f9]{color:#8c8c8c;font-size:11px}.flow-bar-section[data-v-2baa73f9]{background:#fff;border-radius:8px;margin-top:12px;padding:12px}.flow-bar[data-v-2baa73f9]{background:#f5f5f5;border-radius:18px;height:36px;overflow:hidden}.flow-bar[data-v-2baa73f9],.flow-in[data-v-2baa73f9],.flow-out[data-v-2baa73f9]{align-items:center;display:flex}.flow-in[data-v-2baa73f9],.flow-out[data-v-2baa73f9]{color:#fff;font-size:14px;font-weight:600;height:100%;justify-content:center;min-width:50px;transition:flex .5s ease}.flow-in[data-v-2baa73f9]{background:linear-gradient(90deg,#52c41a,#73d13d)}.flow-out[data-v-2baa73f9]{background:linear-gradient(90deg,#ff7875,#ff4d4f)}.flow-divider[data-v-2baa73f9]{align-items:center;background:#fff;border-radius:50%;box-shadow:0 1px 3px #0000001a;color:#8c8c8c;display:flex;flex-shrink:0;font-size:16px;height:32px;justify-content:center;margin:0 -16px;width:32px;z-index:1}

View File

@@ -1 +0,0 @@
.smart-badge-wrapper[data-v-d810bb74]{background:linear-gradient(135deg,#f5f7fa,#e4e8ec);border-radius:8px;padding:16px}.data-item[data-v-d810bb74]{align-items:center;background:#fff;border-radius:8px;display:flex;gap:10px;height:64px;padding:12px;transition:all .2s}.data-item[data-v-d810bb74]:hover{box-shadow:0 2px 8px #00000014}.action-item[data-v-d810bb74]{cursor:pointer}.action-item[data-v-d810bb74]:hover{background:#f0f5ff}.data-icon[data-v-d810bb74]{align-items:center;border-radius:8px;display:flex;flex-shrink:0;font-size:18px;height:36px;justify-content:center;width:36px}.data-icon.location[data-v-d810bb74]{background:#e6f7ff;color:#1890ff}.data-icon.battery[data-v-d810bb74]{background:#f6ffed;color:#52c41a}.data-icon.bluetooth[data-v-d810bb74]{background:#f0f5ff;color:#2f54eb}.data-icon.tts[data-v-d810bb74]{background:#fff7e6;color:#fa8c16}.data-content[data-v-d810bb74]{flex:1;min-width:0}.data-label[data-v-d810bb74]{color:#8c8c8c;font-size:12px;margin-bottom:2px}.data-value[data-v-d810bb74]{color:#262626;font-size:16px;font-weight:600}.data-value.small[data-v-d810bb74]{font-family:JetBrains Mono,monospace;font-size:12px;font-weight:500}.data-value.action[data-v-d810bb74]{color:#1890ff;font-size:13px}.refresh-section[data-v-d810bb74]{gap:12px;height:64px;justify-content:flex-end}.refresh-section[data-v-d810bb74],.update-time[data-v-d810bb74]{align-items:center;display:flex}.update-time[data-v-d810bb74]{color:#8c8c8c;font-size:12px;gap:4px}.section-title[data-v-d810bb74]{border-left:3px solid #1890ff;color:#595959;font-size:13px;font-weight:600;margin:16px 0 8px;padding-left:8px}.bluetooth-section[data-v-d810bb74],.event-section[data-v-d810bb74]{background:#fff;border-radius:8px;margin-top:12px;padding:12px}.bluetooth-list[data-v-d810bb74]{display:flex;flex-wrap:wrap;gap:8px}.bluetooth-item[data-v-d810bb74]{align-items:center;background:#fafafa;border-radius:6px;display:flex;font-size:12px;gap:8px;padding:6px 10px}.bt-mac[data-v-d810bb74]{color:#595959;font-family:JetBrains Mono,monospace}.bt-rssi[data-v-d810bb74]{align-items:center;display:flex;gap:6px}.rssi-val[data-v-d810bb74]{font-size:11px;font-weight:600;min-width:50px}.event-list[data-v-d810bb74]{display:flex;flex-direction:column;gap:6px}.event-item[data-v-d810bb74]{align-items:center;background:#fafafa;border-radius:6px;display:flex;font-size:12px;gap:10px;padding:6px 10px}.event-time[data-v-d810bb74]{color:#8c8c8c;font-family:JetBrains Mono,monospace}.event-key[data-v-d810bb74]{color:#595959}

View File

@@ -0,0 +1 @@
.smart-badge-wrapper[data-v-ef8bcc8c]{background:linear-gradient(135deg,#f5f7fa,#e4e8ec);border-radius:8px;padding:16px}.data-item[data-v-ef8bcc8c]{align-items:center;background:#fff;border-radius:8px;display:flex;gap:10px;height:64px;padding:12px;transition:all .2s}.data-item[data-v-ef8bcc8c]:hover{box-shadow:0 2px 8px #00000014}.action-item[data-v-ef8bcc8c]{cursor:pointer}.action-item[data-v-ef8bcc8c]:hover{background:#f0f5ff}.data-icon[data-v-ef8bcc8c]{align-items:center;border-radius:8px;display:flex;flex-shrink:0;font-size:18px;height:36px;justify-content:center;width:36px}.data-icon.location[data-v-ef8bcc8c]{background:#e6f7ff;color:#1890ff}.data-icon.battery[data-v-ef8bcc8c]{background:#f6ffed;color:#52c41a}.data-icon.bluetooth[data-v-ef8bcc8c]{background:#f0f5ff;color:#2f54eb}.data-icon.tts[data-v-ef8bcc8c]{background:#fff7e6;color:#fa8c16}.data-content[data-v-ef8bcc8c]{flex:1;min-width:0}.data-label[data-v-ef8bcc8c]{color:#8c8c8c;font-size:12px;margin-bottom:2px}.data-value[data-v-ef8bcc8c]{color:#262626;font-size:16px;font-weight:600}.data-value.small[data-v-ef8bcc8c]{font-family:JetBrains Mono,monospace;font-size:12px;font-weight:500}.data-value.action[data-v-ef8bcc8c]{color:#1890ff;font-size:13px}.refresh-section[data-v-ef8bcc8c]{gap:12px;height:64px;justify-content:flex-end}.refresh-section[data-v-ef8bcc8c],.update-time[data-v-ef8bcc8c]{align-items:center;display:flex}.update-time[data-v-ef8bcc8c]{color:#8c8c8c;font-size:12px;gap:4px}.section-title[data-v-ef8bcc8c]{border-left:3px solid #1890ff;color:#595959;font-size:13px;font-weight:600;margin:16px 0 8px;padding-left:8px}.bluetooth-section[data-v-ef8bcc8c],.event-section[data-v-ef8bcc8c]{background:#fff;border-radius:8px;margin-top:12px;padding:12px}.bluetooth-list[data-v-ef8bcc8c]{display:flex;flex-wrap:wrap;gap:8px}.bluetooth-item[data-v-ef8bcc8c]{align-items:center;background:#fafafa;border-radius:6px;display:flex;font-size:12px;gap:8px;padding:6px 10px}.bt-mac[data-v-ef8bcc8c]{color:#595959;font-family:JetBrains Mono,monospace}.bt-rssi[data-v-ef8bcc8c]{align-items:center;display:flex;gap:6px}.rssi-val[data-v-ef8bcc8c]{font-size:11px;font-weight:600;min-width:50px}.event-list[data-v-ef8bcc8c]{display:flex;flex-direction:column;gap:6px}.event-item[data-v-ef8bcc8c]{align-items:center;background:#fafafa;border-radius:6px;display:flex;font-size:12px;gap:10px;padding:6px 10px}.event-time[data-v-ef8bcc8c]{color:#8c8c8c;font-family:JetBrains Mono,monospace}.event-key[data-v-ef8bcc8c]{color:#595959}

View File

@@ -1 +0,0 @@
[data-v-60be0d81] .ant-card-body{padding:20px}

View File

@@ -0,0 +1 @@
@media (prefers-color-scheme:dark){.area-form-modal[data-v-d4632940] .ant-modal-header{border-bottom-color:#374151}}@media (prefers-color-scheme:dark){.area-form-modal[data-v-d4632940] .ant-modal-body::-webkit-scrollbar-thumb{background:#4b5563}.area-form-modal[data-v-d4632940] .ant-modal-body::-webkit-scrollbar-thumb:hover{background:#6b7280}}.area-form-modal[data-v-d4632940] .ant-modal-header{border-bottom:1px solid #e5e7eb;padding:20px 24px}.area-form-modal[data-v-d4632940] .ant-modal-body{max-height:600px;overflow-y:auto;padding:24px}.area-form[data-v-d4632940] .ant-form-item{margin-bottom:20px}.area-form[data-v-d4632940] .ant-form-item-label{font-weight:500}.area-form-modal[data-v-d4632940] .ant-modal-body::-webkit-scrollbar{width:6px}.area-form-modal[data-v-d4632940] .ant-modal-body::-webkit-scrollbar-track{background:transparent}.area-form-modal[data-v-d4632940] .ant-modal-body::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:3px}.area-form-modal[data-v-d4632940] .ant-modal-body::-webkit-scrollbar-thumb:hover{background:#9ca3af}

View File

@@ -1 +0,0 @@
.search-form[data-v-f14da4fd] .ant-form-item{margin-bottom:16px}

View File

@@ -1 +0,0 @@
@keyframes bounce-8fc39345{0%,50%{transform:translateY(-5px)}to{transform:translateY(0)}}.process-definition-container .definition-item-card .flow-icon-img[data-v-8fc39345]{border-radius:.25rem;height:48px;width:48px}.process-definition-container .definition-item-card .flow-icon[data-v-8fc39345]{align-items:center;background-color:hsl(var(--primary));border-radius:.25rem;display:flex;height:48px;justify-content:center;width:48px}.process-definition-container .definition-item-card.search-match[data-v-8fc39345]{animation:bounce-8fc39345 .5s ease;background-color:#3f73f71a;border:1px solid var(--primary)}

View File

@@ -0,0 +1 @@
.animate-fade-in[data-v-3fdb5021]{animation:fade-in-3fdb5021 .5s ease-in}@keyframes fade-in-3fdb5021{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}

View File

@@ -0,0 +1 @@
.trajectory-page[data-v-ed7cda08]{display:flex;flex-direction:column;gap:16px}.filter-bar[data-v-ed7cda08]{flex-wrap:wrap;gap:20px}.filter-bar[data-v-ed7cda08],.filter-item[data-v-ed7cda08]{align-items:center;display:flex}.filter-item[data-v-ed7cda08]{gap:8px}.filter-label[data-v-ed7cda08]{color:#595959;font-size:13px;white-space:nowrap}.filter-actions[data-v-ed7cda08]{display:flex;gap:8px;margin-left:auto}.badge-option[data-v-ed7cda08]{align-items:center;display:flex;gap:8px}.badge-option-name[data-v-ed7cda08]{color:#262626;font-size:13px}.badge-option-person[data-v-ed7cda08]{color:#8c8c8c;font-size:12px}.content-area[data-v-ed7cda08]{margin-top:0}.left-panel[data-v-ed7cda08]{display:flex;flex-direction:column;gap:16px}.chart-area[data-v-ed7cda08],.detail-card[data-v-ed7cda08]{margin-top:16px}.detail-card[data-v-ed7cda08]{padding:16px}.detail-card-header[data-v-ed7cda08]{align-items:center;display:flex;justify-content:space-between;margin-bottom:12px}.detail-card-title[data-v-ed7cda08]{align-items:center;display:flex;gap:12px}.detail-card-title-text[data-v-ed7cda08]{color:#262626;font-size:14px;font-weight:600}.table-total[data-v-ed7cda08]{color:#8c8c8c;font-size:12px;font-weight:400}.table-wrapper[data-v-ed7cda08]{overflow-x:auto}.trajectory-table[data-v-ed7cda08]{border-collapse:collapse;font-size:13px;width:100%}.trajectory-table th[data-v-ed7cda08]{background:#fafafa;border-bottom:1px solid #f0f0f0;color:#595959;font-weight:500;padding:10px 12px;text-align:left;white-space:nowrap}.trajectory-table td[data-v-ed7cda08]{border-bottom:1px solid #f5f5f5;color:#262626;padding:10px 12px;transition:background-color .3s}.trajectory-table tr:hover td[data-v-ed7cda08]{background-color:#fafafa}.cell-center[data-v-ed7cda08],.table-empty[data-v-ed7cda08]{text-align:center}.table-empty[data-v-ed7cda08]{padding:32px!important}.row-highlight td[data-v-ed7cda08]{background-color:#e6f4ff!important;transition:background-color .3s}.duration-warn[data-v-ed7cda08]{color:#fa8c16;font-weight:500}.table-pagination[data-v-ed7cda08]{align-items:center;display:flex;justify-content:space-between;padding:12px 0 4px}.pagination-info[data-v-ed7cda08]{color:#8c8c8c;font-size:12px}.pagination-buttons[data-v-ed7cda08]{align-items:center;display:flex;gap:8px}.page-num[data-v-ed7cda08]{color:#262626;font-size:13px;font-weight:500;min-width:24px;text-align:center}.view-switcher[data-v-ed7cda08]{border:1px solid #d9d9d9;border-radius:6px;display:inline-flex;overflow:hidden}.view-switcher-btn[data-v-ed7cda08]{align-items:center;background:#fff;border:none;border-right:1px solid #d9d9d9;color:#595959;cursor:pointer;display:inline-flex;font-size:13px;gap:4px;line-height:1;outline:none;padding:4px 12px;transition:all .2s;white-space:nowrap}.view-switcher-btn[data-v-ed7cda08]:last-child{border-right:none}.view-switcher-btn[data-v-ed7cda08]:hover{color:#1677ff}.view-switcher-btn.active[data-v-ed7cda08]{background:#1677ff;color:#fff}

View File

@@ -0,0 +1 @@
.tab-row[data-v-3205bfda]{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;padding:0 16px}.status-tabs[data-v-3205bfda]{flex:1;min-width:0}.status-tabs[data-v-3205bfda] .ant-tabs-nav{margin-bottom:0}.status-tabs[data-v-3205bfda] .ant-tabs-nav:before{display:none}.status-tabs[data-v-3205bfda] .ant-tabs-tab{font-size:14px;padding:14px 4px;transition:all .2s}.status-tabs[data-v-3205bfda] .ant-tabs-tab:hover{color:var(--ant-color-primary)}.status-tabs[data-v-3205bfda] .ant-tabs-tab.ant-tabs-tab-active{font-weight:600}.status-tabs[data-v-3205bfda] .ant-tabs-ink-bar{border-radius:1px;height:2px}.status-tabs .tab-label[data-v-3205bfda]{line-height:1}.tab-actions[data-v-3205bfda]{flex-shrink:0;gap:6px;padding:8px 0}.action-btn[data-v-3205bfda],.tab-actions[data-v-3205bfda]{align-items:center;display:flex}.action-btn[data-v-3205bfda]{background:transparent;border:1px solid #d9d9d9;border-radius:6px;color:#595959;font-size:16px;height:32px;justify-content:center;padding:0;transition:all .2s;width:32px}.action-btn--active[data-v-3205bfda],.action-btn[data-v-3205bfda]:hover{border-color:var(--ant-color-primary);color:var(--ant-color-primary)}.action-btn--active[data-v-3205bfda]{background:var(--ant-color-primary-bg)}.search-panel[data-v-3205bfda]{background:transparent;border-bottom:1px solid #f0f0f0;justify-content:space-between;padding:12px 16px}.search-items[data-v-3205bfda],.search-panel[data-v-3205bfda]{align-items:center;display:flex}.search-items[data-v-3205bfda]{flex-wrap:wrap;gap:16px}.search-item[data-v-3205bfda]{align-items:center;display:flex;gap:8px}.search-label[data-v-3205bfda]{color:#595959;font-size:13px;white-space:nowrap}.search-actions[data-v-3205bfda]{align-items:center;display:flex;gap:8px}.btn-icon[data-v-3205bfda]{margin-right:4px}.card-content[data-v-3205bfda]{padding:16px}html.dark .tab-row[data-v-3205bfda]{border-color:#303030}html.dark .action-btn[data-v-3205bfda]{border-color:#434343;color:#8c8c8c}html.dark .action-btn--active[data-v-3205bfda],html.dark .action-btn[data-v-3205bfda]:hover{border-color:var(--ant-color-primary);color:var(--ant-color-primary)}html.dark .action-btn--active[data-v-3205bfda]{background:#1677ff26}html.dark .search-panel[data-v-3205bfda]{background:transparent;border-color:#303030}html.dark .search-label[data-v-3205bfda]{color:#ffffffa6}

View File

@@ -0,0 +1 @@
[data-v-21294c9b] .vxe-grid--form-wrapper{display:none!important}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
[data-v-0be7a333] .ant-tabs{display:flex;flex-direction:column;height:100%}[data-v-0be7a333] .ant-tabs .ant-tabs-content{height:100%}[data-v-0be7a333] .ant-tabs-tabpane{height:100%;overflow-y:auto}

View File

@@ -0,0 +1 @@
@keyframes bounce-a65cec0e{0%,50%{transform:translateY(-5px)}to{transform:translateY(0)}}.animate-bounce-once[data-v-a65cec0e]{animation:bounce-a65cec0e .5s ease}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
.area-tag[data-v-1e9965c9]{border-radius:4px;font-size:12px}

View File

@@ -0,0 +1 @@
@media (max-width:768px){.work-order-dashboard[data-v-37bd0ab5]{padding:8px}.chart-container[data-v-37bd0ab5]{height:220px!important}.modern-chart[data-v-37bd0ab5]{height:160px!important}}.work-order-dashboard[data-v-37bd0ab5]{padding:16px}.metric-card[data-v-37bd0ab5]{background:#fff;border:1px solid #f0f0f0;border-radius:8px;overflow:hidden;position:relative;transition:all .3s ease}.metric-card[data-v-37bd0ab5]:hover{box-shadow:0 4px 16px #0000000f;transform:translateY(-2px)}.metric-card[data-v-37bd0ab5] .ant-card-body{padding:16px}.metric-card .metric-content[data-v-37bd0ab5]{align-items:center;display:flex;gap:12px}.metric-card .metric-icon[data-v-37bd0ab5]{align-items:center;border-radius:10px;display:flex;flex-shrink:0;font-size:22px;height:48px;justify-content:center;width:48px}.metric-card .metric-icon[data-v-37bd0ab5] svg{height:22px;width:22px}.metric-card .metric-info[data-v-37bd0ab5]{flex:1}.metric-card .metric-label[data-v-37bd0ab5]{color:#262626;font-size:13px;margin-bottom:2px}.metric-card--pending .metric-icon[data-v-37bd0ab5]{background:#fff1f0;color:#ff4d4f}.metric-card--progress .metric-icon[data-v-37bd0ab5]{background:#e6f4ff;color:#1677ff}.metric-card--completed .metric-icon[data-v-37bd0ab5]{background:#f6ffed;color:#52c41a}.metric-card--total .metric-icon[data-v-37bd0ab5]{background:#f9f0ff;color:#722ed1}.chart-card[data-v-37bd0ab5]{background:#fff;border:1px solid #f0f0f0;border-radius:8px;transition:all .3s ease}.chart-card[data-v-37bd0ab5]:hover{box-shadow:0 2px 12px #0000000d}.chart-card[data-v-37bd0ab5] .ant-card-head{border-bottom:1px solid #f0f0f0;min-height:44px;padding:0 16px}.chart-card[data-v-37bd0ab5] .ant-card-head .ant-card-head-title{color:#262626;font-size:14px;font-weight:600;padding:12px 0}.chart-card[data-v-37bd0ab5] .ant-card-body{padding:12px 16px 16px}.chart-card--compact[data-v-37bd0ab5] .ant-card-body{padding:12px 16px}.chart-card--equal[data-v-37bd0ab5]{display:flex;flex-direction:column;height:100%;min-height:260px}.chart-card--equal[data-v-37bd0ab5] .ant-card-body{display:flex;flex:1;flex-direction:column;justify-content:center}.chart-card .info-icon[data-v-37bd0ab5]{color:#8c8c8c;cursor:help;font-size:14px}.chart-card .info-icon[data-v-37bd0ab5]:hover{color:#1677ff}.chart-card .card-title[data-v-37bd0ab5]{align-items:center;color:#262626;display:flex;font-size:14px;font-weight:600;gap:6px}.chart-card .card-title .title-icon[data-v-37bd0ab5]{color:#1677ff;font-size:16px}.chart-card .chart-container[data-v-37bd0ab5]{height:280px}.chart-card .chart-container--medium[data-v-37bd0ab5]{height:240px}.chart-card .chart-container--small[data-v-37bd0ab5]{height:200px}.modern-card[data-v-37bd0ab5]{background:#fff;border:1px solid #f0f0f0;border-radius:8px;height:100%;min-height:260px;overflow:hidden;transition:all .3s ease}.modern-card[data-v-37bd0ab5]:hover{box-shadow:0 4px 16px #0000000f;transform:translateY(-1px)}.modern-card[data-v-37bd0ab5] .ant-card-body{display:flex;flex-direction:column;height:100%;padding:16px}.modern-card .modern-header[data-v-37bd0ab5]{align-items:center;display:flex;margin-bottom:12px}.modern-card .modern-title[data-v-37bd0ab5]{color:#262626;font-size:14px;font-weight:600}.modern-card .modern-chart[data-v-37bd0ab5]{flex:1;height:180px;min-height:180px}.modern-card--heatmap .modern-chart[data-v-37bd0ab5]{height:200px}.modern-card--duration .modern-chart[data-v-37bd0ab5],.modern-card--ranking .modern-chart[data-v-37bd0ab5]{height:180px}html.dark .metric-card[data-v-37bd0ab5]{background:#1f1f1f;border-color:#303030}html.dark .metric-card[data-v-37bd0ab5]:hover{box-shadow:0 8px 24px #0006}html.dark .metric-card .metric-label[data-v-37bd0ab5]{color:#ffffffa6}html.dark .chart-card[data-v-37bd0ab5]{background:#1f1f1f;border-color:#303030}html.dark .chart-card[data-v-37bd0ab5] .ant-card-head{border-bottom-color:#303030}html.dark .chart-card[data-v-37bd0ab5] .ant-card-head .ant-card-head-title,html.dark .card-title[data-v-37bd0ab5]{color:#ffffffd9}html.dark .modern-card[data-v-37bd0ab5]{background:#1f1f1f;border-color:#303030}html.dark .modern-card .modern-title[data-v-37bd0ab5]{color:#ffffffd9}

View File

@@ -0,0 +1 @@
.area-security-page[data-v-39c2dafb]{padding:16px}.area-security-tabs[data-v-39c2dafb] .ant-tabs-nav{margin-bottom:16px}@media (max-width:768px){.area-security-page[data-v-39c2dafb]{padding:8px}}

View File

@@ -0,0 +1 @@
@media (max-width:768px){.area-device-page[data-v-0d7cead9]{padding:8px}.layout-row[data-v-0d7cead9]{flex-direction:column}.tree-col[data-v-0d7cead9]{margin-bottom:12px}.tree-card[data-v-0d7cead9] .ant-card-body{max-height:200px}}.area-device-page[data-v-0d7cead9]{padding:16px}.layout-row[data-v-0d7cead9]{flex-wrap:wrap}.layout-row[data-v-0d7cead9],.tree-card[data-v-0d7cead9],.tree-col[data-v-0d7cead9]{display:flex}.tree-card[data-v-0d7cead9]{border-radius:8px;flex-direction:column;width:100%}.tree-card[data-v-0d7cead9] .ant-card-head{min-height:44px;padding:0 16px}.tree-card[data-v-0d7cead9] .ant-card-head .ant-card-head-title{font-size:14px;font-weight:600;padding:12px 0}.tree-card[data-v-0d7cead9] .ant-card-body{flex:1;overflow-y:auto;padding:12px 16px}.tree-card[data-v-0d7cead9] .ant-tree{background:transparent}.content-header[data-v-0d7cead9]{align-items:center;display:flex;justify-content:space-between}.content-header__left[data-v-0d7cead9]{align-items:baseline;display:flex;gap:8px}.content-title[data-v-0d7cead9]{color:#262626;font-size:16px;font-weight:600}.content-subtitle[data-v-0d7cead9]{color:#8c8c8c;font-size:13px}.empty-card[data-v-0d7cead9]{border-radius:8px}.empty-card[data-v-0d7cead9] .ant-card-body{align-items:center;display:flex;justify-content:center;min-height:300px}html.dark .content-title[data-v-0d7cead9]{color:#ffffffd9}html.dark .content-subtitle[data-v-0d7cead9]{color:#ffffff73}

View File

@@ -1 +0,0 @@
.animate-fade-in[data-v-2cc5b9c2]{animation:fade-in-2cc5b9c2 .5s ease-in}@keyframes fade-in-2cc5b9c2{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}

View File

@@ -0,0 +1 @@
[data-v-4a708ec0] .ant-tabs-tab-btn{font-size:14px!important}

View File

@@ -1 +0,0 @@
[data-v-f65fda5c] .vben-page-content{padding:16px}

View File

@@ -1 +0,0 @@
.ant-tabs-content[data-v-1e6cf9ba]{height:100%}.process-tabs-container[data-v-1e6cf9ba],[data-v-1e6cf9ba] .ant-tabs{display:flex;flex-direction:column;height:100%}[data-v-1e6cf9ba] .ant-tabs-content{flex:1;overflow-y:auto}[data-v-1e6cf9ba] .ant-tabs-tabpane{height:100%}.tab-pane-content[data-v-1e6cf9ba]{height:calc(100vh - 420px);overflow-x:hidden;overflow-y:auto;overflow:hidden auto;padding-right:12px}

View File

@@ -1 +0,0 @@
[data-v-404486f4] .vxe-toolbar div{z-index:1}[data-v-404486f4] .vxe-grid--form-wrapper{display:none!important}.ant-image-preview-img{max-height:80%!important;max-width:80%!important;-o-object-fit:contain!important;object-fit:contain!important}.ant-image-preview-operations{background:#000000b3!important}

View File

@@ -0,0 +1 @@
[data-v-71fa39af] .vxe-grid--form-wrapper{display:none!important}.tab-row[data-v-71fa39af]{align-items:center;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;padding:0 16px}.status-tabs[data-v-71fa39af]{flex:1;min-width:0}.status-tabs[data-v-71fa39af] .ant-tabs-nav{margin-bottom:0}.status-tabs[data-v-71fa39af] .ant-tabs-nav:before{display:none}.status-tabs[data-v-71fa39af] .ant-tabs-tab{font-size:14px;padding:14px 4px;transition:all .2s}.status-tabs[data-v-71fa39af] .ant-tabs-tab:hover{color:var(--ant-color-primary)}.status-tabs[data-v-71fa39af] .ant-tabs-tab.ant-tabs-tab-active{font-weight:600}.status-tabs[data-v-71fa39af] .ant-tabs-ink-bar{border-radius:1px;height:2px}.status-tabs .tab-item[data-v-71fa39af]{align-items:center;display:flex;gap:6px}.status-tabs .tab-label[data-v-71fa39af]{line-height:1}.status-tabs .tab-count[data-v-71fa39af]{align-items:center;background:#8c8c8c;border-radius:9px;color:#fff;display:inline-flex;font-size:11px;font-weight:500;height:18px;justify-content:center;line-height:1;min-width:18px;padding:0 5px}.status-tabs .tab-count--danger[data-v-71fa39af]{background:#ff4d4f}.tab-actions[data-v-71fa39af]{align-items:center;display:flex;flex-shrink:0;gap:6px;padding:8px 0}.btn-divider[data-v-71fa39af]{background:#e5e5e5;height:16px;margin:0 4px;width:1px}.btn-group[data-v-71fa39af]{background:#f5f5f5;border-radius:6px;display:flex;gap:0}.btn-group .group-btn[data-v-71fa39af]{align-items:center;background:transparent;border:none;border-radius:6px;color:#8c8c8c;display:flex;font-size:16px;height:32px;justify-content:center;padding:0;transition:all .2s;width:32px}.btn-group .group-btn[data-v-71fa39af]:hover{color:#595959}.btn-group .group-btn--active[data-v-71fa39af]{background:#fff;box-shadow:0 1px 2px #00000014;color:var(--ant-color-primary)}.action-btn[data-v-71fa39af]{align-items:center;background:transparent;border:1px solid #d9d9d9;border-radius:6px;color:#595959;display:flex;font-size:16px;height:32px;justify-content:center;padding:0;transition:all .2s;width:32px}.action-btn--active[data-v-71fa39af],.action-btn[data-v-71fa39af]:hover{border-color:var(--ant-color-primary);color:var(--ant-color-primary)}.action-btn--active[data-v-71fa39af]{background:var(--ant-color-primary-bg)}.create-btn[data-v-71fa39af]{border-radius:6px;font-size:14px;gap:4px;height:32px;padding:0 14px}.create-btn[data-v-71fa39af],.search-panel[data-v-71fa39af]{align-items:center;display:flex}.search-panel[data-v-71fa39af]{background:transparent;border-bottom:1px solid #f0f0f0;justify-content:space-between;padding:12px 16px}.search-items[data-v-71fa39af]{flex-wrap:wrap;gap:16px}.search-item[data-v-71fa39af],.search-items[data-v-71fa39af]{align-items:center;display:flex}.search-item[data-v-71fa39af]{gap:8px}.search-label[data-v-71fa39af]{color:#595959;font-size:13px;white-space:nowrap}.search-actions[data-v-71fa39af]{align-items:center;display:flex;gap:8px}.card-content[data-v-71fa39af],.list-content[data-v-71fa39af]{padding:16px}.list-content[data-v-71fa39af] .vxe-grid{background:transparent;border-radius:8px;overflow:hidden}.list-content[data-v-71fa39af] .vxe-table{background:transparent}.list-content[data-v-71fa39af] .vxe-header--column{background:#00000005}.list-content[data-v-71fa39af] .vxe-body--row{background:transparent}.list-content[data-v-71fa39af] .vxe-body--row:hover>td{background:#0000000a!important}.list-content[data-v-71fa39af] .vxe-table--border-line{border-color:#0000000f}html.dark .tab-row[data-v-71fa39af]{border-color:#303030}html.dark .btn-divider[data-v-71fa39af]{background:#404040}html.dark .btn-group[data-v-71fa39af]{background:#333}html.dark .btn-group .group-btn[data-v-71fa39af]{color:#8c8c8c}html.dark .btn-group .group-btn[data-v-71fa39af]:hover{color:#bfbfbf}html.dark .btn-group .group-btn--active[data-v-71fa39af]{background:#1f1f1f;color:var(--ant-color-primary)}html.dark .action-btn[data-v-71fa39af]{border-color:#434343;color:#8c8c8c}html.dark .action-btn--active[data-v-71fa39af],html.dark .action-btn[data-v-71fa39af]:hover{border-color:var(--ant-color-primary);color:var(--ant-color-primary)}html.dark .action-btn--active[data-v-71fa39af]{background:#1677ff26}html.dark .tab-count[data-v-71fa39af]{background:#595959}html.dark .tab-count--danger[data-v-71fa39af]{background:#a61d24}html.dark .search-panel[data-v-71fa39af]{background:transparent;border-color:#303030}html.dark .search-label[data-v-71fa39af]{color:#ffffffa6}html.dark .list-content[data-v-71fa39af] .vxe-grid,html.dark .list-content[data-v-71fa39af] .vxe-table{background:transparent}html.dark .list-content[data-v-71fa39af] .vxe-header--column{background:#ffffff0a}html.dark .list-content[data-v-71fa39af] .vxe-body--row{background:transparent}html.dark .list-content[data-v-71fa39af] .vxe-body--row:hover>td{background:#ffffff0f!important}html.dark .list-content[data-v-71fa39af] .vxe-table--border-line{border-color:#ffffff14}

View File

@@ -1 +0,0 @@
[data-v-edf3a67b] .ant-tabs-tab-btn{font-size:14px!important}

View File

@@ -1 +0,0 @@
[data-v-7f53c4b0] .vxe-toolbar div{z-index:1}[data-v-7f53c4b0] .vxe-grid--form-wrapper{display:none!important}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
.custom-login-wrapper[data-v-a4c08deb]{width:100%}

View File

@@ -0,0 +1 @@
.custom-login-wrapper[data-v-2e958cf2]{width:100%}

View File

@@ -1 +0,0 @@
.product-card-view .product-card[data-v-37e11509]{border-radius:8px;height:100%;overflow:hidden;transition:all .3s ease}.product-card-view .product-card[data-v-37e11509]:hover{box-shadow:0 4px 16px #00000014;transform:translateY(-2px)}.product-card-view .product-card[data-v-37e11509] .ant-card-body{display:flex;flex-direction:column;height:100%}.product-card-view .product-card .product-icon[data-v-37e11509]{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border-radius:8px;color:#fff;display:flex;flex-shrink:0;height:48px;justify-content:center;width:48px}.product-card-view .product-card .product-title[data-v-37e11509]{font-size:16px;font-weight:600;line-height:1.5;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.product-card-view .product-card .info-list .info-item[data-v-37e11509]{align-items:center;display:flex;font-size:13px;margin-bottom:10px}.product-card-view .product-card .info-list .info-item[data-v-37e11509]:last-child{margin-bottom:0}.product-card-view .product-card .info-list .info-item .info-label[data-v-37e11509]{flex-shrink:0;margin-right:8px;opacity:.65}.product-card-view .product-card .info-list .info-item .info-value[data-v-37e11509]{font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.product-card-view .product-card .info-list .info-item .info-value.text-primary[data-v-37e11509]{color:#1890ff}.product-card-view .product-card .info-list .info-item .product-key[data-v-37e11509]{cursor:help;display:inline-block;font-family:Courier New,monospace;font-size:12px;max-width:150px;opacity:.85;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;white-space:nowrap}.product-card-view .product-card .info-list .info-item .info-tag[data-v-37e11509]{font-size:12px}.product-card-view .product-card .product-3d-icon[data-v-37e11509]{align-items:center;background:linear-gradient(135deg,#667eea15,#764ba215);border-radius:8px;color:#667eea;display:flex;flex-shrink:0;height:100px;justify-content:center;opacity:.8;width:100px}.product-card-view .product-card .action-buttons[data-v-37e11509]{border-top:1px solid var(--ant-color-split);display:flex;gap:8px;margin-top:auto;padding-top:12px}.product-card-view .product-card .action-buttons .action-btn[data-v-37e11509]{border-radius:6px;flex:1;font-size:13px;height:32px;transition:all .2s}.product-card-view .product-card .action-buttons .action-btn.action-btn-edit[data-v-37e11509]{border-color:#1890ff;color:#1890ff}.product-card-view .product-card .action-buttons .action-btn.action-btn-edit[data-v-37e11509]:hover{background:#1890ff;color:#fff}.product-card-view .product-card .action-buttons .action-btn.action-btn-detail[data-v-37e11509]{border-color:#52c41a;color:#52c41a}.product-card-view .product-card .action-buttons .action-btn.action-btn-detail[data-v-37e11509]:hover{background:#52c41a;color:#fff}.product-card-view .product-card .action-buttons .action-btn.action-btn-model[data-v-37e11509]{border-color:#722ed1;color:#722ed1}.product-card-view .product-card .action-buttons .action-btn.action-btn-model[data-v-37e11509]:hover{background:#722ed1;color:#fff}.product-card-view .product-card .action-buttons .action-btn.action-btn-delete[data-v-37e11509]{flex:0 0 32px;padding:0}html.dark .product-card-view .product-card[data-v-37e11509]:hover{box-shadow:0 4px 16px #0000004d}html.dark .product-card-view .product-card .product-title[data-v-37e11509]{color:#ffffffd9}html.dark .product-card-view .product-card .info-list .info-label[data-v-37e11509]{color:#ffffffa6}html.dark .product-card-view .product-card .info-list .info-value[data-v-37e11509]{color:#ffffffd9}html.dark .product-card-view .product-card .info-list .product-key[data-v-37e11509]{color:#ffffffbf}html.dark .product-card-view .product-card .product-3d-icon[data-v-37e11509]{background:linear-gradient(135deg,#667eea25,#764ba225);color:#8b9cff}

View File

@@ -0,0 +1 @@
.cropper-container{direction:ltr;font-size:0;line-height:0;position:relative;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.cropper-container img{backface-visibility:hidden;display:block;height:100%;image-orientation:0deg;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;width:100%}.cropper-canvas,.cropper-crop-box,.cropper-drag-box,.cropper-modal,.cropper-wrap-box{inset:0;position:absolute}.cropper-canvas,.cropper-wrap-box{overflow:hidden}.cropper-drag-box{background-color:#fff;opacity:0}.cropper-modal{background-color:#000;opacity:.5}.cropper-view-box{display:block;height:100%;outline:1px solid #39f;outline-color:#3399ffbf;overflow:hidden;width:100%}.cropper-dashed{border:0 dashed #eee;display:block;opacity:.5;position:absolute}.cropper-dashed.dashed-h{border-bottom-width:1px;border-top-width:1px;height:33.33333%;left:0;top:33.33333%;width:100%}.cropper-dashed.dashed-v{border-left-width:1px;border-right-width:1px;height:100%;left:33.33333%;top:0;width:33.33333%}.cropper-center{display:block;height:0;left:50%;opacity:.75;position:absolute;top:50%;width:0}.cropper-center:after,.cropper-center:before{background-color:#eee;content:" ";display:block;position:absolute}.cropper-center:before{height:1px;left:-3px;top:0;width:7px}.cropper-center:after{height:7px;left:0;top:-3px;width:1px}.cropper-face,.cropper-line,.cropper-point{display:block;height:100%;opacity:.1;position:absolute;width:100%}.cropper-face{background-color:#fff;left:0;top:0}.cropper-line{background-color:#39f}.cropper-line.line-e{cursor:ew-resize;right:-3px;top:0;width:5px}.cropper-line.line-n{cursor:ns-resize;height:5px;left:0;top:-3px}.cropper-line.line-w{cursor:ew-resize;left:-3px;top:0;width:5px}.cropper-line.line-s{bottom:-3px;cursor:ns-resize;height:5px;left:0}.cropper-point{background-color:#39f;height:5px;opacity:.75;width:5px}.cropper-point.point-e{cursor:ew-resize;margin-top:-3px;right:-3px;top:50%}.cropper-point.point-n{cursor:ns-resize;left:50%;margin-left:-3px;top:-3px}.cropper-point.point-w{cursor:ew-resize;left:-3px;margin-top:-3px;top:50%}.cropper-point.point-s{bottom:-3px;cursor:s-resize;left:50%;margin-left:-3px}.cropper-point.point-ne{cursor:nesw-resize;right:-3px;top:-3px}.cropper-point.point-nw{cursor:nwse-resize;left:-3px;top:-3px}.cropper-point.point-sw{bottom:-3px;cursor:nesw-resize;left:-3px}.cropper-point.point-se{bottom:-3px;cursor:nwse-resize;height:20px;opacity:1;right:-3px;width:20px}@media (min-width:768px){.cropper-point.point-se{height:15px;width:15px}}@media (min-width:992px){.cropper-point.point-se{height:10px;width:10px}}@media (min-width:1200px){.cropper-point.point-se{height:5px;opacity:.75;width:5px}}.cropper-point.point-se:before{background-color:#39f;bottom:-50%;content:" ";display:block;height:200%;opacity:0;position:absolute;right:-50%;width:200%}.cropper-invisible{opacity:0}.cropper-bg{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC)}.cropper-hide{display:block;height:0;position:absolute;width:0}.cropper-hidden{display:none!important}.cropper-move{cursor:move}.cropper-crop{cursor:crosshair}.cropper-disabled .cropper-drag-box,.cropper-disabled .cropper-face,.cropper-disabled .cropper-line,.cropper-disabled .cropper-point{cursor:not-allowed}.cropper-image--circled .cropper-face,.cropper-image--circled .cropper-view-box{border-radius:50%}.profile-item[data-v-9c1c1b33]{align-items:center;border-bottom:1px solid rgba(0,0,0,.06);display:flex;justify-content:space-between;padding:8px 4px}.dark .profile-item[data-v-9c1c1b33]{border-bottom-color:#ffffff14}.profile-item[data-v-9c1c1b33]:last-child{border-bottom:none}.profile-item-label[data-v-9c1c1b33]{align-items:center;color:#000000a6;display:flex;font-size:14px}.dark .profile-item-label[data-v-9c1c1b33]{color:#ffffffa6}.profile-item-value[data-v-9c1c1b33]{color:#000000d9;font-size:14px}.dark .profile-item-value[data-v-9c1c1b33]{color:#ffffffd9}

View File

@@ -1 +0,0 @@
.cropper-container{direction:ltr;font-size:0;line-height:0;position:relative;touch-action:none;-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.cropper-container img{backface-visibility:hidden;display:block;height:100%;image-orientation:0deg;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;width:100%}.cropper-canvas,.cropper-crop-box,.cropper-drag-box,.cropper-modal,.cropper-wrap-box{inset:0;position:absolute}.cropper-canvas,.cropper-wrap-box{overflow:hidden}.cropper-drag-box{background-color:#fff;opacity:0}.cropper-modal{background-color:#000;opacity:.5}.cropper-view-box{display:block;height:100%;outline:1px solid #39f;outline-color:#3399ffbf;overflow:hidden;width:100%}.cropper-dashed{border:0 dashed #eee;display:block;opacity:.5;position:absolute}.cropper-dashed.dashed-h{border-bottom-width:1px;border-top-width:1px;height:33.33333%;left:0;top:33.33333%;width:100%}.cropper-dashed.dashed-v{border-left-width:1px;border-right-width:1px;height:100%;left:33.33333%;top:0;width:33.33333%}.cropper-center{display:block;height:0;left:50%;opacity:.75;position:absolute;top:50%;width:0}.cropper-center:after,.cropper-center:before{background-color:#eee;content:" ";display:block;position:absolute}.cropper-center:before{height:1px;left:-3px;top:0;width:7px}.cropper-center:after{height:7px;left:0;top:-3px;width:1px}.cropper-face,.cropper-line,.cropper-point{display:block;height:100%;opacity:.1;position:absolute;width:100%}.cropper-face{background-color:#fff;left:0;top:0}.cropper-line{background-color:#39f}.cropper-line.line-e{cursor:ew-resize;right:-3px;top:0;width:5px}.cropper-line.line-n{cursor:ns-resize;height:5px;left:0;top:-3px}.cropper-line.line-w{cursor:ew-resize;left:-3px;top:0;width:5px}.cropper-line.line-s{bottom:-3px;cursor:ns-resize;height:5px;left:0}.cropper-point{background-color:#39f;height:5px;opacity:.75;width:5px}.cropper-point.point-e{cursor:ew-resize;margin-top:-3px;right:-3px;top:50%}.cropper-point.point-n{cursor:ns-resize;left:50%;margin-left:-3px;top:-3px}.cropper-point.point-w{cursor:ew-resize;left:-3px;margin-top:-3px;top:50%}.cropper-point.point-s{bottom:-3px;cursor:s-resize;left:50%;margin-left:-3px}.cropper-point.point-ne{cursor:nesw-resize;right:-3px;top:-3px}.cropper-point.point-nw{cursor:nwse-resize;left:-3px;top:-3px}.cropper-point.point-sw{bottom:-3px;cursor:nesw-resize;left:-3px}.cropper-point.point-se{bottom:-3px;cursor:nwse-resize;height:20px;opacity:1;right:-3px;width:20px}@media (min-width:768px){.cropper-point.point-se{height:15px;width:15px}}@media (min-width:992px){.cropper-point.point-se{height:10px;width:10px}}@media (min-width:1200px){.cropper-point.point-se{height:5px;opacity:.75;width:5px}}.cropper-point.point-se:before{background-color:#39f;bottom:-50%;content:" ";display:block;height:200%;opacity:0;position:absolute;right:-50%;width:200%}.cropper-invisible{opacity:0}.cropper-bg{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC)}.cropper-hide{display:block;height:0;position:absolute;width:0}.cropper-hidden{display:none!important}.cropper-move{cursor:move}.cropper-crop{cursor:crosshair}.cropper-disabled .cropper-drag-box,.cropper-disabled .cropper-face,.cropper-disabled .cropper-line,.cropper-disabled .cropper-point{cursor:not-allowed}.cropper-image--circled .cropper-face,.cropper-image--circled .cropper-view-box{border-radius:50%}

View File

@@ -0,0 +1 @@
.sa-order-info[data-v-2f4a06af]{background:#fafafa;border-radius:8px;display:flex;flex-direction:column;gap:8px;margin-bottom:12px;padding:10px 12px}.sa-info-row[data-v-2f4a06af]{align-items:flex-start;display:flex;font-size:13px;gap:6px;line-height:20px}.sa-info-icon[data-v-2f4a06af]{margin-top:2px}.sa-info-icon[data-v-2f4a06af],.sa-info-label[data-v-2f4a06af]{color:#8c8c8c;flex-shrink:0}.sa-info-value[data-v-2f4a06af]{color:#333;flex:1;min-width:0;word-break:break-all}.sa-info-desc[data-v-2f4a06af]{display:-webkit-box;-webkit-line-clamp:2;overflow:hidden;text-overflow:ellipsis;-webkit-box-orient:vertical}.sa-section[data-v-2f4a06af]{margin-bottom:12px}.sa-section-title[data-v-2f4a06af]{font-size:13px;font-weight:500;margin-bottom:8px}.sa-list[data-v-2f4a06af]{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:6px;gap:6px;max-height:240px;overflow-y:auto}.sa-item[data-v-2f4a06af]{align-items:center;border:1px solid transparent;border-radius:6px;cursor:pointer;display:flex;gap:8px;padding:6px 10px;transition:all .15s}.sa-item[data-v-2f4a06af]:hover{background:#f5f5f5}.sa-item--active[data-v-2f4a06af]{background:#e6f4ff;border-color:#91caff;color:#1677ff;font-weight:600}.sa-avatar[data-v-2f4a06af]{background:#1677ff;flex-shrink:0;font-size:12px}.sa-item--active .sa-avatar[data-v-2f4a06af]{background:#0958d9}.sa-name[data-v-2f4a06af]{flex:1;font-size:13px;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sa-check[data-v-2f4a06af]{color:#1677ff;flex-shrink:0}.sa-pagination[data-v-2f4a06af]{display:flex;justify-content:flex-end;padding-top:8px}html.dark .sa-order-info[data-v-2f4a06af]{background:#ffffff0f}html.dark .sa-info-value[data-v-2f4a06af]{color:#ffffffd9}html.dark .sa-item[data-v-2f4a06af]:hover{background:#ffffff14}html.dark .sa-item--active[data-v-2f4a06af]{background:#1677ff26;border-color:#1677ff66;color:#69b1ff}

View File

@@ -0,0 +1 @@
.security-detail-ext[data-v-1f8d5688]{width:100%}.event-layout[data-v-1f8d5688]{display:flex;gap:16px}.event-layout:not(.has-image) .event-info[data-v-1f8d5688]{width:100%}.event-image[data-v-1f8d5688]{display:flex;flex-direction:column;flex-shrink:0;gap:6px;width:280px}.event-image .alarm-img-wrapper[data-v-1f8d5688]{border:1px solid #f0f0f0;border-radius:8px;height:190px;overflow:hidden;width:100%}.event-image .alarm-img-wrapper[data-v-1f8d5688] .ant-image{display:block;height:100%;width:100%}.event-image .alarm-img-wrapper[data-v-1f8d5688] .ant-image-img{height:100%;-o-object-fit:cover;object-fit:cover;width:100%}.event-image .image-caption[data-v-1f8d5688]{align-items:center;color:#8c8c8c;display:flex;font-size:12px;gap:4px;justify-content:center}.event-info[data-v-1f8d5688]{flex:1;min-width:0}.phone-text[data-v-1f8d5688]{color:#8c8c8c}.meta-code[data-v-1f8d5688]{background:#f0f5ff;border-radius:4px;color:#1677ff;font-size:12px;padding:1px 6px}.section-label[data-v-1f8d5688]{align-items:center;color:#000000a6;display:flex;font-size:13px;font-weight:500}.image-gallery[data-v-1f8d5688]{display:flex;flex-wrap:wrap;gap:8px}.image-gallery[data-v-1f8d5688] .ant-image{border:1px solid #f0f0f0;border-radius:8px;overflow:hidden;transition:transform .2s}.image-gallery[data-v-1f8d5688] .ant-image:hover{transform:scale(1.03)}.image-gallery[data-v-1f8d5688] .ant-image-img{border-radius:8px}.result-content[data-v-1f8d5688]{color:#000000d9;font-size:14px;line-height:1.8;word-wrap:break-word;white-space:pre-wrap}.info-card[data-v-1f8d5688] .ant-descriptions-item-label{background:#fafafa;font-size:13px;font-weight:500}.info-card[data-v-1f8d5688] .ant-descriptions-item-content{font-size:13px}html.dark{color:#ffffff73}html.dark{background:#1677ff1a;color:#4096ff}html.dark{color:#ffffffa6}html.dark{color:#ffffffd9}html.dark{border-color:#303030}

View File

@@ -0,0 +1 @@
[data-v-e6a522b2] .ant-transfer{align-items:center;display:flex;height:500px;justify-content:space-between}[data-v-e6a522b2] .ant-transfer-list{display:flex;flex:1;flex-direction:column;height:100%;width:300px!important}[data-v-e6a522b2] .ant-transfer-list-header{flex-shrink:0}[data-v-e6a522b2] .ant-transfer-list-search{flex-shrink:0;padding:8px}[data-v-e6a522b2] .ant-transfer-list-body{flex:1;overflow:auto}[data-v-e6a522b2] .ant-transfer-list-content{height:auto!important}[data-v-e6a522b2] .ant-transfer-list-content-item{padding:6px 12px}[data-v-e6a522b2] .ant-transfer-operation{padding:0 8px}[data-v-e6a522b2] .ant-transfer-list-footer{flex-shrink:0}[data-v-e6a522b2] .ant-pagination{font-size:12px;margin:8px;text-align:right}[data-v-e6a522b2] .ant-pagination-options{margin-left:8px}[data-v-e6a522b2] .ant-pagination-options-size-changer{margin-right:8px}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
.staff-card[data-v-72e724d4]{border-radius:8px;overflow:hidden;transition:all .3s ease}.staff-card[data-v-72e724d4]:hover{box-shadow:0 4px 16px #00000014;transform:translateY(-2px)}.staff-card--inherited[data-v-72e724d4]{border-style:dashed;opacity:.75}.staff-card__body[data-v-72e724d4]{padding:16px}.staff-card__header[data-v-72e724d4]{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.staff-card__name[data-v-72e724d4]{color:#262626;flex:1;font-size:15px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.staff-card__tag[data-v-72e724d4]{flex-shrink:0;margin-right:0}.staff-card__info[data-v-72e724d4]{display:flex;flex-direction:column;font-size:13px;gap:4px;margin-bottom:10px}.staff-card__info-row[data-v-72e724d4]{align-items:center;display:flex;gap:8px}.staff-card__info-label[data-v-72e724d4]{color:#8c8c8c;flex-shrink:0}.staff-card__info-value[data-v-72e724d4]{color:#595959;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.staff-card__source[data-v-72e724d4]{color:#1677ff}.staff-card__footer[data-v-72e724d4]{align-items:center;display:flex;gap:8px}.staff-card__go-source[data-v-72e724d4]{padding-left:0}html.dark .staff-card__name[data-v-72e724d4]{color:#ffffffd9}html.dark .staff-card__info-label[data-v-72e724d4]{color:#ffffff73}html.dark .staff-card__info-value[data-v-72e724d4]{color:#ffffffa6}

View File

@@ -0,0 +1 @@
@media (max-width:768px){.layout-row[data-v-0492ed99]{flex-direction:column}.staff-col[data-v-0492ed99]{margin-bottom:12px}.staff-panel[data-v-0492ed99] .ant-card-body{max-height:200px}}.layout-row[data-v-0492ed99]{flex-wrap:wrap}.layout-row[data-v-0492ed99],.staff-col[data-v-0492ed99]{display:flex}.staff-panel[data-v-0492ed99]{border-radius:8px;display:flex;flex-direction:column;width:100%}.staff-panel[data-v-0492ed99] .ant-card-head{min-height:44px;padding:0 16px}.staff-panel[data-v-0492ed99] .ant-card-head .ant-card-head-title{font-size:14px;font-weight:600;padding:12px 0}.staff-panel[data-v-0492ed99] .ant-card-body{flex:1;overflow-y:auto;padding:12px 16px}.staff-search[data-v-0492ed99]{margin-bottom:8px}.staff-list[data-v-0492ed99]{display:flex;flex-direction:column;gap:2px}.staff-list-item[data-v-0492ed99]{align-items:center;border-radius:6px;cursor:pointer;display:flex;padding:8px 12px;transition:background .2s}.staff-list-item[data-v-0492ed99]:hover{background:#f5f5f5}.staff-list-item--active[data-v-0492ed99]{background:#e6f4ff!important;color:#1677ff;font-weight:600}.staff-list-item__title[data-v-0492ed99]{align-items:center;display:flex;flex:1;font-size:13px;gap:6px}.content-header[data-v-0492ed99]{align-items:center;display:flex;justify-content:space-between}.content-header__left[data-v-0492ed99]{align-items:baseline;display:flex;gap:8px}.content-title[data-v-0492ed99]{color:#262626;font-size:16px;font-weight:600}.content-subtitle[data-v-0492ed99]{color:#8c8c8c;font-size:13px}.legend[data-v-0492ed99]{color:#8c8c8c;font-size:12px;gap:16px}.legend[data-v-0492ed99],.legend__item[data-v-0492ed99]{align-items:center;display:flex}.legend__item[data-v-0492ed99]{gap:4px}.legend__dot[data-v-0492ed99]{border-radius:50%;display:inline-block;height:8px;width:8px}.legend__dot--direct[data-v-0492ed99]{background:#1677ff}.legend__dot--inherited[data-v-0492ed99]{background:#91caff}.legend__dot--none[data-v-0492ed99]{background:#d9d9d9}.empty-card[data-v-0492ed99]{border-radius:8px}.empty-card[data-v-0492ed99] .ant-card-body{align-items:center;display:flex;justify-content:center;min-height:300px}.tree-content-card[data-v-0492ed99]{border-radius:8px}.tree-content-card[data-v-0492ed99] .ant-card-body{padding:16px}.tree-content-card[data-v-0492ed99] .ant-tree{background:transparent}.tree-node[data-v-0492ed99]{align-items:center;border-radius:4px;display:inline-flex;gap:6px;padding:2px 4px;transition:background .2s}.tree-node--direct[data-v-0492ed99]{background:#e6f4ff;color:#1677ff;font-weight:600}.tree-node--inherited[data-v-0492ed99]{background:#f5f5f5;color:#595959}.tree-node--none[data-v-0492ed99]{color:#bfbfbf}.tree-node__name[data-v-0492ed99]{white-space:nowrap}.tree-node__tag[data-v-0492ed99]{font-size:11px;line-height:18px;margin-right:0}.tree-node__action[data-v-0492ed99]{font-size:12px;line-height:18px;padding:0 4px}html.dark .content-title[data-v-0492ed99]{color:#ffffffd9}html.dark .content-subtitle[data-v-0492ed99]{color:#ffffff73}html.dark .tree-node--direct[data-v-0492ed99]{background:#1677ff26;color:#69b1ff}html.dark .tree-node--inherited[data-v-0492ed99]{background:#ffffff14;color:#ffffffa6}html.dark .tree-node--none[data-v-0492ed99]{color:#ffffff40}html.dark .staff-list-item[data-v-0492ed99]:hover{background:#ffffff14}html.dark .staff-list-item--active[data-v-0492ed99]{background:#1677ff26!important}html.dark .legend[data-v-0492ed99]{color:#ffffff73}

View File

@@ -0,0 +1 @@
.stats-dashboard[data-v-18a7dc2f]{margin-bottom:12px}.stats-card[data-v-18a7dc2f]{background:#fff;border:1px solid #f0f0f0;border-radius:6px;overflow:hidden;position:relative;transition:all .3s}.stats-card[data-v-18a7dc2f]:hover{border-color:#d9d9d9;box-shadow:0 2px 6px #0000000d}.stats-card .stats-content[data-v-18a7dc2f]{align-items:center;display:flex;gap:10px}.stats-card .stats-icon[data-v-18a7dc2f]{--icon-color:#8c8c8c;--icon-bg:#f5f5f5;align-items:center;background:#f5f5f5;background:var(--icon-bg);border-radius:8px;color:#8c8c8c;color:var(--icon-color);display:flex;flex-shrink:0;height:40px;justify-content:center;transition:all .3s;width:40px}.stats-card .stats-icon[data-v-18a7dc2f] svg{height:20px;width:20px}.stats-card .stats-info[data-v-18a7dc2f]{flex:1;min-width:0}.stats-card .stats-title[data-v-18a7dc2f]{color:#595959;font-size:13px;font-weight:500;line-height:1.3;margin-bottom:2px}.stats-card .stats-value[data-v-18a7dc2f]{color:#262626;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,Roboto,sans-serif;font-feature-settings:"tnum";font-size:20px;font-variant-numeric:tabular-nums;font-weight:600;line-height:1.2}html.dark .stats-card[data-v-18a7dc2f]{background:#1f1f1f;border-color:#303030}html.dark .stats-card[data-v-18a7dc2f]:hover{border-color:#434343;box-shadow:0 2px 8px #0000004d}html.dark .stats-card .stats-title[data-v-18a7dc2f],html.dark .stats-card .stats-value[data-v-18a7dc2f]{color:#ffffffd9}

View File

@@ -0,0 +1 @@
.stats-dashboard[data-v-1b909f89]{margin-bottom:12px}.stats-card[data-v-1b909f89]{background:#fff;border:1px solid #f0f0f0;border-radius:6px;overflow:hidden;position:relative;transition:all .3s}.stats-card[data-v-1b909f89]:hover{border-color:#d9d9d9;box-shadow:0 2px 6px #0000000d}.stats-card--clickable[data-v-1b909f89]{cursor:pointer}.stats-card--clickable[data-v-1b909f89]:hover{box-shadow:0 2px 8px #0000000f;transform:translateY(-1px)}.stats-card .stats-content[data-v-1b909f89]{align-items:center;display:flex;gap:10px}.stats-card .stats-icon[data-v-1b909f89]{--icon-color:#8c8c8c;--icon-bg:#f5f5f5;align-items:center;background:#f5f5f5;background:var(--icon-bg);border-radius:8px;color:#8c8c8c;color:var(--icon-color);display:flex;flex-shrink:0;height:40px;justify-content:center;transition:all .3s;width:40px}.stats-card .stats-icon[data-v-1b909f89] svg{height:20px;width:20px}.stats-card .stats-info[data-v-1b909f89]{flex:1;min-width:0}.stats-card .stats-title[data-v-1b909f89]{color:#595959;font-size:13px;font-weight:500;line-height:1.3;margin-bottom:2px}.stats-card .stats-subtitle[data-v-1b909f89]{color:#8c8c8c;font-size:11px;line-height:1.3;margin-bottom:4px}.stats-card .stats-value[data-v-1b909f89]{color:#262626;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,Roboto,sans-serif;font-feature-settings:"tnum";font-size:20px;font-variant-numeric:tabular-nums;font-weight:600;line-height:1.2}.metric-card[data-v-1b909f89]{background:#fff;border:1px solid #f0f0f0;border-radius:8px;transition:all .3s}.metric-card[data-v-1b909f89]:hover{border-color:#d9d9d9;box-shadow:0 2px 8px #0000000f}.metric-card .metric-header[data-v-1b909f89]{align-items:center;display:flex;justify-content:space-between;margin-bottom:16px}.metric-card .metric-title[data-v-1b909f89]{align-items:center;color:#262626;display:flex;font-size:15px;font-weight:600;gap:8px}.metric-card .metric-icon[data-v-1b909f89]{color:#1677ff;font-size:18px}.metric-card .metric-status[data-v-1b909f89]{background:#1677ff1a;border-radius:4px;font-size:12px;font-weight:500;padding:2px 8px}.metric-card .metric-content[data-v-1b909f89]{display:flex;flex-direction:column;gap:12px}.metric-card .metric-item[data-v-1b909f89]{align-items:center;display:flex;justify-content:space-between;padding:8px 0}.metric-card .metric-label[data-v-1b909f89]{color:#8c8c8c;font-size:13px}.metric-card .metric-value[data-v-1b909f89]{color:#262626;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,Segoe UI,Roboto,sans-serif;font-feature-settings:"tnum";font-size:16px;font-variant-numeric:tabular-nums;font-weight:600}.metric-card .metric-value--primary[data-v-1b909f89]{color:#1677ff}.metric-card .metric-value--success[data-v-1b909f89]{color:#52c41a}.metric-card .metric-progress[data-v-1b909f89]{margin-top:4px}.metric-card .progress-label[data-v-1b909f89]{align-items:center;color:#8c8c8c;display:flex;font-size:12px;justify-content:space-between;margin-bottom:6px}.metric-card .progress-value[data-v-1b909f89]{color:#262626;font-size:13px;font-weight:600}html.dark .stats-card[data-v-1b909f89]{background:#1f1f1f;border-color:#303030}html.dark .stats-card[data-v-1b909f89]:hover{border-color:#434343;box-shadow:0 2px 8px #0000004d}html.dark .stats-card--clickable[data-v-1b909f89]:hover{box-shadow:0 4px 12px #0006}html.dark .stats-card .stats-title[data-v-1b909f89]{color:#ffffffd9}html.dark .stats-card .stats-subtitle[data-v-1b909f89]{color:#ffffff73}html.dark .stats-card .stats-value[data-v-1b909f89]{color:#ffffffd9}html.dark .metric-card[data-v-1b909f89]{background:#1f1f1f;border-color:#303030}html.dark .metric-card[data-v-1b909f89]:hover{border-color:#434343;box-shadow:0 2px 8px #0000004d}html.dark .metric-card .metric-title[data-v-1b909f89]{color:#ffffffd9}html.dark .metric-card .metric-status[data-v-1b909f89]{background:#1677ff33}html.dark .metric-card .metric-label[data-v-1b909f89]{color:#ffffff73}html.dark .metric-card .metric-value[data-v-1b909f89]{color:#ffffffd9}html.dark .metric-card .progress-label[data-v-1b909f89]{color:#ffffff73}html.dark .metric-card .progress-value[data-v-1b909f89]{color:#ffffffd9}

View File

@@ -0,0 +1 @@
.stats-cards[data-v-5c8acf0b]{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:16px;gap:16px}.stat-card[data-v-5c8acf0b]{padding:16px}.stat-card-inner[data-v-5c8acf0b]{gap:12px}.stat-card-inner[data-v-5c8acf0b],.stat-icon[data-v-5c8acf0b]{align-items:center;display:flex}.stat-icon[data-v-5c8acf0b]{border-radius:10px;flex-shrink:0;height:44px;justify-content:center;width:44px}.stat-content[data-v-5c8acf0b]{flex:1;min-width:0}.stat-title[data-v-5c8acf0b]{color:#8c8c8c;font-size:12px;margin-bottom:4px}.stat-value[data-v-5c8acf0b]{font-size:20px;font-weight:600;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stat-suffix[data-v-5c8acf0b]{font-size:13px;font-weight:400;margin-left:2px}@media (max-width:1200px){.stats-cards[data-v-5c8acf0b]{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.stats-cards[data-v-5c8acf0b]{grid-template-columns:1fr}}

View File

@@ -0,0 +1 @@
[data-v-47a4a3d2] .ant-row{margin-left:-8px!important;margin-right:-8px!important}

View File

@@ -0,0 +1 @@
.property-history-container[data-v-1f8b35c6]{max-height:70vh;overflow:auto}.property-history-container .toolbar-wrapper[data-v-1f8b35c6]{background-color:hsl(var(--card)/90%);border:1px solid hsl(var(--border)/60%);border-radius:8px;padding:16px}.property-history-container .chart-container[data-v-1f8b35c6],.property-history-container .table-container[data-v-1f8b35c6]{background-color:hsl(var(--card)/100%);border:1px solid hsl(var(--border)/60%);border-radius:8px;padding:16px}

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
.trajectory-timeline[data-v-6e773f55]{background:#fff;border:1px solid #f0f0f0;border-radius:8px;padding:16px}.card-header[data-v-6e773f55]{align-items:center;border-bottom:1px solid #f5f5f5;display:flex;gap:8px;margin-bottom:16px;padding-bottom:12px}.card-title[data-v-6e773f55]{color:#262626;flex:1;font-size:14px;font-weight:600}.record-count[data-v-6e773f55]{color:#8c8c8c;font-size:12px}.timeline-scroll[data-v-6e773f55]{max-height:480px;overflow-y:auto;padding-right:4px}.timeline-node[data-v-6e773f55]{border-radius:6px;cursor:pointer;padding:4px 8px;transition:background-color .2s}.timeline-node[data-v-6e773f55]:hover{background-color:#f5f5f5}.timeline-node--current[data-v-6e773f55]{background-color:#e6f4ff}.timeline-node--current[data-v-6e773f55]:hover{background-color:#bae0ff}.node-area[data-v-6e773f55]{align-items:center;display:flex;gap:6px;margin-bottom:2px}.area-name[data-v-6e773f55]{color:#262626;font-size:13px;font-weight:500}.current-tag[data-v-6e773f55]{background:#1677ff;border-radius:3px;color:#fff;font-size:10px;line-height:16px;padding:0 4px}.node-time[data-v-6e773f55]{align-items:center;display:flex;gap:4px;margin-top:2px}.time-text[data-v-6e773f55]{color:#8c8c8c;font-size:12px}.time-sep[data-v-6e773f55]{color:#d9d9d9;font-size:11px}.node-duration[data-v-6e773f55]{align-items:center;display:flex;gap:4px;margin-top:2px}.duration-text[data-v-6e773f55]{color:#8c8c8c;font-size:12px}.duration-text--warn[data-v-6e773f55]{color:#fa8c16;font-weight:500}.current-dot[data-v-6e773f55]{animation:pulse-dot-6e773f55 2s infinite;background-color:#1677ff;border-radius:50%;display:inline-block;height:10px;width:10px}@keyframes pulse-dot-6e773f55{0%{box-shadow:0 0 #1677ff66}70%{box-shadow:0 0 0 8px #1677ff00}to{box-shadow:0 0 #1677ff00}}.empty-wrap[data-v-6e773f55]{padding:24px 0}

View File

@@ -0,0 +1 @@
.trend-chart[data-v-e686c76d]{padding:16px}.chart-title[data-v-e686c76d]{color:#262626;font-size:14px;font-weight:600;margin-bottom:12px}.chart-empty[data-v-e686c76d]{align-items:center;display:flex;justify-content:center;min-height:200px}

View File

@@ -0,0 +1 @@
.uf-alert[data-v-d81dbdc6],.uf-order-info[data-v-d81dbdc6]{margin-bottom:12px}.uf-order-info[data-v-d81dbdc6]{background:#fafafa;border-radius:8px;display:flex;flex-direction:column;gap:8px;padding:10px 12px}.uf-info-row[data-v-d81dbdc6]{align-items:center;display:flex;font-size:13px;gap:6px;line-height:20px}.uf-info-icon[data-v-d81dbdc6],.uf-info-label[data-v-d81dbdc6]{color:#8c8c8c;flex-shrink:0}.uf-info-value[data-v-d81dbdc6]{color:#333;flex:1;min-width:0;word-break:break-all}.uf-priority[data-v-d81dbdc6]{align-items:center;display:flex;gap:6px}.uf-priority-from[data-v-d81dbdc6]{color:#8c8c8c}.uf-arrow[data-v-d81dbdc6]{color:#bfbfbf}.uf-priority-to[data-v-d81dbdc6]{color:#ff4d4f;font-weight:600}.uf-section[data-v-d81dbdc6]{margin-bottom:12px}.uf-section-title[data-v-d81dbdc6]{font-size:13px;font-weight:500;margin-bottom:8px}html.dark .uf-order-info[data-v-d81dbdc6]{background:#ffffff0f}html.dark .uf-info-value[data-v-d81dbdc6]{color:#ffffffd9}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -1 +0,0 @@
[data-v-f2c23de2] .ant-transfer{align-items:center;display:flex;height:500px;justify-content:space-between}[data-v-f2c23de2] .ant-transfer-list{display:flex;flex:1;flex-direction:column;height:100%;width:300px!important}[data-v-f2c23de2] .ant-transfer-list-header{flex-shrink:0}[data-v-f2c23de2] .ant-transfer-list-search{flex-shrink:0;padding:8px}[data-v-f2c23de2] .ant-transfer-list-body{flex:1;overflow:auto}[data-v-f2c23de2] .ant-transfer-list-content{height:auto!important}[data-v-f2c23de2] .ant-transfer-list-content-item{padding:6px 12px}[data-v-f2c23de2] .ant-transfer-operation{padding:0 8px}[data-v-f2c23de2] .ant-transfer-list-footer{flex-shrink:0}[data-v-f2c23de2] .ant-pagination{font-size:12px;margin:8px;text-align:right}[data-v-f2c23de2] .ant-pagination-options{margin-left:8px}[data-v-f2c23de2] .ant-pagination-options-size-changer{margin-right:8px}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
.image-grid-wrapper[data-v-ee95df5f] .vxe-grid--body-wrapper,.news-grid-wrapper[data-v-ee95df5f] .vxe-grid--body-wrapper{display:none}

View File

@@ -8,5 +8,5 @@
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(hm, s);
})();
}</script><script type="module" crossorigin src="/jse/index-index-DaIpbNAe.js"></script></head><body><script data-app-loading="inject-js">var theme = localStorage.getItem('aiot-platform-5.5.9-prod-preferences-theme');
}</script><script type="module" crossorigin src="/jse/index-index-NearNHEt.js"></script></head><body><script data-app-loading="inject-js">var theme = localStorage.getItem('aiot-platform-5.5.9-prod-preferences-theme');
document.documentElement.classList.toggle('dark', /dark/.test(theme));</script><style data-app-loading="inject-css">html{line-height:1.15}.loading{align-items:center;background-color:#f4f7f9;display:flex;flex-direction:column;height:100%;justify-content:center;left:0;overflow:hidden;position:fixed;top:0;width:100%;z-index:9999}.loading.hidden{opacity:0;pointer-events:none;transition:all .8s ease-out;visibility:hidden}.dark .loading{background:#0d0d10}.title{color:rgba(0,0,0,.85)!important;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif!important;font-size:28px;font-weight:600!important;margin-top:66px}.dark .title{color:#fff!important}.loader{height:48px;position:relative;width:48px}.loader:before{animation:shadow-ani .5s linear infinite;background:rgba(255,161,10,.5);background:hsl(var(--primary,37 100% 52%)/50%);border-radius:50%;height:5px;top:60px;width:48px}.loader:after,.loader:before{content:"";left:0;position:absolute}.loader:after{animation:jump-ani .5s linear infinite;background:#ffa10a;background:hsl(var(--primary,37 100% 52%));border-radius:4px;height:100%;top:0;width:100%}@keyframes jump-ani{15%{border-bottom-right-radius:3px}25%{transform:translateY(9px) rotate(22.5deg)}50%{border-bottom-right-radius:40px;transform:translateY(18px) scaleY(.9) rotate(45deg)}75%{transform:translateY(9px) rotate(67.5deg)}to{transform:translateY(0) rotate(90deg)}}@keyframes shadow-ani{0%,to{transform:scale(1)}50%{transform:scaleX(1.2)}}</style><div class="loading" id="__app-loading__"><div class="loader"></div><div class="title">AIoT 智能运营</div></div><div id="app"></div></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
import{an as d,ay as f,ac as w}from"./bootstrap-LRVGLqq_.js";import{_ as C}from"./AreaTree.vue_vue_type_script_setup_true_lang-Dg95zqqq.js";import{m as g,b9 as m,w as B,aa as D,ab as A,b2 as v,u as n,bJ as r,ad as N,ac as S,ae as i,j as s,bp as R,ai as _}from"../jse/index-index-NearNHEt.js";import{D as T}from"./index-C_-2tyav.js";import"./index-BE_nvmAp.js";const F={key:0,class:"selected-hint"},I={class:"hint-text"},P={class:"tree-container"},j={class:"drawer-footer"},E=g({__name:"AreaFilterDrawer",props:{modelValue:{default:void 0},open:{type:Boolean,default:!1}},emits:["confirm","update:modelValue","update:open"],setup(c,{emit:h}){const u=c,l=h,p=m(),e=m(null);B(()=>u.open,a=>{a&&u.modelValue||a&&(e.value=null)});const x=D(()=>{var a,t,o;return(a=e.value)!=null&&a.id?(o=(t=p.value)==null?void 0:t.getAreaPath(e.value.id))!=null?o:e.value.areaName:""});function y(a){e.value=a}function b(){var t,o;const a=(o=(t=e.value)==null?void 0:t.id)!=null?o:void 0;l("update:modelValue",a),l("confirm",a),l("update:open",!1)}function k(){e.value=null,l("update:modelValue",void 0),l("confirm",void 0),l("update:open",!1)}function V(){l("update:open",!1)}return(a,t)=>(v(),A(n(T),{open:c.open,title:"区域筛选",placement:"right",width:320,"body-style":{padding:"12px 16px",display:"flex",flexDirection:"column"},"header-style":{padding:"12px 16px"},"footer-style":{padding:"10px 16px"},onClose:V},{footer:r(()=>[i("div",j,[s(n(f),{onClick:k},{default:r(()=>[s(n(d),{icon:"solar:restart-bold",class:"btn-icon"}),t[0]||(t[0]=_(" 重置 ",-1))]),_:1}),s(n(f),{type:"primary",disabled:!e.value,onClick:b},{default:r(()=>[s(n(d),{icon:"solar:check-circle-bold",class:"btn-icon"}),t[1]||(t[1]=_(" 确认 ",-1))]),_:1},8,["disabled"])])]),default:r(()=>{var o;return[e.value?(v(),N("div",F,[s(n(d),{icon:"solar:map-point-bold",class:"hint-icon"}),i("span",I,R(x.value),1)])):S("",!0),i("div",P,[s(C,{ref_key:"areaTreeRef",ref:p,"selected-keys":(o=e.value)!=null&&o.id?[e.value.id]:[],onSelect:y},null,8,["selected-keys"])])]}),_:1},8,["open"]))}}),H=w(E,[["__scopeId","data-v-83468e94"]]);export{H as default};

View File

@@ -0,0 +1 @@
import{_ as o}from"./AreaTree.vue_vue_type_script_setup_true_lang-Dg95zqqq.js";import"./bootstrap-LRVGLqq_.js";import"../jse/index-index-NearNHEt.js";import"./index-BE_nvmAp.js";export{o as default};

View File

@@ -0,0 +1 @@
var x=(p,w,f)=>new Promise((y,i)=>{var k=s=>{try{d(f.next(s))}catch(u){i(u)}},l=s=>{try{d(f.throw(s))}catch(u){i(u)}},d=s=>s.done?y(s.value):Promise.resolve(s.value).then(k,l);d((f=f.apply(p,w)).next())});import{bt as U,an as V,S as j,ct as z}from"./bootstrap-LRVGLqq_.js";import{a as D}from"./index-BE_nvmAp.js";import{m as O,b9 as v,w as $,v as E,ad as A,b2 as I,j as K,u as m,bJ as b,ab as G,ac as J,ag as q,bc as F,aS as H,aw as Q,d9 as S}from"../jse/index-index-NearNHEt.js";const W={key:1,class:"py-4 text-center text-gray-500"},ee=O({__name:"AreaTree",props:{activeOnly:{type:Boolean,default:!0},checkable:{type:Boolean,default:!1},checkedKeys:{default:()=>[]},selectedKeys:{default:void 0}},emits:["check","select","update:checkedKeys"],setup(p,{expose:w,emit:f}){const y=p,i=f,k=v([...y.checkedKeys]);$(()=>y.checkedKeys,a=>{k.value=[...a]});const l=v([]),d=v([]),s=v(!1),u=v("");function N(a){const e=a.target.value;if(u.value=e,!e){d.value=S(l.value,"id","parentId","children");return}const t=e.toLowerCase(),n=new Set;for(const o of l.value)o.areaName.toLowerCase().includes(t)&&n.add(o.id);const c=new Map(l.value.map(o=>[o.id,o])),r=new Set(n);for(const o of n){let h=c.get(o);for(;h!=null&&h.parentId;)r.add(h.parentId),h=c.get(h.parentId)}const R=l.value.filter(o=>r.has(o.id));d.value=S(R,"id","parentId","children")}function T(a,e){if(a.length===0){i("select",null);return}const t=e.node.dataRef||e.node;i("select",t)}function B(a,e){var c;const t=Array.isArray(a)?a:a.checked,n=(c=e.halfCheckedKeys)!=null?c:[];k.value=t,i("update:checkedKeys",t),i("check",t,n)}function L(a){var t;const e=l.value.find(n=>n.id===a);return(t=e==null?void 0:e.areaName)!=null?t:""}function C(){return x(this,null,function*(){s.value=!0;try{const a=yield D(y.activeOnly?{isActive:!0}:void 0);l.value=a,d.value=S(a,"id","parentId","children"),g.value=a.filter(e=>e.areaType==="PARK"||e.areaType==="BUILDING").map(e=>e.id)}catch(a){console.error("获取区域树失败",a)}finally{s.value=!1}})}function M(a){if(!a)return"";const e=new Map(l.value.map(c=>[c.id,c])),t=[];let n=e.get(a);for(;n;)t.unshift(n.areaName),n=n.parentId?e.get(n.parentId):void 0;return t.join(" / ")}function P(a){const e=[a],t=new Set([a]);function n(c){for(const r of l.value)r.parentId===c&&r.id!==null&&r.id!==void 0&&!t.has(r.id)&&(t.add(r.id),e.push(r.id),n(r.id))}return n(a),e}const g=v([]);return w({refresh:C,getAreaPath:M,getDescendantIds:P,getAreaName:L}),E(C),(a,e)=>(I(),A("div",null,[K(m(U),{value:u.value,"onUpdate:value":e[0]||(e[0]=t=>u.value=t),placeholder:"搜索区域","allow-clear":"",class:"w-full",onChange:N},{prefix:b(()=>[K(m(V),{icon:"lucide:search",class:"size-4"})]),_:1},8,["value"]),K(m(j),{spinning:s.value,"wrapper-class-name":"w-full"},{default:b(()=>[d.value.length>0?(I(),G(m(z),{key:0,class:"pt-2","tree-data":d.value,"expanded-keys":g.value,"onUpdate:expandedKeys":e[1]||(e[1]=t=>g.value=t),checkable:p.checkable,"checked-keys":p.checkable?k.value:void 0,"selected-keys":p.selectedKeys,"field-names":{title:"areaName",key:"id",children:"children"},onSelect:T,onCheck:B},q({_:2},[a.$slots.title?{name:"title",fn:b(t=>[F(a.$slots,"title",H(Q(t)))]),key:"0"}:void 0]),1032,["tree-data","expanded-keys","checkable","checked-keys","selected-keys"])):s.value?J("",!0):(I(),A("div",W," 暂无区域数据 "))]),_:3},8,["spinning"])]))}});export{ee as _};

View File

@@ -0,0 +1 @@
import{_ as o}from"./BoundaryEventTimer.vue_vue_type_script_setup_true_lang-BgJGYBxQ.js";import"./utils-C4vayS9C.js";import"./consts-D1Imw0A8.js";import"./biz-bpm-enum-DQJBn5Qr.js";import"./bootstrap-LRVGLqq_.js";import"../jse/index-index-NearNHEt.js";import"./Text-CpySJfcw.js";import"./index-B6DCNehl.js";export{o as default};

View File

@@ -1 +0,0 @@
import{_ as o}from"./BoundaryEventTimer.vue_vue_type_script_setup_true_lang-aIK6jrEd.js";import"./utils-C4vayS9C.js";import"./consts-D1Imw0A8.js";import"./biz-bpm-enum-DQJBn5Qr.js";import"./bootstrap-DZnIDovD.js";import"../jse/index-index-DaIpbNAe.js";export{o as default};

View File

@@ -0,0 +1 @@
import{c as h}from"./utils-C4vayS9C.js";import{T as y,c as z,d as K}from"./consts-D1Imw0A8.js";import{aA as W,br as X,c6 as D,c8 as ee,ca as ae,bZ as le,b_ as k,bR as P,bQ as te,c7 as ue}from"./bootstrap-LRVGLqq_.js";import{T as j}from"./Text-CpySJfcw.js";import"./index-B6DCNehl.js";import{m as ne,aE as oe,b9 as s,w as ie,ad as I,b2 as p,j as o,ab as g,ac as S,bJ as n,ai as U,u as l,I as A,bb as Y,bp as V,R as se,n as ve}from"../jse/index-index-NearNHEt.js";const be=ne({name:"ElementCustomConfig4BoundaryEventTimer",__name:"BoundaryEventTimer",props:{id:{type:String,default:""},type:{type:String,default:""}},setup(F){const L=F,T=oe("prefix"),H=s(),c=()=>window==null?void 0:window.bpmnInstances,f=s(!1),E=s(),m=s({value:void 0}),d=s(),v=s(6),r=s(y.HOUR),b=s(1),$=s(),N=s(),x=s([]),t=s(),G=()=>{var u,e,a,B,_,M;if(H.value=c().bpmnElement,t.value=H.value.businessObject.eventDefinitions[0],$.value=(e=(u=H.value.businessObject)==null?void 0:u.extensionElements)!=null?e:c().moddle.create("bpmn:ExtensionElements",{values:[]}),E.value=(a=$.value.values)==null?void 0:a.find(i=>i.$type===`${T}:BoundaryEventType`),E.value&&E.value.value===1&&(f.value=!0,x.value.push(E.value)),m.value=(B=$.value.values)==null?void 0:B.find(i=>i.$type===`${T}:TimeoutHandlerType`),m.value){if(x.value.push(m.value),t.value.timeCycle){const i=t.value.timeCycle.body,q=i.split("/")[0],O=i.split("/")[1];b.value=Number.parseInt(q.slice(1)),v.value=Number.parseInt(O.slice(2,-1)),r.value=h(O.slice(-1)),d.value=t.value.timeCycle}if(t.value.timeDuration){const i=t.value.timeDuration.body;v.value=Number.parseInt(i.slice(2,-1)),r.value=h(i.slice(-1)),d.value=t.value.timeDuration}}N.value=(M=(_=$.value.values)==null?void 0:_.filter(i=>i.$type!==`${T}:BoundaryEventType`&&i.$type!==`${T}:TimeoutHandlerType`))!=null?M:[]},J=u=>{f.value=u,u?(E.value=c().moddle.create(`${T}:BoundaryEventType`,{value:1}),x.value.push(E.value),m.value=c().moddle.create(`${T}:TimeoutHandlerType`,{value:1}),x.value.push(m.value),v.value=6,r.value=2,b.value=1,d.value=c().moddle.create("bpmn:Expression",{body:"PT6H"}),t.value.timeDuration=d.value):(x.value=[],delete t.value.timeDuration,delete t.value.timeCycle),C()},Q=()=>{b.value=1,C(),R()},Z=()=>{r.value===y.MINUTE&&(v.value=60),r.value===y.HOUR&&(v.value=6),r.value===y.DAY&&(v.value=1),R(),C()},R=()=>{b.value>1?(d.value.body=`R${b.value}/${w()}`,t.value.timeCycle||(delete t.value.timeDuration,t.value.timeCycle=d.value)):(d.value.body=w(),t.value.timeDuration||(delete t.value.timeCycle,t.value.timeDuration=d.value))},w=()=>{let u="PT";return r.value===y.MINUTE&&(u+=`${v.value}M`),r.value===y.HOUR&&(u+=`${v.value}H`),r.value===y.DAY&&(u+=`${v.value}D`),u},C=()=>{const u=c().moddle.create("bpmn:ExtensionElements",{values:[...N.value||[],...x.value]});c().modeling.updateProperties(se(H.value),{extensionElements:u})};return ie(()=>L.id,u=>{u&&u.length>0&&ve(()=>{G()})},{immediate:!0}),(u,e)=>(p(),I("div",null,[o(l(W),{orientation:"left"},{default:n(()=>[...e[7]||(e[7]=[U("审批人超时未处理时",-1)])]),_:1}),o(l(D),{label:"启用开关",name:"timeoutHandlerEnable"},{default:n(()=>[o(l(X),{checked:f.value,"onUpdate:checked":e[0]||(e[0]=a=>f.value=a),"checked-children":"开启","un-checked-children":"关闭",onChange:J},null,8,["checked"])]),_:1}),f.value?(p(),g(l(D),{key:0,label:"执行动作",name:"timeoutHandlerType"},{default:n(()=>[o(l(ee),{value:m.value.value,"onUpdate:value":e[1]||(e[1]=a=>m.value.value=a),onChange:Q},{default:n(()=>[(p(!0),I(A,null,Y(l(z),a=>(p(),g(l(ae),{key:a.value,value:a.value},{default:n(()=>[U(V(a.label),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1})):S("",!0),f.value?(p(),g(l(D),{key:1,label:"超时时间设置","label-col":{span:24},"wrapper-col":{span:24}},{default:n(()=>[o(l(le),{gutter:[0,0]},{default:n(()=>[o(l(k),null,{default:n(()=>[o(l(j),{class:"mr-2 mt-2 inline-flex text-sm"},{default:n(()=>[...e[8]||(e[8]=[U(" 当超过 ",-1)])]),_:1})]),_:1}),o(l(k),null,{default:n(()=>[o(l(D),{name:"timeDuration",class:"mb-0"},{default:n(()=>[o(l(P),{class:"mr-2 mt-0.5",value:v.value,"onUpdate:value":e[2]||(e[2]=a=>v.value=a),min:1,"controls-position":"right",onChange:e[3]||(e[3]=()=>{R(),C()})},null,8,["value"])]),_:1})]),_:1}),o(l(k),null,{default:n(()=>[o(l(te),{value:r.value,"onUpdate:value":e[4]||(e[4]=a=>r.value=a),class:"mr-2 !w-24",onChange:Z},{default:n(()=>[(p(!0),I(A,null,Y(l(K),a=>(p(),g(l(ue),{key:a.value,label:a.label,value:a.value},{default:n(()=>[U(V(a.label),1)]),_:2},1032,["label","value"]))),128))]),_:1},8,["value"]),o(l(j),{class:"mr-2 mt-2 inline-flex text-sm"},{default:n(()=>[...e[9]||(e[9]=[U(" 未处理 ",-1)])]),_:1})]),_:1})]),_:1})]),_:1})):S("",!0),f.value&&m.value.value===1?(p(),g(l(D),{key:2,label:"最大提醒次数",name:"maxRemindCount"},{default:n(()=>[o(l(P),{value:b.value,"onUpdate:value":e[5]||(e[5]=a=>b.value=a),min:1,max:10,onChange:e[6]||(e[6]=()=>{R(),C()})},null,8,["value"])]),_:1})):S("",!0)]))}});export{be as _};

View File

@@ -1 +0,0 @@
import{c as P}from"./utils-C4vayS9C.js";import{T as b,c as K,d as Q}from"./consts-D1Imw0A8.js";import{cb as W,aM as X,c9 as D,cd as Z,cn as ee,bU as j,bT as ae,cc as le}from"./bootstrap-DZnIDovD.js";import{m as te,aE as ue,b9 as i,w as ne,ad as I,b2 as d,j as p,ab as U,ac as N,bJ as v,ai as k,u,I as V,bb as Y,bp as A,ae as ie,R as oe,n as se}from"../jse/index-index-DaIpbNAe.js";const pe=te({name:"ElementCustomConfig4BoundaryEventTimer",__name:"BoundaryEventTimer",props:{id:{type:String,default:""},type:{type:String,default:""}},setup(F){const L=F,T=ue("prefix"),g=i(),c=()=>window==null?void 0:window.bpmnInstances,f=i(!1),E=i(),r=i({value:void 0}),m=i(),o=i(6),s=i(b.HOUR),y=i(1),H=i(),R=i(),C=i([]),l=i(),G=()=>{var t,e,a,B,w,M,O;if(g.value=c().bpmnElement,l.value=g.value.businessObject.eventDefinitions[0],H.value=(e=(t=g.value.businessObject)==null?void 0:t.extensionElements)!=null?e:c().moddle.create("bpmn:ExtensionElements",{values:[]}),E.value=(a=H.value.values)==null?void 0:a.find(n=>n.$type===`${T}:BoundaryEventType`),E.value&&E.value.value===1&&(f.value=!0,C.value.push(E.value)),r.value=(w=(B=H.value.values)==null?void 0:B.find(n=>n.$type===`${T}:TimeoutHandlerType`))==null?void 0:w[0],r.value){if(C.value.push(r.value),l.value.timeCycle){const n=l.value.timeCycle.body,z=n.split("/")[0],h=n.split("/")[1];y.value=Number.parseInt(z.slice(1)),o.value=Number.parseInt(h.slice(2,-1)),s.value=P(h.slice(-1)),m.value=l.value.timeCycle}if(l.value.timeDuration){const n=l.value.timeDuration.body;o.value=Number.parseInt(n.slice(2,-1)),s.value=P(n.slice(-1)),m.value=l.value.timeDuration}}R.value=(O=(M=H.value.values)==null?void 0:M.filter(n=>n.$type!==`${T}:BoundaryEventType`&&n.$type!==`${T}:TimeoutHandlerType`))!=null?O:[]},J=t=>{f.value=t,t?(E.value=c().moddle.create(`${T}:BoundaryEventType`,{value:1}),C.value.push(E.value),r.value=c().moddle.create(`${T}:TimeoutHandlerType`,{value:1}),C.value.push(r.value),o.value=6,s.value=2,y.value=1,m.value=c().moddle.create("bpmn:Expression",{body:"PT6H"}),l.value.timeDuration=m.value):(C.value=[],delete l.value.timeDuration,delete l.value.timeCycle),x()},_=()=>{y.value=1,x(),$()},q=()=>{s.value===b.MINUTE&&(o.value=60),s.value===b.HOUR&&(o.value=6),s.value===b.DAY&&(o.value=1),$(),x()},$=()=>{y.value>1?(m.value.body=`R${y.value}/${S()}`,l.value.timeCycle||(delete l.value.timeDuration,l.value.timeCycle=m.value)):(m.value.body=S(),l.value.timeDuration||(delete l.value.timeCycle,l.value.timeDuration=m.value))},S=()=>{let t="PT";return s.value===b.MINUTE&&(t+=`${o.value}M`),s.value===b.HOUR&&(t+=`${o.value}H`),s.value===b.DAY&&(t+=`${o.value}D`),t},x=()=>{const t=c().moddle.create("bpmn:ExtensionElements",{values:[...R.value||[],...C.value]});c().modeling.updateProperties(oe(g.value),{extensionElements:t})};return ne(()=>L.id,t=>{t&&t.length>0&&se(()=>{G()})},{immediate:!0}),(t,e)=>(d(),I("div",null,[p(u(W),{orientation:"left"},{default:v(()=>[...e[7]||(e[7]=[k("审批人超时未处理时",-1)])]),_:1}),p(u(D),{label:"启用开关",name:"timeoutHandlerEnable"},{default:v(()=>[p(u(X),{checked:f.value,"onUpdate:checked":e[0]||(e[0]=a=>f.value=a),"checked-children":"开启","un-checked-children":"关闭",onChange:J},null,8,["checked"])]),_:1}),f.value?(d(),U(u(D),{key:0,label:"执行动作",name:"timeoutHandlerType"},{default:v(()=>[p(u(Z),{value:r.value.value,"onUpdate:value":e[1]||(e[1]=a=>r.value.value=a),onChange:_},{default:v(()=>[(d(!0),I(V,null,Y(u(K),a=>(d(),U(u(ee),{key:a.value,value:a.value},{default:v(()=>[k(A(a.label),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"])]),_:1})):N("",!0),f.value?(d(),U(u(D),{key:1,label:"超时时间设置"},{default:v(()=>[e[8]||(e[8]=ie("span",{class:"mr-2"},"当超过",-1)),p(u(D),{name:"timeDuration"},{default:v(()=>[p(u(j),{class:"mr-2",style:{width:"100px"},value:o.value,"onUpdate:value":e[2]||(e[2]=a=>o.value=a),min:1,controls:!0,onChange:e[3]||(e[3]=()=>{$(),x()})},null,8,["value"])]),_:1}),p(u(ae),{value:s.value,"onUpdate:value":e[4]||(e[4]=a=>s.value=a),class:"mr-2",style:{width:"100px"},onChange:q},{default:v(()=>[(d(!0),I(V,null,Y(u(Q),a=>(d(),U(u(le),{key:a.value,value:a.value},{default:v(()=>[k(A(a.label),1)]),_:2},1032,["value"]))),128))]),_:1},8,["value"]),e[9]||(e[9]=k(" 未处理 ",-1))]),_:1})):N("",!0),f.value&&r.value.value===1?(d(),U(u(D),{key:2,label:"最大提醒次数",name:"maxRemindCount"},{default:v(()=>[p(u(j),{value:y.value,"onUpdate:value":e[5]||(e[5]=a=>y.value=a),min:1,max:10,onChange:e[6]||(e[6]=()=>{$(),x()})},null,8,["value"])]),_:1})):N("",!0)]))}});export{pe as _};

Some files were not shown because too many files have changed in this diff Show More