zhou zhou
23 小时以前 4a620b306e2e0ff208dbea260f998ffce8d08e39
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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
import React, { useState, useRef, useEffect, useMemo } from "react";
import {
    Edit,
    SimpleForm,
    FormDataConsumer,
    useTranslate,
    TextInput,
    NumberInput,
    BooleanInput,
    DateInput,
    SelectInput,
    ReferenceInput,
    ReferenceArrayInput,
    AutocompleteInput,
    SaveButton,
    Toolbar,
    Labeled,
    NumberField,
    required,
    useRecordContext,
    DeleteButton, SelectArrayInput,
} from 'react-admin';
import { useWatch, useFormContext } from "react-hook-form";
import { Stack, Grid, Box, Typography } from '@mui/material';
import * as Common from '@/utils/common';
import { EDIT_MODE, REFERENCE_INPUT_PAGESIZE } from '@/config/setting';
import EditBaseAside from "../components/EditBaseAside";
import CustomerTopToolBar from "../components/EditTopToolBar";
import MemoInput from "../components/MemoInput";
import StatusSelectInput from "../components/StatusSelectInput";
import DictionarySelect from "../components/DictionarySelect";
import DictionaryArraySelect from "../components/DictionaryArraySelect";
 
const FormToolbar = () => {
    const { getValues } = useFormContext();
 
    return (
        <Toolbar sx={{ justifyContent: 'space-between' }}>
            <SaveButton />
            <DeleteButton mutationMode="optimistic" />
        </Toolbar>
    )
}
 
const BasStationAreaEdit = () => {
    const translate = useTranslate();
 
    return (
        <Edit
            redirect="list"
            mutationMode={EDIT_MODE}
            actions={<CustomerTopToolBar />}
            aside={<EditBaseAside />}
        >
            <SimpleForm
                shouldUnregister
                warnWhenUnsavedChanges
                toolbar={<FormToolbar />}
                mode="onTouched"
                defaultValues={{}}
            // validate={(values) => { }}
            >
                <Grid container width={{ xs: '100%', xl: '80%' }} rowSpacing={3} columnSpacing={3}>
                    <Grid item xs={12} md={8}>
                        <Typography variant="h6" gutterBottom>
                            {translate('common.edit.title.main')}
                        </Typography>
                        <Stack direction='row' gap={2}>
                            <TextInput
                                label="table.field.basStationArea.stationAreaName"
                                source="stationAreaName"
                                parse={v => v}
                            />
                        </Stack>
                        <Stack direction='row' gap={2}>
                            <ReferenceInput source="area" reference="warehouseAreas" sort={{ field: 'sort', order: 'ASC' }}>
                                <SelectInput
                                    label="table.field.basStation.area"
                                    optionText="name"
                                    optionValue="id"
                                    fullWidth
                                    validate={[required()]}
                                />
                            </ReferenceInput>
                        </Stack>
                        <Stack direction='row' gap={2}>
                            <DictionaryArraySelect
                                label={translate("table.field.basStation.containerType")}
                                name="containerTypes"
                                size="small"
                                validate={[required()]}
                                dictTypeCode="sys_container_type"
                            />
                        </Stack>
                        <Stack direction='row' gap={2}>
                            <TextInput
                                label="table.field.basStationArea.stationAreaId"
                                source="stationAreaId"
                                parse={v => v}
                            />
                        </Stack>
                        <Stack direction='row' gap={2}>
                            <ReferenceArrayInput source="stationAlias" reference="basStation">
                                <SelectArrayInput
                                    label="table.field.basStationArea.stationAlias"
                                    optionText="stationName"
                                    optionValue="id"
                                    fullWidth
                                    validate={[required()]}
                                // validate={(value) => {
                                //     if (value && value.length > 1) {
                                //         return '只能选择一个模板';
                                //     }
                                //     return undefined;
                                // }}
                                />
                            </ReferenceArrayInput>
                        </Stack>
 
                    </Grid>
                </Grid>
            </SimpleForm>
        </Edit >
    )
}
 
export default BasStationAreaEdit;