From 515dc2664c481e3a65245b71aa1ff4a4d6bfb64f Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期五, 21 三月 2025 15:32:06 +0800
Subject: [PATCH] Merge branch 'devlop' of http://47.97.1.152:5880/r/wms-master into devlop
---
rsf-admin/src/page/basicInfo/loc/LocList.jsx | 131 +++++++++++++++++++++++++++++++++++++------
1 files changed, 113 insertions(+), 18 deletions(-)
diff --git a/rsf-admin/src/page/basicInfo/loc/LocList.jsx b/rsf-admin/src/page/basicInfo/loc/LocList.jsx
index 1980da5..dda2264 100644
--- a/rsf-admin/src/page/basicInfo/loc/LocList.jsx
+++ b/rsf-admin/src/page/basicInfo/loc/LocList.jsx
@@ -31,18 +31,29 @@
ReferenceArrayInput,
AutocompleteInput,
DeleteButton,
+ useRefresh,
+ 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 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';
const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
'& .css-1vooibu-MuiSvgIcon-root': {
@@ -60,8 +71,6 @@
const filters = [
<SearchInput source="condition" alwaysOn />,
- <DateInput label='common.time.after' source="timeStart" alwaysOn />,
- <DateInput label='common.time.before' source="timeEnd" alwaysOn />,
<NumberField source="warehouseId$" label="table.field.loc.warehouseId" />,
<NumberField source="areaId$" label="table.field.loc.areaId" />,
@@ -96,9 +105,12 @@
const LocList = () => {
const translate = useTranslate();
+ const notify = useNotify();
+ const refresh = useRefresh();
const [createDialog, setCreateDialog] = useState(false);
const [drawerVal, setDrawerVal] = useState(false);
+
return (
<Box display="flex">
@@ -109,7 +121,7 @@
theme.transitions.create(['all'], {
duration: theme.transitions.duration.enteringScreen,
}),
- marginRight: !!drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0,
+ marginRight: drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0,
}}
title={"menu.loc"}
empty={<EmptyData onClick={() => { setCreateDialog(true) }} />}
@@ -118,6 +130,7 @@
actions={(
<TopToolbar>
<FilterButton />
+ <InitButton />
<MyCreateButton onClick={() => { setCreateDialog(true) }} />
<SelectColumnsButton preferenceKey='loc' />
<MyExportButton />
@@ -127,31 +140,38 @@
>
<StyledDatagrid
preferenceKey='loc'
- bulkActionButtons={() => <BulkDeleteButton mutationMode={OPERATE_MODE} />}
- rowClick={(id, resource, record) => false}
- expand={() => <LocPanel />}
- expandSingle={true}
- omit={['id', 'createTime', 'createBy', 'memo']}
+ bulkActionButtons={
+ <>
+ <BatchButton />
+ <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.size" />
- <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>
@@ -162,10 +182,13 @@
<DateField source="createTime" label="common.field.createTime" showTime />
<BooleanField source="statusBool" label="common.field.status" sortable={false} />
<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} />
+ {/* <DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} /> */}
+ <EnableButton />
</WrapperField>
+
</StyledDatagrid>
</List>
<LocCreate
@@ -183,3 +206,75 @@
}
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}
+ />
+ </>
+
+ )
+}
+
+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}
+ />
+ </>
+
+ )
+}
\ No newline at end of file
--
Gitblit v1.9.1