diff --git a/src/components/Qc/QcComponent.tsx b/src/components/Qc/QcComponent.tsx index 862b02c..f0ab5b1 100644 --- a/src/components/Qc/QcComponent.tsx +++ b/src/components/Qc/QcComponent.tsx @@ -52,6 +52,8 @@ interface Props { disabled: boolean; /** When true, use smaller typography and input size to match 來貨詳情 section (e.g. in QcStockInModal). */ compactLayout?: boolean; + /** When true, use even denser/smaller layout (e.g. for productionProcess / tablet). */ + denseLayout?: boolean; // qcItems: QcData[] // setQcItems: Dispatch> } @@ -64,7 +66,7 @@ type EntryError = type QcRow = TableRow, EntryError>; // fetchQcItemCheck -const QcComponent: React.FC = ({ itemDetail, disabled = false, compactLayout = false }) => { +const QcComponent: React.FC = ({ itemDetail, disabled = false, compactLayout = false, denseLayout = false }) => { const { t } = useTranslation("purchaseOrder"); const apiRef = useGridApiRef(); const { @@ -423,9 +425,9 @@ useEffect(() => { ); } - const headerVariant = compactLayout ? "subtitle1" : "h5"; - const subVariant = compactLayout ? "body2" : "subtitle1"; - const sub2Variant = compactLayout ? "body2" : "subtitle2"; + const headerVariant = denseLayout ? "body2" : (compactLayout ? "subtitle1" : "h5"); + const subVariant = denseLayout ? "caption" : (compactLayout ? "body2" : "subtitle1"); + const sub2Variant = denseLayout ? "caption" : (compactLayout ? "body2" : "subtitle2"); const QcHeader = useMemo(() => () => { if (qcCategory === undefined || qcCategory === null) { return ( @@ -449,7 +451,7 @@ useEffect(() => { ); - }, [qcType, qcCategory, headerVariant, subVariant, sub2Variant]); + }, [qcType, qcCategory, headerVariant, subVariant, sub2Variant, denseLayout]); return ( <> @@ -487,7 +489,7 @@ useEffect(() => { @@ -512,15 +514,15 @@ useEffect(() => { )} - - + + {t("Qc Decision")} @@ -573,7 +575,7 @@ useEffect(() => { // type="number" id="accQty" label={t("acceptQty")} - size={compactLayout ? "small" : "medium"} + size={compactLayout || denseLayout ? "small" : "medium"} sx={{ width: '150px' }} // value={Number(accQty)} defaultValue={Number(accQty)} @@ -626,7 +628,7 @@ useEffect(() => { = ({ rows, disabled = false, compactLayout = false }) => { +const QcForm: React.FC = ({ rows, disabled = false, denseLayout = false }) => { const { t } = useTranslation("purchaseOrder"); const apiRef = useGridApiRef(); const { @@ -72,8 +72,8 @@ const QcForm: React.FC = ({ rows, disabled = false, compactLayout = false {`${params.row.order ?? "N/A"}. ${params.value}`}
@@ -143,6 +143,7 @@ const QcForm: React.FC = ({ rows, disabled = false, compactLayout = false return ( = ({ rows, disabled = false, compactLayout = false onMouseDown={(e) => e.stopPropagation()} onKeyDown={(e) => e.stopPropagation()} inputProps={{ min: 0 }} - size={compactLayout ? "small" : "medium"} sx={{ width: '100%', - "& .MuiInputBase-input": compactLayout ? undefined : { - padding: "0.75rem", - fontSize: 24, + "& .MuiInputBase-input": { + padding: denseLayout ? "0.35rem 0.5rem" : "0.75rem", + fontSize: denseLayout ? 14 : 24, }, }} /> @@ -205,16 +205,16 @@ const QcForm: React.FC = ({ rows, disabled = false, compactLayout = false onMouseDown={(e) => e.stopPropagation()} onKeyDown={(e) => e.stopPropagation()} sx={{ width: '100%', - "& .MuiInputBase-input": compactLayout ? undefined : { - padding: "0.75rem", - fontSize: 24, + "& .MuiInputBase-input": { + padding: denseLayout ? "0.35rem 0.5rem" : "0.75rem", + fontSize: denseLayout ? 14 : 24, }, }} /> ); }, }, - ], [compactLayout, t, setValue, qcDisabled]) + ], [denseLayout, t]) // const getRowId = (row :any) => { // return qcRecord.findIndex(qc => qc == row); diff --git a/src/components/Qc/QcStockInModal.tsx b/src/components/Qc/QcStockInModal.tsx index 00c3cba..ef3bb46 100644 --- a/src/components/Qc/QcStockInModal.tsx +++ b/src/components/Qc/QcStockInModal.tsx @@ -720,6 +720,7 @@ const printQrcode = useCallback( itemDetail={stockInLineInfo} disabled={viewOnly || showPutaway} compactLayout + denseLayout={printSource === "productionProcess"} />) }