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