/*
Парус 8 - Панели мониторинга - ТОиР - Гаражка
Дополнительная разметка и вёрстка клиентских элементов
*/
//---------------------
//Подключение библиотек
//---------------------
import React from "react"; //Классы React
import { Icon, Stack, Link, Typography } from "@mui/material"; //Интерфейсные компоненты
import { hasValue, formatDateRF } from "../../core/utils"; //Вспомогательные функции
//---------
//Константы
//---------
//Маска разделителя
const SMASK_SEPARATE = "<|>";
//-----------
//Тело модуля
//-----------
//Формирование значения для колонки "Состояние"
const formatStateValue = (value, addText = false) => {
const [text, icon] = value == 0 ? ["На линии", "done"] : value == 1 ? ["Ремонт", "build"] : ["Не определен", "question_mark"];
return (
{icon}
{addText == true ? text : null}
);
};
//Формирование списка значений
const formatListValue = value => {
//Считываем массив значений
const listValues = hasValue(value) ? value.split(SMASK_SEPARATE) : [];
//Формируем список значений
return (
<>
{listValues.length !== 0 ? (
{listValues.map((el, index) => {
return {`${el}`};
})}
) : null}
>
);
};
//Формирование значения для колонки "Документ ремонта"
const formatRepairDocValue = (value, onRepairSheetOpen) => {
//Считываем массив документов
const listDocs = hasValue(value) ? value.split(SMASK_SEPARATE) : [];
//Формируем список документов с ссылкой
return (
<>
{listDocs.length !== 0 ? (
{listDocs.map((el, index) => {
//Считываем рег. номер
const rn = el.match(/<(.*?)>/)[1];
//Считываем информацию о документе
const docInfo = el.replace(`<${rn}>`, "");
//Формируем ссылку на документ
return (
onRepairSheetOpen({ nRn: rn })}
key={index}
>
{docInfo}
);
})}
) : null}
>
);
};
//Форматирование значений колонок
export const valueFormatter = ({ value, columnDef, onRepairSheetOpen }) => {
switch (columnDef.name) {
case "NSTATE":
return formatStateValue(value, false);
case "SDAMTYPE_NAME":
return formatListValue(value);
case "SEQDAMCTRL_NOTE":
return formatListValue(value);
case "SDRIVER":
return formatListValue(value);
case "SREPAIR_DOC":
return formatRepairDocValue(value, onRepairSheetOpen);
}
return value;
};
//Форматирование фильтров панелей для фильтров таблицы
export const formatFilterValues = filter => {
return [
{ name: "DDATE", from: formatDateRF(filter.dDate), to: formatDateRF(filter.dDate) },
{ name: "SCUSTOMERDEPT_FILTER", from: filter.sCustomerDept, to: "" }
];
};