From 6a19c21930c9fef7fe1dd3aaa35133f68375300a Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期四, 05 二月 2026 15:44:15 +0800
Subject: [PATCH] #

---
 zy-acs-flow/src/page/integrationRecord/IntegrationRecordList.jsx |  117 ++++++++++++++++++++++++++++++++++------------------------
 1 files changed, 69 insertions(+), 48 deletions(-)

diff --git a/zy-acs-flow/src/page/integrationRecord/IntegrationRecordList.jsx b/zy-acs-flow/src/page/integrationRecord/IntegrationRecordList.jsx
index ddd87d2..0fea315 100644
--- a/zy-acs-flow/src/page/integrationRecord/IntegrationRecordList.jsx
+++ b/zy-acs-flow/src/page/integrationRecord/IntegrationRecordList.jsx
@@ -1,48 +1,32 @@
-import React, { useState, useRef, useEffect, useMemo, useCallback } from "react";
-import { useNavigate } from 'react-router-dom';
+import React, { useState } from "react";
 import {
     List,
     DatagridConfigurable,
     SearchInput,
     TopToolbar,
     SelectColumnsButton,
-    EditButton,
     FilterButton,
-    CreateButton,
-    ExportButton,
-    BulkDeleteButton,
-    WrapperField,
     useRecordContext,
-    useTranslate,
-    useNotify,
-    useListContext,
-    FunctionField,
     TextField,
     NumberField,
     DateField,
     BooleanField,
     ReferenceField,
     TextInput,
-    DateTimeInput,
     DateInput,
     SelectInput,
-    NumberInput,
-    ReferenceInput,
-    ReferenceArrayInput,
-    AutocompleteInput,
-    DeleteButton,
 } from 'react-admin';
-import { Box, Typography, Card, Stack } from '@mui/material';
+import { Box, Chip } from '@mui/material';
 import { styled } from '@mui/material/styles';
 import IntegrationRecordCreate from "./IntegrationRecordCreate";
-import IntegrationRecordPanel from "./IntegrationRecordPanel";
+import IntegrationRecordDetail from "./IntegrationRecordDetail";
 import EmptyDataLoader from "../components/EmptyDataLoader";
 import MyCreateButton from "../components/MyCreateButton";
 import MyExportButton from '../components/MyExportButton';
 import PageDrawer from "../components/PageDrawer";
-import MyField from "../components/MyField";
-import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting';
-import * as Common from '@/utils/common';
+import { PAGE_DRAWER_WIDTH, DEFAULT_PAGE_SIZE } from '@/config/setting';
+import { format } from 'date-fns';
+import rowSx from './rowSx';
 
 const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
     '& .css-1vooibu-MuiSvgIcon-root': {
@@ -51,10 +35,34 @@
     '& .RaDatagrid-row': {
         cursor: 'auto'
     },
-    '& .column-name': {
+    '& .column-url': {
+        maxWidth: '16em',
+        overflow: 'hidden',
+        textOverflow: 'ellipsis',
+        whiteSpace: 'nowrap',
+    },
+    '& .column-request': {
+        maxWidth: '18em',
+        overflow: 'hidden',
+        textOverflow: 'ellipsis',
+        whiteSpace: 'nowrap',
+    },
+    '& .column-response': {
+        maxWidth: '18em',
+        overflow: 'hidden',
+        textOverflow: 'ellipsis',
+        whiteSpace: 'nowrap',
+    },
+    '& .column-costMs': {
+        maxWidth: '9em',
     },
     '& .opt': {
         width: 200
+    },
+    '& .RaDatagrid-thead': {
+        borderLeftColor: 'transparent',
+        borderLeftWidth: 5,
+        borderLeftStyle: 'solid',
     },
 }));
 
