From 173fa3fa574eca7ccfae0dff28cb077cc4a5f391 Mon Sep 17 00:00:00 2001 From: verou <857149855@qq.com> Date: 星期三, 19 三月 2025 08:05:11 +0800 Subject: [PATCH] fix:树状修改 --- rsf-admin/src/page/basicInfo/loc/LocList.jsx | 82 ++++++++++++++++++++++++++++++++++++---- 1 files changed, 73 insertions(+), 9 deletions(-) diff --git a/rsf-admin/src/page/basicInfo/loc/LocList.jsx b/rsf-admin/src/page/basicInfo/loc/LocList.jsx index 5ef83f5..720770f 100644 --- a/rsf-admin/src/page/basicInfo/loc/LocList.jsx +++ b/rsf-admin/src/page/basicInfo/loc/LocList.jsx @@ -31,6 +31,8 @@ ReferenceArrayInput, AutocompleteInput, DeleteButton, + useRefresh, + Button } from 'react-admin'; import { Box, Typography, Card, Stack } from '@mui/material'; import { styled } from '@mui/material/styles'; @@ -39,10 +41,15 @@ import EmptyData from "../../components/EmptyData"; import MyCreateButton from "../../components/MyCreateButton"; import MyExportButton from '../../components/MyExportButton'; +import InitButton from './InitButton'; +import BatchModal from './BatchModal'; 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'; const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({ '& .css-1vooibu-MuiSvgIcon-root': { @@ -98,6 +105,7 @@ const [createDialog, setCreateDialog] = useState(false); const [drawerVal, setDrawerVal] = useState(false); + return ( <Box display="flex"> <List @@ -116,6 +124,7 @@ actions={( <TopToolbar> <FilterButton /> + <InitButton /> <MyCreateButton onClick={() => { setCreateDialog(true) }} /> <SelectColumnsButton preferenceKey='loc' /> <MyExportButton /> @@ -125,26 +134,30 @@ > <StyledDatagrid preferenceKey='loc' - bulkActionButtons={() => <BulkDeleteButton mutationMode={OPERATE_MODE} />} - rowClick={(id, resource, record) => false} + bulkActionButtons={ + <> + <BatchButton /> + <BulkDeleteButton /> + </> + } + rowClick={() => false} expand={() => <LocPanel />} - expandSingle={true} - omit={['id', 'createTime', 'createBy', 'memo']} + 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="type$" 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="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" /> @@ -152,6 +165,7 @@ <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="useStatus$" label="table.field.loc.useStatus" /> <ReferenceField source="updateBy" label="common.field.updateBy" reference="user" link={false} sortable={false}> <TextField source="nickname" /> </ReferenceField> @@ -165,6 +179,7 @@ <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> @@ -183,3 +198,52 @@ } export default LocList; + +const EnableButton = () => { + const record = useRecordContext(); + const notify = useNotify(); + const refresh = useRefresh(); + const enable = async () => { + const res = await request.post('/loc/update', { + ...record, + status: +!record.status + }); + if (res?.data?.code === 200) { + refresh() + } else { + notify(res.data.msg); + } + } + return ( + record.status === 1 ? + (<Button onClick={enable} label={"toolbar.unenable"}> + <DashboardIcon /> + </Button>) : (<Button onClick={enable} label={"toolbar.enable"}> + <DashboardIcon /> + </Button>) + + ) +} + +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} + /> + </> + + ) +} \ No newline at end of file -- Gitblit v1.9.1