184 lines
40 KiB
Markdown
184 lines
40 KiB
Markdown
|
|
# 用户端 App 全量功能开发进度
|
|||
|
|
|
|||
|
|
更新时间:2026-09-13。58张设计中,36张已有页面实现(其中34张部分实现、2张首期功能闭环),22张尚无对应独立完整页面,0张通过严格1:1全功能验收。一级入口存在或弹出“暂未开放”均不计为功能完成。最新浏览器实查见[58页清单](验收清单_用户端58页功能与视觉_20260911.md)。
|
|||
|
|
|
|||
|
|
## 已确认范围
|
|||
|
|
|
|||
|
|
- 2026-09-12图26“我的记录”:新增`/records`独立页,并行聚合本人供气订单和报修工单,显示本月真实数量、六类入口、最近记录与类型筛选。设备操作、告警记录缺首期接口,点击明确“暂未开放”;发票记录明确属于二期,点击显示“即将开放”。内置浏览器从个人中心实际点入,读取远程数据并完成筛选和两类提示验证。图26仍为部分实现,不判严格1:1验收通过。
|
|||
|
|
|
|||
|
|
- 2026-09-11图19支付确认:新增`/payment/:business/:identity`,商城和气瓶订单的应付金额、订单号、商品快照、钱包余额和可支付动作均重读服务端。余额支付接入六位支付密码、二次确认和幂等号;气瓶余额支付与商城支付记录补齐原子交易事实。优惠券缺接口,页面显示“暂未开放”并可查看原因;微信/支付宝读取服务端商户配置就绪状态,未配置时明确显示“暂未开放”并禁用。钢瓶场景使用真实位图,费用明细区分气费、可退押金和配送费。定向功能测试、8组多尺寸视觉、Flutter analyze/Web构建通过。内置浏览器使用远程真实已取消订单展示真实金额、禁用状态和优惠券弹层;当前账号无待付款订单,未提交远程扣款。见[支付确认日志](开发日志_订单支付确认_20260911.md)。
|
|||
|
|
|
|||
|
|
- 2026-09-11图28、39、40钱包批次:图28提现和银行卡从占位改为真实路由;图39接入服务端可提现余额、到账卡、提现记录、支付密码、幂等申请和二次确认;图40接入脱敏银行卡列表、绑定、默认到账卡和安全解绑。API新增`POST wallet/banks/:identity/default`并为银行卡增加默认标记。Flutter全量170项、analyze、Web构建及Go全量测试/vet/build通过;内置浏览器只读检查真实远程余额和银行卡,未提交资金或银行卡写操作。押金、优惠券、待退款和外部渠道回执仍缺,三页均未通过严格1:1。见[钱包提现与银行卡日志](开发日志_钱包提现与银行卡_20260911.md)。
|
|||
|
|
|
|||
|
|
- 2026-09-11图03第二轮:按最新原稿重新压缩首页服务卡、设备卡、四宫格、安全记录和公告列表;公告展示服务端真实摘要与创建日期,最多显示两条并进入全文。查看设备、分组控制、一键报修已接现有真实路由;扫码、蓝牙、安全告警和气瓶详情点击后明确提示首期“暂未开放”。游客服务归属保持设计卡片并登录回跳。8组多宽度/文字缩放、161项Flutter测试、analyze和Web Release构建通过;内置浏览器读取远程公告并验证未开放弹层。设备遥测接口缺失,图03仍为部分实现,不判严格1:1通过。
|
|||
|
|
- 2026-09-11图05第二轮:按原稿重校顶部更多菜单、故障图标、描述框、三格照片、联系地址、橙色燃气泄漏提示和固定底部操作。更多菜单可查看本人报修工单或打开报修说明;紧急电话只在用户明确点击后调用系统拨号器,失败提示手动拨打119。视觉夹具保持真实空照片状态0/3,不伪造原稿中的阀门照片。8组多宽度/文字缩放截图、12项报修定向测试及162项Flutter全量测试通过,analyze与Web Release构建通过;内置浏览器验证必填提示、报修说明和本人报修工单跳转。原生语音、拍照时间与定位仍需真机验收,因此图05保持部分实现。
|
|||
|
|
|
|||
|
|
- 2026-09-11本轮全量Flutter回归160项通过。设备分组和登录短信状态改动后同时完成 `flutter analyze`、Web构建、Go全量测试、`go vet ./...` 和API构建。内置浏览器确认设备空态、分组闭环、登录成功和未开放提示;不以测试全绿替代58页功能与视觉验收。
|
|||
|
|
|
|||
|
|
- 2026-09-11图01再次按保持事实源宽高比的390×844官方并排图复核:共同区域已对齐品牌、标签、输入、按钮、记住状态、忘记密码和协议;修复视觉夹具按钮中文方框。后端返回Mock短信`not_sent`时不再显示虚假倒计时,改为“短信验证码暂未开放”。内置浏览器真实密码登录成功。注册入口按明确要求保留,真实短信未配置,图01保持blocked。
|
|||
|
|
|
|||
|
|
- 2026-09-11图03恢复未开放设备区域结构:新增device_status_placeholder.dart,首页保留四个指标名称并展示不可查询状态;调整说明与安全/气瓶入口可见状态。四种宽度×1.3文字测试通过,Flutter analyze通过。不填写原稿模拟遥测,不把占位状态计作设备能力完成。原始批次A1仍未验收通过,后续继续补一级页面差异。
|
|||
|
|
|
|||
|
|
- 本轮浏览器验证:新版Web首页的扫码添加、蓝牙连接、分组控制显示“暂未开放”;点击扫码添加显示“该功能暂未开放,目前无法使用。”。一键报修不显示未开放标记。此为状态提示验证,不改变这些功能尚未实现的结论。
|
|||
|
|
|
|||
|
|
- 2026-09-11未开放提示规则接入:feature_entry.dart新增显式UnavailableStage,默认首期“暂未开放”,只有传入明确二期状态才显示“即将开放”和后续版本说明;无处理回调的图标入口直接显示状态,个人中心_pending列表显示“暂未开放”。不因缺接口推定二期。两项widget测试覆盖默认状态、二期说明和已开放回调,均通过;这不代表缺失业务功能已完成。其余自定义入口和设置文案仍需继续统一。
|
|||
|
|
|
|||
|
|
- 2026-09-11商城图11继续视觉调整:shop_page.dart的商品卡片改为图片/名称入口、16号价格、右下角收藏,去掉稿外购买按钮(购买仍经详情进入结算),明确卡片边框和间距。Flutter analyze和Web构建通过,内置浏览器390×844核对;原稿服务栏、真实素材、规格和销量等未完成,仍为部分实现。上传图片跨域缓存问题已修复,商城/详情已验证可显示,详见商品图片日志;购物车显示仍待本轮完整验收。
|
|||
|
|
- 2026-09-11商品图片最终复核:内置浏览器中商城卡片和商品详情均已显示“示例配送商品 10”的远程上传图片。公开接口确认该商品有非空 `image_url`,其余当前商品的 `image_url` 为空,所以显示“暂无商品图片”;数据库和App读取链路正常,剩余差异是后台尚未为每个商品配置正式素材。
|
|||
|
|
|
|||
|
|
- 按首期补齐要求新增平台后台商品图片上传预览控件及专用上传/公开读取接口,Go测试和后台类型检查通过;真实绑定与App显示尚待内置浏览器联调,见[商品图片开发日志](开发日志_商城商品图片上传_20260911.md)。
|
|||
|
|
|
|||
|
|
- 2026-09-11充值页面接入协议版本确认,确认失败不创建充值,契约测试通过;真实记录联调仍待完成,见[充值协议接入](操作日志_用户端APP_充值协议接入_20260911.md)。
|
|||
|
|
|
|||
|
|
- 2026-09-11阅读确认接口新增客户端版本匹配及幂等内容核对,用户逻辑测试通过;充值留痕尚待接入,见[协议版本确认](操作日志_用户端APP_协议版本确认_20260911.md)。
|
|||
|
|
|
|||
|
|
- 2026-09-11补充充值配置后端边界测试,覆盖未配置渠道、协议缺失、配置路径与鉴权失败,见[充值配置边界测试](操作日志_用户端APP_充值配置边界测试_20260911.md)。
|
|||
|
|
|
|||
|
|
- 2026-09-11补齐充值重试1112、查询异常及账号切换分支验证:仅明确不存在允许原请求重发,其余不发单,流程测试通过。
|
|||
|
|
|
|||
|
|
- 2026-09-11充值原订单重试增加入账前置查询,已到账不再次拉起支付;见[充值重试入账检查](操作日志_用户端APP_充值重试入账检查_20260911.md)。
|
|||
|
|
|
|||
|
|
- 2026-09-11充值页320/390窄屏及1.3倍字体无溢出测试通过,全量Flutter135项通过;视觉1:1仍未通过,见[充值窄屏回归](操作日志_用户端APP_充值窄屏回归_20260911.md)。
|
|||
|
|
|
|||
|
|
- 2026-09-11对照图38补充自定义选项、清空金额及确认按钮金额,交互测试通过;浏览器旧构建路由问题已复现,完整验收未完成,见[充值金额控件](操作日志_用户端APP_充值金额控件_20260911.md)。
|
|||
|
|
|
|||
|
|
- 2026-09-11修复充值已到账后余额刷新失败被误报未确认,回归测试通过,见[充值到账提示修复](操作日志_用户端APP_充值到账提示修复_20260911.md)。
|
|||
|
|
|
|||
|
|
- 2026-09-11充值表单已接入路由及钱包入口,缺协议禁用支付、待确认订单查询测试通过;尚未部署和视觉核对,图38仍不计验收,见[充值表单接入](操作日志_用户端APP_充值表单接入_20260911.md)。
|
|||
|
|
|
|||
|
|
- 2026-09-11补充充值待确认请求安全存储和恢复流程,3项测试通过;尚待页面接入,见[充值请求恢复](操作日志_用户端APP_充值请求恢复_20260911.md)。
|
|||
|
|
|
|||
|
|
- 2026-09-11接入钱包充值记录页,支持分页、去重、刷新和断网恢复,交互测试及静态检查通过;充值表单与图38视觉验收仍待完成,见[充值记录页面](操作日志_用户端APP_充值记录页面_20260911.md)。
|
|||
|
|
|
|||
|
|
- 2026-09-11补充充值渠道配置查询及客户端严格金额、协议和到账状态校验,新增3项测试通过;图38界面仍待接入,见[充值配置校验](操作日志_用户端APP_充值配置校验_20260911.md)。
|
|||
|
|
|
|||
|
|
- 2026-09-11补充充值结果、记录及请求号恢复查询,修复同请求号变更金额或渠道的冲突;远程独立事务验证一次入账并整体回滚。图38页面和渠道交互仍未完成,见[充值接口记录](操作日志_用户端APP_充值查询与幂等_20260911.md)。
|
|||
|
|
|
|||
|
|
- 2026-09-11修复登录输入连接切换及重复点击清空密码;新构建浏览器已验证遮蔽输入直接登录回到钱包,未新增此前的Web输入空值异常。详见[登录输入记录](操作日志_用户端APP_登录输入连接_20260911.md)。
|
|||
|
|
|
|||
|
|
- 设置支付密码已接通首次设置、旧密码修改与验证码找回,增加并发更新保护、一次性验证码和五次输错锁定;远程独立夹具回滚验证通过。真实短信供应商仍未配置,首次设置和找回仅完成Mock联调,不计真实短信可用。见[支付密码日志](操作日志_用户端APP_支付密码_20260908.md)。
|
|||
|
|
|
|||
|
|
- 图21已接入商城及气瓶订单详情。气瓶分支读取真实状态历史、配送费、气站、配送员姓名、成功支付记录和本人合同正文;待签收支持本人确认、事务释放占用及幂等重试。常规宽度时间轴按原图横向排列;配送轨迹、押金、受控联系、完整合同及严格视觉仍待补,图21只计部分实现。见 [订单详情日志](操作日志_用户端APP_订单详情_20260908.md)、[供气详情日志](操作日志_用户端APP_供气订单详情_20260908.md)。
|
|||
|
|
|
|||
|
|
- 图15已新增受保护收藏列表、真实分类数量、取消收藏、管理批量取消及从收藏加购;商城和详情收藏按钮、个人中心入口均接通。下架商品保留但不可加购,服务端版本防止过期请求复活收藏。远程此前仅定向新增ec_favorite表及注释;原图中的月销和商品素材仍有差异,详见 [收藏日志](操作日志_用户端APP_商品收藏_20260908.md)。
|
|||
|
|
|
|||
|
|
- 图13购物车已有真实条目、数量、单选全选、失效提示、管理删除,以及图12加入购物车和多商品结算。条件版本更新避免重试累加;订单事务消费对应购物车行,失败整体回滚。仍缺优惠、押金、配送承诺、服务保障配置和严格视觉还原。见 [购物车日志](操作日志_用户端APP_购物车_20260908.md)。
|
|||
|
|
- 2026-09-11图13按最新原稿补齐服务归属配送卡、商品规格/押金状态、服务保障区和固定结算栏层级;真实归属、金额、数量、推荐及后台封面继续来自接口。押金、配送时效和保障规则缺服务端能力,入口显示“暂未开放”,严格1:1仍未通过。见 [视觉与状态日志](开发日志_购物车视觉与首期状态_20260911.md)。
|
|||
|
|
|
|||
|
|
- 图13推荐区、图15“猜你喜欢”入口已接入真实在售商品分页、换一换、详情和条件加购;排除本人购物车,收藏场景另排除本人收藏,同类优先。窄屏大字体购物车金额单独成行,详情返回重读购物车。此轮无数据库迁移,见 [推荐商品日志](操作日志_用户端APP_推荐商品_20260908.md)。
|
|||
|
|
- 2026-09-11图15按最新原稿去除多余顶部按钮,压缩筛选与商品卡,使推荐入口进入首屏;规格缺失和月销量缺口分别显示“规格暂未配置”“月售暂未开放”。内置浏览器验证真实收藏、分类筛选、后台封面及推荐弹层。正式商品素材和销量接口未补齐,仍为部分实现。见 [收藏视觉日志](开发日志_我的收藏视觉与真实推荐_20260911.md)。
|
|||
|
|
|
|||
|
|
- 2026-09-08图05更新编号步骤、故障表单、三格照片和可操作的第一步联系地址预览;当时64项用户端测试及8组该页视觉检查通过。其后语音输入已接入,真实设备识别、真实采集信息、紧急电话和精细样式仍待验收,详见 [视觉对齐日志](操作日志_用户端APP_报修视觉对齐_20260908.md)、[语音输入日志](操作日志_用户端APP_报修语音输入_20260908.md)。
|
|||
|
|
|
|||
|
|
- 图05已有三步故障/联系地址/确认提交表单,故障类型与联系人快照落库,预约选填,重复提交返回首次工单。照片选择、预览、上传和工单关联已接入;报修草稿已按账户及API环境持久化,恢复保留原请求号,成功提交后清理。语音已接入并有自动回归,真实设备识别及采集定位/拍摄时间未验收。远程此前仅新增cs_ticket三个字段,照片复用既有证据表,草稿无数据库变更。见 [报修提交日志](操作日志_用户端APP_报修提交_20260907.md)、[照片日志](操作日志_用户端APP_报修照片_20260907.md)、[草稿日志](操作日志_用户端APP_报修草稿_20260907.md)。
|
|||
|
|
|
|||
|
|
- 工单列表可打开独立详情,读取真实地址、预约、处理结果及本人提交照片;取消与确认完成均需用户确认,服务端校验所有权和状态并支持重复操作。图42尚缺工程师联系、完整进度、改期和补充资料,仍为部分实现。见 [工单操作日志](操作日志_用户端APP_工单操作_20260907.md)。
|
|||
|
|
|
|||
|
|
- 商城订单取消、确认收货已接入页面,后端新增动作发布及幂等边界保护;详情见 [订单操作日志](操作日志_用户端APP_订单操作_20260907.md)。图20仍为部分实现。
|
|||
|
|
|
|||
|
|
- 2026-09-11图20二次实现:订单中心改为设计稿三标签和紧凑卡片,补订单号/商品搜索、固定状态筛选、气站与规格、气瓶取消入口;后端列表补气站名称,气瓶待付款状态与可取消动作统一。商城新订单会把后台商品封面固化到成交快照,历史空快照不伪造补图。再次购买、申请售后和电子发票按既定后续阶段保留入口并提示“即将开放”。165项Flutter测试、Go全量测试/vet/build、160组布局图与内置浏览器真实远程数据走查通过;气瓶商品图片模型及原稿三笔同状态数据仍缺,图20继续记为部分实现。见 [订单中心日志](开发日志_订单中心视觉与气瓶操作_20260911.md)。
|
|||
|
|
|
|||
|
|
- 2026-09-11图25二次实现:个人中心读取真实实名认证和紧急联系人数量,压缩资产、家庭及常用功能布局,使全部设计入口在390×844首屏可见;重复维修/退出按钮移除,原功能保留在报修入口和设置页。当前远程账号头像为空、联系人0人,页面如实显示首字头像和0人;头像拍照/相册上传入口已在内置浏览器打开。未接入功能保留“暂未开放”标签与弹层。Flutter全量166项测试、160项视觉fixture及Web release构建通过,图25仍因资产和消息等业务缺失保持部分实现。见 [个人中心日志](开发日志_个人中心视觉与真实资料_20260911.md)。
|
|||
|
|
|
|||
|
|
- 后续功能入口不隐藏,点击解释当前未开放;设备控制与遥测仍归 B,不模拟在线、关阀或电量。
|
|||
|
|
- 37 邀请注册补入 A2。现有 /register、ClientRecord 和旧 API 均保留。
|
|||
|
|
- 头像与昵称编辑已在浏览器通过实际选图、上传、保存、受保护图片读取验证;测试资料已恢复。2026-09-08 Android Debug APK构建通过,之前Maven下载与缓存阻塞已解除;原生相机、语音和iOS设备仍未验收。详情见 [纠偏日志](操作日志_用户端APP_头像与视觉纠偏_20260907.md)、[语音输入日志](操作日志_用户端APP_报修语音输入_20260908.md)。
|
|||
|
|
- 使用 backend/api/etc/heqi_dev.yaml 中既有远程 PostgreSQL、Redis。本地仅运行 API 与 Flutter Web;地址管理已执行三个字段的定向新增迁移,未执行全库迁移、清库或 mock-data。
|
|||
|
|
- 远程只读检查已确认基础角色、管理员、指定测试账号、上架商品存在,Redis PING 通过。
|
|||
|
|
|
|||
|
|
## 逐页状态
|
|||
|
|
|
|||
|
|
状态针对最新设计的独立页面;“未开始”不表示旧仓库没有同类基础接口。所有接口相对于 /heqi/client/v1/user;测试位于 apps/user_app/test,视觉测试统一为 tool/a1_visual_test.dart。未落地的路由和接口不编造为已存在。
|
|||
|
|
|
|||
|
|
| 设计图 | 批次 | 状态 | 已有路由/入口 | 对应接口 | 测试 | 视觉截图 |
|
|||
|
|
| --- | --- | --- | --- | --- | --- | --- |
|
|||
|
|
| 01-登录页.png | A1 | 部分实现 | /login;密码登录、协议、忘记密码、注册入口及安全回跳;短信未发送明确暂未开放 | POST auth/login、auth/verification-code、auth/reset-password;GET public/contents | login_page_test.dart 9项、8组多尺寸视觉、内置浏览器真实密码登录 | [390×844](视觉验收/A1/01_390_1.0.png)、[官方对照](视觉验收/A1/01_并排对照.png)、[浏览器截图](视觉验收/01-登录页_实现_20260911.jpg);注册入口和真实短信使整页保持blocked |
|
|||
|
|
| 02-1-安全案例.png | D | 未开始 | 尚未建立独立页 | 待该批次核对 | 未建立该页验收 | 未生成 |
|
|||
|
|
| 02-2-法律法规.png | D | 未开始 | 尚未建立独立页 | 待该批次核对 | 未建立该页验收 | 未生成 |
|
|||
|
|
| 02-3-气价信息.png | D | 未开始 | 尚未建立独立页 | 待该批次核对 | 未建立该页验收 | 未生成 |
|
|||
|
|
| 02-智能角阀功能介绍.png | D | 未开始 | 尚未建立独立页 | 待该批次核对 | 未建立该页验收 | 未生成 |
|
|||
|
|
| 03-首页.png | A1 | 部分实现 | /home | GET public/contents、service-relation | primary_pages_test.dart、service_relation_card_test.dart | [390×844](视觉验收/A1/03_390_1.0.png)、[对照](视觉验收/A1/03_并排对照.png) |
|
|||
|
|
| 04-智能角阀控制.png | B | 未开始 | 尚未建立独立页 | 待该批次核对 | 未建立该页验收 | 未生成 |
|
|||
|
|
| 05-一键报修.png | B | 部分实现 | /repair | POST tickets;GET addresses | repair_page_test.dart、ticket_create_test.go | [390×844](视觉验收/A1/05_390_1.0.png),未通过严格1:1 |
|
|||
|
|
| 06-1-扫码添加确认.png | B | 未开始 | 尚未建立独立页 | 待该批次核对 | 未建立该页验收 | 未生成 |
|
|||
|
|
| 06-2-蓝牙连接设备.png | B | 未开始 | 尚未建立独立页 | 待该批次核对 | 未建立该页验收 | 未生成 |
|
|||
|
|
| 06-3-手动输入设备码.png | B | 未开始 | 尚未建立独立页 | 待该批次核对 | 未建立该页验收 | 未生成 |
|
|||
|
|
| 07-气瓶基本信息.png | B | 未开始 | 尚未建立独立页 | 待该批次核对 | 未建立该页验收 | 未生成 |
|
|||
|
|
| 08-设备分组控制.png | B | 部分实现 | `/device-groups`;分组新增、改名、删除、设备归组真实可用;群控与安全检查暂未开放 | 内置浏览器427宽真实新建、归组、改名、删除闭环 | Go权限/幂等与Flutter交互、大字体测试通过;同状态视觉验收受真实数据限制 | [并排对照](视觉验收/08-设备分组_并排对照_20260911.jpg)、[日志](开发日志_设备分组_20260911.md) |
|
|||
|
|
| 09-安全告警与报警器.png | B | 未开始 | 尚未建立独立页 | 待该批次核对 | 未建立该页验收 | 未生成 |
|
|||
|
|
| 10-紧急联系人.png | B | 部分实现 | 本人联系人资料新增、编辑、归档及五人上限;授权和通知未开放 | 内置浏览器390宽真实资料操作,布局仍有差异 | API边界与前端重试测试通过,未完成全页验收 | 开发日志_紧急联系人_20260911.md |
|
|||
|
|
| 11-燃气商城.png | A1 | 部分实现 | /shop | GET public/products;POST shop/orders | primary_pages_test.dart、primary_repository_test.dart | [390×844](视觉验收/A1/11_390_1.0.png)、[对照](视觉验收/A1/11_并排对照.png) |
|
|||
|
|
| 12-商品详情.png | C | 部分实现:后台商品图、预览、价格库存、数量、分享、收藏、加购结算、服务归属及设计分组;规格/参数读取后台配置,配送预约与保障标准显示“暂未开放” | /products/:identity | GET public/products/:identity、GET service-relation;既有商品图片与属性后台资源 | product_detail_page_test.dart、product_detail_test.go、router_test.dart;Flutter全量171项、视觉8视口与内置浏览器真实商品核对 | [390×844](视觉验收/A1/12_390_1.0.png)、[并排图](视觉验收/A1/12_并排对照.png)、[日志](开发日志_商品详情视觉与后台数据_20260911.md) |
|
|||
|
|
| 13-购物车.png | C | 部分实现 | /cart、/cart/checkout;详情加入购物车、推荐区 | GET shop/cart、GET/PUT shop/cart/items/:identity;GET shop/recommendations;POST shop/orders | cart_page_test.dart、cart_test.dart、cart_test.go、product_recommendations_test.dart、recommendation_test.go | [截图](视觉验收/A1/13_390_1.0.png)、[对照](视觉验收/A1/13_并排对照.png),未通过严格1:1 |
|
|||
|
|
| 14-提交订单.png | A2 | 部分实现:地址、气站与商品、数量、费用、备注、钱包余额和下单后支付衔接;预约/优惠/押金显示“暂未开放”,二期发票显示“即将开放” | /checkout/:identity、/cart/checkout、/payment/shop/:identity | GET addresses、service-relation、wallet;POST shop/orders、cart/checkout(可选 expected_payable_amount) | checkout_test.go、shop_address_selection_test.dart、cart_page_test.dart;Flutter全量171项、视觉8视口及内置浏览器真实数据核对 | [390×844](视觉验收/A1/14_390_1.0.png)、[并排图](视觉验收/A1/14_并排对照.png)、[日志](开发日志_提交订单视觉与支付衔接_20260911.md) |
|
|||
|
|
| 15-我的收藏.png | C | 部分实现 | /favorites;商城/详情收藏、个人中心入口、推荐弹层 | GET shop/favorites;GET/PUT shop/favorites/items/:identity;GET shop/recommendations | favorite_test.go、favorite_test.dart、favorites_page_test.dart、product_recommendations_test.dart | [截图](视觉验收/A1/15_390_1.0.png)、[对照](视觉验收/A1/15_并排对照.png),未通过严格1:1 |
|
|||
|
|
| 16-押金管理.png | A2 | 部分实现:真实汇总、状态筛选、押金明细、规则查看和管理后台;远程当前为空数据 | /deposits | GET deposits;后台 deposit_policy/deposit_record | deposit_page_test.dart、8组视觉变体、Go路由/逻辑测试、内置浏览器真实空态 | [并排图](视觉验收/A1/16_并排对照.png)、[日志](开发日志_押金管理首期底座与真实空态_20260911.md);退瓶、验收、扣减、退款流水未完成 |
|
|||
|
|
| 17-退瓶退押金.png | A2 | 已实现首期闭环:选择本人可退气瓶、上门地址、预约时段、瓶况确认、二次确认、取消、后台回收/验收/扣减/余额入账 | /deposits/return?deposit=:identity | POST/GET/cancel deposit-returns;后台 confirm-pickup/inspect/complete-refund | deposit_return_page_test.dart、预约边界与路由测试、8组视觉变体;真实账号无可退气瓶故未提交业务记录 | [并排图](视觉验收/A1/17_并排对照.png)、[日志](开发日志_退瓶退押金首期闭环_20260911.md);安检最新结论接口仍缺,页面标“暂未开放” |
|
|||
|
|
| 18-气瓶下单.png | C | 已实现首期闭环 | /gas/order;首页“气瓶下单”入口 | GET /gas/order-options;POST /gas/orders;支付成功转正式押金 | gas_order_create_page_test.dart、预约边界、路由测试、8组视觉变体 | [并排图](视觉验收/A1/18_并排对照.png)、[日志](开发日志_气瓶下单首期闭环_20260911.md);远程账号押金规则未配置,真实页明确显示“押金规则暂未配置”并禁止下单 |
|
|||
|
|
| 19-支付确认.png | A2 | 部分实现 | /payment/:business/:identity;余额/微信/支付宝、渠道就绪状态、六位支付密码、二次确认;优惠券暂未开放 | GET shop/gas orders/:identity、wallet、wallet/recharge-options;POST shop/gas orders/:identity/pay | payment_confirmation_page_test.dart、wallet_order_payment_test.go、8组视觉及内置浏览器真实取消订单只读走查 | [390×844](视觉验收/A1/19_390_1.0.png)、[对照](视觉验收/A1/19_并排对照.png);真实待付订单、外部支付页和回调仍待验收 |
|
|||
|
|
| 20-订单中心.png | A1 | 部分实现 | /orders;三业务标签、搜索、状态筛选、真实字段、详情与服务端允许动作;后续功能明确提示 | GET shop/orders、gas/orders、refunds、tickets;POST gas/orders/:identity/cancel;既有支付/退款/商城取消与收货 | orders_page_test.dart 6项、gas_order_list_test.go、checkout_test.go;内置浏览器远程列表/搜索/详情/二期提示 | [气瓶390×844](视觉验收/A1/20_390_1.0.png)、[气瓶对照](视觉验收/A1/20_并排对照.png)、[商城对照](视觉验收/A1/20-shop_并排对照.png);气瓶图片模型和同状态数据仍缺,未通过严格1:1 |
|
|||
|
|
| 21-订单详情.png | A2 | 部分实现:配送状态、地址、气站商品、费用、支付方式、合同、服务操作及本人签收;首期配送轨迹/受控联系/押金显示“暂未开放”,二期售后显示“即将开放” | /gas/orders/:identity、/shop/orders/:identity | GET gas/orders/:identity、GET gas/contracts/:identity、POST gas/orders/:identity/confirm-receipt | gas_detail_test.go、gas_order_detail_test.dart、shop_order_detail_test.dart;Flutter全量171项、视觉8视口与内置浏览器真实订单核对 | [商城对照](视觉验收/A1/21_并排对照.png)、[供气并排图](视觉验收/A1/21-gas_并排对照.png)、[日志](开发日志_供气订单详情视觉与功能状态_20260911.md) |
|
|||
|
|
| 22-配送详情.png | A2 | 部分实现:本人订单、配送状态、预约、配送员、有效资质、气站/配送点、商品、地址、脱敏联系人和安全交付提示;车辆及受控联系明确“暂未开放” | /gas/orders/:identity/delivery | GET gas/orders/:identity/delivery | delivery_detail_test.go、delivery_detail_page_test.dart、8组视觉变体;内置浏览器真实订单核对 | [并排图](视觉验收/A1/22_并排对照.png)、[日志](开发日志_配送详情与隐私化轨迹_20260912.md);配送车辆后台配置、真实员工头像资源、受控电话/消息仍缺 |
|
|||
|
|
| 23-配送轨迹.png | A2 | 部分实现:本人订单鉴权、约百米隐私化坐标、地图路线、履约节点、更新时间、刷新、配送员与未开放能力提示 | /gas/orders/:identity/delivery/track | GET gas/orders/:identity/delivery/track;复用配送端轨迹上报 | 坐标约化/状态节点Go测试、delivery_track_page_test.dart、8组视觉变体;内置浏览器从22页进入并刷新 | [390×844](视觉验收/A1/23_390_1.0.png)、[并排图](视觉验收/A1/23_并排对照.png)、[日志](开发日志_配送详情与隐私化轨迹_20260912.md);远程样例仅1个轨迹点,受控电话和配送问题上报仍缺 |
|
|||
|
|
| 24-电子发票.png | C | 部分实现:已完成订单保留入口、读取本人真实订单、展示订单号/商品/商品金额/押金排除说明和完整二期表单结构;所有申请动作明确“即将开放”且不写入 | /invoice/:business/:identity;订单列表和详情入口 | 复用GET gas/shop orders/:identity;未新增伪开票接口 | invoice_preview_page_test.dart、订单入口回归、8组视觉变体;内置浏览器从真实已完成订单进入并点击提交提示 | [390×844](视觉验收/A1/24_390_1.0.png)、[并排图](视觉验收/A1/24_并排对照.png)、[日志](开发日志_电子发票二期入口_20260912.md);开票、抬头、税务回执、预览下载均属于二期 |
|
|||
|
|
| 25-个人中心.png | A1 | 部分实现 | /me;真实头像入口、实名认证、联系人数量、资产/服务/家庭/常用入口及缺项提示 | GET auth/profile、auth/avatar、wallet、emergency-contacts;既有订单/设备/合同/地址/收藏/报修动作 | profile_edit_page_test.dart、client_models_test.dart、160项多尺寸视觉;内置浏览器真实资料/提示/头像菜单 | [390×844](视觉验收/A1/25_390_1.0.png)、[对照](视觉验收/A1/25_并排对照.png);远程为空头像和0联系人,押金/券/消息等仍缺 |
|
|||
|
|
| 26-我的记录.png | D | 部分实现 | /records;供气和报修聚合、筛选及详情 | 本人订单与工单查询 | 页面测试、内置浏览器检查 | 设备与告警记录待补,严格1:1待验收 |
|
|||
|
|
| 27-用气统计.png | D | 部分实现 | /usage;设备、周期、图表、明细及后台计量管理 | GET user/usage-statistics;平台dev_usage_stat | 内置浏览器后台列表/新建表单、App无设备空态;后台类型检查通过 | 历史日期、安全趋势、真实计量闭环及严格1:1待验收 |
|
|||
|
|
| 28-我的钱包.png | A2 | 部分实现 | /wallet、/records/wallet、/wallet/recharge、/wallet/withdraw、/wallet/banks | GET wallet、wallet/bills;充值、本人银行卡和提现接口 | 金额、会话、分页、隐私、银行卡及提现二次确认测试;内置浏览器真实只读检查 | [对照](视觉验收/A1/28_并排对照.png)、[日志](开发日志_钱包提现与银行卡_20260911.md);押金/券/待退款及严格1:1待补 |
|
|||
|
|
| 29-地址管理.png | A2 | 部分实现:增删改与默认切换可用,范围判定/定位待补 | /addresses、/addresses?select=1 | GET/POST addresses;PUT/DELETE addresses/:identity;POST addresses/:identity/default | addresses_page_test.dart、address_test.go、真实远程读写恢复 | [390×844](视觉验收/A1/29_390_1.0.png)、[日志](操作日志_用户端APP_地址管理_20260907.md) |
|
|||
|
|
| 30-消息中心.png | D | 部分实现 | /messages;四类总览、筛选、已读及真实对象跳转 | GET messages、PUT messages/read;订单、工单、已发布公告事实聚合 | 页面2项、8组视觉;内置浏览器远程读取、单条已读、订单详情与筛选 | [对照](视觉验收/A1/30_并排对照.png);安全事件、通知偏好、不可变历史消息及严格1:1待补 |
|
|||
|
|
| 31-设置.png | D | 部分实现 | /settings、/settings/password、/settings/payment-password | 登录及支付密码、已发布协议、真实版本、图片缓存及退出 | 改密版本保护、原子验证码、五次锁定、远程回滚及页面布局测试 | [对照](视觉验收/A1/31_并排对照.png)、[支付密码日志](操作日志_用户端APP_支付密码_20260908.md),真实短信、通知、权限、注销及严格1:1待补 |
|
|||
|
|
| 32-供气合同.png | A2 | 部分实现 | /records/contracts;个人中心入口与深链 | 本人列表、正文、受控PDF、状态历史;搜索筛选;申请变更、气站答复、取消/确认 | 列表/附件/历史/申请权限及幂等测试;远程申请答复确认回滚;Web下载哈希一致;8组布局 | [对照](视觉验收/A1/32_并排对照.png)、[申请日志](操作日志_用户端APP_合同申请与个人中心复核_20260908.md),原生保存、签署、地址快照、续签提醒及严格1:1待补 |
|
|||
|
|
| 33-家庭成员与设备共享.png | D | 部分实现:独立家庭页、手机号邀请、受邀账号接受/拒绝、待确认撤回、成员移除、按设备查看/告警/控制授权及不可变审计;紧急联系人不自动获权 | /family;个人中心入口 | GET /family、POST/DELETE /family-members、PUT device-permissions、GET/POST family-invitations | Go逻辑/路由/CLI测试,Flutter页面2项及8组宽度/字体视觉测试;远程邀请和撤回真实联调;内置浏览器可见操作 | [并排图](视觉验收/A1/33_并排对照.png)、[日志](开发日志_家庭成员与设备共享首期闭环_20260913.md);远程账号无设备且无第二账号,接受和真实设备权限执行未做双账号联调,成员头像资源也未接入,故暂不判完整闭环或严格1:1 |
|
|||
|
|
| 34-我的设备.png | B | 部分实现 | 本人已分类设备列表、搜索、分类、分组和档案;遥测、扫码及控制暂未开放 | 内置浏览器427宽后台启用到App显示、归组、删组回退联调 | 查询隔离、分类、分组与大字体测试通过;源图为5设备状态,当前远程空状态未判1:1 | [并排对照](视觉验收/34-我的设备_并排对照_20260911.jpg)、[日志](开发日志_我的设备列表_20260911.md) |
|
|||
|
|
| 35-安全记录详情.png | B | 未开始 | 尚未建立独立页 | 待该批次核对 | 未建立该页验收 | 未生成 |
|
|||
|
|
| 36-申请售后.png | C | 未开始 | 尚未建立独立页 | 待该批次核对 | 未建立该页验收 | 未生成 |
|
|||
|
|
| 37-邀请注册.png | A2 | 未开始 | /register(旧基础) | 待该批次核对 | 未建立该页验收 | 未生成 |
|
|||
|
|
| 38-余额充值.png | A2 | 部分实现,真实支付不可用 | /wallet/recharge、/wallet/recharge-records | 充值配置、创建、记录及请求恢复;协议确认代码 | 金额、恢复、页面及配置测试 | 浏览器已实查,缺卡片/插图且渠道不可用,未通过1:1 |
|
|||
|
|
| 39-余额提现.png | A2 | 部分实现 | /wallet/withdraw;余额、到账卡、金额、支付密码、记录和二次确认 | GET/POST wallet/withdrawals;GET wallet/banks | wallet_account_test.dart、withdrawal_page_test.dart、8组多尺寸视觉;浏览器只读检查 | [对照](视觉验收/A1/39_并排对照.png);外部到账回执及严格1:1待补 |
|
|||
|
|
| 40-银行卡管理.png | A2 | 部分实现 | /wallet/banks;脱敏列表、绑定、默认卡、解绑 | GET/POST/DELETE wallet/banks;POST wallet/banks/:identity/default | 接口契约、路由、8组多尺寸视觉;浏览器打开添加表单 | [对照](视觉验收/A1/40_并排对照.png);银行验证回执和短信供应商待补 |
|
|||
|
|
| 41-个人资料.png | A2 提前修复 | 部分实现 | /profile/edit;点击个人中心头像或资料行 | GET/PUT auth/profile、GET auth/avatar、POST /upload/avatar、GET service-relation/addresses | profile_edit_page_test.dart、avatar_upload_test.dart、profile_test.go、avatar_test.go | [390×844](视觉验收/A1/41_390_1.0.png)、[对照](视觉验收/A1/41_并排对照.png) |
|
|||
|
|
| 42-报修工单详情.png | A2 | 部分实现 | /tickets/:identity;订单内报修标签 | GET tickets、POST tickets/:identity/cancel、confirm | ticket_detail_page_test.dart、ticket_actions_test.go | [390×844](视觉验收/A1/42_390_1.0.png),未通过严格1:1 |
|
|||
|
|
| 43-1-安全宣传.png | D | 未开始 | 尚未建立独立页 | 待该批次核对 | 未建立该页验收 | 未生成 |
|
|||
|
|
| 43-2-安全视频.png | D | 未开始 | 尚未建立独立页 | 待该批次核对 | 未建立该页验收 | 未生成 |
|
|||
|
|
| 43-3-法律法规.png | D | 未开始 | 尚未建立独立页 | 待该批次核对 | 未建立该页验收 | 未生成 |
|
|||
|
|
| 43-4-平台公告.png | D | 部分实现 | `/contents/:identity`;读取本人可见的已发布公告正文 | GET public/contents/:identity;按发布状态、类型和identity读取 | content_detail_test.go、safety_contents_page_test.dart、内置浏览器真实公告正文 | 尚缺摘要、已读、时间、图片与严格1:1;见开发日志_安全内容中心_20260911.md |
|
|||
|
|
| 43-安全内容中心.png | D | 部分实现 | `/contents`;公告、安全宣传、法律法规筛选与标题搜索,视频暂未开放 | GET public/contents、public/contents/:identity | 内容权限、下架、搜索与页面测试 | 内置浏览器真实公告列表;尚缺分页、运营内容和严格1:1 |
|
|||
|
|
| 44-自动关阀设置.png | B | 未开始 | 尚未建立独立页 | 待该批次核对 | 未建立该页验收 | 未生成 |
|
|||
|
|
| 45-电子保修卡.png | D | 未开始 | 尚未建立独立页 | 待该批次核对 | 未建立该页验收 | 未生成 |
|
|||
|
|
| 46-设备健康月报.png | D | 未开始 | 尚未建立独立页 | 待该批次核对 | 未建立该页验收 | 未生成 |
|
|||
|
|
| 47-安全知识考试.png | D | 未开始 | 尚未建立独立页 | 待该批次核对 | 未建立该页验收 | 未生成 |
|
|||
|
|
| 48-服务评价.png | C | 未开始 | 尚未建立独立页 | 待该批次核对 | 未建立该页验收 | 未生成 |
|
|||
|
|
| 49-预约安全巡检.png | C | 未开始 | 尚未建立独立页 | 待该批次核对 | 未建立该页验收 | 未生成 |
|
|||
|
|
|
|||
|
|
共58张:34张部分实现、22张尚无对应完整页面、2张已完成首期功能闭环、0张严格验收通过。历史A1五页记录仅代表当时批次,不代替当前逐页状态。
|
|||
|
|
|
|||
|
|
## 本批次验证
|
|||
|
|
|
|||
|
|
- 改动前:用户端 analyze 无问题、33 项测试通过;Go 全量测试通过。
|
|||
|
|
- 改动后:用户端 analyze 无问题、44 项测试通过;40 组页面截图和滚动溢出检查通过(320/360/390/430 × 844,文本 1.0/1.3)。Web Release 构建通过。
|
|||
|
|
- 共享包 analyze 与 3 项测试通过;服务端 App analyze 与 21 项测试通过。
|
|||
|
|
- Go test ./...、go vet ./...、go build 通过;新增协议重复确认测试定向通过。
|
|||
|
|
- 平台 contract:check 通过 48 个资源;未修改模型、注册路由、后台资源或权限菜单,无需生成契约变更。
|
|||
|
|
- 远程真实联调:密码登录,公开内容、分页商品、用户资料、钱包、地址、商城/供气订单、服务归属全部返回 code=0。
|
|||
|
|
- Mock 商品下单两次复用同一 request_no,只生成同一订单且只扣库存一次;取消后库存恢复。保留已取消订单 identity:01a07bc0-6237-7ec2-8cbc-1c05f16ad10b。未调用支付、退款或资金删除。
|
|||
|
|
- 浏览器实测:游客首页与未开放弹窗、受保护订单登录回跳、本人订单、脱敏个人资料、钱包摘要、商品搜索、未记住会话刷新失效及重复进入报修通过。
|
|||
|
|
|
|||
|
|
## 视觉结论与差异
|
|||
|
|
|
|||
|
|
见 [A1 视觉验收记录](视觉验收/A1/视觉验收记录_A1.md)。截图生成和不溢出通过不等于设计一致性通过。
|
|||
|
|
|
|||
|
|
设计图尺寸比例并不完全相同,对照左侧保持原图等比缩放,右侧固定 390×844;不是强行拉伸后的像素差分。Fixture 仅在 test/tool 中,未进入运行代码。远程商品缺图、无已发布 agreement,不能用设计稿的人像、金额、宣传图或协议正文充当真实数据。
|
|||
|
|
|
|||
|
|
## 已知限制及下一步
|
|||
|
|
|
|||
|
|
- 已按并排核对将验证码发送改为独立按钮、订单改为三类主 Tab 并保留退款入口、个人中心资产区收敛为三列。商家图片、原品牌资产和宣传位当前没有对应可用素材,原图完整设备/配送状态也没有同状态数据,因此严格视觉一致性仍未标“已验收”。
|
|||
|
|
- 商城/订单虽有分页 HTTP 契约,兼容仓储暂时顺序读完各页再筛选,大数据量下需在 A2 改为逐页加载与服务端筛选。
|
|||
|
|
- 页面内幂等号在结果未知时保留,跨页面销毁/应用重启的持久化重试归 A2;当前旧地址接口没有 request_no,不把新增地址声称为完整幂等闭环。
|
|||
|
|
- allowed_actions 由服务端生成,实际写入仍重新校验状态、归属、库存、支付与退款规则;完整详情与细粒度错误码归 A2。
|
|||
|
|
- 远程没有已发布协议,真实协议版本留痕用 SQL Mock 验证,未在远程伪造运营内容。正式投用前由平台发布真实用户协议与隐私政策。
|
|||
|
|
- 无 Android 设备/模拟器、无 macOS,未进行 Android/iOS 实机验收;本次没有新增移动插件。
|
|||
|
|
- 本次曾误建 heqi-a1-postgres、heqi-a1-redis,未建表或导入数据。Docker daemon 后来不可用,删除未能确认;不要启动 Docker 或动现有其他容器来绕过用户的远程环境要求。
|
|||
|
|
|
|||
|
|
下一起点:先完成 A1 剩余视觉收敛,再进入 A2,包含 37 邀请注册。每批保留测试、真实接口与视觉证据,不创建空白页面占位。
|