diff --git a/app/panels/prj_jobs/prj_jobs.js b/app/panels/prj_jobs/prj_jobs.js index 307e578..f2ac9fb 100644 --- a/app/panels/prj_jobs/prj_jobs.js +++ b/app/panels/prj_jobs/prj_jobs.js @@ -33,6 +33,7 @@ import { BackEndСtx } from "../../context/backend"; //Контекст взаи import { MessagingСtx } from "../../context/messaging"; //Контекст сообщений import { ApplicationСtx } from "../../context/application"; //Контекст приложения import { formatDateJSONDateOnly } from "../../core/utils"; //Вспомогательные функции +import { APP_BAR_HEIGHT } from "../../components/p8p_app_workspace"; //Заголовок страницы import { P8P_GANTT_CONFIG_PROPS } from "../../config_wrapper"; //Подключение компонентов к настройкам приложения import { P8PGantt } from "../../components/p8p_gantt"; //Диаграмма Ганта import { formatDateRF } from "../../core/utils"; //Вспомогательные функции @@ -44,12 +45,6 @@ import { taskAttributeRenderer } from "./layouts"; //Дополнительна //Константы //--------- -//Высота диаграммы Ганта -const GANTT_HEIGHT = "75vh"; - -//Ширина диаграммы Ганта -const GANTT_WIDTH = "98vw"; - //Стили const STYLES = { PROJECTS_LIST_ITEM_NOJOBS: { backgroundColor: "#ff000045" }, @@ -58,11 +53,11 @@ const STYLES = { PROJECTS_LIST_ITEM_SECONDARY_NOJOBS: { color: "red" }, PROJECTS_LIST_ITEM_SECONDARY_NOEDIT: { color: "gray" }, PROJECTS_LIST_ITEM_SECONDARY_CHANGED: { color: "green" }, - PROJECTS_BUTTON: { position: "absolute" }, + PROJECTS_BUTTON: { position: "absolute", top: `calc(${APP_BAR_HEIGHT} + 16px)`, left: "16px" }, PROJECTS_DRAWER: { width: "250px", flexShrink: 0, [`& .MuiDrawer-paper`]: { width: "250px", boxSizing: "border-box" } }, - GANTT_CONTAINER: { height: GANTT_HEIGHT, width: GANTT_WIDTH }, - GANTT_TITLE: { paddingLeft: "100px", paddingRight: "120px" }, - PERIODS_BUTTON: { position: "absolute", right: "20px" }, + GANTT_CONTAINER: { height: `calc(100vh - ${APP_BAR_HEIGHT})`, width: "100vw", paddingTop: "24px" }, + GANTT_TITLE: { paddingLeft: "150px", paddingRight: "150px" }, + PERIODS_BUTTON: { position: "absolute", top: `calc(${APP_BAR_HEIGHT} + 16px)`, right: "16px" }, PERIODS_DRAWER: { width: "1200px", flexShrink: 0, [`& .MuiDrawer-paper`]: { width: "1200px", boxSizing: "border-box" } } }; @@ -452,7 +447,7 @@ const PrjJobs = () => { //Генерация содержимого return ( - + {state.showInitDialog ? ( { {state.ident ? : null} {state.init == true ? ( - + {state.selectedProjectJobsLoaded ? ( - - - + ) : !state.selectedProject ? ( - + + + ) : null} diff --git a/app/panels/samples/gantt.js b/app/panels/samples/gantt.js index adfaf02..663f9e2 100644 --- a/app/panels/samples/gantt.js +++ b/app/panels/samples/gantt.js @@ -9,22 +9,9 @@ import React, { useState, useContext, useCallback, useEffect } from "react"; //Классы React import PropTypes from "prop-types"; //Контроль свойств компонента -import { - Typography, - Grid, - Stack, - Icon, - Box, - FormControlLabel, - Checkbox, - Card, - CardHeader, - CardActions, - Avatar, - CardContent, - Button -} from "@mui/material"; //Интерфейсные элементы +import { Typography, Grid, Stack, Icon, FormControlLabel, Checkbox, Card, CardHeader, CardActions, Avatar, CardContent, Button } from "@mui/material"; //Интерфейсные элементы import { formatDateJSONDateOnly, formatDateRF } from "../../core/utils"; //Вспомогательные функции +import { APP_BAR_HEIGHT } from "../../components/p8p_app_workspace"; //Заголовок страницы import { P8PGantt } from "../../components/p8p_gantt"; //Диаграмма Ганта import { P8P_GANTT_CONFIG_PROPS } from "../../config_wrapper"; //Подключение компонентов к настройкам приложения import { BackEndСtx } from "../../context/backend"; //Контекст взаимодействия с сервером @@ -33,17 +20,25 @@ import { BackEndСtx } from "../../context/backend"; //Контекст взаи //Константы //--------- -//Высота диаграммы Ганта -const GANTT_HEIGHT = "70vh"; +//Отступ контейнера страницы от заголовка +const CONTAINER_PADDING_TOP = "20px"; -//Ширина диаграммы Ганта -const GANTT_WIDTH = "98vw"; +//Высота заголовка страницы +const TITLE_HEIGHT = "47px"; + +//Высота элементов управления +const CONTROL_HEIGHT = "42px"; //Стили const STYLES = { - CONTAINER: { textAlign: "center", paddingTop: "20px" }, - TITLE: { paddingBottom: "15px" }, - GANTT_CONTAINER: { height: GANTT_HEIGHT, width: GANTT_WIDTH } + CONTAINER: { textAlign: "center", paddingTop: CONTAINER_PADDING_TOP }, + TITLE: { paddingBottom: "15px", height: TITLE_HEIGHT }, + CONTROL: { height: CONTROL_HEIGHT }, + GANTT_CONTAINER: { + height: `calc(100vh - ${APP_BAR_HEIGHT} - ${TITLE_HEIGHT} - ${CONTROL_HEIGHT} - ${CONTAINER_PADDING_TOP})`, + width: "100vw", + paddingTop: "5px" + } }; //--------------------------------------------- @@ -172,23 +167,22 @@ const Gantt = ({ title }) => { {title} setState(pv => ({ ...pv, useCustomTaskDialog: !pv.useCustomTaskDialog }))} />} label="Отображать пользовательский диалог задачи" /> - + {state.dataLoaded ? ( - - - + ) : null}