@@ -87,8 +95,6 @@
 ]
 
 const IntegrationRecordList = () => {
-    const translate = useTranslate();
-
     const [createDialog, setCreateDialog] = useState(false);
     const [drawerVal, setDrawerVal] = useState(false);
 
@@ -110,7 +116,6 @@
                 actions={(
                     <TopToolbar>
                         <FilterButton />
-                        <MyCreateButton onClick={() => { setCreateDialog(true) }} />
                         <SelectColumnsButton preferenceKey='integrationRecord' />
                         <MyExportButton />
                     </TopToolbar>
@@ -119,11 +124,13 @@
             >
                 <StyledDatagrid
                     preferenceKey='integrationRecord'
-                    bulkActionButtons={() => <BulkDeleteButton mutationMode={OPERATE_MODE} />}
-                    rowClick={(id, resource, record) => false}
-                    expand={() => <IntegrationRecordPanel />}
-                    expandSingle={true}
-                    omit={['id', 'createTime', 'createBy', 'memo']}
+                    bulkActionButtons={false}
+                    rowClick={(id, resource, record) => {
+                        setDrawerVal(!!drawerVal && drawerVal === record ? null : record);
+                        return false;
+                    }}
+                    omit={['id', 'uuid', 'appkey', 'direction', 'timestamp', 'updateTime', 'memo']}
+                    rowSx={rowSx(drawerVal || null)}
                 >
                     <NumberField source="id" />
                     <TextField source="uuid" label="table.field.integrationRecord.uuid" />
@@ -131,29 +138,19 @@
                     <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} />
-                    <TextField source="timestamp" label="table.field.integrationRecord.timestamp" />
+                    <TextField 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" />
-                    <TextField source="response" label="table.field.integrationRecord.response" />
+                    <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" />
                     <TextField source="err" label="table.field.integrationRecord.err" />
-                    <TextField source="result$" label="table.field.integrationRecord.result" sortable={false} />
-                    <NumberField source="costMs" label="table.field.integrationRecord.costMs" />
+                    <NumberField source="costMs" label="table.field.integrationRecord.costMs" sx={{ fontWeight: 'bold' }} />
 
-                    <ReferenceField source="updateBy" label="common.field.updateBy" reference="user" link={false} sortable={false}>
-                        <TextField source="nickname" />
-                    </ReferenceField>
                     <DateField source="updateTime" label="common.field.updateTime" showTime />
-                    <ReferenceField source="createBy" label="common.field.createBy" reference="user" link={false} sortable={false}>
-                        <TextField source="nickname" />
-                    </ReferenceField>
                     <DateField source="createTime" label="common.field.createTime" showTime />
-                    <BooleanField source="statusBool" label="common.field.status" sortable={false} />
+                    {/* <BooleanField source="statusBool" label="common.field.status" sortable={false} /> */}
                     <TextField source="memo" label="common.field.memo" sortable={false} />
-                    <WrapperField cellClassName="opt" label="common.field.opt">
-                        <EditButton sx={{ padding: '1px', fontSize: '.75rem' }} />
-                        <DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} />
-                    </WrapperField>
                 </StyledDatagrid>
             </List>
             <IntegrationRecordCreate
@@ -165,9 +162,33 @@
                 drawerVal={drawerVal}
                 setDrawerVal={setDrawerVal}
             >
+                <IntegrationRecordDetail integration={drawerVal} />
             </PageDrawer>
         </Box>
     )
 }
 
+const FormattedTimestampField = ({ source }) => {
+    const record = useRecordContext();
+    if (!record) return null;
+    const val = record[source];
+    if (!val) return null;
+    const formattedDate = format(new Date(Number(val)), 'yyyy-MM-dd HH:mm:ss');
+    return <span>{formattedDate}</span>;
+};
+
+const ResultField = ({ source }) => {
+    const record = useRecordContext();
+    const val = record?.[source];
+    return (
+        <>
+            {val === 1 ? (
+                <Chip label="success" color="success" variant="outlined" size="small" />
+            ) : (
+                <Chip label="error" color="error" variant="outlined" size="small" />
+            )}
+        </>
+    );
+};
+
 export default IntegrationRecordList;

--
Gitblit v1.9.1