lbq
昨天 8ce2fc9e420f68e07512b9addaf514a09effb4a7
rsf-admin/src/page/basicInfo/basStation/BasStationList.jsx
@@ -33,9 +33,12 @@
    DeleteButton,
} from 'react-admin';
import { Box, Typography, Card, Stack } from '@mui/material';
import { Box, Typography, Card, Stack, Button } from '@mui/material';
import ContentCopyIcon from '@mui/icons-material/ContentCopy';
import PlaylistAddIcon from '@mui/icons-material/PlaylistAdd';
import { styled } from '@mui/material/styles';
import BasStationCreate from "./BasStationCreate";
import BasStationInitModal from "./BasStationInitModal";
import BasStationPanel from "./BasStationPanel";
import EmptyData from "../../components/EmptyData";
import MyCreateButton from "../../components/MyCreateButton";
@@ -59,7 +62,7 @@
    '& .column-name': {
    },
    '& .opt': {
        width: 200
        width: 220
    },
}));
@@ -93,7 +96,29 @@
        resettable
    />,
]
const CopyButton = ({ setCopyRecord, setCreateDialog }) => {
    const record = useRecordContext();
    const translate = useTranslate();
    if (!record) return null;
    return (
        <Button
            size="small"
            startIcon={<ContentCopyIcon fontSize="small" />}
            sx={{ padding: '1px', fontSize: '.75rem', minWidth: 'auto' }}
            onClick={(e) => {
                e.stopPropagation();
                const { id, createTime, updateTime, createBy, updateBy, createBy$, updateBy$, ...rest } = record;
                const copied = { ...rest };
                if (record.areaIds) copied.areaIds = [...(Array.isArray(record.areaIds) ? record.areaIds : [])];
                if (record.containerTypes) copied.containerTypes = [...(Array.isArray(record.containerTypes) ? record.containerTypes : [])];
                setCopyRecord(copied);
                setCreateDialog(true);
            }}
        >
            {translate('toolbar.copy')}
        </Button>
    );
};
const BasStationList = () => {
    const translate = useTranslate();
@@ -101,6 +126,8 @@
    const [drawerVal, setDrawerVal] = useState(false);
    const [areaFieldDialog, setAreaFieldDialog] = useState(false);
    const [areaFieldDialog2, setAreaFieldDialog2] = useState(false);
    const [copyRecord, setCopyRecord] = useState(null);
    const [initDialogOpen, setInitDialogOpen] = useState(false);
    return (
        <Box display="flex">
            <List
@@ -120,6 +147,16 @@
                    <TopToolbar>
                        <FilterButton />
                        <MyCreateButton onClick={() => { setCreateDialog(true) }} />
                        <Button
                          variant="text"
                          color="primary"
                          size="small"
                          startIcon={<PlaylistAddIcon />}
                          onClick={() => setInitDialogOpen(true)}
                          sx={{ ml: 1 }}
                        >
                          {translate('toolbar.siteInit')}
                        </Button>
                        <SelectColumnsButton preferenceKey='basStation' />
                        <MyExportButton />
                    </TopToolbar>
@@ -162,7 +199,7 @@
                    <FunctionField
                        source="outAble"
                        label="table.field.basStation.outAble"
                        render={record => record.inAble === 1 ? '是' : '否'}
                        render={record => record.outAble === 1 ? '是' : '否'}
                    />
                    <NumberField source="area$" label="table.field.basStation.area" />
                    <FunctionField
@@ -201,6 +238,7 @@
                    {/* <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">
                        <CopyButton setCopyRecord={setCopyRecord} setCreateDialog={setCreateDialog} />
                        <EditButton sx={{ padding: '1px', fontSize: '.75rem' }} />
                        <DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} />
                    </WrapperField>
@@ -210,8 +248,13 @@
            <BasStationCreate
                open={createDialog}
                setOpen={setCreateDialog}
                copyRecord={copyRecord}
                onClose={() => setCopyRecord(null)}
            />
            <BasStationInitModal
              open={initDialogOpen}
              setOpen={setInitDialogOpen}
            />
            <PageDrawer
                title='BasStation Detail'
                drawerVal={drawerVal}