исправила формат для id нуменклатуры в проектах + убрала админа из фильтра
This commit is contained in:
parent
5effd7b6f4
commit
befbc64837
@ -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]);
|
||||||
|
|
||||||
|
|||||||
@ -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: 'текст' };
|
||||||
|
|
||||||
|
|||||||
@ -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>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user