Compare commits
2 Commits
0549f18dc4
...
58c3ce07cc
| Author | SHA1 | Date | |
|---|---|---|---|
| 58c3ce07cc | |||
|
|
e1e12d826d |
@ -127,6 +127,7 @@ export const EVENT_CONFIGS = {
|
||||
},
|
||||
ACCESS_EXTEND: {
|
||||
form_id: 'Информация о задаче',
|
||||
project_id: 'Информация о проекте',
|
||||
closes_at_after: 'Дата закрытия (новая)',
|
||||
closes_at_before: 'Дата закрытия (старая)',
|
||||
phase_name: 'Названия этапа',
|
||||
@ -134,6 +135,7 @@ export const EVENT_CONFIGS = {
|
||||
},
|
||||
ACCESS_WINDOW_CHANGE: {
|
||||
form_id: 'Информация о задаче',
|
||||
project_id: 'Информация о проекте',
|
||||
closes_at: 'Дата закрытия',
|
||||
opens_at: 'Дата открытия',
|
||||
phase_name: 'Названия этапа',
|
||||
@ -144,7 +146,11 @@ export const EVENT_CONFIGS = {
|
||||
},
|
||||
};
|
||||
export const EVENT_CONFIGS_MULT_DEPENDENTS = {
|
||||
ACCESS_EXTEND: {
|
||||
'Информация о проекте': ['year'],
|
||||
},
|
||||
ACCESS_WINDOW_CHANGE: {
|
||||
'Колонки в этапе': ['form_id', 'sheet'],
|
||||
'Информация о проекте': ['year'],
|
||||
'Колонки в этапе': ['form_id', 'sheet', 'project_id', 'report_type'],
|
||||
},
|
||||
};
|
||||
|
||||
@ -26,6 +26,7 @@ export const VALUE_TRANSFORMERS = {
|
||||
'СПП/РФ': transformSsp,
|
||||
'Статья расходов': transformExpense,
|
||||
'Информация о задаче': transformForm,
|
||||
'Информация о проекте': transformProjectInfo,
|
||||
Направление: transformDirection,
|
||||
'Для роли': transformRoleChanges,
|
||||
'Колонки в этапе': transformColumns,
|
||||
@ -132,6 +133,16 @@ export async function transformProject(projectId) {
|
||||
}
|
||||
}
|
||||
|
||||
export async function transformProjectInfo(projectId, year) {
|
||||
const res = await ProjectsApi.get(projectId);
|
||||
const project = res.result;
|
||||
return {
|
||||
название: project.name,
|
||||
'ССП/РФ': project.org_unit_name || '—',
|
||||
Год: year || '—',
|
||||
};
|
||||
}
|
||||
|
||||
export function transformRole(value) {
|
||||
return ROLES_ID_RUSSIAN_NAME[value] || 'Роль не найдена';
|
||||
}
|
||||
@ -243,13 +254,21 @@ export function transformDirection(direction) {
|
||||
return DIRECTION_TRANSLATE[direction];
|
||||
}
|
||||
|
||||
export async function transformColumns(cols, formId, sheet) {
|
||||
if (!formId || !sheet) return cols;
|
||||
const res = await FormsApi.getForm(formId);
|
||||
const form = res.result;
|
||||
const formType = form.form_type_code;
|
||||
export async function transformColumns(cols, formId, sheet, projectId, reportType) {
|
||||
let formType;
|
||||
let configSheet = sheet;
|
||||
|
||||
const { config } = await import(`../../../../components/RealtimeTable/constants/${formType}/${sheet}.js`);
|
||||
if (formId && sheet) {
|
||||
const res = await FormsApi.getForm(formId);
|
||||
formType = res.result.form_type_code;
|
||||
} else if (projectId && reportType) {
|
||||
formType = 'PROJECT';
|
||||
configSheet = reportType.toUpperCase();
|
||||
} else {
|
||||
return cols;
|
||||
}
|
||||
|
||||
const { config } = await import(`../../../../components/RealtimeTable/constants/${formType}/${configSheet}.js`);
|
||||
const columns = config.config.columns;
|
||||
function findColumnAndHeaders(columns, targetAccessorKey) {
|
||||
// Рекурсивная функция для поиска колонки и сбора родителей
|
||||
@ -285,19 +304,18 @@ export async function transformColumns(cols, formId, sheet) {
|
||||
column: result.column,
|
||||
path: result.headers.join(' → '),
|
||||
};
|
||||
} else {
|
||||
}
|
||||
return {
|
||||
headers: [],
|
||||
column: null,
|
||||
path: null,
|
||||
error: `Колонка с accessorKey "${targetAccessorKey}" не найдена`,
|
||||
};
|
||||
}
|
||||
}
|
||||
if (Array.isArray(cols)) {
|
||||
const res = [];
|
||||
cols.forEach((c) => {
|
||||
res.push(findColumnAndHeaders(columns, 'data.' + c).path || '');
|
||||
res.push(findColumnAndHeaders(columns, `data.${c}`).path || '');
|
||||
});
|
||||
return res;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user