feat: barcodes display and printing in deal editor

This commit is contained in:
2025-10-19 21:00:38 +04:00
parent e44691d118
commit 8cc11bca67
2 changed files with 24 additions and 13 deletions

View File

@ -5,6 +5,7 @@ import {
Image, Image,
NumberInput, NumberInput,
Stack, Stack,
Text,
Textarea, Textarea,
Title, Title,
} from "@mantine/core"; } from "@mantine/core";
@ -16,9 +17,9 @@ import {
duplicateProductServices, duplicateProductServices,
ServicesKitSchema, ServicesKitSchema,
} from "@/lib/client"; } from "@/lib/client";
import { useFulfillmentBaseContext } from "@/modules/dealModularEditorTabs/FulfillmentBase/shared/contexts/FulfillmentBaseContext";
import ProductFieldsList from "@/modules/dealModularEditorTabs/FulfillmentBase/desktop/components/ProductView/components/ProductFieldsList"; import ProductFieldsList from "@/modules/dealModularEditorTabs/FulfillmentBase/desktop/components/ProductView/components/ProductFieldsList";
import ProductViewActions from "@/modules/dealModularEditorTabs/FulfillmentBase/desktop/components/ProductView/components/ProductViewActions"; import ProductViewActions from "@/modules/dealModularEditorTabs/FulfillmentBase/desktop/components/ProductView/components/ProductViewActions";
import { useFulfillmentBaseContext } from "@/modules/dealModularEditorTabs/FulfillmentBase/shared/contexts/FulfillmentBaseContext";
import { ServiceType } from "@/modules/dealModularEditorTabs/FulfillmentBase/shared/types/service"; import { ServiceType } from "@/modules/dealModularEditorTabs/FulfillmentBase/shared/types/service";
import ProductServicesTable from "./components/ProductServicesTable"; import ProductServicesTable from "./components/ProductServicesTable";
import styles from "../../../FulfillmentBase.module.css"; import styles from "../../../FulfillmentBase.module.css";
@ -116,10 +117,10 @@ const ProductView: FC<Props> = ({ dealProduct }) => {
)} )}
<Title order={3}>{dealProduct.product.name}</Title> <Title order={3}>{dealProduct.product.name}</Title>
<ProductFieldsList product={dealProduct.product} /> <ProductFieldsList product={dealProduct.product} />
{/*<Text>*/} <Text>
{/* Штрихкоды:*/} Штрихкоды:
{/*{value.product.barcodes.join(", ")}*/} {dealProduct.product.barcodes.join(", ")}
{/*</Text>*/} </Text>
<NumberInput <NumberInput
suffix={" шт."} suffix={" шт."}
value={dealProduct.quantity} value={dealProduct.quantity}

View File

@ -1,5 +1,5 @@
import { FC } from "react"; import { FC } from "react";
import { IconEdit, IconTrash } from "@tabler/icons-react"; import { IconBarcode, IconEdit, IconTrash } from "@tabler/icons-react";
import { Flex } from "@mantine/core"; import { Flex } from "@mantine/core";
import { modals } from "@mantine/modals"; import { modals } from "@mantine/modals";
import ActionIconWithTip from "@/components/ui/ActionIconWithTip/ActionIconWithTip"; import ActionIconWithTip from "@/components/ui/ActionIconWithTip/ActionIconWithTip";
@ -33,18 +33,28 @@ const ProductViewActions: FC<Props> = ({ dealProduct }) => {
}); });
}; };
const onPrintBarcodeClick = () => {
modals.openContextModal({
modal: "printBarcodeModal",
title: "Печать штрихкода",
withCloseButton: true,
innerProps: {
product: dealProduct.product,
defaultQuantity: dealProduct.quantity,
},
});
};
return ( return (
<Flex <Flex
mt={"auto"} mt={"auto"}
ml={"auto"} ml={"auto"}
gap={"sm"}> gap={"sm"}>
{/*<Tooltip*/} <ActionIconWithTip
{/* onClick={onPrintBarcodeClick}*/} onClick={onPrintBarcodeClick}
{/* label="Печать штрихкода">*/} tipLabel="Печать штрихкода">
{/* <ActionIcon variant={"default"}>*/} <IconBarcode />
{/* <IconBarcode />*/} </ActionIconWithTip>
{/* </ActionIcon>*/}
{/*</Tooltip>*/}
<ActionIconWithTip <ActionIconWithTip
onClick={onProductEditClick} onClick={onProductEditClick}
tipLabel="Редактировать товар"> tipLabel="Редактировать товар">