import React, { useState } from "react";
|
import {
|
List,
|
DatagridConfigurable,
|
SearchInput,
|
TopToolbar,
|
SelectColumnsButton,
|
EditButton,
|
FilterButton,
|
TextField,
|
TextInput,
|
FunctionField,
|
SelectInput,
|
WrapperField,
|
DeleteButton,
|
} from 'react-admin';
|
import { Box } from '@mui/material';
|
import { styled } from '@mui/material/styles';
|
import OpenApiAppCreate from "./OpenApiAppCreate";
|
import EmptyData from "@/page/components/EmptyData";
|
import MyCreateButton from "@/page/components/MyCreateButton";
|
import { OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting';
|
|
const StyledDatagrid = styled(DatagridConfigurable)(() => ({
|
'& .RaDatagrid-row': { cursor: 'auto' },
|
'& .opt': { width: 140 },
|
}));
|
|
const filters = [
|
<SearchInput source="condition" alwaysOn />,
|
<TextInput source="id" label="应用ID" />,
|
<TextInput source="name" label="应用名称" />,
|
<SelectInput
|
label="启用状态"
|
source="enable"
|
choices={[
|
{ id: 1, name: '启用' },
|
{ id: 0, name: '未启用' },
|
]}
|
/>,
|
];
|
|
const OpenApiAppList = () => {
|
const [createDialog, setCreateDialog] = useState(false);
|
|
return (
|
<Box display="flex">
|
<List
|
title="应用管理"
|
empty={<EmptyData onClick={() => setCreateDialog(true)} />}
|
filters={filters}
|
sort={{ field: "id", order: "asc" }}
|
actions={(
|
<TopToolbar>
|
<FilterButton />
|
<MyCreateButton onClick={() => setCreateDialog(true)} />
|
<SelectColumnsButton preferenceKey="openApiApp" />
|
</TopToolbar>
|
)}
|
perPage={DEFAULT_PAGE_SIZE}
|
>
|
<StyledDatagrid
|
preferenceKey="openApiApp"
|
bulkActionButtons={() => <DeleteButton mutationMode={OPERATE_MODE} />}
|
rowClick={false}
|
omit={['tenantId']}
|
>
|
<TextField source="id" label="应用ID" />
|
<TextField source="name" label="应用名称" />
|
<TextField source="screct" label="应用密钥" />
|
<TextField source="url" label="应用URL" />
|
<FunctionField source="enable" label="启用" render={(r) => (r.enable === 1 ? '启用' : '未启用')} />
|
<WrapperField cellClassName="opt" label="操作">
|
<EditButton sx={{ padding: '1px', fontSize: '.75rem' }} />
|
<DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} />
|
</WrapperField>
|
</StyledDatagrid>
|
</List>
|
<OpenApiAppCreate open={createDialog} setOpen={setCreateDialog} />
|
</Box>
|
);
|
};
|
|
export default OpenApiAppList;
|