diff --git a/web/src/components/RealtimeTable/RealtimeTable.jsx b/web/src/components/RealtimeTable/RealtimeTable.jsx index 827babb..e7dd8e8 100644 --- a/web/src/components/RealtimeTable/RealtimeTable.jsx +++ b/web/src/components/RealtimeTable/RealtimeTable.jsx @@ -275,6 +275,7 @@ const RealtimeTable = ({ formType, formId, sheetName, direction, year }) => { columnsConfig, columnsCurStage, userRoleId, + sheetName, onCellNumberClick: handleClickRowCell, onCellUpdateError: handleCellUpdateError, isCellInvalid, @@ -283,7 +284,7 @@ const RealtimeTable = ({ formType, formId, sheetName, direction, year }) => { console.error('Error creating columns:', error); return []; } - }, [columnsConfig, columnsCurStage, userRoleId, handleCellUpdateError, handleClickRowCell, handleUpdateCell, isCellInvalid]); + }, [columnsConfig, columnsCurStage, userRoleId, sheetName, handleCellUpdateError, handleClickRowCell, handleUpdateCell, isCellInvalid]); // MRT запоминает индексы pinned-колонок до завершения асинхронной // загрузки конфигурации. Новая ссылка на columnPinning заставляет diff --git a/web/src/components/RealtimeTable/constants/columnConfig.js b/web/src/components/RealtimeTable/constants/columnConfig.js index 53ca647..cce55f2 100644 --- a/web/src/components/RealtimeTable/constants/columnConfig.js +++ b/web/src/components/RealtimeTable/constants/columnConfig.js @@ -1,4 +1,4 @@ -import { blueColumn, greenColumn, orangeColumn } from "./columnColors"; +import { blueColumn, greenColumn, orangeColumn } from './columnColors'; export const columnPinningDefault = { left: ['mrt-row-expand', 'sort_order'], @@ -7,4 +7,5 @@ export const columnPinningDefault = { export const columnVisibilityDefault = { 'mrt-row-select': false }; -export const sectionCodeColor = { 1: greenColumn, 3: orangeColumn, 4: blueColumn} +export const sectionCodeColor = { 1: greenColumn, 3: orangeColumn, 4: blueColumn }; +export const SECTION_CODE_COLOR_SHEETS = new Set(['SMETA', 'STRUCTURE']); diff --git a/web/src/components/RealtimeTable/tableColumns.jsx b/web/src/components/RealtimeTable/tableColumns.jsx index 422f202..1c0b987 100644 --- a/web/src/components/RealtimeTable/tableColumns.jsx +++ b/web/src/components/RealtimeTable/tableColumns.jsx @@ -5,7 +5,7 @@ import { useVspOptions } from './contexts/RealtimeContext'; import { ROLES_NAME_ID } from '../../constants/constants'; import { blueColumn } from './constants/columnColors'; -import { sectionCodeColor } from './constants/columnConfig'; +import { SECTION_CODE_COLOR_SHEETS, sectionCodeColor } from './constants/columnConfig'; import VspDropdownEditCell from './Cell/EditCell/VspDropdownEditCell'; @@ -76,8 +76,14 @@ const EditCellPortal = React.memo(({ cell, table, EditCell, onError, isEditable ); }); -function getColorCell(colors, column, row) { +function getColorCell(colors, column, row, sheetName) { const rowType = row?.original?.row_type || row?.row_type; + const configuredColor = colors[column.id]?.color_type?.[rowType]; + + if (!SECTION_CODE_COLOR_SHEETS.has(sheetName)) { + return configuredColor; + } + const sectionCodeValue = row?.original?.data?.section_code ?? row?.original?.data?.header?.section_code; if (sectionCodeValue !== null && sectionCodeValue !== undefined && sectionCodeValue !== '') { @@ -85,7 +91,7 @@ function getColorCell(colors, column, row) { return (sectionCodeColor[sectionCode] || blueColumn)[rowType]; } - return colors[column.id]?.color_type?.[rowType]; + return configuredColor; } const UPPERCASE_MONTH_PATTERN = /ЯНВАРЬ|ФЕВРАЛЬ|МАРТ|АПРЕЛЬ|МАЙ|ИЮНЬ|ИЮЛЬ|АВГУСТ|СЕНТЯБРЬ|ОКТЯБРЬ|НОЯБРЬ|ДЕКАБРЬ/g; @@ -112,6 +118,7 @@ export const getTableColumns = ({ columnsConfig, columnsCurStage, userRoleId, + sheetName, onCellUpdateError, onCellNumberClick, isCellInvalid, @@ -135,7 +142,7 @@ export const getTableColumns = ({ const value = row.getValue(column.id); const isInvalid = isCellInvalid?.(column.id, value, row.original) || false; const isEditableCell = isEditable(row, column); - const backgroundColor = getColorCell(columnColors, column, row); + const backgroundColor = getColorCell(columnColors, column, row, sheetName); if (!cellPropsCache.has(row)) { cellPropsCache.set(row, {}); }