From f6881a3c81210316d56751f612346439c3ab814c Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期三, 21 五月 2025 11:06:57 +0800 Subject: [PATCH] #出库作业 --- rsf-admin/src/page/system/serialRule/SerialRuleCreate.jsx | 313 ++++++++++++++++++++++++++++------------------------ 1 files changed, 169 insertions(+), 144 deletions(-) diff --git a/rsf-admin/src/page/system/serialRule/SerialRuleCreate.jsx b/rsf-admin/src/page/system/serialRule/SerialRuleCreate.jsx index 7e5d392..22985ba 100644 --- a/rsf-admin/src/page/system/serialRule/SerialRuleCreate.jsx +++ b/rsf-admin/src/page/system/serialRule/SerialRuleCreate.jsx @@ -1,161 +1,186 @@ import React, { useState, useRef, useEffect, useMemo } from "react"; import { - CreateBase, - useTranslate, - TextInput, - NumberInput, - BooleanInput, - DateInput, - SaveButton, - SelectInput, - ReferenceInput, - ReferenceArrayInput, - AutocompleteInput, - Toolbar, - required, - useDataProvider, - useNotify, - Form, - useCreateController, -} from 'react-admin'; + CreateBase, + useTranslate, + TextInput, + NumberInput, + BooleanInput, + DateInput, + SaveButton, + SelectInput, + ReferenceInput, + ReferenceArrayInput, + AutocompleteInput, + Toolbar, + required, + useDataProvider, + useNotify, + Form, + useCreateController, +} from "react-admin"; import { - Dialog, - DialogActions, - DialogContent, - DialogTitle, - Stack, - Grid, - Box, -} from '@mui/material'; + Dialog, + DialogActions, + DialogContent, + DialogTitle, + Stack, + Grid, + Box, +} from "@mui/material"; import DialogCloseButton from "../../components/DialogCloseButton"; import StatusSelectInput from "../../components/StatusSelectInput"; import MemoInput from "../../components/MemoInput"; const SerialRuleCreate = (props) => { - const { open, setOpen } = props; + const { open, setOpen } = props; - const translate = useTranslate(); - const notify = useNotify(); + const translate = useTranslate(); + const notify = useNotify(); - const handleClose = (event, reason) => { - if (reason !== "backdropClick") { - setOpen(false); - } - }; + const handleClose = (event, reason) => { + if (reason !== "backdropClick") { + setOpen(false); + } + }; - const handleSuccess = async (data) => { - setOpen(false); - notify('common.response.success'); - }; + const handleSuccess = async (data) => { + setOpen(false); + notify("common.response.success"); + }; + const dicts = JSON.parse(localStorage.getItem('sys_dicts'))?.filter(dict => (dict.dictTypeCode == 'sys_rule_type')) || []; - const handleError = async (error) => { - notify(error.message || 'common.response.fail', { type: 'error', messageArgs: { _: error.message } }); - }; + const handleError = async (error) => { + notify(error.message || "common.response.fail", { + type: "error", + messageArgs: { _: error.message }, + }); + }; - return ( - <> - <CreateBase - record={{}} - transform={(data) => { - return data; - }} - mutationOptions={{ onSuccess: handleSuccess, onError: handleError }} + return ( + <> + <CreateBase + record={{}} + transform={(data) => { + return data; + }} + mutationOptions={{ onSuccess: handleSuccess, onError: handleError }} + > + <Dialog + open={open} + onClose={handleClose} + aria-labelledby="form-dialog-title" + fullWidth + disableRestoreFocus + maxWidth="xl" // 'xs' | 'sm' | 'md' | 'lg' | 'xl' + > + <Form> + <DialogTitle + id="form-dialog-title" + sx={{ + position: "sticky", + top: 0, + backgroundColor: "background.paper", + zIndex: 1000, + }} > - <Dialog - open={open} - onClose={handleClose} - aria-labelledby="form-dialog-title" - fullWidth - disableRestoreFocus - maxWidth="md" // 'xs' | 'sm' | 'md' | 'lg' | 'xl' - > - <Form> - <DialogTitle id="form-dialog-title" sx={{ - position: 'sticky', - top: 0, - backgroundColor: 'background.paper', - zIndex: 1000 - }} - > - {translate('create.title')} - <Box sx={{ position: 'absolute', top: 8, right: 8, zIndex: 1001 }}> - <DialogCloseButton onClose={handleClose} /> - </Box> - </DialogTitle> - <DialogContent sx={{ mt: 2 }}> - <Grid container rowSpacing={2} columnSpacing={2}> - <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.serialRule.code" - source="code" - parse={v => v} - autoFocus - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.serialRule.name" - source="name" - parse={v => v} - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.serialRule.delimit" - source="delimit" - parse={v => v} - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.serialRule.reset" - source="reset" - parse={v => v} - validate={required()} - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.serialRule.resetDep" - source="resetDep" - parse={v => v} - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.serialRule.currValue" - source="currValue" - parse={v => v} - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.serialRule.lastCode" - source="lastCode" - parse={v => v} - /> - </Grid> + {translate("create.title")} + <Box + sx={{ position: "absolute", top: 8, right: 8, zIndex: 1001 }} + > + <DialogCloseButton onClose={handleClose} /> + </Box> + </DialogTitle> + <DialogContent sx={{ mt: 2 }}> + <Grid container rowSpacing={2} columnSpacing={2}> + <Grid item xs={6} display="flex" gap={1}> + <TextInput + label="table.field.serialRule.code" + source="code" + parse={(v) => v} + autoFocus + /> + </Grid> + <Grid item xs={6} display="flex" gap={1}> + <TextInput + label="table.field.serialRule.name" + source="name" + parse={(v) => v} + /> + </Grid> + <Grid item xs={6} display="flex" gap={1}> + <TextInput + label="table.field.serialRule.delimit" + source="delimit" + parse={(v) => v} + /> + </Grid> + {/* <Grid item xs={6} display="flex" gap={1}> + <TextInput + label="table.field.serialRule.reset" + source="reset" + parse={(v) => v} + validate={required()} + /> + </Grid> */} + <Grid item xs={6} display="flex" gap={1}> + <AutocompleteInput + choices={dicts} + optionText="label" + label="table.field.serialRule.reset" + source="reset" + optionValue="value" + parse={v => v} + validate={[required()]} /> + </Grid> + <Grid item xs={6} display="flex" gap={1}> + <TextInput + label="table.field.serialRule.resetDep" + source="resetDep" + parse={(v) => v} + /> + </Grid> + <Grid item xs={6} display="flex" gap={1}> + <TextInput + label="table.field.serialRule.currValue" + source="currValue" + parse={(v) => v} + /> + </Grid> + <Grid item xs={6} display="flex" gap={1}> + <TextInput + label="table.field.serialRule.lastCode" + source="lastCode" + parse={(v) => v} + /> + </Grid> - <Grid item xs={6} display="flex" gap={1}> - <StatusSelectInput /> - </Grid> - <Grid item xs={12} display="flex" gap={1}> - <Stack direction="column" spacing={1} width={'100%'}> - <MemoInput /> - </Stack> - </Grid> - </Grid> - </DialogContent> - <DialogActions sx={{ position: 'sticky', bottom: 0, backgroundColor: 'background.paper', zIndex: 1000 }}> - <Toolbar sx={{ width: '100%', justifyContent: 'space-between' }} > - <SaveButton /> - </Toolbar> - </DialogActions> - </Form> - </Dialog> - </CreateBase> - </> - ) -} + <Grid item xs={6} display="flex" gap={1}> + <StatusSelectInput /> + </Grid> + <Grid item xs={12} display="flex" gap={1}> + <Stack direction="column" spacing={1} width={"100%"}> + <MemoInput /> + </Stack> + </Grid> + </Grid> + </DialogContent> + <DialogActions + sx={{ + position: "sticky", + bottom: 0, + backgroundColor: "background.paper", + zIndex: 1000, + }} + > + <Toolbar sx={{ width: "100%", justifyContent: "end" }}> + <SaveButton /> + </Toolbar> + </DialogActions> + </Form> + </Dialog> + </CreateBase> + </> + ); +}; export default SerialRuleCreate; -- Gitblit v1.9.1