blob: f5b4f65affe10dc6db255dd918cdad131b386b68 [file] [log] [blame]
86133aaa3f5d2025-04-20 21:33:29 +08001import React from 'react';
2import { Descriptions, Modal } from 'antd';
3import { useIntl, FormattedMessage } from '@umijs/max';
4import { DictValueEnumObj } from '@/components/DictTag';
5import { getValueEnumLabel } from '@/utils/options';
6
7export type OperlogFormData = Record<string, unknown> & Partial<API.Monitor.Operlog>;
8
9export type OperlogFormProps = {
10 onCancel: (flag?: boolean, formVals?: OperlogFormData) => void;
11 onSubmit: (values: OperlogFormData) => Promise<void>;
12 open: boolean;
13 values: Partial<API.Monitor.Operlog>;
14 businessTypeOptions: DictValueEnumObj;
15 operatorTypeOptions: DictValueEnumObj;
16 statusOptions: DictValueEnumObj;
17};
18
19const OperlogDetailForm: React.FC<OperlogFormProps> = (props) => {
20
21 const { values, businessTypeOptions, operatorTypeOptions, statusOptions, } = props;
22
23 const intl = useIntl();
24 const handleOk = () => {
25 console.log("handle ok");
26 };
27 const handleCancel = () => {
28 props.onCancel();
29 };
30
31 return (
32 <Modal
33 width={640}
34 title={intl.formatMessage({
35 id: 'monitor.operlog.title',
36 defaultMessage: '编辑操作日志记录',
37 })}
38 open={props.open}
39 destroyOnClose
40 onOk={handleOk}
41 onCancel={handleCancel}
42 >
43 <Descriptions column={24}>
44 <Descriptions.Item
45 span={12}
46 label={<FormattedMessage id="monitor.operlog.module" defaultMessage="操作模块" />}
47 >
48 {`${values.title}/${getValueEnumLabel(businessTypeOptions, values.businessType)}`}
49 </Descriptions.Item>
50 <Descriptions.Item
51 span={12}
52 label={<FormattedMessage id="monitor.operlog.request_method" defaultMessage="请求方式" />}
53 >
54 {values.requestMethod}
55 </Descriptions.Item>
56 <Descriptions.Item
57 span={12}
58 label={<FormattedMessage id="monitor.operlog.oper_name" defaultMessage="操作人员" />}
59 >
60 {`${values.operName}/${values.operIp}`}
61 </Descriptions.Item>
62 <Descriptions.Item
63 span={12}
64 label={<FormattedMessage id="monitor.operlog.operator_type" defaultMessage="操作类别" />}
65 >
66 {getValueEnumLabel(operatorTypeOptions, values.operatorType)}
67 </Descriptions.Item>
68 <Descriptions.Item
69 span={24}
70 label={<FormattedMessage id="monitor.operlog.method" defaultMessage="方法名称" />}
71 >
72 {values.method}
73 </Descriptions.Item>
74 <Descriptions.Item
75 span={24}
76 label={<FormattedMessage id="monitor.operlog.oper_url" defaultMessage="请求URL" />}
77 >
78 {values.operUrl}
79 </Descriptions.Item>
80 <Descriptions.Item
81 span={24}
82 label={<FormattedMessage id="monitor.operlog.oper_param" defaultMessage="请求参数" />}
83 >
84 {values.operParam}
85 </Descriptions.Item>
86 <Descriptions.Item
87 span={24}
88 label={<FormattedMessage id="monitor.operlog.json_result" defaultMessage="返回参数" />}
89 >
90 {values.jsonResult}
91 </Descriptions.Item>
92 <Descriptions.Item
93 span={24}
94 label={<FormattedMessage id="monitor.operlog.error_msg" defaultMessage="错误消息" />}
95 >
96 {values.errorMsg}
97 </Descriptions.Item>
98 <Descriptions.Item
99 span={12}
100 label={<FormattedMessage id="monitor.operlog.status" defaultMessage="操作状态" />}
101 >
102 {getValueEnumLabel(statusOptions, values.status)}
103 </Descriptions.Item>
104 <Descriptions.Item
105 span={12}
106 label={<FormattedMessage id="monitor.operlog.oper_time" defaultMessage="操作时间" />}
107 >
108 {values.operTime?.toString()}
109 </Descriptions.Item>
110 </Descriptions>
111 </Modal>
112 );
113};
114
115export default OperlogDetailForm;