Commit 0ccc9d0f by zhaochengxiang

采集

parent fc499916
...@@ -60,6 +60,10 @@ export function* deleteTask(payload) { ...@@ -60,6 +60,10 @@ export function* deleteTask(payload) {
return yield call(service.deleteTask, payload); return yield call(service.deleteTask, payload);
} }
export function* deleteTasks(payload) {
return yield call(service.deleteTasks, payload);
}
export function* startTask(payload) { export function* startTask(payload) {
return yield call(service.startTask, payload); return yield call(service.startTask, payload);
} }
......
...@@ -56,6 +56,10 @@ export function deleteTask(payload) { ...@@ -56,6 +56,10 @@ export function deleteTask(payload) {
return Delete("/metadataharvester/task/deleteHarvestingTask", payload); return Delete("/metadataharvester/task/deleteHarvestingTask", payload);
} }
export function deleteTasks(payload) {
return Delete("/metadataharvester/task/deleteHarvestingTasks", payload);
}
export function startTask(payload) { export function startTask(payload) {
return PostJSON("/metadataharvester/task/startHarvestingTask", payload); return PostJSON("/metadataharvester/task/startHarvestingTask", payload);
} }
......
...@@ -83,6 +83,7 @@ const ScheduleAction = (props) => { ...@@ -83,6 +83,7 @@ const ScheduleAction = (props) => {
// } // }
}); });
console.log('_fieldsValue', _fieldsValue);
form.setFieldsValue(_fieldsValue); form.setFieldsValue(_fieldsValue);
} }
...@@ -243,20 +244,16 @@ const ExecuteDateItem = ({ value, data, onChange }) => { ...@@ -243,20 +244,16 @@ const ExecuteDateItem = ({ value, data, onChange }) => {
const [categoryKey, setCategoryKey] = useState(undefined); const [categoryKey, setCategoryKey] = useState(undefined);
const [dateKey, setDateKey] = useState(undefined); const [dateKey, setDateKey] = useState(undefined);
const mountRef = useRef(true);
useEffect(() => { useEffect(() => {
if (mountRef.current) { if (value) {
setCategoryKey(value?value.split(',')[0]:undefined); const tmpData = value.split(',');
if (value?.split(',').length === 2) { if (tmpData.length > 0) {
setDateKey(value?.split(',')[1].split('/')); setCategoryKey(tmpData[0]);
} else { }
setDateKey(undefined); if (tmpData.length > 1) {
} setDateKey(tmpData.slice(1, tmpData.length));
} }
}
mountRef.current = false;
}, [value]) }, [value])
const dates = useMemo(() => { const dates = useMemo(() => {
...@@ -278,12 +275,7 @@ const ExecuteDateItem = ({ value, data, onChange }) => { ...@@ -278,12 +275,7 @@ const ExecuteDateItem = ({ value, data, onChange }) => {
const onDateChange = (val) => { const onDateChange = (val) => {
setDateKey(val); setDateKey(val);
onChange?.(`${categoryKey},${val.join(',')}`);
if (categoryKey === '2') {
onChange?.(`${categoryKey},${val.join('/')}`);
} else {
onChange?.(`${categoryKey},${val}`);
}
} }
return ( return (
...@@ -303,7 +295,7 @@ const ExecuteDateItem = ({ value, data, onChange }) => { ...@@ -303,7 +295,7 @@ const ExecuteDateItem = ({ value, data, onChange }) => {
<Col span={16}> <Col span={16}>
<Select <Select
value={dateKey} value={dateKey}
mode={categoryKey==='2'?'multiple':undefined} mode='multiple'
onChange={onDateChange} onChange={onDateChange}
> >
{ {
......
...@@ -13,7 +13,7 @@ const cols = [ ...@@ -13,7 +13,7 @@ const cols = [
{title: '表黑名单'}, {title: '表黑名单'},
]; ];
const menuName = 'taskColConfig'; export const menuName = 'taskColConfig';
const FC = (props) => { const FC = (props) => {
const {visible, onCancel} = props; const {visible, onCancel} = props;
...@@ -34,11 +34,11 @@ const FC = (props) => { ...@@ -34,11 +34,11 @@ const FC = (props) => {
menuName menuName
}, },
callback: data => { callback: data => {
// if ((data.cols||'') === '') { if ((data||[]).length === 0) {
// onCheckAllChange(true); onCheckAllChange(false);
// } else { } else {
// setCheckedKeys(data.cols.split(',')); setCheckedKeys(data.map(item => item.name));
// } }
} }
}) })
} }
...@@ -78,13 +78,16 @@ const FC = (props) => { ...@@ -78,13 +78,16 @@ const FC = (props) => {
const onModalOk = () => { const onModalOk = () => {
setConfirmLoading(true); setConfirmLoading(true);
dispatch({ dispatch({
type: 'datasource.setTaskCols', type: 'datasource.setTaskCols',
payload: { payload: {
params: { params: {
menuName, menuName,
titles: checkedKeys.join(',') },
} data: checkedKeys.map(item => {
return { name: item };
})
}, },
callback: () => { callback: () => {
setConfirmLoading(false); setConfirmLoading(false);
......
...@@ -6,7 +6,7 @@ import { dispatch } from '../../../../model'; ...@@ -6,7 +6,7 @@ import { dispatch } from '../../../../model';
import { paginate, showMessage } from '../../../../util'; import { paginate, showMessage } from '../../../../util';
import Table from '../../ResizeableTable'; import Table from '../../ResizeableTable';
import UpdateTask from './UpdateTask'; import UpdateTask from './UpdateTask';
import ColConfig from './ColConfig'; import ColConfig, { menuName } from './ColConfig';
import env from '../../../../service/samples/env.json'; import env from '../../../../service/samples/env.json';
const FC = (props) => { const FC = (props) => {
...@@ -17,7 +17,9 @@ const FC = (props) => { ...@@ -17,7 +17,9 @@ const FC = (props) => {
const [configState, setConfigState] = useState(undefined); const [configState, setConfigState] = useState(undefined);
const [supportedTargetTypes, setSupportedTargetTypes] = useState([]); const [supportedTargetTypes, setSupportedTargetTypes] = useState([]);
const [sortedInfo, setSortedInfo] = useState({}); const [sortedInfo, setSortedInfo] = useState({});
const [ tasksProgress, setTasksProgress ] = useState(undefined); const [tasksProgress, setTasksProgress] = useState(undefined);
const [visibleCols, setVisibleCols] = useState(undefined);
const [checkedKeys, setCheckedKeys] = useState(undefined);
const [updateTaskParam, setUpdateTaskParam] = useState({ const [updateTaskParam, setUpdateTaskParam] = useState({
visible: false, visible: false,
...@@ -43,7 +45,14 @@ const FC = (props) => { ...@@ -43,7 +45,14 @@ const FC = (props) => {
}, },
{ {
title: '任务编号', title: '任务编号',
dataIndex: 'id', dataIndex: 'taskCode',
render: (text, record) => {
return (
<Tooltip title={text||''}>
<Typography.Text ellipsis={true}>{text||''}</Typography.Text>
</Tooltip>
);
}
}, },
{ {
title: '类型', title: '类型',
...@@ -54,24 +63,59 @@ const FC = (props) => { ...@@ -54,24 +63,59 @@ const FC = (props) => {
title: '数据库中文名', title: '数据库中文名',
dataIndex: 'cnName', dataIndex: 'cnName',
sorter: true, sorter: true,
render: (text, record) => {
return (
<Tooltip title={text||''}>
<Typography.Text ellipsis={true}>{text||''}</Typography.Text>
</Tooltip>
);
}
}, },
{ {
title: '数据库英文名', title: '数据库英文名',
dataIndex: 'name', dataIndex: 'name',
sorter: true, sorter: true,
render: (text, record) => {
return (
<Tooltip title={text||''}>
<Typography.Text ellipsis={true}>{text||''}</Typography.Text>
</Tooltip>
);
}
}, },
{ {
title: '抽取Schema', title: '抽取Schema',
dataIndex: 'schema', dataIndex: 'schema',
sorter: true, sorter: true,
render: (text, record) => {
return (
<Tooltip title={text||''}>
<Typography.Text ellipsis={true}>{text||''}</Typography.Text>
</Tooltip>
);
}
}, },
{ {
title: '表白名单', title: '表白名单',
dataIndex: 'tableWhiteList', dataIndex: 'tableWhiteList',
render: (text, record) => {
return (
<Tooltip title={text||''}>
<Typography.Text ellipsis={true}>{text||''}</Typography.Text>
</Tooltip>
);
}
}, },
{ {
title: '表黑名单', title: '表黑名单',
dataIndex: 'tableBlackList', dataIndex: 'tableBlackList',
render: (text, record) => {
return (
<Tooltip title={text||''}>
<Typography.Text ellipsis={true}>{text||''}</Typography.Text>
</Tooltip>
);
}
}, },
{ {
title: '操作', title: '操作',
...@@ -117,6 +161,7 @@ const FC = (props) => { ...@@ -117,6 +161,7 @@ const FC = (props) => {
useEffect(() => { useEffect(() => {
getAllTasks(); getAllTasks();
getTaskCols();
const interval = setInterval(() => { const interval = setInterval(() => {
getAllTasksProgress(); getAllTasksProgress();
}, 5000); }, 5000);
...@@ -126,6 +171,18 @@ const FC = (props) => { ...@@ -126,6 +171,18 @@ const FC = (props) => {
} }
}, []) }, [])
const _columns = useMemo(() => {
if (visibleCols) {
if (visibleCols.length === 0) {
return columns.filter(item => item.title==='序号' || item.title==='操作')
} else {
return columns.filter(item => item.title==='序号' || item.title==='操作' || visibleCols.indexOf(item.title) !== -1)
}
}
return columns;
}, [visibleCols])
const _tasks = useMemo(() => { const _tasks = useMemo(() => {
if (tasks) { if (tasks) {
let newTasks = tasks?.filter(item => { let newTasks = tasks?.filter(item => {
...@@ -217,6 +274,18 @@ const FC = (props) => { ...@@ -217,6 +274,18 @@ const FC = (props) => {
}) })
} }
const getTaskCols = () => {
dispatch({
type: 'datasource.getTaskCols',
payload: {
menuName
},
callback: data => {
setVisibleCols(data?.map(item => item.name));
}
})
}
const onTableChange = (pagination, filters, sorter) => { const onTableChange = (pagination, filters, sorter) => {
console.log('sorter', sorter); console.log('sorter', sorter);
setSortedInfo(sorter); setSortedInfo(sorter);
...@@ -226,13 +295,17 @@ const FC = (props) => { ...@@ -226,13 +295,17 @@ const FC = (props) => {
setPagination({pageNum: page, pageSize: size }); setPagination({pageNum: page, pageSize: size });
} }
const onUpdateTaskCancel = (refresh = false) => { const onUpdateTaskCancel = () => {
setUpdateTaskParam({ visible: false, action: undefined, id: undefined }); setUpdateTaskParam({ visible: false, action: undefined, id: undefined });
refresh && getAllTasks(); }
const onUpdateTaskChange = () => {
getAllTasks();
} }
const onColConfigCancel = (refresh = false) => { const onColConfigCancel = (refresh = false) => {
setColConfigParam({ visible: false }); setColConfigParam({ visible: false });
refresh && getTaskCols();
} }
const onCancelTask = (task) => { const onCancelTask = (task) => {
...@@ -294,6 +367,35 @@ const FC = (props) => { ...@@ -294,6 +367,35 @@ const FC = (props) => {
} }
}); });
} }
const onDeleteTasks = () => {
modal.confirm({
title: '是否确认删除这些任务?',
content: '',
onOk: () => {
dispatch({
type: 'datasource.deleteTasks',
payload: {
harvestingTaskIds: checkedKeys.toString()
},
callback: () => {
showMessage('success', '删除任务成功');
setCheckedKeys([]);
getAllTasks();
}
});
}
});
}
const onSelectChange = (keys) => {
setCheckedKeys(keys);
}
const rowSelection = {
selectedRowKeys: checkedKeys,
onChange: onSelectChange,
};
return ( return (
<div> <div>
...@@ -305,7 +407,9 @@ const FC = (props) => { ...@@ -305,7 +407,9 @@ const FC = (props) => {
<Button onClick={() => { <Button onClick={() => {
setColConfigParam({ visible: true }); setColConfigParam({ visible: true });
}}>可见列设置</Button> }}>可见列设置</Button>
<Button>删除</Button> <Tooltip title={(checkedKeys||[]).length===0?'请先选择任务':''}>
<Button disabled={(checkedKeys||[]).length===0} onClick={onDeleteTasks}>删除</Button>
</Tooltip>
</Space> </Space>
<Config setTargetTypes={setSupportedTargetTypes} onState={(state) => { <Config setTargetTypes={setSupportedTargetTypes} onState={(state) => {
console.log('state', state); console.log('state', state);
...@@ -316,8 +420,9 @@ const FC = (props) => { ...@@ -316,8 +420,9 @@ const FC = (props) => {
<Table <Table
className='mt-3' className='mt-3'
loading={loadingTasks} loading={loadingTasks}
columns={columns||[]} columns={_columns||[]}
rowKey='id' rowKey='id'
rowSelection={rowSelection}
dataSource={_tasks||[]} dataSource={_tasks||[]}
pagination={false} pagination={false}
onChange={onTableChange} onChange={onTableChange}
...@@ -342,6 +447,7 @@ const FC = (props) => { ...@@ -342,6 +447,7 @@ const FC = (props) => {
action={updateTaskParam.action} action={updateTaskParam.action}
id={updateTaskParam.id} id={updateTaskParam.id}
onCancel={onUpdateTaskCancel} onCancel={onUpdateTaskCancel}
onChange={onUpdateTaskChange}
/> />
<ColConfig <ColConfig
......
...@@ -6,7 +6,7 @@ import ScheduleAction from '../../DatasourceManage/Component/ScheduleAction'; ...@@ -6,7 +6,7 @@ import ScheduleAction from '../../DatasourceManage/Component/ScheduleAction';
import { dispatch } from '../../../../model'; import { dispatch } from '../../../../model';
const FC = (props) => { const FC = (props) => {
const {visible, onCancel, action, id} = props; const {visible, onCancel, onChange, action, id} = props;
const [schemas, setSchemas] = useState([]); const [schemas, setSchemas] = useState([]);
const [filterSchemas, setFilterSchemas] = useState([]); const [filterSchemas, setFilterSchemas] = useState([]);
const [selectedSchemas, setSelectedSchemas] = useState([]); const [selectedSchemas, setSelectedSchemas] = useState([]);
...@@ -168,6 +168,7 @@ const FC = (props) => { ...@@ -168,6 +168,7 @@ const FC = (props) => {
}, },
callback: data => { callback: data => {
setConfirmLoading(false); setConfirmLoading(false);
onChange?.();
if (action === 'add') { if (action === 'add') {
setStep(2); setStep(2);
setScheduleParam({action, tid: data}); setScheduleParam({action, tid: data});
......
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