tmp
This commit is contained in:
		@@ -12,6 +12,8 @@ export type { AuthLoginResponse } from './models/AuthLoginResponse';
 | 
				
			|||||||
export type { BarcodeTemplateAttributeSchema } from './models/BarcodeTemplateAttributeSchema';
 | 
					export type { BarcodeTemplateAttributeSchema } from './models/BarcodeTemplateAttributeSchema';
 | 
				
			||||||
export type { BarcodeTemplateCreateRequest } from './models/BarcodeTemplateCreateRequest';
 | 
					export type { BarcodeTemplateCreateRequest } from './models/BarcodeTemplateCreateRequest';
 | 
				
			||||||
export type { BarcodeTemplateCreateResponse } from './models/BarcodeTemplateCreateResponse';
 | 
					export type { BarcodeTemplateCreateResponse } from './models/BarcodeTemplateCreateResponse';
 | 
				
			||||||
 | 
					export type { BarcodeTemplateDeleteRequest } from './models/BarcodeTemplateDeleteRequest';
 | 
				
			||||||
 | 
					export type { BarcodeTemplateDeleteResponse } from './models/BarcodeTemplateDeleteResponse';
 | 
				
			||||||
export type { BarcodeTemplateSchema } from './models/BarcodeTemplateSchema';
 | 
					export type { BarcodeTemplateSchema } from './models/BarcodeTemplateSchema';
 | 
				
			||||||
export type { BarcodeTemplateUpdateRequest } from './models/BarcodeTemplateUpdateRequest';
 | 
					export type { BarcodeTemplateUpdateRequest } from './models/BarcodeTemplateUpdateRequest';
 | 
				
			||||||
