From 8c7aa31cdf1f13f5212a5afabeed8e08874b2936 Mon Sep 17 00:00:00 2001 From: "Tommy\\2Fi-Staff" Date: Tue, 13 Jan 2026 11:59:48 +0800 Subject: [PATCH] TrucklaneDetail add shop branches --- src/components/CreateItem/CreateItem.tsx | 3 +-- src/components/Shop/TruckLaneDetail.tsx | 24 ++++++++++++++++++++++-- src/i18n/en/common.json | 3 +++ src/i18n/zh/common.json | 1 + 4 files changed, 27 insertions(+), 4 deletions(-) diff --git a/src/components/CreateItem/CreateItem.tsx b/src/components/CreateItem/CreateItem.tsx index 69b8e9e..f4fd8e2 100644 --- a/src/components/CreateItem/CreateItem.tsx +++ b/src/components/CreateItem/CreateItem.tsx @@ -159,9 +159,8 @@ const CreateItem: React.FC = ({ console.log(qcCheck); // return // do api - console.log("asdad"); const responseI = await saveItem(data); - console.log("asdad"); + const responseQ = await saveItemQcChecks(qcCheck); if (responseI && responseQ) { if (!Boolean(responseI.id)) { diff --git a/src/components/Shop/TruckLaneDetail.tsx b/src/components/Shop/TruckLaneDetail.tsx index 21b5536..e8eef0f 100644 --- a/src/components/Shop/TruckLaneDetail.tsx +++ b/src/components/Shop/TruckLaneDetail.tsx @@ -69,6 +69,7 @@ const TruckLaneDetail: React.FC = () => { const [uniqueRemarks, setUniqueRemarks] = useState([]); const [uniqueShopCodes, setUniqueShopCodes] = useState([]); const [uniqueShopNames, setUniqueShopNames] = useState([]); + const [shopNameByCodeMap, setShopNameByCodeMap] = useState>(new Map()); const [addShopDialogOpen, setAddShopDialogOpen] = useState(false); const [newShop, setNewShop] = useState({ shopName: "", @@ -86,11 +87,12 @@ const TruckLaneDetail: React.FC = () => { useEffect(() => { const fetchAutocompleteData = async () => { try { - const [shopData, remarks, codes, names] = await Promise.all([ + const [shopData, remarks, codes, names, allShopsFromShopTable] = await Promise.all([ findAllUniqueShopNamesAndCodesFromTrucksClient() as Promise>, findAllUniqueRemarksFromTrucksClient() as Promise, findAllUniqueShopCodesFromTrucksClient() as Promise, findAllUniqueShopNamesFromTrucksClient() as Promise, + fetchAllShopsClient() as Promise, ]); // Convert to Shop format (id will be 0 since we don't have shop IDs from truck table) @@ -105,6 +107,15 @@ const TruckLaneDetail: React.FC = () => { setUniqueRemarks(remarks || []); setUniqueShopCodes(codes || []); setUniqueShopNames(names || []); + + // Create lookup map: shopCode -> shopName from shop table + const shopNameMap = new Map(); + (allShopsFromShopTable || []).forEach((shop) => { + if (shop.code) { + shopNameMap.set(String(shop.code).trim().toLowerCase(), String(shop.name || "").trim()); + } + }); + setShopNameByCodeMap(shopNameMap); } catch (err) { console.error("Failed to load autocomplete data:", err); } @@ -700,6 +711,7 @@ const TruckLaneDetail: React.FC = () => { {t("Shop Name")} + {t("Shop Branch")} {t("Shop Code")} {t("Remark")} {t("Loading Sequence")} @@ -709,7 +721,7 @@ const TruckLaneDetail: React.FC = () => { {shopsData.length === 0 ? ( - + {t("No shops found using this truck lane")} @@ -719,6 +731,14 @@ const TruckLaneDetail: React.FC = () => { shopsData.map((shop, index) => ( + {/* Shop Name from shop table (read-only, looked up by shop code) */} + {(() => { + const shopCode = String(shop.code || "").trim().toLowerCase(); + return shopNameByCodeMap.get(shopCode) || "-"; + })()} + + + {/* Shop Branch from truck table (editable) */} {editingRowIndex === index ? (