From 2fd99785c2970827bae69004e81c8ce486e71200 Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期四, 07 八月 2025 12:56:56 +0800 Subject: [PATCH] 库存调整单功能优化 --- rsf-admin/src/page/stockManage/locRevise/ReviseLogList.jsx | 2 +- /dev/null | 18 ------------------ rsf-admin/src/page/stockManage/locRevise/LocReviseList.jsx | 6 +++--- rsf-admin/src/page/stockManage/locRevise/LocReviseEdit.jsx | 22 +++++++++++++++++++--- 4 files changed, 23 insertions(+), 25 deletions(-) diff --git a/rsf-admin/src/page/reviseLog/ReviseLogCreate.jsx b/rsf-admin/src/page/reviseLog/ReviseLogCreate.jsx deleted file mode 100644 index a57bcd5..0000000 --- a/rsf-admin/src/page/reviseLog/ReviseLogCreate.jsx +++ /dev/null @@ -1,180 +0,0 @@ -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'; -import { - 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 ReviseLogCreate = (props) => { - const { open, setOpen } = props; - - const translate = useTranslate(); - const notify = useNotify(); - - const handleClose = (event, reason) => { - if (reason !== "backdropClick") { - setOpen(false); - } - }; - - const handleSuccess = async (data) => { - setOpen(false); - notify('common.response.success'); - }; - - 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 }} - > - <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}> - <NumberInput - label="table.field.reviseLog.reviseId" - source="reviseId" - autoFocus - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.reviseLog.reviseCode" - source="reviseCode" - parse={v => v} - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <NumberInput - label="table.field.reviseLog.warehouseId" - source="warehouseId" - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <NumberInput - label="table.field.reviseLog.areaId" - source="areaId" - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <NumberInput - label="table.field.reviseLog.type" - source="type" - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.reviseLog.barcode" - source="barcode" - parse={v => v} - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.reviseLog.useStatus" - source="useStatus" - parse={v => v} - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <NumberInput - label="table.field.reviseLog.channel" - source="channel" - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <NumberInput - label="table.field.reviseLog.row" - source="row" - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <NumberInput - label="table.field.reviseLog.col" - source="col" - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <NumberInput - label="table.field.reviseLog.lev" - source="lev" - /> - </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> - </> - ) -} - -export default ReviseLogCreate; diff --git a/rsf-admin/src/page/reviseLog/ReviseLogEdit.jsx b/rsf-admin/src/page/reviseLog/ReviseLogEdit.jsx deleted file mode 100644 index da79ab8..0000000 --- a/rsf-admin/src/page/reviseLog/ReviseLogEdit.jsx +++ /dev/null @@ -1,152 +0,0 @@ -import React, { useState, useRef, useEffect, useMemo } from "react"; -import { - Edit, - SimpleForm, - FormDataConsumer, - useTranslate, - TextInput, - NumberInput, - BooleanInput, - DateInput, - SelectInput, - ReferenceInput, - ReferenceArrayInput, - AutocompleteInput, - SaveButton, - Toolbar, - Labeled, - NumberField, - required, - useRecordContext, - DeleteButton, -} 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"; - -const FormToolbar = () => { - const { getValues } = useFormContext(); - - return ( - <Toolbar sx={{ justifyContent: 'space-between' }}> - <SaveButton /> - <DeleteButton mutationMode="optimistic" /> - </Toolbar> - ) -} - -const ReviseLogEdit = () => { - const translate = useTranslate(); - - return ( - <Edit - redirect="list" - mutationMode={EDIT_MODE} - actions={<CustomerTopToolBar />} - aside={<EditBaseAside />} - > - <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={8}> - <Typography variant="h6" gutterBottom> - {translate('common.edit.title.main')} - </Typography> - <Stack direction='row' gap={2}> - <NumberInput - label="table.field.reviseLog.reviseId" - source="reviseId" - autoFocus - /> - </Stack> - <Stack direction='row' gap={2}> - <TextInput - label="table.field.reviseLog.reviseCode" - source="reviseCode" - parse={v => v} - /> - </Stack> - <Stack direction='row' gap={2}> - <NumberInput - label="table.field.reviseLog.warehouseId" - source="warehouseId" - /> - </Stack> - <Stack direction='row' gap={2}> - <NumberInput - label="table.field.reviseLog.areaId" - source="areaId" - /> - </Stack> - <Stack direction='row' gap={2}> - <NumberInput - label="table.field.reviseLog.type" - source="type" - /> - </Stack> - <Stack direction='row' gap={2}> - <TextInput - label="table.field.reviseLog.barcode" - source="barcode" - parse={v => v} - /> - </Stack> - <Stack direction='row' gap={2}> - <TextInput - label="table.field.reviseLog.useStatus" - source="useStatus" - parse={v => v} - /> - </Stack> - <Stack direction='row' gap={2}> - <NumberInput - label="table.field.reviseLog.channel" - source="channel" - /> - </Stack> - <Stack direction='row' gap={2}> - <NumberInput - label="table.field.reviseLog.row" - source="row" - /> - </Stack> - <Stack direction='row' gap={2}> - <NumberInput - label="table.field.reviseLog.col" - source="col" - /> - </Stack> - <Stack direction='row' gap={2}> - <NumberInput - label="table.field.reviseLog.lev" - source="lev" - /> - </Stack> - - </Grid> - <Grid item xs={12} md={4}> - <Typography variant="h6" gutterBottom> - {translate('common.edit.title.common')} - </Typography> - <StatusSelectInput /> - <Box mt="2em" /> - <MemoInput /> - </Grid> - </Grid> - </SimpleForm> - </Edit > - ) -} - -export default ReviseLogEdit; diff --git a/rsf-admin/src/page/reviseLog/ReviseLogList.jsx b/rsf-admin/src/page/reviseLog/ReviseLogList.jsx deleted file mode 100644 index 0aa55a4..0000000 --- a/rsf-admin/src/page/reviseLog/ReviseLogList.jsx +++ /dev/null @@ -1,172 +0,0 @@ -import React, { useState, useRef, useEffect, useMemo, useCallback } from "react"; -import { useNavigate } from 'react-router-dom'; -import { - List, - DatagridConfigurable, - SearchInput, - TopToolbar, - SelectColumnsButton, - EditButton, - FilterButton, - CreateButton, - ExportButton, - BulkDeleteButton, - WrapperField, - useRecordContext, - useTranslate, - useNotify, - useListContext, - FunctionField, - TextField, - NumberField, - DateField, - BooleanField, - ReferenceField, - TextInput, - DateTimeInput, - DateInput, - SelectInput, - NumberInput, - ReferenceInput, - ReferenceArrayInput, - AutocompleteInput, - DeleteButton, -} from 'react-admin'; -import { Box, Typography, Card, Stack } from '@mui/material'; -import { styled } from '@mui/material/styles'; -import ReviseLogCreate from "./ReviseLogCreate"; -import ReviseLogPanel from "./ReviseLogPanel"; -import EmptyData from "../components/EmptyData"; -import MyCreateButton from "../components/MyCreateButton"; -import MyExportButton from '../components/MyExportButton'; -import PageDrawer from "../components/PageDrawer"; -import MyField from "../components/MyField"; -import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting'; -import * as Common from '@/utils/common'; - -const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({ - '& .css-1vooibu-MuiSvgIcon-root': { - height: '.9em' - }, - '& .RaDatagrid-row': { - cursor: 'auto' - }, - '& .column-name': { - }, - '& .opt': { - width: 200 - }, -})); - -const filters = [ - <SearchInput source="condition" alwaysOn />, - <DateInput label='common.time.after' source="timeStart" alwaysOn />, - <DateInput label='common.time.before' source="timeEnd" alwaysOn />, - - <NumberInput source="reviseId" label="table.field.reviseLog.reviseId" />, - <TextInput source="reviseCode" label="table.field.reviseLog.reviseCode" />, - <NumberInput source="warehouseId" label="table.field.reviseLog.warehouseId" />, - <NumberInput source="areaId" label="table.field.reviseLog.areaId" />, - <NumberInput source="type" label="table.field.reviseLog.type" />, - <TextInput source="barcode" label="table.field.reviseLog.barcode" />, - <TextInput source="useStatus" label="table.field.reviseLog.useStatus" />, - <NumberInput source="channel" label="table.field.reviseLog.channel" />, - <NumberInput source="row" label="table.field.reviseLog.row" />, - <NumberInput source="col" label="table.field.reviseLog.col" />, - <NumberInput source="lev" label="table.field.reviseLog.lev" />, - - <TextInput label="common.field.memo" source="memo" />, - <SelectInput - label="common.field.status" - source="status" - choices={[ - { id: '1', name: 'common.enums.statusTrue' }, - { id: '0', name: 'common.enums.statusFalse' }, - ]} - resettable - />, -] - -const ReviseLogList = () => { - const translate = useTranslate(); - - const [createDialog, setCreateDialog] = useState(false); - const [drawerVal, setDrawerVal] = useState(false); - - return ( - <Box display="flex"> - <List - sx={{ - flexGrow: 1, - transition: (theme) => - theme.transitions.create(['all'], { - duration: theme.transitions.duration.enteringScreen, - }), - marginRight: !!drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0, - }} - title={"menu.reviseLog"} - empty={<EmptyData onClick={() => { setCreateDialog(true) }} />} - filters={filters} - sort={{ field: "create_time", order: "desc" }} - actions={( - <TopToolbar> - <FilterButton /> - <MyCreateButton onClick={() => { setCreateDialog(true) }} /> - <SelectColumnsButton preferenceKey='reviseLog' /> - <MyExportButton /> - </TopToolbar> - )} - perPage={DEFAULT_PAGE_SIZE} - > - <StyledDatagrid - preferenceKey='reviseLog' - bulkActionButtons={() => <BulkDeleteButton mutationMode={OPERATE_MODE} />} - rowClick={(id, resource, record) => false} - expand={() => <ReviseLogPanel />} - expandSingle={true} - omit={['id', 'createTime', 'createBy', 'memo']} - > - <NumberField source="id" /> - <NumberField source="reviseId" label="table.field.reviseLog.reviseId" /> - <TextField source="reviseCode" label="table.field.reviseLog.reviseCode" /> - <NumberField source="warehouseId" label="table.field.reviseLog.warehouseId" /> - <NumberField source="areaId" label="table.field.reviseLog.areaId" /> - <NumberField source="type" label="table.field.reviseLog.type" /> - <TextField source="barcode" label="table.field.reviseLog.barcode" /> - <TextField source="useStatus" label="table.field.reviseLog.useStatus" /> - <NumberField source="channel" label="table.field.reviseLog.channel" /> - <NumberField source="row" label="table.field.reviseLog.row" /> - <NumberField source="col" label="table.field.reviseLog.col" /> - <NumberField source="lev" label="table.field.reviseLog.lev" /> - - <ReferenceField source="updateBy" label="common.field.updateBy" reference="user" link={false} sortable={false}> - <TextField source="nickname" /> - </ReferenceField> - <DateField source="updateTime" label="common.field.updateTime" showTime /> - <ReferenceField source="createBy" label="common.field.createBy" reference="user" link={false} sortable={false}> - <TextField source="nickname" /> - </ReferenceField> - <DateField source="createTime" label="common.field.createTime" showTime /> - <BooleanField source="statusBool" label="common.field.status" sortable={false} /> - <TextField source="memo" label="common.field.memo" sortable={false} /> - <WrapperField cellClassName="opt" label="common.field.opt"> - <EditButton sx={{ padding: '1px', fontSize: '.75rem' }} /> - <DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} /> - </WrapperField> - </StyledDatagrid> - </List> - <ReviseLogCreate - open={createDialog} - setOpen={setCreateDialog} - /> - <PageDrawer - title='ReviseLog Detail' - drawerVal={drawerVal} - setDrawerVal={setDrawerVal} - > - </PageDrawer> - </Box> - ) -} - -export default ReviseLogList; diff --git a/rsf-admin/src/page/reviseLog/ReviseLogPanel.jsx b/rsf-admin/src/page/reviseLog/ReviseLogPanel.jsx deleted file mode 100644 index 2f44c42..0000000 --- a/rsf-admin/src/page/reviseLog/ReviseLogPanel.jsx +++ /dev/null @@ -1,117 +0,0 @@ -import React, { useState, useRef, useEffect, useMemo } from "react"; -import { Box, Card, CardContent, Grid, Typography, Tooltip } from '@mui/material'; -import { - useTranslate, - useRecordContext, -} from 'react-admin'; -import PanelTypography from "../components/PanelTypography"; -import * as Common from '@/utils/common' - -const ReviseLogPanel = () => { - const record = useRecordContext(); - if (!record) return null; - const translate = useTranslate(); - return ( - <> - <Card sx={{ width: { xs: 300, sm: 500, md: 600, lg: 800 }, margin: 'auto' }}> - <CardContent> - <Grid container spacing={2}> - <Grid item xs={12} sx={{ display: 'flex', justifyContent: 'space-between' }}> - <Typography variant="h6" gutterBottom align="left" sx={{ - maxWidth: { xs: '100px', sm: '180px', md: '260px', lg: '360px' }, - whiteSpace: 'nowrap', - overflow: 'hidden', - textOverflow: 'ellipsis', - }}> - {Common.camelToPascalWithSpaces(translate('table.field.reviseLog.id'))}: {record.id} - </Typography> - {/* inherit, primary, secondary, textPrimary, textSecondary, error */} - <Typography variant="h6" gutterBottom align="right" > - ID: {record.id} - </Typography> - </Grid> - </Grid> - <Grid container spacing={2}> - <Grid item xs={12} container alignContent="flex-end"> - <Typography variant="caption" color="textSecondary" sx={{ wordWrap: 'break-word', wordBreak: 'break-all' }}> - {Common.camelToPascalWithSpaces(translate('common.field.memo'))}:{record.memo} - </Typography> - </Grid> - </Grid> - <Box height={20}> </Box> - <Grid container spacing={2}> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLog.reviseId" - property={record.reviseId} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLog.reviseCode" - property={record.reviseCode} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLog.warehouseId" - property={record.warehouseId} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLog.areaId" - property={record.areaId} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLog.type" - property={record.type} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLog.barcode" - property={record.barcode} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLog.useStatus" - property={record.useStatus} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLog.channel" - property={record.channel} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLog.row" - property={record.row} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLog.col" - property={record.col} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLog.lev" - property={record.lev} - /> - </Grid> - - </Grid> - </CardContent> - </Card > - </> - ); -}; - -export default ReviseLogPanel; diff --git a/rsf-admin/src/page/reviseLog/index.jsx b/rsf-admin/src/page/reviseLog/index.jsx deleted file mode 100644 index fdfbaf8..0000000 --- a/rsf-admin/src/page/reviseLog/index.jsx +++ /dev/null @@ -1,18 +0,0 @@ -import React, { useState, useRef, useEffect, useMemo } from "react"; -import { - ListGuesser, - EditGuesser, - ShowGuesser, -} from "react-admin"; - -import ReviseLogList from "./ReviseLogList"; -import ReviseLogEdit from "./ReviseLogEdit"; - -export default { - list: ReviseLogList, - edit: ReviseLogEdit, - show: ShowGuesser, - recordRepresentation: (record) => { - return `${record.id}` - } -}; diff --git a/rsf-admin/src/page/reviseLogItem/ReviseLogItemCreate.jsx b/rsf-admin/src/page/reviseLogItem/ReviseLogItemCreate.jsx deleted file mode 100644 index 7a446f5..0000000 --- a/rsf-admin/src/page/reviseLogItem/ReviseLogItemCreate.jsx +++ /dev/null @@ -1,197 +0,0 @@ -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'; -import { - 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 ReviseLogItemCreate = (props) => { - const { open, setOpen } = props; - - const translate = useTranslate(); - const notify = useNotify(); - - const handleClose = (event, reason) => { - if (reason !== "backdropClick") { - setOpen(false); - } - }; - - const handleSuccess = async (data) => { - setOpen(false); - notify('common.response.success'); - }; - - 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 }} - > - <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}> - <NumberInput - label="table.field.reviseLogItem.reviseLogId" - source="reviseLogId" - autoFocus - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <NumberInput - label="table.field.reviseLogItem.locId" - source="locId" - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.reviseLogItem.locCode" - source="locCode" - parse={v => v} - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <NumberInput - label="table.field.reviseLogItem.matnrId" - source="matnrId" - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.reviseLogItem.maktx" - source="maktx" - parse={v => v} - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.reviseLogItem.matnrCode" - source="matnrCode" - parse={v => v} - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.reviseLogItem.unit" - source="unit" - parse={v => v} - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <NumberInput - label="table.field.reviseLogItem.anfme" - source="anfme" - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <NumberInput - label="table.field.reviseLogItem.reviseQty" - source="reviseQty" - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.reviseLogItem.batch" - source="batch" - parse={v => v} - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.reviseLogItem.spec" - source="spec" - parse={v => v} - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.reviseLogItem.model" - source="model" - parse={v => v} - /> - </Grid> - <Grid item xs={6} display="flex" gap={1}> - <TextInput - label="table.field.reviseLogItem.fieldsIndex" - source="fieldsIndex" - 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> - </> - ) -} - -export default ReviseLogItemCreate; diff --git a/rsf-admin/src/page/reviseLogItem/ReviseLogItemEdit.jsx b/rsf-admin/src/page/reviseLogItem/ReviseLogItemEdit.jsx deleted file mode 100644 index 9fdcba3..0000000 --- a/rsf-admin/src/page/reviseLogItem/ReviseLogItemEdit.jsx +++ /dev/null @@ -1,169 +0,0 @@ -import React, { useState, useRef, useEffect, useMemo } from "react"; -import { - Edit, - SimpleForm, - FormDataConsumer, - useTranslate, - TextInput, - NumberInput, - BooleanInput, - DateInput, - SelectInput, - ReferenceInput, - ReferenceArrayInput, - AutocompleteInput, - SaveButton, - Toolbar, - Labeled, - NumberField, - required, - useRecordContext, - DeleteButton, -} 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"; - -const FormToolbar = () => { - const { getValues } = useFormContext(); - - return ( - <Toolbar sx={{ justifyContent: 'space-between' }}> - <SaveButton /> - <DeleteButton mutationMode="optimistic" /> - </Toolbar> - ) -} - -const ReviseLogItemEdit = () => { - const translate = useTranslate(); - - return ( - <Edit - redirect="list" - mutationMode={EDIT_MODE} - actions={<CustomerTopToolBar />} - aside={<EditBaseAside />} - > - <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={8}> - <Typography variant="h6" gutterBottom> - {translate('common.edit.title.main')} - </Typography> - <Stack direction='row' gap={2}> - <NumberInput - label="table.field.reviseLogItem.reviseLogId" - source="reviseLogId" - autoFocus - /> - </Stack> - <Stack direction='row' gap={2}> - <NumberInput - label="table.field.reviseLogItem.locId" - source="locId" - /> - </Stack> - <Stack direction='row' gap={2}> - <TextInput - label="table.field.reviseLogItem.locCode" - source="locCode" - parse={v => v} - /> - </Stack> - <Stack direction='row' gap={2}> - <NumberInput - label="table.field.reviseLogItem.matnrId" - source="matnrId" - /> - </Stack> - <Stack direction='row' gap={2}> - <TextInput - label="table.field.reviseLogItem.maktx" - source="maktx" - parse={v => v} - /> - </Stack> - <Stack direction='row' gap={2}> - <TextInput - label="table.field.reviseLogItem.matnrCode" - source="matnrCode" - parse={v => v} - /> - </Stack> - <Stack direction='row' gap={2}> - <TextInput - label="table.field.reviseLogItem.unit" - source="unit" - parse={v => v} - /> - </Stack> - <Stack direction='row' gap={2}> - <NumberInput - label="table.field.reviseLogItem.anfme" - source="anfme" - /> - </Stack> - <Stack direction='row' gap={2}> - <NumberInput - label="table.field.reviseLogItem.reviseQty" - source="reviseQty" - /> - </Stack> - <Stack direction='row' gap={2}> - <TextInput - label="table.field.reviseLogItem.batch" - source="batch" - parse={v => v} - /> - </Stack> - <Stack direction='row' gap={2}> - <TextInput - label="table.field.reviseLogItem.spec" - source="spec" - parse={v => v} - /> - </Stack> - <Stack direction='row' gap={2}> - <TextInput - label="table.field.reviseLogItem.model" - source="model" - parse={v => v} - /> - </Stack> - <Stack direction='row' gap={2}> - <TextInput - label="table.field.reviseLogItem.fieldsIndex" - source="fieldsIndex" - parse={v => v} - /> - </Stack> - - </Grid> - <Grid item xs={12} md={4}> - <Typography variant="h6" gutterBottom> - {translate('common.edit.title.common')} - </Typography> - <StatusSelectInput /> - <Box mt="2em" /> - <MemoInput /> - </Grid> - </Grid> - </SimpleForm> - </Edit > - ) -} - -export default ReviseLogItemEdit; diff --git a/rsf-admin/src/page/reviseLogItem/ReviseLogItemList.jsx b/rsf-admin/src/page/reviseLogItem/ReviseLogItemList.jsx deleted file mode 100644 index 1870352..0000000 --- a/rsf-admin/src/page/reviseLogItem/ReviseLogItemList.jsx +++ /dev/null @@ -1,176 +0,0 @@ -import React, { useState, useRef, useEffect, useMemo, useCallback } from "react"; -import { useNavigate } from 'react-router-dom'; -import { - List, - DatagridConfigurable, - SearchInput, - TopToolbar, - SelectColumnsButton, - EditButton, - FilterButton, - CreateButton, - ExportButton, - BulkDeleteButton, - WrapperField, - useRecordContext, - useTranslate, - useNotify, - useListContext, - FunctionField, - TextField, - NumberField, - DateField, - BooleanField, - ReferenceField, - TextInput, - DateTimeInput, - DateInput, - SelectInput, - NumberInput, - ReferenceInput, - ReferenceArrayInput, - AutocompleteInput, - DeleteButton, -} from 'react-admin'; -import { Box, Typography, Card, Stack } from '@mui/material'; -import { styled } from '@mui/material/styles'; -import ReviseLogItemCreate from "./ReviseLogItemCreate"; -import ReviseLogItemPanel from "./ReviseLogItemPanel"; -import EmptyData from "../components/EmptyData"; -import MyCreateButton from "../components/MyCreateButton"; -import MyExportButton from '../components/MyExportButton'; -import PageDrawer from "../components/PageDrawer"; -import MyField from "../components/MyField"; -import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting'; -import * as Common from '@/utils/common'; - -const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({ - '& .css-1vooibu-MuiSvgIcon-root': { - height: '.9em' - }, - '& .RaDatagrid-row': { - cursor: 'auto' - }, - '& .column-name': { - }, - '& .opt': { - width: 200 - }, -})); - -const filters = [ - <SearchInput source="condition" alwaysOn />, - <DateInput label='common.time.after' source="timeStart" alwaysOn />, - <DateInput label='common.time.before' source="timeEnd" alwaysOn />, - - <NumberInput source="reviseLogId" label="table.field.reviseLogItem.reviseLogId" />, - <NumberInput source="locId" label="table.field.reviseLogItem.locId" />, - <TextInput source="locCode" label="table.field.reviseLogItem.locCode" />, - <NumberInput source="matnrId" label="table.field.reviseLogItem.matnrId" />, - <TextInput source="maktx" label="table.field.reviseLogItem.maktx" />, - <TextInput source="matnrCode" label="table.field.reviseLogItem.matnrCode" />, - <TextInput source="unit" label="table.field.reviseLogItem.unit" />, - <NumberInput source="anfme" label="table.field.reviseLogItem.anfme" />, - <NumberInput source="reviseQty" label="table.field.reviseLogItem.reviseQty" />, - <TextInput source="batch" label="table.field.reviseLogItem.batch" />, - <TextInput source="spec" label="table.field.reviseLogItem.spec" />, - <TextInput source="model" label="table.field.reviseLogItem.model" />, - <TextInput source="fieldsIndex" label="table.field.reviseLogItem.fieldsIndex" />, - - <TextInput label="common.field.memo" source="memo" />, - <SelectInput - label="common.field.status" - source="status" - choices={[ - { id: '1', name: 'common.enums.statusTrue' }, - { id: '0', name: 'common.enums.statusFalse' }, - ]} - resettable - />, -] - -const ReviseLogItemList = () => { - const translate = useTranslate(); - - const [createDialog, setCreateDialog] = useState(false); - const [drawerVal, setDrawerVal] = useState(false); - - return ( - <Box display="flex"> - <List - sx={{ - flexGrow: 1, - transition: (theme) => - theme.transitions.create(['all'], { - duration: theme.transitions.duration.enteringScreen, - }), - marginRight: !!drawerVal ? `${PAGE_DRAWER_WIDTH}px` : 0, - }} - title={"menu.reviseLogItem"} - empty={<EmptyData onClick={() => { setCreateDialog(true) }} />} - filters={filters} - sort={{ field: "create_time", order: "desc" }} - actions={( - <TopToolbar> - <FilterButton /> - <MyCreateButton onClick={() => { setCreateDialog(true) }} /> - <SelectColumnsButton preferenceKey='reviseLogItem' /> - <MyExportButton /> - </TopToolbar> - )} - perPage={DEFAULT_PAGE_SIZE} - > - <StyledDatagrid - preferenceKey='reviseLogItem' - bulkActionButtons={() => <BulkDeleteButton mutationMode={OPERATE_MODE} />} - rowClick={(id, resource, record) => false} - expand={() => <ReviseLogItemPanel />} - expandSingle={true} - omit={['id', 'createTime', 'createBy', 'memo']} - > - <NumberField source="id" /> - <NumberField source="reviseLogId" label="table.field.reviseLogItem.reviseLogId" /> - <NumberField source="locId" label="table.field.reviseLogItem.locId" /> - <TextField source="locCode" label="table.field.reviseLogItem.locCode" /> - <NumberField source="matnrId" label="table.field.reviseLogItem.matnrId" /> - <TextField source="maktx" label="table.field.reviseLogItem.maktx" /> - <TextField source="matnrCode" label="table.field.reviseLogItem.matnrCode" /> - <TextField source="unit" label="table.field.reviseLogItem.unit" /> - <NumberField source="anfme" label="table.field.reviseLogItem.anfme" /> - <NumberField source="reviseQty" label="table.field.reviseLogItem.reviseQty" /> - <TextField source="batch" label="table.field.reviseLogItem.batch" /> - <TextField source="spec" label="table.field.reviseLogItem.spec" /> - <TextField source="model" label="table.field.reviseLogItem.model" /> - <TextField source="fieldsIndex" label="table.field.reviseLogItem.fieldsIndex" /> - - <ReferenceField source="updateBy" label="common.field.updateBy" reference="user" link={false} sortable={false}> - <TextField source="nickname" /> - </ReferenceField> - <DateField source="updateTime" label="common.field.updateTime" showTime /> - <ReferenceField source="createBy" label="common.field.createBy" reference="user" link={false} sortable={false}> - <TextField source="nickname" /> - </ReferenceField> - <DateField source="createTime" label="common.field.createTime" showTime /> - <BooleanField source="statusBool" label="common.field.status" sortable={false} /> - <TextField source="memo" label="common.field.memo" sortable={false} /> - <WrapperField cellClassName="opt" label="common.field.opt"> - <EditButton sx={{ padding: '1px', fontSize: '.75rem' }} /> - <DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} /> - </WrapperField> - </StyledDatagrid> - </List> - <ReviseLogItemCreate - open={createDialog} - setOpen={setCreateDialog} - /> - <PageDrawer - title='ReviseLogItem Detail' - drawerVal={drawerVal} - setDrawerVal={setDrawerVal} - > - </PageDrawer> - </Box> - ) -} - -export default ReviseLogItemList; diff --git a/rsf-admin/src/page/reviseLogItem/ReviseLogItemPanel.jsx b/rsf-admin/src/page/reviseLogItem/ReviseLogItemPanel.jsx deleted file mode 100644 index e290636..0000000 --- a/rsf-admin/src/page/reviseLogItem/ReviseLogItemPanel.jsx +++ /dev/null @@ -1,129 +0,0 @@ -import React, { useState, useRef, useEffect, useMemo } from "react"; -import { Box, Card, CardContent, Grid, Typography, Tooltip } from '@mui/material'; -import { - useTranslate, - useRecordContext, -} from 'react-admin'; -import PanelTypography from "../components/PanelTypography"; -import * as Common from '@/utils/common' - -const ReviseLogItemPanel = () => { - const record = useRecordContext(); - if (!record) return null; - const translate = useTranslate(); - return ( - <> - <Card sx={{ width: { xs: 300, sm: 500, md: 600, lg: 800 }, margin: 'auto' }}> - <CardContent> - <Grid container spacing={2}> - <Grid item xs={12} sx={{ display: 'flex', justifyContent: 'space-between' }}> - <Typography variant="h6" gutterBottom align="left" sx={{ - maxWidth: { xs: '100px', sm: '180px', md: '260px', lg: '360px' }, - whiteSpace: 'nowrap', - overflow: 'hidden', - textOverflow: 'ellipsis', - }}> - {Common.camelToPascalWithSpaces(translate('table.field.reviseLogItem.id'))}: {record.id} - </Typography> - {/* inherit, primary, secondary, textPrimary, textSecondary, error */} - <Typography variant="h6" gutterBottom align="right" > - ID: {record.id} - </Typography> - </Grid> - </Grid> - <Grid container spacing={2}> - <Grid item xs={12} container alignContent="flex-end"> - <Typography variant="caption" color="textSecondary" sx={{ wordWrap: 'break-word', wordBreak: 'break-all' }}> - {Common.camelToPascalWithSpaces(translate('common.field.memo'))}:{record.memo} - </Typography> - </Grid> - </Grid> - <Box height={20}> </Box> - <Grid container spacing={2}> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLogItem.reviseLogId" - property={record.reviseLogId} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLogItem.locId" - property={record.locId} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLogItem.locCode" - property={record.locCode} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLogItem.matnrId" - property={record.matnrId} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLogItem.maktx" - property={record.maktx} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLogItem.matnrCode" - property={record.matnrCode} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLogItem.unit" - property={record.unit} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLogItem.anfme" - property={record.anfme} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLogItem.reviseQty" - property={record.reviseQty} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLogItem.batch" - property={record.batch} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLogItem.spec" - property={record.spec} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLogItem.model" - property={record.model} - /> - </Grid> - <Grid item xs={6}> - <PanelTypography - title="table.field.reviseLogItem.fieldsIndex" - property={record.fieldsIndex} - /> - </Grid> - - </Grid> - </CardContent> - </Card > - </> - ); -}; - -export default ReviseLogItemPanel; diff --git a/rsf-admin/src/page/reviseLogItem/index.jsx b/rsf-admin/src/page/reviseLogItem/index.jsx deleted file mode 100644 index 817f52f..0000000 --- a/rsf-admin/src/page/reviseLogItem/index.jsx +++ /dev/null @@ -1,18 +0,0 @@ -import React, { useState, useRef, useEffect, useMemo } from "react"; -import { - ListGuesser, - EditGuesser, - ShowGuesser, -} from "react-admin"; - -import ReviseLogItemList from "./ReviseLogItemList"; -import ReviseLogItemEdit from "./ReviseLogItemEdit"; - -export default { - list: ReviseLogItemList, - edit: ReviseLogItemEdit, - show: ShowGuesser, - recordRepresentation: (record) => { - return `${record.id}` - } -}; diff --git a/rsf-admin/src/page/stockManage/locRevise/LocReviseEdit.jsx b/rsf-admin/src/page/stockManage/locRevise/LocReviseEdit.jsx index 71ba80d..48ca819 100644 --- a/rsf-admin/src/page/stockManage/locRevise/LocReviseEdit.jsx +++ b/rsf-admin/src/page/stockManage/locRevise/LocReviseEdit.jsx @@ -55,8 +55,19 @@ <SimpleForm shouldUnregister warnWhenUnsavedChanges - toolbar={<FormToolbar />} + toolbar={false} mode="onTouched" + sx={{ + "& .MuiFormLabel-root.MuiInputLabel-root.Mui-disabled": { + bgcolor: 'white', + WebkitTextFillColor: "rgba(0, 0, 0)" + }, + + "& .MuiInputBase-input.MuiFilledInput-input.Mui-disabled": { + bgcolor: 'white', + WebkitTextFillColor: "rgba(0, 0, 0)" + } + }} defaultValues={{}} // sx={{ // "& .MuiFormLabel-root.MuiInputLabel-root.Mui-disabled": { @@ -87,19 +98,22 @@ label="table.field.locRevise.type" source="type" choices={[ - { id: 0, name: ' 搴撳瓨璋冩暣' }, + { id: 1, name: ' 搴撳瓨璋冩暣' }, { id: 2, name: ' 鐩樼偣璋冩暣' }, ]} + readOnly /> <NumberInput label="table.field.locRevise.anfme" source="anfme" + readOnly /> </Stack> <Stack direction='row' gap={2}> <NumberInput label="table.field.locRevise.reviseQty" source="reviseQty" + readOnly /> <SelectInput label="table.field.locRevise.exceStatus" @@ -109,11 +123,13 @@ { id: 1, name: '鎵ц涓�' }, { id: 2, name: '鎵ц瀹屾垚' }, ]} + readOnly /> <TextInput label="table.field.locRevise.areaName" - source="orgAreaName" + source="areaName" parse={v => v} + readOnly /> </Stack> </Grid> diff --git a/rsf-admin/src/page/stockManage/locRevise/LocReviseList.jsx b/rsf-admin/src/page/stockManage/locRevise/LocReviseList.jsx index a679f64..0fc637c 100644 --- a/rsf-admin/src/page/stockManage/locRevise/LocReviseList.jsx +++ b/rsf-admin/src/page/stockManage/locRevise/LocReviseList.jsx @@ -124,7 +124,7 @@ rowClick={(id, resource, record) => false} expand={false} expandSingle={true} - omit={['id', 'createTime', 'createBy', 'orgAreaId', 'memo']} + omit={['id', 'createTime', 'createBy', 'areaId', 'memo']} > <NumberField source="id" /> <TextField source="code" label="table.field.locRevise.code" /> @@ -132,8 +132,8 @@ <NumberField source="anfme" label="table.field.locRevise.anfme" /> <NumberField source="reviseQty" label="table.field.locRevise.reviseQty" /> <TextField source="exceStatus$" label="table.field.locRevise.exceStatus" sortable={false} /> - <NumberField source="orgAreaId" label="table.field.locRevise.areaId" /> - <TextField source="orgAreaName" label="table.field.locRevise.areaName" /> + <NumberField source="areaId" label="table.field.locRevise.areaId" /> + <TextField source="areaName" label="table.field.locRevise.areaName" /> <TextField source="updateBy$" label="common.field.updateBy" /> <DateField source="updateTime" label="common.field.updateTime" showTime /> <DateField source="createBy$" label="common.field.createBy" /> diff --git a/rsf-admin/src/page/stockManage/locRevise/ReviseLogList.jsx b/rsf-admin/src/page/stockManage/locRevise/ReviseLogList.jsx index d6f9586..7d8ca87 100644 --- a/rsf-admin/src/page/stockManage/locRevise/ReviseLogList.jsx +++ b/rsf-admin/src/page/stockManage/locRevise/ReviseLogList.jsx @@ -123,7 +123,7 @@ rowClick={(id, resource, record) => false} expand={<ReviseLogItemList />} expandSingle={true} - omit={['id', 'reviseId', 'createTime', 'createBy', 'memo']} + omit={['id', 'reviseId', 'warehouseId', 'areaId', 'createTime', 'createBy', 'memo']} > <NumberField source="id" /> <NumberField source="reviseId" label="table.field.reviseLog.reviseId" /> -- Gitblit v1.9.1