Изменения панели "Гаражка"

This commit is contained in:
Dollerino 2026-04-09 17:58:48 +03:00
parent 261f2cf490
commit 199d27fe14
9 changed files with 57 additions and 16 deletions

View File

@ -11,7 +11,7 @@ import React from "react"; //Классы React
import PropTypes from "prop-types"; //Контроль свойств компонента
import { Chip, Stack, Icon, IconButton, Box } from "@mui/material"; //Интерфейсные компоненты
import { APP_STYLES } from "../../../app.styles"; //Типовые стили
import { formatDateRF } from "../../core/utils"; //Вспомогательные функции
import { formatDateRF, formatDateTimeRF } from "../../core/utils"; //Вспомогательные функции
//---------
//Константы
@ -81,6 +81,10 @@ const Filter = ({ filter, onFilterOpen }) => {
{filter.sCustomerDept ? (
<FilterItem caption={"Транспортный участок"} value={filter.sCustomerDept} onClick={handleClick} />
) : null}
{filter.dDateKOAFrom ? (
<FilterItem caption="КОА с" value={formatDateTimeRF(filter.dDateKOAFrom)} onClick={handleClick} />
) : null}
{filter.dDateKOATo ? <FilterItem caption="КОА по" value={formatDateTimeRF(filter.dDateKOATo)} onClick={handleClick} /> : null}
</Stack>
</Stack>
</Box>

View File

@ -74,7 +74,7 @@ const FilterDialog = ({ initial, isFiltersInit, onCancel, onOk }) => {
//При очистке фильтра
const handleClear = () => {
setFilter({ dDate: "", sCustomerDept: "" });
setFilter({ dDate: "", sCustomerDept: "", dDateKOAFrom: "", dDateKOATo: "" });
};
//При закрытии диалога без изменения фильтра
@ -135,7 +135,7 @@ const FilterDialog = ({ initial, isFiltersInit, onCancel, onOk }) => {
<legend style={STYLES.LEGEND}>Расчет КОА</legend>
<TextField
name="dDateKOAFrom"
type="date"
type="datetime-local"
InputLabelProps={{ shrink: true }}
value={filter.dDateKOAFrom}
onChange={handleValueChanged}
@ -145,7 +145,7 @@ const FilterDialog = ({ initial, isFiltersInit, onCancel, onOk }) => {
/>
<TextField
name="dDateKOATo"
type="date"
type="datetime-local"
InputLabelProps={{ shrink: true }}
value={filter.dDateKOATo}
onChange={handleValueChanged}

View File

@ -18,7 +18,7 @@ import { FilterDialog } from "./filter_dialog"; //Диалог фильтра
import { Filter } from "./filter"; //Фильтры
import { useFilters } from "./hooks/filter_hooks"; //Хуки фильтров
import { useChartInfo, useChartCalcs, useTableATC } from "./hooks/hooks";
import { valueFormatter } from "./layouts"; //Вспомогательные функции верстки
import { valueFormatter, dataCellRender } from "./layouts"; //Вспомогательные функции верстки
import { ChartFilter } from "./chart_filter"; //Фильтр графика
import { hasValue } from "../../core/utils"; //Вспомогательные функции
import { useDictionary } from "./hooks/dict_hooks"; //Хуки для открытия раздела
@ -57,7 +57,7 @@ const CHART_NAMES = {
//Корневая панель гаражки
const HaulerAnl = () => {
//Вспомогательные функции открытия раздела
const { handleEquipRepairSheetsOpen } = useDictionary();
const { handleEquipRepairSheetsOpen, handleHaulerUnitsCardsOpen } = useDictionary();
//Собственное состояние - признак отображения фильтров
const [isFilterOpen, setIsFilterOpen] = useState(true);
@ -209,6 +209,7 @@ const HaulerAnl = () => {
onOrderChanged={handleOrderChanged}
onFilterChanged={handleFilterChanged}
onPagesCountChanged={handlePagesCountChanged}
dataCellRender={prms => dataCellRender({ ...prms, showHaulerUnitsCards: handleHaulerUnitsCardsOpen })}
valueFormatter={prms => valueFormatter({ ...prms, onRepairSheetOpen: handleEquipRepairSheetsOpen })}
/>
) : null}

View File

@ -75,12 +75,27 @@ const useDictionary = () => {
[pOnlineShowDictionary]
);
//Отображение раздела "Картотека АТС"
const handleHaulerUnitsCardsOpen = useCallback(
async prms => {
pOnlineShowDictionary({
unitCode: "HaulerUnitsCards",
inputParameters: [{ name: "in_RN", value: prms.nRn }],
callBack: res => {
res.success ? prms.callBack(res) : null;
}
});
},
[pOnlineShowDictionary]
);
//Возвращаем функции открытия разделов
return {
handleInsDepartmentOpen,
handleEquipTypeWorksOpen,
handleEquipWorkKindsOpen,
handleEquipRepairSheetsOpen
handleEquipRepairSheetsOpen,
handleHaulerUnitsCardsOpen
};
};

View File

@ -164,7 +164,6 @@ const useTableATC = ({ storedArgs = {} }) => {
morePages: (data.XDATA_GRID.rows || []).length >= 10
}));
} catch (e) {
console.log(e);
setDataGrid(pv => ({ ...pv, loaded: false, reload: false }));
}
};

View File

@ -24,7 +24,14 @@ const SMASK_SEPARATE = "<|>";
//Формирование значения для колонки "Состояние"
const formatStateValue = (value, addText = false) => {
const [text, icon] = value == 0 ? ["На линии", "done"] : value == 1 ? ["Ремонт", "build"] : ["Не определен", "question_mark"];
const [text, icon] =
value == 0
? ["На линии", "done"]
: value == 1
? ["Ремонт", "build"]
: value == 2
? ["Есть повреждения", "construction"]
: ["Не определен", "question_mark"];
return (
<Stack direction="row" gap={0.5} alignItems="center" justifyContent="center">
<Icon title={text}>{icon}</Icon>
@ -85,6 +92,23 @@ const formatRepairDocValue = (value, onRepairSheetOpen) => {
);
};
//Формирование значения для колонки "Гос. Номер Тягача"
const formatStateNumbTGValue = (row, columnDef, showHaulerUnitsCards) => {
return (
<Link component="button" variant="body2" align="left" underline="hover" onClick={() => showHaulerUnitsCards({ nRn: row["NRN"] })}>
{row[columnDef.name]}
</Link>
);
};
//Генерация представления ячейки c данными
export const dataCellRender = ({ row, columnDef, showHaulerUnitsCards }) => {
switch (columnDef.name) {
case "SSTATE_NUMB_TG":
return { data: formatStateNumbTGValue(row, columnDef, showHaulerUnitsCards) };
}
};
//Форматирование значений колонок
export const valueFormatter = ({ value, columnDef, onRepairSheetOpen }) => {
switch (columnDef.name) {

File diff suppressed because one or more lines are too long

View File

@ -162,7 +162,6 @@ const useTableRepairs = ({ storedArgs = [] }) => {
morePages: (data.XDATA_GRID.rows || []).length >= 10
}));
} catch (e) {
console.log(e);
setDataGrid(pv => ({ ...pv, loaded: false, reload: false }));
}
};

View File

@ -39,7 +39,6 @@ const formatStateValue = (value, addText = false) => {
//Формирование значения для колонки "Номер документа"
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]}