blob: e27bfb79f2ff8d480c80413c1d677e8be04e3e78 [file] [log] [blame]
Jiarenxiang38dcb052025-03-13 16:40:09 +08001import React, { useEffect } from 'react';
2import { Modal, Descriptions, Button } from 'antd';
3import { FormattedMessage, useIntl } from '@umijs/max';
4import { getValueEnumLabel } from '@/utils/options';
5import { DictValueEnumObj } from '@/components/DictTag';
6
7/* *
8 *
9 * @author whiteshader@163.com
10 * @datetime 2023/02/07
11 *
12 * */
13
14export type OperlogFormValueType = Record<string, unknown> & Partial<API.Monitor.Job>;
15
16export type OperlogFormProps = {
17 onCancel: (flag?: boolean, formVals?: OperlogFormValueType) => void;
18 open: boolean;
19 values: Partial<API.Monitor.Job>;
20 statusOptions: DictValueEnumObj;
21};
22
23const OperlogForm: React.FC<OperlogFormProps> = (props) => {
24 const { values, statusOptions } = props;
25
26 useEffect(() => {}, [props]);
27
28 const intl = useIntl();
29
30 const misfirePolicy: any = {
31 '0': '默认策略',
32 '1': '立即执行',
33 '2': '执行一次',
34 '3': '放弃执行',
35 };
36
37 const handleCancel = () => {
38 props.onCancel();
39 };
40
41 return (
42 <Modal
43 width={800}
44 title={intl.formatMessage({
45 id: 'monitor.job.detail',
46 defaultMessage: '操作日志详细信息',
47 })}
48 open={props.open}
49 destroyOnClose
50 onCancel={handleCancel}
51 footer={[
52 <Button key="back" onClick={handleCancel}>
53 关闭
54 </Button>,
55 ]}
56 >
57 <Descriptions column={24}>
58 <Descriptions.Item
59 span={12}
60 label={<FormattedMessage id="monitor.job.job_id" defaultMessage="任务编号" />}
61 >
62 {values.jobId}
63 </Descriptions.Item>
64 <Descriptions.Item
65 span={12}
66 label={<FormattedMessage id="monitor.job.job_name" defaultMessage="任务名称" />}
67 >
68 {values.jobName}
69 </Descriptions.Item>
70 <Descriptions.Item
71 span={12}
72 label={<FormattedMessage id="monitor.job.job_group" defaultMessage="任务组名" />}
73 >
74 {values.jobGroup}
75 </Descriptions.Item>
76 <Descriptions.Item
77 span={12}
78 label={<FormattedMessage id="monitor.job.concurrent" defaultMessage="是否并发执行" />}
79 >
80 {values.concurrent === '1' ? '禁止' : '允许'}
81 </Descriptions.Item>
82 <Descriptions.Item
83 span={12}
84 label={
85 <FormattedMessage id="monitor.job.misfire_policy" defaultMessage="计划执行错误策略" />
86 }
87 >
88 {misfirePolicy[values.misfirePolicy ? values.misfirePolicy : '0']}
89 </Descriptions.Item>
90 <Descriptions.Item
91 span={12}
92 label={<FormattedMessage id="monitor.job.create_time" defaultMessage="创建时间" />}
93 >
94 {values.createTime?.toString()}
95 </Descriptions.Item>
96 <Descriptions.Item
97 span={12}
98 label={<FormattedMessage id="monitor.job.status" defaultMessage="状态" />}
99 >
100 {getValueEnumLabel(statusOptions, values.status, '未知')}
101 </Descriptions.Item>
102 <Descriptions.Item
103 span={12}
104 label={
105 <FormattedMessage id="monitor.job.next_valid_time" defaultMessage="下次执行时间" />
106 }
107 >
108 {values.nextValidTime}
109 </Descriptions.Item>
110 <Descriptions.Item
111 span={24}
112 label={
113 <FormattedMessage id="monitor.job.cron_expression" defaultMessage="cron执行表达式" />
114 }
115 >
116 {values.cronExpression}
117 </Descriptions.Item>
118 <Descriptions.Item
119 span={24}
120 label={
121 <FormattedMessage id="monitor.job.invoke_target" defaultMessage="调用目标字符串" />
122 }
123 >
124 {values.invokeTarget}
125 </Descriptions.Item>
126 </Descriptions>
127 </Modal>
128 );
129};
130
131export default OperlogForm;