71 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| /*
 | |
|     Парус 8 - Панели мониторинга - ПУП - Производственный план цеха
 | |
|     Компонент панели: Таблица строк маршрутного листа
 | |
| */
 | |
| 
 | |
| //---------------------
 | |
| //Подключение библиотек
 | |
| //---------------------
 | |
| 
 | |
| import React from "react"; //Классы React
 | |
| import PropTypes from "prop-types"; //Контроль свойств компонента
 | |
| import { Typography } from "@mui/material"; //Интерфейсные элементы
 | |
| import { P8PDataGrid, P8P_DATA_GRID_SIZE } from "../../components/p8p_data_grid"; //Таблица данных
 | |
| import { P8P_DATA_GRID_CONFIG_PROPS } from "../../config_wrapper"; //Подключение компонентов к настройкам приложения
 | |
| import { useCostRouteListsSpecs } from "./hooks.js"; //Хук состояния таблицы строк маршрутного листа
 | |
| 
 | |
| //---------
 | |
| //Константы
 | |
| //---------
 | |
| 
 | |
| //Стили
 | |
| const STYLES = {
 | |
|     CONTAINER: { margin: "5px 0px", textAlign: "center" }
 | |
| };
 | |
| 
 | |
| //-----------
 | |
| //Тело модуля
 | |
| //-----------
 | |
| 
 | |
| //Таблица строк маршрутного листа
 | |
| const CostRouteListsSpecsDataGrid = ({ mainRowRN }) => {
 | |
|     //Собственное состояние - таблица данных
 | |
|     const [costRouteListsSpecs, setCostRouteListsSpecs] = useCostRouteListsSpecs(mainRowRN);
 | |
| 
 | |
|     //При изменении состояния сортировки
 | |
|     const handleOrderChanged = ({ orders }) => setCostRouteListsSpecs(pv => ({ ...pv, orders: [...orders], pageNumber: 1, reload: true }));
 | |
| 
 | |
|     //При изменении количества отображаемых страниц
 | |
|     const handlePagesCountChanged = () => setCostRouteListsSpecs(pv => ({ ...pv, pageNumber: pv.pageNumber + 1, reload: true }));
 | |
| 
 | |
|     //Генерация содержимого
 | |
|     return (
 | |
|         <div style={STYLES.CONTAINER}>
 | |
|             <Typography variant={"subtitle2"}>Операции</Typography>
 | |
|             {costRouteListsSpecs.dataLoaded ? (
 | |
|                 <P8PDataGrid
 | |
|                     {...P8P_DATA_GRID_CONFIG_PROPS}
 | |
|                     columnsDef={costRouteListsSpecs.columnsDef}
 | |
|                     rows={costRouteListsSpecs.rows}
 | |
|                     size={P8P_DATA_GRID_SIZE.SMALL}
 | |
|                     morePages={costRouteListsSpecs.morePages}
 | |
|                     reloading={costRouteListsSpecs.reload}
 | |
|                     onOrderChanged={handleOrderChanged}
 | |
|                     onPagesCountChanged={handlePagesCountChanged}
 | |
|                 />
 | |
|             ) : null}
 | |
|         </div>
 | |
|     );
 | |
| };
 | |
| 
 | |
| //Контроль свойств - Таблица строк маршрутного листа
 | |
| CostRouteListsSpecsDataGrid.propTypes = {
 | |
|     mainRowRN: PropTypes.number.isRequired
 | |
| };
 | |
| 
 | |
| //----------------
 | |
| //Интерфейс модуля
 | |
| //----------------
 | |
| 
 | |
| export { CostRouteListsSpecsDataGrid };
 |