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