|
|
a7d1c53b1f
|
feat: 消息与任务列表改为分页加载
此前一次性拉全量(硬编码 limit:100),任务/通知多了会拖慢首屏。
- 分页状态:page / pageSize(20) / hasMore / loadingMore,触底加载下一页
- 下拉刷新回到第 1 页并清空重载 —— 分页后必须重置,否则新旧页会错位
- 任务列表按 id 去重后追加:翻页期间若有新任务插入,分页边界会错位导致
重复项
- hasMore 优先以响应里的 total 为准,缺失时退回「本页是否满员」判断
- 底部新增状态提示(加载中 / 没有更多了 / 上拉加载更多),
让工人知道是「到底了」还是「还在拉」
|
2026-09-15 15:52:02 +08:00 |
|
|
|
c7f046a993
|
feat: 个人中心补齐工作统计/设置/帮助与反馈三个模块
原先三个菜单都是空壳,点「帮助与反馈」只弹「敬请期待」。
工作统计(statistics.vue)
- 时段切换:今日 / 本周 / 本月 / 自定义(含起止日期选择器)
- 「生产战绩」完成 / 被驳回 / 参与产品;「操作统计」接收 / 转交 / 上传备注
后者的口径与 PC「人员操作统计」严格同源,已逐字段交叉验证(4 人 × 4 指标
全部相等),工人自查的数与主管看到的面板对得上
- 时段边界显式拼 "+08:00":车间按北京时间作息,发裸字符串会被后端按服务器
本地时间解释,边界整体偏 8 小时
设置(settings.vue)
- 清理缓存:黑名单式,只删登记过的业务缓存(当前为 msg_seen_<product_id>,
即留言抽屉的已读位点,随扫过的设备数无上限增长)。未登记的 key 一律保留,
新增插件天然免疫;另有 NEVER_DELETE 兜底,任何情况下不动登录凭证与环境
配置。副标题实时显示待清理条数,卡片下方说明「不动什么」
- 检查更新:调用 utils/ota.js 的 checkAppUpdate({ manual: true })
- 退出登录:由 profile/index 迁入,加确认弹窗防误触
帮助与反馈(feedback.vue)
- 问题类型(系统问题/设备故障/其他)、描述文本域(500 字计数)、
图片上传最多 4 张,复用 utils/upload.js 的并发上传池
- api/feedback.js 采用「先真后假」:先按最终契约 POST /feedback/,
仅当 404(端点尚未实现)才回退本地 mock。后端补上接口后前端零改动即可
接上;而 400/422/断网仍照常抛出,不会被 mock 悄悄吞掉
路由
- pages.json 注册三个新页面(工作统计开启下拉刷新)
- profile/index.vue 用 MENU_ROUTES 映射 uni.navigateTo,移除「敬请期待」拦截
与退出登录按钮
|
2026-09-15 15:51:50 +08:00 |
|
|
|
7fca315ff4
|
feat: 图片上传抽离公共模块,统一成功角标并修复记录拍照无法删除
上传模块 utils/upload.js(新增)
此前 detail.vue 与 records.vue 各写一份 uni.uploadFile 封装,超时与并发策略
容易漂移,且都是串行上传 —— 9 张图排队一张张传完,弱网下工人要干等半分钟。
- uploadImage:单张上传,UPLOAD_TIMEOUT 防弱网永久挂起;非 2xx 时后端返回的
是 {detail:...} 而非 {url},必须当失败处理,否则图片被静默丢弃
- uploadImages:有界并发池(并发 3),onEachDone 对每张图恰好回调一次,
成功与失败都精确回收一个 ⏳ 占位符
- isUploadedUrl:判定「是否已真正上传成功」。成功 resolve 的是后端 URL
(/api/v1/upload/files/… 或 http(s)://),未完成的拿到的是本地临时地址
(blob: / file:// / _doc/ / wxfile://)
上传成功绿勾角标
- 应用到 detail.vue(记录表单 + 驳回表单)与 records.vue(编辑记录弹窗)
- 角标仅在 isUploadedUrl 判定为真时渲染;⏳ 占位与失败项结构上不可能出现
角标,因为角标只存在于「已上传」的那个循环里
- 圆角与裁剪改由 .success-badge-wrapper 负责,图片只负责填满
修复:记录/拍照里已选图片无法删除
删除按钮原为 v-if="canDeleteImage",而该项在「任务已定稿
(COMPLETED/REJECTED/ARCHIVED/CANCELED)」或「非本人任务」时返回 false。
但 handleTaskAction 里 type === "record" 是无条件打开弹窗的,工人完全可能
在已完成任务上打开「记录/拍照」,于是刚选、尚未提交的图也被一并锁死 ——
那些图只存在于内存里,删掉不产生任何服务端影响。
- 新增 recordForm.savedCount(打开弹窗时已落库的张数),
新增 canDeleteRecordImage(i) = canDeleteImage || i >= savedCount:
本次新选的图永远可删,已落库的才受「任务已定稿」约束
- 未落库的图免去 5 秒倒计时 —— 该机制本是为不可逆的服务器删除设计的,
刚选错的图重拍一张即可,没必要卡 5 秒
- openEditRecord 由 images: record.images || [] 改为 saved.slice():
原先按引用赋值,删图会直接改动底层记录对象,此时点「取消」被删的图
在本地列表里也已经没了
|
2026-09-15 15:51:44 +08:00 |
|
|
|
eef4e5b72d
|
refactor: OTA 热更新抽离为公共模块 utils/ota.js
原先 checkUpdate / parseVersionCode / downloadAndInstall / downloadWgt /
installWgt / otaFailed 整个长在 App.vue 的 methods 里,个人中心「设置 →
检查更新」想手动触发一次根本做不到。抽到 utils/ota.js 后两处共用同一份
实现,改版本比对规则或下载策略只需改一处。
- 节流状态从 this._lastUpdateCheck 改为模块级单例
- 新增 checkAppUpdate({ manual }),manual 模式跳过节流、显示「检查中」、
并在「已是最新 / 检查失败」时给出明确反馈 —— 用户主动点的按钮必须有回音,
自动检查才静默收场
- App.vue 的 onLaunch/onShow 改为调用同一函数,自动模式行为不变
同时 App.vue 的全局样式新增 .success-badge-wrapper / .success-badge
(上传成功绿勾角标,供各页面图片列表复用):
- 直角三角形用 border-top(实色) + border-left(透明),直角落在右上;
写成 border-top + border-right 会得到左上角的三角,方向是反的
- 白勾用两条边框旋转 -45° 画成,不用 "✓" 字符 —— 该字形在安卓与 iOS 上
的字形和基线差异很大,对不齐
- 容器 overflow:hidden 只包图片本身,不能包住单元格:各页面的删除按钮
.img-del 定位在 -12rpx 处(单元格之外),包进去会被一并裁掉
|
2026-09-15 15:51:38 +08:00 |
|
|
|
44ca09ae22
|
feat: 新增个人效能统计接口 /dashboard/my-stats(支持自选时段)
移动端「个人中心 → 工作统计」的数据源。现有接口拿不到这份数据:
/dashboard/people-history 支持 assignee_id 但只返回 WIP/PENDING/COMPLETED,
不含 REJECTED;/dashboard/rejected-tasks 则根本没有 assignee_id 参数 ——
「今日被驳回数」按现有接口无论如何都过滤不到个人。故补一个薄桥接端点。
服务端 get_my_stats(db, assignee_id, since, until) 返回两组指标:
生产战绩(按 Task.assignee_id 归因)
- tasks_completed / tasks_rejected:status 判定 + completed_at 落在区间,
与 get_dashboard_stats 的 t_done_q 同一口径,只多了 assignee_id 过滤
- products_touched:按 product_id 去重,同一台设备做多道工序只算一台
操作统计(与 PC /dashboard/user-operations 严格同口径)
- receive/transfer:task_logs 的 receive / complete,按 operator_id 归因
- record:task_records 按 Task.assignee_id 归因,排除 '[' 开头的系统自动备注
- 前两项归因 operator_id、第三项归因 assignee_id 是 PC 端既有口径,
此处刻意保持一致,便于工人自查的数与主管看到的面板对得上
端点侧新增 _parse_bound():裸时间字符串(无时区偏移)按北京时间解释,
否则会被当作服务器本地时间,边界整体偏 8 小时,出现「选了今日却统计到
昨天下午」。since/until 缺省为「本月 1 日 ~ 此刻」。
|
2026-09-15 15:51:34 +08:00 |
|
|
|
242a6d5463
|
refactor: 环境地址收口到 utils/config.js,请求层新增 silent 静默模式
config.js(新增)作为后端域名/接口地址的唯一来源。此前 request.js 与 App.vue
各硬编码一份生产域名,改域名要改两处,漏一处就会出现「接口通了但 OTA 检查
更新接不上」这类极难排查的偏差。
request.js 改动:
- PROD_URL / LOCAL_URL 改为从 ./config 引入,不再就地硬编码
- 新增 options.silent:调用方自行兜底提示时跳过通用错误 toast。
用于 feedback 的 404 回退 mock —— 否则用户会先看到「请求失败 (404)」
再看到「感谢反馈」,两句自相矛盾。HTTP 错误与 fail 两个分支都受其控制
- fail 回调保留原始 errMsg 并打上 isNetworkError / isTimeout 标记:
fail 表示压根没拿到后端响应(超时/断网),与 4xx/5xx 有本质区别 ——
后端可能已执行成功只是响应没回来,上层需要据此打断用户的连点重试
|
2026-09-15 15:51:30 +08:00 |
|
|
|
93e4714019
|
chore: 修正 sync-watch.sh 同步方向为 src/ → HBuilderX 项目根
原脚本按 track-uniapp/ ↔ track-app/track/ 双向对拷,方向完全错误:
HBuilderX 是以 G:\Track\track-app\track 为项目根打开的(经典布局,
pages.json/App.vue/manifest.json 都在根目录),该目录是 track-uniapp/src/
的扁平镜像。证据:test_wgt_local.bat 写明 "build WGT in HBuilderX first",
且两侧文件时间戳逐项吻合。
按旧规则运行会造成三处破坏:
- 正向把 src/ 整个塞成 track/src/,并用 WSL 的 337B index.html 覆盖
HBuilderX 的 637B 入口文件
- 反向把 Windows 项目根的文件搬回 WSL 根目录,让刚清理的幽灵文件复活
- 用 src/manifest.json(T1.0.8) 覆盖 HBuilderX 里维护的 T1.0.44 + 存储权限
改动:
- 改为单向 src/ → 项目根,并显式排除 13 类仅在 Windows 侧存在的项
(manifest.json / index.html / static/ / uni.scss / unpackage/ / *.bak-* 等),
--delete 因此不会误伤它们,同时能让 WSL 侧的删除传播过去
- 不用 -a:/mnt/g 是 drvfs,POSIX 权限/属主恒为 777,-p/-o/-g 每次都判定为有差异,
产生无谓 chmod 与刷屏的 p 标记;改用 -rlt --no-perms --no-owner --no-group
- inotifywait 在 WSL 里并未安装,旧脚本 2>/dev/null 把 command not found 吞掉了
(表现为「脚本像在跑但 G 盘不更新」);改为明确提示 + 3 秒轮询兜底
- 不再吞 rsync 报错,失败时打印退出码;新增 once / dry 子命令
|
2026-09-15 15:51:24 +08:00 |
|
|
|
ab75b9613f
|
chore: 删除 track-uniapp 根目录与 src/ 重复的陈旧副本
构建实际读取的是 track-uniapp/src/ —— @dcloudio/vite-plugin-uni 的
UNI_INPUT_DIR 默认取 path.resolve(cwd, 'src'),检测到 src/manifest.json
即以其为输入目录。根目录那套 pages.json / App.vue / main.js / manifest.json
停留在 2026-08-04,是早期 HBuilderX 布局的遗留,早已不参与构建。
危害在于「同名同结构」:IDE 搜索 pages/profile/index.vue 会命中两个结果,
改到根目录那份既不编译也不报错,表现为「代码明明改了,App 里没变化」,
排查成本极高。
- 删除 pages/(4 个 .vue)、pages.json、App.vue、main.js、manifest.json
- 根 manifest.json 版本号为 T1.0.0(字符串),src/ 已是 T1.0.8(108),
且缺 Barcode/Camera 模块与图标配置
- 保留 index.html:它是生效的 H5 入口模板,内容引用 /src/main.js,
uni-app CLI 布局中本就在项目根
- 保留 static/:src/ 下无同名目录,非重复项
|
2026-09-15 15:51:19 +08:00 |
|
|
|
7b8084a43d
|
fix: 前端统一解析后端 detail 报错,杜绝 [object Object]
各处 catch 里直接 `toast(err?.response?.data?.detail ?? "xx失败")` 有坑:
请求体校验失败(422)时 detail 是数组,React 会把每个对象渲染成 [object Object]。
- utils/errorMessage.ts(新增): extractErrorMessage 统一解析三种形态 ——
字符串 / FastAPI 校验错误数组 / 对象;数组取 msg 并剥掉 Pydantic 的
"Value error, " 前缀、带上字段名、同字段去重后用「;」拼接;解析不出内容
则回落到调用方给的兜底文案。行为与移动端 extractErrorDetail 对齐
- 19 处调用点全部替换:AdminTasksPage(4) / AdminProductsPage(5) /
TaskTreeViewer(4) / AdminPrintConfigPage(2) / ScanPage / CreateProductDialog /
ImageUploader / authApi
- TaskRejectPayload.images 与 taskApi.rejectTask 的注释同步为「选填,支持空数组」
- 新增 components/ui/ImageUploader.tsx(驳回弹窗选图上传组件),
RejectModal 同步放开无图拦截:去掉 images 非空校验、提交按钮不再因
无图禁用、标签由必填星号改为「(选填,最多 9 张)」,并移除因此失效的
error 状态
- AdminTasksPage.tsx: 支持大屏下钻的 ?search / ?status / ?stage 预设参数,
新增「售后流转中」状态 Tab(按 lifecycle_phase 判定)与全局重置;
?stage 只在跳入时生效一次,用户手动改条件即解除锁定
- 杂项清理: TaskFlowView 移除透传的 assigneeNames、TaskListCard/MyTasksPage
移除未使用导入、QrScanner 关闭 verbose 日志
|
2026-09-15 10:57:56 +08:00 |
|
|
|
6b3f14e8fd
|
fix: 移动端驳回支持传图、422 报错可读化、修复详情页图片破图
车间的驳回操作不再强制拍照(编号错误等场景无需照片),移动端同步放开。
- utils/request.js: 新增 extractErrorDetail 统一解析后端 detail 的三种形态
(字符串 / FastAPI 校验错误数组 / 对象),新增 422 拦截分支,并把
400/403/409 及兜底分支的 `res.data?.detail || x` 全部换掉 —— 原写法在
detail 是数组时会把整个数组丢给 showToast,弹出 [object Object]
- pages/scan/detail.vue: 驳回弹窗新增与「追加记录」一致的选图/传图 UI,
doReject 携带 { reason, images }(允许空数组);选图上传流程抽成通用的
pickAndUploadImages,与追加记录共用
- pages/scan/detail.vue: 新增 imageUrl() 补全后端返回的相对路径
(/api/v1/upload/files/xxx.jpg 直接给 <image> 会破图),缩略图渲染与
previewImage 预览均已接入;逻辑与 records.vue / TaskTreeNode.vue 对齐
|
2026-09-15 10:57:49 +08:00 |
|
|
|
0d1e45e3fb
|
feat: 管理层数据大屏(后端聚合接口 + 前端全屏页面)
PC 管理端新增独立全屏数据大屏,供管理层查看直通率/产量趋势/不良分布,
替代原 AdminDashboard 上零散的手工下钻。
后端:
- endpoints/screen.py + services/screen_service.py: 大屏聚合接口
(复用 lifecycle 的售后工序归一,保证统计口径与展示一致)
- router.py: 注册 screen_router
前端:
- pages/admin/ScreenDashboard.tsx: 全屏大屏页(自带鉴权守卫,无侧边栏)
- services/screenApi.ts: 大屏数据接口封装
- components/admin/UserOperationDetailDrawer.tsx: 人员操作明细抽屉,
由 AdminDashboard 的原生 state 抽成独立组件(含命令式 handle)
- AdminDashboard.tsx: 改为使用该抽屉组件,移除内联的下钻状态
- MatrixBoard.tsx / App.tsx / AdminLayout.tsx: 挂载路由与导航入口
- BaseEChart.tsx: 注册 GaugeChart 与 GraphicComponent
(graphic 需显式注册,否则饼图中心文字静默不渲染)
|
2026-09-15 10:57:46 +08:00 |
|
|
|
71e660b428
|
feat: 驳回图片改为选填,驳回原因/转交备注落库留痕
业务调整:车间驳回不必须拍照(编号错误、选错工序等场景无需照片举证)。
- schemas/task.py: TaskRejectRequest.images 由必填(min_length=1)改为
default_factory=list,保留 max_length=9 与 URL 总长保护;reason 增加
mode="before" 的 strip 校验器,堵住纯空格凑长度绕过 min_length 的口子
(顺带保证落库的 reject_reason 不带首尾空白)
- task_service.py: 驳回时把原因+图片写入 TaskRecord 挂到被驳回任务下,
修复前端时间线看不到驳回详情的问题;转交时把交接备注也挂一条记录到
下家任务,补齐接手人的上下文视角
- task_service.py: create_task / receive_task 写入 overall_status 后调用
sync_product_status 对齐 status 字段
|
2026-09-15 10:57:35 +08:00 |
|
|
|
f22eae315f
|
fix: 售后回流口径统一 — 状态双字段同步、工序名归一、标签配色
产品存在 overall_status 与 status 两个状态字段,此前各写入点各写一份映射、
甚至只改 overall_status 不改 status,导致回流设备(product.status 停留在
OUTBOUND)污染看板统计口径。
- lifecycle.py: 把映射表收敛为单一来源 overall_to_product_status /
sync_product_status;新增 normalize_after_sales_step,将售后设备沿用生产
阶段写法的历史工序名(测试/维修)折算到售后区独立工序名
- product_service.py: 删除本地 _OVERALL_TO_STATUS 副本,改用共享函数
- dashboard_service.py: WIP 矩阵补出 lifecycle_phase 列,活跃任务判定
(is_active) 提前到所有终结态判定之前,避免残留 OUTBOUND 被误判为完结
- scripts/fix_product_status.py: 历史数据修复脚本(一次性)
- constants/task.ts: 售后工序标签由红色改紫色 —— 红色在本系统是「驳回/危险」
语义色,售后只是另一条流转支线,用红色会让操作员误以为设备报错
|
2026-09-15 10:57:29 +08:00 |
|
|
|
31d085881b
|
feat: 移动端工序选项隔离与售后标签
|
2026-09-14 14:49:38 +08:00 |
|
|
|
3238e4819a
|
feat: 网页端渲染售后回流标签(发货测试/售后维修)
|
2026-09-14 14:49:38 +08:00 |
|
|
|
db3bafcc66
|
feat: 前端补充生命周期类型定义与工序词表
|
2026-09-14 14:49:38 +08:00 |
|
|
|
2de95799c6
|
feat: 售后回流判定与工序选项隔离守卫(建单/接收/转交)
|
2026-09-14 14:49:34 +08:00 |
|
|
|
b40340ea55
|
feat: 产品接口暴露lifecycle_phase并做阶段感知状态校验
|
2026-09-14 14:49:34 +08:00 |
|
|
|
b9f9b897a1
|
feat: 新增产品生命周期阶段字段lifecycle_phase与售后工序词表
|
2026-09-14 14:49:34 +08:00 |
|
|
|
3568d17865
|
fix: 转交时动态推导task_type,避免协助分支转交被误升为主线
|
2026-09-14 14:49:26 +08:00 |
|
|
|
b088d25df9
|
feat: 任务树/流转卡展示驳回原因与返工备注(网页SlimCard,移动端FlowCard/SwipeCards)
|
2026-09-09 17:29:40 +08:00 |
|
|
|
7b7dbbb0d8
|
fix: WIP矩阵-左外连接纳入无任务新品归待接收,PENDING并入待接收,空负责人显式计数为未分配; 表头去待确认列并做TOP N折叠
|
2026-09-09 17:29:36 +08:00 |
|
|
|
d757c7985b
|
fix: WIP矩阵口径重构-在制无条件计入,终结态按完工时间锚点(completed_at兜底created_at)过滤,多维终结归类(含扫码入库/出库节点),下钻同步
|
2026-09-07 14:46:58 +08:00 |
|
|
|
2925eb8e0b
|
feat: 产品管理页新增状态收口按钮,倒计时+输入产品身份证双重确认防误触
|
2026-09-07 13:43:09 +08:00 |
|
|
|
70c8357bc0
|
feat: 后端新增产品收口接口(已入库/已出库,管理员,含扫码节点与操作日志,可反向纠错与强收口)
|
2026-09-07 13:43:06 +08:00 |
|
|
|
ba96937933
|
fix: 移动端产品详情锁定工作区操作栏固定底部并加内容底部占位
|
2026-09-07 11:08:52 +08:00 |
|
|
|
109f45f22a
|
feat: 产品/任务搜索支持业务序列号(external_serial)检索
|
2026-09-07 11:08:49 +08:00 |
|
|
|
b4795181ee
|
feat: 人员视图X轴改为四行展示(名称/规格/序列号/身份证)并加大底部空间
|
2026-09-03 16:35:35 +08:00 |
|
|
|
09984951fb
|
feat: 全局概览/产品管理/人员看板跳转统一改为新标签页打开
|
2026-09-03 16:27:18 +08:00 |
|
|
|
f65f6e12c6
|
fix: 效能分析默认时间恢复今天,删除伪造1h兜底,轨迹流转X轴四行展示
|
2026-09-03 16:27:10 +08:00 |
|
|
|
cd5a904a16
|
fix: 效能分析flow时间筛选改为设备级(该时间有活动即入选),任务完整返回不切片
|
2026-09-03 16:27:04 +08:00 |
|
|
|
fe495ad707
|
fix: 前端生产构建放宽node堆内存并跳过basicSsl避免服务器卡死
|
2026-09-02 10:39:05 +08:00 |
|
|
|
06337fc8eb
|
feat: 效能分析X轴四行标签/flow分块/自然工作日即时切换/时间快捷选项
|
2026-09-02 10:39:01 +08:00 |
|
|
|
3c6c8c0c53
|
feat: WIP矩阵单表化/固定表头/首列复合/下钻日志弹窗/时间联动
|
2026-09-02 10:38:58 +08:00 |
|
|
|
2d8c937189
|
feat: 效能分析flow区间携带自然/工作日双时长并支持时间过滤
|
2026-09-02 10:38:53 +08:00 |
|
|
|
3019653dfa
|
refactor: 宏观状态统一(待仓库收货/已入库)废弃"在库"; WIP矩阵返回product_name并新增下钻明细
|
2026-09-02 10:38:49 +08:00 |
|
|
|
e194b97649
|
fix: 全状态对齐 - 已出库(OUTBOUND)覆盖所有看板
- 看板产品流转 finished_cond 加'已出库',已出库归入已完结
- WIP 矩阵区分'已出库'维度
- MyTasksPage tab 加'已出库'
- 移动端 detail/WorkspaceArea STATUS_MAP 补 OUTBOUND
|
2026-09-02 09:07:37 +08:00 |
|
|
|
ccc5a23a77
|
deploy: Track 部署脚本改为免 sudo(与 MOM deploy_code.sh 一致)
- 去掉所有 sudo 与 ssh -t
- 前提:服务器 /opt/Track 属主改为 dxc(一次性 chown)
|
2026-09-01 18:26:53 +08:00 |
|
|
|
9eb66fa29f
|
fix: Track 服务器备份排除 venv/node_modules,修复备份极慢
- 原命令无 --exclude,把 backend/venv(140M)+frontend/node_modules(519M)打包 gzip 导致极慢
- 补排除与本地打包一致,备份耗时大幅下降
|
2026-09-01 18:24:48 +08:00 |
|
|
|
619f224030
|
deploy: Track prod 补充 TRACK_WEBHOOK_KEY 验签
- MOM 入库/出库 Webhook 回调鉴权必需,与 MOM 侧 Key 一致
|
2026-09-01 18:02:38 +08:00 |
|
|
|
6c93b98190
|
fix: 移动端全览树/卡片模式兼容 WAREHOUSE 仓储节点
- WorkspaceArea/TaskSwipeCards 的 isMainFn 与主线子任务过滤加 WAREHOUSE
- 扫码入库/出库节点回到中央主干道,不再渲染在左侧分支
- TaskSwipeCards 操作人防御性渲染:仓储任务显示 📦 MOM 仓储系统,不崩不丢
|
2026-09-01 17:42:57 +08:00 |
|
|
|
262e28b9f2
|
fix: 仓储任务节点修复(assignee=None + WAREHOUSE 类型) + 前端防御性渲染
- webhook 生成任务 assignee_id 置 None,不再填中文,避免前端解析报错跳过渲染
- task_type=WAREHOUSE,并同步 isMain 判断(后端+双端前端)使其画在中央主干道
- 前端对扫码入库/出库任务:不请求用户数据,直接显示 📦 + 'MOM 仓储系统'
|
2026-09-01 17:25:22 +08:00 |
|
|
|
5407e2135f
|
feat: Webhook 入库/出库后动态生成扫码任务节点与操作日志
- mom-inbound/mom-outbound 在标记已入库/已出库后,追加'扫码入库/扫码出库'主线任务
- 新任务 parent_task_id 取最后一个主线任务,task_type=TRANSFER 保证画在主干道
- 生成 TaskRecord 操作日志,前端流转树最底部长出节点
- 幂等:已存在同名任务则不重复插入
|
2026-09-01 16:55:13 +08:00 |
|
|
|
2b889b99d6
|
fix: webhook 匹配支持 external_serial 外部业务序列号
- mom-inbound/mom-outbound 用 or_ 双字段联合匹配 serial_number 与 external_serial
- MOM 推送 ceshi123 等自定义序列号时也能精准认领产品并闭环状态
|
2026-09-01 15:25:42 +08:00 |
|
|
|
3749aa766b
|
style: 移动端流转树视觉降噪与分支箭头方向修复
- 已完成卡片降透明度/浅灰底/深灰字;进行中卡片纯白+蓝色边框+外发光
- 分支箭头改为从主干道指向分支(左翼←右翼→),橙色虚线
|
2026-09-01 15:02:20 +08:00 |
|
|
|
b766e35db6
|
fix: 移动端流转树修复进行中任务消失与日志条对齐 Web
- scroll-view 补 scroll-y:多条主线垂直堆叠时底部进行中任务不再被截断
- FlowCard 补 IN_PROGRESS 状态(橙色'待收货'),与 Web 端一致
- 操作日志改为卡片底部全宽蓝色条块,删除时间右侧角标
|
2026-09-01 14:55:16 +08:00 |
|
|
|
9c1246e2c9
|
style: 网页端操作日志条铺满卡片宽度并加可点击箭头
- 负 margin 精确抵消 padding+border,蓝条真正贯穿卡片宽度
- 日志文字加粗 + 末尾蓝色 › 箭头提示可点击
|
2026-09-01 14:44:18 +08:00 |
|
|
|
84af09ea75
|
style: 移动端流转树主轴连线与卡片排版优化
- 中央垂直线首行从 50% 起、末行到 50% 止,不再冒出
- FlowCard 时间独占一行,操作日志独立一行靠右对齐
|
2026-09-01 14:42:59 +08:00 |
|
|
|
34618579c8
|
style: 网页端流转树主轴连线与日志条优化
- 中央垂直线按行渲染:首行从卡片中间起、末行到卡片中间止
- 操作日志改为全行蓝色横条(查看操作日志 x条),整条可点击
|
2026-09-01 14:42:59 +08:00 |
|
|
|
327f5f7829
|
refactor: 移动端流转树全面复刻 Web 端 childMap 左中右布局
- 废弃递归纵向排版(FlowTree),改用拍平 + childMap 重构
- 横向 scroll-x + 每条主线一个 Row:[左翼]-[中央]-[右翼]
- 中央绝对定位垂直线贯穿;分支按奇偶拆左右翼,横向展开
- 新建 FlowCard(节点卡片)与 FlowBranch(递归分支)
|
2026-09-01 14:37:29 +08:00 |
|