Commit 63b30b92 by zhaochengxiang

调整数据源管理

parent 9452d8af
import React, { useEffect, useState } from 'react'; import React, { useEffect, useState } from 'react';
import { Row, Col, Typography, Divider } from 'antd'; import { Row, Col, Typography, Divider, Spin, Empty } from 'antd';
import TaskItem from './TaskItem'; import TaskItem from './TaskItem';
import { dispatch } from '../../../../model'; import { dispatch } from '../../../../model';
...@@ -9,6 +9,7 @@ import './DatasourceItem.less'; ...@@ -9,6 +9,7 @@ import './DatasourceItem.less';
const DatasourceItem = (props) => { const DatasourceItem = (props) => {
const { data, onStartTask, onEditTask, onDeleteTask, expanded, refresh, refreshSuccess } = props; const { data, onStartTask, onEditTask, onDeleteTask, expanded, refresh, refreshSuccess } = props;
const [ tasks, setTasks ] = useState(null); const [ tasks, setTasks ] = useState(null);
const [ loading, setLoading ] = useState(false);
useEffect(() => { useEffect(() => {
if (expanded && !tasks) { if (expanded && !tasks) {
...@@ -27,14 +28,19 @@ const DatasourceItem = (props) => { ...@@ -27,14 +28,19 @@ const DatasourceItem = (props) => {
}, [refresh]) }, [refresh])
const getTasks = () => { const getTasks = () => {
setLoading(true);
dispatch({ dispatch({
type: 'datasource.getTasksByDatasourceId', type: 'datasource.getTasksByDatasourceId',
payload: { payload: {
datasourceId: data.id datasourceId: data.id
}, },
callback: data => { callback: data => {
setLoading(false);
setTasks(data); setTasks(data);
refresh && refreshSuccess && refreshSuccess(); refresh && refreshSuccess && refreshSuccess();
},
error: () => {
setLoading(false);
} }
}) })
} }
...@@ -67,13 +73,18 @@ const DatasourceItem = (props) => { ...@@ -67,13 +73,18 @@ const DatasourceItem = (props) => {
} }
</Row> </Row>
{ {
expanded && <> expanded && <Divider />
<Divider /> }
{
expanded && <Spin spinning={loading}>
{
(tasks||[]).length===0 ? <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} description="暂无任务" /> : <>
<Divider>任务列表</Divider>
<Row gutter={10}> <Row gutter={10}>
{ {
(tasks||[]).map((task, index) => { (tasks||[]).map((task, index) => {
return ( return (
<Col key={index} md={8}> <Col className='mt-3' key={index} md={8}>
<TaskItem <TaskItem
key={index} key={index}
data={task} data={task}
...@@ -88,6 +99,9 @@ const DatasourceItem = (props) => { ...@@ -88,6 +99,9 @@ const DatasourceItem = (props) => {
</Row> </Row>
</> </>
} }
</Spin>
}
</div> </div>
); );
} }
......
import React, { useState } from 'react'; import React, { useState } from 'react';
import { List, Space, Button, Tooltip } from "antd"; import { List, Space, Button, Tooltip } from "antd";
import { EditOutlined, DiffOutlined, DeleteOutlined, DatabaseOutlined } from '@ant-design/icons'; import { EditOutlined, DiffOutlined, DeleteOutlined, DatabaseOutlined, ArrowDownOutlined, ArrowUpOutlined } from '@ant-design/icons';
import DatasourceItem from './DatasourceItem'; import DatasourceItem from './DatasourceItem';
...@@ -57,8 +57,8 @@ const DatasourceList = (props) => { ...@@ -57,8 +57,8 @@ const DatasourceList = (props) => {
<Tooltip placement='bottom' title={'删除'}> <Tooltip placement='bottom' title={'删除'}>
<Button icon={<DeleteOutlined />} size='small' onClick={() => { onDelete && onDelete(item); }} /> <Button icon={<DeleteOutlined />} size='small' onClick={() => { onDelete && onDelete(item); }} />
</Tooltip> </Tooltip>
<Tooltip placement='bottom' title={'任务列表'}> <Tooltip placement='bottom' title={expanded?'隐藏任务列表':'显示任务列表'}>
<Button icon={<DatabaseOutlined />} size='small' onClick={() => { onExpanded(item); }} /> <Button icon={expanded ? <ArrowUpOutlined /> : <ArrowDownOutlined />} size='small' onClick={() => { onExpanded(item); }} />
</Tooltip> </Tooltip>
</Space> </Space>
</div> </div>
......
...@@ -68,7 +68,7 @@ const UpdateTaskModal = (props) => { ...@@ -68,7 +68,7 @@ const UpdateTaskModal = (props) => {
task && (task.targetConfParameters||[]).forEach(item => { task && (task.targetConfParameters||[]).forEach(item => {
if (item.name === 'schema') { if (item.name === 'schema') {
setSelectedSchemas((item.value||'').split(',')); setSelectedSchemas((item.value||'').split(',').filter(value=> value!==''));
} else { } else {
_fieldsValue[item.name||''] = item.value||''; _fieldsValue[item.name||''] = item.value||'';
} }
...@@ -194,8 +194,11 @@ const UpdateTaskModal = (props) => { ...@@ -194,8 +194,11 @@ const UpdateTaskModal = (props) => {
label={param.cnName||''} label={param.cnName||''}
name={param.name||''} name={param.name||''}
key={index} key={index}
rules={[{ required: param.required, message: '必填项'}]}
> >
<Input /> {
( param.show ? <Input /> : <Input.Password /> )
}
</Form.Item> </Form.Item>
) )
}) })
......
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