Commit Graph

118 Commits

Author SHA1 Message Date
a07e43ec3a fix(mobile): 修复画布空白区域无法响应拖拽缩放手势
canvas-inner 使用 position:absolute 但未设置 width/height,
导致只缩到子元素大小(几乎为0)。在卡片之外的空白区域触摸时,
事件无法穿透到 movable-view 原生组件。

修复:
- canvas-inner: 添加 width:100%; height:100% 铺满 movable-view
- tree-movable-view: 添加 width:100%; height:100% 确保触摸覆盖
2026-08-10 15:19:34 +08:00
f2403dd1e6 fix(mobile): 流转树全览居中 + 拖拽缩放性能优化
1. fitAll() 居中修复: 内容坐标系整体对齐视口中心
   旧: mvX=0, mvY=0 (内容偏右下角)
   新: mvX = (viewportW - canvasW * scale) / 2, mvY同理

2. movable-area 显式像素高度: 替代 flex:1
   避免触摸区域计算不准确导致拖拽延迟

3. onScale 节流: rAF/setTimeout 限频 16ms
   避免 @scale 每帧触发 Vue 响应式更新

4. 新增 onChange 同步手势结束后的位置
   惯性动画结束后记录位置,下次 fitAll 参考使用

5. 添加 inertia+friction+damping 惯性动画参数
2026-08-10 15:09:06 +08:00
5271177d7a fix(mobile): 修复全览按钮点击后页面卡死的响应式循环bug
treeNodes 计算属性中直接修改了 product.task_tree 原始响应式对象
(设置 x/y/_isMain/_blabel),触发 Vue 2 深度响应式的无限渲染循环。

