skyouc
2025-04-15 319e1d959ee33466a8a53c682a25af6b6cf50a95
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
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, useRefresh } from "react-admin";
import DialogCloseButton from "../components/DialogCloseButton";
import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_ITEM_PAGE_SIZE } from '@/config/setting';
 
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 refresh = useRefresh();
    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}
                        sort={{ field: "create_time", order: "desc" }}
                        actions={(
                            <TopToolbar>
                                <SelectColumnsButton preferenceKey='deviceSite' />
                            </TopToolbar>
                        )}
                        perPage={DEFAULT_ITEM_PAGE_SIZE}
                    >
                        <StyledDatagrid
                            preferenceKey='deviceSite'
                            bulkActionButtons={false}
                            rowClick='toggleSelection'
                            onToggleItem={(id, resource, record)=>{
                                console.log(id);
                                setOpen(false);
                                refresh();
                            }}
                            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} />
                            <WrapperField>
                                <Button label="toolbar.selectSite" onClick={(id, resource, record)=>{ 
                                    console.log(id);
                                    setOpen(false)
                                    refresh();
                                 }}/>
                            </WrapperField>
                        </StyledDatagrid>
                    </List>
                </DialogContent>
            </Dialog>
        </Box>
    )
}
 
export default SelectSiteModel;