From bfc43ca0e4683c1c0322a6cad5d5be2bc07decc3 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期四, 24 七月 2025 15:00:44 +0800 Subject: [PATCH] 新增调拔单功能 盘点功能优化 --- rsf-admin/src/page/locItem/LocItemEdit.jsx | 282 ++++++++++++++++++++++++++++++------------------------- 1 files changed, 153 insertions(+), 129 deletions(-) diff --git a/rsf-admin/src/page/locItem/LocItemEdit.jsx b/rsf-admin/src/page/locItem/LocItemEdit.jsx index 120f850..0274fb8 100644 --- a/rsf-admin/src/page/locItem/LocItemEdit.jsx +++ b/rsf-admin/src/page/locItem/LocItemEdit.jsx @@ -10,6 +10,7 @@ DateInput, SelectInput, ReferenceInput, + SelectArrayInput, ReferenceArrayInput, AutocompleteInput, SaveButton, @@ -19,6 +20,7 @@ required, useRecordContext, DeleteButton, + useNotify, } from 'react-admin'; import { useWatch, useFormContext } from "react-hook-form"; import { Stack, Grid, Box, Typography } from '@mui/material'; @@ -28,153 +30,175 @@ import CustomerTopToolBar from "../components/EditTopToolBar"; import MemoInput from "../components/MemoInput"; import StatusSelectInput from "../components/StatusSelectInput"; +import request from '@/utils/request'; +import DictionarySelect from "../components/DictionarySelect"; +import LocQueryList from "./LocQueryList"; const FormToolbar = () => { const { getValues } = useFormContext(); return ( <Toolbar sx={{ justifyContent: 'end' }}> - <SaveButton /> - {/* <DeleteButton mutationMode="optimistic" /> */} </Toolbar> ) } const LocItemEdit = () => { const translate = useTranslate(); + const dicts = JSON.parse(localStorage.getItem('sys_dicts'))?.filter(dict => (dict.dictTypeCode == 'sys_loc_type')) || []; + const [warehouseId, setWrehouseId] = useState(); + + const warehouseChange = (val) => { + setWrehouseId(val) + } return ( - <Edit - redirect="list" - mutationMode={EDIT_MODE} - actions={<CustomerTopToolBar />} - aside={<EditBaseAside />} - > - <SimpleForm - shouldUnregister - warnWhenUnsavedChanges - toolbar={<FormToolbar />} - mode="onTouched" - defaultValues={{}} - // validate={(values) => { }} + <> + <Edit + redirect="list" + mutationMode={EDIT_MODE} + actions={<CustomerTopToolBar />} + aside={<EditBaseAside />} + title={"menu.loc"} > - <Grid container width={{ xs: '100%', xl: '100%' }} rowSpacing={3} columnSpacing={3}> - <Grid item xs={14} md={10}> - <Typography variant="h6" gutterBottom> - {translate('common.edit.title.main')} - </Typography> - <Stack direction='row' gap={2}> - <NumberInput - label="table.field.locItem.locId" - source="locId" - autoFocus - /> - <TextInput - label="table.field.locItem.locCode" - source="locCode" - parse={v => v} - /> - <NumberInput - label="table.field.locItem.orderId" - source="orderId" - /> - <TextInput - label="table.field.locItem.type" - source="type$" - parse={v => v} - /> - </Stack> - <Stack direction='row' gap={2}> - <NumberInput - label="table.field.locItem.orderItemId" - source="orderItemId" - /> - <NumberInput - label="table.field.locItem.wkType" - source="wkType" - /> - <NumberInput - label="table.field.locItem.matnrId" - source="matnrId" - /> - </Stack> - <Stack direction='row' gap={2}> - <TextInput - label="table.field.locItem.maktx" - source="maktx" - parse={v => v} - /> + <SimpleForm + shouldUnregister + warnWhenUnsavedChanges + toolbar={false} + mode="onTouched" + defaultValues={{}} + // validate={(values) => { }} + > + <Grid container width={{ xs: '100%', xl: '90%' }} rowSpacing={3} columnSpacing={3} + sx={{ + "& .MuiFormLabel-root.MuiInputLabel-root.Mui-disabled": { + bgcolor: 'white', + WebkitTextFillColor: "rgba(0, 0, 0)" + }, - <TextInput - label="table.field.locItem.matnrCode" - source="matnrCode" - parse={v => v} - /> - <TextInput - label="table.field.locItem.trackCode" - source="trackCode" - parse={v => v} - /> - <TextInput - label="table.field.locItem.unit" - source="unit" - parse={v => v} - /> - </Stack> - <Stack direction='row' gap={2}> - <NumberInput - label="table.field.locItem.anfme" - source="anfme" - /> - <NumberInput - label="table.field.locItem.qty" - source="qty" - /> - <NumberInput - label="table.field.locItem.workQty" - source="workQty" - /> - <TextInput - label="table.field.locItem.batch" - source="batch" - parse={v => v} - /> - </Stack> - <Stack direction='row' gap={2}> - <TextInput - label="table.field.locItem.splrBatch" - source="splrBatch" - parse={v => v} - /> - <TextInput - label="table.field.locItem.spec" - source="spec" - parse={v => v} - /> - <TextInput - label="table.field.locItem.model" - source="model" - parse={v => v} - /> - <TextInput - label="table.field.locItem.fieldsIndex" - source="fieldsIndex" - parse={v => v} - /> - </Stack> + "& .MuiInputBase-input.MuiFilledInput-input.Mui-disabled": { + bgcolor: 'white', + WebkitTextFillColor: "rgba(0, 0, 0)" + }, + "& .MuiFilledInput-root.MuiInputBase-sizeSmall": { + bgcolor: 'white', + } + }} + > + <Grid item xs={12} md={10}> + <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" + readOnly + validate={[required()]} + onChange={warehouseChange} + filterToQuery={(val) => ({ name: val })} + /> + </ReferenceInput> + <ReferenceInput + source="areaId" + reference="warehouseAreas" + filter={{ warehouseId }} + > + <AutocompleteInput + label="table.field.loc.areaId" + optionText="name" + readOnly + validate={[required()]} + filterToQuery={(val) => ({ name: val })} + /> + </ReferenceInput> + <TextInput + label="table.field.loc.code" + source="code" + parse={v => v} + readOnly + validate={required()} + /> + <NumberInput + label="table.field.loc.length" + source="length" + readOnly + validate={required()} + /> + <NumberInput + label="table.field.loc.width" + source="width" + readOnly + validate={required()} + /> + + <NumberInput + label="table.field.loc.height" + source="height" + readOnly + validate={required()} + /> + </Grid> + <Grid item display="flex" gap={1}> + <ReferenceArrayInput source="typeIds" reference="locType" > + <SelectArrayInput label="table.field.loc.type" readOnly validate={[required()]} /> + </ReferenceArrayInput> + <TextInput + label="table.field.loc.unit" + source="unit" + readOnly + parse={v => v} + /> + <DictionarySelect + label={translate("table.field.loc.useStatus")} + name="useStatus" + validate={[required()]} + readOnly + size="small" + dictTypeCode="sys_loc_use_stas" + /> + <NumberInput + label="table.field.loc.row" + source="row" + readOnly + validate={required()} + /> + + <NumberInput + label="table.field.loc.col" + source="col" + readOnly + validate={required()} + /> + + <NumberInput + label="table.field.loc.lev" + source="lev" + readOnly + validate={required()} + /> + </Grid> + </Grid> + </Grid> + {/* <Grid item xs={12} md={2}> + <Typography variant="h6" gutterBottom> + {translate('common.edit.title.common')} + </Typography> + <StatusSelectInput readOnly /> + <Box mt="2em" /> + <MemoInput /> + </Grid> */} </Grid> - <Grid item xs={10} md={2}> - <Typography variant="h6" gutterBottom> - {translate('common.edit.title.common')} - </Typography> - <StatusSelectInput /> - <Box mt="2em" /> - <MemoInput /> - </Grid> - </Grid> - </SimpleForm> - </Edit > + </SimpleForm> + </Edit > + <LocQueryList /> + </> ) } -- Gitblit v1.9.1