blob: e27bfb79f2ff8d480c80413c1d677e8be04e3e78 [file] [log] [blame]
import React, { useEffect } from 'react';
import { Modal, Descriptions, Button } from 'antd';
import { FormattedMessage, useIntl } from '@umijs/max';
import { getValueEnumLabel } from '@/utils/options';
import { DictValueEnumObj } from '@/components/DictTag';
/* *
*
* @author whiteshader@163.com
* @datetime 2023/02/07
*
* */
export type OperlogFormValueType = Record<string, unknown> & Partial<API.Monitor.Job>;
export type OperlogFormProps = {
onCancel: (flag?: boolean, formVals?: OperlogFormValueType) => void;
open: boolean;
values: Partial<API.Monitor.Job>;
statusOptions: DictValueEnumObj;
};
const OperlogForm: React.FC<OperlogFormProps> = (props) => {
const { values, statusOptions } = props;
useEffect(() => {}, [props]);
const intl = useIntl();
const misfirePolicy: any = {
'0': '默认策略',
'1': '立即执行',
'2': '执行一次',
'3': '放弃执行',
};
const handleCancel = () => {
props.onCancel();
};
return (
<Modal
width={800}
title={intl.formatMessage({
id: 'monitor.job.detail',
defaultMessage: '操作日志详细信息',
})}
open={props.open}
destroyOnClose
onCancel={handleCancel}
footer={[
<Button key="back" onClick={handleCancel}>
关闭
</Button>,
]}
>
<Descriptions column={24}>
<Descriptions.Item
span={12}
label={<FormattedMessage id="monitor.job.job_id" defaultMessage="任务编号" />}
>
{values.jobId}
</Descriptions.Item>
<Descriptions.Item
span={12}
label={<FormattedMessage id="monitor.job.job_name" defaultMessage="任务名称" />}
>
{values.jobName}
</Descriptions.Item>
<Descriptions.Item
span={12}
label={<FormattedMessage id="monitor.job.job_group" defaultMessage="任务组名" />}
>
{values.jobGroup}
</Descriptions.Item>
<Descriptions.Item
span={12}
label={<FormattedMessage id="monitor.job.concurrent" defaultMessage="是否并发执行" />}
>
{values.concurrent === '1' ? '禁止' : '允许'}
</Descriptions.Item>
<Descriptions.Item
span={12}
label={
<FormattedMessage id="monitor.job.misfire_policy" defaultMessage="计划执行错误策略" />
}
>
{misfirePolicy[values.misfirePolicy ? values.misfirePolicy : '0']}
</Descriptions.Item>
<Descriptions.Item
span={12}
label={<FormattedMessage id="monitor.job.create_time" defaultMessage="创建时间" />}
>
{values.createTime?.toString()}
</Descriptions.Item>
<Descriptions.Item
span={12}
label={<FormattedMessage id="monitor.job.status" defaultMessage="状态" />}
>
{getValueEnumLabel(statusOptions, values.status, '未知')}
</Descriptions.Item>
<Descriptions.Item
span={12}
label={
<FormattedMessage id="monitor.job.next_valid_time" defaultMessage="下次执行时间" />
}
>
{values.nextValidTime}
</Descriptions.Item>
<Descriptions.Item
span={24}
label={
<FormattedMessage id="monitor.job.cron_expression" defaultMessage="cron执行表达式" />
}
>
{values.cronExpression}
</Descriptions.Item>
<Descriptions.Item
span={24}
label={
<FormattedMessage id="monitor.job.invoke_target" defaultMessage="调用目标字符串" />
}
>
{values.invokeTarget}
</Descriptions.Item>
</Descriptions>
</Modal>
);
};
export default OperlogForm;