From b011b1368c2f8813ef2684a4a63914e6e59b5e15 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期四, 05 六月 2025 17:06:51 +0800 Subject: [PATCH] DO单优化 出库单优化 --- rsf-admin/src/page/waitPakin/WaitPakinList.jsx | 101 +++++++++++++++++++++++++++++++------------------- 1 files changed, 62 insertions(+), 39 deletions(-) diff --git a/rsf-admin/src/page/waitPakin/WaitPakinList.jsx b/rsf-admin/src/page/waitPakin/WaitPakinList.jsx index 39739cc..f8213de 100644 --- a/rsf-admin/src/page/waitPakin/WaitPakinList.jsx +++ b/rsf-admin/src/page/waitPakin/WaitPakinList.jsx @@ -37,13 +37,13 @@ import { Box, Typography, Card, Stack } from '@mui/material'; import { styled } from '@mui/material/styles'; import WaitPakinCreate from "./WaitPakinCreate"; -import WaitPakinPanel from "./WaitPakinPanel"; +import ConfirmButton from "../components/ConfirmButton"; import EmptyData from "../components/EmptyData"; import MyExportButton from '../components/MyExportButton'; import PageDrawer from "../components/PageDrawer"; import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting'; import AddIcon from '@mui/icons-material/Add'; -import request from '@/utils/request'; +import SelectSiteModel from "./SelectSiteModel"; const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({ '& .css-1vooibu-MuiSvgIcon-root': { @@ -54,16 +54,17 @@ }, '& .column-name': { }, + '& .column-statusBool': { + width: 90 + }, '& .opt': { - width: 200 + width: 210 }, })); const filters = [ <SearchInput source="condition" alwaysOn />, <TextInput source="code" label="table.field.waitPakin.code" />, - <NumberInput source="ansId" label="table.field.waitPakin.ansId" />, - <TextInput source="asnCode" label="table.field.waitPakin.asnCode" />, <TextInput source="barcode" label="table.field.waitPakin.barcode" />, <NumberInput source="anfme" label="table.field.waitPakin.anfme" />, <SelectInput source="ioStatus" label="table.field.waitPakin.ioStatus" @@ -87,11 +88,56 @@ const WaitPakinList = () => { const translate = useTranslate(); const [createDialog, setCreateDialog] = useState(false); + const [siteDialog, setSiteDialog] = useState(false); + const [source, setSource] = useState(false); const [drawerVal, setDrawerVal] = useState(false); + + const CreateTaskButton = () => { + const record = useRecordContext(); + const notify = useNotify(); + const refresh = useRefresh(); + const { selectedIds, onUnselectItems, data } = useListContext(); + const rows = data.filter(map => selectedIds.includes(map.id)); + const createTask = () => { + setSiteDialog(true) + setSource(rows) + onUnselectItems() + refresh() + } + + return ( + <> + <Button onClick={() => createTask()} label={"toolbar.createTask"}> + <AddIcon /> + </Button> + </> + ) + } + + const CreateTaskRowButton = () => { + const record = useRecordContext(); + const refresh = useRefresh(); + + const createTask = (event) => { + event.stopPropagation(); + setSiteDialog(true) + setSource([record]) + refresh() + } + + return ( + <> + <Button onClick={(event) => createTask(event)} label={"toolbar.createTask"}> + <AddIcon /> + </Button> + </> + ) + } return ( <Box display="flex"> <List + resource="waitPakin" sx={{ flexGrow: 1, transition: (theme) => @@ -101,7 +147,7 @@ marginRight: drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0, }} title={"menu.waitPakin"} - empty={<EmptyData onClick={() => { setCreateDialog(true) }} />} + empty={false} filters={filters} sort={{ field: "create_time", order: "desc" }} actions={( @@ -115,30 +161,32 @@ > <StyledDatagrid preferenceKey='waitPakin' - bulkActionButtons={<> <CreateTaskButton /> <BulkDeleteButton mutationMode={OPERATE_MODE} /></>} - rowClick='edit' - expand={false} - expandSingle={true} + bulkActionButtons={ + <> + <CreateTaskButton /> + {/* <BulkDeleteButton mutationMode={OPERATE_MODE} /> */} + </>} + rowClick={false} omit={['id', 'createTime', 'createBy', 'memo']} > <NumberField source="id" /> <TextField source="code" label="table.field.waitPakin.code" /> - {/* <NumberField source="ansId" label="table.field.waitPakin.ansId" /> */} - {/* <TextField source="asnCode" label="table.field.waitPakin.asnCode" /> */} <TextField source="barcode" label="table.field.waitPakin.barcode" /> <NumberField source="anfme" label="table.field.waitPakin.anfme" /> <TextField source="ioStatus$" label="table.field.waitPakin.ioStatus" sortable={false} /> <TextField source="updateBy$" label="common.field.updateBy" /> - <DateField source="updateTime" label="common.field.updateTime" showTime /> + <DateField source="updateTime" label="common.field.updateTime" showTime /> <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 label="toolbar.detail" sx={{ padding: '1px', fontSize: '.75rem' }} /> - {/* <DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} /> */} + <CreateTaskRowButton /> + <DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} /> </WrapperField> </StyledDatagrid> </List> + <SelectSiteModel open={siteDialog} setOpen={setSiteDialog} source={source} /> <WaitPakinCreate open={createDialog} setOpen={setCreateDialog} @@ -155,31 +203,6 @@ export default WaitPakinList; -const CreateTaskButton = () => { - const record = useRecordContext(); - const notify = useNotify(); - const refresh = useRefresh(); - const { selectedIds, onUnselectItems, data } = useListContext(); - const createTask = async () => { - const rows = data.filter((item) => selectedIds.includes(item.id)) || []; - const res = await request.post(`/waitPakin/merge`, rows); - if (res?.data?.code === 200) { - refresh() - notify(res.data.msg); - - } else { - notify(res.data.msg); - } - } - - return ( - <> - <Button onClick={() => createTask()} label={"toolbar.createTask"}> - <AddIcon /> - </Button> - </> - ) -} -- Gitblit v1.9.1