Commit f3377bb8 by zhaochengxiang

数据源管理增加取消抽取任务

parent 9c29f086
...@@ -60,6 +60,10 @@ export function* startTask(payload) { ...@@ -60,6 +60,10 @@ export function* startTask(payload) {
return yield call(service.startTask, payload); return yield call(service.startTask, payload);
} }
export function* cancelTask(payload) {
return yield call(service.cancelTask, payload);
}
export function* getTaskReportSummary(payload) { export function* getTaskReportSummary(payload) {
return yield call(service.getTaskReportSummary, payload); return yield call(service.getTaskReportSummary, payload);
} }
......
...@@ -56,6 +56,10 @@ export function startTask(payload) { ...@@ -56,6 +56,10 @@ export function startTask(payload) {
return PostJSON("/metadataharvester/task/startHarvestingTask", payload); return PostJSON("/metadataharvester/task/startHarvestingTask", payload);
} }
export function cancelTask(payload) {
return PostJSON("/metadataharvester/task/cancelHarvestingTask", payload);
}
export function getTaskReportSummary(payload) { export function getTaskReportSummary(payload) {
return GetJSON("/metadataharvester/task/getTaskReportSummary", payload); return GetJSON("/metadataharvester/task/getTaskReportSummary", payload);
} }
......
import React, { useContext } from 'react'; import React, { useContext } from 'react';
import { Card, Typography, Space, Button, Tooltip, Progress } from 'antd'; import { Card, Typography, Space, Button, Tooltip, Progress } from 'antd';
import { EditOutlined, DeleteOutlined, DatabaseOutlined, FileOutlined, ScheduleOutlined } from '@ant-design/icons'; import { EditOutlined, DeleteOutlined, DatabaseOutlined, FileOutlined, ScheduleOutlined, StopOutlined } from '@ant-design/icons';
import { DatasourceContext } from './ContextManager'; import { DatasourceContext } from './ContextManager';
import './TaskItem.less'; import './TaskItem.less';
...@@ -8,12 +8,12 @@ import './TaskItem.less'; ...@@ -8,12 +8,12 @@ import './TaskItem.less';
const TaskItem = (props) => { const TaskItem = (props) => {
const { data } = props; const { data } = props;
const { onStartTask, onLogTask, onEditTask, onDeleteTask, onScheduleShow, tasksProgress } = useContext(DatasourceContext); const { onStartTask, onCancelTask, onLogTask, onEditTask, onDeleteTask, onScheduleShow, tasksProgress } = useContext(DatasourceContext);
let disableEdit = false, editTip = '修改'; let isExtract = false, editTip = '修改';
if (tasksProgress&&tasksProgress[data.id]!==null&&tasksProgress[data.id]!==undefined) { if (tasksProgress&&tasksProgress[data.id]!==null&&tasksProgress[data.id]!==undefined) {
disableEdit = true; isExtract = true;
editTip = '正在抽取中,不允许修改任务'; editTip = '正在抽取中,不允许修改任务';
} }
...@@ -44,14 +44,19 @@ const TaskItem = (props) => { ...@@ -44,14 +44,19 @@ const TaskItem = (props) => {
<Tooltip placement='bottom' title='定时调度'> <Tooltip placement='bottom' title='定时调度'>
<Button icon={<ScheduleOutlined />} size='small' onClick={() => { onScheduleShow && onScheduleShow(data); }} /> <Button icon={<ScheduleOutlined />} size='small' onClick={() => { onScheduleShow && onScheduleShow(data); }} />
</Tooltip> </Tooltip>
<Tooltip placement='bottom' title='抽取'> {
<Button icon={<DatabaseOutlined />} size='small' onClick={() => { onStartTask && onStartTask(data); }} /> isExtract ? <Tooltip placement='bottom' title='取消抽取'>
</Tooltip> <Button icon={<StopOutlined />} size='small' onClick={() => { onCancelTask && onCancelTask(data); }} />
</Tooltip> :
<Tooltip placement='bottom' title='抽取'>
<Button icon={<DatabaseOutlined />} size='small' onClick={() => { onStartTask && onStartTask(data); }} />
</Tooltip>
}
<Tooltip placement='bottom' title='日志'> <Tooltip placement='bottom' title='日志'>
<Button icon={<FileOutlined />} size='small' onClick={() => { onLogTask && onLogTask(data); }} /> <Button icon={<FileOutlined />} size='small' onClick={() => { onLogTask && onLogTask(data); }} />
</Tooltip> </Tooltip>
<Tooltip placement='bottom' title={editTip}> <Tooltip placement='bottom' title={editTip}>
<Button icon={<EditOutlined />} size='small' disabled={disableEdit} onClick={() => { onEditTask && onEditTask(data); }} /> <Button icon={<EditOutlined />} size='small' disabled={isExtract} onClick={() => { onEditTask && onEditTask(data); }} />
</Tooltip> </Tooltip>
<Tooltip placement='bottom' title='删除'> <Tooltip placement='bottom' title='删除'>
<Button icon={<DeleteOutlined />} size='small' onClick={() => { onDeleteTask && onDeleteTask(data); }} /> <Button icon={<DeleteOutlined />} size='small' onClick={() => { onDeleteTask && onDeleteTask(data); }} />
......
...@@ -293,6 +293,26 @@ const DatasourceManage = (props) => { ...@@ -293,6 +293,26 @@ const DatasourceManage = (props) => {
}); });
} }
const cancelTask = (task) => {
modal.confirm({
title: '是否取消该任务?',
content: '',
onOk: () => {
dispatch({
type: 'datasource.cancelTask',
payload: {
params: {
harvestingTaskId: task.id
}
},
callback: () => {
}
});
}
});
}
const editTask = (task) => { const editTask = (task) => {
setCurrentTaskId(task.id); setCurrentTaskId(task.id);
setCurrentDatasourceId(task.target.id||''); setCurrentDatasourceId(task.target.id||'');
...@@ -343,6 +363,7 @@ const DatasourceManage = (props) => { ...@@ -343,6 +363,7 @@ const DatasourceManage = (props) => {
refreshTasksSuccess: refreshTasksSuccess, refreshTasksSuccess: refreshTasksSuccess,
onScheduleShow: scheduleShow, onScheduleShow: scheduleShow,
onStartTask: startTask, onStartTask: startTask,
onCancelTask: cancelTask,
onLogTask: logTask, onLogTask: logTask,
onEditTask: editTask, onEditTask: editTask,
onDeleteTask: deleteTask, onDeleteTask: deleteTask,
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment