增量质检报告 · dzs_wx_app v1.1.1
报告类型:增量(Release 对比)
项目:dzs/dzs_wx_app 分支:v1.1.1
基准 commit(base):bc75622f8bebc1801b797bf699adaea3ae381408
目标 commit(head):81078a174ce898c74fe14ce5331bd5da2a019a48
数据来源:codescan_git_diff(变更面)、codescan_issues_diff(质量问题增量)、codescan_quality_list(版本质量地图)、codescan_source_read(改动文件全文复核)
一、版本变更范围
本次增量共 8 个文件变更,性质为「价格域免登改造(F4b / R3 2026-10-08 裁决)+ 走查文档同步」,不含新增业务功能。
| # | 文件 | 变更性质 | 关键改动 |
|---|
| 1 | src/pages/price/index.vue | 逻辑 | 删除游客登录空态分支与 onShow 里的登录拦截;价格 Tab 游客/登录同路径直接拉列表;行点击直跳详情 |
| 2 | src/pages/price/detail.vue | 逻辑 | 删除登录空态与 onLoad 拦截;void load() 直接取数(品种详情免登只读) |
| 3 | src/pages/price/card-detail.vue | 逻辑 | 删除登录空态与 onLoad 拦截(价格卡详情免登只读);移除 useUserStore/useLoginGuideStore 依赖 |
| 4 | src/pages/home/index.vue | 逻辑 | 价格卡入口与「价格」快捷入口去掉 requireLogin 包裹,直跳;移除 useAuth 引用 |
| 5 | |
改动净效果:价格 Tab、品种详情、价格卡详情、首页价格卡与价格入口、资讯详情「关联品种」共 5 类落点放开登录拦截;useAuth / isLoggedIn / requireLogin / useUserStore 在三个价格页零引用;五处 <LoginGuide /> 均保留挂载以承接全局 401(auth:expired)与资讯互动门禁。
二、修复的问题(fixed)
口径:base 有、head 无 的质量问题。数据来源=codescan_issues_diff。
修复 0 条。
本次为纯「登录拦截分支删除 + 文档同步」,新增/删除的行均为控制流收窄与注释,未触及任何此前被扫描器标记的质量问题点(如 utils/data-card.ts、api/request.ts、utils/metric.ts 等),故修复数依法为 0。
三、新增的问题(added)
口径:head 有、base 无 的质量问题。数据来源=codescan_issues_diff。
新增 0 条。
codescan_issues_diff 结论为「修复 0 条 / 新增 0 条(两版本质量无差异)」。即本次改动未引入任何新的被扫描质量问题(无新增圈复杂度、嵌套深度、耦合、重复代码、超长行等)。
四、改动点人工复核(风险评估)
对 5 个改动源码文件做了逐文件全文复核,确认改造「删得干净、链路完整」:
| 文件 | 复核点 | 结论 |
|---|
price/index.vue | 残留引用 user/guide/requireLogin | 无残留;EmptyState、LoginGuide 仍被 import 且被模板引用(无 unused) |
price/index.vue | onShow 控制流 | 已由「游客弹引导层并 return」改为「首次进入 / 携待处理属性 → reload()」,无提前 return 导致首屏不加载 |
price/detail.vue | 模板 v-if/v-else-if/v-else 链 | v-if="detail" → v-else-if="error"(EmptyState)→ v-else(SkeletonDetail),链完整无悬空分支 |
price/card-detail.vue | 同上 | 同上,链完整;EmptyState/LoginGuide 均仍在使用 |
home/index.vue |
风险结论:低。 改动是「去掉登录分支」的单向收窄,不新增分支、不新增数据依赖;五处 LoginGuide 保留使全局 401 接管路径不受影响。
遗留观察项(非本次引入,登记备查,不属新增问题):
price/index.vue 底部让位 140rpx 与注释「tabBar 实高 100rpx」不符(对应 followups #41 之 B9「待核」)。
- 首页快捷入口「开工率」接线常量(
mill_blast_rate 订正)属 F4(base 已含),本次未再改动。
- 免登后「分桶全部展示不分页」与单页 100 上限冲突(followups #43 已上报产品裁决)。
五、现存质量债务(版本无关,延续 base)
codescan_quality_list 显示本版本(head)共 47 条质量问题,与 base 完全一致(增量 0),即全部为存量债务,本次版本未增未减。分布概览:
| 严重度 | 数量 | 主要类型 | 热点文件 |
|---|
| Medium | 21 | 圈复杂度过高 / 嵌套过深 / 函数过长 / 高耦合 | utils/data-card.ts(复杂度 16/22/15/11)、utils/metric.ts(15)、api/request.ts(12/14)、composables/useArticleData.ts(14/12,98 行)、composables/useShareCard.ts(88 行 + 依赖 20 函数) |
| Low | 26 | 重复代码块 / 行过长 / 扇入扇出异常 / 注释代码过多 | tests/*(多为测试文件重复块与 fan-out 异常)、eslint.config.mjs、src/constants/agreements.ts、src/utils/spark.ts |
说明:Medium/Low 均为可维护性/结构类,无 Critical / High 安全或正确性缺陷;且与本次免登改造无关联,列为既有技术债,建议后续单独排期(优先 utils/data-card.ts、utils/metric.ts、composables/useShareCard.ts)。
六、验证建议
针对本次免登改造,建议上线前重点回归(属功能验证,非扫描器结论):
- 游客态四落点直出数:无 token / 无 profile 下——价格 Tab、品种详情深链(
pages/price/detail?id=1)、价格卡详情深链、首页价格卡点击→卡详情,均应直接出数,无登录引导层、无「登录后查看」空态。
- 互动门禁未被误伤:资讯详情点赞、正文数据卡「登录查看图表」仍弹登录引导层。
- 全局 401 接管:价格页偶发 token 失效时,
<LoginGuide /> 仍能自动展示(useLoginGuideAutoClose 行为不变)。
- 首屏加载:
price/index.vue 的 onShow 改造后,首次进入与从品种详情带属性回跳时应各拉一次列表,无空白首屏。
- 单测:
tests/price.test.ts 新增「价格域免登守卫」用例应全绿(对三页 + 首页 + 资讯详情做源码级断言)。
七、结论
- 本次 v1.1.1 增量为 价格域免登只读(F4b/R3)改造 + 走查文档同步,变更面小(8 文件)、方向单一(移除登录分支)。
- 修复质量问题 0 条、新增质量问题 0 条(
codescan_issues_diff 权威结论:两版本质量无差异)。
- 人工复核未发现残留引用、未发现悬空模板分支、未发现互动门禁被误删;风险等级 低。
- 版本 47 条质量债务为存量、与本次改动无关,建议单列排期治理。
- 放行建议:可上线,前提是完成第六节的 5 项功能回归(尤其游客态四落点与互动门禁的双向验证)。