rsf-admin/src/i18n/en.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
rsf-admin/src/i18n/zh.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
rsf-admin/src/page/basicInfo/loc/BatchModal.jsx | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
rsf-admin/src/page/basicInfo/loc/LocList.jsx | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
rsf-admin/src/page/basicInfo/loc/LocListAside.jsx | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
rsf-admin/src/page/basicInfo/locAreaMat/LocAreaMatPanel.jsx | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
rsf-admin/src/i18n/en.js
@@ -653,6 +653,8 @@ batchMix: 'batchFiexed', batchWarehouse: 'batchWarehouse', batchStockLevel: "batchStockLevel", batchWarehouseAreas: "batchWarehouseAreas", batchLocType: "batchLocType", }, }; rsf-admin/src/i18n/zh.js
@@ -657,6 +657,8 @@ batchStockLevel: "批量ABC分类", batchValidWarn: "批量预警", batchFlagCheck: "批量免检", batchWarehouseAreas: "批量库区", batchLocType: "批量库位类型", }, }; rsf-admin/src/page/basicInfo/loc/BatchModal.jsx
@@ -55,7 +55,7 @@ import StatusSelectInput from "../../components/StatusSelectInput"; const BatchModal = ({ open, setOpen }) => { const BatchModal = ({ open, setOpen, fieldType }) => { const refresh = useRefresh(); const translate = useTranslate(); @@ -128,48 +128,48 @@ } return ( <Dialog open={open} maxWidth="md" fullWidth> <Dialog open={open} maxWidth="xs" fullWidth> <Form onSubmit={handleSubmit}> <DialogCloseButton onClose={handleClose} /> <DialogTitle>{translate('toolbar.batch')}</DialogTitle> <DialogContent sx={{ mt: 2 }}> <Box sx={{ display: 'flex', flexDirection: 'column', gap: 3 }}> <Grid container spacing={2}> <Grid item xs={4}> <ReferenceInput source="warehouseId" reference="warehouse" > <AutocompleteInput label="table.field.loc.warehouseId" optionText="name" onChange={(value) => handleChange(value, 'warehouseId')} value={formData.warehouseId} filterToQuery={(val) => ({ name: val })} /> </ReferenceInput> {fieldType === 'warehouseId' && <Grid item xs={6}> <ReferenceInput source="warehouseId" reference="warehouse" > <AutocompleteInput label="table.field.loc.warehouseId" optionText="name" value={formData.warehouseId} filterToQuery={(val) => ({ name: val })} /> </ReferenceInput> </Grid> } {fieldType === 'areaId' && <Grid item xs={6}> <ReferenceInput source="areaId" reference="warehouseAreas" > <AutocompleteInput label="table.field.loc.areaId" optionText="name" onChange={(value) => handleChange(value, 'areaId')} value={formData.areaId} filterToQuery={(val) => ({ name: val })} /> </ReferenceInput> </Grid> <Grid item xs={4}> <ReferenceInput source="areaId" reference="warehouseAreas" filter={{ warehouseId: formData.warehouseId }} > <AutocompleteInput label="table.field.loc.areaId" optionText="name" onChange={(value) => handleChange(value, 'areaId')} value={formData.areaId} filterToQuery={(val) => ({ name: val })} /> </ReferenceInput> </Grid> <Grid item xs={4}> {/* <DictionarySelect </Grid> } {fieldType === 'typeIds' && <Grid item xs={6}> {/* <DictionarySelect label={translate("table.field.loc.type")} name="type" value={formData.type} @@ -177,19 +177,21 @@ size="small" dictTypeCode="sys_loc_type" /> */} <ReferenceArrayInput source="typeIds" reference="locType" > <SelectArrayInput label="table.field.loc.type" onChange={(e) => handleChange(e.target.value, 'typeIds')} /> </ReferenceArrayInput> </Grid> <ReferenceArrayInput source="typeIds" reference="locType" > <SelectArrayInput label="table.field.loc.type" onChange={(e) => handleChange(e.target.value, 'typeIds')} /> </ReferenceArrayInput> </Grid> } <Grid item xs={4}> <StatusSelectInput onChange={(e) => handleChange(e.target.value, 'status')} defaultValue={''} require={false} /> </Grid> {fieldType === 'status' && <Grid item xs={6}> <StatusSelectInput onChange={(e) => handleChange(e.target.value, 'status')} defaultValue={''} require={false} /> </Grid> } </Grid> </Box> rsf-admin/src/page/basicInfo/loc/LocList.jsx
@@ -85,7 +85,6 @@ source="warehouseId" label="table.field.loc.warehouseId" reference="warehouse" alwaysOn > <AutocompleteInput label="table.field.loc.warehouseId" @@ -97,7 +96,6 @@ source="areaId" label="table.field.loc.areaId" reference="warehouseAreas" alwaysOn > <AutocompleteInput label="table.field.loc.areaId" @@ -194,14 +192,16 @@ </TopToolbar> )} perPage={DEFAULT_PAGE_SIZE} aside={<LocListAside />} > <StyledDatagrid preferenceKey='loc' align="left" bulkActionButtons={ <> <BatchButton /> <BatchWateButton /> <BatchAreasButton /> <BatchLocTypeButton /> <BatchStatusButton /> <BindButton /> <SubzoneButton /> <BulkDeleteButton /> @@ -298,7 +298,7 @@ ) } const BatchButton = () => { const BatchWateButton = () => { const record = useRecordContext(); const notify = useNotify(); const refresh = useRefresh(); @@ -306,16 +306,88 @@ const [createDialog, setCreateDialog] = useState(false); return ( <> <Button onClick={() => setCreateDialog(true)} label={"toolbar.batch"}> <Button onClick={() => setCreateDialog(true)} label={"toolbar.batchWarehouse"}> <EditIcon /> </Button> <BatchModal open={createDialog} setOpen={setCreateDialog} fieldType={'warehouseId'} /> </> ) } const BatchAreasButton = () => { const record = useRecordContext(); const notify = useNotify(); const refresh = useRefresh(); const [createDialog, setCreateDialog] = useState(false); return ( <> <Button onClick={() => setCreateDialog(true)} label={"toolbar.batchWarehouseAreas"}> <EditIcon /> </Button> <BatchModal open={createDialog} setOpen={setCreateDialog} fieldType={'areaId'} /> </> ) } const BatchLocTypeButton = () => { const record = useRecordContext(); const notify = useNotify(); const refresh = useRefresh(); const [createDialog, setCreateDialog] = useState(false); return ( <> <Button onClick={() => setCreateDialog(true)} label={"toolbar.batchLocType"}> <EditIcon /> </Button> <BatchModal open={createDialog} setOpen={setCreateDialog} fieldType={'typeIds'} /> </> ) } const BatchStatusButton = () => { const record = useRecordContext(); const notify = useNotify(); const refresh = useRefresh(); const [createDialog, setCreateDialog] = useState(false); return ( <> <Button onClick={() => setCreateDialog(true)} label={"toolbar.batchStatus"}> <EditIcon /> </Button> <BatchModal open={createDialog} setOpen={setCreateDialog} fieldType={'status'} /> </> rsf-admin/src/page/basicInfo/loc/LocListAside.jsx
@@ -62,8 +62,15 @@ } const handleNodeSelect = (event, nodeId) => { console.log(nodeId); // setFilters({ groupId: nodeId }); const row = apiRef.current.getItem(nodeId); console.log(row); if (row.type === 'warehouseId') { // setFilters({ warehouseId: row.id ,areaId:''}); } else if (row.type === 'areaId') { // setFilters({ areaId: row.id ,warehouseId:''}); } }; const handleSearch = (e) => { setCondition(e.target.value) rsf-admin/src/page/basicInfo/locAreaMat/LocAreaMatPanel.jsx
@@ -252,8 +252,8 @@ <RichTreeView expansionTrigger="iconContainer" checkboxSelection multiSelect // checkboxSelection // multiSelect items={matnrTree} apiRef={apiRef} getItemId={(item) => item.id} @@ -388,17 +388,17 @@ <RichTreeView expansionTrigger="iconContainer" checkboxSelection multiSelect items={locTree} apiRef={apiRef} selectedItems={selectedItems} getItemId={(item) => item.id} getItemLabel={(item) => item.name} defaultExpandedItems={['grid']} onSelectedItemsChange={handleSelectedItemsChange} onItemSelectionToggle={handleItemSelectionToggle} onItemClick={handleNodeSelect} onItemSelectionToggle={handleItemSelectionToggle} // checkboxSelection // multiSelect selectedItems={selectedItems} onSelectedItemsChange={handleSelectedItemsChange} /> <BindLocModal