diff --git a/app/panels/mech_rec_cost_prod_plans/datagrids/backend_dg.js b/app/panels/mech_rec_cost_prod_plans/datagrids/backend_dg.js index b913052..3f7be4e 100644 --- a/app/panels/mech_rec_cost_prod_plans/datagrids/backend_dg.js +++ b/app/panels/mech_rec_cost_prod_plans/datagrids/backend_dg.js @@ -48,7 +48,8 @@ const useCostRouteLists = (task, taskType) => { NPAGE_SIZE: DATA_GRID_PAGE_SIZE, NINCLUDE_DEF: costRouteLists.dataLoaded ? 0 : 1 }, - attributeValueProcessor: (name, val) => (["DEXEC_DATE", "DREL_DATE"].includes(name) ? formatDateRF(val) : val), + attributeValueProcessor: (name, val) => + ["DEXEC_DATE", "DREL_DATE"].includes(name) ? formatDateRF(val) : ["SDOCPREF", "SDOCNUMB"].includes(name) ? undefined : val, respArg: "COUT" }); setCostRouteLists(pv => ({ diff --git a/app/panels/mech_rec_cost_prod_plans/mech_rec_cost_prod_plans.js b/app/panels/mech_rec_cost_prod_plans/mech_rec_cost_prod_plans.js index 8c009b2..13c6940 100644 --- a/app/panels/mech_rec_cost_prod_plans/mech_rec_cost_prod_plans.js +++ b/app/panels/mech_rec_cost_prod_plans/mech_rec_cost_prod_plans.js @@ -84,7 +84,26 @@ const STYLES = { TASK_DIALOG_ACTION_CONTAINER: { border: 1, borderColor: "text.primary", borderRadius: "5px", width: "100%" }, FILTERS: { display: "table", float: "right" }, FILTERS_DATE: { display: "table-cell", verticalAlign: "middle" }, - FILTERS_LEVEL: { display: "table-cell", verticalAlign: "middle", paddingLeft: "15px" } + FILTERS_LEVEL: { display: "table-cell", verticalAlign: "middle", paddingLeft: "15px" }, + FILTERS_LEVEL_CAPTION: { display: "flex", alignItems: "center" }, + FILTERS_LEVEL_LIMIT_ICON: { padding: "0px 8px", color: "#9f9c9c" }, + FILTERS_LIMIT_SELECT: nOutOfLimit => { + return nOutOfLimit === 1 + ? { + ".MuiOutlinedInput-notchedOutline": { + borderColor: "#e9863c" + }, + "&:hover .MuiOutlinedInput-notchedOutline": { + borderColor: "#e9863c", + borderWidth: "0.15rem" + }, + "&.Mui-focused .MuiOutlinedInput-notchedOutline": { + borderColor: "#e9863c", + borderWidth: "0.15rem" + } + } + : {}; + } }; //------------------------------------ @@ -236,6 +255,7 @@ const MechRecCostProdPlans = () => { selectedPlanCtlg: null, selectedPlanCtlgMaxLevel: null, selectedPlanCtlgLevel: null, + selectedPlanCtlgOutOfLimit: 0, selectedPlanCtlgSort: null, selectedPlanCtlgMenuItems: null, gantt: {}, @@ -258,6 +278,9 @@ const MechRecCostProdPlans = () => { //Подключение к контексту навигации const { getNavigationSearch } = useContext(NavigationCtx); + //Подключение к контексту сообщений + const { showMsgInfo } = useContext(MessagingСtx); + //Инициализация каталогов планов const initPlanCtlgs = useCallback(async () => { if (!state.init) { @@ -280,6 +303,7 @@ const MechRecCostProdPlans = () => { selectedPlanCtlgSpecsLoaded: false, selectedPlanCtlgMaxLevel: null, selectedPlanCtlgLevel: null, + selectedPlanCtlgOutOfLimit: 0, selectedPlanCtlgSort: null, selectedPlanCtlgMenuItems: null, gantt: {}, @@ -297,6 +321,7 @@ const MechRecCostProdPlans = () => { selectedPlanCtlg: null, selectedPlanCtlgMaxLevel: null, selectedPlanCtlgLevel: null, + selectedPlanCtlgOutOfLimit: 0, selectedPlanCtlgSort: null, selectedPlanCtlgMenuItems: null, gantt: {}, @@ -317,6 +342,7 @@ const MechRecCostProdPlans = () => { ...pv, selectedPlanCtlgMaxLevel: data.NMAX_LEVEL, selectedPlanCtlgLevel: level || level === 0 ? level : data.NMAX_LEVEL, + selectedPlanCtlgOutOfLimit: data.NOUT_OF_LIMIT, selectedPlanCtlgSort: sort, selectedPlanCtlgMenuItems: state.selectedPlanCtlgMenuItems ? state.selectedPlanCtlgMenuItems @@ -370,6 +396,17 @@ const MechRecCostProdPlans = () => { setState(pv => ({ ...pv, selectedTaskDetail: taskRn, selectedTaskDetailType: taskType })); }; + //При открытии окна информации об ограничении уровня + const handleLevelLimitInfoOpen = () => { + //Отображаем информацию + showMsgInfo( + `Размер производственной программы превышает предельно допустимый для одновременного отображения в виде диаграммы Ганта. + Доступные для просмотра уровни вложенности ограничены. + Вы можете просматривать производственную программу частями, используя действие "Открытие панели Производственная программа" в спецификации "Выпуск" + раздела "Планы и отчеты производства изделий".` + ); + }; + //Генерация содержимого return ( @@ -434,8 +471,16 @@ const MechRecCostProdPlans = () => { - До уровня + + До уровня + {state.selectedPlanCtlgOutOfLimit === 1 ? ( + + info + + ) : null} +