{ "meta": { "title": "酒库管理系统 — 项目 TODO", "updated_at": "2026-06-07T18:12:50.300Z" }, "seq": 14, "items": [ { "id": 1, "title": "两套 CSS / 设计令牌并存", "desc": "主站 njk 用 color.css+style.css,功能页用 colors_and_type.css,导航/页脚各写一份,维护分裂。建议合并到一套,功能页走 base.njk 模板。", "level": "mid", "tags": [ "前端", "Web" ], "created_at": "2026-06-07T17:30:32.138Z", "done": true, "completed_at": "2026-06-07T17:48:38.554Z", "version": "v1.0.23" }, { "id": 2, "title": "备案号为占位假值", "desc": "现为沪ICP备2026000000号(全0),上线前必须替换真实备案号。", "level": "high", "tags": [ "Web" ], "created_at": "2026-06-07T17:30:32.188Z", "done": false, "completed_at": null, "version": null }, { "id": 3, "title": "注册接口同源依赖问题", "desc": "用 window.location.origin+'/api/v1/public/register',要求同源部署;分离部署时指错。需确认部署形态。", "level": "low", "tags": [ "前端", "Web" ], "created_at": "2026-06-07T17:30:32.237Z", "done": false, "completed_at": null, "version": null }, { "id": 4, "title": "scan.html / features 走 passthrough 不享模板", "desc": "features/scan.html 直接复制,不经 njk 模板,页脚/备案/CSS 都得手动同步。建议长期改造为模板化。", "level": "low", "tags": [ "前端", "Web" ], "created_at": "2026-06-07T17:30:32.287Z", "done": true, "completed_at": "2026-06-07T18:07:13.211Z", "version": "v1.0.23" }, { "id": 5, "title": "页脚双份维护", "desc": "njk 站点用 footer.njk 读变量,功能页把页脚硬编码各写一份,改一处不同步。根因同「两套模板」。", "level": "low", "tags": [ "前端", "Web" ], "created_at": "2026-06-07T17:30:32.334Z", "done": false, "completed_at": null, "version": null }, { "id": 6, "title": "注册成功提示路径需核对", "desc": "提示「忘记门店编码可在「系统设置→关于」查看」,需与实际客户端菜单路径一致。", "level": "low", "tags": [ "前端", "Web" ], "created_at": "2026-06-07T17:30:32.381Z", "done": false, "completed_at": null, "version": null }, { "id": 8, "title": "补全「查看本店其他商品」功能", "desc": "PublicProductScreen _ShopCard 底部按钮 onPressed: () {} 为空,需实现跳转至该门店商品列表页。client/lib/screens/public/public_product_screen.dart:1240", "level": "mid", "tags": [ "前端", "iOS", "Android" ], "created_at": "2026-06-07T18:08:24.432Z", "done": false, "completed_at": null, "version": null }, { "id": 9, "title": "设计并实现添加门店微信功能", "desc": "PublicProductScreen _ShopCard「添加门店微信」按钮 onPressed: () {} 为空。需设计方案:门店维护微信号字段 or 二维码图片,扫码页展示。涉及后端 shop model 扩展 + 前端展示。client/lib/screens/public/public_product_screen.dart:1255", "level": "mid", "tags": [ "前端", "iOS", "Android" ], "created_at": "2026-06-07T18:08:32.748Z", "done": false, "completed_at": null, "version": null }, { "id": 10, "title": "公开商品 API 补充 sale_price 并在页面展示价格", "desc": "product model 有 sale_price 字段但 public.go GetProduct 未返回。需:1) 后端 batchData/productData 加 sale_price;2) Flutter _TitleBlock 或单独区块展示建议零售价。client: public_product_screen.dart, backend: handler/public.go", "level": "mid", "tags": [ "前端", "后端", "iOS", "Android" ], "created_at": "2026-06-07T18:12:21.217Z", "done": false, "completed_at": null, "version": null }, { "id": 11, "title": "清除 _ParamsCard 硬编码占位数据", "desc": "public_product_screen.dart _ParamsCard 硬编码了「产地:贵州省仁怀市茅台镇」「生产日期:2024-01-01」「保质期:无限期(适饮)」「储存方式:阴凉干燥…」,非茅台商品显示错误信息。无数据时应不显示该行,或从 custom_fields 读取。line:1089-1092", "level": "mid", "tags": [ "前端", "iOS", "Android" ], "created_at": "2026-06-07T18:12:28.829Z", "done": false, "completed_at": null, "version": null }, { "id": 12, "title": "移除 _DescriptionSection 茅台 mock 文本", "desc": "无商品描述时 fallback 显示飞天茅台硬编码文案和 mock 关键词,其他商品扫码看到茅台介绍。无描述时应隐藏该区块。public_product_screen.dart:819-825", "level": "mid", "tags": [ "前端", "iOS", "Android" ], "created_at": "2026-06-07T18:12:36.087Z", "done": false, "completed_at": null, "version": null }, { "id": 13, "title": "公开商品 API 补充 batch.quantity 和 product code/barcode", "desc": "Flutter _AuthenticityCard 读取 batch['quantity'] 但后端 public.go batchData 未返回 quantity。另 product code/barcode 未暴露,参数卡无法显示商品编码。handler/public.go GetProduct", "level": "low", "tags": [ "后端", "iOS", "Android" ], "created_at": "2026-06-07T18:12:43.136Z", "done": false, "completed_at": null, "version": null }, { "id": 14, "title": "Footer「商品报错」「意见反馈」补充实际功能", "desc": "public_product_screen.dart _Footer 底部两个链接无 url/action,点击静默。需设计方案:跳转反馈表单、弹出联系方式、或发邮件。line:1353-1355", "level": "low", "tags": [ "前端", "iOS", "Android" ], "created_at": "2026-06-07T18:12:50.299Z", "done": false, "completed_at": null, "version": null } ] }