|
|
974f4b9d01
|
fix(frontend): TaskFlowView 根治双重渲染 — allMains 仅含根级节点
生产数据问题:16个任务中15个TRANSFER子节点全部挂在同一个root下,
isMain() 将它们同时放入 allMains 和 childMap,导致每个子节点渲染2次。
修复:
1. allMains 改为仅收集 parent_task_id IS NULL 的根级主干
- TRANSFER 子节点仅通过 childMap → renderBranch 递归渲染
- 彻底杜绝同一任务在时间线 + 分支中双重出现
2. 统一焦点/全景为同一套垂直时间线 JSX 布局
- 删除旧焦点模式的独立 flex-row 排版
- visibleMains useMemo 负责数据过滤 (active() 过滤)
3. 清理死代码: getRootMainId() / rootMainMap / srm / flatMap
|
2026-08-11 15:37:04 +08:00 |
|
|
|
d3def15bb3
|
feat(web): TaskFlowView 递归渲染重构
- 废弃拍平算法,构建全局childMap保留真实树结构
- 新增renderBranch递归渲染函数,子子孙孙向外延伸
- 焦点/全景模式统一应用递归算法,连线从真实父节点引出
|
2026-08-11 10:02:06 +08:00 |
|
|
|
6373dca4f6
|
refactor: Web 端十字星流转树 — 3层嵌套协助降维渲染
- isMain() 移除危险的 parent.status 兜底判定,仅凭基因字段
- 新增 getRootMainId() 寻根算法,向上攀爬找视觉主干
- subsByRootMain 虚拟扁平化:孙子协助挂在顶级主干下
- 层级排序:直接子节点 → 孙子按父链收集
- SlimCard 新增嵌套协助标识:协助: {真实parent.assignee_id}
|
2026-08-10 17:37:30 +08:00 |
|
|
|
51ca05d737
|
fix: 全览按钮z-index修复+产品ID点击弹二维码
|
2026-08-10 14:30:50 +08:00 |
|
|
|
38263291d1
|
perf: 流转树排他展开(手风琴模式)-同时只展开一个产品
|
2026-08-10 13:40:46 +08:00 |
|
|
|
4d93844637
|
fix: 箭头语义方向修正—永远背离主干指向分支(左翼◀+右翼▶)
|
2026-08-10 13:29:35 +08:00 |
|
|
|
fba3589d0d
|
feat: 焦点/全景模式双翼flex-col纵向堆叠+SVG箭头+实线虚线区分
|
2026-08-10 13:26:31 +08:00 |
|
|
|
87296af139
|
refactor: 水平对称双翼布局—左翼(偶索引)+中央主干+右翼(奇索引),实线/虚线区分
|
2026-08-10 13:21:30 +08:00 |
|
|
|
ae520e49d7
|
refactor: 双模式流转树—焦点模式(活跃+遗留分支) + 全景模式(完整历史时间轴) + 极简卡片
|
2026-08-10 13:12:23 +08:00 |
|
|
|
5d6e2135c0
|
feat: 任务全景默认按设备分组+全展开+全部展开/折叠按钮(与产品管理一致)
|
2026-08-10 11:47:03 +08:00 |
|
|
|
b43bded0ef
|
feat: 宏观状态动态从主干任务获取+任务树assignee中文姓名映射(后端+前端)
|
2026-08-10 11:25:44 +08:00 |
|
|
|
c0fe7c94bb
|
feat: 产品管理默认按设备分组+自动全部展开+全部展开/折叠按钮
|
2026-08-10 11:18:01 +08:00 |
|
|
|
2eed7db82d
|
refactor: 产品管理页全面升级—分组折叠面板+搜索/状态过滤+序列号列+与任务全景体验一致
|
2026-08-10 11:07:53 +08:00 |
|
|
|
2880ea6df7
|
fix: Grid回退grid-cols-12精确对齐+分组标题按device/order切换+宏观状态receive/transfer只主线
|
2026-08-10 10:58:33 +08:00 |
|
|
|
26dc05cc2f
|
fix: 修复JSX style属性语法错误(grid-template-columns)
|
2026-08-10 10:43:31 +08:00 |
|
|
|
4854eb626e
|
feat: 宏观状态只同步主线+删除5s倒计时+序列号确认+分组切换(订单/设备)+序列号列
|
2026-08-10 10:37:56 +08:00 |
|
|
|
ffab378700
|
refactor: 单一数据源—Tab过滤+表格列统一使用macro_status||status,删除calcProductStatus
|
2026-08-09 18:37:02 +08:00 |
|
|
|
45b5376537
|
fix: 三致命Bug—macro_status预计算+排除已完工脏读+flush落盘+递归深度限制10
|
2026-08-09 18:23:55 +08:00 |
|
|
|
d8623df7de
|
refactor: 废弃flattenLevels拍平→递归TaskNode渲染—主干同缩进+SPAWN分支缩进紫色左边线
|
2026-08-09 18:16:47 +08:00 |
|
|
|
f33396b9f1
|
fix: 位置回溯父任务优先 + Tab筛选改为本地calcProductStatus过滤
|
2026-08-09 18:10:13 +08:00 |
|
|
|
3c4c16a1cc
|
fix: 四Bug—权限互斥+中文姓名+记录弹窗+后端位置回溯(含RecordsModal)
|
2026-08-09 17:55:40 +08:00 |
|
|
|
ab935a8c95
|
refactor: Web端FlowCard与移动端100%对齐—主线/分支标签/备注/记录/时间格式/三种权限模式
|
2026-08-07 17:29:36 +08:00 |
|
|
|
65ff05fb2f
|
feat: 状态渲染修复+中文姓名映射+SUPERVISOR/SUPER_ADMIN权限控制(前端+后端)
|
2026-08-07 17:26:14 +08:00 |
|
|
|
704af0b2a4
|
chore: Web端泳道→分支 统一命名
|
2026-08-07 16:51:56 +08:00 |
|
|
|
bc43b5a732
|
feat: 产品管理 — 当前位置显示真实姓名 + 编辑弹窗 + 删除确认
|
2026-08-07 15:38:01 +08:00 |
|
|
|
d3d501dfeb
|
fix: 产品管理页响应式Grid + 丰富卡片信息(物料/规格/位置/状态)
|
2026-08-07 15:14:11 +08:00 |
|
|
|
1b4af0a7af
|
fix: 全端隐藏用户角色标签(SUPER_ADMIN/操作员等)
|
2026-08-07 14:53:46 +08:00 |
|
|
|
6382aa6d45
|
feat: Web端关于弹窗 + 帮助反馈Toast + 版本号T1.0.3
|
2026-08-07 13:49:06 +08:00 |
|
|
|
41dfc53f83
|
chore: Docker生产部署配置 + 部署脚本
|
2026-08-07 11:53:40 +08:00 |
|
|
|
721cfe1504
|
feat: Web端401队列拦截器 + 消息/任务/个人中心重写 + TabBar红点 + Admin页面完善
|
2026-08-07 11:44:12 +08:00 |
|
|
|
dc97a7385f
|
perf(frontend): Context value useMemo 稳定化
AuthContext.Provider 和 ToastContext.Provider 的 value 对象
用 useMemo 包裹,避免每次 Provider render 产生新引用导致
所有消费者不必要的 re-render。
|
2026-08-06 17:34:05 +08:00 |
|
|
|
b725599cb0
|
perf(frontend): Vite 构建分包 — manualChunks 拆分 vendor
将 react/react-dom/react-router-dom → vendor-react
将 antd/@ant-design/icons → vendor-antd
将 html5-qrcode → vendor-qrcode
第三方巨头的独立 chunk 可被浏览器长期缓存,业务代码更新时无需重新下载。
|
2026-08-06 17:34:00 +08:00 |
|
|
|
3d164159ac
|
perf(frontend): 递归组件 Memo 优化 — React.memo + useMemo
TaskTreeViewer:
- Modal/ReceiveConfirmModal/RejectModal/TransferModal 加 React.memo
- TaskNodeCard 递归组件加 React.memo,阻断父节点状态变更引发的整树重渲染
- countAllTasks 用 useMemo 缓存,仅在 task_tree 引用变化时重新计算
TaskListCard:
- TaskNode 递归组件加 React.memo
- countAll 用 useMemo 缓存
|
2026-08-06 17:33:54 +08:00 |
|
|
|
9d204a57d8
|
perf(frontend): 路由级代码分割 — React.lazy + Suspense
将所有页面组件改为按路由懒加载,Layout 组件保持静态导入。
新增 LoadingSpinner 作为 Suspense 回退组件。
html5-qrcode (~200KB) 和 antd 仅在访问扫码/管理后台路由时加载。
|
2026-08-06 17:33:48 +08:00 |
|
|
|
3176bcde6f
|
标签float环绕布局: QR左浮+文字自然折行+clear:both防序列号乱入
|
2026-08-06 11:04:03 +08:00 |
|
|
|
49c8707955
|
标签防御: height:fit-content+maxHeight物理切断+12px小字号防重叠
|
2026-08-06 11:02:16 +08:00 |
|
|
|
5f7b8e9394
|
标签预览彻底改为内联样式Flex: QR锁110px+line-clamp截断+无class依赖防重叠
|
2026-08-06 10:56:29 +08:00 |
|
|
|
1ba44d4b0a
|
打印所见即所得: iframe克隆DOM+全局样式+静默打印
|
2026-08-06 10:52:29 +08:00 |
|
|
|
81e41bc38b
|
标签预览重构: 固定QR120px+Flex分栏+line-clamp3截断+CSS类名化
|
2026-08-06 10:51:28 +08:00 |
|
|
|
f4ff4b5ecb
|
标签打印防御性布局: Flex分栏+line-clamp截断+分割线+预览同款
|
2026-08-06 10:44:22 +08:00 |
|
|
|
bdc861cf8e
|
Web端创建产品成功弹窗: 打开二维码→直接打印标签(window.print+隐式窗口)
|
2026-08-06 10:37:08 +08:00 |
|
|
|
59c182a743
|
feat(frontend): 管理端页面 — 任务全景树/创建产品/标签打印/认证守卫
App.tsx:
- AntApp + AuthProvider + ToastProvider 三层包裹
- /admin/login 独立登录页
- /admin/* 路由认证守卫
AdminLayout:
- 未登录→跳转登录; 顶部栏显示用户名+登出
- 侧边栏: 全局概览/产品管理/任务全景
CreateProductDialog (Ant Design 重写):
- MOM物料手风琴选择器 (Collapse+Table)
- 分组懒加载 + useRef缓存 + 防抖搜索
- HEX ID只读展示 + 序列号/订单号选填
AdminProductsPage:
- 打印预览弹窗 (Base64标签预览 + 份数选择)
- 打印机设置入口 → AdminPrintConfigPage
扫码组件对齐:
- ProductCard: material_name/spec_model/current_location
- TaskListCard: 递归 task_tree + 状态配色 + 返工/裂变标签
- QueryResult: task_tree 优先
- ScanPage: 宏观状态栏
|
2026-08-05 14:01:36 +08:00 |
|
|
|
d04085fc38
|
feat(frontend): 认证体系 + 类型定义 + API 服务层
认证:
- AuthContext + useAuth (JWT token 持久化, 登录/登出)
- AdminLoginPage (登录表单, 对接 POST /auth/login)
- axios 拦截器自动注入 Authorization header
- 401 自动清除 token 并跳转登录页
类型:
- api.ts: TASK_STATUS 常量, TaskResponse/ProductScanResponse 扩展字段
- admin.ts: ProductResponse 扩展 + MaterialOption/BomItem
API 服务:
- authApi: login() + getMe()
- materialApi: fetchMaterialGroups() + fetchMaterialItems()
- printApi: getLabelPreview() + executePrint() + getPrinterConfig()
- antd 6.5.3 依赖
字体: simhei.ttf (标签打印用)
|
2026-08-05 14:01:08 +08:00 |
|
|
|
8458b99782
|
feat(frontend): 实现任务全景树组件与三大操作弹窗
TaskTreeViewer (components/TaskTree/):
- 搜索栏: 输入 16 位序列号 → getTaskTree() → 递归渲染产品任务树
- 状态标签: PENDING(黄)/WIP(蓝)/COMPLETED(绿)/REJECTED(红)/ARCHIVED(灰)
- 返工警告: is_rework → 红色脉冲 ⚠返工 标签 + 红色 ring 边框
- 裂变标识: child_tasks>1 → 紫色 裂变×N 标签 + 树形连接线
- 产品摘要栏: 序列号/订单/当前位置(virtual_warehouse→🏭仓库)/任务总数
三大操作弹窗 (替换 alert 占位符):
- ReceiveConfirmModal: 二次确认 → receiveTask() → Toast + 刷新树
- RejectModal: 驳回原因必填(≤500字) → rejectTask() → 自动返工提示
- TransferModal: 工序名称 + 多接收人标签输入(Enter添加/X删除)
+ 🏭虚拟入库勾选 + 备注 + 实时裂变预览 → transferTask()
路由接入:
- App.tsx: 包裹 ToastProvider, 新增 /admin/tasks 路由
- AdminLayout: 侧边栏新增「任务全景」菜单 (GitBranch 图标)
- AdminTasksPage: 薄封装层
|
2026-08-04 17:30:26 +08:00 |
|
|
|
8fcb33ab5e
|
chore(frontend): 新增全局 Toast 通知组件与入场动画
components/ui/Toast.tsx:
- Context + Provider 模式,全局可用 useToast() hook
- 支持 success / error / info 三种类型,颜色自动适配
- 3.5s 自动消失,支持手动关闭
- 固定右下角渲染,z-[9999]
index.css:
- 新增 @keyframes slide-in 右侧滑入动画
|
2026-08-04 17:30:17 +08:00 |
|
|
|
2b5e3ae4c3
|
feat(frontend): 更新 TS 类型定义与 API 服务层,对接后端重构接口
types/api.ts:
- TaskSummary/TaskResponse 新增 is_rework, reject_reason, received_at, completed_at 字段
- 新增 TASK_STATUS 常量 (PENDING/WIP/COMPLETED/REJECTED/ARCHIVED)
- 新增 TaskTransferResponse, TaskRejectPayload, TaskTransferPayload 类型
- ProductScanResponse 新增 current_location_id, task_tree 字段
types/admin.ts:
- ProductResponse 新增 current_location_id 字段
services/taskApi.ts:
- 新增 getTaskTree(serialNumber) — 产品全景任务树
- 新增 receiveTask(taskId) — 确认接收
- 新增 rejectTask(taskId, reason) — 品质驳回
- 新增 transferTask(taskId, assignees, name, note?) — 完工裂变转交
|
2026-08-04 17:30:12 +08:00 |
|
|
|
340a09007e
|
feat: 实现前端管理看板与移动端扫码视图组件
|
2026-08-04 17:10:01 +08:00 |
|
|
|
d18d9dbaac
|
feat: 建立前端 TS 类型系统与 API 请求服务层
|
2026-08-04 17:09:55 +08:00 |
|
|
|
daae052878
|
chore: 配置前端 Vite 环境,搭建全局路由结构与基础样式
|
2026-08-04 17:09:51 +08:00 |
|
|
|
e0bd1ad44e
|
chore: 完善全栈 Docker 开发环境与容器基础设施
|
2026-08-04 17:09:30 +08:00 |
|