diff --git a/furniture-3d-system/src/app/intake/non-integrated/NonIntegratedDetailClient.test.tsx b/furniture-3d-system/src/app/intake/non-integrated/NonIntegratedDetailClient.test.tsx
index 4ce49c1e..7aa07ea0 100644
--- a/furniture-3d-system/src/app/intake/non-integrated/NonIntegratedDetailClient.test.tsx
+++ b/furniture-3d-system/src/app/intake/non-integrated/NonIntegratedDetailClient.test.tsx
@@ -1791,6 +1791,59 @@ describe("NonIntegratedDetailClient", () => {
expect(screen.getByDisplayValue("DNZ038501")).toBeInTheDocument();
});
+ it("matches batch SKU images against the displayed finished series SPU", async () => {
+ const actor = userEvent.setup();
+ saveNonIntegratedProduct(
+ createProductRecord({
+ id: "DNZ0385-series-image-match",
+ productDevelopmentKind: "series",
+ spu: "DNZ0405",
+ productCode: "DNZ0405",
+ formalSpuAssigned: true,
+ metadata: {
+ sourceSeriesCode: "DBZ",
+ sourceSeriesName: "单板桌 DBZ",
+ componentSpu: "DNZ0384",
+ finishedProductSpu: "DNZ0385",
+ },
+ openingReference: {
+ ...createEmptyNonIntegratedOpeningReference(),
+ productName: "单板桌 DBZ",
+ temporaryCode: "DNZ0385",
+ productCategory: "电脑桌",
+ salesCategory: "桌类",
+ },
+ skuItems: [
+ createSkuItem({
+ id: "sku-series-image-match-1",
+ skuCode: "DNZ040501",
+ barcode: "DNZ040501V01",
+ }),
+ ],
+ }),
+ );
+
+ const { container } = render(
+ ,
+ );
+
+ expect(screen.getByDisplayValue("DNZ038501")).toBeInTheDocument();
+ const batchSkuImageInput = container.querySelector(
+ 'input[type="file"][accept="image/*"][multiple]',
+ );
+ expect(batchSkuImageInput).toBeInTheDocument();
+
+ await actor.upload(
+ batchSkuImageInput!,
+ new File(["image"], "DNZ038501.jpg", { type: "image/jpeg" }),
+ );
+
+ expect(await screen.findByText("已匹配 1 张SKU图片")).toBeInTheDocument();
+ });
+
it("does not treat a temporary code as formal when only basic info is approved", () => {
saveNonIntegratedProduct(
createProductRecord({
diff --git a/furniture-3d-system/src/app/intake/non-integrated/NonIntegratedDetailClient.tsx b/furniture-3d-system/src/app/intake/non-integrated/NonIntegratedDetailClient.tsx
index 71744443..6b7b2cb9 100644
--- a/furniture-3d-system/src/app/intake/non-integrated/NonIntegratedDetailClient.tsx
+++ b/furniture-3d-system/src/app/intake/non-integrated/NonIntegratedDetailClient.tsx
@@ -20779,7 +20779,7 @@ export default function NonIntegratedDetailClient({
const derivedItem = deriveSkuItem(
item,
index,
- formValues.spu,
+ skuCodePreviewSpu,
formValues,
);
const matchedImage = imageMap.get(