verou
2025-03-26 6793162873940b6a34040ab815d6fa2eebfda402
rsf-admin/src/page/basicInfo/loc/LocList.jsx
@@ -33,12 +33,12 @@
    DeleteButton,
    useRefresh,
    Button,
    useList
    useList,
} from 'react-admin';
import { Box, Typography, Card, Stack } from '@mui/material';
import { styled } from '@mui/material/styles';
import LocCreate from "./LocCreate";
import LocPanel from "./LocPanel";
import BindModal from "./BindModal";
import EmptyData from "../../components/EmptyData";
import DynamicField from "../../components/DynamicField";
import MyCreateButton from "../../components/MyCreateButton";
@@ -54,7 +54,9 @@
import EditIcon from '@mui/icons-material/Edit';
import request from '@/utils/request';
import DiscountIcon from '@mui/icons-material/Discount';
import { textAlign } from "@mui/system";
import LinkIcon from '@mui/icons-material/Link';
import InitModal from "./InitModal";
import LocListAside from "./LocListAside";
const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
    '& .css-1vooibu-MuiSvgIcon-root': {
@@ -70,14 +72,37 @@
    },
    '& .RaDatagrid-headerCell': {
        textAlign: 'left'
    },
    '& .RaDatagrid-rowCell': {
        textAlign: 'left'
    }
}));
const filters = [
    <SearchInput source="condition" alwaysOn />,
    <NumberField source="warehouseId$" label="table.field.loc.warehouseId" />,
    <NumberField source="areaId$" label="table.field.loc.areaId" />,
    <ReferenceInput
        source="warehouseId"
        label="table.field.loc.warehouseId"
        reference="warehouse"
    >
        <AutocompleteInput
            label="table.field.loc.warehouseId"
            optionText="name"
            filterToQuery={(val) => ({ name: val })}
        />
    </ReferenceInput>,
    <ReferenceInput
        source="areaId"
        label="table.field.loc.areaId"
        reference="warehouseAreas"
    >
        <AutocompleteInput
            label="table.field.loc.areaId"
            optionText="name"
            filterToQuery={(val) => ({ name: val })}
        />
    </ReferenceInput>,
    <TextInput source="code" label="table.field.loc.code" />,
    <TextInput source="type" label="table.field.loc.type" />,
    <TextInput source="name" label="table.field.loc.name" />,
@@ -114,7 +139,7 @@
    const [createDialog, setCreateDialog] = useState(false);
    const [drawerVal, setDrawerVal] = useState(false);
    const [initDialog, setInitDialog] = useState(false);
    return (
        <Box display="flex">
@@ -128,7 +153,33 @@
                    marginRight: drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0,
                }}
                title={"menu.loc"}
                empty={<EmptyData onClick={() => { setCreateDialog(true) }} />}
                empty={<EmptyData
                    children={
                        <Box sx={{ gap: 2, display: 'flex' }}>
                            <Button
                                variant="contained"
                                color="primary"
                                sx={{
                                    fontSize: '1em',
                                    mt: 2
                                }}
                                onClick={() => { setCreateDialog(true) }}>
                                {translate('create.empty.button')}
                            </Button>
                            <Button
                                variant="contained"
                                color="primary"
                                sx={{
                                    fontSize: '1em',
                                    mt: 2
                                }}
                                onClick={() => { setInitDialog(true) }}>
                                {translate('toolbar.locInit')}
                            </Button>
                        </Box>
                    }
                    onClick={() => { }} />}
                filters={filters}
                sort={{ field: "create_time", order: "desc" }}
                actions={(
@@ -147,7 +198,11 @@
                    align="left"
                    bulkActionButtons={
                        <>
                            <BatchButton />
                            <BatchWateButton />
                            <BatchAreasButton />
                            <BatchLocTypeButton />
                            <BatchStatusButton />
                            <BindButton />
                            <SubzoneButton />
                            <BulkDeleteButton />
                        </>
@@ -157,9 +212,9 @@
                >
                    <NumberField source="id" />
                    <NumberField source="warehouseId$" label="table.field.loc.warehouseId" />
                    <NumberField source="areaId$" label="table.field.loc.areaId" align="left" />
                    <TextField source="code" label="table.field.loc.code" align="left" />
                    <TextField source="typeIds$" label="table.field.loc.type" align="left" />
                    <NumberField source="areaId$" label="table.field.loc.areaId" />
                    <TextField source="code" label="table.field.loc.code" />
                    <TextField source="typeIds$" label="table.field.loc.type" />
                    {/* <TextField source="name" label="table.field.loc.name" /> */}
                    {/* <NumberField source="flagLogic" label="table.field.loc.flagLogic" />
                    <TextField source="fucAtrrs" label="table.field.loc.fucAtrrs" />
@@ -206,6 +261,11 @@
                setDrawerVal={setDrawerVal}
            >
            </PageDrawer>
            <InitModal
                open={initDialog}
                setOpen={setInitDialog}
            />
        </Box>
    )
}
@@ -238,7 +298,7 @@
    )
}
const BatchButton = () => {
const BatchWateButton = () => {
    const record = useRecordContext();
    const notify = useNotify();
    const refresh = useRefresh();
@@ -248,13 +308,86 @@
    return (
        <>
            <Button onClick={() => setCreateDialog(true)} label={"toolbar.batch"}>
            <Button onClick={() => setCreateDialog(true)} label={"toolbar.batchWarehouse"}>
                <EditIcon />
            </Button>
            <BatchModal
                open={createDialog}
                setOpen={setCreateDialog}
                fieldType={'warehouseId'}
            />
        </>
    )
}
const BatchAreasButton = () => {
    const record = useRecordContext();
    const notify = useNotify();
    const refresh = useRefresh();
    const [createDialog, setCreateDialog] = useState(false);
    return (
        <>
            <Button onClick={() => setCreateDialog(true)} label={"toolbar.batchWarehouseAreas"}>
                <EditIcon />
            </Button>
            <BatchModal
                open={createDialog}
                setOpen={setCreateDialog}
                fieldType={'areaId'}
            />
        </>
    )
}
const BatchLocTypeButton = () => {
    const record = useRecordContext();
    const notify = useNotify();
    const refresh = useRefresh();
    const [createDialog, setCreateDialog] = useState(false);
    return (
        <>
            <Button onClick={() => setCreateDialog(true)} label={"toolbar.batchLocType"}>
                <EditIcon />
            </Button>
            <BatchModal
                open={createDialog}
                setOpen={setCreateDialog}
                fieldType={'typeIds'}
            />
        </>
    )
}
const BatchStatusButton = () => {
    const record = useRecordContext();
    const notify = useNotify();
    const refresh = useRefresh();
    const [createDialog, setCreateDialog] = useState(false);
    return (
        <>
            <Button onClick={() => setCreateDialog(true)} label={"toolbar.batchStatus"}>
                <EditIcon />
            </Button>
            <BatchModal
                open={createDialog}
                setOpen={setCreateDialog}
                fieldType={'status'}
            />
        </>
@@ -282,4 +415,27 @@
        </>
    )
}
const BindButton = () => {
    const record = useRecordContext();
    const notify = useNotify();
    const refresh = useRefresh();
    const [createDialog, setCreateDialog] = useState(false);
    return (
        <>
            <Button onClick={() => setCreateDialog(true)} label={"toolbar.bindmatnr"}>
                <LinkIcon />
            </Button>
            <BindModal
                open={createDialog}
                setOpen={setCreateDialog}
            />
        </>
    )
}