From 99411967019bbf0d7b0b971eae0db2c2c58025f0 Mon Sep 17 00:00:00 2001
From: skyouc <958836976@qq.com>
Date: 星期六, 30 八月 2025 16:27:47 +0800
Subject: [PATCH] 修改任务状态
---
rsf-admin/src/page/basicInfo/matnr/MatnrCreate.jsx | 425 ++++++++++++++++++++++++++++-------------------------
1 files changed, 225 insertions(+), 200 deletions(-)
diff --git a/rsf-admin/src/page/basicInfo/matnr/MatnrCreate.jsx b/rsf-admin/src/page/basicInfo/matnr/MatnrCreate.jsx
index 6e5f23e..f62588a 100644
--- a/rsf-admin/src/page/basicInfo/matnr/MatnrCreate.jsx
+++ b/rsf-admin/src/page/basicInfo/matnr/MatnrCreate.jsx
@@ -33,8 +33,8 @@
import DialogCloseButton from "@/page/components/DialogCloseButton";
import StatusSelectInput from "@/page/components/StatusSelectInput";
import MemoInput from "@/page/components/MemoInput";
-import { tr } from "date-fns/locale";
-
+import TreeSelectInput from "@/page/components/TreeSelectInput";
+import request from '@/utils/request';
function CustomTabPanel(props) {
const { children, value, index, ...other } = props;
@@ -69,7 +69,21 @@
const translate = useTranslate();
const notify = useNotify();
const [value, setValue] = React.useState(0);
+ const [dynamicFields, setDynamicFields] = useState([]);
+ useEffect(() => {
+ getDynamicFields();
+ }, []);
+ const getDynamicFields = async () => {
+ const {
+ data: { code, data, msg },
+ } = await request.get("/fields/enable/list");
+ if (code === 200) {
+ setDynamicFields(data || [])
+ } else {
+ notify(msg);
+ }
+ };
const handleChange = (event, newValue) => {
setValue(newValue);
};
@@ -88,19 +102,15 @@
const handleError = async (error) => {
notify(error.message || 'common.response.fail', { type: 'error', messageArgs: { _: error.message } });
};
- const validateForm = (values) => {
- const errors = {};
- if (!values.shipperId) {
- errors.shipperId = translate('form.matnr.shipper');
- }
- if (!values.groupId) {
- errors.groupId = translate('form.matnr.groupId');
- }
- if (!values.name) {
- errors.name = translate('form.matnr.name');
- }
- return errors;
- };
+ // const validateForm = (values) => {
+ // const errors = {};
+ // if (!values.name) errors.name = translate('form.matnr.name');
+ // if (!values.shipperId) errors.shipperId = translate('form.matnr.shipper');
+ // if (!values.groupId) errors.groupId = translate('form.matnr.groupId');
+ // if (!values.code) errors.code = translate('form.matnr.code');
+
+ // return errors;
+ // };
return (
<>
@@ -117,9 +127,9 @@
aria-labelledby="form-dialog-title"
fullWidth
disableRestoreFocus
- maxWidth="md" // 'xs' | 'sm' | 'md' | 'lg' | 'xl'
+ maxWidth="xl" // 'xs' | 'sm' | 'md' | 'lg' | 'xl'
>
- <Form validate={validateForm}>
+ <Form >
<DialogTitle id="form-dialog-title" sx={{
position: 'sticky',
top: 0,
@@ -140,150 +150,159 @@
</Tabs>
<CustomTabPanel value={value} index={0}>
<Grid container rowSpacing={2} columnSpacing={2}>
- <Grid item xs={6} display="flex" gap={1}>
- <TextInput
- label="table.field.matnr.name"
- validate={[required()]}
- source="name"
- parse={v => v}
- autoFocus
- />
- </Grid>
- <Grid item xs={6} display="flex" gap={1}>
- <TextInput
- label="table.field.matnr.code"
- required
- source="code"
- parse={v => v}
- />
- </Grid>
- <Grid item xs={6} display="flex" gap={1}>
- <ReferenceInput
- source="shipperId"
- reference="shipper"
- >
- <AutocompleteInput
- label="table.field.matnr.shipperId"
- optionText="name"
+ <Grid item xs={12} display="flex" gap={1}>
+ <Grid item xs={6} display="flex" gap={1}>
+ <TextInput
+ label="table.field.matnr.name"
validate={[required()]}
- filterToQuery={(val) => ({ name: val })}
+ source="name"
+ parse={v => v}
+ autoFocus
/>
- </ReferenceInput>
- </Grid>
- <Grid item xs={6} display="flex" gap={1}>
- <ReferenceInput
- source="groupId"
- reference="matnrGroup"
- >
- <AutocompleteInput
+ </Grid>
+ <Grid item xs={6} display="flex" gap={1}>
+ <TextInput
+ label="table.field.matnr.code"
+ validate={[required()]}
+ source="code"
+ parse={v => v}
+ />
+ </Grid>
+ <Grid item xs={6} display="flex" gap={1}>
+ <ReferenceInput source="shipperId" reference="companys" filter={{ type: 'shipper' }}>
+ <AutocompleteInput
+ label="table.field.matnr.shipperId"
+ optionText="name"
+ filterToQuery={(val) => ({ name: val })}
+ />
+ </ReferenceInput>
+ </Grid>
+ <Grid item xs={6} display="flex" gap={1}>
+ <TreeSelectInput
label="table.field.matnr.groupId"
- optionText="code"
- validate={[required()]}
- filterToQuery={(val) => ({ code: val })}
+ resource={'matnrGroup'}
+ source="groupId"
/>
- </ReferenceInput>
+ </Grid>
</Grid>
- <Grid item xs={6} display="flex" gap={1}>
- <TextInput
- label="table.field.matnr.erpCode"
- source="erpCode"
- required
- parse={v => v}
- />
+ <Grid item xs={12} display="flex" gap={1}>
+ <Grid item xs={6} display="flex" gap={1}>
+ <TextInput
+ label="table.field.matnr.platCode"
+ source="platCode"
+ parse={v => v}
+ />
+ </Grid>
+ <Grid item xs={6} display="flex" gap={1}>
+ <TextInput
+ label="table.field.matnr.spec"
+ source="spec"
+ parse={v => v}
+ />
+ </Grid>
+ <Grid item xs={6} display="flex" gap={1}>
+ <TextInput
+ label="table.field.matnr.model"
+ source="model"
+ parse={v => v}
+ />
+ </Grid>
+ <Grid item xs={6} display="flex" gap={1}>
+ <NumberInput
+ label="table.field.matnr.weight"
+ source="weight"
+ />
+ </Grid>
</Grid>
- <Grid item xs={6} display="flex" gap={1}>
- <TextInput
- label="table.field.matnr.spec"
- source="spec"
- parse={v => v}
- />
+ <Grid item xs={12} display="flex" gap={1}>
+ <Grid item xs={6} display="flex" gap={1}>
+ <TextInput
+ label="table.field.matnr.color"
+ source="color"
+ parse={v => v}
+ />
+ </Grid>
+ <Grid item xs={6} display="flex" gap={1}>
+ <TextInput
+ label="table.field.matnr.size"
+ source="size"
+ parse={v => v}
+ />
+ </Grid>
+ <Grid item xs={6} display="flex" gap={1}>
+ <TextInput
+ label="table.field.matnr.describle"
+ source="describle"
+ parse={v => v}
+ />
+ </Grid>
+ <Grid item xs={6} display="flex" gap={1}>
+ <NumberInput
+ label="table.field.matnr.nromNum"
+ source="nromNum"
+ />
+ </Grid>
</Grid>
- <Grid item xs={6} display="flex" gap={1}>
- <TextInput
- label="table.field.matnr.model"
- source="model"
- parse={v => v}
- />
+ <Grid item xs={12} display="flex" gap={1}>
+ <Grid item xs={6} display="flex" gap={1}>
+ <TextInput
+ label="table.field.matnr.unit"
+ source="unit"
+ parse={v => v}
+ />
+ </Grid>
+ <Grid item xs={6} display="flex" gap={1}>
+ <TextInput
+ label="table.field.matnr.purUnit"
+ source="purchaseUnit"
+ parse={v => v}
+ />
+ </Grid>
+ <Grid item xs={6} display="flex" gap={1}>
+ <TextInput
+ label="table.field.matnr.stockUnit"
+ source="stockUnit"
+ parse={v => v}
+ />
+ </Grid>
+ <Grid item xs={6} display="flex" gap={1}>
+ <SelectInput
+ label="table.field.matnr.stockLevel"
+ source="stockLevel"
+ choices={[
+ { id: 0, name: ' A' },
+ { id: 1, name: ' B' },
+ { id: 2, name: 'C' },
+ ]}
+ />
+ </Grid>
</Grid>
- <Grid item xs={6} display="flex" gap={1}>
- <NumberInput
- label="table.field.matnr.weight"
- source="weight"
- />
- </Grid>
- <Grid item xs={6} display="flex" gap={1}>
- <TextInput
- label="table.field.matnr.color"
- source="color"
- parse={v => v}
- />
- </Grid>
- <Grid item xs={6} display="flex" gap={1}>
- <TextInput
- label="table.field.matnr.size"
- source="size"
- parse={v => v}
- />
- </Grid>
- <Grid item xs={6} display="flex" gap={1}>
- <TextInput
- label="table.field.matnr.describle"
- source="describle"
- parse={v => v}
- />
- </Grid>
- <Grid item xs={6} display="flex" gap={1}>
- <NumberInput
- label="table.field.matnr.nromNum"
- source="nromNum"
- />
- </Grid>
- <Grid item xs={6} display="flex" gap={1}>
- <TextInput
- label="table.field.matnr.unit"
- source="unit"
- parse={v => v}
- />
- </Grid>
- <Grid item xs={6} display="flex" gap={1}>
- <TextInput
- label="table.field.matnr.purUnit"
- source="purchaseUnit"
- parse={v => v}
- />
- </Grid>
- <Grid item xs={6} display="flex" gap={1}>
- <TextInput
- label="table.field.matnr.stockUnit"
- source="stockUnit"
- parse={v => v}
- />
- </Grid>
- <Grid item xs={6} display="flex" gap={1}>
- <SelectInput
- label="table.field.matnr.stockLevel"
- source="stockLevel"
- choices={[
- { id: 0, name: ' A' },
- { id: 1, name: ' B' },
- { id: 2, name: 'C' },
- ]}
- />
- </Grid>
- <Grid item xs={6} display="flex" gap={1}>
- <SelectInput
- label="table.field.matnr.isLabelMange"
- source="isLabelMange"
- choices={[
- { id: 0, name: ' 鍚�' },
- { id: 1, name: ' 鏄�' },
- ]}
- />
- </Grid>
+ <Grid item xs={12} display="flex" gap={1}>
+ <Grid item xs={6} display="flex" gap={1}>
+ <SelectInput
+ label="table.field.matnr.isLabelMange"
+ source="flagLabelMange"
+ choices={[
+ { id: 0, name: ' 鍚�' },
+ { id: 1, name: ' 鏄�' },
+ ]}
+ />
+ </Grid>
-
- <Grid item xs={6} display="flex" gap={1}>
- <StatusSelectInput />
+ {dynamicFields.map((item) => {
+ return (
+ <Grid key={item.id} item xs={6} display="flex" gap={1}>
+ <TextInput
+ label={item.fieldsAlise}
+ source={item.fields}
+ validate={item.unique === 1 ? required() : false}
+ />
+ </Grid>
+ )
+ })}
+ <Grid item xs={6} display="flex" gap={1}>
+ <StatusSelectInput />
+ </Grid>
</Grid>
<Grid item xs={12} display="flex" gap={1}>
<Stack direction="column" spacing={1} width={'100%'}>
@@ -294,51 +313,57 @@
</CustomTabPanel>
<CustomTabPanel value={value} index={1}>
<Grid container rowSpacing={2} columnSpacing={2}>
- <Grid item xs={6} display="flex" gap={1}>
- <NumberInput
- label="table.field.matnr.safeQty"
- source="safeQty"
- />
+ <Grid item xs={12} display="flex" gap={1}>
+ <Grid item xs={6} display="flex" gap={1}>
+ <NumberInput
+ label="table.field.matnr.safeQty"
+ source="safeQty"
+ />
+ </Grid>
+ <Grid item xs={6} display="flex" gap={1}>
+ <NumberInput
+ label="table.field.matnr.minQty"
+ source="minQty"
+ />
+ </Grid>
+ <Grid item xs={6} display="flex" gap={1}>
+ <NumberInput
+ label="table.field.matnr.maxQty"
+ source="maxQty"
+ />
+ </Grid>
</Grid>
- <Grid item xs={6} display="flex" gap={1}>
- <NumberInput
- label="table.field.matnr.minQty"
- source="minQty"
- />
+ <Grid item xs={12} display="flex" gap={1}>
+ <Grid item xs={6} display="flex" gap={1}>
+ <NumberInput
+ label="table.field.matnr.stagn"
+ source="stagn"
+ />
+ </Grid>
+ <Grid item xs={6} display="flex" gap={1}>
+ <NumberInput
+ label="table.field.matnr.valid"
+ source="valid"
+ />
+ </Grid>
+ <Grid item xs={6} display="flex" gap={1}>
+ <NumberInput
+ label="table.field.matnr.validWarn"
+ source="validWarn"
+ />
+ </Grid>
</Grid>
- <Grid item xs={6} display="flex" gap={1}>
- <NumberInput
- label="table.field.matnr.maxQty"
- source="maxQty"
- />
- </Grid>
- <Grid item xs={6} display="flex" gap={1}>
- <NumberInput
- label="table.field.matnr.stagn"
- source="stagn"
- />
- </Grid>
- <Grid item xs={6} display="flex" gap={1}>
- <NumberInput
- label="table.field.matnr.valid"
- source="valid"
- />
- </Grid>
- <Grid item xs={6} display="flex" gap={1}>
- <NumberInput
- label="table.field.matnr.validWarn"
- source="validWarn"
- />
- </Grid>
- <Grid item xs={6} display="flex" gap={1}>
- <SelectInput
- label="table.field.matnr.flagCheck"
- source="flagCheck"
- choices={[
- { id: 0, name: ' 鍚�' },
- { id: 1, name: ' 鏄�' },
- ]}
- />
+ <Grid item xs={12} display="flex" gap={1}>
+ <Grid item xs={4} display="flex" gap={1}>
+ <SelectInput
+ label="table.field.matnr.flagCheck"
+ source="flagCheck"
+ choices={[
+ { id: 0, name: ' 鍚�' },
+ { id: 1, name: ' 鏄�' },
+ ]}
+ />
+ </Grid>
</Grid>
</Grid>
</CustomTabPanel>
@@ -346,13 +371,13 @@
<Grid container rowSpacing={2} columnSpacing={2}>
<Grid item xs={6} display="flex" gap={1}>
<ReferenceInput
- source="rglarId"
- reference="rglarId"
+ source="rglar_id"
+ reference="serialRule"
>
<AutocompleteInput
label="table.field.matnr.rglarId"
- optionText="code"
- filterToQuery={(val) => ({ code: val })}
+ optionText="name"
+ filterToQuery={(val) => ({ name: val })}
/>
</ReferenceInput>
</Grid>
@@ -360,7 +385,7 @@
</CustomTabPanel>
</DialogContent>
<DialogActions sx={{ position: 'sticky', bottom: 0, backgroundColor: 'background.paper', zIndex: 1000 }}>
- <Toolbar sx={{ width: '100%', justifyContent: 'space-between' }} >
+ <Toolbar sx={{ width: '100%', justifyContent: 'flex-end' }} >
<SaveButton />
</Toolbar>
</DialogActions>
--
Gitblit v1.9.1