diff --git a/src/assets/mock/homeworkapi.ts b/src/assets/mock/homeworkapi.ts index 813cecd..3a10605 100644 --- a/src/assets/mock/homeworkapi.ts +++ b/src/assets/mock/homeworkapi.ts @@ -275,7 +275,26 @@ function genMatrix(n: any): any[] { isLate: cur ? cur.isLate : 0, reviewStatus: cur ? cur.reviewStatus : "PENDING", score: cur ? cur.score : null, - thumbnails: cur ? (cur.attachments || []).filter((a: any) => (a.fileType || "").toLowerCase() === "image").map((a: any) => a.fileUrl) : [], + // 契约:thumbnails 是「最新提交附件 URL 列表」——**不按类型过滤**, + // 线上就是这么返回的(学生交 excel 也会进来,前端必须自己分流)。 + // 早先这里 filter(fileType==='image') 把非图片附件滤掉了, + // 于是「附件列把 excel 当图片渲染成裂图」这个缺陷在本地永远复现不出来。 + thumbnails: cur ? (cur.attachments || []).map((a: any) => a.fileUrl) : [], + // 契约增强:附件明细(含 fileType/fileName/fileId),列表页据此精确出图标并在线预览 + attachments: cur ? cur.attachments || [] : [], + // 提交内容类型摘要 + contentTypes: cur + ? [ + ...(cur.text ? ["text"] : []), + ...Array.from( + new Set( + (cur.attachments || []).map((a: any) => + (a.fileType || "").toLowerCase() === "image" ? "image" : "attach" + ) + ) + ), + ] + : [], }); }) ); diff --git a/src/components/ReviewWorkbench.vue b/src/components/ReviewWorkbench.vue index 76c7cb8..b115b67 100644 --- a/src/components/ReviewWorkbench.vue +++ b/src/components/ReviewWorkbench.vue @@ -34,7 +34,9 @@
+ {{ a.fileName || "附件" + (i + 1) }} + 查看 下载
@@ -84,6 +86,9 @@
+ + + @@ -454,3 +548,64 @@ function zoom(url: string) { } } + + +