From f4f9cd966b0353323636c7aa19b38a6bb3f9936e Mon Sep 17 00:00:00 2001 From: skyouc Date: 星期五, 18 四月 2025 18:26:24 +0800 Subject: [PATCH] no message --- rsf-admin/src/page/basicInfo/loc/BindModal.jsx | 124 +++++++++++++++++++++++++++-------------- 1 files changed, 82 insertions(+), 42 deletions(-) diff --git a/rsf-admin/src/page/basicInfo/loc/BindModal.jsx b/rsf-admin/src/page/basicInfo/loc/BindModal.jsx index 0a8145f..6eca745 100644 --- a/rsf-admin/src/page/basicInfo/loc/BindModal.jsx +++ b/rsf-admin/src/page/basicInfo/loc/BindModal.jsx @@ -10,15 +10,22 @@ SelectInput, ReferenceInput, ReferenceArrayInput, + DatagridConfigurable, AutocompleteInput, Toolbar, required, useDataProvider, + TextField, + NumberField, + ReferenceField, + BooleanField, useNotify, + useSelectAll, Form, useCreateController, useListContext, useRefresh, + List, SelectArrayInput } from 'react-admin'; import { @@ -27,7 +34,6 @@ DialogContent, DialogTitle, Grid, - TextField, Box, Button, Paper, @@ -41,8 +47,6 @@ IconButton, styled, - - } from '@mui/material'; import DialogCloseButton from "../../components/DialogCloseButton"; import DictionarySelect from "../../components/DictionarySelect"; @@ -54,21 +58,35 @@ import { DataGrid } from '@mui/x-data-grid'; import StatusSelectInput from "../../components/StatusSelectInput"; import TreeSelectInput from "@/page/components/TreeSelectInput"; +import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_ITEM_PAGE_SIZE } from '@/config/setting'; + + +const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({ + '& .css-1vooibu-MuiSvgIcon-root': { + height: '.9em' + }, + '& .RaDatagrid-row': { + cursor: 'auto' + }, + '& .column-name': { + }, +})); + const MatnrModal = ({ open, setOpen }) => { const refresh = useRefresh(); const translate = useTranslate(); - - const notify = useNotify(); + const [options, setOptions] = useState({ + condition: null + }); const [formData, setFormData] = useState({ - areaId: null, + areaMatId: null, groupId: null, matnrId: null, }); - const { selectedIds, onUnselectItems } = useListContext(); - + const { selectedIds, onUnselectItems, onSelectAll } = useListContext(); const handleClose = (event, reason) => { if (reason !== "backdropClick") { setOpen(false); @@ -80,7 +98,7 @@ const reset = () => { setFormData({ - areaId: null, + areaMatId: null, groupId: null, matnrId: null, }) @@ -95,7 +113,7 @@ ...prevData, [name]: value })); - refresh() + refresh(); }; const removeEmptyKeys = (obj) => { @@ -111,52 +129,46 @@ const handleSubmit = async () => { const parmas = { locId: selectedIds, - areaId: formData.areaId, + areaMatId: formData.areaMatId, + groupId: formData.groupId, matnrId: formData.matnrId, } - const res = await request.post(`/locAreaMatRela/matnr/bind`, parmas); if (res?.data?.code === 200) { handleClose() - } else { notify(res.data.msg); } - - } const [groupId, setGroupId] = useState(); - const warehouseChange = (e) => { setGroupId(e.target.value) } return ( - <Dialog open={open} maxWidth="md" fullWidth> + <Dialog open={open} maxWidth="xl" fullWidth> <Form onSubmit={handleSubmit}> <DialogCloseButton onClose={handleClose} /> <DialogTitle>{translate('toolbar.bindmatnr')}</DialogTitle> <DialogContent sx={{ mt: 2 }}> - <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}> + <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3, height: 700 }}> <Grid container spacing={2}> <Grid item xs={4}> <ReferenceInput - source="areaId" - reference="warehouseAreas" + source="areaMatId" + reference="locAreaMat" > <AutocompleteInput - label="table.field.loc.areaId" - optionText="name" - onChange={(value) => handleChange(value, 'areaId')} - value={formData.areaId} + label="table.field.loc.locAreaId" + optionText="code" + onChange={(value) => handleChange(value, 'areaMatId')} + value={formData.areaMatId} validate={required()} - filterToQuery={(val) => ({ name: val })} + filterToQuery={(val) => ({ code: val })} /> </ReferenceInput> - </Grid> - <Grid item xs={4}> <TreeSelectInput label="table.field.locAreaMatRela.groupId" @@ -167,25 +179,53 @@ /> </Grid> - - <Grid item xs={4}> - <ReferenceArrayInput source="matnrId" reference="matnr" filter={{ groupId: formData.groupId }}> - <SelectArrayInput - label="table.field.locAreaMatRela.matnrId" - validate={required()} - value={formData.matnrId} - onChange={(e) => handleChange(e.target.value, 'matnrId')} - /> - </ReferenceArrayInput> - - </Grid> - </Grid> - + <Grid item xs={4}> + <List + resource="matnr" + filter={{ groupId: formData.groupId }} + empty={false} + queryOptions={{options}} + actions={<></>} + > + <StyledDatagrid + preferenceKey='matnr' + bulkActionButtons={<></>} + rowClick={false} + omit={['id', 'createTime', 'createBy', 'memo', 'poDetlId', 'matnrId', 'asnId']} + > + <NumberField key="id" source="id" />, + <TextField key="name" source="name" label="table.field.matnr.name" />, + <TextField key="code" source="code" label="table.field.matnr.code" />, + <ReferenceField key="groupId" source="groupId" label="table.field.matnr.groupId" reference="matnrGroup" link={false} sortable={false}> + <TextField source="name" /> + </ReferenceField>, + <TextField key="spec" source="spec" label="table.field.matnr.spec" />, + <TextField key="model" source="model" label="table.field.matnr.model" />, + <NumberField key="nromNum" source="nromNum" label="table.field.matnr.nromNum" />, + <TextField key="stockLeval$" source="stockLeval$" label="table.field.matnr.stockLevel" sortable={false} />, + <TextField key="flagLabelMange$" source="flagLabelMange$" label="table.field.matnr.isLabelMange" sortable={false} />, + <NumberField key="safeQty" source="safeQty" label="table.field.matnr.safeQty" />, + <NumberField key="minQty" source="minQty" label="table.field.matnr.minQty" />, + <NumberField key="maxQty" source="maxQty" label="table.field.matnr.maxQty" />, + <NumberField key="validWarn" source="validWarn" label="table.field.matnr.validWarn" />, + <BooleanField key="flagCheck" source="flagCheck" label="table.field.matnr.flagCheck" sortable={false} />, + <BooleanField key="statusBool" source="statusBool" label="common.field.status" sortable={false} />, + <TextField key="memo" source="memo" label="common.field.memo" sortable={false} />, + </StyledDatagrid> + </List> + {/* <ReferenceArrayInput source="matnrId" reference="matnr" filter={{ groupId: formData.groupId }}> + <SelectArrayInput + label="table.field.locAreaMatRela.matnrId" + value={formData.matnrId} + onChange={(e) => handleChange(e.target.value, 'matnrId')} + /> + </ReferenceArrayInput> */} + </Grid> </Box> </DialogContent> <DialogActions sx={{ position: 'sticky', bottom: 0, backgroundColor: 'background.paper', zIndex: 1000 }}> - <Box sx={{ width: '100%', display: 'flex', justifyContent: 'space-between' }}> + <Box sx={{ width: '100%', display: 'flex', justifyContent: 'end' }}> <Button type="submit" variant="contained" startIcon={<SaveIcon />}> {translate('toolbar.confirm')} </Button> -- Gitblit v1.9.1