更新需求

This commit is contained in:
xianyi
2026-01-15 17:22:45 +08:00
parent 7205c13c76
commit 24aa5749b6

View File

@@ -234,11 +234,19 @@ export const ExamSignPanel = ({ examId, onBusyChange }: ExamSignPanelProps) => {
if (listRes.Status === 200 && listRes.Data?.listOptionalItem) {
const items = listRes.Data.listOptionalItem;
setOptionalItemList(items);
// 根据 combination_code 去重,保留第一个出现的项目
const uniqueItems = items.filter((item, index, self) =>
index === self.findIndex((t) => t.combination_code === item.combination_code)
);
setOptionalItemList(uniqueItems);
// 根据操作记录判断是否已经选择过is_abandon = 0
// 若任意记录 is_abandon=1则视为“已确定”已做过弃选/确认动作),不可再确认
let hasConfirmedRecord = false;
let selectedFromRecord: number | null = null;
if (recordRes.Status === 200 && recordRes.Data) {
hasConfirmedRecord = recordRes.Data.some((r) => r.is_abandon === 1);
// 预选:优先取 is_abandon=0 的组合码(若有)
const selectedRecord = recordRes.Data.find(
(r) => r.is_abandon === 0 && r.combination_code
);
@@ -250,21 +258,20 @@ export const ExamSignPanel = ({ examId, onBusyChange }: ExamSignPanelProps) => {
}
}
if (items.length > 0) {
if (uniqueItems.length > 0) {
if (
selectedFromRecord != null &&
items.some((i) => i.combination_code === selectedFromRecord)
uniqueItems.some((i) => i.combination_code === selectedFromRecord)
) {
// 后端已有已选记录
// 有历史记录时,仅做“默认选中”,不标记为已确认
setSelectedOptionalItem(selectedFromRecord);
setOptionalConfirmed(true);
setShowOptionalConfirmTip(false);
} else {
// 尚未选择,需要前端引导用户选择并确认
// 无历史记录,默认不选
setSelectedOptionalItem(null);
setOptionalConfirmed(false);
setShowOptionalConfirmTip(false);
}
// 只要存在可选项目:默认未确认;但若出现 is_abandon=1 记录,则视为已确定
setOptionalConfirmed(hasConfirmedRecord);
setShowOptionalConfirmTip(false);
} else {
// 没有可选项目,则视为无需确认
setSelectedOptionalItem(null);