export type { BarcodeTemplateUpdateResponse } from './models/BarcodeTemplateUpdateResponse';
 | 
					export type { BarcodeTemplateUpdateResponse } from './models/BarcodeTemplateUpdateResponse';
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										8
									
								
								src/client/models/BarcodeTemplateDeleteRequest.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								src/client/models/BarcodeTemplateDeleteRequest.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					/* generated using openapi-typescript-codegen -- do no edit */
 | 
				
			||||||
 | 
					/* istanbul ignore file */
 | 
				
			||||||
 | 
					/* tslint:disable */
 | 
				
			||||||
 | 
					/* eslint-disable */
 | 
				
			||||||
 | 
					export type BarcodeTemplateDeleteRequest = {
 | 
				
			||||||
 | 
					    id: number;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										9
									
								
								src/client/models/BarcodeTemplateDeleteResponse.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								src/client/models/BarcodeTemplateDeleteResponse.ts
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					/* generated using openapi-typescript-codegen -- do no edit */
 | 
				
			||||||
 | 
					/* istanbul ignore file */
 | 
				
			||||||
 | 
					/* tslint:disable */
 | 
				
			||||||
 | 
					/* eslint-disable */
 | 
				
			||||||
 | 
					export type BarcodeTemplateDeleteResponse = {
 | 
				
			||||||
 | 
					    ok: boolean;
 | 
				
			||||||
 | 
					    message: string;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -2,10 +2,12 @@
 | 
				
			|||||||
/* istanbul ignore file */
 | 
					/* istanbul ignore file */
 | 
				
			||||||
/* tslint:disable */
 | 
					/* tslint:disable */
 | 
				
			||||||
/* eslint-disable */
 | 
					/* eslint-disable */
 | 
				
			||||||
 | 
					import type { BarcodeTemplateSchema } from './BarcodeTemplateSchema';
 | 
				
			||||||
import type { ClientDetailsSchema } from './ClientDetailsSchema';
 | 
					import type { ClientDetailsSchema } from './ClientDetailsSchema';
 | 
				
			||||||
export type ClientSchema = {
 | 
					export type ClientSchema = {
 | 
				
			||||||
    id: number;
 | 
					    id: number;
 | 
				
			||||||
    name: string;
 | 
					    name: string;
 | 
				
			||||||
 | 
					    barcodeTemplate?: (BarcodeTemplateSchema | null);
 | 
				
			||||||
    details?: (ClientDetailsSchema | null);
 | 
					    details?: (ClientDetailsSchema | null);
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,6 +4,8 @@
 | 
				
			|||||||
/* eslint-disable */
 | 
					/* eslint-disable */
 | 
				
			||||||
import type { BarcodeTemplateCreateRequest } from '../models/BarcodeTemplateCreateRequest';
 | 
					import type { BarcodeTemplateCreateRequest } from '../models/BarcodeTemplateCreateRequest';
 | 
				
			||||||
import type { BarcodeTemplateCreateResponse } from '../models/BarcodeTemplateCreateResponse';
 | 
					import type { BarcodeTemplateCreateResponse } from '../models/BarcodeTemplateCreateResponse';
 | 
				
			||||||
 | 
					import type { BarcodeTemplateDeleteRequest } from '../models/BarcodeTemplateDeleteRequest';
 | 
				
			||||||
 | 
					import type { BarcodeTemplateDeleteResponse } from '../models/BarcodeTemplateDeleteResponse';
 | 
				
			||||||
import type { BarcodeTemplateUpdateRequest } from '../models/BarcodeTemplateUpdateRequest';
 | 
					import type { BarcodeTemplateUpdateRequest } from '../models/BarcodeTemplateUpdateRequest';
 | 
				
			||||||
import type { BarcodeTemplateUpdateResponse } from '../models/BarcodeTemplateUpdateResponse';
 | 
					import type { BarcodeTemplateUpdateResponse } from '../models/BarcodeTemplateUpdateResponse';
 | 
				
			||||||
import type { CreateBarcodeTemplateAttributeRequest } from '../models/CreateBarcodeTemplateAttributeRequest';
 | 
					import type { CreateBarcodeTemplateAttributeRequest } from '../models/CreateBarcodeTemplateAttributeRequest';
 | 
				
			||||||
@@ -87,6 +89,26 @@ export class BarcodeService {
 | 
				
			|||||||
            },
 | 
					            },
 | 
				
			||||||
        });
 | 
					        });
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    /**
 | 
				
			||||||
 | 
					     * Delete Barcode Template
 | 
				
			||||||
 | 
					     * @returns BarcodeTemplateDeleteResponse Successful Response
 | 
				
			||||||
 | 
					     * @throws ApiError
 | 
				
			||||||
 | 
					     */
 | 
				
			||||||
 | 
					    public static deleteBarcodeTemplate({
 | 
				
			||||||
 | 
					        requestBody,
 | 
				
			||||||
 | 
					    }: {
 | 
				
			||||||
 | 
					        requestBody: BarcodeTemplateDeleteRequest,
 | 
				
			||||||
 | 
					    }): CancelablePromise<BarcodeTemplateDeleteResponse> {
 | 
				
			||||||
 | 
					        return __request(OpenAPI, {
 | 
				
			||||||
 | 
					            method: 'POST',
 | 
				
			||||||
 | 
					            url: '/barcode/template/delete',
 | 
				
			||||||
 | 
					            body: requestBody,
 | 
				
			||||||
 | 
					            mediaType: 'application/json',
 | 
				
			||||||
 | 
					            errors: {
 | 
				
			||||||
 | 
					                422: `Validation Error`,
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * Get All Barcode Template Attributes
 | 
					     * Get All Barcode Template Attributes
 | 
				
			||||||
     * @returns GetAllBarcodeTemplateAttributesResponse Successful Response
 | 
					     * @returns GetAllBarcodeTemplateAttributesResponse Successful Response
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,15 @@
 | 
				
			|||||||
import {Center, Image, rem, Stack, Tooltip, UnstyledButton, useMantineColorScheme} from '@mantine/core';
 | 
					import {Center, Image, rem, Stack, Tooltip, UnstyledButton, useMantineColorScheme} from '@mantine/core';
 | 
				
			||||||
import {IconBarcode, IconBox, IconCash, IconHome2, IconLogout, IconMan, IconMoon, IconSun,} from '@tabler/icons-react';
 | 
					import {
 | 
				
			||||||
 | 
					    IconBarcode,
 | 
				
			||||||
 | 
					    IconBox,
 | 
				
			||||||
 | 
					    IconCash,
 | 
				
			||||||
 | 
					    IconFileBarcode,
 | 
				
			||||||
 | 
					    IconHome2,
 | 
				
			||||||
 | 
					    IconLogout,
 | 
				
			||||||
 | 
					    IconMan,
 | 
				
			||||||
 | 
					    IconMoon,
 | 
				
			||||||
 | 
					    IconSun,
 | 
				
			||||||
 | 
					} from '@tabler/icons-react';
 | 
				
			||||||
import classes from './Navbar.module.css';
 | 
					import classes from './Navbar.module.css';
 | 
				
			||||||
import {useAppDispatch} from "../../redux/store.ts";
 | 
					import {useAppDispatch} from "../../redux/store.ts";
 | 
				
			||||||
import {logout} from "../../features/authSlice.ts";
 | 
					import {logout} from "../../features/authSlice.ts";
 | 
				
			||||||
@@ -54,6 +64,11 @@ const mockdata = [
 | 
				
			|||||||
        icon: IconBarcode,
 | 
					        icon: IconBarcode,
 | 
				
			||||||
        label: 'Товары',
 | 
					        label: 'Товары',
 | 
				
			||||||
        href: '/products'
 | 
					        href: '/products'
 | 
				
			||||||
 | 
					    },
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        icon: IconFileBarcode,
 | 
				
			||||||
 | 
					        label: 'Штрихкоды',
 | 
				
			||||||
 | 
					        href: '/barcode'
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
];
 | 
					];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,24 +1,83 @@
 | 
				
			|||||||
import styles from './BarcodePage.module.css';
 | 
					import styles from './BarcodePage.module.css';
 | 
				
			||||||
import PageBlock from "../../components/PageBlock/PageBlock.tsx";
 | 
					import PageBlock from "../../components/PageBlock/PageBlock.tsx";
 | 
				
			||||||
import {Button} from "@mantine/core";
 | 
					import {Button} from "@mantine/core";
 | 
				
			||||||
 | 
					import BarcodeTemplatesTable from "./components/BarcodeTemplatesTable/BarcodeTemplatesTable.tsx";
 | 
				
			||||||
 | 
					import useGetAllBarcodeTemplates from "../../api/barcode/useGetAllBarcodeTemplates.tsx";
 | 
				
			||||||
 | 
					import {modals} from "@mantine/modals";
 | 
				
			||||||
 | 
					import {BarcodeService, BarcodeTemplateSchema} from "../../client";
 | 
				
			||||||
 | 
					import {notifications} from "../../shared/lib/notifications.ts";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const BarcodePage = () => {
 | 
					const BarcodePage = () => {
 | 
				
			||||||
 | 
					    const {barcodeTemplates, refetch} = useGetAllBarcodeTemplates();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const onCreate = (template: BarcodeTemplateSchema) => {
 | 
				
			||||||
 | 
					        BarcodeService.createBarcodeTemplate(({
 | 
				
			||||||
 | 
					            requestBody: {
 | 
				
			||||||
 | 
					                ...template,
 | 
				
			||||||
 | 
					                attributeIds: template.attributes.map(attr => attr.id)
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        })).then(async ({ok, message}) => {
 | 
				
			||||||
 | 
					            notifications.guess(ok, {message});
 | 
				
			||||||
 | 
					            if (!ok) return;
 | 
				
			||||||
 | 
					            await refetch()
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const onChange = (template: BarcodeTemplateSchema) => {
 | 
				
			||||||
 | 
					        BarcodeService.updateBarcodeTemplate({
 | 
				
			||||||
 | 
					            requestBody: {
 | 
				
			||||||
 | 
					                ...template,
 | 
				
			||||||
 | 
					                attributeIds: template.attributes.map(attr => attr.id)
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }).then(async ({ok, message}) => {
 | 
				
			||||||
 | 
					            notifications.guess(ok, {message});
 | 
				
			||||||
 | 
					            if (!ok) return;
 | 
				
			||||||
 | 
					            await refetch()
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const onDelete = (template: BarcodeTemplateSchema) => {
 | 
				
			||||||
 | 
					        BarcodeService.deleteBarcodeTemplate({
 | 
				
			||||||
 | 
					            requestBody: {
 | 
				
			||||||
 | 
					                id: template.id
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }).then(async ({ok, message}) => {
 | 
				
			||||||
 | 
					            notifications.guess(ok, {message});
 | 
				
			||||||
 | 
					            if (!ok) return;
 | 
				
			||||||
 | 
					            await refetch()
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    const onCreateClick = () => {
 | 
				
			||||||
 | 
					        modals.openContextModal({
 | 
				
			||||||
 | 
					            modal: "barcodeTemplateFormModal",
 | 
				
			||||||
 | 
					            title: 'Создание шаблона',
 | 
				
			||||||
 | 
					            withCloseButton: false,
 | 
				
			||||||
 | 
					            innerProps: {
 | 
				
			||||||
 | 
					                onCreate: onCreate
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    return (
 | 
					    return (
 | 
				
			||||||
        <div className={styles['container']}>
 | 
					        <div className={styles['container']}>
 | 
				
			||||||
            <PageBlock>
 | 
					            <PageBlock>
 | 
				
			||||||
                <div className={styles['top-panel']}>
 | 
					                <div className={styles['top-panel']}>
 | 
				
			||||||
                    <Button
 | 
					                    <Button
 | 
				
			||||||
 | 
					                        onClick={() => onCreateClick()}
 | 
				
			||||||
                        variant={"default"}
 | 
					                        variant={"default"}
 | 
				
			||||||
                    >
 | 
					                    >
 | 
				
			||||||
                        Создать клиента
 | 
					                        Создать шаблон
 | 
				
			||||||
                    </Button>
 | 
					                    </Button>
 | 
				
			||||||
                </div>
 | 
					                </div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            </PageBlock>
 | 
					            </PageBlock>
 | 
				
			||||||
            <PageBlock>
 | 
					            <PageBlock>
 | 
				
			||||||
                <>dsad</>
 | 
					                <BarcodeTemplatesTable
 | 
				
			||||||
 | 
					                    items={barcodeTemplates}
 | 
				
			||||||
 | 
					                    onChange={onChange}
 | 
				
			||||||
 | 
					                    onDelete={onDelete}
 | 
				
			||||||
 | 
					                />
 | 
				
			||||||
            </PageBlock>
 | 
					            </PageBlock>
 | 
				
			||||||
        </div>
 | 
					        </div>
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					import {GetInputProps} from "@mantine/form/lib/types";
 | 
				
			||||||
 | 
					import {FC} from "react";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					type Props = GetInputProps<Array<{ name:string,value:string }>>
 | 
				
			||||||
 | 
					const BarcodeTemplateAdditionalFieldTable:FC<Props> = (props:Props) => {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -6,6 +6,7 @@ import {BaseTable} from "../../../../components/BaseTable/BaseTable.tsx";
 | 
				
			|||||||
import {modals} from "@mantine/modals";
 | 
					import {modals} from "@mantine/modals";
 | 
				
			||||||
import {ActionIcon, Flex, Tooltip} from "@mantine/core";
 | 
					import {ActionIcon, Flex, Tooltip} from "@mantine/core";
 | 
				
			||||||
import {IconEdit, IconTrash} from "@tabler/icons-react";
 | 
					import {IconEdit, IconTrash} from "@tabler/icons-react";
 | 
				
			||||||
 | 
					import {MRT_TableOptions} from "mantine-react-table";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const BarcodeTemplatesTable: FC<CRUDTableProps<BarcodeTemplateSchema>> = ({
 | 
					const BarcodeTemplatesTable: FC<CRUDTableProps<BarcodeTemplateSchema>> = ({
 | 
				
			||||||
                                                                              items,
 | 
					                                                                              items,
 | 
				
			||||||
@@ -39,8 +40,7 @@ const BarcodeTemplatesTable: FC<CRUDTableProps<BarcodeTemplateSchema>> = ({
 | 
				
			|||||||
                            <Tooltip label="Редактировать">
 | 
					                            <Tooltip label="Редактировать">
 | 
				
			||||||
                                <ActionIcon
 | 
					                                <ActionIcon
 | 
				
			||||||
                                    onClick={() => onEditClick(row.original)}
 | 
					                                    onClick={() => onEditClick(row.original)}
 | 
				
			||||||
                                    variant={"default"}
 | 
					                                    variant={"default"}>
 | 
				
			||||||
                                >
 | 
					 | 
				
			||||||
                                    <IconEdit/>
 | 
					                                    <IconEdit/>
 | 
				
			||||||
                                </ActionIcon>
 | 
					                                </ActionIcon>
 | 
				
			||||||
                            </Tooltip>
 | 
					                            </Tooltip>
 | 
				
			||||||
@@ -53,7 +53,7 @@ const BarcodeTemplatesTable: FC<CRUDTableProps<BarcodeTemplateSchema>> = ({
 | 
				
			|||||||
                            </Tooltip>
 | 
					                            </Tooltip>
 | 
				
			||||||
                        </Flex>
 | 
					                        </Flex>
 | 
				
			||||||
                    )
 | 
					                    )
 | 
				
			||||||
                }}
 | 
					                } as MRT_TableOptions<BarcodeTemplateSchema>}
 | 
				
			||||||
            />
 | 
					            />
 | 
				
			||||||
        </>
 | 
					        </>
 | 
				
			||||||
    )
 | 
					    )
 | 
				
			||||||
@@ -1,6 +1,7 @@
 | 
				
			|||||||
import {BarcodeTemplateSchema} from "../../../../client";
 | 
					import {BarcodeTemplateSchema} from "../../../../client";
 | 
				
			||||||
import {MRT_ColumnDef} from "mantine-react-table";
 | 
					import {MRT_ColumnDef} from "mantine-react-table";
 | 
				
			||||||
import {useMemo} from "react";
 | 
					import {useMemo} from "react";
 | 
				
			||||||
 | 
					import {IconCheck, IconX} from "@tabler/icons-react";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export const useBarcodeTemplatesTableColumns = () => {
 | 
					export const useBarcodeTemplatesTableColumns = () => {
 | 
				
			||||||
    return useMemo<MRT_ColumnDef<BarcodeTemplateSchema>[]>(() => [
 | 
					    return useMemo<MRT_ColumnDef<BarcodeTemplateSchema>[]>(() => [
 | 
				
			||||||
@@ -8,17 +9,19 @@ export const useBarcodeTemplatesTableColumns = () => {
 | 
				
			|||||||
            accessorKey: "name",
 | 
					            accessorKey: "name",
 | 
				
			||||||
            header: "Название",
 | 
					            header: "Название",
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					 | 
				
			||||||
            accessorKey: "isDefault",
 | 
					 | 
				
			||||||
            header: "По умолчанию",
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            accessorKey: "attributes",
 | 
					            accessorKey: "attributes",
 | 
				
			||||||
            header: "Атрибуты",
 | 
					            header: "Атрибуты",
 | 
				
			||||||
 | 
					            Cell: ({row}) => <>{row.original.attributes.map(attr => attr.name).join(', ')}</>
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            header: "Размер",
 | 
					            header: "Размер",
 | 
				
			||||||
            Cell: ({row}) => <>{row.original.width}x{row.original.height}</>
 | 
					            Cell: ({row}) => <>{row.original.width}x{row.original.height}</>
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            accessorKey: "isDefault",
 | 
				
			||||||
 | 
					            header: "По умолчанию",
 | 
				
			||||||
 | 
					            Cell: ({row}) => row.original.isDefault ? <IconCheck/> : <IconX/>
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    ], []);
 | 
					    ], []);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -5,7 +5,7 @@ import {useForm} from "@mantine/form";
 | 
				
			|||||||
import {Checkbox, Fieldset, Flex, NumberInput, rem, TextInput} from "@mantine/core";
 | 
					import {Checkbox, Fieldset, Flex, NumberInput, rem, TextInput} from "@mantine/core";
 | 
				
			||||||
import {IconX} from "@tabler/icons-react";
 | 
					import {IconX} from "@tabler/icons-react";
 | 
				
			||||||
import BarcodeTemplateAttributeMultiselect
 | 
					import BarcodeTemplateAttributeMultiselect
 | 
				
			||||||
    from "../../component/BarcodeTemplateAttributeMultiselect/BarcodeTemplateAttributeMultiselect.tsx";
 | 
					    from "../../components/BarcodeTemplateAttributeMultiselect/BarcodeTemplateAttributeMultiselect.tsx";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type Props = CreateEditFormProps<BarcodeTemplateSchema>
 | 
					type Props = CreateEditFormProps<BarcodeTemplateSchema>
 | 
				
			||||||
const BarcodeTemplateFormModal = ({
 | 
					const BarcodeTemplateFormModal = ({
 | 
				
			||||||
@@ -30,7 +30,7 @@ const BarcodeTemplateFormModal = ({
 | 
				
			|||||||
            name: (name: string | undefined) => name && name.trim() !== '' ? null : "Необходимо ввести название шаблона",
 | 
					            name: (name: string | undefined) => name && name.trim() !== '' ? null : "Необходимо ввести название шаблона",
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    })
 | 
					    })
 | 
				
			||||||
    console.log(form.values);
 | 
					
 | 
				
			||||||
    return (
 | 
					    return (
 | 
				
			||||||
        <BaseFormModal
 | 
					        <BaseFormModal
 | 
				
			||||||
            {...innerProps}
 | 
					            {...innerProps}
 | 
				
			||||||
@@ -44,40 +44,33 @@ const BarcodeTemplateFormModal = ({
 | 
				
			|||||||
                    <Fieldset legend={"Шаблон штрихкода"}>
 | 
					                    <Fieldset legend={"Шаблон штрихкода"}>
 | 
				
			||||||
                        <Flex direction={"column"} gap={rem(10)}>
 | 
					                        <Flex direction={"column"} gap={rem(10)}>
 | 
				
			||||||
                            <TextInput
 | 
					                            <TextInput
 | 
				
			||||||
                                label={"Название"}
 | 
					                                label={'Название'}
 | 
				
			||||||
                                placeholder={"Введите название шаблона"}
 | 
					                                placeholder={"Введите название шаблона"}
 | 
				
			||||||
                                {...form.getInputProps('name')}
 | 
					                                {...form.getInputProps('name')}
 | 
				
			||||||
                            />
 | 
					                            />
 | 
				
			||||||
                            <Fieldset
 | 
					                            <Flex gap={10} align={"center"}>
 | 
				
			||||||
                                styles={{
 | 
					                                <NumberInput
 | 
				
			||||||
                                    legend: {
 | 
					                                    hideControls
 | 
				
			||||||
                                        marginBottom: 0,
 | 
					                                    label={'Ширина'}
 | 
				
			||||||
                                        fontWeight: 500
 | 
					                                    placeholder={"Ширина в мм"}
 | 
				
			||||||
                                    }
 | 
					                                    {...form.getInputProps('width')}
 | 
				
			||||||
                                }}
 | 
					                                />
 | 
				
			||||||
                                variant={"unstyled"}
 | 
					                                <IconX/>
 | 
				
			||||||
                                legend={"Размер"}>
 | 
					                                <NumberInput
 | 
				
			||||||
                                <Flex gap={10} align={"center"}>
 | 
					                                    hideControls
 | 
				
			||||||
                                    <NumberInput
 | 
					                                    label={'Высота'}
 | 
				
			||||||
                                        hideControls
 | 
					                                    placeholder={"Высота в мм"}
 | 
				
			||||||
                                        placeholder={"Ширина"}
 | 
					                                    {...form.getInputProps('height')}
 | 
				
			||||||
                                        {...form.getInputProps('width')}
 | 
					                                />
 | 
				
			||||||
                                    />
 | 
					                            </Flex>
 | 
				
			||||||
                                    <IconX/>
 | 
					 | 
				
			||||||
                                    <NumberInput
 | 
					 | 
				
			||||||
                                        hideControls
 | 
					 | 
				
			||||||
                                        placeholder={"Высота"}
 | 
					 | 
				
			||||||
                                        {...form.getInputProps('height')}
 | 
					 | 
				
			||||||
                                    />
 | 
					 | 
				
			||||||
                                </Flex>
 | 
					 | 
				
			||||||
                            </Fieldset>
 | 
					 | 
				
			||||||
                            <BarcodeTemplateAttributeMultiselect
 | 
					                            <BarcodeTemplateAttributeMultiselect
 | 
				
			||||||
                                label={"Атрибуты"}
 | 
					                                label={"Атрибуты"}
 | 
				
			||||||
                                placeholder={"Выберите атрибуты"}
 | 
					                                placeholder={!form.values.attributes?.length ? "Выберите атрибуты" : undefined}
 | 
				
			||||||
                                {...form.getInputProps('attributes')}
 | 
					                                {...form.getInputProps('attributes')}
 | 
				
			||||||
                            />
 | 
					                            />
 | 
				
			||||||
                            <Checkbox
 | 
					                            <Checkbox
 | 
				
			||||||
                                label={"Использовать как стандартный шаблон"}
 | 
					                                label={"Использовать как стандартный шаблон"}
 | 
				
			||||||
 | 
					                                checked={form.getInputProps('isDefault').value as boolean}
 | 
				
			||||||
                                {...form.getInputProps('isDefault')}/>
 | 
					                                {...form.getInputProps('isDefault')}/>
 | 
				
			||||||
                        </Flex>
 | 
					                        </Flex>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -24,6 +24,10 @@ export const useClientsTableColumns = () => {
 | 
				
			|||||||
        {
 | 
					        {
 | 
				
			||||||
            accessorKey: "details.inn",
 | 
					            accessorKey: "details.inn",
 | 
				
			||||||
            header: "ИНН"
 | 
					            header: "ИНН"
 | 
				
			||||||
 | 
					        },
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            accessorKey:"barcodeTemplate.name",
 | 
				
			||||||
 | 
					            header:"Шаблон штрихкодов"
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    ], []);
 | 
					    ], []);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -3,6 +3,7 @@ import {Fieldset, TextInput} from "@mantine/core";
 | 
				
			|||||||
import {useForm} from "@mantine/form";
 | 
					import {useForm} from "@mantine/form";
 | 
				
			||||||
import {ClientSchema} from "../../../../client";
 | 
					import {ClientSchema} from "../../../../client";
 | 
				
			||||||
import BaseFormModal, {CreateEditFormProps} from "../BaseFormModal/BaseFormModal.tsx";
 | 
					import BaseFormModal, {CreateEditFormProps} from "../BaseFormModal/BaseFormModal.tsx";
 | 
				
			||||||
 | 
					import BarcodeTemplateSelect from "../../../../components/Selects/BarcodeTemplateSelect/BarcodeTemplateSelect.tsx";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type Props = CreateEditFormProps<ClientSchema>;
 | 
					type Props = CreateEditFormProps<ClientSchema>;
 | 
				
			||||||
@@ -22,7 +23,8 @@ const ClientFormModal = ({
 | 
				
			|||||||
            phoneNumber: innerProps.element.details?.phoneNumber,
 | 
					            phoneNumber: innerProps.element.details?.phoneNumber,
 | 
				
			||||||
            email: innerProps.element.details?.email,
 | 
					            email: innerProps.element.details?.email,
 | 
				
			||||||
            inn: innerProps.element.details?.inn
 | 
					            inn: innerProps.element.details?.inn
 | 
				
			||||||
        }
 | 
					        },
 | 
				
			||||||
 | 
					        barcodeTemplate: innerProps.element.barcodeTemplate
 | 
				
			||||||
    } : {
 | 
					    } : {
 | 
				
			||||||
        id: -1,
 | 
					        id: -1,
 | 
				
			||||||
        name: '',
 | 
					        name: '',
 | 
				
			||||||
@@ -89,6 +91,13 @@ const ClientFormModal = ({
 | 
				
			|||||||
                            {...form.getInputProps('details.inn')}
 | 
					                            {...form.getInputProps('details.inn')}
 | 
				
			||||||
                        />
 | 
					                        />
 | 
				
			||||||
                    </Fieldset>
 | 
					                    </Fieldset>
 | 
				
			||||||
 | 
					                    <Fieldset legend={'Настройки'}>
 | 
				
			||||||
 | 
					                        <BarcodeTemplateSelect
 | 
				
			||||||
 | 
					                            label={'Шаблон штрихкодов'}
 | 
				
			||||||
 | 
					                            placeholder={'Выберите шаблон штрихкодов'}
 | 
				
			||||||
 | 
					                            {...form.getInputProps('barcodeTemplate')}
 | 
				
			||||||
 | 
					                        />
 | 
				
			||||||
 | 
					                    </Fieldset>
 | 
				
			||||||
                </>
 | 
					                </>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            </BaseFormModal.Body>
 | 
					            </BaseFormModal.Body>
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user