форма 1

This commit is contained in:
PotapovaA 2026-05-22 17:30:28 +03:00
parent 76ce3702f5
commit a92df7ae14
36 changed files with 28889 additions and 4809 deletions

View File

@ -1,8 +1,11 @@
import api from './client';
import api from "./client";
export const TasksApi = {
getById(taskId) {
return api.get(`/form/${taskId}`).then((r) => r.data);
},
list(params = {}) {
return api.get('/form/', { params }).then((r) => r.data);
return api.get("/form/", { params }).then((r) => r.data);
},
getSheets(taskId) {
return api.get(`/form/${taskId}/sheets`).then((r) => r.data);
@ -14,7 +17,7 @@ export const TasksApi = {
return api.get(`/tasks/${taskId}/stages`).then((r) => r.data);
},
create(payload) {
return api.put('/tasks/', payload).then((r) => r.data);
return api.put("/tasks/", payload).then((r) => r.data);
},
editTask(taskId, payload = {}) {
return api.patch(`/tasks/${taskId}`, payload).then((r) => r.data);
@ -32,12 +35,12 @@ export const TasksApi = {
},
exportTask(taskId) {
return api.get(`export/task/${taskId}`, {
responseType: 'blob',
responseType: "blob",
});
},
exportTasks(payload) {
return api.post(`export/bulk`, payload, {
responseType: 'blob',
responseType: "blob",
});
},
};

View File

@ -40,7 +40,7 @@ const highlightText = (text, searchQuery) => {
);
};
const Cell = React.memo(({ cell, onClick, globalFilter, color }) => {
const Cell = React.memo(({ cell, onClick, globalFilter, backgroundColor, color }) => {
const cellValue = cell.getValue();
const textValue = String(cellValue || '');
@ -66,7 +66,8 @@ const Cell = React.memo(({ cell, onClick, globalFilter, color }) => {
bottom: 0,
border: '2px solid transparent',
padding: '8px',
backgroundColor: color,
backgroundColor: backgroundColor,
color: color,
}}
onClick={onClick}
>

View File

@ -1,123 +1,7 @@
import { useState, useRef, useEffect } from 'react';
import { Box, Chip, Divider, styled, alpha, Stack } from '@mui/material';
import { Box, Chip, Divider, alpha, Stack } from '@mui/material';
import { StageInfoForTooltip } from '../../../Stages/StageInfoForTooltip';
const TooltipContainer = styled(Box, {
shouldForwardProp: (prop) => prop !== 'left' && prop !== 'translateY',
})(({ theme, left, translateY }) => ({
position: 'absolute',
left: `${left}px`,
transform: `translateY(${translateY}px)`,
top: '3rem',
border: `1px solid ${theme.palette.divider}`,
borderRadius: '1rem',
padding: '1.25rem',
width: '22rem',
boxShadow: theme.shadows[2],
zIndex: theme.zIndex.tooltip,
display: 'flex',
flexDirection: 'column',
gap: '1rem',
background: 'white',
alignContent: 'center',
}));
const SectionTitle = styled(Box)(({ theme }) => ({
color: theme.palette.text.primary,
fontWeight: 600,
fontSize: '0.813rem',
lineHeight: 1.2,
}));
const TypeChip = styled(Chip, {
shouldForwardProp: (prop) => prop !== 'chipType',
})(({ theme, chipType }) => {
const typeColors = {
formula: {
bg: alpha(theme.palette.primary.main, 0.1),
color: theme.palette.primary.main,
border: alpha(theme.palette.primary.main, 0.3),
},
number: {
bg: alpha(theme.palette.success.main, 0.1),
color: theme.palette.success.main,
border: alpha(theme.palette.success.main, 0.3),
},
string: {
bg: alpha(theme.palette.warning.main, 0.1),
color: theme.palette.warning.dark,
border: alpha(theme.palette.warning.main, 0.3),
},
numeric: {
bg: alpha(theme.palette.success.main, 0.1),
color: theme.palette.success.main,
border: alpha(theme.palette.success.main, 0.3),
},
text: {
bg: alpha(theme.palette.warning.main, 0.1),
color: theme.palette.warning.dark,
border: alpha(theme.palette.warning.main, 0.3),
},
default: {
bg: theme.palette.grey[100],
color: theme.palette.grey[700],
border: theme.palette.divider,
},
};
const colors = typeColors[chipType] || typeColors.default;
return {
backgroundColor: colors.bg,
color: colors.color,
border: `1px solid ${colors.border}`,
borderRadius: theme.shape.borderRadius,
height: '1.5rem',
fontSize: '0.688rem',
fontWeight: 500,
'& .MuiChip-label': {
paddingLeft: theme.spacing(0.5),
paddingRight: theme.spacing(0.5),
paddingTop: 0,
paddingBottom: 0,
},
};
});
const StatusChip = styled(Chip, {
shouldForwardProp: (prop) => prop !== 'danger' || prop !== 'warning',
})(({ theme, danger, warning }) => ({
backgroundColor: danger
? alpha(theme.palette.error.main, 0.1)
: warning
? alpha(theme.palette.warning.main, 0.1)
: alpha(theme.palette.success.main, 0.1),
color: danger
? theme.palette.error.main
: warning
? theme.palette.warning.color
: theme.palette.success.main,
border: `1px solid ${
danger
? alpha(theme.palette.error.main, 0.3)
: warning
? alpha(theme.palette.warning.main, 0.3)
: alpha(theme.palette.success.main, 0.3)
}`,
borderRadius: theme.shape.borderRadius,
height: '1.5rem',
fontSize: '0.688rem',
fontWeight: 500,
width: 'max-content',
'& .MuiChip-label': {
paddingLeft: theme.spacing(0.5),
paddingRight: theme.spacing(0.5),
paddingTop: 0,
paddingBottom: 0,
},
}));
export const TooltipBox = ({
left,
translateY,
@ -167,38 +51,160 @@ export const TooltipBox = ({
return typeMap[type] || 'Другое';
};
const getTypeColors = (chipType, theme) => {
const typeColors = {
formula: {
bg: alpha(theme.palette.primary.main, 0.1),
color: theme.palette.primary.main,
border: alpha(theme.palette.primary.main, 0.3),
},
number: {
bg: alpha(theme.palette.success.main, 0.1),
color: theme.palette.success.main,
border: alpha(theme.palette.success.main, 0.3),
},
string: {
bg: alpha(theme.palette.warning.main, 0.1),
color: theme.palette.warning.dark,
border: alpha(theme.palette.warning.main, 0.3),
},
numeric: {
bg: alpha(theme.palette.success.main, 0.1),
color: theme.palette.success.main,
border: alpha(theme.palette.success.main, 0.3),
},
text: {
bg: alpha(theme.palette.warning.main, 0.1),
color: theme.palette.warning.dark,
border: alpha(theme.palette.warning.main, 0.3),
},
default: {
bg: theme.palette.grey[100],
color: theme.palette.grey[700],
border: theme.palette.divider,
},
};
return typeColors[chipType] || typeColors.default;
};
const getStatusColors = (theme, danger, warning) => ({
backgroundColor: danger
? alpha(theme.palette.error.main, 0.1)
: warning
? alpha(theme.palette.warning.main, 0.1)
: alpha(theme.palette.success.main, 0.1),
color: danger
? theme.palette.error.main
: warning
? theme.palette.warning.color
: theme.palette.success.main,
border: `1px solid ${
danger
? alpha(theme.palette.error.main, 0.3)
: warning
? alpha(theme.palette.warning.main, 0.3)
: alpha(theme.palette.success.main, 0.3)
}`,
});
const isBlocked = blocked;
return (
<TooltipContainer
left={left}
translateY={translateY}
<Box
ref={tooltipRef}
sx={{
sx={(theme) => ({
position: 'absolute',
left: `${left}px`,
transform: `translateY(${translateY}px)`,
top: '3rem',
border: `1px solid ${theme.palette.divider}`,
borderRadius: '1rem',
padding: '1.25rem',
width: '22rem',
boxShadow: theme.shadows[2],
zIndex: theme.zIndex.tooltip,
display: 'flex',
flexDirection: 'column',
gap: '1rem',
background: 'white',
alignContent: 'center',
...(flipPosition && {
left: left - width + 110,
}),
}}
})}
>
<Box display="flex" flexDirection="column" gap="0.375rem">
<SectionTitle>Свойства ячейки</SectionTitle>
<Stack direction="row" spacing={0.5} flexWrap="wrap" useFlexGap>
<TypeChip
<Box sx={{ display: 'flex', flexDirection: 'column', gap: '0.375rem' }}>
<Box
sx={(theme) => ({
color: theme.palette.text.primary,
fontWeight: 600,
fontSize: '0.813rem',
lineHeight: 1.2,
})}
>
Свойства ячейки
</Box>
<Stack sx={{ flexDirection: 'row', gap: 0.5, flexWrap: 'wrap' }}>
<Chip
label={getTypeDisplayName(type)}
chipType={type}
size="small"
sx={(theme) => {
const colors = getTypeColors(type, theme);
return {
backgroundColor: colors.bg,
color: colors.color,
border: `1px solid ${colors.border}`,
borderRadius: theme.shape.borderRadius,
height: '1.5rem',
fontSize: '0.688rem',
fontWeight: 500,
'& .MuiChip-label': {
paddingLeft: theme.spacing(0.5),
paddingRight: theme.spacing(0.5),
paddingTop: 0,
paddingBottom: 0,
},
};
}}
/>
<StatusChip
<Chip
label={isBlocked ? 'Заблокирована' : 'Редактируемая'}
danger={isBlocked}
size="small"
sx={(theme) => ({
...getStatusColors(theme, isBlocked, false),
borderRadius: theme.shape.borderRadius,
height: '1.5rem',
fontSize: '0.688rem',
fontWeight: 500,
width: 'max-content',
'& .MuiChip-label': {
paddingLeft: theme.spacing(0.5),
paddingRight: theme.spacing(0.5),
paddingTop: 0,
paddingBottom: 0,
},
})}
/>
</Stack>
{editor && (
<StatusChip
<Chip
label={'Редактируется другим пользователем'}
warning={true}
size="small"
sx={(theme) => ({
...getStatusColors(theme, false, true),
borderRadius: theme.shape.borderRadius,
height: '1.5rem',
fontSize: '0.688rem',
fontWeight: 500,
width: 'max-content',
'& .MuiChip-label': {
paddingLeft: theme.spacing(0.5),
paddingRight: theme.spacing(0.5),
paddingTop: 0,
paddingBottom: 0,
},
})}
/>
)}
</Box>
@ -208,11 +214,12 @@ export const TooltipBox = ({
<>
<Divider sx={{ marginTop: '0 !important' }} />
<Stack
spacing={0.75}
flexDirection={'row'}
flexWrap="wrap"
gap={'.5rem'}
margin="0 !important"
sx={{
flexDirection: 'row',
flexWrap: 'wrap',
gap: '.5rem',
margin: '0 !important',
}}
>
<Box
component="span"
@ -245,6 +252,6 @@ export const TooltipBox = ({
<StageInfoForTooltip stageData={stageData} />
</>
)}
</TooltipContainer>
</Box>
);
};

View File

@ -89,7 +89,7 @@ const RealtimeTable = ({ formType, formId, sheetName }) => {
data,
// data: [],
columnVirtualizerInstanceRef,
enableRowVirtualization: true,
enableRowVirtualization: false,
onColumnSizingChange: setColumnSizing,
onColumnPinningChange: setColumnPinning,
onGlobalFilterChange: setGlobalFilter,

View File

@ -114,10 +114,9 @@ const HeaderCell = ({ header, table, onClick, hightlight, onChangeWidth }) => {
const isPinned = isColumnPin(table, header);
const leftOffset = calculateLeftOffset(table, header);
// Получаем цвет из muiTableHeadCellProps
const customBgColor = column.columnDef?.muiTableHeadCellProps?.sx?.backgroundColor;
const color = column.columnDef?.muiTableHeadCellProps?.sx?.color || '#000000';
// Определяем итоговый цвет: если есть кастомный - используем его, иначе стандартный
const backgroundColor = customBgColor
? customBgColor
: (hightlight ? '#cbccce' : 'rgba(243, 244, 246, 1)');
@ -188,6 +187,7 @@ const HeaderCell = ({ header, table, onClick, hightlight, onChangeWidth }) => {
paddingRight: '0.5rem',
paddingLeft: '0.5rem',
backgroundColor: backgroundColor,
color: color,
}}
>
{header.isPlaceholder ? null : column.columnDef.header}

View File

@ -3,7 +3,6 @@ import {
Box,
Chip,
Divider,
styled,
alpha,
Stack,
Popover,
@ -13,63 +12,6 @@ import {
import { useSharedTableState } from '../../TableContext';
import { StageInfoForTooltip } from '../../../../Stages/StageInfoForTooltip';
const ContentContainer = styled(Box)(({ theme }) => ({
display: 'flex',
flexDirection: 'column',
gap: '1rem',
background: 'white',
borderRadius: '1rem',
padding: '1.25rem',
width: '30rem',
maxWidth: '90vw',
}));
const SectionTitle = styled(Box)(({ theme }) => ({
color: theme.palette.text.primary,
fontWeight: 600,
fontSize: '0.813rem',
lineHeight: 1.2,
}));
const StatusChip = styled(Chip, {
shouldForwardProp: (prop) => prop !== 'isCurrent' && prop !== 'isAdminOnly',
})(({ theme, isAdminOnly }) => ({
backgroundColor: isAdminOnly
? alpha(theme.palette.warning.main, 0.1)
: alpha(theme.palette.info.main, 0.1),
color: isAdminOnly ? theme.palette.warning.main : theme.palette.info.main,
border: `1px solid ${
isAdminOnly
? alpha(theme.palette.warning.main, 0.3)
: alpha(theme.palette.info.main, 0.3)
}`,
borderRadius: '0.5rem',
height: '1.5rem',
fontSize: '0.688rem',
fontWeight: 500,
'& .MuiChip-label': {
paddingLeft: theme.spacing(0.5),
paddingRight: theme.spacing(0.5),
paddingTop: 0,
paddingBottom: 0,
},
}));
const LetterChip = styled(Chip)(({ theme }) => ({
borderRadius: '0.5rem',
height: '1.5rem',
fontSize: '0.688rem',
fontWeight: 500,
background: 'white',
border: `1px solid rgba(0, 0, 0, 0.1)`,
'& .MuiChip-label': {
paddingLeft: theme.spacing(0.5),
paddingRight: theme.spacing(0.5),
paddingTop: 0,
paddingBottom: 0,
},
}));
export const ColumnTooltipBox = ({
anchorEl,
open,
@ -232,25 +174,75 @@ export const ColumnTooltipBox = ({
onMouseEnter={(e) => e.stopPropagation()}
onMouseLeave={onClose}
>
<ContentContainer>
{/* Заголовок и статус */}
<Box display="flex" flexDirection="column" gap="0.375rem">
<SectionTitle variant="subtitle2" fontSize={'1rem !important'}>
Настройки столбца
</SectionTitle>
<Stack
direction="row"
spacing={'0.5rem'}
flexWrap="wrap"
useFlexGap
paddingTop={'.5rem'}
<Box
sx={(theme) => ({
display: 'flex',
flexDirection: 'column',
gap: '1rem',
background: 'white',
borderRadius: '1rem',
padding: '1.25rem',
width: '30rem',
maxWidth: '90vw',
})}
>
<LetterChip label={textCol} />
{/* Заголовок и статус */}
<Box sx={{ display: 'flex', flexDirection: 'column', gap: '0.375rem' }}>
<Box
sx={(theme) => ({
color: theme.palette.text.primary,
fontWeight: 600,
fontSize: '1rem !important',
lineHeight: 1.2,
})}
variant="subtitle2"
>
Настройки столбца
</Box>
<Stack
sx={{
flexDirection: 'row',
gap: '0.5rem',
flexWrap: 'wrap',
paddingTop: '.5rem',
}}
>
<Chip
label={textCol}
sx={(theme) => ({
borderRadius: '0.5rem',
height: '1.5rem',
fontSize: '0.688rem',
fontWeight: 500,
background: 'white',
border: '1px solid rgba(0, 0, 0, 0.1)',
'& .MuiChip-label': {
paddingLeft: theme.spacing(0.5),
paddingRight: theme.spacing(0.5),
paddingTop: 0,
paddingBottom: 0,
},
})}
/>
{colData.is_admin_only && (
<StatusChip
<Chip
label="Только для админов"
isAdminOnly={colData.is_admin_only}
size="small"
sx={(theme) => ({
backgroundColor: alpha(theme.palette.warning.main, 0.1),
color: theme.palette.warning.main,
border: `1px solid ${alpha(theme.palette.warning.main, 0.3)}`,
borderRadius: '0.5rem',
height: '1.5rem',
fontSize: '0.688rem',
fontWeight: 500,
'& .MuiChip-label': {
paddingLeft: theme.spacing(0.5),
paddingRight: theme.spacing(0.5),
paddingTop: 0,
paddingBottom: 0,
},
})}
/>
)}
</Stack>
@ -280,7 +272,7 @@ export const ColumnTooltipBox = ({
инструментов
</Box>
</Box>
</ContentContainer>
</Box>
</Box>
</Popover>
);

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -23,9 +23,9 @@ export const config = {
color_type: whiteColumn,
accessorKey: "obekt_obekt_obekt_neobkhodimo_vybrat_iz_spiska",
},
nomer_dogovora_nomer_dogovora_nomer_dogovora: {
nomer_dogovora_nomer_dogovora_nomer_dogovora_field: {
color_type: whiteColumn,
accessorKey: "nomer_dogovora_nomer_dogovora_nomer_dogovora",
accessorKey: "nomer_dogovora_nomer_dogovora_nomer_dogovora_field",
},
srok_okonchaniya_dogovora_srok_okonchaniya_dogovora_srok_okonchaniya_dogovora_v_formate_mesyatsgod:
{
@ -33,25 +33,25 @@ export const config = {
accessorKey:
"srok_okonchaniya_dogovora_srok_okonchaniya_dogovora_srok_okonchaniya_dogovora_v_formate_mesyatsgod",
},
planiruemaya_summa_raskhodov_na_2026_god_i_kvartal_i_kvartal: {
planiruemaya_summa_raskhodov_na_2026_god_i_kvartal_i_kvartal_field: {
color_type: whiteColumn,
accessorKey:
"planiruemaya_summa_raskhodov_na_2026_god_i_kvartal_i_kvartal",
"planiruemaya_summa_raskhodov_na_2026_god_i_kvartal_i_kvartal_field",
},
planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal_ii_kvartal: {
planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal_ii_kvartal_field: {
color_type: whiteColumn,
accessorKey:
"planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal_ii_kvartal",
"planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal_ii_kvartal_field",
},
planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal_iii_kvartal: {
planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal_iii_kvartal_field: {
color_type: whiteColumn,
accessorKey:
"planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal_iii_kvartal",
"planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal_iii_kvartal_field",
},
planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal_iv_kvartal: {
planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal_iv_kvartal_field: {
color_type: whiteColumn,
accessorKey:
"planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal_iv_kvartal",
"planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal_iv_kvartal_field",
},
kommentariy_kommentariy_kommentariy_kommentariy: {
color_type: whiteColumn,
@ -172,6 +172,12 @@ export const config = {
],
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
{
header: "Адрес объекта *",
@ -194,7 +200,8 @@ export const config = {
filterFn: "contains",
muiTableHeadCellProps: {
sx: {
backgroundColor: "#FFFFFF",
backgroundColor: "#D8D8D8",
color: "#000000",
},
},
},
@ -203,6 +210,12 @@ export const config = {
],
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
{
header: "Объект **",
@ -224,7 +237,8 @@ export const config = {
filterFn: "contains",
muiTableHeadCellProps: {
sx: {
backgroundColor: "#FFFFFF",
backgroundColor: "#D8D8D8",
color: "#000000",
},
},
},
@ -233,10 +247,13 @@ export const config = {
],
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
{
header: " ",
columns: [
{
header: "Номер договора",
accessorKey: "nomer_dogovora",
@ -248,8 +265,19 @@ export const config = {
{
header: "Номер договора",
accessorKey: "nomer_dogovora_nomer_dogovora_nomer_dogovora",
columns: [
{
header: "",
accessorKey:
"nomer_dogovora_nomer_dogovora_nomer_dogovora_field",
size: 150,
filterFn: "contains",
muiTableHeadCellProps: {
sx: {
backgroundColor: "#D8D8D8",
color: "#000000",
},
},
},
],
},
@ -258,7 +286,8 @@ export const config = {
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#f5f5f5",
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
@ -283,7 +312,8 @@ export const config = {
filterFn: "contains",
muiTableHeadCellProps: {
sx: {
backgroundColor: "#FFFFFF",
backgroundColor: "#D8D8D8",
color: "#000000",
},
},
},
@ -292,76 +322,132 @@ export const config = {
],
},
],
},
{
header: " ",
columns: [
{
header: "Планируемая сумма расходов на 2026 год",
accessorKey: "planiruemaya_summa_raskhodov_na_2026_god",
columns: [
{
header: "I квартал",
accessorKey:
"planiruemaya_summa_raskhodov_na_2026_god_i_kvartal",
columns: [
{
header: "I квартал",
accessorKey:
"planiruemaya_summa_raskhodov_na_2026_god_i_kvartal_i_kvartal",
size: 150,
filterFn: "contains",
},
],
},
{
header: "II квартал",
accessorKey:
"planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal",
columns: [
{
header: "II квартал",
accessorKey:
"planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal_ii_kvartal",
size: 150,
filterFn: "contains",
},
],
},
{
header: "III квартал",
accessorKey:
"planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal",
columns: [
{
header: "III квартал",
accessorKey:
"planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal_iii_kvartal",
size: 150,
filterFn: "contains",
},
],
},
{
header: "IV квартал",
accessorKey:
"planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal",
columns: [
{
header: "IV квартал",
accessorKey:
"planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal_iv_kvartal",
size: 150,
filterFn: "contains",
},
],
},
],
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#f5f5f5",
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
{
header: "Планируемая сумма расходов на 2026 год",
accessorKey: "planiruemaya_summa_raskhodov_na_2026_god",
columns: [
{
header: "I квартал",
accessorKey: "planiruemaya_summa_raskhodov_na_2026_god_i_kvartal",
columns: [
{
header: "I квартал",
accessorKey:
"planiruemaya_summa_raskhodov_na_2026_god_i_kvartal_i_kvartal",
columns: [
{
header: "",
accessorKey:
"planiruemaya_summa_raskhodov_na_2026_god_i_kvartal_i_kvartal_field",
size: 150,
filterFn: "contains",
muiTableHeadCellProps: {
sx: {
backgroundColor: "#D8D8D8",
color: "#000000",
},
},
},
],
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
{
header: "II квартал",
accessorKey: "planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal",
columns: [
{
header: "II квартал",
accessorKey:
"planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal_ii_kvartal",
columns: [
{
header: "",
accessorKey:
"planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal_ii_kvartal_field",
size: 150,
filterFn: "contains",
},
],
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
{
header: "III квартал",
accessorKey: "planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal",
columns: [
{
header: "III квартал",
accessorKey:
"planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal_iii_kvartal",
columns: [
{
header: "",
accessorKey:
"planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal_iii_kvartal_field",
size: 150,
filterFn: "contains",
},
],
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
{
header: "IV квартал",
accessorKey: "planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal",
columns: [
{
header: "IV квартал",
accessorKey:
"planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal_iv_kvartal",
columns: [
{
header: "",
accessorKey:
"planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal_iv_kvartal_field",
size: 150,
filterFn: "contains",
},
],
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
@ -389,6 +475,12 @@ export const config = {
],
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
{
header: "Фактические расходы за I кв 2026 года",
@ -411,13 +503,20 @@ export const config = {
filterFn: "contains",
muiTableHeadCellProps: {
sx: {
backgroundColor: "#FFFFFF",
backgroundColor: "#D8D8D8",
color: "#000000",
},
},
},
],
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
{
header: "февраль",
@ -438,6 +537,12 @@ export const config = {
],
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
{
header: "март",
@ -458,6 +563,12 @@ export const config = {
],
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
{
header: "Итог I кв",
@ -478,8 +589,20 @@ export const config = {
],
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
{
header: "Фактические расходы за II кв 2026 года",
@ -502,13 +625,20 @@ export const config = {
filterFn: "contains",
muiTableHeadCellProps: {
sx: {
backgroundColor: "#FFFFFF",
backgroundColor: "#D8D8D8",
color: "#000000",
},
},
},
],
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
{
header: "май",
@ -528,6 +658,12 @@ export const config = {
],
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
{
header: "июнь",
@ -548,6 +684,12 @@ export const config = {
],
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
{
header: "Итог II кв",
@ -568,8 +710,20 @@ export const config = {
],
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
{
header: "Фактические расходы за III кв 2026 года",
@ -592,13 +746,20 @@ export const config = {
filterFn: "contains",
muiTableHeadCellProps: {
sx: {
backgroundColor: "#FFFFFF",
backgroundColor: "#D8D8D8",
color: "#000000",
},
},
},
],
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
{
header: "август",
@ -619,6 +780,12 @@ export const config = {
],
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
{
header: "сентябрь",
@ -639,6 +806,12 @@ export const config = {
],
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
{
header: "Итог III кв",
@ -660,8 +833,20 @@ export const config = {
],
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
{
header: "Фактические расходы за IV кв 2026 года",
@ -684,13 +869,20 @@ export const config = {
filterFn: "contains",
muiTableHeadCellProps: {
sx: {
backgroundColor: "#FFFFFF",
backgroundColor: "#D8D8D8",
color: "#000000",
},
},
},
],
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
{
header: "ноябрь",
@ -711,6 +903,12 @@ export const config = {
],
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
{
header: "декабрь",
@ -731,6 +929,12 @@ export const config = {
],
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
{
header: "СПОД",
@ -751,6 +955,12 @@ export const config = {
],
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
{
header: "Итог IV кв",
@ -771,8 +981,20 @@ export const config = {
],
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
],
},

View File

@ -76,11 +76,16 @@ export const config = {
{
header: "N п/п",
accessorKey: "n_pp_n_pp",
exampleValue: "1",
size: 150,
filterFn: "contains",
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
{
header: "ID статьи / группы номенклатуры",
@ -94,6 +99,12 @@ export const config = {
filterFn: "contains",
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
{
header: "Наименование статей расходов",
@ -103,12 +114,16 @@ export const config = {
header: "Наименование статей расходов",
accessorKey:
"naimenovanie_statey_raskhodov_naimenovanie_statey_raskhodov",
exampleValue:
"Телефонные, почтовые, телеграфные расходы и др. услуги связи",
size: 150,
filterFn: "contains",
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
{
header: "Нормируемая единица",
@ -121,6 +136,12 @@ export const config = {
filterFn: "contains",
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
{
header: "Лимит, в руб.(с учетом НДС)",
@ -133,6 +154,12 @@ export const config = {
filterFn: "contains",
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
{
header: "Лимит, в руб.(без учета НДС)",
@ -145,6 +172,12 @@ export const config = {
filterFn: "contains",
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
{
header: "I квартал 2026 г.",
@ -157,7 +190,8 @@ export const config = {
filterFn: "contains",
muiTableHeadCellProps: {
sx: {
backgroundColor: "#FFFFFF",
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
@ -168,11 +202,18 @@ export const config = {
filterFn: "contains",
muiTableHeadCellProps: {
sx: {
backgroundColor: "#FFFFFF",
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
{
header: "II квартал 2026 г.",
@ -185,7 +226,8 @@ export const config = {
filterFn: "contains",
muiTableHeadCellProps: {
sx: {
backgroundColor: "#FFFFFF",
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
@ -196,11 +238,18 @@ export const config = {
filterFn: "contains",
muiTableHeadCellProps: {
sx: {
backgroundColor: "#FFFFFF",
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
{
header: "III квартал 2026 г.",
@ -213,7 +262,8 @@ export const config = {
filterFn: "contains",
muiTableHeadCellProps: {
sx: {
backgroundColor: "#FFFFFF",
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
@ -224,11 +274,18 @@ export const config = {
filterFn: "contains",
muiTableHeadCellProps: {
sx: {
backgroundColor: "#FFFFFF",
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
{
header: "IV квартал 2026 г.",
@ -241,7 +298,8 @@ export const config = {
filterFn: "contains",
muiTableHeadCellProps: {
sx: {
backgroundColor: "#FFFFFF",
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
@ -252,11 +310,18 @@ export const config = {
filterFn: "contains",
muiTableHeadCellProps: {
sx: {
backgroundColor: "#FFFFFF",
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#A5A5A5",
color: "#000000",
},
},
},
],
},

View File

@ -30,25 +30,25 @@
"color_type":whiteColumn,
"accessorKey":"srok_okonchaniya_dogovora_srok_okonchaniya_dogovora_srok_okonchaniya_dogovora_v_formate_mesyatsgod"
},
"nomer_dogovora_nomer_dogovora_nomer_dogovora":{
"nomer_dogovora_nomer_dogovora_nomer_dogovora_field":{
"color_type":whiteColumn,
"accessorKey":"nomer_dogovora_nomer_dogovora_nomer_dogovora"
"accessorKey":"nomer_dogovora_nomer_dogovora_nomer_dogovora_field"
},
"planiruemaya_summa_raskhodov_na_2026_god_i_kvartal_i_kvartal":{
"planiruemaya_summa_raskhodov_na_2026_god_i_kvartal_i_kvartal_field":{
"color_type":whiteColumn,
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_i_kvartal_i_kvartal"
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_i_kvartal_i_kvartal_field"
},
"planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal_ii_kvartal":{
"planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal_ii_kvartal_field":{
"color_type":whiteColumn,
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal_ii_kvartal"
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal_ii_kvartal_field"
},
"planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal_iii_kvartal":{
"planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal_iii_kvartal_field":{
"color_type":whiteColumn,
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal_iii_kvartal"
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal_iii_kvartal_field"
},
"planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal_iv_kvartal":{
"planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal_iv_kvartal_field":{
"color_type":whiteColumn,
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal_iv_kvartal"
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal_iv_kvartal_field"
},
"kommentariy_kommentariy_kommentariy_kommentariy":{
"color_type":whiteColumn,
@ -146,7 +146,13 @@
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"Адрес арендуемого помещения *",
@ -167,7 +173,8 @@
"filterFn":"contains",
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FFFFFF"
"backgroundColor":"#D8D8D8",
"color":"#000000"
}
}
}
@ -175,7 +182,13 @@
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"Объект **",
@ -196,7 +209,8 @@
"filterFn":"contains",
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FFFFFF"
"backgroundColor":"#D8D8D8",
"color":"#000000"
}
}
}
@ -204,7 +218,13 @@
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"Арендуемая площадь",
@ -225,7 +245,8 @@
"filterFn":"contains",
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FFFFFF"
"backgroundColor":"#D8D8D8",
"color":"#000000"
}
}
}
@ -233,7 +254,13 @@
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"Срок окончания договора",
@ -254,7 +281,8 @@
"filterFn":"contains",
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FFFFFF"
"backgroundColor":"#D8D8D8",
"color":"#000000"
}
}
}
@ -262,11 +290,14 @@
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":" ",
"columns":[
{
"header":"Номер договора",
"accessorKey":"nomer_dogovora",
@ -278,8 +309,18 @@
{
"header":"Номер договора",
"accessorKey":"nomer_dogovora_nomer_dogovora_nomer_dogovora",
"columns":[
{
"header":"",
"accessorKey":"nomer_dogovora_nomer_dogovora_nomer_dogovora_field",
"size":150,
"filterFn":"contains"
"filterFn":"contains",
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#D8D8D8",
"color":"#000000"
}
}
}
]
}
@ -288,13 +329,11 @@
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#f5f5f5"
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":" ",
"columns":[
{
"header":"Планируемая сумма расходов на 2026 год",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god",
@ -306,10 +345,28 @@
{
"header":"I квартал",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_i_kvartal_i_kvartal",
"columns":[
{
"header":"",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_i_kvartal_i_kvartal_field",
"size":150,
"filterFn":"contains"
"filterFn":"contains",
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#D8D8D8",
"color":"#000000"
}
}
}
]
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"II квартал",
@ -318,10 +375,22 @@
{
"header":"II квартал",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal_ii_kvartal",
"columns":[
{
"header":"",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal_ii_kvartal_field",
"size":150,
"filterFn":"contains"
}
]
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"III квартал",
@ -330,10 +399,22 @@
{
"header":"III квартал",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal_iii_kvartal",
"columns":[
{
"header":"",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal_iii_kvartal_field",
"size":150,
"filterFn":"contains"
}
]
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"IV квартал",
@ -342,17 +423,28 @@
{
"header":"IV квартал",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal_iv_kvartal",
"columns":[
{
"header":"",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal_iv_kvartal_field",
"size":150,
"filterFn":"contains"
}
]
}
]
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#f5f5f5"
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
@ -378,7 +470,13 @@
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"Фактические расходы за I кв 2026 года",
@ -399,13 +497,20 @@
"filterFn":"contains",
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FFFFFF"
"backgroundColor":"#D8D8D8",
"color":"#000000"
}
}
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"февраль",
@ -423,7 +528,13 @@
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"март",
@ -441,7 +552,13 @@
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"Итог I кв",
@ -459,9 +576,21 @@
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
]
},
{
"header":"Фактические расходы за II кв 2026 года",
@ -482,13 +611,20 @@
"filterFn":"contains",
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FFFFFF"
"backgroundColor":"#D8D8D8",
"color":"#000000"
}
}
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"май",
@ -506,7 +642,13 @@
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"июнь",
@ -524,7 +666,13 @@
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"Итог II кв",
@ -542,9 +690,21 @@
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
]
},
{
"header":"Фактические расходы за III кв 2026 года",
@ -565,13 +725,20 @@
"filterFn":"contains",
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FFFFFF"
"backgroundColor":"#D8D8D8",
"color":"#000000"
}
}
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"август",
@ -589,7 +756,13 @@
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"сентябрь",
@ -607,7 +780,13 @@
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"Итог III кв",
@ -625,9 +804,21 @@
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
]
},
{
"header":"Фактические расходы за IV кв 2026 года",
@ -648,13 +839,20 @@
"filterFn":"contains",
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FFFFFF"
"backgroundColor":"#D8D8D8",
"color":"#000000"
}
}
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"ноябрь",
@ -672,7 +870,13 @@
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"декабрь",
@ -690,7 +894,13 @@
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"СПОД",
@ -708,7 +918,13 @@
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"Итог IV кв",
@ -726,9 +942,21 @@
}
]
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}
]
}

View File

@ -22,29 +22,29 @@
"color_type":whiteColumn,
"accessorKey":"obekt_obekt_obekt_neobkhodimo_vybrat_iz_spiska"
},
"nomer_dogovora_nomer_dogovora_nomer_dogovora":{
"nomer_dogovora_nomer_dogovora_nomer_dogovora_field":{
"color_type":whiteColumn,
"accessorKey":"nomer_dogovora_nomer_dogovora_nomer_dogovora"
"accessorKey":"nomer_dogovora_nomer_dogovora_nomer_dogovora_field"
},
"srok_okonchaniya_dogovora_srok_okonchaniya_dogovora_srok_okonchaniya_dogovora_v_formate_mesyatsgod":{
"color_type":whiteColumn,
"accessorKey":"srok_okonchaniya_dogovora_srok_okonchaniya_dogovora_srok_okonchaniya_dogovora_v_formate_mesyatsgod"
},
"planiruemaya_summa_raskhodov_na_2026_god_i_kvartal_i_kvartal":{
"planiruemaya_summa_raskhodov_na_2026_god_i_kvartal_i_kvartal_field":{
"color_type":whiteColumn,
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_i_kvartal_i_kvartal"
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_i_kvartal_i_kvartal_field"
},
"planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal_ii_kvartal":{
"planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal_ii_kvartal_field":{
"color_type":whiteColumn,
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal_ii_kvartal"
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal_ii_kvartal_field"
},
"planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal_iii_kvartal":{
"planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal_iii_kvartal_field":{
"color_type":whiteColumn,
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal_iii_kvartal"
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal_iii_kvartal_field"
},
"planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal_iv_kvartal":{
"planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal_iv_kvartal_field":{
"color_type":whiteColumn,
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal_iv_kvartal"
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal_iv_kvartal_field"
},
"kommentariy_kommentariy_kommentariy_kommentariy":{
"color_type":whiteColumn,
@ -142,7 +142,13 @@
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"Адрес охраняемого объекта *",
@ -163,7 +169,8 @@
"filterFn":"contains",
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FFFFFF"
"backgroundColor":"#D8D8D8",
"color":"#000000"
}
}
}
@ -171,7 +178,13 @@
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"Объект **",
@ -192,7 +205,8 @@
"filterFn":"contains",
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FFFFFF"
"backgroundColor":"#D8D8D8",
"color":"#000000"
}
}
}
@ -200,11 +214,14 @@
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":" ",
"columns":[
{
"header":"Номер договора",
"accessorKey":"nomer_dogovora",
@ -216,8 +233,18 @@
{
"header":"Номер договора",
"accessorKey":"nomer_dogovora_nomer_dogovora_nomer_dogovora",
"columns":[
{
"header":"",
"accessorKey":"nomer_dogovora_nomer_dogovora_nomer_dogovora_field",
"size":150,
"filterFn":"contains"
"filterFn":"contains",
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#D8D8D8",
"color":"#000000"
}
}
}
]
}
@ -226,7 +253,8 @@
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#f5f5f5"
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
@ -249,7 +277,8 @@
"filterFn":"contains",
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FFFFFF"
"backgroundColor":"#D8D8D8",
"color":"#000000"
}
}
}
@ -257,11 +286,14 @@
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":" ",
"columns":[
{
"header":"Планируемая сумма расходов на 2026 год",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god",
@ -273,10 +305,28 @@
{
"header":"I квартал",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_i_kvartal_i_kvartal",
"columns":[
{
"header":"",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_i_kvartal_i_kvartal_field",
"size":150,
"filterFn":"contains"
"filterFn":"contains",
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#D8D8D8",
"color":"#000000"
}
}
}
]
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"II квартал",
@ -285,10 +335,22 @@
{
"header":"II квартал",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal_ii_kvartal",
"columns":[
{
"header":"",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_ii_kvartal_ii_kvartal_field",
"size":150,
"filterFn":"contains"
}
]
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"III квартал",
@ -297,10 +359,22 @@
{
"header":"III квартал",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal_iii_kvartal",
"columns":[
{
"header":"",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_iii_kvartal_iii_kvartal_field",
"size":150,
"filterFn":"contains"
}
]
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"IV квартал",
@ -309,17 +383,28 @@
{
"header":"IV квартал",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal_iv_kvartal",
"columns":[
{
"header":"",
"accessorKey":"planiruemaya_summa_raskhodov_na_2026_god_iv_kvartal_iv_kvartal_field",
"size":150,
"filterFn":"contains"
}
]
}
]
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#f5f5f5"
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
@ -345,7 +430,13 @@
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"Фактические расходы за I кв 2026 года",
@ -366,13 +457,20 @@
"filterFn":"contains",
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FFFFFF"
"backgroundColor":"#D8D8D8",
"color":"#000000"
}
}
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"февраль",
@ -390,7 +488,13 @@
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"март",
@ -408,7 +512,13 @@
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"Итог I кв",
@ -426,9 +536,21 @@
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
]
},
{
"header":"Фактические расходы за II кв 2026 года",
@ -449,13 +571,20 @@
"filterFn":"contains",
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FFFFFF"
"backgroundColor":"#D8D8D8",
"color":"#000000"
}
}
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"май",
@ -473,7 +602,13 @@
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"июнь",
@ -491,7 +626,13 @@
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"Итог II кв",
@ -509,9 +650,21 @@
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
]
},
{
"header":"Фактические расходы за III кв 2026 года",
@ -532,13 +685,20 @@
"filterFn":"contains",
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FFFFFF"
"backgroundColor":"#D8D8D8",
"color":"#000000"
}
}
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"август",
@ -556,7 +716,13 @@
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"сентябрь",
@ -574,7 +740,13 @@
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"Итог III кв",
@ -592,9 +764,21 @@
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
]
},
{
"header":"Фактические расходы за IV кв 2026 года",
@ -615,13 +799,20 @@
"filterFn":"contains",
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FFFFFF"
"backgroundColor":"#D8D8D8",
"color":"#000000"
}
}
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"ноябрь",
@ -639,7 +830,13 @@
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"декабрь",
@ -657,7 +854,13 @@
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"СПОД",
@ -675,7 +878,13 @@
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
},
{
"header":"Итог IV кв",
@ -693,9 +902,21 @@
}
]
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#A5A5A5",
"color":"#000000"
}
}
}
]
}

View File

@ -1,514 +0,0 @@
import {
greenColumn,
whiteColumn,
orangeColumn,
yellowColumn,
redColumn,
blueColumn,
} from "../columnColors";
export const config = {
config: {
colors: {
pp_pp_pp: {
color_type: whiteColumn,
accessorKey: "pp_pp_pp",
},
perechen_raskhodov_i_zatrat_perechen_raskhodov_i_zatrat_perechen_raskhodov_i_zatrat:
{
color_type: whiteColumn,
accessorKey:
"perechen_raskhodov_i_zatrat_perechen_raskhodov_i_zatrat_perechen_raskhodov_i_zatrat",
},
raskhody_planiruemye_rf_na_2026_god_i_kvartal_i_kvartal: {
color_type: whiteColumn,
accessorKey: "raskhody_planiruemye_rf_na_2026_god_i_kvartal_i_kvartal",
},
raskhody_planiruemye_rf_na_2026_god_ii_kvartal_ii_kvartal: {
color_type: whiteColumn,
accessorKey:
"raskhody_planiruemye_rf_na_2026_god_ii_kvartal_ii_kvartal",
},
raskhody_planiruemye_rf_na_2026_god_iii_kvartal_iii_kvartal: {
color_type: whiteColumn,
accessorKey:
"raskhody_planiruemye_rf_na_2026_god_iii_kvartal_iii_kvartal",
},
raskhody_planiruemye_rf_na_2026_god_iv_kvartal_iv_kvartal: {
color_type: whiteColumn,
accessorKey:
"raskhody_planiruemye_rf_na_2026_god_iv_kvartal_iv_kvartal",
},
v_tys_rubley_raskhody_planiruemye_rf_na_2026_god_itogopodderzhka_itogopodderzhka:
{
color_type: whiteColumn,
accessorKey:
"v_tys_rubley_raskhody_planiruemye_rf_na_2026_god_itogopodderzhka_itogopodderzhka",
},
v_tys_rubley_utverzhdennye_bazovye_raskhody_na_2026_god_itogopodderzhka_itogopodderzhka:
{
color_type: whiteColumn,
accessorKey:
"v_tys_rubley_utverzhdennye_bazovye_raskhody_na_2026_god_itogopodderzhka_itogopodderzhka",
},
v_tys_rubley_fakticheskie_raskhody_za_2026_god_itogopodderzhka_itogopodderzhka:
{
color_type: whiteColumn,
accessorKey:
"v_tys_rubley_fakticheskie_raskhody_za_2026_god_itogopodderzhka_itogopodderzhka",
},
v_tys_rubley_skorrektirovannaya_smeta_raskhodov_na_2026_god_iv_kvartal_iv_kvartal:
{
color_type: whiteColumn,
accessorKey:
"v_tys_rubley_skorrektirovannaya_smeta_raskhodov_na_2026_god_iv_kvartal_iv_kvartal",
},
utverzhdennye_bazovye_raskhody_na_2026_god_i_kvartal_i_kvartal: {
color_type: whiteColumn,
accessorKey:
"utverzhdennye_bazovye_raskhody_na_2026_god_i_kvartal_i_kvartal",
},
utverzhdennye_bazovye_raskhody_na_2026_god_ii_kvartal_ii_kvartal: {
color_type: whiteColumn,
accessorKey:
"utverzhdennye_bazovye_raskhody_na_2026_god_ii_kvartal_ii_kvartal",
},
utverzhdennye_bazovye_raskhody_na_2026_god_iii_kvartal_iii_kvartal: {
color_type: whiteColumn,
accessorKey:
"utverzhdennye_bazovye_raskhody_na_2026_god_iii_kvartal_iii_kvartal",
},
utverzhdennye_bazovye_raskhody_na_2026_god_iv_kvartal_iv_kvartal: {
color_type: whiteColumn,
accessorKey:
"utverzhdennye_bazovye_raskhody_na_2026_god_iv_kvartal_iv_kvartal",
},
fakticheskie_raskhody_za_2026_god_i_kvartal_i_kvartal: {
color_type: whiteColumn,
accessorKey: "fakticheskie_raskhody_za_2026_god_i_kvartal_i_kvartal",
},
fakticheskie_raskhody_za_2026_god_ii_kvartal_ii_kvartal: {
color_type: whiteColumn,
accessorKey: "fakticheskie_raskhody_za_2026_god_ii_kvartal_ii_kvartal",
},
fakticheskie_raskhody_za_2026_god_iii_kvartal_iii_kvartal: {
color_type: whiteColumn,
accessorKey:
"fakticheskie_raskhody_za_2026_god_iii_kvartal_iii_kvartal",
},
fakticheskie_raskhody_za_2026_god_iv_kvartal_iv_kvartal: {
color_type: whiteColumn,
accessorKey: "fakticheskie_raskhody_za_2026_god_iv_kvartal_iv_kvartal",
},
skorrektirovannaya_smeta_raskhodov_na_2026_god_ii_kvartal_ii_kvartal: {
color_type: whiteColumn,
accessorKey:
"skorrektirovannaya_smeta_raskhodov_na_2026_god_ii_kvartal_ii_kvartal",
},
skorrektirovannaya_smeta_raskhodov_na_2026_god_iii_kvartal_iii_kvartal: {
color_type: whiteColumn,
accessorKey:
"skorrektirovannaya_smeta_raskhodov_na_2026_god_iii_kvartal_iii_kvartal",
},
},
columns: [
{
header: " ",
columns: [
{
header: "№ п/п",
accessorKey: "pp",
columns: [
{
header: "№ п/п",
accessorKey: "pp_pp",
columns: [
{
header: "№ п/п",
accessorKey: "pp_pp_pp",
size: 150,
filterFn: "contains",
},
],
},
],
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#f5f5f5",
},
},
},
{
header: " ",
columns: [
{
header: "Перечень расходов и затрат",
accessorKey: "perechen_raskhodov_i_zatrat",
columns: [
{
header: "Перечень расходов и затрат",
accessorKey:
"perechen_raskhodov_i_zatrat_perechen_raskhodov_i_zatrat",
columns: [
{
header: "Перечень расходов и затрат",
accessorKey:
"perechen_raskhodov_i_zatrat_perechen_raskhodov_i_zatrat_perechen_raskhodov_i_zatrat",
size: 150,
filterFn: "contains",
},
],
},
],
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#f5f5f5",
},
},
},
{
header: " ",
columns: [
{
header: "Расходы, планируемые РФ на 2026 год",
accessorKey: "raskhody_planiruemye_rf_na_2026_god",
columns: [
{
header: "I квартал",
accessorKey: "raskhody_planiruemye_rf_na_2026_god_i_kvartal",
columns: [
{
header: "I квартал",
accessorKey:
"raskhody_planiruemye_rf_na_2026_god_i_kvartal_i_kvartal",
size: 150,
filterFn: "contains",
},
],
},
{
header: "II квартал",
accessorKey: "raskhody_planiruemye_rf_na_2026_god_ii_kvartal",
columns: [
{
header: "II квартал",
accessorKey:
"raskhody_planiruemye_rf_na_2026_god_ii_kvartal_ii_kvartal",
size: 150,
filterFn: "contains",
},
],
},
{
header: "III квартал",
accessorKey: "raskhody_planiruemye_rf_na_2026_god_iii_kvartal",
columns: [
{
header: "III квартал",
accessorKey:
"raskhody_planiruemye_rf_na_2026_god_iii_kvartal_iii_kvartal",
size: 150,
filterFn: "contains",
},
],
},
{
header: "IV квартал",
accessorKey: "raskhody_planiruemye_rf_na_2026_god_iv_kvartal",
columns: [
{
header: "IV квартал",
accessorKey:
"raskhody_planiruemye_rf_na_2026_god_iv_kvartal_iv_kvartal",
size: 150,
filterFn: "contains",
},
],
},
],
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#f5f5f5",
},
},
},
{
header: "в тыс. рублей",
accessorKey: "v_tys_rubley",
columns: [
{
header: "Расходы, планируемые РФ на 2026 год",
accessorKey: "v_tys_rubley_raskhody_planiruemye_rf_na_2026_god",
columns: [
{
header: "ИТОГОПоддержка",
accessorKey:
"v_tys_rubley_raskhody_planiruemye_rf_na_2026_god_itogopodderzhka",
columns: [
{
header: "ИТОГОПоддержка",
accessorKey:
"v_tys_rubley_raskhody_planiruemye_rf_na_2026_god_itogopodderzhka_itogopodderzhka",
size: 150,
filterFn: "contains",
},
],
},
],
},
{
header: "Утвержденные базовые расходы на 2026 год",
accessorKey:
"v_tys_rubley_utverzhdennye_bazovye_raskhody_na_2026_god",
columns: [
{
header: "ИТОГОПоддержка",
accessorKey:
"v_tys_rubley_utverzhdennye_bazovye_raskhody_na_2026_god_itogopodderzhka",
columns: [
{
header: "ИТОГОПоддержка",
accessorKey:
"v_tys_rubley_utverzhdennye_bazovye_raskhody_na_2026_god_itogopodderzhka_itogopodderzhka",
size: 150,
filterFn: "contains",
},
],
},
],
},
{
header: "Фактические расходы за 2026 год",
accessorKey: "v_tys_rubley_fakticheskie_raskhody_za_2026_god",
columns: [
{
header: "ИТОГОПоддержка",
accessorKey:
"v_tys_rubley_fakticheskie_raskhody_za_2026_god_itogopodderzhka",
columns: [
{
header: "ИТОГОПоддержка",
accessorKey:
"v_tys_rubley_fakticheskie_raskhody_za_2026_god_itogopodderzhka_itogopodderzhka",
size: 150,
filterFn: "contains",
},
],
},
],
},
{
header: "Скорректированная смета расходов на 2026 год",
accessorKey:
"v_tys_rubley_skorrektirovannaya_smeta_raskhodov_na_2026_god",
columns: [
{
header: "IV квартал",
accessorKey:
"v_tys_rubley_skorrektirovannaya_smeta_raskhodov_na_2026_god_iv_kvartal",
columns: [
{
header: "IV квартал",
accessorKey:
"v_tys_rubley_skorrektirovannaya_smeta_raskhodov_na_2026_god_iv_kvartal_iv_kvartal",
size: 150,
filterFn: "contains",
},
],
},
],
},
],
},
{
header: " ",
columns: [
{
header: "Утвержденные базовые расходы на 2026 год",
accessorKey: "utverzhdennye_bazovye_raskhody_na_2026_god",
columns: [
{
header: "I квартал",
accessorKey:
"utverzhdennye_bazovye_raskhody_na_2026_god_i_kvartal",
columns: [
{
header: "I квартал",
accessorKey:
"utverzhdennye_bazovye_raskhody_na_2026_god_i_kvartal_i_kvartal",
size: 150,
filterFn: "contains",
},
],
},
{
header: "II квартал",
accessorKey:
"utverzhdennye_bazovye_raskhody_na_2026_god_ii_kvartal",
columns: [
{
header: "II квартал",
accessorKey:
"utverzhdennye_bazovye_raskhody_na_2026_god_ii_kvartal_ii_kvartal",
size: 150,
filterFn: "contains",
},
],
},
{
header: "III квартал",
accessorKey:
"utverzhdennye_bazovye_raskhody_na_2026_god_iii_kvartal",
columns: [
{
header: "III квартал",
accessorKey:
"utverzhdennye_bazovye_raskhody_na_2026_god_iii_kvartal_iii_kvartal",
size: 150,
filterFn: "contains",
},
],
},
{
header: "IV квартал",
accessorKey:
"utverzhdennye_bazovye_raskhody_na_2026_god_iv_kvartal",
columns: [
{
header: "IV квартал",
accessorKey:
"utverzhdennye_bazovye_raskhody_na_2026_god_iv_kvartal_iv_kvartal",
size: 150,
filterFn: "contains",
},
],
},
],
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#f5f5f5",
},
},
},
{
header: " ",
columns: [
{
header: "Фактические расходы за 2026 год",
accessorKey: "fakticheskie_raskhody_za_2026_god",
columns: [
{
header: "I квартал",
accessorKey: "fakticheskie_raskhody_za_2026_god_i_kvartal",
columns: [
{
header: "I квартал",
accessorKey:
"fakticheskie_raskhody_za_2026_god_i_kvartal_i_kvartal",
size: 150,
filterFn: "contains",
},
],
},
{
header: "II квартал",
accessorKey: "fakticheskie_raskhody_za_2026_god_ii_kvartal",
columns: [
{
header: "II квартал",
accessorKey:
"fakticheskie_raskhody_za_2026_god_ii_kvartal_ii_kvartal",
size: 150,
filterFn: "contains",
},
],
},
{
header: "III квартал",
accessorKey: "fakticheskie_raskhody_za_2026_god_iii_kvartal",
columns: [
{
header: "III квартал",
accessorKey:
"fakticheskie_raskhody_za_2026_god_iii_kvartal_iii_kvartal",
size: 150,
filterFn: "contains",
},
],
},
{
header: "IV квартал",
accessorKey: "fakticheskie_raskhody_za_2026_god_iv_kvartal",
columns: [
{
header: "IV квартал",
accessorKey:
"fakticheskie_raskhody_za_2026_god_iv_kvartal_iv_kvartal",
size: 150,
filterFn: "contains",
},
],
},
],
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#f5f5f5",
},
},
},
{
header: " ",
columns: [
{
header: "Скорректированная смета расходов на 2026 год",
accessorKey: "skorrektirovannaya_smeta_raskhodov_na_2026_god",
columns: [
{
header: "II квартал",
accessorKey:
"skorrektirovannaya_smeta_raskhodov_na_2026_god_ii_kvartal",
columns: [
{
header: "II квартал",
accessorKey:
"skorrektirovannaya_smeta_raskhodov_na_2026_god_ii_kvartal_ii_kvartal",
size: 150,
filterFn: "contains",
},
],
},
{
header: "III квартал",
accessorKey:
"skorrektirovannaya_smeta_raskhodov_na_2026_god_iii_kvartal",
columns: [
{
header: "III квартал",
accessorKey:
"skorrektirovannaya_smeta_raskhodov_na_2026_god_iii_kvartal_iii_kvartal",
size: 150,
filterFn: "contains",
},
],
},
],
},
],
muiTableHeadCellProps: {
sx: {
backgroundColor: "#f5f5f5",
},
},
},
],
},
};

View File

@ -10,9 +10,9 @@
export const config = {
"config":{
"colors":{
"eslilevsimvb1713b17eslid170stsepitc17_d17c17":{
"field_eslilevsimvb1713b17eslid170stsepitc17_d17c17_field":{
"color_type":whiteColumn,
"accessorKey":"eslilevsimvb1713b17eslid170stsepitc17_d17c17"
"accessorKey":"field_eslilevsimvb1713b17eslid170stsepitc17_d17c17_field"
},
"kod_razdela_kod_razdela_kod_razdela":{
"color_type":whiteColumn,
@ -31,112 +31,92 @@
"accessorKey":"naimenovanie_oborudovaniya_naimenovanie_oborudovaniya_naimenovanie_oborudovaniya"
},
"60401_60404_vkhodyaschiy_ostatok_kol_vo_sht":{
"color_type":whiteColumn,
"color_type":orangeColumn,
"accessorKey":"60401_60404_vkhodyaschiy_ostatok_kol_vo_sht"
},
"60401_60404_vkhodyaschiy_ostatok_summa_tys_rub":{
"color_type":whiteColumn,
"color_type":orangeColumn,
"accessorKey":"60401_60404_vkhodyaschiy_ostatok_summa_tys_rub"
},
"60401_60404_fakticheski_priobreteno_v_otchetnom_mesyatse_kol_vo_sht":{
"color_type":whiteColumn,
"color_type":orangeColumn,
"accessorKey":"60401_60404_fakticheski_priobreteno_v_otchetnom_mesyatse_kol_vo_sht"
},
"60401_60404_fakticheski_priobreteno_v_otchetnom_mesyatse_summa_tys_rub":{
"color_type":whiteColumn,
"color_type":orangeColumn,
"accessorKey":"60401_60404_fakticheski_priobreteno_v_otchetnom_mesyatse_summa_tys_rub"
},
"60401_60404_vybytie_v_otchetnom_mesyatse_kol_vo_sht":{
"color_type":whiteColumn,
"color_type":orangeColumn,
"accessorKey":"60401_60404_vybytie_v_otchetnom_mesyatse_kol_vo_sht"
},
"60401_60404_vybytie_v_otchetnom_mesyatse_summa_tys_rub":{
"color_type":whiteColumn,
"color_type":orangeColumn,
"accessorKey":"60401_60404_vybytie_v_otchetnom_mesyatse_summa_tys_rub"
},
"60415_vkhodyaschiy_ostatok_kol_vo_sht":{
"color_type":whiteColumn,
"color_type":orangeColumn,
"accessorKey":"60415_vkhodyaschiy_ostatok_kol_vo_sht"
},
"60415_vkhodyaschiy_ostatok_summa_tys_rub":{
"color_type":whiteColumn,
"color_type":orangeColumn,
"accessorKey":"60415_vkhodyaschiy_ostatok_summa_tys_rub"
},
"60415_fakticheski_priobreteno_v_otchetnom_mesyatse_kol_vo_sht":{
"color_type":whiteColumn,
"color_type":orangeColumn,
"accessorKey":"60415_fakticheski_priobreteno_v_otchetnom_mesyatse_kol_vo_sht"
},
"60415_fakticheski_priobreteno_v_otchetnom_mesyatse_summa_tys_rub":{
"color_type":whiteColumn,
"color_type":orangeColumn,
"accessorKey":"60415_fakticheski_priobreteno_v_otchetnom_mesyatse_summa_tys_rub"
},
"60415_pereneseno_na_bschet_604_kol_vo_sht":{
"color_type":whiteColumn,
"color_type":orangeColumn,
"accessorKey":"60415_pereneseno_na_bschet_604_kol_vo_sht"
},
"60415_pereneseno_na_bschet_604_summa_tys_rub":{
"color_type":whiteColumn,
"color_type":orangeColumn,
"accessorKey":"60415_pereneseno_na_bschet_604_summa_tys_rub"
},
"itogo_fakticheski_priobreteno_v_otchetnom_mesyatse_tys_rub":{
"color_type":whiteColumn,
"color_type":orangeColumn,
"accessorKey":"itogo_fakticheski_priobreteno_v_otchetnom_mesyatse_tys_rub"
},
"itogo_sredstva_tolko_po_balansuiz_go_so_znakom_tys_rub":{
"color_type":whiteColumn,
"color_type":orangeColumn,
"accessorKey":"itogo_sredstva_tolko_po_balansuiz_go_so_znakom_tys_rub"
},
"itogo_vybytie_v_otchetnom_mesyatse_tys_rub":{
"color_type":whiteColumn,
"color_type":orangeColumn,
"accessorKey":"itogo_vybytie_v_otchetnom_mesyatse_tys_rub"
},
"itogo_osnovnye_sredstva_na_balanse_na_otchetnuyu_datu_itogo_osnovnye_sredstva_na_balanse_na_otchetnuyu_datu_kol_vo_sht":{
"color_type":whiteColumn,
"color_type":orangeColumn,
"accessorKey":"itogo_osnovnye_sredstva_na_balanse_na_otchetnuyu_datu_itogo_osnovnye_sredstva_na_balanse_na_otchetnuyu_datu_kol_vo_sht"
},
"itogo_osnovnye_sredstva_na_balanse_na_otchetnuyu_datu_itogo_osnovnye_sredstva_na_balanse_na_otchetnuyu_datu_summa_tys_rub":{
"color_type":whiteColumn,
"color_type":orangeColumn,
"accessorKey":"itogo_osnovnye_sredstva_na_balanse_na_otchetnuyu_datu_itogo_osnovnye_sredstva_na_balanse_na_otchetnuyu_datu_summa_tys_rub"
}
},
"columns":[
{
"header":"",
"columns":[
{
"header":" ",
"accessorKey":"field",
"columns":[
{
"header":"=ЕСЛИ(ЛЕВСИМВ(B17;1)="3";B17;ЕСЛИ(D17<>0;СЦЕПИТЬ(C17;"_";D17);C17))",
"accessorKey":"eslilevsimvb1713b17eslid170stsepitc17_d17c17",
"exampleValue":"3.00.",
"accessorKey":"field_eslilevsimvb1713b17eslid170stsepitc17_d17c17",
"columns":[
{
"header":"",
"accessorKey":"field_eslilevsimvb1713b17eslid170stsepitc17_d17c17_field",
"size":150,
"filterFn":"contains",
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FFFFFF"
}
}
}
],
"exampleValue":"3.00.",
"size":150,
"filterFn":"contains",
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#f5f5f5"
}
}
}
],
"exampleValue":"3.00.",
"size":150,
"filterFn":"contains",
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#f5f5f5"
"filterFn":"contains"
}
]
}
]
},
{
"header":"Код раздела",
@ -149,13 +129,18 @@
{
"header":"Код раздела",
"accessorKey":"kod_razdela_kod_razdela_kod_razdela",
"exampleValue":"3.00.",
"size":150,
"filterFn":"contains"
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
},
{
"header":"ID статьи",
@ -173,7 +158,13 @@
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
},
{
"header":"ID группы номенклатуры",
@ -191,7 +182,13 @@
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
},
{
"header":"Наименование оборудования",
@ -204,13 +201,18 @@
{
"header":"Наименование оборудования",
"accessorKey":"naimenovanie_oborudovaniya_naimenovanie_oborudovaniya_naimenovanie_oborudovaniya",
"exampleValue":"Затраты капитального характера (капитальные вложения) ",
"size":150,
"filterFn":"contains"
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
},
{
"header":"60401, 60404",
@ -227,7 +229,8 @@
"filterFn":"contains",
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FFFFFF"
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
},
@ -238,11 +241,18 @@
"filterFn":"contains",
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FFFFFF"
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
},
{
"header":"фактически приобретено в отчетном месяце",
@ -255,7 +265,8 @@
"filterFn":"contains",
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FFFFFF"
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
},
@ -266,11 +277,18 @@
"filterFn":"contains",
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FFFFFF"
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
},
{
"header":"Выбытие в отчетном месяце",
@ -283,7 +301,8 @@
"filterFn":"contains",
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FFFFFF"
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
},
@ -294,13 +313,26 @@
"filterFn":"contains",
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FFFFFF"
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
]
},
{
"header":"60415*",
@ -317,7 +349,8 @@
"filterFn":"contains",
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FFFFFF"
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
},
@ -328,11 +361,18 @@
"filterFn":"contains",
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FFFFFF"
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
},
{
"header":"фактически приобретено в отчетном месяце",
@ -345,7 +385,8 @@
"filterFn":"contains",
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FFFFFF"
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
},
@ -356,11 +397,18 @@
"filterFn":"contains",
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FFFFFF"
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
},
{
"header":"Перенесено на б/счет 604",
@ -373,7 +421,8 @@
"filterFn":"contains",
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FFFFFF"
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
},
@ -384,13 +433,26 @@
"filterFn":"contains",
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FFFFFF"
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
]
},
{
"header":"ИТОГО",
@ -407,11 +469,18 @@
"filterFn":"contains",
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FFFFFF"
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
},
{
"header":"средства только по балансу(из ГО) со знаком " - "",
@ -424,11 +493,18 @@
"filterFn":"contains",
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FFFFFF"
"backgroundColor":"#FFFFFF",
"color":"#000000"
}
}
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FFFFFF",
"color":"#000000"
}
}
},
{
"header":"Выбытие в отчетном месяце",
@ -441,13 +517,26 @@
"filterFn":"contains",
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FFFFFF"
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
]
},
{
"header":"ИТОГО основные средства на балансе на отчетную дату",
@ -464,7 +553,8 @@
"filterFn":"contains",
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FFFFFF"
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
},
@ -475,13 +565,20 @@
"filterFn":"contains",
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FFFFFF"
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
}
]
}
]
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FABF8F",
"color":"#000000"
}
}
}
]
}

View File

@ -0,0 +1,565 @@
import {
greenColumn,
whiteColumn,
orangeColumn,
yellowColumn,
redColumn,
blueColumn,
} from '../columnColors';
export const config = {
"config":{
"colors":{
"field_pp_pp_pp":{
"color_type":whiteColumn,
"accessorKey":"field_pp_pp_pp"
},
"field_perechen_raskhodov_i_zatrat_perechen_raskhodov_i_zatrat_perechen_raskhodov_i_zatrat":{
"color_type":whiteColumn,
"accessorKey":"field_perechen_raskhodov_i_zatrat_perechen_raskhodov_i_zatrat_perechen_raskhodov_i_zatrat"
},
"field_raskhody_planiruemye_rf_na_2026_god_i_kvartal_i_kvartal":{
"color_type":whiteColumn,
"accessorKey":"field_raskhody_planiruemye_rf_na_2026_god_i_kvartal_i_kvartal"
},
"field_raskhody_planiruemye_rf_na_2026_god_ii_kvartal_ii_kvartal":{
"color_type":whiteColumn,
"accessorKey":"field_raskhody_planiruemye_rf_na_2026_god_ii_kvartal_ii_kvartal"
},
"field_raskhody_planiruemye_rf_na_2026_god_iii_kvartal_iii_kvartal":{
"color_type":whiteColumn,
"accessorKey":"field_raskhody_planiruemye_rf_na_2026_god_iii_kvartal_iii_kvartal"
},
"field_raskhody_planiruemye_rf_na_2026_god_iv_kvartal_iv_kvartal":{
"color_type":whiteColumn,
"accessorKey":"field_raskhody_planiruemye_rf_na_2026_god_iv_kvartal_iv_kvartal"
},
"field_utverzhdennye_bazovye_raskhody_na_2026_god_i_kvartal_i_kvartal":{
"color_type":whiteColumn,
"accessorKey":"field_utverzhdennye_bazovye_raskhody_na_2026_god_i_kvartal_i_kvartal"
},
"field_utverzhdennye_bazovye_raskhody_na_2026_god_ii_kvartal_ii_kvartal":{
"color_type":whiteColumn,
"accessorKey":"field_utverzhdennye_bazovye_raskhody_na_2026_god_ii_kvartal_ii_kvartal"
},
"field_utverzhdennye_bazovye_raskhody_na_2026_god_iii_kvartal_iii_kvartal":{
"color_type":whiteColumn,
"accessorKey":"field_utverzhdennye_bazovye_raskhody_na_2026_god_iii_kvartal_iii_kvartal"
},
"field_utverzhdennye_bazovye_raskhody_na_2026_god_iv_kvartal_iv_kvartal":{
"color_type":whiteColumn,
"accessorKey":"field_utverzhdennye_bazovye_raskhody_na_2026_god_iv_kvartal_iv_kvartal"
},
"field_fakticheskie_raskhody_za_2026_god_i_kvartal_i_kvartal":{
"color_type":whiteColumn,
"accessorKey":"field_fakticheskie_raskhody_za_2026_god_i_kvartal_i_kvartal"
},
"field_fakticheskie_raskhody_za_2026_god_ii_kvartal_ii_kvartal":{
"color_type":whiteColumn,
"accessorKey":"field_fakticheskie_raskhody_za_2026_god_ii_kvartal_ii_kvartal"
},
"field_fakticheskie_raskhody_za_2026_god_iii_kvartal_iii_kvartal":{
"color_type":whiteColumn,
"accessorKey":"field_fakticheskie_raskhody_za_2026_god_iii_kvartal_iii_kvartal"
},
"field_fakticheskie_raskhody_za_2026_god_iv_kvartal_iv_kvartal":{
"color_type":whiteColumn,
"accessorKey":"field_fakticheskie_raskhody_za_2026_god_iv_kvartal_iv_kvartal"
},
"field_skorrektirovannaya_smeta_raskhodov_na_2026_god_ii_kvartal_ii_kvartal":{
"color_type":whiteColumn,
"accessorKey":"field_skorrektirovannaya_smeta_raskhodov_na_2026_god_ii_kvartal_ii_kvartal"
},
"field_skorrektirovannaya_smeta_raskhodov_na_2026_god_iii_kvartal_iii_kvartal":{
"color_type":whiteColumn,
"accessorKey":"field_skorrektirovannaya_smeta_raskhodov_na_2026_god_iii_kvartal_iii_kvartal"
},
"v_tys_rubley_raskhody_planiruemye_rf_na_2026_god_itogopodderzhka_itogopodderzhka":{
"color_type":whiteColumn,
"accessorKey":"v_tys_rubley_raskhody_planiruemye_rf_na_2026_god_itogopodderzhka_itogopodderzhka"
},
"v_tys_rubley_utverzhdennye_bazovye_raskhody_na_2026_god_itogopodderzhka_itogopodderzhka":{
"color_type":whiteColumn,
"accessorKey":"v_tys_rubley_utverzhdennye_bazovye_raskhody_na_2026_god_itogopodderzhka_itogopodderzhka"
},
"v_tys_rubley_fakticheskie_raskhody_za_2026_god_itogopodderzhka_itogopodderzhka":{
"color_type":whiteColumn,
"accessorKey":"v_tys_rubley_fakticheskie_raskhody_za_2026_god_itogopodderzhka_itogopodderzhka"
},
"v_tys_rubley_skorrektirovannaya_smeta_raskhodov_na_2026_god_iv_kvartal_iv_kvartal":{
"color_type":whiteColumn,
"accessorKey":"v_tys_rubley_skorrektirovannaya_smeta_raskhodov_na_2026_god_iv_kvartal_iv_kvartal"
}
},
"columns":[
{
"header":"",
"accessorKey":"field",
"columns":[
{
"header":"№ п/п",
"accessorKey":"field_pp",
"columns":[
{
"header":"№ п/п",
"accessorKey":"field_pp_pp",
"columns":[
{
"header":"№ п/п",
"accessorKey":"field_pp_pp_pp",
"size":150,
"filterFn":"contains"
}
]
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
},
{
"header":"Перечень расходов и затрат",
"accessorKey":"field_perechen_raskhodov_i_zatrat",
"columns":[
{
"header":"Перечень расходов и затрат",
"accessorKey":"field_perechen_raskhodov_i_zatrat_perechen_raskhodov_i_zatrat",
"columns":[
{
"header":"Перечень расходов и затрат",
"accessorKey":"field_perechen_raskhodov_i_zatrat_perechen_raskhodov_i_zatrat_perechen_raskhodov_i_zatrat",
"size":150,
"filterFn":"contains"
}
]
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
},
{
"header":"Расходы, планируемые РФ на 2026 год",
"accessorKey":"field_raskhody_planiruemye_rf_na_2026_god",
"columns":[
{
"header":"I квартал",
"accessorKey":"field_raskhody_planiruemye_rf_na_2026_god_i_kvartal",
"columns":[
{
"header":"I квартал",
"accessorKey":"field_raskhody_planiruemye_rf_na_2026_god_i_kvartal_i_kvartal",
"size":150,
"filterFn":"contains"
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
},
{
"header":"II квартал",
"accessorKey":"field_raskhody_planiruemye_rf_na_2026_god_ii_kvartal",
"columns":[
{
"header":"II квартал",
"accessorKey":"field_raskhody_planiruemye_rf_na_2026_god_ii_kvartal_ii_kvartal",
"size":150,
"filterFn":"contains"
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
},
{
"header":"III квартал",
"accessorKey":"field_raskhody_planiruemye_rf_na_2026_god_iii_kvartal",
"columns":[
{
"header":"III квартал",
"accessorKey":"field_raskhody_planiruemye_rf_na_2026_god_iii_kvartal_iii_kvartal",
"size":150,
"filterFn":"contains"
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
},
{
"header":"IV квартал",
"accessorKey":"field_raskhody_planiruemye_rf_na_2026_god_iv_kvartal",
"columns":[
{
"header":"IV квартал",
"accessorKey":"field_raskhody_planiruemye_rf_na_2026_god_iv_kvartal_iv_kvartal",
"size":150,
"filterFn":"contains"
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
},
{
"header":"Утвержденные базовые расходы на 2026 год",
"accessorKey":"field_utverzhdennye_bazovye_raskhody_na_2026_god",
"columns":[
{
"header":"I квартал",
"accessorKey":"field_utverzhdennye_bazovye_raskhody_na_2026_god_i_kvartal",
"columns":[
{
"header":"I квартал",
"accessorKey":"field_utverzhdennye_bazovye_raskhody_na_2026_god_i_kvartal_i_kvartal",
"size":150,
"filterFn":"contains"
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
},
{
"header":"II квартал",
"accessorKey":"field_utverzhdennye_bazovye_raskhody_na_2026_god_ii_kvartal",
"columns":[
{
"header":"II квартал",
"accessorKey":"field_utverzhdennye_bazovye_raskhody_na_2026_god_ii_kvartal_ii_kvartal",
"size":150,
"filterFn":"contains"
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
},
{
"header":"III квартал",
"accessorKey":"field_utverzhdennye_bazovye_raskhody_na_2026_god_iii_kvartal",
"columns":[
{
"header":"III квартал",
"accessorKey":"field_utverzhdennye_bazovye_raskhody_na_2026_god_iii_kvartal_iii_kvartal",
"size":150,
"filterFn":"contains"
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
},
{
"header":"IV квартал",
"accessorKey":"field_utverzhdennye_bazovye_raskhody_na_2026_god_iv_kvartal",
"columns":[
{
"header":"IV квартал",
"accessorKey":"field_utverzhdennye_bazovye_raskhody_na_2026_god_iv_kvartal_iv_kvartal",
"size":150,
"filterFn":"contains"
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
},
{
"header":"Фактические расходы за 2026 год",
"accessorKey":"field_fakticheskie_raskhody_za_2026_god",
"columns":[
{
"header":"I квартал",
"accessorKey":"field_fakticheskie_raskhody_za_2026_god_i_kvartal",
"columns":[
{
"header":"I квартал",
"accessorKey":"field_fakticheskie_raskhody_za_2026_god_i_kvartal_i_kvartal",
"size":150,
"filterFn":"contains"
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
},
{
"header":"II квартал",
"accessorKey":"field_fakticheskie_raskhody_za_2026_god_ii_kvartal",
"columns":[
{
"header":"II квартал",
"accessorKey":"field_fakticheskie_raskhody_za_2026_god_ii_kvartal_ii_kvartal",
"size":150,
"filterFn":"contains"
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
},
{
"header":"III квартал",
"accessorKey":"field_fakticheskie_raskhody_za_2026_god_iii_kvartal",
"columns":[
{
"header":"III квартал",
"accessorKey":"field_fakticheskie_raskhody_za_2026_god_iii_kvartal_iii_kvartal",
"size":150,
"filterFn":"contains"
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
},
{
"header":"IV квартал",
"accessorKey":"field_fakticheskie_raskhody_za_2026_god_iv_kvartal",
"columns":[
{
"header":"IV квартал",
"accessorKey":"field_fakticheskie_raskhody_za_2026_god_iv_kvartal_iv_kvartal",
"size":150,
"filterFn":"contains"
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
},
{
"header":"Скорректированная смета расходов на 2026 год",
"accessorKey":"field_skorrektirovannaya_smeta_raskhodov_na_2026_god",
"columns":[
{
"header":"II квартал",
"accessorKey":"field_skorrektirovannaya_smeta_raskhodov_na_2026_god_ii_kvartal",
"columns":[
{
"header":"II квартал",
"accessorKey":"field_skorrektirovannaya_smeta_raskhodov_na_2026_god_ii_kvartal_ii_kvartal",
"size":150,
"filterFn":"contains"
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
},
{
"header":"III квартал",
"accessorKey":"field_skorrektirovannaya_smeta_raskhodov_na_2026_god_iii_kvartal",
"columns":[
{
"header":"III квартал",
"accessorKey":"field_skorrektirovannaya_smeta_raskhodov_na_2026_god_iii_kvartal_iii_kvartal",
"size":150,
"filterFn":"contains"
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FFFFFF",
"color":"#000000"
}
}
},
{
"header":"в тыс. рублей",
"accessorKey":"v_tys_rubley",
"columns":[
{
"header":"Расходы, планируемые РФ на 2026 год",
"accessorKey":"v_tys_rubley_raskhody_planiruemye_rf_na_2026_god",
"columns":[
{
"header":"ИТОГОПоддержка",
"accessorKey":"v_tys_rubley_raskhody_planiruemye_rf_na_2026_god_itogopodderzhka",
"columns":[
{
"header":"ИТОГОПоддержка",
"accessorKey":"v_tys_rubley_raskhody_planiruemye_rf_na_2026_god_itogopodderzhka_itogopodderzhka",
"size":150,
"filterFn":"contains"
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
}
]
},
{
"header":"Утвержденные базовые расходы на 2026 год",
"accessorKey":"v_tys_rubley_utverzhdennye_bazovye_raskhody_na_2026_god",
"columns":[
{
"header":"ИТОГОПоддержка",
"accessorKey":"v_tys_rubley_utverzhdennye_bazovye_raskhody_na_2026_god_itogopodderzhka",
"columns":[
{
"header":"ИТОГОПоддержка",
"accessorKey":"v_tys_rubley_utverzhdennye_bazovye_raskhody_na_2026_god_itogopodderzhka_itogopodderzhka",
"size":150,
"filterFn":"contains"
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
}
]
},
{
"header":"Фактические расходы за 2026 год",
"accessorKey":"v_tys_rubley_fakticheskie_raskhody_za_2026_god",
"columns":[
{
"header":"ИТОГОПоддержка",
"accessorKey":"v_tys_rubley_fakticheskie_raskhody_za_2026_god_itogopodderzhka",
"columns":[
{
"header":"ИТОГОПоддержка",
"accessorKey":"v_tys_rubley_fakticheskie_raskhody_za_2026_god_itogopodderzhka_itogopodderzhka",
"size":150,
"filterFn":"contains"
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
}
]
},
{
"header":"Скорректированная смета расходов на 2026 год",
"accessorKey":"v_tys_rubley_skorrektirovannaya_smeta_raskhodov_na_2026_god",
"columns":[
{
"header":"IV квартал",
"accessorKey":"v_tys_rubley_skorrektirovannaya_smeta_raskhodov_na_2026_god_iv_kvartal",
"columns":[
{
"header":"IV квартал",
"accessorKey":"v_tys_rubley_skorrektirovannaya_smeta_raskhodov_na_2026_god_iv_kvartal_iv_kvartal",
"size":150,
"filterFn":"contains"
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#BFBFBF",
"color":"#000000"
}
}
}
]
}
],
"muiTableHeadCellProps":{
"sx":{
"backgroundColor":"#FFFFFF",
"color":"#000000"
}
}
}
]
}
}

View File

@ -4,6 +4,7 @@ export const greenColumn = {
ITEM: "#EAF0DD",
SUB_ITEM: "#FFFFFF",
INPUT: "#FFFFFF",
COLOR: "#000000",
};
export const orangeColumn = {
@ -12,14 +13,16 @@ export const orangeColumn = {
ITEM: "#FAEBDC",
SUB_ITEM: "#FFFFFF",
INPUT: "#FFFFFF",
COLOR: "#000000",
};
export const whiteColumn = {
ROOT: "#FFFFFF",
GROUP: "#FFFFFF",
ITEM: "#FFFFFF",
ITEM: "#ffffff",
SUB_ITEM: "#FFFFFF",
INPUT: "#FFFFFF",
COLOR: "#000000",
};
export const redColumn = {
@ -28,6 +31,7 @@ export const redColumn = {
ITEM: "#E5B7B6", // самый светлый
SUB_ITEM: "#FFFFFF",
INPUT: "#FFFFFF",
COLOR: "#ffffff",
};
export const blueColumn = {
@ -36,6 +40,7 @@ export const blueColumn = {
ITEM: "#C5D8F0", // самый светлый
SUB_ITEM: "#FFFFFF",
INPUT: "#FFFFFF",
COLOR: "#000000",
};
export const yellowColumn = {
@ -44,4 +49,5 @@ export const yellowColumn = {
ITEM: "#FFFFCC",
SUB_ITEM: "#FFFFFF",
INPUT: "#FFFFFF",
COLOR: "#000000",
};

View File

@ -53,4 +53,3 @@ export const getTablePaperStyles = () => ({
},
});
export const rowHeight = 32;

View File

@ -1,7 +1,8 @@
import { useState, useMemo, useEffect } from "react";
import { loadFromStorage, saveToStorage } from "../utils/localStorageUtils";
import { rowBaseOffset } from "../constants/tableConfig";
export const useTableScale = (tableRef, isLoading) => {
export const useTableScale = () => {
const [sizeMult, setSizeMult] = useState(() =>
loadFromStorage("sizeMult", 1.5),
);
@ -10,7 +11,6 @@ export const useTableScale = (tableRef, isLoading) => {
saveToStorage("sizeMult", sizeMult);
}, [sizeMult]);
const tableScaleStyle = useMemo(
() => ({
transform: `scale(${sizeMult})`,

View File

@ -2,11 +2,7 @@ import React, { useEffect, useRef, useState } from 'react';
import { createPortal } from 'react-dom';
import { columns as mockColumns } from '../../mocks/mockTable';
import { config } from './constants/FORM_2/AHR';
// import { columns as mockColumns } from './constants/headers/AHR';
// import { columns as mockColumns } from './constants/headers/KV';
// import { columnColors } from './constants/columnColors';
// Create a proper React component for the edit functionality
function EditCellPortal({ cell, table, EditCell, onChange }) {
const ref = useRef(null);
const [refTbody, setRefTbody] = useState(false);
@ -52,22 +48,6 @@ export const getTableColumns = ({ Cell, EditCell, columnsConfig }) => {
const columnColors = { ...columnsConfig.colors };
console.log(columnColors)
const columns = [...columnsConfig.columns];
// for (const col of columns) {
// const childTheme = col.columns[0].columns[0].accessorKey;
// for (const c of col.columns) {
// c['muiTableHeadCellProps'] = { sx: { backgroundColor: columnColors[childTheme].color_type.ROOT } }
// console.log(c);
// for (const cc of c.columns) {
// cc['muiTableHeadCellProps'] = { sx: { backgroundColor: columnColors[childTheme].color_type.ROOT } }
// }
// }
// // col['muiTableHeadCellProps'] = {sx:{backgroundColor: "#B0A2C4"}}
// }
// console.log(JSON.stringify(columns))
// console.log(columns)
const processColumns = (columns, EditCell, Cell) => {
columns.forEach((col) => {
@ -78,10 +58,12 @@ export const getTableColumns = ({ Cell, EditCell, columnsConfig }) => {
globalFilter={
table.getState().globalFilter || column.getFilterValue()
}
color={columnColors[column.id] ? columnColors[column.id].color_type[row.original.row_type] : 'black'}
backgroundColor={columnColors[column.id].color_type[row.original.row_type]}
color={columnColors[column.id].color_type['COLOR']}
/>
</>
);
col.Edit = ({ cell, table, row, column }) => (
<EditCellPortal

View File

@ -1,22 +1,7 @@
import { Box, Divider, styled, Stack } from '@mui/material';
import { Box, Divider, Stack } from '@mui/material';
import { UnLockedSvg } from '../common/icons/icons';
import { ROLES_ID_RUSSIAN_NAME, EDIT_ACCESS_RUSSIAN } from '../../constants';
const AccessItem = styled(Box)({
display: 'flex',
gap: '.5rem',
'& *': {
fontSize: '0.88rem !important',
color: '#4a5565',
},
});
const StageInfoContainer = styled(Box)({
display: 'flex',
flexDirection: 'row',
gap: '.5rem',
});
export const StageInfoForTooltip = ({ stageData = [] }) => {
const accessData = stageData[0] || [];
const stagesData = stageData[1] || [];
@ -91,10 +76,23 @@ export const StageInfoForTooltip = ({ stageData = [] }) => {
{stagesData.length > 0 && (
<>
<Divider sx={{ marginTop: '0 !important' }} />
<Box display="flex" flexDirection="column" gap="0.375rem">
<Stack spacing={0.75} flexDirection={'row'} flexWrap="wrap" gap={1}>
<Box sx={{ display: 'flex', flexDirection: 'column', gap: '0.375rem' }}>
<Stack
sx={{
flexDirection: 'row',
flexWrap: 'wrap',
gap: 1,
}}
>
{stagesInfo.map((stage, index) => (
<StageInfoContainer key={stage.id || index}>
<Box
key={stage.id || index}
sx={{
display: 'flex',
flexDirection: 'row',
gap: '.5rem',
}}
>
<Box
sx={{
fontWeight: '400',
@ -114,7 +112,7 @@ export const StageInfoForTooltip = ({ stageData = [] }) => {
>
{stage.period}
</Box>
</StageInfoContainer>
</Box>
))}
</Stack>
</Box>
@ -141,16 +139,28 @@ export const StageInfoForTooltip = ({ stageData = [] }) => {
</Box>
<Box
display="flex"
flexDirection="column"
gap="0.3rem"
justifyContent="start"
sx={{
display: 'flex',
flexDirection: 'column',
gap: '0.3rem',
justifyContent: 'start',
}}
>
{accessInfo.map((access, index) => (
<AccessItem key={index}>
<Box
key={index}
sx={{
display: 'flex',
gap: '.5rem',
'& *': {
fontSize: '0.88rem !important',
color: '#4a5565',
},
}}
>
<Box>{access.accessLevel}&nbsp;&nbsp;</Box>
<Box color="black">{access.roleName}</Box>
</AccessItem>
<Box sx={{ color: 'black' }}>{access.roleName}</Box>
</Box>
))}
</Box>
</Box>

View File

@ -1,5 +1,4 @@
import { Box, Button, Stack } from '@mui/material';
import { styled } from '@mui/material';
import { ExitSvg, ExportSvg } from '../icons/icons';
import {
DangerOutlinedButton,
@ -32,7 +31,7 @@ export const ExportButton = (props) => {
export const ExportWithTextButton = (props) => {
return (
<PrimaryOutlinedButton {...props}>
<Stack direction={'row'} alignItems={'center'} spacing={'.375rem'}>
<Stack sx={{ flexDirection: 'row', alignItems: 'center', gap: '.375rem' }}>
<ExportSvg size="1rem" color="#45881c" strokeWidth={'.33px'} />
<span style={{ fontSize: '.88rem' }}>
{props?.text || 'Экспорт в Excel'}
@ -45,7 +44,7 @@ export const ExportWithTextButton = (props) => {
export const ExportExitButton = (props) => {
return (
<DangerOutlinedButton {...props}>
<Stack direction={'row'} alignItems={'center'} spacing={'.375rem'}>
<Stack sx={{ flexDirection: 'row', alignItems: 'center', gap: '.375rem' }}>
<ExitSvg size="1rem" />
<span>Выйти из режима экспорта</span>
</Stack>
@ -56,7 +55,7 @@ export const ExportExitButton = (props) => {
export const ExportDefaultButton = (props) => {
return (
<DefaultOutlinedButton {...props}>
<Stack direction={'row'} alignItems={'center'} spacing={'.375rem'}>
<Stack sx={{ flexDirection: 'row', alignItems: 'center', gap: '.375rem' }}>
<ExportSvg color="#4a5565" strokeWidth={'.33'} size="1rem" />
<span>{props?.text || 'Экспорт в Excel'}</span>
</Stack>

View File

@ -1,139 +1,8 @@
import { useState, useRef, useEffect } from 'react';
import styled from '@emotion/styled';
import { Box, Typography, IconButton, OutlinedInput } from '@mui/material';
import CloseIcon from '@mui/icons-material/Close';
import { PrimaryButton } from '../common/Buttons/Buttons';
const Container = styled(Box)`
border: 1px dashed #e0dfe0;
border-radius: 0.75rem;
padding: 1rem;
min-height: 6rem;
max-height: max-content;
background: #fafafa;
flex: 1;
display: flex;
flex-direction: column;
`;
const InputWrapper = styled(Box)`
border: 1px solid #e0dfe0;
border-radius: 0.5rem;
padding: 0.38rem 0.75rem;
width: 100%;
position: relative;
border: 1px solid
${({ _theme, focused }) => (focused ? '#a6ce39' : '#e0dfe0')};
box-shadow: ${({ _theme, focused }) =>
focused ? '0 0 0 2px rgba(166, 206, 57, 0.15)' : ''};
border: 1px solid #e0dfe0;
border-radius: 0.5rem;
padding: 0.38rem 0.75rem;
min-height: 3.25rem;
height: max-content;
cursor: text;
background-color: white;
transition: all 0.2s ease;
&:hover {
border-color: ${({ _theme, focused }) => (focused ? '#a6ce39' : '#e0dfe0')};
}
`;
const TagsContainer = styled(Box)`
display: flex;
flex-wrap: wrap;
gap: 0.25rem;
row-gap: 0.25rem;
padding: 0;
min-height: 3.25rem;
`;
const StyledChip = styled(Box)`
display: flex;
gap: 0.375rem;
border: 1px solid #e0dfe0;
border-radius: 624.94rem;
padding: 0.12rem 0.75rem;
height: 1.25rem;
&:hover {
transition: all 0.2s ease;
transform: scale(1.05);
}
`;
const CloseButton = styled.button`
background: none;
border: none;
padding: 0;
width: 0.875rem;
height: max-content;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
svg {
width: 0.875rem;
height: 0.875rem;
}
`;
const TagText = styled(Typography)`
font-weight: 400;
font-size: 0.75rem;
line-height: 133%;
color: #323031;
padding: 0;
opacity: 0.8;
`;
const HiddenInput = styled(OutlinedInput)`
height: 1.25rem;
& fieldset {
border: none !important;
}
& .MuiOutlinedInput-input {
padding: 0;
flex: 1;
font-size: 0.88rem;
width: 15rem !important;
f &:focus {
outline: none;
}
}
`;
const ClearAllButton = styled(IconButton)`
position: absolute;
top: 0.5rem;
right: 0.5rem;
width: 1.5rem;
height: 1.5rem;
padding: 0.25rem;
background-color: #fff;
opacity: ${({ show }) => (show ? 1 : 0)};
visibility: ${({ show }) => (show ? 'visible' : 'hidden')};
transition: all 0.2s ease;
z-index: 1;
opacity: 0.7;
&:hover {
opacity: 1;
}
svg {
width: 0.875rem;
height: 0.875rem;
color: #666;
}
`;
const InlineTagInput = ({ onSaveTags }) => {
const [tags, setTags] = useState([]);
const [inputValue, setInputValue] = useState('');
@ -218,18 +87,96 @@ const InlineTagInput = ({ onSaveTags }) => {
const shouldShowClearButton = tags.length > 0 || inputValue.length > 0;
return (
<Container>
<Box display="flex" gap=".75rem" alignItems="flex-start">
<InputWrapper
<Box
sx={{
border: '1px dashed #e0dfe0',
borderRadius: '0.75rem',
padding: '1rem',
minHeight: '6rem',
maxHeight: 'max-content',
background: '#fafafa',
flex: 1,
display: 'flex',
flexDirection: 'column',
}}
>
<Box sx={{ display: 'flex', gap: '.75rem', alignItems: 'flex-start' }}>
<Box
ref={wrapperRef}
focused={isFocused.toString()}
sx={{
border: '1px solid #e0dfe0',
borderRadius: '0.5rem',
padding: '0.38rem 0.75rem',
width: '100%',
position: 'relative',
borderColor: isFocused ? '#a6ce39' : '#e0dfe0',
boxShadow: isFocused ? '0 0 0 2px rgba(166, 206, 57, 0.15)' : '',
minHeight: '3.25rem',
height: 'max-content',
cursor: 'text',
backgroundColor: 'white',
transition: 'all 0.2s ease',
'&:hover': {
borderColor: isFocused ? '#a6ce39' : '#e0dfe0',
},
}}
onClick={handleWrapperClick}
>
<TagsContainer>
<Box
sx={{
display: 'flex',
flexWrap: 'wrap',
gap: '0.25rem',
rowGap: '0.25rem',
padding: 0,
minHeight: '3.25rem',
}}
>
{tags.map((tag, index) => (
<StyledChip key={index}>
<TagText>{tag}</TagText>
<CloseButton
<Box
key={index}
sx={{
display: 'flex',
gap: '0.375rem',
border: '1px solid #e0dfe0',
borderRadius: '624.94rem',
padding: '0.12rem 0.75rem',
height: '1.25rem',
'&:hover': {
transition: 'all 0.2s ease',
transform: 'scale(1.05)',
},
}}
>
<Typography
sx={{
fontWeight: 400,
fontSize: '0.75rem',
lineHeight: '133%',
color: '#323031',
padding: 0,
opacity: 0.8,
}}
>
{tag}
</Typography>
<Box
component="button"
sx={{
background: 'none',
border: 'none',
padding: 0,
width: '0.875rem',
height: 'max-content',
display: 'flex',
alignItems: 'center',
justifyContent: 'center',
cursor: 'pointer',
'& svg': {
width: '0.875rem',
height: '0.875rem',
},
}}
onClick={(e) => {
e.stopPropagation();
removeTag(index);
@ -237,11 +184,11 @@ const InlineTagInput = ({ onSaveTags }) => {
aria-label={`Удалить ${tag}`}
>
<CloseIcon />
</CloseButton>
</StyledChip>
</Box>
</Box>
))}
<HiddenInput
<OutlinedInput
inputRef={inputRef}
value={inputValue}
onChange={handleInputChange}
@ -251,18 +198,54 @@ const InlineTagInput = ({ onSaveTags }) => {
onBlur={handleBlur}
placeholder={tags.length === 0 ? 'Укажите пользователя(ей)' : ''}
autoComplete="off"
sx={{
height: '1.25rem',
'& fieldset': {
border: 'none !important',
},
'& .MuiOutlinedInput-input': {
padding: 0,
flex: 1,
fontSize: '0.88rem',
width: '15rem !important',
'&:focus': {
outline: 'none',
},
},
}}
/>
</TagsContainer>
<ClearAllButton
show={shouldShowClearButton.toString()}
</Box>
<IconButton
sx={{
position: 'absolute',
top: '0.5rem',
right: '0.5rem',
width: '1.5rem',
height: '1.5rem',
padding: '0.25rem',
backgroundColor: '#fff',
opacity: shouldShowClearButton ? 1 : 0,
visibility: shouldShowClearButton ? 'visible' : 'hidden',
transition: 'all 0.2s ease',
zIndex: 1,
opacity: shouldShowClearButton ? 0.7 : 0,
'&:hover': {
opacity: 1,
},
'& svg': {
width: '0.875rem',
height: '0.875rem',
color: '#666',
},
}}
onClick={(e) => {
e.stopPropagation();
handleClearAll();
}}
>
<CloseIcon />
</ClearAllButton>
</InputWrapper>
</IconButton>
</Box>
{onSaveTags && (
<PrimaryButton
onClick={handleSaveTags}
@ -275,17 +258,17 @@ const InlineTagInput = ({ onSaveTags }) => {
<Typography
variant="caption"
color="#323031"
sx={{
margin: 0,
padding: 0,
fontSize: '0.75rem',
opacity: '0.8',
color: '#323031',
opacity: 0.8,
}}
>
Введите логины через запятую и нажмите + или Enter
</Typography>
</Container>
</Box>
);
};

View File

@ -2,6 +2,7 @@ import React from 'react';
import { Box, Stack, Typography } from '@mui/material';
import { useNavigate } from 'react-router-dom';
import TableCard from '../TableCard/TableCard';
import { toast } from 'react-toastify';
const TablesList = ({
filteredTables,
@ -16,14 +17,16 @@ const TablesList = ({
navigate(path);
};
const renderTableCard = (table) => {
const renderTableCard = (table, formInfo) => {
//пока нет ручки
formInfo = {form_type_code: 'FORM_2', id: 4}
if (!formInfo){
return;
}
const path = `${basePath}/form/${formInfo.id}/form-type/${formInfo.form_type_code}/${table.sheet}`;
return (
<TableCard
key={table}
key={table.sheet}
onNavigate={() => handleNavigate(path)}
table={table}
/>
@ -54,7 +57,7 @@ const TablesList = ({
)}
{filteredTables.map(
(table) => renderTableCard(table),
(table) => renderTableCard(table, formInfo),
)}
</Box>
);

View File

@ -217,10 +217,13 @@ export const TaskCardComponent = ({
</Box>
<Stack
direction={'row'}
justifyContent={'space-between'}
width={'100%'}
alignItems={'end'}
sx={{
direction:'row',
justifyContent:'space-between',
width:'100%',
alignItems:'end',
}}
>
<CardBody>

View File

@ -93,7 +93,7 @@ const AuditLogsTable = ({
size: 190,
Cell: ({ row }) => (
<Chip
label={ROLES_ID_RUSSIAN_NAME[row.original.user.role_id]}
label={row.original.user ? ROLES_ID_RUSSIAN_NAME[row.original.user.role_id] : ''}
sx={{
border: '0.53px solid #D1D5DC',
borderRadius: '0.5rem',

View File

@ -8,7 +8,7 @@ import {
Typography,
FormControlLabel,
Radio,
RadioGroup, // Добавьте этот импорт
RadioGroup,
} from '@mui/material';
import { UsersApi } from '../../../api/users';
import { AutocompleteForChangeOptions } from '../components/AutocompleteForChangeOptions';
@ -19,6 +19,7 @@ export const ModalAddSsp = ({ open, onClose, onSave }) => {
const [type, setType] = useState('ssp');
const [usersData, setUsersData] = useState({ update: [], delete: [] });
const [allUsers, setAllUsers] = useState([]);
useEffect(() => {
UsersApi.getAll()
.then((data) => {
@ -54,21 +55,25 @@ export const ModalAddSsp = ({ open, onClose, onSave }) => {
onClose={onClose}
actions={
<>
<Button variant="grey" onClick={onClose} style={{ height: '2.5rem' }}>
<Button
variant="grey"
onClick={onClose}
sx={{ height: '2.5rem' }}
>
Отменить
</Button>
<Button
variant="contained"
onClick={handleClickSave}
style={{ height: '2.5rem' }}
sx={{ height: '2.5rem' }}
>
Сохранить
</Button>
</>
}
>
<Box display="flex" flexDirection="column" gap="1rem">
<Box display="flex" flexDirection="column" gap="0.5rem">
<Box sx={{ display: 'flex', flexDirection: 'column', gap: '1rem' }}>
<Box sx={{ display: 'flex', flexDirection: 'column', gap: '0.5rem' }}>
<Typography
sx={{
fontWeight: '400',
@ -108,13 +113,13 @@ export const ModalAddSsp = ({ open, onClose, onSave }) => {
row
value={type}
onChange={handleTypeChange}
sx={{ gap: '1.5rem' }}
sx={{ gap: '1.5rem', flexDirection: 'row' }}
>
<FormControlLabel
value="ssp"
control={<Radio size="small" />}
label={
<Box display="flex" alignItems="center" gap="0.5rem">
<Box sx={{ display: 'flex', alignItems: 'center', gap: '0.5rem' }}>
<Typography sx={{ fontSize: '0.875rem' }}>ССП</Typography>
</Box>
}
@ -123,7 +128,7 @@ export const ModalAddSsp = ({ open, onClose, onSave }) => {
value="regional"
control={<Radio size="small" />}
label={
<Box display="flex" alignItems="center" gap="0.5rem">
<Box sx={{ display: 'flex', alignItems: 'center', gap: '0.5rem' }}>
<Typography sx={{ fontSize: '0.875rem' }}>
Региональный филиал
</Typography>

View File

@ -48,21 +48,25 @@ export const ModalEditSsp = ({ open, onClose, ssp, onEdit }) => {
onClose={onClose}
actions={
<>
<Button variant="grey" onClick={onClose} style={{ height: '2.5rem' }}>
<Button
variant="grey"
onClick={onClose}
sx={{ height: '2.5rem' }}
>
Отменить
</Button>
<Button
variant="contained"
onClick={handleClickSave}
style={{ height: '2.5rem' }}
sx={{ height: '2.5rem' }}
>
Сохранить
</Button>
</>
}
>
<Box display="flex" flexDirection="column" gap="1rem">
<Box display="flex" flexDirection="column" gap="0.5rem">
<Box sx={{ display: 'flex', flexDirection: 'column', gap: '1rem' }}>
<Box sx={{ display: 'flex', flexDirection: 'column', gap: '0.5rem' }}>
<Typography
sx={{
fontWeight: '400',
@ -102,13 +106,13 @@ export const ModalEditSsp = ({ open, onClose, ssp, onEdit }) => {
row
value={type}
onChange={handleTypeChange}
sx={{ gap: '1.5rem' }}
sx={{ gap: '1.5rem', flexDirection: 'row' }}
>
<FormControlLabel
value="ssp"
control={<Radio size="small" />}
label={
<Box display="flex" alignItems="center" gap="0.5rem">
<Box sx={{ display: 'flex', alignItems: 'center', gap: '0.5rem' }}>
<Typography sx={{ fontSize: '0.875rem' }}>ССП</Typography>
</Box>
}
@ -117,7 +121,7 @@ export const ModalEditSsp = ({ open, onClose, ssp, onEdit }) => {
value="regional"
control={<Radio size="small" />}
label={
<Box display="flex" alignItems="center" gap="0.5rem">
<Box sx={{ display: 'flex', alignItems: 'center', gap: '0.5rem' }}>
<Typography sx={{ fontSize: '0.875rem' }}>
Региональный филиал
</Typography>

View File

@ -6,7 +6,6 @@ import { Button, Stack } from '@mui/material';
import Select from '@mui/material/Select';
import Box from '@mui/material/Box';
import Typography from '@mui/material/Typography';
import { styled } from '@mui/material/styles';
import { ROLES_ID_RUSSIAN_NAME } from '../../../constants';
import { UserIcon, TrashSvg } from '../../../components/common/icons/icons';
import {
@ -14,45 +13,6 @@ import {
PrimaryOutlinedButton,
} from '../../../components/common/Buttons/Buttons';
const HorizontalContainer = styled(Box)({
border: '1px dashed #bedbff',
borderRadius: '0.75rem',
padding: '0.84rem 0.88rem 0.84rem 1.5rem',
maxHeight: '3.19rem',
display: 'flex',
flexDirection: 'row',
alignItems: 'center',
backgroundColor: '#e8f2ff',
gap: '2.5rem',
});
const StyledSelect = styled(Select)`
width: 11rem;
height: 1.5rem;
background-color: white;
& .MuiOutlinedInput-notchedOutline {
border-color: #bedbff;
border-radius: 0.5rem;
border: 1px solid rgba(0, 0, 0, 0.1);
}
&:hover .MuiOutlinedInput-notchedOutline {
border-color: #4dabf5;
}
&.Mui-focused .MuiOutlinedInput-notchedOutline {
border-color: #4dabf5;
}
.MuiSelect-select {
padding: 0;
padding-left: 0.75rem;
display: flex;
align-items: center;
min-height: 1.5rem;
}
`;
function UsersActionBar({
onClose,
onDelete,
@ -95,8 +55,20 @@ function UsersActionBar({
};
return (
<HorizontalContainer>
<Box display="flex" alignItems="center" gap="1.5rem">
<Box
sx={{
border: '1px dashed #bedbff',
borderRadius: '0.75rem',
padding: '0.84rem 0.88rem 0.84rem 1.5rem',
maxHeight: '3.19rem',
display: 'flex',
flexDirection: 'row',
alignItems: 'center',
backgroundColor: '#e8f2ff',
gap: '2.5rem',
}}
>
<Box sx={{ display: 'flex', alignItems: 'center', gap: '1.5rem' }}>
<IconButton
onClick={onClose}
aria-label="закрыть"
@ -122,20 +94,43 @@ function UsersActionBar({
}}
>
<UserIcon />
<Typography fontSize=".88rem" color="#4a5565">
<Typography sx={{ fontSize: '.88rem', color: '#4a5565' }}>
Выбрано:
</Typography>
<Typography fontSize=".88rem" color="#323031">
<Typography sx={{ fontSize: '.88rem', color: '#323031' }}>
{countUser}
</Typography>
</Box>
</Box>
<Stack spacing={'.5rem'} direction={'row'}>
<StyledSelect
<Stack sx={{ gap: '.5rem', flexDirection: 'row' }}>
<Select
value={role || ''}
onChange={handleRoleChange}
displayEmpty
inputProps={{ 'aria-label': 'Выберите роль' }}
sx={{
width: '11rem',
height: '1.5rem',
backgroundColor: 'white',
'& .MuiOutlinedInput-notchedOutline': {
borderColor: '#bedbff',
borderRadius: '0.5rem',
border: '1px solid rgba(0, 0, 0, 0.1)',
},
'&:hover .MuiOutlinedInput-notchedOutline': {
borderColor: '#4dabf5',
},
'&.Mui-focused .MuiOutlinedInput-notchedOutline': {
borderColor: '#4dabf5',
},
'& .MuiSelect-select': {
padding: 0,
paddingLeft: '0.75rem',
display: 'flex',
alignItems: 'center',
minHeight: '1.5rem',
},
}}
>
<MenuItem value="" disabled>
<Typography
@ -152,13 +147,36 @@ function UsersActionBar({
</Typography>
</MenuItem>
))}
</StyledSelect>
</Select>
<StyledSelect
<Select
value={ssp || ''}
onChange={handleSspChange}
displayEmpty
inputProps={{ 'aria-label': 'Выберите ССП' }}
sx={{
width: '11rem',
height: '1.5rem',
backgroundColor: 'white',
'& .MuiOutlinedInput-notchedOutline': {
borderColor: '#bedbff',
borderRadius: '0.5rem',
border: '1px solid rgba(0, 0, 0, 0.1)',
},
'&:hover .MuiOutlinedInput-notchedOutline': {
borderColor: '#4dabf5',
},
'&.Mui-focused .MuiOutlinedInput-notchedOutline': {
borderColor: '#4dabf5',
},
'& .MuiSelect-select': {
padding: 0,
paddingLeft: '0.75rem',
display: 'flex',
alignItems: 'center',
minHeight: '1.5rem',
},
}}
>
<MenuItem value="" disabled>
<Typography
@ -175,12 +193,12 @@ function UsersActionBar({
</Typography>
</MenuItem>
))}
</StyledSelect>
</Select>
</Stack>
<Stack spacing={'.5rem'} direction={'row'}>
<Stack sx={{ gap: '.5rem', flexDirection: 'row' }}>
<DangerOutlinedButton onClick={onDelete}>
<Stack direction={'row'} spacing={'.5rem'} alignItems={'center'}>
<Stack sx={{ flexDirection: 'row', gap: '.5rem', alignItems: 'center' }}>
<p>Удалить</p>
</Stack>
</DangerOutlinedButton>
@ -189,7 +207,7 @@ function UsersActionBar({
<p>Сохранить</p>
</PrimaryOutlinedButton>
</Stack>
</HorizontalContainer>
</Box>
);
}

View File

@ -82,7 +82,8 @@ export default function TaskPage() {
const getFormInfo = async () => {
setIsLoading(true);
try {
// TasksApi.
const data = await TasksApi.getById(id);
setTask(data.result)
} catch (error) {
} finally {