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