From 4992e4e60b73a87c3781aabd9367e11e3eaa370e Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期四, 05 二月 2026 16:00:16 +0800
Subject: [PATCH] #
---
zy-acs-flow/src/page/integrationRecord/IntegrationRecordList.jsx | 87 ++++++++++++++++++++++++++-----------------
1 files changed, 52 insertions(+), 35 deletions(-)
diff --git a/zy-acs-flow/src/page/integrationRecord/IntegrationRecordList.jsx b/zy-acs-flow/src/page/integrationRecord/IntegrationRecordList.jsx
index 0fea315..8d6e450 100644
--- a/zy-acs-flow/src/page/integrationRecord/IntegrationRecordList.jsx
+++ b/zy-acs-flow/src/page/integrationRecord/IntegrationRecordList.jsx
@@ -1,4 +1,4 @@
-import React, { useState } from "react";
+import React, { useState, useMemo } from "react";
import {
List,
DatagridConfigurable,
@@ -6,12 +6,11 @@
TopToolbar,
SelectColumnsButton,
FilterButton,
+ useTranslate,
useRecordContext,
TextField,
NumberField,
DateField,
- BooleanField,
- ReferenceField,
TextInput,
DateInput,
SelectInput,
@@ -27,6 +26,7 @@
import { PAGE_DRAWER_WIDTH, DEFAULT_PAGE_SIZE } from '@/config/setting';
import { format } from 'date-fns';
import rowSx from './rowSx';
+import { buildDirectionChoices, getDirectionLabel } from './direction';
const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
'& .css-1vooibu-MuiSvgIcon-root': {
@@ -66,37 +66,36 @@
},
}));
-const filters = [
- <SearchInput source="condition" alwaysOn />,
- <DateInput label='common.time.after' source="timeStart" alwaysOn />,
- <DateInput label='common.time.before' source="timeEnd" alwaysOn />,
-
- <TextInput source="uuid" label="table.field.integrationRecord.uuid" />,
- <TextInput source="namespace" label="table.field.integrationRecord.namespace" />,
- <TextInput source="url" label="table.field.integrationRecord.url" />,
- <TextInput source="appkey" label="table.field.integrationRecord.appkey" />,
- <TextInput source="caller" label="table.field.integrationRecord.caller" />,
- <SelectInput source="direction" label="table.field.integrationRecord.direction"
- choices={[
- { id: 1, name: '琚皟鐢�' },
- { id: 2, name: '璋冪敤澶栭儴' },
- ]}
- />,
- <TextInput source="timestamp" label="table.field.integrationRecord.timestamp" />,
- <TextInput source="clientIp" label="table.field.integrationRecord.clientIp" />,
- <SelectInput source="result" label="table.field.integrationRecord.result"
- choices={[
- { id: 1, name: '鎴愬姛' },
- { id: 0, name: '澶辫触' },
- ]}
- />,
-
- <TextInput label="common.field.memo" source="memo" />,
-]
-
const IntegrationRecordList = () => {
+ const translate = useTranslate();
const [createDialog, setCreateDialog] = useState(false);
const [drawerVal, setDrawerVal] = useState(false);
+ const directionChoices = useMemo(() => buildDirectionChoices(translate), [translate]);
+ const filters = useMemo(() => [
+ <SearchInput source="condition" alwaysOn />,
+ <DateInput label='common.time.after' source="timeStart" alwaysOn />,
+ <DateInput label='common.time.before' source="timeEnd" alwaysOn />,
+ <TextInput source="uuid" label="table.field.integrationRecord.uuid" />,
+ <TextInput source="namespace" label="table.field.integrationRecord.namespace" />,
+ <TextInput source="url" label="table.field.integrationRecord.url" />,
+ <TextInput source="appkey" label="table.field.integrationRecord.appkey" />,
+ <TextInput source="caller" label="table.field.integrationRecord.caller" />,
+ <SelectInput source="direction"
+ label="table.field.integrationRecord.direction"
+ choices={directionChoices}
+ alwaysOn
+ />,
+ // <TextInput source="timestamp" label="table.field.integrationRecord.timestamp" />,
+ <TextInput source="clientIp" label="table.field.integrationRecord.clientIp" />,
+ <SelectInput source="result" label="table.field.integrationRecord.result"
+ choices={[
+ { id: 1, name: 'common.enums.success' },
+ { id: 0, name: 'common.enums.failure' },
+ ]}
+ alwaysOn
+ />,
+ <TextInput label="common.field.memo" source="memo" />,
+ ], [directionChoices]);
return (
<Box display="flex">
@@ -138,12 +137,12 @@
<TextField source="url" label="table.field.integrationRecord.url" />
<TextField source="appkey" label="table.field.integrationRecord.appkey" />
<TextField source="caller" label="table.field.integrationRecord.caller" />
- <TextField source="direction" label="table.field.integrationRecord.direction" sortable={false} />
+ <DirectionField source="direction" label="table.field.integrationRecord.direction" sortable={false} />
<FormattedTimestampField source="timestamp" label="table.field.integrationRecord.timestamp" />
<TextField source="clientIp" label="table.field.integrationRecord.clientIp" />
<TextField source="request" label="table.field.integrationRecord.request" sortable={false} hidden={!!drawerVal} />
<TextField source="response" label="table.field.integrationRecord.response" sortable={false} hidden={!!drawerVal} />
- <ResultField source="result" label="table.field.integrationRecord.result" />
+ <ResultField source="result" label="table.field.integrationRecord.result" sortable={false} />
<TextField source="err" label="table.field.integrationRecord.err" />
<NumberField source="costMs" label="table.field.integrationRecord.costMs" sx={{ fontWeight: 'bold' }} />
@@ -178,17 +177,35 @@
};
const ResultField = ({ source }) => {
+ const translate = useTranslate();
const record = useRecordContext();
const val = record?.[source];
return (
<>
{val === 1 ? (
- <Chip label="success" color="success" variant="outlined" size="small" />
+ <Chip label={translate("common.enums.success")} color="success" variant="outlined" size="small" />
) : (
- <Chip label="error" color="error" variant="outlined" size="small" />
+ <Chip label={translate("common.enums.failure")} color="error" variant="outlined" size="small" />
)}
</>
);
};
+const DirectionField = ({ source }) => {
+ const record = useRecordContext();
+ const translate = useTranslate();
+ const val = record?.[source];
+ if (val === undefined || val === null) {
+ return null;
+ }
+ return (
+ <Chip
+ label={getDirectionLabel(translate, val)}
+ variant="outlined"
+ size="small"
+ color="info"
+ />
+ );
+};
+
export default IntegrationRecordList;
--
Gitblit v1.9.1