DESKTOP-LMJ82IJ\Eno
2025-04-13 766c38fe0e8a7ba9ae62b5d6113e13b9df2707db
rsf-admin/src/page/system/serialRule/SerialRuleItemEdit.jsx
New file
@@ -0,0 +1,162 @@
import React, { useState, useRef, useEffect, useMemo } from "react";
import {
    Edit,
    Form,
    SimpleForm,
    FormDataConsumer,
    useTranslate,
    TextInput,
    NumberInput,
    BooleanInput,
    DateInput,
    SelectInput,
    ReferenceInput,
    ReferenceArrayInput,
    AutocompleteInput,
    SaveButton,
    Toolbar,
    Labeled,
    NumberField,
    required,
    useRecordContext,
    useGetOne,
    DeleteButton,
} from 'react-admin';
import { useWatch, useFormContext } from "react-hook-form";
import { Stack, Grid, Box, Typography, Dialog, DialogContent, DialogTitle, DialogActions } from '@mui/material';
import * as Common from '@/utils/common';
import { EDIT_MODE, REFERENCE_INPUT_PAGESIZE } from '@/config/setting';
import EditBaseAside from "../../components/EditBaseAside";
import DialogCloseButton from "../../components/DialogCloseButton";
import CustomerTopToolBar from "../../components/EditTopToolBar";
import MemoInput from "../../components/MemoInput";
import StatusSelectInput from "../../components/StatusSelectInput";
const FormToolbar = () => {
    const { getValues } = useFormContext();
    return (
        <Toolbar sx={{ justifyContent: 'end' }}>
            <SaveButton />
            <DeleteButton mutationMode="optimistic" />
        </Toolbar>
    )
}
const SerialRuleItemEdit = (props) => {
    const { open, setOpen, record } = props;
    const translate = useTranslate();
    const handleClose = (event, reason) => {
        if (reason !== "backdropClick") {
            setOpen(false);
        }
    };
    const {data, isPending, } = useGetOne('serialRuleItem', {id: record?.id});
    if (data == null || data == undefined) {return}
    return (
        <Edit
            id={record.id}
            redirect="list"
            resource="serialRuleItem"
            mutationMode={EDIT_MODE}
        >
            <Dialog
                open={open}
                onClose={handleClose}
                aria-labelledby="form-dialog-title"
                fullWidth
                disableRestoreFocus
                maxWidth="md"
            >
                <Form
                    shouldUnregister
                    warnWhenUnsavedChanges
                    toolbar={<FormToolbar />}
                    mode="onTouched"
                    defaultValues={{}}
                >
                    <DialogTitle id="form-dialog-title" sx={{
                        position: 'sticky',
                        top: 0,
                        backgroundColor: 'background.paper',
                        zIndex: 1000
                    }}
                    >
                        {translate('update.title')}
                        <Box sx={{ position: 'absolute', top: 8, right: 8, zIndex: 1001 }}>
                            <DialogCloseButton onClose={handleClose} />
                        </Box>
                    </DialogTitle>
                    <DialogContent>
                        <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}>
                                    <NumberInput
                                        label="table.field.serialRuleItem.ruleId"
                                        source="ruleId"
                                        readOnly
                                        autoFocus
                                    />
                                </Stack>
                                <Stack direction='row' gap={2}>
                                    <TextInput
                                        label="table.field.serialRuleItem.wkType"
                                        source="wkType$"
                                        readOnly
                                        parse={v => v}
                                    />
                                </Stack>
                                <Stack direction='row' gap={2}>
                                    <TextInput
                                        label="table.field.serialRuleItem.feildValue"
                                        source="feildValue"
                                        parse={v => v}
                                    />
                                </Stack>
                                <Stack direction='row' gap={2}>
                                    <NumberInput
                                        label="table.field.serialRuleItem.len"
                                        source="len"
                                    />
                                </Stack>
                                <Stack direction='row' gap={2}>
                                    <NumberInput
                                        label="table.field.serialRuleItem.lenStr"
                                        source="lenStr"
                                        validate={required()}
                                    />
                                </Stack>
                                <Stack direction='row' gap={2}>
                                    <NumberInput
                                        label="table.field.serialRuleItem.sort"
                                        source="sort"
                                        validate={required()}
                                    />
                                </Stack>
                            </Grid>
                            <Grid item xs={12} md={4}>
                                <Typography variant="h6" gutterBottom>
                                    {translate('common.edit.title.common')}
                                </Typography>
                                <StatusSelectInput />
                                <Box mt="2em" />
                                <MemoInput />
                            </Grid>
                        </Grid>
                    </DialogContent>
                    <DialogActions>
                    </DialogActions>
                </Form>
            </Dialog>
        </Edit >
    )
}
export default SerialRuleItemEdit;