ЦИТК-994 - панель "Доски задач", добавлено действие "Переместить" для карточек событий
Reviewed-on: #38
This commit is contained in:
commit
ea83eba5b5
@ -86,19 +86,18 @@ const CardActions = ({
|
|||||||
<Icon>more_vert</Icon>
|
<Icon>more_vert</Icon>
|
||||||
</IconButton>
|
</IconButton>
|
||||||
<Menu id={`${taskRn}_menu`} anchorEl={cardActions.anchorMenuMethods} open={cardActions.openMethods} onClose={onMethodsMenuClose}>
|
<Menu id={`${taskRn}_menu`} anchorEl={cardActions.anchorMenuMethods} open={cardActions.openMethods} onClose={onMethodsMenuClose}>
|
||||||
{menuItems.map(action => {
|
{menuItems.map(action =>
|
||||||
if (action.visible)
|
action.visible ? (
|
||||||
return (
|
<MenuItem
|
||||||
<MenuItem
|
sx={action.delimiter ? STYLES.MENU_ITEM_DELIMITER : {}}
|
||||||
sx={action.delimiter ? STYLES.MENU_ITEM_DELIMITER : {}}
|
key={`${taskRn}_${action.method}`}
|
||||||
key={`${taskRn}_${action.method}`}
|
onClick={() => handleActionClick(action)}
|
||||||
onClick={() => handleActionClick(action)}
|
>
|
||||||
>
|
<Icon>{action.icon}</Icon>
|
||||||
<Icon>{action.icon}</Icon>
|
<Typography pl={1}>{action.name}</Typography>
|
||||||
<Typography pl={1}>{action.name}</Typography>
|
</MenuItem>
|
||||||
</MenuItem>
|
) : null
|
||||||
);
|
)}
|
||||||
})}
|
|
||||||
</Menu>
|
</Menu>
|
||||||
</Box>
|
</Box>
|
||||||
);
|
);
|
||||||
@ -132,7 +131,7 @@ const TaskCard = ({ task, index, onTasksReload, colorRule, pointSettings, onOpen
|
|||||||
const [menuItems, setMenuItems] = useState([]);
|
const [menuItems, setMenuItems] = useState([]);
|
||||||
|
|
||||||
//Вспомогательные функции открытия раздела
|
//Вспомогательные функции открытия раздела
|
||||||
const { handleClientEventsOpen, handleClientEventsNotesOpen, handleFileLinksOpen } = useDictionary();
|
const { handleClientEventsOpen, handleClientEventsNotesOpen, handleFileLinksOpen, handleCatalogTreeOpen } = useDictionary();
|
||||||
|
|
||||||
//Состояние вспомогательных функций событий
|
//Состояние вспомогательных функций событий
|
||||||
const { handleTaskStateChange, handleTaskSend } = useTasksFunctions();
|
const { handleTaskStateChange, handleTaskSend } = useTasksFunctions();
|
||||||
@ -182,8 +181,21 @@ const TaskCard = ({ task, index, onTasksReload, colorRule, pointSettings, onOpen
|
|||||||
[executeStored]
|
[executeStored]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
//При перемещении в каталог
|
||||||
|
const handleTaskMove = useCallback(
|
||||||
|
async ({ nEvent, nCrn, onReload }) => {
|
||||||
|
await executeStored({
|
||||||
|
stored: "PKG_P8PANELS_CLNTTSKBRD.CLNEVENTS_MOVE",
|
||||||
|
args: { NCLNEVENTS: nEvent, NCRN: nCrn }
|
||||||
|
});
|
||||||
|
//Если требуется перезагрузить данные
|
||||||
|
onReload ? onReload() : null;
|
||||||
|
},
|
||||||
|
[executeStored]
|
||||||
|
);
|
||||||
|
|
||||||
//По нажатию действия "Направить"
|
//По нажатию действия "Направить"
|
||||||
const handleSendAction = useCallback(
|
const handleTaskSendAction = useCallback(
|
||||||
async ({ nEvent, onReload, onNoteOpen }) => {
|
async ({ nEvent, onReload, onNoteOpen }) => {
|
||||||
//Выполняем направление события
|
//Выполняем направление события
|
||||||
handleTaskSend({ nEvent, onReload, onNoteOpen });
|
handleTaskSend({ nEvent, onReload, onNoteOpen });
|
||||||
@ -246,7 +258,7 @@ const TaskCard = ({ task, index, onTasksReload, colorRule, pointSettings, onOpen
|
|||||||
);
|
);
|
||||||
|
|
||||||
//По нажатию действия "Перейти"
|
//По нажатию действия "Перейти"
|
||||||
const handleStateChangeAction = useCallback(
|
const handleTaskStateChangeAction = useCallback(
|
||||||
async ({ nEvent, onReload, onNoteOpen }) => {
|
async ({ nEvent, onReload, onNoteOpen }) => {
|
||||||
//Выполняем изменения статуса события
|
//Выполняем изменения статуса события
|
||||||
handleTaskStateChange({ nEvent, onReload, onNoteOpen });
|
handleTaskStateChange({ nEvent, onReload, onNoteOpen });
|
||||||
@ -254,6 +266,26 @@ const TaskCard = ({ task, index, onTasksReload, colorRule, pointSettings, onOpen
|
|||||||
[handleTaskStateChange]
|
[handleTaskStateChange]
|
||||||
);
|
);
|
||||||
|
|
||||||
|
//По нажатию действия "Переместить"
|
||||||
|
const handleTaskMoveAction = useCallback(
|
||||||
|
async ({ nEvent, onReload }) => {
|
||||||
|
//Открываем выбор записи из раздела "Каталоги иерархии"
|
||||||
|
handleCatalogTreeOpen({
|
||||||
|
sUnitName: "ClientEvents",
|
||||||
|
nRn: task.nCrn,
|
||||||
|
callBack: res => {
|
||||||
|
//Выполняем перемещение события
|
||||||
|
handleTaskMove({
|
||||||
|
nEvent,
|
||||||
|
nCrn: res.outParameters.out_RN,
|
||||||
|
onReload
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
|
[handleCatalogTreeOpen, handleTaskMove, task.nCrn]
|
||||||
|
);
|
||||||
|
|
||||||
//При изменении ссылок в меню действий (для того, чтобы ссылка на объект менялась при реальной необходимости)
|
//При изменении ссылок в меню действий (для того, чтобы ссылка на объект менялась при реальной необходимости)
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
//Устанавливаем список меню
|
//Устанавливаем список меню
|
||||||
@ -262,22 +294,24 @@ const TaskCard = ({ task, index, onTasksReload, colorRule, pointSettings, onOpen
|
|||||||
handleTaskEditAction,
|
handleTaskEditAction,
|
||||||
handleTaskEditClientAction,
|
handleTaskEditClientAction,
|
||||||
handleTaskDeleteAction,
|
handleTaskDeleteAction,
|
||||||
handleStateChangeAction,
|
handleTaskStateChangeAction,
|
||||||
handleTaskReturnAction,
|
handleTaskReturnAction,
|
||||||
handleSendAction,
|
handleTaskSendAction,
|
||||||
handleEventNotesOpenAction,
|
handleEventNotesOpenAction,
|
||||||
handleTaskFileLinksOpenAction
|
handleTaskFileLinksOpenAction,
|
||||||
|
handleTaskMoveAction
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
}, [
|
}, [
|
||||||
handleEventNotesOpenAction,
|
handleEventNotesOpenAction,
|
||||||
handleTaskFileLinksOpenAction,
|
handleTaskFileLinksOpenAction,
|
||||||
handleSendAction,
|
handleTaskSendAction,
|
||||||
handleStateChangeAction,
|
handleTaskStateChangeAction,
|
||||||
handleTaskDeleteAction,
|
handleTaskDeleteAction,
|
||||||
handleTaskEditAction,
|
handleTaskEditAction,
|
||||||
handleTaskEditClientAction,
|
handleTaskEditClientAction,
|
||||||
handleTaskReturnAction
|
handleTaskReturnAction,
|
||||||
|
handleTaskMoveAction
|
||||||
]);
|
]);
|
||||||
|
|
||||||
//Генерация содержимого
|
//Генерация содержимого
|
||||||
|
|||||||
@ -57,7 +57,8 @@ const useDictionary = () => {
|
|||||||
showMethod: "main",
|
showMethod: "main",
|
||||||
inputParameters: [
|
inputParameters: [
|
||||||
{ name: "in_DOCNAME", value: prms.sUnitName },
|
{ name: "in_DOCNAME", value: prms.sUnitName },
|
||||||
{ name: "in_NAME", value: prms.sName }
|
{ name: "in_NAME", value: prms.sName },
|
||||||
|
{ name: "in_RN", value: prms.nRn }
|
||||||
],
|
],
|
||||||
callBack: res => {
|
callBack: res => {
|
||||||
res.success ? prms.callBack(res) : null;
|
res.success ? prms.callBack(res) : null;
|
||||||
|
|||||||
@ -325,6 +325,7 @@ const useTasks = (filterValues, ordersValues) => {
|
|||||||
name: task.SPREF_NUMB,
|
name: task.SPREF_NUMB,
|
||||||
nRn: task.NRN,
|
nRn: task.NRN,
|
||||||
sCrn: "",
|
sCrn: "",
|
||||||
|
nCrn: task.NCRN,
|
||||||
sPrefix: task.SEVPREF,
|
sPrefix: task.SEVPREF,
|
||||||
sNumber: task.SEVNUMB,
|
sNumber: task.SEVNUMB,
|
||||||
sType: task.SEVTYPE_CODE,
|
sType: task.SEVTYPE_CODE,
|
||||||
|
|||||||
@ -197,7 +197,7 @@ export const convertFilterValuesToArray = filterValues => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
//Формирование массива действий карточки события
|
//Формирование массива действий карточки события
|
||||||
export const makeCardActionsArray = (onEdit, onEditClient, onDelete, onStateChange, onReturn, onSend, onNotesOpen, onFileLinksOpen) => {
|
export const makeCardActionsArray = (onEdit, onEditClient, onDelete, onStateChange, onReturn, onSend, onNotesOpen, onFileLinksOpen, onMove) => {
|
||||||
//Формируем список действий карточки
|
//Формируем список действий карточки
|
||||||
return [
|
return [
|
||||||
{
|
{
|
||||||
@ -220,6 +220,16 @@ export const makeCardActionsArray = (onEdit, onEditClient, onDelete, onStateChan
|
|||||||
needAccountsReload: false,
|
needAccountsReload: false,
|
||||||
func: onEditClient
|
func: onEditClient
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
method: "MOVE",
|
||||||
|
name: "Переместить",
|
||||||
|
icon: "drive_file_move",
|
||||||
|
visible: true,
|
||||||
|
delimiter: false,
|
||||||
|
tasksReload: true,
|
||||||
|
needAccountsReload: false,
|
||||||
|
func: onMove
|
||||||
|
},
|
||||||
{
|
{
|
||||||
method: "DELETE",
|
method: "DELETE",
|
||||||
name: "Удалить",
|
name: "Удалить",
|
||||||
|
|||||||
@ -113,6 +113,13 @@ create or replace package PKG_P8PANELS_CLNTTSKBRD as
|
|||||||
SNOTE in varchar2 := null -- Примечание (при наличии)
|
SNOTE in varchar2 := null -- Примечание (при наличии)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/* Перемещение события */
|
||||||
|
procedure CLNEVENTS_MOVE
|
||||||
|
(
|
||||||
|
NCLNEVENTS in number, -- Рег. номер события
|
||||||
|
NCRN in number -- Рег. номер каталога-получателя
|
||||||
|
);
|
||||||
|
|
||||||
/* Переадресация события */
|
/* Переадресация события */
|
||||||
procedure CLNEVENTS_SEND
|
procedure CLNEVENTS_SEND
|
||||||
(
|
(
|
||||||
@ -1936,6 +1943,18 @@ create or replace package body PKG_P8PANELS_CLNTTSKBRD as
|
|||||||
P_EXCEPTION(0, PKG_STATE.SQL_ERRM());
|
P_EXCEPTION(0, PKG_STATE.SQL_ERRM());
|
||||||
end CLNEVENTS_STATE_CHANGE;
|
end CLNEVENTS_STATE_CHANGE;
|
||||||
|
|
||||||
|
/* Перемещение события */
|
||||||
|
procedure CLNEVENTS_MOVE
|
||||||
|
(
|
||||||
|
NCLNEVENTS in number, -- Рег. номер события
|
||||||
|
NCRN in number -- Рег. номер каталога-получателя
|
||||||
|
)
|
||||||
|
is
|
||||||
|
begin
|
||||||
|
/* Перемещение события в другой каталог */
|
||||||
|
P_DOCUMENT_MOVE(SUNITCODE => 'ClientEvents', NDOCUMENT => NCLNEVENTS, NTARGET => NCRN);
|
||||||
|
end CLNEVENTS_MOVE;
|
||||||
|
|
||||||
/* Переадресация события */
|
/* Переадресация события */
|
||||||
procedure CLNEVENTS_SEND
|
procedure CLNEVENTS_SEND
|
||||||
(
|
(
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user