исправила формат для id нуменклатуры в проектах + убрала админа из фильтра

This commit is contained in:
PotapovaA 2026-09-16 11:19:57 +03:00
parent 5effd7b6f4
commit befbc64837
3 changed files with 18 additions and 44 deletions

View File

@ -1,7 +1,6 @@
import React, { useMemo, useCallback } from 'react'; import React, { useMemo, useCallback } from 'react';
import { useCellLock } from '../../contexts/RealtimeContext'; import { useCellLock } from '../../contexts/RealtimeContext';
// Константы вне компонента
const BASE_CELL_STYLES = { const BASE_CELL_STYLES = {
width: '100%', width: '100%',
height: '100%', height: '100%',
@ -65,12 +64,13 @@ const CONTAINER_STYLES = {
wordBreak: 'break-word', wordBreak: 'break-word',
}; };
const INTEGER_COLUMN_IDS = new Set([ const TEXT_COLUMN_IDS = new Set([
'data.header.num_group', 'data.header.num_group',
'data.nomenclature_group_id', 'data.nomenclature_group_id',
'data.header.item_id', 'data.header.item_id',
'data.article_id', 'data.article_id',
'data.code_razdela', 'data.code_razdela',
'data.header.num_group_id',
]); ]);
const getColorBrightness = (hexColor) => { const getColorBrightness = (hexColor) => {
@ -143,11 +143,10 @@ const CellComponent = ({ cell, row, column, onClick, globalFilter, columnFilter,
const isVspDropdown = column?.columnDef?.editType === 'vsp_dropdown'; const isVspDropdown = column?.columnDef?.editType === 'vsp_dropdown';
const nameIndent = column.id === 'data.header.name' ? 8 + row.depth * 16 : 8; const nameIndent = column.id === 'data.header.name' ? 8 + row.depth * 16 : 8;
// Мемоизация значения
const { rawValue, displayValue, isNumeric } = useMemo(() => { const { rawValue, displayValue, isNumeric } = useMemo(() => {
const value = cell.getValue(); const value = cell.getValue();
const isNum = value !== null && value !== undefined && value !== '' && !Number.isNaN(Number(value)); const isNum = value !== null && value !== undefined && value !== '' && !Number.isNaN(Number(value)) && !TEXT_COLUMN_IDS.has(column.id);
let display = String(value || ''); const display = String(value || '');
if (isVspDropdown && value != null) { if (isVspDropdown && value != null) {
const vsp = vspOptions?.find((v) => v.id === Number(value)); const vsp = vspOptions?.find((v) => v.id === Number(value));
@ -155,12 +154,7 @@ const CellComponent = ({ cell, row, column, onClick, globalFilter, columnFilter,
return { rawValue: value, displayValue: vsp.registration_number, isNumeric: false }; return { rawValue: value, displayValue: vsp.registration_number, isNumeric: false };
} }
} }
if (isNum) {
const asInteger = INTEGER_COLUMN_IDS.has(column.id);
display = formatNumber(value, asInteger);
}
return { rawValue: value, displayValue: display, isNumeric: isNum }; return { rawValue: value, displayValue: display, isNumeric: isNum };
}, [cell, column.id, isVspDropdown, vspOptions]); }, [cell, column.id, isVspDropdown, vspOptions]);

View File

@ -1,32 +1,17 @@
export const ROLES_ID_NAME = { const ROLES = [
1: 'admin', { id: 1, name: 'admin', stageRole: 'ADMIN', label: 'Администратор' },
2: 'executor_dfip', { id: 2, name: 'executor_dfip', stageRole: 'DFIP', label: 'Исполнитель ДФИП' },
3: 'executor_rf', { id: 3, name: 'executor_rf', stageRole: 'EXECUTOR_RF', label: 'Исполнитель' },
4: 'executor_durrs' { id: 4, name: 'executor_durrs', stageRole: 'DURRS', label: 'Исполнитель ДУРРС' },
};
export const ROLES_NAME_ID = { admin: 1, executor_dfip: 2, executor_rf: 3, executor_durrs: 4 };
export const ROLES_ID_RUSSIAN_NAME = {
1: 'Администратор',
2: 'Исполнитель ДФИП',
3: 'Исполнитель',
4: 'Исполнитель ДУРРС'
};
export const ROLES_ID_RUSSIAN_NAME_ARRAY = [
{ id: 1, role: 'Администратор' },
{ id: 2, role: 'Исполнитель ДФИП' },
{ id: 3, role: 'Исполнитель' },
{ id: 4, role: 'Исполнитель ДУРРС' },
]; ];
export const STAGE_ROLE_RUSSIAN_NAME = { export const ROLES_ID_NAME = Object.fromEntries(ROLES.map(({ id, name }) => [id, name]));
ADMIN: 'Администратор', export const ROLES_NAME_ID = Object.fromEntries(ROLES.map(({ id, name }) => [name, id]));
DFIP: 'Исполнитель ДФИП', export const ROLES_ID_RUSSIAN_NAME = Object.fromEntries(ROLES.map(({ id, label }) => [id, label]));
EXECUTOR_RF: 'Исполнитель', export const ROLES_ID_RUSSIAN_NAME_ARRAY = ROLES.map(({ id, label }) => ({ id, role: label }));
DURRS: 'Исполнитель ДУРРС', export const STAGE_ROLE_RUSSIAN_NAME = Object.fromEntries(
}; ROLES.filter(({ name }) => name !== 'admin').map(({ stageRole, label }) => [stageRole, label]),
);
export const TYPES_CELLS = { numeric: 'число', text: 'текст' }; export const TYPES_CELLS = { numeric: 'число', text: 'текст' };

View File

@ -122,12 +122,7 @@ export default function PhaseTemplatesTable({
<IconButton <IconButton
onClick={() => onEdit(row.original)} onClick={() => onEdit(row.original)}
aria-label={`Редактировать этап ${row.original.phase_code}`} aria-label={`Редактировать этап ${row.original.phase_code}`}
sx={{ >
margin: '0.25rem',
padding: 0,
width: '1rem',
height: '1rem',
}}>
<EditPenSvg /> <EditPenSvg />
</IconButton> </IconButton>
</Tooltip> </Tooltip>