diff --git a/.env b/.env index bddfbdb..b5b3810 100644 --- a/.env +++ b/.env @@ -9,4 +9,6 @@ URL_CRM_CREATEKP_DIRECT= URL_CRM_DOWNLOADKP_BASE= URL_CORE_FINGAP_DIRECT= URL_CORE_CALCULATE_DIRECT= -URL_1C_TRANSTAX_DIRECT= \ No newline at end of file +URL_1C_TRANSTAX_DIRECT= +URL_ELT_OSAGO_DIRECT= +URL_ELT_KASKO_DIRECT= \ No newline at end of file diff --git a/apps/web/Components/Calculation/Form/ELT/Components/PolicyTable.tsx b/apps/web/Components/Calculation/Form/ELT/Components/PolicyTable.tsx new file mode 100644 index 0000000..a4b828e --- /dev/null +++ b/apps/web/Components/Calculation/Form/ELT/Components/PolicyTable.tsx @@ -0,0 +1,54 @@ +import type { columns } from '../lib/config'; +import type { Row, StoreSelector } from '../types'; +import { useStore } from '@/stores/hooks'; +import { observer } from 'mobx-react-lite'; +import { message, Table } from 'ui/antd'; + +export const PolicyTable = observer( + ({ + storeSelector, + onSelectRow, + ...props + }: { + columns: typeof columns; + onSelectRow: (row: Row) => void; + storeSelector: StoreSelector; + }) => { + const { $tables, $process } = useStore(); + const { getRows, setSelectedKey, getSelectedRow } = storeSelector($tables.elt); + + return ( + ({ + disabled: + !record.sum || record.status !== null || getRows.some((x) => x.status === 'fetching'), + }), + hideSelectAll: true, + onSelect: (record) => { + if (record.sum > 0) { + $process.add('ELT'); + setSelectedKey(record.key); + onSelectRow(record); + message.success({ content: 'Выбранный расчет ЭЛТ применен', key: record.key }); + $process.delete('ELT'); + } + }, + selectedRowKeys: getSelectedRow ? [getSelectedRow.key] : [], + type: 'radio', + }} + expandable={{ + expandedRowRender: (record) => record.message, + rowExpandable: (record) => Boolean(record.message), + }} + {...props} + /> + ); + } +); diff --git a/apps/web/Components/Calculation/Form/ELT/Components/ReloadButton.tsx b/apps/web/Components/Calculation/Form/ELT/Components/ReloadButton.tsx new file mode 100644 index 0000000..c4315fd --- /dev/null +++ b/apps/web/Components/Calculation/Form/ELT/Components/ReloadButton.tsx @@ -0,0 +1,26 @@ +import type { StoreSelector } from '../types'; +import { useStore } from '@/stores/hooks'; +import { observer } from 'mobx-react-lite'; +import { Button } from 'ui/antd'; +import { ReloadOutlined } from 'ui/elements/icons'; +import { Flex } from 'ui/grid'; + +export const ReloadButton = observer( + ({ storeSelector, onClick }: { onClick: () => void; storeSelector: StoreSelector }) => { + const { $tables } = useStore(); + const { validation, getRows: rows } = storeSelector($tables.elt); + + const hasErrors = validation.hasErrors; + + return ( + +