import { Box, Card, Grid, List, LinearProgress, Select, MenuItem, ListItemText, ListItemAvatar, Avatar, ListItemButton, Dialog, DialogTitle, ListItem, CircularProgress } from "@mui/material";
|
import React, { useState, useRef, useEffect, useMemo } from "react";
|
import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE, DEFAULT_ITEM_PAGE_SIZE } from '@/config/setting';
|
import { Delete, Edit, Add } from '@mui/icons-material';
|
import request from '@/utils/request';
|
import { useTranslate, useNotify } from "react-admin";
|
|
const OutStockSiteDialog = (props) => {
|
const translate = useTranslate();
|
const notify = useNotify();
|
const { onClose, selectedValue, open } = props;
|
const [siteNos, setSiteNos] = useState([]);
|
const [loading, setLoading] = useState(false);
|
|
const handleClose = () => {
|
onClose(selectedValue);
|
}
|
|
const handleListItemClick = (value) => {
|
onClose(value);
|
}
|
|
useEffect(() => {
|
if (open) {
|
getSiteNos();
|
} else {
|
setSiteNos([]);
|
}
|
}, [open])
|
|
const getSiteNos = async () => {
|
setLoading(true);
|
try {
|
const { data: res } = await request.get('/outStock/tasks/sites');
|
const code = res?.code;
|
const data = res?.data;
|
const msg = res?.msg;
|
if (code === 200) {
|
setSiteNos(Array.isArray(data) ? data : []);
|
} else {
|
notify(msg || '获取库口列表失败');
|
setSiteNos([]);
|
}
|
} catch (err) {
|
notify(err?.message || '获取库口列表失败');
|
setSiteNos([]);
|
} finally {
|
setLoading(false);
|
}
|
}
|
|
return (
|
<Dialog
|
onClose={handleClose}
|
open={open}
|
maxWidth="xs"
|
fullWidth
|
>
|
<DialogTitle>{translate("toolbar.modiftySite")}</DialogTitle>
|
{loading ? (
|
<Box sx={{ display: 'flex', justifyContent: 'center', py: 3 }}>
|
<CircularProgress />
|
</Box>
|
) : (
|
<List sx={{ pt: 0, minHeight: 120 }}>
|
{siteNos.length === 0 && !loading ? (
|
<ListItem>
|
<ListItemText primary="暂无库口数据" />
|
</ListItem>
|
) : (
|
siteNos.map((site) => (
|
<ListItem disableGutters key={site?.id}>
|
<ListItemButton onClick={() => handleListItemClick(site)}>
|
<ListItemText primary={site?.site ?? site?.name ?? '-'} />
|
</ListItemButton>
|
</ListItem>
|
))
|
)}
|
</List>
|
)}
|
</Dialog>
|
);
|
}
|
|
export default OutStockSiteDialog;
|