front-logs-fix #8

Merged
PotapovaA merged 2 commits from front-logs-fix into test 2026-06-26 12:04:55 +03:00
10 changed files with 75 additions and 22 deletions
Showing only changes of commit 3f9595928e - Show all commits

View File

@ -1,4 +1,4 @@
import api from './client';
import api from "./client";
export const FormsSheetApi = {
get(formId, sheetName, params) {
@ -9,7 +9,10 @@ export const FormsSheetApi = {
export(formId, sheetName, params = {}) {
return api.get(`export/form/${formId}/sheet/${sheetName}`, {
params,
responseType: 'blob',
responseType: "blob",
});
},
getExpenseItem(itemId) {
return api.get(`/expense-item/${itemId}`).then((r) => r.data);
},
};

View File

@ -151,7 +151,7 @@ const RealtimeTable = ({ formType, formId, sheetName, direction }) => {
if (isPinned) {
const colId = table.getState().columnPinning.left[index];
const column = table.getColumn(colId);
return column.columnDef.size;
return column?.getSize() ?? 150;
}
const allCols = [...table.getLeftVisibleLeafColumns(), ...table.getCenterVisibleLeafColumns()]
return allCols[index]?.getSize() ?? 150;
@ -243,7 +243,6 @@ const RealtimeTable = ({ formType, formId, sheetName, direction }) => {
toast.error('Ошибка редактирования ячейки');
}
}, [dataEditingCells, editingCell]);
console.log(editingCell)
useEffect(() => {
if (table && data && columns.length !== 0) {

View File

@ -137,7 +137,9 @@ const AuditLogsPage = () => {
return (
<PageContainer>
<HeaderSwitch />
<Box display="flex" justifyContent="space-between">
<Box sx={{
display: "flex", justifyContent: "space-between"
}} >
<SwitchUserSsp />
</Box>

View File

@ -77,9 +77,9 @@ const AuditLogsTable = ({
<Typography component="div" fontWeight="medium">
{row.original.user
? row.original.user.full_name +
' (' +
row.original.user.email +
')'
' (' +
row.original.user.email +
')'
: '-'}
</Typography>
</Box>
@ -118,8 +118,7 @@ const AuditLogsTable = ({
size: 250,
Cell: ({ row }) => (
<Typography>
{getRussianNamesForType(row.original.action) ||
row.original.event_type}
{getRussianNamesForType(row.original.action) }
</Typography>
),
enableColumnActions: false,

View File

@ -1,21 +1,19 @@
export const DEFAULT_ACTIONS = {
ROW_CREATE: 'Создание строки',
ROW_DELETE: 'Удаление строки',
ACCESS_WINDOW_CHANGE: 'Изменение окна доступа',
ACCESS_EXTEND: 'Расширение доступа',
ACCESS_WINDOW_CHANGE: 'Изменение окна доступа',
USER_ROLE_CHANGE: 'Изменение роли пользователя',
CREATE_TASK: 'Создание задачи',
UPDATE_TASK: 'Обновление задачи',
DELETE_TASK: 'Удаление задачи',
USER_CREATE: 'Создание пользователя',
LOGIN: 'Вход в систему',
USER_ACCESS_GRANTED: 'Предоставление доступа к ССП/РФ',
USER_ACCESS_REVOKED: 'Отмена доступа к ССП/РФ',
VSP_CREATE: 'Создание ВСП',
};
export const ENTITY_RUSSIAN_NAMES = {
LOGIN: 'Вход в систему',
ROW: 'строки',
PROJECT: 'проекта',
TABLE: 'таблицы',
@ -26,6 +24,7 @@ export const ENTITY_RUSSIAN_NAMES = {
USER_ACCESS: 'доступа к ССП/РФ',
USER: 'пользователя',
ACCESS_WINDOW: 'окна доступа',
ACCESS: 'окна доступа',
USER_ROLE: 'роли пользователя',
VSP: 'ВСП',
};
@ -38,6 +37,7 @@ export const ACTION_RUSSIAN_NAMES = {
GET: 'Получение',
GRANTED: 'Предоставление',
REVOKED: 'Отмена',
EXTEND: 'Расширение',
};
export const getRussianNamesForType = (name) => {

View File

@ -56,11 +56,15 @@ export const EVENT_CONFIGS = {
},
ROW_CREATE: {
sheet: "Лист",
expense_item_id: 'Статья расходов'
expense_item_id: 'Статья расходов',
form_id: 'Информация о задаче',
direction: 'Направление',
},
ROW_DELETE: {
sheet: "Лист",
expense_item_id: 'Статья расходов'
expense_item_id: 'Статья расходов',
form_id: 'Информация о задаче',
direction: 'Направление',
},
PROJECT_CREATE: {
"name": "Название",
@ -71,5 +75,11 @@ export const EVENT_CONFIGS = {
"name": "Название",
"year": "Год",
"org_unit_id": "СПП/РФ",
}
},
ACCESS_EXTEND:{
form_id: 'Информация о задаче',
closes_at_after: 'Дата закрытия',
closes_at_before: 'Дата открытия',
phase_name: 'Названия этапа'
},
};

View File

@ -1,8 +1,10 @@
import { DictVspApi } from '../../../../api/dict-vsp';
import { FormsSheetApi } from '../../../../api/form_sheet';
import { FormsApi } from '../../../../api/forms';
import { SspApi } from '../../../../api/ssp';
import { TasksApi } from '../../../../api/tasks';
import { UsersApi } from '../../../../api/users';
import { ROLES_ID_RUSSIAN_NAME, SHEET_NAME } from '../../../../constants';
import { DIRECTION_TRANSLATE, FROM_TYPE_TRANSLATE, ROLES_ID_RUSSIAN_NAME, SHEET_NAME } from '../../../../constants';
export const VALUE_TRANSFORMERS = {
Роль: transformRole,
@ -14,6 +16,9 @@ export const VALUE_TRANSFORMERS = {
'Создана для СПП/РФ': transformSspsDict,
'Лист': transformSheet,
'СПП/РФ': transformSsp,
'Статья расходов': transformExpense,
'Информация о задаче': transformForm,
'Направление': transformDirection
};
export function transformRole(value) {
@ -83,3 +88,33 @@ export async function transformSspsDict(ssps) {
export function transformSheet(value) {
return SHEET_NAME[value] || 'Лист не найден';
}
export async function transformExpense(itemId) {
if (!itemId) {
return 'нет информации'
}
const res = await FormsSheetApi.getExpenseItem(itemId);
const expense = res.result;
return expense.name;
}
export async function transformForm(formId) {
if (!formId) {
return 'нет информации'
}
const res = await FormsApi.getForm(formId);
const form = res.result;
const formInfo = {
'название': FROM_TYPE_TRANSLATE[form.form_type_code],
'ССП/РФ': form.org_unit.title,
'Год': form.year,
}
return formInfo
}
export function transformDirection(direction){
if (!direction){
return '-';
}
return DIRECTION_TRANSLATE[direction];
}

View File

@ -95,7 +95,9 @@ const TableFooter = ({
</FormControl>
</Box>
<Stack direction="row" spacing={2} alignItems="center">
<Stack sx={{
direction: "row", spacing: 2, alignItems: "center"
}}>
<Pagination
count={Math.max(1, totalPages)}
page={page + 1}

View File

@ -142,7 +142,7 @@ function DictVspPage() {
<DictVspInfo />
{/* <HeaderSwitch /> */}
<PageContainer>
<Stack alignItems={'stretch'} width="100%">
<Stack sx={{ alignItems: 'stretch' }} width="100%">
<Box width="100%">
{user.role_id !== ROLES_NAME_ID.executor_rf && (
<DictVspFilters

View File

@ -106,9 +106,12 @@ function DictsNavigatorPage() {
</FeatureList>
<PrimaryButton height={'2.75rem'} onClick={handleNavigateToVSP}>
<Stack
spacing={'.25rem'}
direction={'row'}
alignItems={'center'}
sx={{
spacing: '.25rem',
direction: 'row',
alignItems: 'center',
}}
>
<TransitionSvg />
<p>Открыть справочник объектов</p>