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/loc/BindModal.jsx | 134 ++++++++++++++++++++++++++++++++------------
1 files changed, 97 insertions(+), 37 deletions(-)
diff --git a/rsf-admin/src/page/basicInfo/loc/BindModal.jsx b/rsf-admin/src/page/basicInfo/loc/BindModal.jsx
index 04cd607..dcba413 100644
--- a/rsf-admin/src/page/basicInfo/loc/BindModal.jsx
+++ b/rsf-admin/src/page/basicInfo/loc/BindModal.jsx
@@ -10,16 +10,25 @@
SelectInput,
ReferenceInput,
ReferenceArrayInput,
+ DatagridConfigurable,
AutocompleteInput,
Toolbar,
required,
useDataProvider,
+ TextField,
+ NumberField,
+ ReferenceField,
+ BooleanField,
useNotify,
+ useSelectAll,
Form,
useCreateController,
useListContext,
+ SearchInput,
useRefresh,
- SelectArrayInput
+ List,
+ SelectArrayInput,
+ useListController
} from 'react-admin';
import {
Dialog,
@@ -27,7 +36,6 @@
DialogContent,
DialogTitle,
Grid,
- TextField,
Box,
Button,
Paper,
@@ -52,21 +60,36 @@
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';
+import ConfirmationNumber from '@mui/icons-material/ConfirmationNumber';
+
+const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
+ '& .css-1vooibu-MuiSvgIcon-root': {
+ height: '.9em'
+ },
+ '& .RaDatagrid-row': {
+ cursor: 'auto'
+ },
+ '& .column-name': {
+ },
+}));
+
+const filters = [
+ <SearchInput source="condition" alwaysOn />,
+]
+
const MatnrModal = ({ open, setOpen }) => {
const refresh = useRefresh();
const translate = useTranslate();
-
-
const notify = useNotify();
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);
@@ -78,7 +101,7 @@
const reset = () => {
setFormData({
- areaId: null,
+ areaMatId: null,
groupId: null,
matnrId: null,
})
@@ -93,7 +116,7 @@
...prevData,
[name]: value
}));
- refresh()
+ refresh();
};
const removeEmptyKeys = (obj) => {
@@ -109,23 +132,19 @@
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)
}
@@ -136,26 +155,24 @@
<DialogCloseButton onClose={handleClose} />
<DialogTitle>{translate('toolbar.bindmatnr')}</DialogTitle>
<DialogContent sx={{ mt: 2 }}>
- <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}>
- <Grid container spacing={2}>
- <Grid item xs={4}>
+ <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3, height: 200 }}>
+ <Grid container spacing={3}>
+ <Grid item xs={3}>
<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}>
+ <Grid item xs={3}>
<TreeSelectInput
label="table.field.locAreaMatRela.groupId"
resource={'matnrGroup'}
@@ -164,26 +181,56 @@
onChange={(e) => handleChange(e.target.value, 'groupId')}
/>
</Grid>
-
-
- <Grid item xs={4}>
+ <Grid item xs={3}>
+ {/* </Grid> */}
+ {/* <Grid item xs={4}> */}
+ {/* <List
+ resource="matnr"
+ filter={{ groupId: formData.groupId }}
+ storeKey="matnrSelectList"
+ filters={filters}
+ empty={false}
+ actions={<></>}
+ >
+ <StyledDatagrid
+ preferenceKey='matnr'
+ bulkActionButtons={<> <SelectMatnrs></SelectMatnrs> </>}
+ 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"
- validate={required()}
value={formData.matnrId}
onChange={(e) => handleChange(e.target.value, 'matnrId')}
/>
</ReferenceArrayInput>
-
</Grid>
-
</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>
@@ -194,4 +241,17 @@
);
}
-export default MatnrModal;
\ No newline at end of file
+export default MatnrModal;
+
+const SelectMatnrs = () => {
+ const { selectedIds, data, isPending, onUnselectItems } = useListContext();
+ const clickMatnrs = () => {
+ onUnselectItems()
+ }
+
+ return (
+ <Button label={"toolbar.confirmSelect"} onClick={clickMatnrs}>
+ <ConfirmationNumber />
+ </Button>
+ )
+}
--
Gitblit v1.9.1