From f00f83d2b2a868e518b78c76d3e11bc01aabffa7 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期六, 22 三月 2025 15:38:35 +0800 Subject: [PATCH] Merge branch 'front' of http://47.97.1.152:5880/r/wms-master into front --- rsf-admin/src/page/basicInfo/loc/LocList.jsx | 138 ++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 114 insertions(+), 24 deletions(-) diff --git a/rsf-admin/src/page/basicInfo/loc/LocList.jsx b/rsf-admin/src/page/basicInfo/loc/LocList.jsx index fbbecc9..1053f48 100644 --- a/rsf-admin/src/page/basicInfo/loc/LocList.jsx +++ b/rsf-admin/src/page/basicInfo/loc/LocList.jsx @@ -32,22 +32,29 @@ AutocompleteInput, DeleteButton, useRefresh, - Button + Button, + 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"; import MyExportButton from '../../components/MyExportButton'; import InitButton from './InitButton'; +import BatchModal from './BatchModal'; +import SubzoneModal from './SubzoneModal'; 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 DashboardIcon from '@mui/icons-material/Dashboard'; +import EditIcon from '@mui/icons-material/Edit'; import request from '@/utils/request'; +import DiscountIcon from '@mui/icons-material/Discount'; +import LinkIcon from '@mui/icons-material/Link'; const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({ '& .css-1vooibu-MuiSvgIcon-root': { @@ -61,13 +68,16 @@ '& .opt': { width: 200 }, + '& .RaDatagrid-headerCell': { + textAlign: 'left' + } })); const filters = [ <SearchInput source="condition" alwaysOn />, - <NumberField source="warehouseId$" label="table.field.loc.warehouseId" />, - <NumberField source="areaId$" label="table.field.loc.areaId" />, + <TextInput source="warehouseId$" label="table.field.loc.warehouseId" />, + <TextInput source="areaId$" label="table.field.loc.areaId" />, <TextInput source="code" label="table.field.loc.code" />, <TextInput source="type" label="table.field.loc.type" />, <TextInput source="name" label="table.field.loc.name" />, @@ -99,6 +109,8 @@ const LocList = () => { const translate = useTranslate(); + const notify = useNotify(); + const refresh = useRefresh(); const [createDialog, setCreateDialog] = useState(false); const [drawerVal, setDrawerVal] = useState(false); @@ -132,48 +144,57 @@ > <StyledDatagrid preferenceKey='loc' - bulkActionButtons={() => <BulkDeleteButton mutationMode={OPERATE_MODE} />} - rowClick={(id, resource, record) => false} - expand={() => <LocPanel />} - expandSingle={true} - omit={['id', 'createTime', 'createBy', 'memo']} + align="left" + bulkActionButtons={ + <> + <BatchButton /> + <BindButton /> + <SubzoneButton /> + <BulkDeleteButton /> + </> + } + rowClick={() => false} + omit={['id', 'createTime', 'createBy', 'memo', 'updateTime', 'updateBy']} > <NumberField source="id" /> <NumberField source="warehouseId$" label="table.field.loc.warehouseId" /> <NumberField source="areaId$" label="table.field.loc.areaId" /> <TextField source="code" label="table.field.loc.code" /> - <TextField source="type" label="table.field.loc.type" /> - <TextField source="name" label="table.field.loc.name" /> - <NumberField source="flagLogic" label="table.field.loc.flagLogic" /> + <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" /> - <TextField source="barcode" label="table.field.loc.barcode" /> - <TextField source="unit" label="table.field.loc.unit" /> - <TextField source="size" label="table.field.loc.length" /> - <TextField source="size" label="table.field.loc.width" /> - <TextField source="size" label="table.field.loc.height" /> - <NumberField source="lrow" label="table.field.loc.row" /> + <TextField source="barcode" label="table.field.loc.barcode" /> */} + {/* <TextField source="unit" label="table.field.loc.unit" /> */} + <TextField source="length" label="table.field.loc.length" /> + <TextField source="width" label="table.field.loc.width" /> + <TextField source="height" label="table.field.loc.height" /> + <NumberField source="row" label="table.field.loc.row" /> <NumberField source="col" label="table.field.loc.col" /> <NumberField source="lev" label="table.field.loc.lev" /> - <NumberField source="channel" label="table.field.loc.channel" /> + {/* <NumberField source="channel" label="table.field.loc.channel" /> <NumberField source="maxParts" label="table.field.loc.maxParts" /> <NumberField source="maxPack" label="table.field.loc.maxPack" /> <NumberField source="flagLabelMange" label="table.field.loc.flagLabelMange" /> - <TextField source="locAttrs" label="table.field.loc.locAttrs" /> + <TextField source="locAttrs" label="table.field.loc.locAttrs" /> */} + <TextField source="useStatus$" label="table.field.loc.useStatus" /> <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}> + <DateField source="updateTime" label="common.field.updateTime" showTime align="left" /> + <ReferenceField source="createBy" label="common.field.createBy" align="left" 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} /> + <DateField source="createTime" label="common.field.createTime" showTime align="left" /> + <BooleanField source="statusBool" label="common.field.status" sortable={false} align="left" /> <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} /> */} <EnableButton /> </WrapperField> + </StyledDatagrid> </List> <LocCreate @@ -217,3 +238,72 @@ ) } + +const BatchButton = () => { + const record = useRecordContext(); + const notify = useNotify(); + const refresh = useRefresh(); + + + const [createDialog, setCreateDialog] = useState(false); + + return ( + <> + <Button onClick={() => setCreateDialog(true)} label={"toolbar.batch"}> + <EditIcon /> + </Button> + + <BatchModal + open={createDialog} + setOpen={setCreateDialog} + /> + </> + + ) +} + +const SubzoneButton = () => { + const record = useRecordContext(); + const notify = useNotify(); + const refresh = useRefresh(); + + + const [createDialog, setCreateDialog] = useState(false); + + return ( + <> + <Button onClick={() => setCreateDialog(true)} label={"toolbar.subzone"}> + <DiscountIcon /> + </Button> + + <SubzoneModal + open={createDialog} + setOpen={setCreateDialog} + /> + </> + + ) +} + +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