wangjia
|
539852c7b3
|
feat(client): 出库列表设计语言重建(副标 + 共享 StatusPill + golden)
副标「共 N 笔出库单」+ 详情弹窗斑马行 token 化;复用已升级的共享
StatusBadge→StatusPill;整屏 golden ×三主题(桌面+移动)入回归闸。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TSKEiHsvauyxYUW2itzUXX
|
2026-06-25 13:32:28 +08:00 |
|
wangjia
|
99a2b533e6
|
feat(client): 入库列表 + 共享订单状态徽章设计语言重建
- StatusBadge → StatusPill(草稿/待审核/已审核/已拒绝 圆点软底,色走 token:
infoSoft/warnBg/successBg/dangerBg)——入库/出库列表共享,一处升级两屏受益
- 入库列表副标「共 N 笔入库单」+ 详情弹窗斑马行/灰字 token 化(修暗色破绽)
- 整屏 golden ×三主题(桌面+移动)入回归闸
analyze 0 error.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TSKEiHsvauyxYUW2itzUXX
|
2026-06-25 13:29:56 +08:00 |
|
wangjia
|
7f92a51055
|
docs(design): CONTRACT 加往来单位验收行 + 记录富数据缺口策略
往来单位桌面/移动验收勾全;记录「原型富数据 vs 现有后端」缺口与
本阶段「设计语言升级、富数据留二期」策略。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TSKEiHsvauyxYUW2itzUXX
|
2026-06-25 13:05:47 +08:00 |
|
wangjia
|
f994fbd031
|
feat(client): 往来单位屏设计语言重建(副标/状态徽章/两行名称/响应式 toolbar)
- 副标「共 N 个供应商/客户」(还原 .head .sub)
- 状态 → StatusPill(启用绿/停用灰,新 _PartnerStatusPill),桌面+移动一致
- 编码+名称合并两行(name 加粗 + code 等宽 muted)
- toolbar 响应式(窄屏搜索独占一行 + 操作行)+ token 间距,修预存窄屏溢出
- 整屏 golden ×三主题(桌面+移动)入回归闸
暂缓(数据缺口/有意偏差):应收/应付列(Partner 模型无该字段)、
类型 chips(现保留 供应商/客户 两 Tab)。
analyze 0 error · flutter test +181(往来桌面/移动各 3 golden)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TSKEiHsvauyxYUW2itzUXX
|
2026-06-25 13:05:12 +08:00 |
|
wangjia
|
8410f942f2
|
docs(design): CONTRACT 库存列表桌面+移动验收勾全(首屏闭环)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TSKEiHsvauyxYUW2itzUXX
|
2026-06-25 12:11:35 +08:00 |
|
wangjia
|
1632f5f1d9
|
feat(client): 库存列表收尾——副标/toolbar 间距/移动端 golden
- 副标(还原原型 .head .sub):KPI 上方「共 N 个商品 · 数据实时」(千分位)
- toolbar 间距 token 化:搜索框对齐原型 240,间隔走 AppDims.sp2/sp3
- 移动端 golden:窄屏(390)卡片流路径 ×三主题入回归闸
- 顺带修 DataTableCard 分页条窄屏横向溢出(mobile 隐藏每页选择器,
golden 闸抓出的预存 bug)
analyze 0 error · flutter test +175(库存桌面/移动各 3 golden 全过)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TSKEiHsvauyxYUW2itzUXX
|
2026-06-25 12:11:17 +08:00 |
|
wangjia
|
e1a4fec22b
|
chore: 设计系统闸改本地 pre-commit(撤 CI)
撤 .gitea/workflows/ds-gate.yml,改本地钩子:
- scripts/hooks/pre-commit:提交动了 .superpowers/prototype/ 才跑 check-ds.mjs
(12 道),违规即 exit 1 阻止;--no-verify 可跳过。
- scripts/hooks/install.sh:每台机器跑一次,装 worktree-aware shim 到 git hooks。
原型仍入库(上一提交),仅执行处从 CI 移到本地。已测:违规阻止/无关跳过均正确。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TSKEiHsvauyxYUW2itzUXX
|
2026-06-25 11:33:12 +08:00 |
|
wangjia
|
f5bdc3aaea
|
ci: 原型设计系统守门闸入库 + 挂 CI(check-ds.mjs · 12 道)
.superpowers/prototype/(设计像素真源 + check-ds.mjs)移出 gitignore 入库
(brainstorm/sdd 仍忽略);新增 .gitea/workflows/ds-gate.yml:改原型即跑
node check-ds.mjs(颜色/排版/层级/圆角/字体/图标走单一真源、组件登记未 fork、
断点规范,12 道全过才放行)。runs-on mac(已有 node)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TSKEiHsvauyxYUW2itzUXX
|
2026-06-25 11:24:55 +08:00 |
|
wangjia
|
db9bd15ace
|
docs(design): CONTRACT 记录验收双闸就位 + 库存列表验收状态
块4 改为双闸(保真 ds-compare 目检 / 回归 golden 自比),登记基建就位与
库存列表当前进度(KPI/徽章/列已还原,header/toolbar 待收尾)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TSKEiHsvauyxYUW2itzUXX
|
2026-06-25 11:10:43 +08:00 |
|
wangjia
|
019d73cfc5
|
build(tools): ds-compare.mjs 还原保真目检编排 + gitignore 对比图
一键流程:对某屏按 A/B/C 截原型基准 + 与 Flutter golden 用 montage 并排
→ design/_compare/<prefix>_<theme>.png 人工目检。封装 design-distill skill 的
shoot-prototype + montage。对比图可重生,已 gitignore。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TSKEiHsvauyxYUW2itzUXX
|
2026-06-25 11:10:12 +08:00 |
|
wangjia
|
af1ed9aeff
|
test(client): 整屏 golden 还原闸 + 可复用 golden 骨架(基建)
test/support/golden_harness.dart:pumpGolden(viewport=physical÷dpr/给足高度/
provider 覆盖)+ goldenAcrossThemes(A/B/C 三主题组)。
test/golden/inventory_list_golden_test.dart:库存列表整屏 × 三主题 golden
(fake AsyncNotifier 喂 canned 数据 + isReadonly 覆盖 + SP mock),入库作回归闸。
保真目检:shoot 原型 + montage 与 goldens 并排(见 design-distill flutter-golden.md)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TSKEiHsvauyxYUW2itzUXX
|
2026-06-25 11:08:44 +08:00 |
|
wangjia
|
a719840ede
|
feat(client): 库存表列按原型重排 + 商品列 name/code 合并两行
列序照原型:商品(name+code 两行) · 规格 · 系列 · 批次 · 单价 · 生产日期 ·
入库时间 · 供应商 · 仓库 · 备注 · 状态 · 操作。遵项目铁律跳过「库存数量/成本价」
(装箱数脏数据 + 进价敏感),仓库/备注保留为可隐藏列。新增 _productCell
(name 加粗可点进详情 + code 等宽 muted,fsXs 走 AppDims)。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TSKEiHsvauyxYUW2itzUXX
|
2026-06-25 10:05:00 +08:00 |
|
wangjia
|
8cfcb190b9
|
test(client): KPI 卡三主题 golden(design-distill 阶段4 Flutter 侧首个还原闸)
test/theme/kpi_card_golden_test.dart:4 张 KPI 卡 × A/B/C 三主题 golden,
产出 goldens/kpi_strip_{a,b,c}.png。验证 KpiCard 还原原型 .kpi 结构/色调
(icon 芯片 info/blue/warn/alert 分档着色、alert 值取 accent、软底随主题换)。
更新基准:flutter test --update-goldens test/theme/kpi_card_golden_test.dart
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TSKEiHsvauyxYUW2itzUXX
|
2026-06-25 07:01:19 +08:00 |
|
wangjia
|
60483ae483
|
feat(client): 库存列表 KPI 卡 + 状态徽章按原型重建(阶段3 首切)
新增可复用 widgets/kpi_card.dart:KpiCard(还原原型 .kpi/.ic,6 档色调
info/ok/blue/alert/warn/danger,token+AppDims 驱动)+ StatusPill(.badge
圆点软底)。库存查询页 3 张旧 _SummaryCard → 4 张 KPI 卡(商品总数/在库数量/
库存预警/缺货,商品总数可点清筛选)。状态徽章 正常/库存不足→在售/预警,
硬编码 FFEBEE/FFF3E0/E8F5E9 → dangerBg/warnBg/okSoft;出入库方向徽章同迁。
该屏 0 硬编码色残留,三主题随 token 换色。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TSKEiHsvauyxYUW2itzUXX
|
2026-06-25 06:56:45 +08:00 |
|
wangjia
|
b037486401
|
feat(client): token 地基补字阶/圆角/间距标量层 AppDims(codegen 单源)
gen_tokens.mjs 扩展解析 :root 共享块 → 生成 app_dims.g.dart:
间距 sp1-10 / 圆角 rSm-rPill / 字号 fsDisplay-fsXs,主题无关 const 标量。
为屏幕重建提供「禁硬编码 px」的单一真源;app_tokens.g.dart 保持字节一致。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TSKEiHsvauyxYUW2itzUXX
|
2026-06-25 06:51:52 +08:00 |
|
wangjia
|
f9c9c5dcac
|
docs(design): 库存列表设计契约 CONTRACT(design-distill 阶段1)
token映射(prototype var→AppTokens,已1:1)/组件清单/库存列表像素规格/
逐屏验收清单(HTML→Flutter 跨渲染器特例:基准并排目检+三主题自比)。
标注缺口:AppTokens 目前仅颜色,字阶/圆角/间距需补进 token 单源。
登记进 docs/index.html。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TSKEiHsvauyxYUW2itzUXX
|
2026-06-25 06:27:20 +08:00 |
|
wangjia
|
5964fd0eba
|
feat(client): 设置页新增外观主题选择器(A/B/C 实时切换)
系统参数 Tab 顶部加「外观主题」卡片:三枚带微缩预览的主题色板
(经典蓝/琥珀/酒窖),点选即调用 themeController.set 实时换色并持久化。
表格列头 F0F4FF → thBg 一并清理。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TSKEiHsvauyxYUW2itzUXX
|
2026-06-25 06:21:35 +08:00 |
|
wangjia
|
c18c37944a
|
refactor(client): 裸色字面量 F0F6FF/F0F4FF 迁移到 token
入库选填区/退单提示条 F0F6FF → infoSoft;表格列头 F0F4FF → thBg;
登录历史项/外壳用户菜单 hover → rowHover、菜单文字 → text。
深色主题 B / 暖色主题 C 下这些 chrome 现可正确随主题换色。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TSKEiHsvauyxYUW2itzUXX
|
2026-06-25 06:21:35 +08:00 |
|
wangjia
|
93cb5dae25
|
refactor(client): license_copy 内联色 + 删除 app_theme.dart(AppTheme 退役)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-25 00:25:42 +08:00 |
|
wangjia
|
6570ac792c
|
refactor(client): 往来/设备/登录/关于颜色迁移到 context.tokens
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-25 00:20:11 +08:00 |
|
wangjia
|
8ef2424090
|
refactor(client): 设置/外壳颜色迁移到 context.tokens
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-25 00:10:15 +08:00 |
|
wangjia
|
9c2a73c4b6
|
refactor(client): 商品/财务域颜色迁移到 context.tokens
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-24 23:57:49 +08:00 |
|
wangjia
|
9709986ff0
|
refactor(client): 出库域颜色迁移到 context.tokens
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-24 23:47:35 +08:00 |
|
wangjia
|
0c9d7137e3
|
refactor(client): 入库域颜色迁移到 context.tokens
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-24 23:36:58 +08:00 |
|
wangjia
|
c0a7feac55
|
refactor(client): 库存域颜色迁移到 context.tokens
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-24 23:25:34 +08:00 |
|
wangjia
|
b37c46fb9c
|
refactor(client): widgets 颜色迁移到 context.tokens
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-24 23:12:20 +08:00 |
|
wangjia
|
1671edd913
|
refactor(client): 移除 themes.dart 未使用 import
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-24 22:06:46 +08:00 |
|
wangjia
|
82d1e860a7
|
feat(client): main 接入可切换三主题(启动恢复持久化选择)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-24 22:00:59 +08:00 |
|
wangjia
|
d743bb04b6
|
feat(client): 主题选择 controller + SharedPreferences 持久化
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-24 21:46:51 +08:00 |
|
wangjia
|
48b9340219
|
feat(client): context.tokens 取色扩展
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-24 21:44:03 +08:00 |
|
wangjia
|
ede33c8bf5
|
feat(client): 三套 ThemeData 构建(挂 AppTokens,B 为 dark)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-24 21:40:51 +08:00 |
|
wangjia
|
a95a4ac86b
|
feat(client): codegen 单源生成三主题 AppTokens(禁手写 hex)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-24 21:36:22 +08:00 |
|
wangjia
|
1ac2632c45
|
feat(client): 新增 AppTokens ThemeExtension 类型
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-24 21:30:31 +08:00 |
|
wangjia
|
a678c3806e
|
chore: release client-v1.0.79
Deploy Client / build-client-web (push) Successful in 44s
Deploy Client / build-macos (push) Successful in 2m29s
Deploy Client / build-android (push) Successful in 1m23s
Deploy Client / build-ios (push) Successful in 2m59s
Deploy Client / build-windows (push) Successful in 1m52s
Deploy Client / release-deploy-client (push) Successful in 2m40s
入库/出库单搜索框升级:搜索后关键词转为框内 chip 标签 + 一键清除(✕),仅保留单个搜索词;新增 SearchChip 组件 + provider currentKeyword getter 进屏同步。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YZ4DskSRKsSiheQonFtQvx
client-v1.0.79
|
2026-06-24 12:08:55 +08:00 |
|
wangjia
|
5ff41cc505
|
chore: release server-v1.0.81
Deploy Server / release-deploy-server (push) Successful in 1m54s
修复入库单/出库单按商品名搜不到历史导入单:搜索酒名条件由 COALESCE(被占位名劫持) 改为 p.name OR it.product_name 任一命中,并加回归测试。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YZ4DskSRKsSiheQonFtQvx
server-v1.0.81
|
2026-06-24 11:56:21 +08:00 |
|
wangjia
|
33b0f6c30c
|
chore: release client-v1.0.78
Deploy Client / build-windows (push) Successful in 1m52s
Deploy Client / build-client-web (push) Successful in 41s
Deploy Client / build-macos (push) Successful in 2m36s
Deploy Client / build-android (push) Successful in 1m16s
Deploy Client / build-ios (push) Successful in 3m0s
Deploy Client / release-deploy-client (push) Successful in 3m11s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YZ4DskSRKsSiheQonFtQvx
client-v1.0.78
|
2026-06-24 01:26:39 +08:00 |
|
wangjia
|
6f25972277
|
chore: release server-v1.0.80
Deploy Server / release-deploy-server (push) Successful in 1m57s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YZ4DskSRKsSiheQonFtQvx
server-v1.0.80
|
2026-06-24 01:25:51 +08:00 |
|
wangjia
|
a06c1c0709
|
fix(deploy): setup_ssh 给私钥补结尾换行,修复阿里 ed25519 部署 key "invalid format"
Forgejo 存 secret 时会去掉结尾换行,而 OpenSSH 格式私钥(如阿里 ed25519
部署 key)缺结尾换行会被 openssh 判为 "invalid format" 拒绝加载,退化成
无密钥 → Permission denied,导致迁移期 Deploy → Ali 影子轨每次都失败
(因 continue-on-error 不阻塞 EC2、流水线仍显示成功,故未被察觉)。
EC2 那把是 RSA/PEM 对结尾换行宽容,未暴露此问题。
改 printf '%s' → printf '%s\n' 始终补一个结尾换行;对已含换行的 PEM 无害。
已本机端到端复现并验证:去掉结尾换行的 key 经修复后 deploy-server.sh
阿里分支跑通,阿里二进制已与 EC2 一致(sha 7e77ec46)、jiu.service 保持 stopped。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YZ4DskSRKsSiheQonFtQvx
|
2026-06-24 01:23:13 +08:00 |
|
wangjia
|
052a541084
|
chore: release client-v1.0.77
Deploy Client / build-client-web (push) Successful in 42s
Deploy Client / build-windows (push) Successful in 1m57s
Deploy Client / build-macos (push) Successful in 2m51s
Deploy Client / build-android (push) Successful in 1m32s
Deploy Client / build-ios (push) Successful in 3m42s
Deploy Client / release-deploy-client (push) Successful in 3m10s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YZ4DskSRKsSiheQonFtQvx
client-v1.0.77
|
2026-06-24 00:33:22 +08:00 |
|
wangjia
|
b260939563
|
chore: release server-v1.0.79
Deploy Server / release-deploy-server (push) Successful in 1m46s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YZ4DskSRKsSiheQonFtQvx
server-v1.0.79
|
2026-06-24 00:32:24 +08:00 |
|
wangjia
|
84f99ef459
|
test: 补酒名搜索拼音/多租户与前端搜索限流用例
- backend: 入库酒名全拼(feitian)+首字母(ftmt)命中、不相关拼音不命中
- backend: 入库酒名反查的多租户隔离(店A搜茅台不串到店B)
- client: setKeyword 防抖(350ms内连发取最后一次)+去重(同词不重查)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-24 00:19:34 +08:00 |
|
wangjia
|
102ace42ac
|
feat(client): 入库/出库搜索框支持酒名,并对搜索限流
- 搜索框 hint 改为「单号/往来单位/酒名」
- setKeyword 加去重+350ms 防抖:同词不重查、连发回车/狂点合并取最后一次,
避免酒名模糊查询(单次约 55ms 明细扫描)被刷
- Timer 在 provider dispose 时取消
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-24 00:19:34 +08:00 |
|
wangjia
|
e8f416ddea
|
feat(backend): 入库/出库列表 keyword 支持酒名模糊反查
- keyword 在单号/往来单位基础上,新增按酒名反查含该酒明细的单据
- 酒名匹配复用拼音基建:name(优先 product 回退快照) + name_pinyin + name_initials
- 子查询带 shop_id,多租户隔离不破
- 补 stock_in/stock_out List 按酒名+拼音命中的测试用例
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-24 00:19:34 +08:00 |
|
wangjia
|
08b41a8f63
|
feat(client): 入库单价允许留空/0(待定价),移除 >0 校验
- 删除新建入库商品明细单价的「不能为空 + >0」校验,留空或填 0 视为「待定价」
- 待定价明细经审核后在入库单详情「确认进价」补填真实进价
- 清理未使用的 productCode 局部变量与 _productCodeOf 辅助方法
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-24 00:19:34 +08:00 |
|
wangjia
|
2eb4275e6f
|
chore(deploy): CI 双轨——发版同时部署 EC2 + 阿里(EC2→Ali 迁移期)
deploy-{server,site,client}.sh 目标主机参数化(DEPLOY_HOST/USER/SSH_KEY),
不传时行为与现状完全一致(只发 EC2)。workflow 的 Deploy 拆成 EC2(前)+
Ali(后,if:always + continue-on-error,影子目标失败不挡线上)。deploy-server
的 ali 分支只换二进制 + reload 独立 nginx(listen 443),不启动 jiu(阿里 DB
为只读从库,切流提升为主后才起)。新增 deploy/nginx-jiu-ali.conf 并打进
configs.tar.gz。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01YZ4DskSRKsSiheQonFtQvx
|
2026-06-23 22:57:41 +08:00 |
|
wangjia
|
9139192097
|
chore: release server-v1.0.78
Deploy Server / release-deploy-server (push) Successful in 6m36s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
server-v1.0.78
|
2026-06-23 20:12:34 +08:00 |
|
wangjia
|
ff4a2db7cc
|
chore: release client-v1.0.76
Deploy Client / build-client-web (push) Successful in 42s
Deploy Client / build-macos (push) Successful in 2m33s
Deploy Client / build-android (push) Successful in 1m37s
Deploy Client / build-ios (push) Successful in 2m51s
Deploy Client / build-windows (push) Successful in 2m22s
Deploy Client / release-deploy-client (push) Successful in 2m58s
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
client-v1.0.76
|
2026-06-23 20:12:12 +08:00 |
|
wangjia
|
21aa2523b7
|
docs: 暂估价→确认进价 设计方案(HTML)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-23 20:07:50 +08:00 |
|
wangjia
|
f395920a8c
|
feat(client): 入库确认进价入口与「待定价」标注
入库单详情弹窗为已审核+含 0 价明细+管理员时显示「确认进价」,
逐行补填真实进价调后端;库存列表与入库明细 0 价/NULL 显示
「待定价」而非 ¥0.00。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-23 20:07:50 +08:00 |
|
wangjia
|
3625240839
|
feat(backend): 入库「确认进价」前向补偿(暂估价→真实价)
调货 0 价入库并已审核/出库后,价格确定时补填真实进价:一事务内
回填入库明细/库存批次/已出库成本快照,重算入库单总额,按差额补
应付流水,同步参考进价。按 product_id 精确命中(序列号 1:1),
不动售价/应收。仅 approved 单、管理员/超管,差额幂等可重复确认。
新增 POST /stock-in/orders/:id/confirm-cost 及 4 个测试用例。
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-06-23 20:07:49 +08:00 |
|