编辑器存量 rubric 徽标/题型切换清理/分值输入修复(最终复核 R1-R3)
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Haiku 4.5
parent
5e4904742a
commit
5ce33f3edf
@@ -61,6 +61,18 @@ describe("QuestionList 结构化编辑", () => {
|
||||
expect(screen.getByText("AI 逐评分点判分(存量题,保留原评分点)")).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it("编辑存量无 judgeMode 字段的题显示 AI 判分徽标与必填参考解答语义", () => {
|
||||
render(
|
||||
<QuestionList
|
||||
value={[{ type: "solve", stem: "解方程", points: 10, reference: "x=2", rubric: [{ point: "过程", score: 6 }], explain: "e" }]}
|
||||
onChange={() => {}}
|
||||
/>,
|
||||
);
|
||||
fireEvent.click(screen.getByLabelText("编辑第 1 题"));
|
||||
expect(screen.getByText("AI 逐评分点判分(存量题,保留原评分点)")).toBeInTheDocument();
|
||||
expect(screen.getByText("参考解答(完整解题过程,展示给孩子)")).toBeInTheDocument();
|
||||
});
|
||||
|
||||
it("题干为空保存时报错,不写入列表", async () => {
|
||||
const user = userEvent.setup();
|
||||
let saved: QuizQ[] = [];
|
||||
|
||||
@@ -110,7 +110,7 @@ export function QuestionList({
|
||||
aria-label="题型"
|
||||
onChange={(e) => {
|
||||
const t = e.target.value as QuizQ["type"];
|
||||
update({ type: t, options: undefined, answers: undefined, reference: undefined, judgeMode: undefined, points: undefined, ...(t === "solve" ? { judgeMode: "answer", points: 10 } : {}) });
|
||||
update({ type: t, options: undefined, answers: undefined, reference: undefined, rubric: undefined, judgeMode: undefined, points: undefined, ...(t === "solve" ? { judgeMode: "answer", points: 10 } : {}) });
|
||||
}}
|
||||
className="ml-2 h-8 rounded-lg border border-slate-200 bg-white px-2 text-sm"
|
||||
>
|
||||
@@ -205,15 +205,16 @@ export function QuestionList({
|
||||
aria-label="分值"
|
||||
type="number"
|
||||
min={1}
|
||||
value={draft.points ?? 10}
|
||||
placeholder="10"
|
||||
value={draft.points ?? ""}
|
||||
onChange={(e) => update({ points: Number(e.target.value) || undefined })}
|
||||
/>
|
||||
</div>
|
||||
<div className="rounded-md bg-slate-50 px-3 py-2 text-xs text-slate-600">
|
||||
{draft.judgeMode === "rubric" ? "AI 逐评分点判分(存量题,保留原评分点)" : "仅最终答案(秒判)"}
|
||||
{draft.judgeMode === "answer" ? "仅最终答案(秒判)" : "AI 逐评分点判分(存量题,保留原评分点)"}
|
||||
</div>
|
||||
<div className="space-y-1">
|
||||
<Label>参考解答(可选,给孩子看)</Label>
|
||||
<Label>{draft.judgeMode === "answer" ? "参考解答(可选,给孩子看)" : "参考解答(完整解题过程,展示给孩子)"}</Label>
|
||||
<Input aria-label="参考解答" value={draft.reference ?? ""} onChange={(e) => update({ reference: e.target.value })} />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user