From f0bcc3aaa31f9658cbed0ef4bcc5b6de486fd903 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期三, 26 三月 2025 12:32:19 +0800 Subject: [PATCH] 物料上级分组不显示问题修复 --- rsf-admin/src/page/basicInfo/loc/LocList.jsx | 104 +++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 94 insertions(+), 10 deletions(-) diff --git a/rsf-admin/src/page/basicInfo/loc/LocList.jsx b/rsf-admin/src/page/basicInfo/loc/LocList.jsx index d07243d..af7f744 100644 --- a/rsf-admin/src/page/basicInfo/loc/LocList.jsx +++ b/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,39 @@ }, '& .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" + alwaysOn + > + <AutocompleteInput + label="table.field.loc.warehouseId" + optionText="name" + filterToQuery={(val) => ({ name: val })} + /> + </ReferenceInput>, + <ReferenceInput + source="areaId" + label="table.field.loc.areaId" + reference="warehouseAreas" + alwaysOn + > + <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 +141,7 @@ const [createDialog, setCreateDialog] = useState(false); const [drawerVal, setDrawerVal] = useState(false); - + const [initDialog, setInitDialog] = useState(false); return ( <Box display="flex"> @@ -128,7 +155,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={( @@ -141,6 +194,7 @@ </TopToolbar> )} perPage={DEFAULT_PAGE_SIZE} + aside={<LocListAside />} > <StyledDatagrid preferenceKey='loc' @@ -148,6 +202,7 @@ bulkActionButtons={ <> <BatchButton /> + <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> ) } @@ -246,6 +306,7 @@ const [createDialog, setCreateDialog] = useState(false); + return ( <> <Button onClick={() => setCreateDialog(true)} label={"toolbar.batch"}> @@ -282,4 +343,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} + /> + </> + + ) } \ No newline at end of file -- Gitblit v1.9.1