Skip to content

fix: 允许仅修改自选干员潜能与练度时导出调配 - #503

Open
Xinglan233 wants to merge 1 commit into
sganggs:masterfrom
Xinglan233:fix/diy-cultivation-export-024
Open

Xinglan233 wants to merge 1 commit into
sganggs:masterfrom
Xinglan233:fix/diy-cultivation-export-024

Conversation

@Xinglan233

Copy link
Copy Markdown
Contributor

Important

选择一种改动类型,并填写以下内容。没有相关内容填“无”,不适用填“不适用”。

改动类型

  • fix: 修复
  • feature: 功能
  • docs: 文档
  • refactor: 重构
  • test: 测试
  • chore: 维护

改动说明

Note

写清问题、原因和范围。

  • 改动说明:在自选编队里选择凯尔希,只把潜能改为1、练度改为未精英化,普通干员全部保持默认时,干员调配页仍显示“已调整0”,导出按钮也被禁用。自选页导出的文件只含编队,无法带走这两项设置。

    潜能与练度已经保存在调配的 ops 中,现有 stronghold.loadout 格式及导入流程也已支持它们。原因是导出按钮只看普通名单的改动计数,没有考虑自选独有干员的 ops。

    此次仅调整该按钮的禁用条件:普通名单有改动,或存在保存的潜能/练度设置时即可导出。沿用原有两份文件:自选编队文件保存选择、技能和模组,干员调配文件保存普通调配及所有干员的潜能/练度。同步设计文档,并补正常界面流程的导出、换浏览器导入与刷新回归。

  • 期望效果:只有自选干员的潜能或练度变化,也能在干员调配页导出并在另一浏览器恢复。普通名单的已调整计数、筛选和全部恢复默认范围,两个文件格式与版本、导出 count 含义及原有导入语义均保持原样。

  • 关联 Issue / PR:无。

依据与假设

Note

涉及规则时附官方数据字段、PRTS 或实测;未确认细节及处理方式写入 [ASSUMED],代码中同步标注。

验证结果

Note

运行相关测试、npm run ci 和 npm run golden,如实记录结果及未运行或跳过原因。Golden 变化说明场景及原因;重构不得改变结果,预期结果有意变化时运行 npm run golden:update 并同提交。界面改动附截图。

  • 验证方法:基于0.2.4、bc50cac01ff447eff3ab6c35f69d934bbc23b48f,Node 22.23.3 / macOS 27.2 / Chrome 154。仓库原版 server/index.js(本地,不使用 fastServer)与独立 headless Chrome,使用测试驱动的正常点击、键盘输入与原有选择框;没有注入应用属性、store、存储或绕过界面的请求。先输入代号进入大厅,在6阶自选名额选择凯尔希并修改潜能/练度,切回干员调配导出;在全新浏览器分别导入自选编队文件和干员调配文件,刷新后核对编队、保存数据及凯尔希控件。覆盖仅自选潜能、仅自选练度、两项一起、仅普通、混合、全默认、普通重置、清空自选后保留设置和恢复凯尔希默认。

  • 相关测试:回归先在上游代码上跑出2通过、4失败,失败项是仅自选三种设置与普通重置后导出被禁用。修复后最终六项浏览器回归全部通过,双文件导入与刷新保留编队及设置;定向UI和文档测试87项通过。

    SP_E2E=1 node --test test/ui/loadout-ops-export.e2e.test.js
    # tests 6
    # pass 6
    # fail 0
    # skipped 0
    
    node --test test/ui/potential-ui.test.js test/ui/loadout.test.js test/ui/diy-ui.test.js test/ui/loadout-rows.test.js test/docs-consistency.test.js test/docs-paths.test.js
    # tests 87
    # pass 87
    # fail 0
    # skipped 0
    
  • npm run ci:exit 0,setup、全量测试、smoke、lint、imports、typecheck六步全部成功。全量测试5929通过、0失败、42跳过(默认浏览器/素材等条件;本次六项浏览器回归另行开启并通过)。lint为0错误、135条既有警告,改动文件没有警告。imports按仓库默认非严格模式退出0,仍列出 server/sim/nodeData.js 的3条既有违规及3条 allowed notes。

    # tests 5971
    # pass 5929
    # fail 0
    # skipped 42
    all steps passed
    
  • npm run golden:exit 0,287场景全部一致。

    golden roster: 49 scenarios match
    golden bonds: 46 scenarios match
    golden fields: 22 scenarios match
    golden matches: 20 scenarios match
    golden standins: 10 scenarios match
    golden diy: 140 scenarios match
    ok · 43367 ms (jobs 4)
    
  • Golden 变化:无;未改Golden文件,未运行 golden:update。

  • 截图/录屏:仅修改凯尔希潜能/练度时,修前普通页显示“已调整0”且导出禁用;修后同样计数下导出可用。在全新浏览器导入自选编队与调配两份文件并刷新,凯尔希仍显示潜能1、未精英化。以下截图为完整1280×800原图,未裁剪、标注或修改。

    修复前:只有自选潜能与练度变化,普通页已调整0,导出禁用。

    修复前:只有自选潜能与练度变化,普通页已调整0,导出禁用。

    修复后:普通页仍为已调整0,导出可用。

    修复后:普通页仍为已调整0,导出可用。

    在全新浏览器导入两份文件并刷新后:凯尔希潜能1、未精英化。

    在全新浏览器导入两份文件并刷新后:凯尔希潜能1、未精英化。

    实际导出载荷:

    {"kind":"stronghold.loadout","v":1,"exportedAt":"2026-10-11T04:43:43.171Z","count":0,"entries":{},"ops":{"char_003_kalts":{"potential":1,"cultivate":0}}}

    导入并刷新后保存值为 entries: {}、ops: { char_003_kalts: { potential: 1, cultivate: 0 } },自选控件显示同一设置。环境未下载可选美术、字体和音频,页面使用项目原有回退,资源404和字体警告非零。未做可见GUI流程、完整素材、剪贴板/下载文件、跨设备或跨平台验证。

适用性说明

  • 不适用项:干员kit的Fidelity checklist。
  • 原因:只修改一个导出按钮的条件,没有修改任何干员kit、生产导入逻辑或同步逻辑。

检查清单

Important

最后一步:回顾回答,仅勾选已完成的项目。

  • 本 PR 只处理一个主题
  • 已运行相关测试、npm run ci 和 npm run golden,并如实填写结果
  • 涉及规则时,已同步文档并运行文档检查
  • 涉及干员 kit 时,仅一名干员,并附上逐项勾选的 Fidelity checklist

@Xinglan233
Xinglan233 marked this pull request as ready for review October 11, 2026 09:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant