feat(client): 草稿 KPI 卡(暗黄)+ 出库详情总售价列 + 明细去¥缩号 + 建单默认值 + 若干列名
- 出入库列表加草稿 KPI 卡(DsKpiTone.warn 新档,审核卡后,点击筛选草稿) - 出库详情 7 列:售价后加总售价;明细行内价格去 ¥ 且缩一号(合计保留 ¥); 5/7 列宽重排(系列/数量左移、进价(单瓶)不折行) - 出库建单:数量默认=可用数量、售价默认=参考售价(product.sale_price) - 入库详情列名:进价(单瓶)/总价;库存列表「单价」→「总价」(库存×成本); 商品抽屉:成本价(单瓶)/总成本价 - 公开商品预览页加返回按钮(仅 App 内 canPop 时显示,扫码直达保持纯净) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JJ1g8XV1YhhmHRzhwWEW7o
|
Before Width: | Height: | Size: 423 KiB After Width: | Height: | Size: 420 KiB |
|
Before Width: | Height: | Size: 416 KiB After Width: | Height: | Size: 414 KiB |
|
Before Width: | Height: | Size: 424 KiB After Width: | Height: | Size: 422 KiB |
|
Before Width: | Height: | Size: 301 KiB After Width: | Height: | Size: 301 KiB |
|
Before Width: | Height: | Size: 296 KiB After Width: | Height: | Size: 296 KiB |
|
Before Width: | Height: | Size: 302 KiB After Width: | Height: | Size: 302 KiB |
|
Before Width: | Height: | Size: 291 KiB After Width: | Height: | Size: 294 KiB |
|
Before Width: | Height: | Size: 287 KiB After Width: | Height: | Size: 289 KiB |
|
Before Width: | Height: | Size: 292 KiB After Width: | Height: | Size: 295 KiB |
|
Before Width: | Height: | Size: 434 KiB After Width: | Height: | Size: 438 KiB |
|
Before Width: | Height: | Size: 423 KiB After Width: | Height: | Size: 426 KiB |
|
Before Width: | Height: | Size: 435 KiB After Width: | Height: | Size: 439 KiB |
|
Before Width: | Height: | Size: 400 KiB After Width: | Height: | Size: 402 KiB |
|
Before Width: | Height: | Size: 388 KiB After Width: | Height: | Size: 392 KiB |
|
Before Width: | Height: | Size: 401 KiB After Width: | Height: | Size: 404 KiB |
|
Before Width: | Height: | Size: 398 KiB After Width: | Height: | Size: 400 KiB |
|
Before Width: | Height: | Size: 388 KiB After Width: | Height: | Size: 388 KiB |
|
Before Width: | Height: | Size: 400 KiB After Width: | Height: | Size: 401 KiB |
@@ -19,6 +19,7 @@ void main() {
|
||||
spec: '500ml*6/件',
|
||||
qty: '2',
|
||||
price: '¥400.00',
|
||||
amount: '¥800.00',
|
||||
cost: '¥355.00',
|
||||
profit: '¥90.00',
|
||||
);
|
||||
@@ -47,6 +48,8 @@ void main() {
|
||||
)));
|
||||
expect(find.text('成本价'), findsOneWidget);
|
||||
expect(find.text('售价'), findsOneWidget);
|
||||
expect(find.text('总售价'), findsOneWidget);
|
||||
expect(find.text('¥800.00'), findsNWidgets(2)); // 行总售价 + 合计金额
|
||||
expect(find.text('利润'), findsOneWidget);
|
||||
expect(find.text('¥355.00'), findsOneWidget);
|
||||
expect(find.text('¥90.00'), findsNWidgets(2)); // 行利润 + 合计利润
|
||||
|
||||