/* Парус 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: "" } ]; };