AddBadgeModal / EditBadgeModal、AddProblemModal / EditProblemModal 各是两份八成相同 的组件,改一处表单项另一处总要漏。合并成一个组件,传了 badge / problem 就是编辑、 null 就是添加;两种模式分别 emit create / update,detail.vue 的四个 handler 不变。 表单项、校验、文案、提交的数据形状都照旧(题目弹窗添加时带 problemId、编辑时只显示 标题)。有一处刻意的行为变化:编辑弹窗原来只在换了一条记录时才重新填表,取消后再打开 同一条会看到上次没保存的改动;现在每次打开都按库里的值重新填。 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
oj.xuyue.cc