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/SelectSiteModel.jsx |  117 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 117 insertions(+), 0 deletions(-)

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;

--
Gitblit v1.9.1