166 lines
5.6 KiB
TypeScript
166 lines
5.6 KiB
TypeScript
import React from 'react'
|
|
import {useNavigate} from 'react-router'
|
|
import {
|
|
amisRender,
|
|
commonInfo,
|
|
crudCommonOptions,
|
|
mappingField,
|
|
mappingItem,
|
|
paginationTemplate,
|
|
readOnlyDialogOptions,
|
|
} from '../../../util/amis.tsx'
|
|
import {generateInputForm} from './InputSchema.tsx'
|
|
|
|
const statusMapping = [
|
|
mappingItem('完成', 'FINISHED', 'label-success'),
|
|
mappingItem('执行中', 'RUNNING', 'label-warning'),
|
|
mappingItem('错误', 'ERROR', 'label-danger'),
|
|
]
|
|
|
|
const FlowTask: React.FC = () => {
|
|
const navigate = useNavigate()
|
|
return (
|
|
<div className="task-template">
|
|
{amisRender(
|
|
{
|
|
type: 'page',
|
|
title: '任务记录',
|
|
body: [
|
|
{
|
|
type: 'crud',
|
|
api: {
|
|
method: 'post',
|
|
url: `${commonInfo.baseAiUrl}/flow_task/list`,
|
|
data: {
|
|
page: {
|
|
index: '${page}',
|
|
size: '${perPage}',
|
|
},
|
|
},
|
|
},
|
|
...crudCommonOptions(),
|
|
...paginationTemplate(
|
|
10,
|
|
5,
|
|
[
|
|
{
|
|
type: 'action',
|
|
label: '',
|
|
icon: 'fa fa-plus',
|
|
size: 'sm',
|
|
onEvent: {
|
|
click: {
|
|
actions: [
|
|
{
|
|
actionType: 'custom',
|
|
// @ts-ignore
|
|
script: (context, action, event) => {
|
|
navigate(`/ai/flow_task/add`)
|
|
},
|
|
},
|
|
],
|
|
},
|
|
},
|
|
},
|
|
],
|
|
),
|
|
columns: [
|
|
{
|
|
name: 'id',
|
|
label: '任务ID',
|
|
width: 200,
|
|
},
|
|
{
|
|
name: 'templateName',
|
|
label: '模板',
|
|
},
|
|
{
|
|
name: 'status',
|
|
label: '状态',
|
|
width: 50,
|
|
align: 'center',
|
|
...mappingField('status', statusMapping),
|
|
},
|
|
{
|
|
type: 'operation',
|
|
label: '操作',
|
|
width: 200,
|
|
buttons: [
|
|
{
|
|
visibleOn: 'hasInput',
|
|
type: 'action',
|
|
label: '查看',
|
|
level: 'link',
|
|
size: 'sm',
|
|
actionType: 'dialog',
|
|
dialog: {
|
|
title: '查看',
|
|
size: 'md',
|
|
...readOnlyDialogOptions(),
|
|
body: [
|
|
{
|
|
type: 'service',
|
|
schemaApi: {
|
|
method: 'get',
|
|
url: `${commonInfo.baseAiUrl}/flow_task/input_schema/\${id}`,
|
|
// @ts-ignore
|
|
adaptor: (payload, response, api, context) => {
|
|
return {
|
|
...payload,
|
|
data: {
|
|
...generateInputForm(payload.data ?? {}, undefined, false, true),
|
|
id: 'db8a4d10-0c47-4e27-b1a4-d0f2e1c15992',
|
|
initApi: {
|
|
method: 'get',
|
|
url: `${commonInfo.baseAiUrl}/flow_task/input_data/\${id}`,
|
|
// @ts-ignore
|
|
adaptor: (payload, response, api, context) => {
|
|
console.log(payload)
|
|
return {
|
|
...payload,
|
|
data: {
|
|
inputData: payload.data ?? {},
|
|
},
|
|
}
|
|
},
|
|
},
|
|
static: true,
|
|
},
|
|
}
|
|
},
|
|
},
|
|
},
|
|
],
|
|
},
|
|
},
|
|
{
|
|
type: 'action',
|
|
label: '执行',
|
|
level: 'link',
|
|
size: 'sm',
|
|
actionType: 'ajax',
|
|
api: `get:${commonInfo.baseAiUrl}/flow_task/execute/\${id}`,
|
|
},
|
|
{
|
|
type: 'action',
|
|
label: '删除',
|
|
className: 'text-danger btn-deleted',
|
|
level: 'link',
|
|
size: 'sm',
|
|
actionType: 'ajax',
|
|
api: `get:${commonInfo.baseAiUrl}/flow_task/remove/\${id}`,
|
|
confirmText: '确认删除任务记录:${name}',
|
|
confirmTitle: '删除',
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
],
|
|
},
|
|
)}
|
|
</div>
|
|
)
|
|
}
|
|
|
|
export default FlowTask |