этапы
This commit is contained in:
parent
cc766238f2
commit
3f9595928e
@ -1,4 +1,4 @@
|
|||||||
import api from './client';
|
import api from "./client";
|
||||||
|
|
||||||
export const FormsSheetApi = {
|
export const FormsSheetApi = {
|
||||||
get(formId, sheetName, params) {
|
get(formId, sheetName, params) {
|
||||||
@ -9,7 +9,10 @@ export const FormsSheetApi = {
|
|||||||
export(formId, sheetName, params = {}) {
|
export(formId, sheetName, params = {}) {
|
||||||
return api.get(`export/form/${formId}/sheet/${sheetName}`, {
|
return api.get(`export/form/${formId}/sheet/${sheetName}`, {
|
||||||
params,
|
params,
|
||||||
responseType: 'blob',
|
responseType: "blob",
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
getExpenseItem(itemId) {
|
||||||
|
return api.get(`/expense-item/${itemId}`).then((r) => r.data);
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@ -151,7 +151,7 @@ const RealtimeTable = ({ formType, formId, sheetName, direction }) => {
|
|||||||
if (isPinned) {
|
if (isPinned) {
|
||||||
const colId = table.getState().columnPinning.left[index];
|
const colId = table.getState().columnPinning.left[index];
|
||||||
const column = table.getColumn(colId);
|
const column = table.getColumn(colId);
|
||||||
return column.columnDef.size;
|
return column?.getSize() ?? 150;
|
||||||
}
|
}
|
||||||
const allCols = [...table.getLeftVisibleLeafColumns(), ...table.getCenterVisibleLeafColumns()]
|
const allCols = [...table.getLeftVisibleLeafColumns(), ...table.getCenterVisibleLeafColumns()]
|
||||||
return allCols[index]?.getSize() ?? 150;
|
return allCols[index]?.getSize() ?? 150;
|
||||||
@ -243,7 +243,6 @@ const RealtimeTable = ({ formType, formId, sheetName, direction }) => {
|
|||||||
toast.error('Ошибка редактирования ячейки');
|
toast.error('Ошибка редактирования ячейки');
|
||||||
}
|
}
|
||||||
}, [dataEditingCells, editingCell]);
|
}, [dataEditingCells, editingCell]);
|
||||||
console.log(editingCell)
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (table && data && columns.length !== 0) {
|
if (table && data && columns.length !== 0) {
|
||||||
|
|||||||
@ -137,7 +137,9 @@ const AuditLogsPage = () => {
|
|||||||
return (
|
return (
|
||||||
<PageContainer>
|
<PageContainer>
|
||||||
<HeaderSwitch />
|
<HeaderSwitch />
|
||||||
<Box display="flex" justifyContent="space-between">
|
<Box sx={{
|
||||||
|
display: "flex", justifyContent: "space-between"
|
||||||
|
}} >
|
||||||
<SwitchUserSsp />
|
<SwitchUserSsp />
|
||||||
</Box>
|
</Box>
|
||||||
|
|
||||||
|
|||||||
@ -77,9 +77,9 @@ const AuditLogsTable = ({
|
|||||||
<Typography component="div" fontWeight="medium">
|
<Typography component="div" fontWeight="medium">
|
||||||
{row.original.user
|
{row.original.user
|
||||||
? row.original.user.full_name +
|
? row.original.user.full_name +
|
||||||
' (' +
|
' (' +
|
||||||
row.original.user.email +
|
row.original.user.email +
|
||||||
')'
|
')'
|
||||||
: '-'}
|
: '-'}
|
||||||
</Typography>
|
</Typography>
|
||||||
</Box>
|
</Box>
|
||||||
@ -118,8 +118,7 @@ const AuditLogsTable = ({
|
|||||||
size: 250,
|
size: 250,
|
||||||
Cell: ({ row }) => (
|
Cell: ({ row }) => (
|
||||||
<Typography>
|
<Typography>
|
||||||
{getRussianNamesForType(row.original.action) ||
|
{getRussianNamesForType(row.original.action) }
|
||||||
row.original.event_type}
|
|
||||||
</Typography>
|
</Typography>
|
||||||
),
|
),
|
||||||
enableColumnActions: false,
|
enableColumnActions: false,
|
||||||
|
|||||||
@ -1,21 +1,19 @@
|
|||||||
export const DEFAULT_ACTIONS = {
|
export const DEFAULT_ACTIONS = {
|
||||||
ROW_CREATE: 'Создание строки',
|
ROW_CREATE: 'Создание строки',
|
||||||
ROW_DELETE: 'Удаление строки',
|
ROW_DELETE: 'Удаление строки',
|
||||||
ACCESS_WINDOW_CHANGE: 'Изменение окна доступа',
|
|
||||||
ACCESS_EXTEND: 'Расширение доступа',
|
ACCESS_EXTEND: 'Расширение доступа',
|
||||||
|
ACCESS_WINDOW_CHANGE: 'Изменение окна доступа',
|
||||||
USER_ROLE_CHANGE: 'Изменение роли пользователя',
|
USER_ROLE_CHANGE: 'Изменение роли пользователя',
|
||||||
CREATE_TASK: 'Создание задачи',
|
CREATE_TASK: 'Создание задачи',
|
||||||
UPDATE_TASK: 'Обновление задачи',
|
UPDATE_TASK: 'Обновление задачи',
|
||||||
DELETE_TASK: 'Удаление задачи',
|
DELETE_TASK: 'Удаление задачи',
|
||||||
USER_CREATE: 'Создание пользователя',
|
USER_CREATE: 'Создание пользователя',
|
||||||
LOGIN: 'Вход в систему',
|
|
||||||
USER_ACCESS_GRANTED: 'Предоставление доступа к ССП/РФ',
|
USER_ACCESS_GRANTED: 'Предоставление доступа к ССП/РФ',
|
||||||
USER_ACCESS_REVOKED: 'Отмена доступа к ССП/РФ',
|
USER_ACCESS_REVOKED: 'Отмена доступа к ССП/РФ',
|
||||||
VSP_CREATE: 'Создание ВСП',
|
VSP_CREATE: 'Создание ВСП',
|
||||||
};
|
};
|
||||||
|
|
||||||
export const ENTITY_RUSSIAN_NAMES = {
|
export const ENTITY_RUSSIAN_NAMES = {
|
||||||
LOGIN: 'Вход в систему',
|
|
||||||
ROW: 'строки',
|
ROW: 'строки',
|
||||||
PROJECT: 'проекта',
|
PROJECT: 'проекта',
|
||||||
TABLE: 'таблицы',
|
TABLE: 'таблицы',
|
||||||
@ -26,6 +24,7 @@ export const ENTITY_RUSSIAN_NAMES = {
|
|||||||
USER_ACCESS: 'доступа к ССП/РФ',
|
USER_ACCESS: 'доступа к ССП/РФ',
|
||||||
USER: 'пользователя',
|
USER: 'пользователя',
|
||||||
ACCESS_WINDOW: 'окна доступа',
|
ACCESS_WINDOW: 'окна доступа',
|
||||||
|
ACCESS: 'окна доступа',
|
||||||
USER_ROLE: 'роли пользователя',
|
USER_ROLE: 'роли пользователя',
|
||||||
VSP: 'ВСП',
|
VSP: 'ВСП',
|
||||||
};
|
};
|
||||||
@ -38,6 +37,7 @@ export const ACTION_RUSSIAN_NAMES = {
|
|||||||
GET: 'Получение',
|
GET: 'Получение',
|
||||||
GRANTED: 'Предоставление',
|
GRANTED: 'Предоставление',
|
||||||
REVOKED: 'Отмена',
|
REVOKED: 'Отмена',
|
||||||
|
EXTEND: 'Расширение',
|
||||||
};
|
};
|
||||||
|
|
||||||
export const getRussianNamesForType = (name) => {
|
export const getRussianNamesForType = (name) => {
|
||||||
|
|||||||
@ -56,11 +56,15 @@ export const EVENT_CONFIGS = {
|
|||||||
},
|
},
|
||||||
ROW_CREATE: {
|
ROW_CREATE: {
|
||||||
sheet: "Лист",
|
sheet: "Лист",
|
||||||
expense_item_id: 'Статья расходов'
|
expense_item_id: 'Статья расходов',
|
||||||
|
form_id: 'Информация о задаче',
|
||||||
|
direction: 'Направление',
|
||||||
},
|
},
|
||||||
ROW_DELETE: {
|
ROW_DELETE: {
|
||||||
sheet: "Лист",
|
sheet: "Лист",
|
||||||
expense_item_id: 'Статья расходов'
|
expense_item_id: 'Статья расходов',
|
||||||
|
form_id: 'Информация о задаче',
|
||||||
|
direction: 'Направление',
|
||||||
},
|
},
|
||||||
PROJECT_CREATE: {
|
PROJECT_CREATE: {
|
||||||
"name": "Название",
|
"name": "Название",
|
||||||
@ -71,5 +75,11 @@ export const EVENT_CONFIGS = {
|
|||||||
"name": "Название",
|
"name": "Название",
|
||||||
"year": "Год",
|
"year": "Год",
|
||||||
"org_unit_id": "СПП/РФ",
|
"org_unit_id": "СПП/РФ",
|
||||||
}
|
},
|
||||||
|
ACCESS_EXTEND:{
|
||||||
|
form_id: 'Информация о задаче',
|
||||||
|
closes_at_after: 'Дата закрытия',
|
||||||
|
closes_at_before: 'Дата открытия',
|
||||||
|
phase_name: 'Названия этапа'
|
||||||
|
},
|
||||||
};
|
};
|
||||||
|
|||||||
@ -1,8 +1,10 @@
|
|||||||
import { DictVspApi } from '../../../../api/dict-vsp';
|
import { DictVspApi } from '../../../../api/dict-vsp';
|
||||||
|
import { FormsSheetApi } from '../../../../api/form_sheet';
|
||||||
|
import { FormsApi } from '../../../../api/forms';
|
||||||
import { SspApi } from '../../../../api/ssp';
|
import { SspApi } from '../../../../api/ssp';
|
||||||
import { TasksApi } from '../../../../api/tasks';
|
import { TasksApi } from '../../../../api/tasks';
|
||||||
import { UsersApi } from '../../../../api/users';
|
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 = {
|
export const VALUE_TRANSFORMERS = {
|
||||||
Роль: transformRole,
|
Роль: transformRole,
|
||||||
@ -14,6 +16,9 @@ export const VALUE_TRANSFORMERS = {
|
|||||||
'Создана для СПП/РФ': transformSspsDict,
|
'Создана для СПП/РФ': transformSspsDict,
|
||||||
'Лист': transformSheet,
|
'Лист': transformSheet,
|
||||||
'СПП/РФ': transformSsp,
|
'СПП/РФ': transformSsp,
|
||||||
|
'Статья расходов': transformExpense,
|
||||||
|
'Информация о задаче': transformForm,
|
||||||
|
'Направление': transformDirection
|
||||||
};
|
};
|
||||||
|
|
||||||
export function transformRole(value) {
|
export function transformRole(value) {
|
||||||
@ -83,3 +88,33 @@ export async function transformSspsDict(ssps) {
|
|||||||
export function transformSheet(value) {
|
export function transformSheet(value) {
|
||||||
return SHEET_NAME[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];
|
||||||
|
}
|
||||||
@ -95,7 +95,9 @@ const TableFooter = ({
|
|||||||
</FormControl>
|
</FormControl>
|
||||||
</Box>
|
</Box>
|
||||||
|
|
||||||
<Stack direction="row" spacing={2} alignItems="center">
|
<Stack sx={{
|
||||||
|
direction: "row", spacing: 2, alignItems: "center"
|
||||||
|
}}>
|
||||||
<Pagination
|
<Pagination
|
||||||
count={Math.max(1, totalPages)}
|
count={Math.max(1, totalPages)}
|
||||||
page={page + 1}
|
page={page + 1}
|
||||||
|
|||||||
@ -142,7 +142,7 @@ function DictVspPage() {
|
|||||||
<DictVspInfo />
|
<DictVspInfo />
|
||||||
{/* <HeaderSwitch /> */}
|
{/* <HeaderSwitch /> */}
|
||||||
<PageContainer>
|
<PageContainer>
|
||||||
<Stack alignItems={'stretch'} width="100%">
|
<Stack sx={{ alignItems: 'stretch' }} width="100%">
|
||||||
<Box width="100%">
|
<Box width="100%">
|
||||||
{user.role_id !== ROLES_NAME_ID.executor_rf && (
|
{user.role_id !== ROLES_NAME_ID.executor_rf && (
|
||||||
<DictVspFilters
|
<DictVspFilters
|
||||||
|
|||||||
@ -106,9 +106,12 @@ function DictsNavigatorPage() {
|
|||||||
</FeatureList>
|
</FeatureList>
|
||||||
<PrimaryButton height={'2.75rem'} onClick={handleNavigateToVSP}>
|
<PrimaryButton height={'2.75rem'} onClick={handleNavigateToVSP}>
|
||||||
<Stack
|
<Stack
|
||||||
spacing={'.25rem'}
|
sx={{
|
||||||
direction={'row'}
|
spacing: '.25rem',
|
||||||
alignItems={'center'}
|
direction: 'row',
|
||||||
|
alignItems: 'center',
|
||||||
|
}}
|
||||||
|
|
||||||
>
|
>
|
||||||
<TransitionSvg />
|
<TransitionSvg />
|
||||||
<p>Открыть справочник объектов</p>
|
<p>Открыть справочник объектов</p>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user