78 lines
2.9 KiB
JavaScript
78 lines
2.9 KiB
JavaScript
/*
|
||
Парус 8 - Панели мониторинга - ТОиР - Аналитика по ремонтам АТС
|
||
Дополнительная разметка и вёрстка клиентских элементов
|
||
*/
|
||
|
||
//---------------------
|
||
//Подключение библиотек
|
||
//---------------------
|
||
|
||
import React from "react"; //Классы React
|
||
import { Icon, Stack, Link } from "@mui/material"; //Интерфейсные компоненты
|
||
import { formatDateRF } from "../../core/utils"; //Вспомогательные функции
|
||
|
||
//---------
|
||
//Константы
|
||
//---------
|
||
|
||
//-----------
|
||
//Тело модуля
|
||
//-----------
|
||
|
||
//Формирование значения для колонки "Состояние"
|
||
const formatStateValue = (value, addText = false) => {
|
||
const [text, icon] =
|
||
value == 0
|
||
? ["Не утвержден", "clear"]
|
||
: value == 2
|
||
? ["Утвержден", "done"]
|
||
: value == 3
|
||
? ["Закрыт", "lock_outlined"]
|
||
: ["Не определен", "question_mark"];
|
||
return (
|
||
<Stack direction="row" gap={0.5} alignItems="center" justifyContent="center">
|
||
<Icon title={text}>{icon}</Icon>
|
||
{addText == true ? text : null}
|
||
</Stack>
|
||
);
|
||
};
|
||
|
||
//Формирование значения для колонки "Номер документа"
|
||
const formatNumbValue = (row, columnDef, showEquipRepairSheets) => {
|
||
console.log(columnDef.name);
|
||
return (
|
||
<Link component="button" variant="body2" align="left" underline="hover" onClick={() => showEquipRepairSheets({ nRn: row["NRN"] })}>
|
||
{row[columnDef.name]}
|
||
</Link>
|
||
);
|
||
};
|
||
|
||
//Генерация представления ячейки c данными
|
||
export const dataCellRender = ({ row, columnDef, showEquipRepairSheets }) => {
|
||
switch (columnDef.name) {
|
||
case "SNUMB":
|
||
return { data: formatNumbValue(row, columnDef, showEquipRepairSheets) };
|
||
}
|
||
};
|
||
|
||
//Форматирование значений колонок
|
||
export const valueFormatter = ({ value, columnDef }) => {
|
||
switch (columnDef.name) {
|
||
case "NSTATE":
|
||
return formatStateValue(value, false);
|
||
}
|
||
return value;
|
||
};
|
||
|
||
//Форматирование фильтров панелей для фильтров таблицы
|
||
export const formatFilterValues = filter => {
|
||
return [
|
||
{ name: "DDATEBEGIN_FILTER", from: formatDateRF(filter.dDateBegin), to: formatDateRF(filter.dDateEnd) },
|
||
{ name: "SCUSTOMERDEPT_FILTER", from: filter.sCustomerDept, to: "" },
|
||
{ name: "SWORKTYPE_FILTER", from: filter.sWorkType, to: "" },
|
||
{ name: "SWORKKIND_FILTER", from: filter.sWorkKind, to: "" },
|
||
{ name: "NSTATE_FILTER", from: filter.nState, to: "" },
|
||
{ name: "NTYPESPEND_FILTER", from: filter.nType, to: "" }
|
||
];
|
||
};
|