256 lines
8.6 KiB
JavaScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
Парус 8 - Панели мониторинга - УДП - Доски задач
Пользовательские хуки: Хуки открытия разделов
*/
//---------------------
//Подключение библиотек
//---------------------
import { useContext, useCallback } from "react"; //Классы React
import { ApplicationСtx } from "../../../context/application"; //Контекст приложения
//-----------
//Тело модуля
//-----------
//Состояние открытия разделов
const useDictionary = () => {
//Подключение к контексту приложения
const { pOnlineShowDictionary } = useContext(ApplicationСtx);
//Отображение раздела "Сотрудники"
const handleClientPersonOpen = useCallback(
async prms => {
pOnlineShowDictionary({
unitCode: "ClientPersons",
showMethod: "main",
inputParameters: [{ name: "in_CODE", value: prms.sCode }],
callBack: res => {
res.success ? prms.callBack(res) : null;
}
});
},
[pOnlineShowDictionary]
);
//Отображение раздела "Клиенты"
const handleClientClientsOpen = useCallback(
async prms => {
pOnlineShowDictionary({
unitCode: "ClientClients",
showMethod: "main",
inputParameters: [{ name: "in_CLIENT_CODE", value: prms.sCode }],
callBack: res => {
res.success ? prms.callBack(res) : null;
}
});
},
[pOnlineShowDictionary]
);
//Отображение раздела "Каталоги"
const handleCatalogTreeOpen = useCallback(
async prms => {
pOnlineShowDictionary({
unitCode: "CatalogTree",
showMethod: "main",
inputParameters: [
{ name: "in_DOCNAME", value: prms.sUnitName },
{ name: "in_NAME", value: prms.sName }
],
callBack: res => {
res.success ? prms.callBack(res) : null;
}
});
},
[pOnlineShowDictionary]
);
//Отображение раздела "Типы событий"
const handleEventTypesOpen = useCallback(
async prms => {
pOnlineShowDictionary({
unitCode: "ClientEventTypes",
showMethod: "dictionary",
inputParameters: [{ name: "pos_eventtypecode", value: prms.sCode }],
callBack: res => {
res.success ? prms.callBack(res) : null;
}
});
},
[pOnlineShowDictionary]
);
//Отображение раздела "Контрагенты"
const handleAgnlistOpen = useCallback(
async prms => {
pOnlineShowDictionary({
unitCode: "AGNLIST",
showMethod: "agents",
inputParameters: [{ name: "pos_agnmnemo", value: prms.sMnemo }],
callBack: res => {
res.success ? prms.callBack(res) : null;
}
});
},
[pOnlineShowDictionary]
);
//Отображение раздела "Штатные подразделения"
const handleInsDepartmentOpen = useCallback(
async prms => {
pOnlineShowDictionary({
unitCode: "INS_DEPARTMENT",
inputParameters: [{ name: "in_CODE", value: prms.sCode }],
callBack: res => {
res.success ? prms.callBack(res) : null;
}
});
},
[pOnlineShowDictionary]
);
//Отображение раздела "Нештатные структуры"
const handleCostStaffGroupsOpen = useCallback(
async prms => {
pOnlineShowDictionary({
unitCode: "CostStaffGroups",
inputParameters: [{ name: "in_CODE", value: prms.sCode }],
callBack: res => {
res.success ? prms.callBack(res) : null;
}
});
},
[pOnlineShowDictionary]
);
//Отображение раздела "Дополнительные словари"
const handleExtraDictionariesOpen = useCallback(
async prms => {
pOnlineShowDictionary({
unitCode: "ExtraDictionaries",
showMethod: "values",
inputParameters: [
{ name: "pos_rn", value: prms.nRn },
{ name: prms.sParamName, value: prms.paramValue }
],
callBack: res => {
res.success ? prms.callBack(res) : null;
}
});
},
[pOnlineShowDictionary]
);
//Отображение раздела "Маршруты событий (исполнители в точках)"
const handleEventRoutesPointExecutersOpen = useCallback(
async prms => {
pOnlineShowDictionary({
unitCode: "EventRoutesPointExecuters",
showMethod: "executers",
inputParameters: prms.inputParameters,
callBack: res => {
res.success ? prms.callBack(res) : null;
}
});
},
[pOnlineShowDictionary]
);
//Отображение раздела "События"
const handleClientEventsOpen = useCallback(
async prms => {
pOnlineShowDictionary({
unitCode: "ClientEvents",
inputParameters: [{ name: "in_Ident", value: prms.nIdent }]
});
},
[pOnlineShowDictionary]
);
//Отображение раздела "События (примечания)"
const handleClientEventsNotesOpen = useCallback(
async prms => {
pOnlineShowDictionary({
unitCode: "ClientEventsNotes",
showMethod: "main",
inputParameters: [{ name: "in_PRN", value: prms.nPrn }]
});
},
[pOnlineShowDictionary]
);
//Отображение раздела "Присоединенные документы"
const handleFileLinksOpen = useCallback(
async prms => {
pOnlineShowDictionary({
unitCode: "FileLinks",
showMethod: "main_link",
inputParameters: [
{ name: "in_PRN", value: prms.nPrn },
{ name: "in_UNITCODE", value: prms.sUnitCode }
]
});
},
[pOnlineShowDictionary]
);
//Отображение раздела "Маршруты событий (точки перехода)"
const handleEventRoutesPointsPassessOpen = useCallback(
async prms => {
pOnlineShowDictionary({
unitCode: "EventRoutesPointsPasses",
showMethod: "main_passes",
inputParameters: [
{ name: "in_ENVTYPE_CODE", value: prms.sEventType },
{ name: "in_ENVSTAT_CODE", value: prms.sEventStatus },
{ name: "in_POINT", value: prms.nPoint }
],
callBack: res => {
res.success ? prms.callBack(res) : null;
}
});
},
[pOnlineShowDictionary]
);
//Универсальное отображение раздела
const handleUnitOpen = useCallback(
async prms => {
pOnlineShowDictionary({
unitCode: prms.sUnitCode,
showMethod: prms.sShowMethod,
inputParameters: prms.inputParameters,
callBack: res => {
res.success ? prms.callBack(res) : null;
}
});
},
[pOnlineShowDictionary]
);
return {
handleClientPersonOpen,
handleClientClientsOpen,
handleCatalogTreeOpen,
handleEventTypesOpen,
handleAgnlistOpen,
handleInsDepartmentOpen,
handleCostStaffGroupsOpen,
handleExtraDictionariesOpen,
handleEventRoutesPointExecutersOpen,
handleClientEventsOpen,
handleClientEventsNotesOpen,
handleFileLinksOpen,
handleEventRoutesPointsPassessOpen,
handleUnitOpen
};
};
//----------------
//Интерфейс модуля
//----------------
export { useDictionary };