修复方案:对所有 task 对象进行浅拷贝 { ...t },在副本上设置坐标
和标签属性,切断响应式依赖循环。
2026-08-10 15:00:37 +08:00
3ec244bf2d feat: 全览节点无记录时Toast友好提示替代静默短路 2026-08-10 14:40:18 +08:00
5f12adfe2f fix: 连线层加pointer-events:none防止吞掉卡片点击事件 2026-08-10 14:37:37 +08:00
51ca05d737 fix: 全览按钮z-index修复+产品ID点击弹二维码 2026-08-10 14:30:50 +08:00
f80da36d65 fix: 连线边缘到边缘防穿模+箭头像素级贴合分支卡片边缘 2026-08-10 13:59:22 +08:00
6d534960a7 refactor: 移动端TreeCanvas十字星拓扑—主干居中+分支左右发散+连线箭头+极简卡片160x80 2026-08-10 13:52:46 +08:00
0fcc607f17 refactor: App.vue统一路由守卫 — onLaunch总是重定向(已登录→扫码/未登录→登录) 2026-08-07 17:01:55 +08:00
71e55ed476 feat: 登录页自动跳过 — 已登录用户不再看到登录界面 2026-08-07 16:58:35 +08:00
356e3819dd chore: 泳道→分支 统一命名 2026-08-07 16:51:00 +08:00
b834b24c24 fix: 已完成/已驳回/已入库/已撤回任务禁止编辑删除记录 2026-08-07 16:48:12 +08:00
1b4af0a7af fix: 全端隐藏用户角色标签(SUPER_ADMIN/操作员等) 2026-08-07 14:53:46 +08:00
472d4ad67a fix: 登录页版本号改为动态读取(WGT热更新后自动变) 2026-08-07 14:06:10 +08:00
355f1bae66 feat: 关于弹窗 + 帮助反馈Toast + 动态版本号(WGT热更新后自动变化) 2026-08-07 13:41:55 +08:00
abbf0f5a24 chore: bump version to T1.0.2 (versionCode 102) 2026-08-07 13:22:10 +08:00
43baa1de8e feat: 移动端流转卡片组件 + 静态资源 2026-08-07 11:53:40 +08:00
0df7215134 feat: 移动端双Token队列拦截器 + 通知列表 + 登录页 + TabBar红点 + v1.0.1 2026-08-07 11:44:20 +08:00
6a79e21302 闭环修复: transfer/spawn/receive补TaskRecord + reject加task_type + branchLabel只对SPAWN编号 2026-08-06 13:14:26 +08:00
661e77416a 三雷修复: canRecall父节点校验+task_type判定主干排序/标签+确认无db.delete 2026-08-06 13:09:10 +08:00
0d323e8181 血缘锚定法: task_type字段+迁移+三大接口写入+TreeCanvas基于task_type布局 2026-08-06 13:03:25 +08:00
e5e2a395e7 撤回链式接力: CANCELED后生成WIP子任务还给操作人+TreeCanvas CANCELED视为串行换行 2026-08-06 12:53:23 +08:00
616638a6c8 撤回改为CANCELED状态标记+TaskRecord留痕+TreeCanvas灰度渲染+全部状态映射更新 2026-08-06 12:51:40 +08:00
58cb9a23ef 修复撤回: transfer新任务parent_task_id=task.id(溯源链) + canRecall放宽(兼容旧数据) 2026-08-06 12:38:26 +08:00
0287003e93 canRecall加固: PENDING+非接收人+父任务负责人匹配→显示撤回转交 2026-08-06 12:08:23 +08:00
df42250725 排序铁律: 主分支强制置顶(parent_task_id为空优先)+子分支按created_at正序 2026-08-06 12:06:38 +08:00
7c7b72cadd 我的任务列表加分支标签: 主分支(蓝)/协助分支(紫) — parent_task_id判血缘 2026-08-06 11:53:40 +08:00
aad26b3d9e 2D布局回退状态判定: 父WIP→并行同Y / 父COMPLETED→串行换行(后端已限制COMPLETED后不可spawn) 2026-08-06 11:50:10 +08:00
c92e7bd931 修复2D布局: 时间戳判定串行/并行 — created_at>parent.completed_at才是串行,否则并行同Y 2026-08-06 11:45:56 +08:00
8f0f725e26 修复WBS编码: 分支1→分支1.1层级正确(prefix空字符串处理) 2026-08-06 11:42:52 +08:00
57884d7baa 撤回转交: recall接口删除子任务恢复父WIP + 前端canRecall判断 + 红色撤回按钮 2026-08-06 11:39:22 +08:00
8be06bcd43 权限隔离+2D蓝图修复: isAssignee按钮显隐+只读提示+分支标签(badge-main/sub)+并行同Y确认 2026-08-06 11:36:06 +08:00
e5bcde667b 转交弹窗互斥+备注必填: 选人清入库/选库清人 + textarea必填校验 2026-08-06 11:23:31 +08:00
bcf1038f8a 修复: 删除2D连线+spawn确认parent_task_id已正确+WBS算法重写(递归前缀) 2026-08-06 10:28:21 +08:00
11f9f64dc6 并发协作重构: focusTasks全视野+WBS分支编码+TreeCanvas并发同层布局(串行Y+1/并行同Y) 2026-08-06 10:21:15 +08:00
ff3de80c96 派发协助备注改为必填(textarea+disabled校验) 2026-08-06 10:08:56 +08:00
999f8c2f3e IRIS过滤容错: 后端SQL失败时降级全量+前端严格过滤department===IRIS 2026-08-06 10:08:18 +08:00
eccf79b8d1 IRIS部门过滤: 后端users接口按department=IRIS过滤 + 前端双重兜底 2026-08-06 10:07:47 +08:00
da8db95141 UI升级: Footer图标上文字下防截断 + TreeCanvas全屏翻页大卡片(320x460) 2026-08-06 10:02:50 +08:00
e183ea5583 工业级重构: 用户Grid选择+工序由接收人定+隐藏结束按钮(次分支卡片内结束)+蓝图网格背景 2026-08-06 09:52:21 +08:00
34347dafb0 清理autoReceive: 删除立即接收开关+新任务强制PENDING等工人自行接收 2026-08-06 09:34:12 +08:00
a0bdce0359 首次扫码防呆: 删除statusPicker强弹+白板产品直接弹发起工序+宏观状态提示未激活 2026-08-06 09:27:15 +08:00
c0feab6be4 UX防呆: 仓库横幅有活跃任务时隐藏 + 宏观状态栏无任务时引导创建 + 创建任务自动切workspace 2026-08-06 09:22:31 +08:00
b00ebd892f 修正: 序列号→身份证, 外部序列号→产品序列号 2026-08-06 09:02:35 +08:00
ae720656b1 全局重命名: 序列号→身份证 (product.serial_number) 2026-08-06 09:00:15 +08:00
3b29bb0bd1 编辑产品加Label + 仓库横幅改为warehouse-transfer-banner + 弹窗标题联动isWarehouseTransfer 2026-08-06 08:42:32 +08:00
c836944f92 新增: 仓库转出功能 — 产品在库时显示📤转出按钮+复用创建任务+更新location 2026-08-06 08:39:06 +08:00
b547844dca 并发模型: spawn派发协助分支 + 转交简化为单线 + 子分支未完成拦截(409) 2026-08-05 18:01:14 +08:00
b79d521bad TreeCanvas升级: 时间轴重力算法 — 拍平排序+智能分层+居中排布+正确取最早记录备注 2026-08-05 17:44:01 +08:00
99eab80a1c 组件化拆分: TreeCanvas(2D画布) + WorkspaceArea(任务列表+锁定工作区) + detail瘦身(仅弹窗) 2026-08-05 17:25:15 +08:00