From af455bd20edfd02cb3e8c7710e65aee798720dca Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期一, 14 四月 2025 17:25:40 +0800 Subject: [PATCH] #新增 1. 生成任务新增站点选择功能 --- rsf-admin/src/page/waitPakin/WaitPakinItemList.jsx | 2 rsf-admin/src/page/waitPakin/SelectSiteModel.jsx | 117 +++++++++++++++++++++++++++++++++++++++ rsf-admin/src/page/waitPakin/WaitPakinList.jsx | 47 ++++++++++----- rsf-admin/src/i18n/zh.js | 3 rsf-admin/src/i18n/en.js | 1 rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx | 2 6 files changed, 151 insertions(+), 21 deletions(-) diff --git a/rsf-admin/src/i18n/en.js b/rsf-admin/src/i18n/en.js index 6028053..a509658 100644 --- a/rsf-admin/src/i18n/en.js +++ b/rsf-admin/src/i18n/en.js @@ -829,6 +829,7 @@ batch: 'batch', confirm: 'confirm', cancel: "cancel", + selectSite: 'Select Site', top: "top", resort: "sort", subzone: 'subzone', diff --git a/rsf-admin/src/i18n/zh.js b/rsf-admin/src/i18n/zh.js index 8dcfd40..d567fd3 100644 --- a/rsf-admin/src/i18n/zh.js +++ b/rsf-admin/src/i18n/zh.js @@ -630,7 +630,7 @@ name: "鍚嶇О", wcsCode: "wcs绔欑偣缂栧彿", label: "绔欑偣鏍囩", - device: "璁惧绫诲瀷", + device: "绔嬪簱绫诲瀷", deviceCode: "璁惧缂栧彿", deviceSite: "璁惧绔欑偣", flagInit: "鏄惁鍒濆鍖�", @@ -840,6 +840,7 @@ siteInit: '绔欑偣鍒濆鍖�', batch: '鎵归噺鎿嶄綔', confirm: '纭', + selectSite: '閫夋嫨绔欑偣', cancel: "鍙栨秷", top: "缃《", resort: "鎺掑簭", diff --git a/rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx b/rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx index 4c89a10..fd4d8ca 100644 --- a/rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx +++ b/rsf-admin/src/page/orders/asnOrder/AsnOrderModal.jsx @@ -282,9 +282,7 @@ {/* {asnId !== '' && <ConfirmButton label={'鍒犻櫎'} variant="outlined" color="error" onConfirm={handleDelete} />} */} <ConfirmButton label={'鍒犻櫎'} variant="outlined" color="error" onConfirm={handleDeleteItem} /> </Stack> - </Box> - <Box sx={{ mt: 2 }}> <AsnOrderModalTable tabelData={tabelData} setTableData={setTableData} asnId={asnId} selectedRows={selectedRows} setSelectedRows={setSelectedRows} tableRef={tableRef}></AsnOrderModalTable> </Box> diff --git a/rsf-admin/src/page/waitPakin/SelectSiteModel.jsx b/rsf-admin/src/page/waitPakin/SelectSiteModel.jsx new file mode 100644 index 0000000..ffd7164 --- /dev/null +++ b/rsf-admin/src/page/waitPakin/SelectSiteModel.jsx @@ -0,0 +1,117 @@ +import { Dialog, DialogTitle, Box, DialogActions, DialogContent } from "@mui/material"; +import React, { useState, useRef, useEffect, useMemo, useCallback, Form } from "react"; +import { styled } from '@mui/material/styles'; +import { FilterButton, TopToolbar, Toolbar, useTranslate, SaveButton, List, SelectInput, NumberField, WrapperField, EditButton, DeleteButton, TextField, DateField, TextInput, BooleanField, NumberInput, ReferenceField, SearchInput, SelectColumnsButton, DatagridConfigurable, Button } from "react-admin"; +import DialogCloseButton from "../components/DialogCloseButton"; +import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_ITEM_PAGE_SIZE } from '@/config/setting'; + +const filters = [ + <SearchInput source="condition" alwaysOn />, + <NumberInput source="type" label="table.field.deviceSite.type" />, + <TextInput source="site" label="table.field.deviceSite.site" />, + <TextInput source="name" label="table.field.deviceSite.name" />, + <TextInput source="wcsCode" label="table.field.deviceSite.wcsCode" />, + <TextInput source="label" label="table.field.deviceSite.label" />, + <TextInput source="device" label="table.field.deviceSite.device" />, + <TextInput source="deviceCode" label="table.field.deviceSite.deviceCode" />, + <TextInput source="deviceSite" label="table.field.deviceSite.deviceSite" />, + <TextInput label="common.field.memo" source="memo" />, + <SelectInput + label="common.field.status" + source="status" + choices={[ + { id: '1', name: 'common.enums.statusTrue' }, + { id: '0', name: 'common.enums.statusFalse' }, + ]} + resettable + /> +] +const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({ + '& .css-1vooibu-MuiSvgIcon-root': { + height: '.9em' + }, + '& .RaDatagrid-row': { + cursor: 'auto' + }, + '& .column-name': { + }, + '& .opt': { + width: 200 + }, +})); + +const SelectSiteModel = (props) => { + const { open, setOpen, record } = props; + const translate = useTranslate(); + const [drawerVal, setDrawerVal] = useState(false); + const handleClose = (event, reason) => { + if (reason !== "backdropClick") { + setOpen(false); + } + }; + + return ( + <Box> + <Dialog + open={open} + onClose={handleClose} + fullWidth + disableRestoreFocus + maxWidth="md" + > + <DialogTitle> + {translate('toolbar.selectSite')} + </DialogTitle> + <DialogContent> + <List + resource='deviceSite' + sx={{ + flexGrow: 1, + transition: (theme) => + theme.transitions.create(['all'], { + duration: theme.transitions.duration.enteringScreen, + }), + marginRight: drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0, + }} + title={"menu.deviceSite"} + empty={false} + filters={filters} + sort={{ field: "create_time", order: "desc" }} + actions={( + <TopToolbar> + <FilterButton /> + <SelectColumnsButton preferenceKey='deviceSite' /> + </TopToolbar> + )} + perPage={DEFAULT_ITEM_PAGE_SIZE} + > + <StyledDatagrid + preferenceKey='deviceSite' + bulkActionButtons={false} + rowClick={(id, resource, record) => false} + omit={['id', 'createTime', 'createBy', 'memo', 'updateBy$', 'createBy$', 'createTime', 'updateTime']} + > + <NumberField source="id" /> + <TextField source="name" label="table.field.deviceSite.name" /> + <NumberField source="type$" label="table.field.deviceSite.type" /> + <TextField source="site" label="table.field.deviceSite.site" /> + <TextField source="wcsCode" label="table.field.deviceSite.wcsCode" /> + <TextField source="label" label="table.field.deviceSite.label" /> + <TextField source="device$" label="table.field.deviceSite.device" /> + <TextField source="deviceCode" label="table.field.deviceSite.deviceCode" /> + <TextField source="deviceSite" label="table.field.deviceSite.deviceSite" /> + <TextField source="updateBy$" label="common.field.updateBy" /> + <DateField source="updateTime" label="common.field.updateTime" showTime /> + <TextField source="createBy$" label="common.field.createBy" /> + <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} /> + </StyledDatagrid> + </List> + </DialogContent> + </Dialog> + </Box> + ) +} + +export default SelectSiteModel; diff --git a/rsf-admin/src/page/waitPakin/WaitPakinItemList.jsx b/rsf-admin/src/page/waitPakin/WaitPakinItemList.jsx index 4c075f4..f9f48aa 100644 --- a/rsf-admin/src/page/waitPakin/WaitPakinItemList.jsx +++ b/rsf-admin/src/page/waitPakin/WaitPakinItemList.jsx @@ -119,7 +119,7 @@ preferenceKey='waitPakinItem' bulkActionButtons={() => <BulkDeleteButton mutationMode={OPERATE_MODE} />} rowClick={(id, resource, record) => false} - omit={['id', 'createTime', 'createBy', 'memo']} + omit={['id', 'pakinId', 'createTime', 'createBy', 'memo']} > <NumberField source="id" /> <NumberField source="pakinId" label="table.field.waitPakinItem.pakinId" /> diff --git a/rsf-admin/src/page/waitPakin/WaitPakinList.jsx b/rsf-admin/src/page/waitPakin/WaitPakinList.jsx index 39739cc..bb39a6f 100644 --- a/rsf-admin/src/page/waitPakin/WaitPakinList.jsx +++ b/rsf-admin/src/page/waitPakin/WaitPakinList.jsx @@ -37,13 +37,16 @@ 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 TaskIcon from '@mui/icons-material/Task'; +import { width } from "@mui/system"; +import SelectSiteModel from "./SelectSiteModel"; const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({ '& .css-1vooibu-MuiSvgIcon-root': { @@ -54,8 +57,11 @@ }, '& .column-name': { }, + '& .column-statusBool': { + width: 90 + }, '& .opt': { - width: 200 + width: 180 }, })); @@ -87,6 +93,7 @@ const WaitPakinList = () => { const translate = useTranslate(); const [createDialog, setCreateDialog] = useState(false); + const [siteDialog, setSiteDialog] = useState(false); const [drawerVal, setDrawerVal] = useState(false); return ( @@ -115,7 +122,9 @@ > <StyledDatagrid preferenceKey='waitPakin' - bulkActionButtons={<> <CreateTaskButton /> <BulkDeleteButton mutationMode={OPERATE_MODE} /></>} + bulkActionButtons={<Box> <Button label="ra.action.edit" onClick={()=>{ + setSiteDialog(true) + }} /> <BulkDeleteButton mutationMode={OPERATE_MODE} /></Box>} rowClick='edit' expand={false} expandSingle={true} @@ -129,7 +138,7 @@ <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} /> @@ -139,6 +148,7 @@ </WrapperField> </StyledDatagrid> </List> + <SelectSiteModel open={siteDialog} setOpen={setSiteDialog}/> <WaitPakinCreate open={createDialog} setOpen={setCreateDialog} @@ -157,29 +167,32 @@ const CreateTaskButton = () => { const record = useRecordContext(); + const [siteDialog, setSiteDialog] = useState(false); 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); - } + const createTask = () => { + // 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); + // } + console.log('-------->'); + setSiteDialog(true) + } - + // return ( + // <ConfirmButton label={"toolbar.createTask"} startIcon={<TaskIcon />} onConfirm={createTask} /> + // ) return ( <> <Button onClick={() => createTask()} label={"toolbar.createTask"}> <AddIcon /> </Button> - - </> - ) } -- Gitblit v1.9.1