Commit 6bf028f8 by zhaochengxiang

模型任务管理

parent ca2a3711
...@@ -490,4 +490,8 @@ export function* getCompareJobStates() { ...@@ -490,4 +490,8 @@ export function* getCompareJobStates() {
export function* deleteCompareJobs(payload) { export function* deleteCompareJobs(payload) {
return yield call(datamodelerService.deleteCompareJobs, payload) return yield call(datamodelerService.deleteCompareJobs, payload)
}
export function* runCompareJob(payload) {
return yield call(datamodelerService.runCompareJob, payload)
} }
\ No newline at end of file
...@@ -443,4 +443,8 @@ export function getCompareJobStates() { ...@@ -443,4 +443,8 @@ export function getCompareJobStates() {
export function deleteCompareJobs(payload) { export function deleteCompareJobs(payload) {
return Delete("/datamodeler/easyDataModelModelCompareJob/delModelCompareJobs", payload) return Delete("/datamodeler/easyDataModelModelCompareJob/delModelCompareJobs", payload)
}
export function runCompareJob(payload) {
return GetJSON("/datamodeler/easyDataModelModelCompareJob/runJob", payload)
} }
\ No newline at end of file
...@@ -4,17 +4,21 @@ import { Tabs } from "antd" ...@@ -4,17 +4,21 @@ import { Tabs } from "antd"
import TaskManage from './task-manage' import TaskManage from './task-manage'
import TaskReport from './task-report' import TaskReport from './task-report'
import './index.less'
const FC = (props) => { const FC = (props) => {
const [activeKey, setActiveKey] = React.useState('manage') const [activeKey, setActiveKey] = React.useState('manage')
return ( return (
<Tabs className='' activeKey={activeKey} onChange={(val) => { setActiveKey(val) }}> <div className='data-model-compare'>
<Tabs.TabPane tab='任务管理' key='manage'> <Tabs className='' activeKey={activeKey} onChange={(val) => { setActiveKey(val) }}>
<TaskManage /> <Tabs.TabPane tab='任务管理' key='manage'>
</Tabs.TabPane> <TaskManage />
<Tabs.TabPane tab='任务报告' key='report'> </Tabs.TabPane>
<TaskReport /> <Tabs.TabPane tab='任务报告' key='report'>
</Tabs.TabPane> <TaskReport />
</Tabs> </Tabs.TabPane>
</Tabs>
</div>
) )
} }
......
.data-model-compare {
background-color: white;
height: 100%;
.yy-tabs-nav {
padding-left: 20px;
margin: 0;
}
.yy-tabs-content {
height: 100%;
}
}
\ No newline at end of file
import React from 'react' import React from 'react'
import { Pagination, Space, Button, Select, Input, Tooltip, Modal } from 'antd' import { Space, Button, Select, Input, Tooltip, Modal } from 'antd'
import { defaultPage } from '../../../util/hooks/page' import { defaultPage } from '../../../util/hooks/page'
import Table from '../../../util/Component/Table' import Table from '../../../util/Component/Table'
import { dispatch } from '../../../model' import { dispatch } from '../../../model'
import { paginate, showMessage } from '../../../util' import { paginate, showMessage } from '../../../util'
import '../AssetTask/index.less'
const FC = (props) => { const FC = (props) => {
const [args, setArgs] = React.useState({ const [args, setArgs] = React.useState({
state: undefined, state: undefined,
...@@ -158,9 +160,52 @@ const FC = (props) => { ...@@ -158,9 +160,52 @@ const FC = (props) => {
} }
const onRightMenuItemClick = (key, record) => {
if (key === '执行') {
modal.confirm({
title:'提示',
content: '您确定要执行该任务吗?',
okText: '确认',
cancelText: '取消',
onOk: () => {
dispatch({
type: 'datamodel.runCompareJob',
payload: {
id: record?.id
},
callback: data => {
showMessage('success', '执行成功')
}
})
}
})
} else if (key === '编辑') {
} else if (key === '删除') {
modal.confirm({
title:'提示',
content: '您确定要删除该任务吗?',
okText: '确认',
cancelText: '取消',
onOk: () => {
dispatch({
type: 'datamodel.deleteCompareJobs',
payload: {
modelCompareJobIds: record?.id
},
callback: data => {
showMessage('success', '删除成功')
getTasks()
}
})
}
})
}
}
return ( return (
<div> <div className='task-manage'>
<div className='flex' style={{ justifyContent: 'space-between' }}> <div className='header px-3'>
<Space> <Space>
<Button onClick={onAddClick}>新增任务</Button> <Button onClick={onAddClick}>新增任务</Button>
<Tooltip title={(selectedRows??[]).length===0?'请先选择任务':''}> <Tooltip title={(selectedRows??[]).length===0?'请先选择任务':''}>
...@@ -192,34 +237,30 @@ const FC = (props) => { ...@@ -192,34 +237,30 @@ const FC = (props) => {
/> />
</Space> </Space>
</div> </div>
<div className='pt-3'> <div className='px-3 pt-3'>
<Table <Table
extraColWidth={32} extraColWidth={32}
loading={loading} loading={loading}
maxHeight='calc(100vh - 285px - 46px)'
columns={cols??[]} columns={cols??[]}
dataSource={tableData??[]} dataSource={tableData??[]}
pagination={false}
rowSelection={{ rowSelection={{
selectedRowKeys: (selectedRows??[]).map(item => item.id), selectedRowKeys: (selectedRows??[]).map(item => item.id),
onChange: (selectedRowKeys, selectedRows) => { onChange: (selectedRowKeys, selectedRows) => {
setSelectedRows(selectedRows) setSelectedRows(selectedRows)
}, },
}} }}
pageNum={args.page} pageSize={args.size} total={total ?? 0}
onPaginate={(page, size) => {
setArgsByParams({ page, size })
}}
shouldRowContextMenu={(record) => {
return true
}}
menuData={['执行', '编辑', '删除']}
menuPermissions={['执行', '编辑', '删除']}
onMenuItemClick={onRightMenuItemClick}
/> />
{
(total!==0) && <Pagination
className="text-center mt-3"
showSizeChanger
onChange={(page,size) => {
setArgsByParams({ page, size })
}}
current={args.page}
pageSize={args.size}
defaultCurrent={1}
total={total}
showTotal={() => `共${total??0}项`}
/>
}
</div> </div>
{contextHolder} {contextHolder}
</div> </div>
......
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