Commit c6c16cc5 by zhaochengxiang

任务详情

parent b1dd0b6a
import React from 'react' import React from 'react'
import { Space, Button, Select, Input, Tooltip, Modal } from 'antd' import { Space, Button, Select, Input, Tooltip, Modal, Row, Typography } 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 { generateUUID, paginate, showMessage } from '../../../util'
import UpdateTask from './update-task' import UpdateTask from './update-task'
import '../AssetTask/index.less' import '../AssetTask/index.less'
...@@ -70,6 +70,19 @@ const FC = (props) => { ...@@ -70,6 +70,19 @@ const FC = (props) => {
{ {
title: '任务名称', title: '任务名称',
dataIndex: 'jobName', dataIndex: 'jobName',
render: (text, record) => (
<Tooltip title={text}>
<Typography.Text ellipsis={true}>
<a onClick={() => {
setUpdateTaskParams({
visible: true,
type: 'detail',
item: record,
})
}}>{text}</a>
</Typography.Text>
</Tooltip>
)
}, },
{ {
title: '任务描述', title: '任务描述',
...@@ -80,23 +93,66 @@ const FC = (props) => { ...@@ -80,23 +93,66 @@ const FC = (props) => {
dataIndex: 'jobStatusType', dataIndex: 'jobStatusType',
render: (_, record) => record.jobStatusType?.name render: (_, record) => record.jobStatusType?.name
}, },
// { {
// title: '对比范围', title: '对比范围',
// dataIndex: 'compareRange', dataIndex: 'jobCatalogItems',
// }, render: (_, record) => {
return (
<Tooltip title={
<div>
{
(record.jobCatalogItems??[]).map(item => (
<Row key={generateUUID()}>
{`【模型】${(item.modelCatalogNameList??[]).join('/')} -【元数据】${(item.metadataCatalogNameList??[]).join('/')}`}
</Row>
))
}
</div>
}>
<Typography.Text ellipsis={true}>
{
(record.jobCatalogItems??[]).map(item => `【模型】${(item.modelCatalogNameList??[]).join('/')} -【元数据】${(item.metadataCatalogNameList??[]).join('/')}`).toString()
}
</Typography.Text>
</Tooltip>
)
}
},
{ {
title: '模型状态', title: '模型状态',
dataIndex: 'modelStatusTypes', dataIndex: 'modelStatusTypes',
render: (_, record) => (record.modelStatusTypes??[]).map(item => item.name).toString() render: (_, record) => (record.modelStatusTypes??[]).map(item => item.name).toString()
}, },
// { {
// title: '对比策略', title: '对比策略',
// dataIndex: 'strategyItemPropertyTypes', dataIndex: 'strategyItemPropertyTypes',
// }, render: (_, record) => {
// { return (
// title: '调度配置', <Tooltip title={
// dataIndex: 'jobSchedule', <div>
// }, {
(record.strategyItemPropertyTypes??[]).map(item => (
<Row key={generateUUID()}>
{`${item.modelType?.cnName??''}${item.operatorType?.name??''}${item.metadataType?.cnName??''}`}
</Row>
))
}
</div>
}>
<Typography.Text ellipsis={true}>
{
(record.strategyItemPropertyTypes??[]).map(item => `${item.modelType?.cnName??''}${item.operatorType?.name??''}${item.metadataType?.cnName??''}`).toString()
}
</Typography.Text>
</Tooltip>
)
}
},
{
title: '调度配置',
dataIndex: 'jobSchedule',
render: (_, record) => record.jobSchedule?.scheduleName
},
{ {
title: '负责人', title: '负责人',
dataIndex: 'ownerName', dataIndex: 'ownerName',
......
...@@ -14,6 +14,7 @@ const FC = (props) => { ...@@ -14,6 +14,7 @@ const FC = (props) => {
const [waiting, setWaiting] = React.useState(false) const [waiting, setWaiting] = React.useState(false)
const [loading, setLoading] = React.useState(false) const [loading, setLoading] = React.useState(false)
const [task, setTask] = React.useState() const [task, setTask] = React.useState()
const [animating, setAnimating] = React.useState(true)
const basicFormRef = React.useRef() const basicFormRef = React.useRef()
const rangeRef = React.useRef() const rangeRef = React.useRef()
...@@ -29,6 +30,14 @@ const FC = (props) => { ...@@ -29,6 +30,14 @@ const FC = (props) => {
}, [type]) }, [type])
React.useEffect(() => { React.useEffect(() => {
if (visible) {
setTimeout(() => {
setAnimating(false)
}, 300)
}
}, [visible])
React.useEffect(() => {
if (visible && item?.id) { if (visible && item?.id) {
getTask() getTask()
} }
...@@ -52,6 +61,7 @@ const FC = (props) => { ...@@ -52,6 +61,7 @@ const FC = (props) => {
} }
const close = (refresh = false) => { const close = (refresh = false) => {
setAnimating(true)
setWaiting(false) setWaiting(false)
setLoading(false) setLoading(false)
setTask() setTask()
...@@ -141,20 +151,24 @@ const FC = (props) => { ...@@ -141,20 +151,24 @@ const FC = (props) => {
visible={visible} visible={visible}
footer={(type==='detail') ? null : footer} footer={(type==='detail') ? null : footer}
width='90%' width='90%'
bodyStyle={{ padding: '15px 15px 0px 15px', overflowX: 'auto', maxHeight: '80vh' }} bodyStyle={{ padding: '15px', overflowX: 'auto', maxHeight: '80vh' }}
title={title} title={title}
centered destroyOnClose centered destroyOnClose
onCancel={() => { close() }} onCancel={() => { close() }}
> >
<Spin spinning={loading || waiting}> <Spin spinning={loading || waiting}>
<Header title='基本信息' /> {
<BasicForm ref={basicFormRef} type={type} task={task} /> !animating && <React.Fragment>
<Header title='对比范围' /> <Header title='基本信息' />
<Range ref={rangeRef} type={type} task={task} /> <BasicForm ref={basicFormRef} type={type} task={task} />
<Header title='对比策略' /> <Header title='对比范围' />
<Strategy ref={strategyRef} type={type} task={task} /> <Range ref={rangeRef} type={type} task={task} />
<Header title='调度配置' /> <Header title='对比策略' />
<ScheduleForm ref={scheduleFormRef} type={type} task={task} /> <Strategy ref={strategyRef} type={type} task={task} />
<Header title='调度配置' />
<ScheduleForm ref={scheduleFormRef} type={type} task={task} />
</React.Fragment>
}
</Spin> </Spin>
</Modal> </Modal>
) )
...@@ -1095,32 +1109,38 @@ const Strategy = React.forwardRef(function ({ type, task }, ref) { ...@@ -1095,32 +1109,38 @@ const Strategy = React.forwardRef(function ({ type, task }, ref) {
return ( return (
<Spin spinning={loadingPropertyTypes}> <Spin spinning={loadingPropertyTypes}>
<div> <div>
<Space className='mb-3'> {
<Button onClick={onAddClick}>新建</Button> type !== 'detail' && <Space className='mb-3'>
<Tooltip title={(selectedRows??[]).length===0?'请先选择对比策略':''}> <Button onClick={onAddClick}>新建</Button>
<Button disabled={(selectedRows??[]).length===0} onClick={onBatchDeleteClick}>删除</Button> <Tooltip title={(selectedRows??[]).length===0?'请先选择对比策略':''}>
</Tooltip> <Button disabled={(selectedRows??[]).length===0} onClick={onBatchDeleteClick}>删除</Button>
</Space> </Tooltip>
</Space>
}
<div ref={tableRef}> <div ref={tableRef}>
<Form onValuesChange={onValuesChange} form={form} component={false}> <Form onValuesChange={onValuesChange} form={form} component={false}>
<Table <Table
rowKey={(record) => record?.modelType?.name} rowKey={(record) => record?.modelType?.name}
extraColWidth={32} extraColWidth={type!=='detail'?32:0}
columns={mergedColumns??[]} columns={mergedColumns??[]}
dataSource={tableData??[]} dataSource={tableData??[]}
bodyCell={EditableCell} bodyCell={EditableCell}
rowSelection={{ rowSelection={type!=='detail' ? {
selectedRowKeys: (selectedRows??[]).map(item => item.modelType?.name), selectedRowKeys: (selectedRows??[]).map(item => item.modelType?.name),
onChange: (selectedRowKeys, selectedRows) => { onChange: (selectedRowKeys, selectedRows) => {
setSelectedRows(selectedRows) setSelectedRows(selectedRows)
}, },
}} } : null}
onRowClick={(event, record) => { onRowClick={(event, record) => {
if (type === 'detail') return
event.stopPropagation() event.stopPropagation()
onEditClick(record) onEditClick(record)
}} }}
pagination={false} pagination={false}
shouldRowContextMenu={(record) => { shouldRowContextMenu={(record) => {
if (type === 'detail') return false
setRightRow(record) setRightRow(record)
return true return true
}} }}
......
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