From 3cea95e98c16b2fe15dec2820c3e714b8ce6b926 Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期一, 01 九月 2025 15:21:00 +0800
Subject: [PATCH] 添加跑库限制
---
rsf-admin/src/page/basicInfo/loc/InitModal.jsx | 297 +++++++++++++++++++++++++++++++++--------------------------
1 files changed, 165 insertions(+), 132 deletions(-)
diff --git a/rsf-admin/src/page/basicInfo/loc/InitModal.jsx b/rsf-admin/src/page/basicInfo/loc/InitModal.jsx
index ef64347..38a3297 100644
--- a/rsf-admin/src/page/basicInfo/loc/InitModal.jsx
+++ b/rsf-admin/src/page/basicInfo/loc/InitModal.jsx
@@ -19,6 +19,7 @@
useCreateController,
useListContext,
useRefresh,
+ SelectArrayInput
} from 'react-admin';
import {
Dialog,
@@ -43,6 +44,7 @@
} from '@mui/material';
import DialogCloseButton from "../../components/DialogCloseButton";
+import DictionarySelect from "../../components/DictionarySelect";
import { useForm, Controller, useWatch, FormProvider, useFormContext } from "react-hook-form";
import SaveIcon from '@mui/icons-material/Save';
import request from '@/utils/request';
@@ -56,20 +58,24 @@
const InitModal = ({ open, setOpen }) => {
const refresh = useRefresh();
const translate = useTranslate();
+ const { filterValues } = useListContext(); // 鑾峰彇鍒楄〃涓婁笅鏂�
const notify = useNotify();
+ const [disabled, setDisabled] = useState(false)
const [formData, setFormData] = useState({
- "areaId": "",
- "endBay": "",
- "endLev": "",
- "endRow": "",
+ "warehouseId": filterValues.warehouseId,
+ "areaId": filterValues.areaId,
+ "endBay": undefined,
+ "endLev": undefined,
+ "endRow": undefined,
"locType": "",
- "startBay": "",
- "startLev": "",
- "startRow": "",
- "type": ""
+ "startBay": undefined,
+ "startLev": undefined,
+ "startRow": undefined,
+ "type": "",
+ "typeIds": undefined,
});
const handleClose = (event, reason) => {
@@ -82,8 +88,7 @@
e.preventDefault();
};
- const handleChange = (e) => {
- const { name, value } = e.target;
+ const handleChange = (value, name) => {
setFormData((prevData) => ({
...prevData,
[name]: value
@@ -91,6 +96,7 @@
};
const handleSubmit = async () => {
+ setDisabled(true)
const res = await request.post(`/loc/init`, formData);
if (res?.data?.code === 200) {
setOpen(false);
@@ -98,137 +104,164 @@
} else {
notify(res.data.msg);
}
+ setDisabled(false)
}
return (
<Dialog open={open} maxWidth="md" fullWidth>
- <DialogCloseButton onClose={handleClose} />
- <DialogTitle>{translate('toolbar.locInit')}</DialogTitle>
- <DialogContent sx={{ mt: 2 }}>
- <Box component="form" sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}>
- <Grid container spacing={2}>
- <Grid item xs={4}>
- <TextField
- label={translate("table.field.loc.areaId")}
- name="wkType"
- value={formData.areaId}
- onChange={handleChange}
- variant="outlined"
- size="small"
- validate={required()}
- />
+ <Form onSubmit={handleSubmit} defaultValues={filterValues}>
+ <DialogCloseButton onClose={handleClose} />
+ <DialogTitle>{translate('toolbar.locInit')}</DialogTitle>
+ <DialogContent sx={{ mt: 2 }}>
+ <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}>
+ <Grid container spacing={2}>
+ <Grid item xs={4}>
+ <ReferenceInput
+ source="warehouseId"
+ reference="warehouse"
+ >
+ <AutocompleteInput
+ debounce
+ label="table.field.loc.warehouseId"
+ optionText="name"
+ onChange={(value) => handleChange(value, 'warehouseId')}
+ value={formData.warehouseId}
+ validate={[required()]}
+ filterToQuery={(val) => ({ name: val })}
+ />
+ </ReferenceInput>
+
+ </Grid>
+
+ <Grid item xs={4}>
+ <ReferenceInput
+ source="areaId"
+ reference="warehouseAreas"
+ filter={{ warehouseId: formData.warehouseId }}
+ >
+ <AutocompleteInput
+ label="table.field.loc.areaId"
+ optionText="name"
+ onChange={(value) => handleChange(value, 'areaId')}
+ value={formData.areaId}
+ validate={[required()]}
+ filterToQuery={(val) => ({ name: val })}
+ />
+ </ReferenceInput>
+ </Grid>
+ <Grid item xs={4}>
+ <ReferenceArrayInput source="typeIds" reference="locType" >
+ <SelectArrayInput label="table.field.loc.type" validate={[required()]} onChange={(e) => handleChange(e.target.value, 'typeIds')} />
+ </ReferenceArrayInput>
+ {/* <ReferenceArrayInput source="typeIds" reference="dictData" filter={{}}>
+ <SelectArrayInput label="table.field.loc.type" onChange={(e) => handleChange(e.target.value, 'typeIds')} validate={[required()]} />
+ </ReferenceArrayInput> */}
+ </Grid>
+ <Grid item xs={4}>
+ <TextInput
+ label={translate("table.field.loc.startRow")}
+ name="startRow"
+ value={formData.startRow}
+ onChange={(e) => handleChange(+e.target.value, 'startRow')}
+ size="small"
+ type="number"
+ validate={[required()]}
+ />
+ </Grid>
+ <Grid item xs={4}>
+ <TextInput
+ label={translate("table.field.loc.startBay")}
+ name="startBay"
+ value={formData.startBay}
+ onChange={(e) => handleChange(+e.target.value, 'startBay')}
+ size="small"
+ type="number"
+ validate={[required()]}
+ />
+ </Grid>
+ <Grid item xs={4}>
+ <TextInput
+ label={translate("table.field.loc.startLev")}
+ name="startLev"
+ value={formData.startLev}
+ onChange={(e) => handleChange(+e.target.value, 'startLev')}
+ size="small"
+ type="number"
+ validate={[required()]}
+ />
+ </Grid>
+ <Grid item xs={4}>
+ <TextInput
+ label={translate("table.field.loc.endRow")}
+ name="endRow"
+ value={formData.endRow}
+ onChange={(e) => handleChange(+e.target.value, 'endRow')}
+ size="small"
+ type="number"
+ validate={[required()]}
+ />
+ </Grid>
+ <Grid item xs={4}>
+ <TextInput
+ label={translate("table.field.loc.endBay")}
+ name="endBay"
+ value={formData.endBay}
+ onChange={(e) => handleChange(+e.target.value, 'endBay')}
+ size="small"
+ type="number"
+ validate={[required()]}
+ />
+ </Grid>
+ <Grid item xs={4}>
+ <TextInput
+ label={translate("table.field.loc.endLev")}
+ name="endLev"
+ value={formData.endLev}
+ onChange={(e) => handleChange(+e.target.value, 'endLev')}
+ size="small"
+ type="number"
+ validate={[required()]}
+ />
+ </Grid>
+ <Grid item xs={4}>
+ <TextInput
+ label={"table.field.loc.channel"}
+ name="channel"
+ value={formData.channel}
+ onChange={(e) => handleChange(+e.target.value, 'channel')}
+ size="small"
+ type="number"
+ validate={[required()]}
+ />
+ </Grid>
+ <Grid item xs={4}>
+ <TextInput
+ label={"table.field.loc.startChannel"}
+ name="startChannel"
+ value={formData.startChannel}
+ onChange={(e) => handleChange(+e.target.value, 'startChannel')}
+ size="small"
+ type="number"
+ validate={[required()]}
+ />
+ </Grid>
</Grid>
+ </Box>
+ </DialogContent>
+ <DialogActions sx={{ position: 'sticky', bottom: 0, backgroundColor: 'background.paper', zIndex: 1000 }}>
+ <Box sx={{ width: '100%', display: 'flex', justifyContent: 'space-between' }}>
+ <Button disabled={disabled} type="submit" variant="contained" startIcon={<SaveIcon />} >
+ {translate('toolbar.confirm')}
+ </Button>
+ </Box>
- <Grid item xs={4}>
- <TextField
- label={translate("table.field.loc.locType")}
- name="wkType"
- value={formData.locType}
- onChange={handleChange}
- variant="outlined"
- size="small"
- validate={required()}
- />
- </Grid>
-
- <Grid item xs={4}>
- <TextField
- label={translate("table.field.loc.type")}
- name="wkType"
- value={formData.type}
- onChange={handleChange}
- variant="outlined"
- size="small"
- validate={required()}
- />
- </Grid>
-
- <Grid item xs={4}>
- <TextField
- label={translate("table.field.loc.startBay")}
- name="type"
- value={formData.startBay}
- onChange={handleChange}
- variant="outlined"
- size="small"
- validate={required()}
- />
- </Grid>
-
- <Grid item xs={4}>
- <TextField
- label={translate("table.field.loc.startLev")}
- name="wkType"
- value={formData.startLev}
- onChange={handleChange}
- variant="outlined"
- size="small"
- validate={required()}
- />
- </Grid>
-
- <Grid item xs={4}>
- <TextField
- label={translate("table.field.loc.startRow")}
- name="wkType"
- value={formData.startRow}
- onChange={handleChange}
- variant="outlined"
- size="small"
- validate={required()}
- />
- </Grid>
-
- <Grid item xs={4}>
- <TextField
- label={translate("table.field.loc.endBay")}
- name="wkType"
- value={formData.endBay}
- onChange={handleChange}
- variant="outlined"
- size="small"
- validate={required()}
- />
- </Grid>
-
- <Grid item xs={4}>
- <TextField
- label={translate("table.field.loc.endLev")}
- name="wkType"
- value={formData.endLev}
- onChange={handleChange}
- variant="outlined"
- size="small"
- validate={required()}
- />
- </Grid>
-
- <Grid item xs={4}>
- <TextField
- label={translate("table.field.loc.endRow")}
- name="wkType"
- value={formData.endRow}
- onChange={handleChange}
- variant="outlined"
- size="small"
- validate={required()}
- />
- </Grid>
-
-
- </Grid>
- </Box>
- </DialogContent>
- <DialogActions sx={{ position: 'sticky', bottom: 0, backgroundColor: 'background.paper', zIndex: 1000 }}>
- <Box sx={{ width: '100%', display: 'flex', justifyContent: 'space-between' }}>
- <Button onClick={handleSubmit} variant="contained" startIcon={<SaveIcon />}>
- 纭
- </Button>
- </Box>
- </DialogActions>
+ </DialogActions>
+ </Form>
</Dialog>
);
}
+
+
export default InitModal;
\ No newline at end of file
--
Gitblit v1.9.1