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

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 PropTypes from "prop-types"; //Контроль свойств компонента
import { Chip, Stack, Icon, IconButton, Box } from "@mui/material"; //Интерфейсные компоненты import { Chip, Stack, Icon, IconButton, Box } from "@mui/material"; //Интерфейсные компоненты
import { APP_STYLES } from "../../../app.styles"; //Типовые стили 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 ? ( {filter.sCustomerDept ? (
<FilterItem caption={"Транспортный участок"} value={filter.sCustomerDept} onClick={handleClick} /> <FilterItem caption={"Транспортный участок"} value={filter.sCustomerDept} onClick={handleClick} />
) : null} ) : 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>
</Stack> </Stack>
</Box> </Box>

View File

@ -74,7 +74,7 @@ const FilterDialog = ({ initial, isFiltersInit, onCancel, onOk }) => {
//При очистке фильтра //При очистке фильтра
const handleClear = () => { 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> <legend style={STYLES.LEGEND}>Расчет КОА</legend>
<TextField <TextField
name="dDateKOAFrom" name="dDateKOAFrom"
type="date" type="datetime-local"
InputLabelProps={{ shrink: true }} InputLabelProps={{ shrink: true }}
value={filter.dDateKOAFrom} value={filter.dDateKOAFrom}
onChange={handleValueChanged} onChange={handleValueChanged}
@ -145,7 +145,7 @@ const FilterDialog = ({ initial, isFiltersInit, onCancel, onOk }) => {
/> />
<TextField <TextField
name="dDateKOATo" name="dDateKOATo"
type="date" type="datetime-local"
InputLabelProps={{ shrink: true }} InputLabelProps={{ shrink: true }}
value={filter.dDateKOATo} value={filter.dDateKOATo}
onChange={handleValueChanged} onChange={handleValueChanged}

View File

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

View File

@ -75,12 +75,27 @@ const useDictionary = () => {
[pOnlineShowDictionary] [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 { return {
handleInsDepartmentOpen, handleInsDepartmentOpen,
handleEquipTypeWorksOpen, handleEquipTypeWorksOpen,
handleEquipWorkKindsOpen, handleEquipWorkKindsOpen,
handleEquipRepairSheetsOpen handleEquipRepairSheetsOpen,
handleHaulerUnitsCardsOpen
}; };
}; };

View File

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

View File

@ -24,7 +24,14 @@ const SMASK_SEPARATE = "<|>";
//Формирование значения для колонки "Состояние" //Формирование значения для колонки "Состояние"
const formatStateValue = (value, addText = false) => { 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 ( return (
<Stack direction="row" gap={0.5} alignItems="center" justifyContent="center"> <Stack direction="row" gap={0.5} alignItems="center" justifyContent="center">
<Icon title={text}>{icon}</Icon> <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 }) => { export const valueFormatter = ({ value, columnDef, onRepairSheetOpen }) => {
switch (columnDef.name) { 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 morePages: (data.XDATA_GRID.rows || []).length >= 10
})); }));
} catch (e) { } catch (e) {
console.log(e);
setDataGrid(pv => ({ ...pv, loaded: false, reload: false })); setDataGrid(pv => ({ ...pv, loaded: false, reload: false }));
} }
}; };

View File

@ -39,7 +39,6 @@ const formatStateValue = (value, addText = false) => {
//Формирование значения для колонки "Номер документа" //Формирование значения для колонки "Номер документа"
const formatNumbValue = (row, columnDef, showEquipRepairSheets) => { const formatNumbValue = (row, columnDef, showEquipRepairSheets) => {
console.log(columnDef.name);
return ( return (
<Link component="button" variant="body2" align="left" underline="hover" onClick={() => showEquipRepairSheets({ nRn: row["NRN"] })}> <Link component="button" variant="body2" align="left" underline="hover" onClick={() => showEquipRepairSheets({ nRn: row["NRN"] })}>
{row[columnDef.name]} {row[columnDef.name]}