From 262264255b0be3f35674595c0bebab3f2f6c910d Mon Sep 17 00:00:00 2001
From: skyouc
Date: 星期一, 25 八月 2025 14:26:45 +0800
Subject: [PATCH] 库存调整单功能优化调整
---
rsf-admin/src/page/basicInfo/loc/LocEdit.jsx | 279 +++++++++++++++++++++++++------------------------------
1 files changed, 129 insertions(+), 150 deletions(-)
diff --git a/rsf-admin/src/page/basicInfo/loc/LocEdit.jsx b/rsf-admin/src/page/basicInfo/loc/LocEdit.jsx
index 5b1182e..cddeaff 100644
--- a/rsf-admin/src/page/basicInfo/loc/LocEdit.jsx
+++ b/rsf-admin/src/page/basicInfo/loc/LocEdit.jsx
@@ -19,27 +19,31 @@
NumberField,
required,
useRecordContext,
+ useGetRecordId,
+ useGetOne,
DeleteButton,
useNotify,
+ useEditContext,
} from 'react-admin';
-import { useWatch, useFormContext } from "react-hook-form";
-import { Stack, Grid, Box, Typography } from '@mui/material';
-import * as Common from '@/utils/common';
import { EDIT_MODE, REFERENCE_INPUT_PAGESIZE } from '@/config/setting';
-import EditBaseAside from "../../components/EditBaseAside";
-import CustomerTopToolBar from "../../components/EditTopToolBar";
-import MemoInput from "../../components/MemoInput";
import StatusSelectInput from "../../components/StatusSelectInput";
-import request from '@/utils/request';
+import CustomerTopToolBar from "../../components/EditTopToolBar";
import DictionarySelect from "../../components/DictionarySelect";
+import { Stack, Grid, Box, Typography } from '@mui/material';
+import EditBaseAside from "../../components/EditBaseAside";
+import { useWatch, useFormContext } from "react-hook-form";
+import MemoInput from "../../components/MemoInput";
+import * as Common from '@/utils/common';
+import LocItemList from "./LocItemList";
+import request from '@/utils/request';
const FormToolbar = () => {
const { getValues } = useFormContext();
return (
- <Toolbar sx={{ justifyContent: 'space-between' }}>
+ <Toolbar sx={{ justifyContent: 'flex-end' }}>
+ {/* <DeleteButton mutationMode="optimistic" /> */}
<SaveButton />
- <DeleteButton mutationMode="optimistic" />
</Toolbar>
)
}
@@ -48,156 +52,131 @@
const translate = useTranslate();
const dicts = JSON.parse(localStorage.getItem('sys_dicts'))?.filter(dict => (dict.dictTypeCode == 'sys_loc_type')) || [];
const [warehouseId, setWrehouseId] = useState();
+ const id = useGetRecordId();
+ const { data, isLoading } = useGetOne('loc', { id });
+ if (!isLoading) {
+ data.typeIds = data?.type.split(',');
+ } else {
+ return
+ }
const warehouseChange = (val) => {
setWrehouseId(val)
}
- return (
- <Edit
- redirect="list"
- mutationMode={EDIT_MODE}
- actions={<CustomerTopToolBar />}
- aside={<EditBaseAside />}
- title={"menu.loc"}
- >
- <SimpleForm
- shouldUnregister
- warnWhenUnsavedChanges
- toolbar={<FormToolbar />}
- mode="onTouched"
- defaultValues={{}}
- // validate={(values) => { }}
- >
- <Grid container width={{ xs: '100%', xl: '80%' }} rowSpacing={3} columnSpacing={3}>
- <Grid item xs={12} md={10}>
- <Typography variant="h6" gutterBottom>
- {translate('common.edit.title.main')}
- </Typography>
- <Grid container rowSpacing={2} columnSpacing={2}>
- <Grid item xs={6} display="flex" gap={1}>
- <ReferenceInput
- source="warehouseId"
- reference="warehouse"
- >
- <AutocompleteInput
- label="table.field.loc.warehouseId"
- optionText="name"
- validate={[required()]}
- onChange={warehouseChange}
- filterToQuery={(val) => ({ name: val })}
- />
- </ReferenceInput>
- </Grid>
- <Grid item xs={6} display="flex" gap={1}>
- <ReferenceInput
- source="areaId"
- reference="warehouseAreas"
- filter={{ warehouseId }}
- >
- <AutocompleteInput
- label="table.field.loc.areaId"
- optionText="name"
- validate={[required()]}
- filterToQuery={(val) => ({ name: val })}
- />
- </ReferenceInput>
- </Grid>
- <Grid item xs={6} display="flex" gap={1}>
- <TextInput
- label="table.field.loc.code"
- source="code"
- parse={v => v}
- validate={required()}
- />
- </Grid>
- <Grid item xs={6} display="flex" gap={1}>
- {/* <AutocompleteInput
- choices={dicts}
- source="type"
- optionText="label"
- label="table.field.loc.type"
- optionValue="value"
- parse={v => v}
- validate={[required()]}
- /> */}
- <ReferenceArrayInput source="typeIds" reference="locType" >
- <SelectArrayInput label="table.field.loc.type" validate={[required()]} />
- </ReferenceArrayInput>
- </Grid>
- <Grid item xs={6} display="flex" gap={1}>
- <TextInput
- label="table.field.loc.unit"
- source="unit"
- parse={v => v}
- />
- </Grid>
- <Grid item xs={6} display="flex" gap={1}>
- <NumberInput
- label="table.field.loc.length"
- source="length"
- validate={required()}
- />
- </Grid>
- <Grid item xs={6} display="flex" gap={1}>
- <NumberInput
- label="table.field.loc.width"
- source="width"
- validate={required()}
- />
- </Grid>
- <Grid item xs={6} display="flex" gap={1}>
- <NumberInput
- label="table.field.loc.height"
- source="height"
- validate={required()}
- />
- </Grid>
- <Grid item xs={6} display="flex" gap={1}>
- <NumberInput
- label="table.field.loc.row"
- source="row"
- validate={required()}
- />
- </Grid>
- <Grid item xs={6} display="flex" gap={1}>
- <NumberInput
- label="table.field.loc.col"
- source="col"
- validate={required()}
- />
- </Grid>
- <Grid item xs={6} display="flex" gap={1}>
- <NumberInput
- label="table.field.loc.lev"
- source="lev"
- validate={required()}
- />
- </Grid>
- <Grid item xs={6} display="flex" gap={1}>
- <DictionarySelect
- label={translate("table.field.loc.useStatus")}
- name="useStatus"
- validate={[required()]}
- size="small"
- dictTypeCode="sys_loc_use_stas"
- />
- </Grid>
+ return (
+ <>
+ <Edit
+ redirect="list"
+ mutationMode={EDIT_MODE}
+ actions={<CustomerTopToolBar />}
+ aside={<EditBaseAside />}
+ title={"menu.loc"}
+ >
+ <SimpleForm
+ record={data}
+ shouldUnregister
+ warnWhenUnsavedChanges
+ toolbar={<FormToolbar />}
+ mode="onTouched"
+ // validate={(values) => { }}
+ >
+ <Grid container width={{ xs: '100%', xl: '90%' }} rowSpacing={3} columnSpacing={3}>
+ <Grid item xs={12} md={12}>
+ <Typography variant="h6" gutterBottom>
+ {translate('common.edit.title.main')}
+ </Typography>
+ <Grid container rowSpacing={2} columnSpacing={2}>
+ <Grid item display="flex" gap={2}>
+ <ReferenceInput
+ source="warehouseId"
+ reference="warehouse"
+ >
+ <AutocompleteInput
+ label="table.field.loc.warehouseId"
+ optionText="name"
+ validate={[required()]}
+ onChange={warehouseChange}
+ filterToQuery={(val) => ({ name: val })}
+ />
+ </ReferenceInput>
+ <ReferenceInput
+ source="areaId"
+ reference="warehouseAreas"
+ filter={{ warehouseId }}
+ >
+ <AutocompleteInput
+ label="table.field.loc.areaId"
+ optionText="name"
+ validate={[required()]}
+ filterToQuery={(val) => ({ name: val })}
+ />
+ </ReferenceInput>
+ <TextInput
+ label="table.field.loc.code"
+ source="code"
+ parse={v => v}
+ validate={required()}
+ />
+ <NumberInput
+ label="table.field.loc.length"
+ source="length"
+ />
+
+ <NumberInput
+ label="table.field.loc.width"
+ source="width"
+ />
+
+ <NumberInput
+ label="table.field.loc.height"
+ source="height"
+ />
+ </Grid>
+ <Grid item display="flex" gap={1}>
+ <ReferenceArrayInput source="typeIds" reference="locType" >
+ <SelectArrayInput label="table.field.loc.type" />
+ </ReferenceArrayInput>
+ <TextInput
+ label="table.field.loc.unit"
+ source="unit"
+ parse={v => v}
+ />
+ <DictionarySelect
+ label={translate("table.field.loc.useStatus")}
+ name="useStatus"
+ validate={[required()]}
+ size="small"
+ dictTypeCode="sys_loc_use_stas"
+ />
+ <NumberInput
+ label="table.field.loc.row"
+ source="row"
+ validate={required()}
+ />
+
+ <NumberInput
+ label="table.field.loc.col"
+ source="col"
+ validate={required()}
+ />
+
+ <NumberInput
+ label="table.field.loc.lev"
+ source="lev"
+ validate={required()}
+ />
+ </Grid>
+ </Grid>
</Grid>
</Grid>
- <Grid item xs={12} md={2}>
- <Typography variant="h6" gutterBottom>
- {translate('common.edit.title.common')}
- </Typography>
- <StatusSelectInput />
- <Box mt="2em" />
- <MemoInput />
- </Grid>
- </Grid>
- </SimpleForm>
- </Edit >
+ </SimpleForm>
+ </Edit >
+ <LocItemList />
+ </>
)
}
export default LocEdit;
+
--
Gitblit v1.9.1