| | |
| | | import { Box, Card, Grid, List, LinearProgress, Select, MenuItem, ListItemText, ListItemAvatar, Avatar, ListItemButton, Dialog, DialogTitle, ListItem } from "@mui/material"; |
| | | 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 } from "react-admin"; |
| | | 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); |
| | |
| | | } |
| | | |
| | | useEffect(() => { |
| | | getSiteNos() |
| | | if (open) { |
| | | getSiteNos(); |
| | | } else { |
| | | setSiteNos([]); |
| | | } |
| | | }, [open]) |
| | | |
| | | |
| | | const getSiteNos = async () => { |
| | | const { data: { code, data, msg } } = await request.get('/outStock/tasks/sites'); |
| | | 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(data); |
| | | setSiteNos(Array.isArray(data) ? data : []); |
| | | } else { |
| | | notify(msg); |
| | | notify(msg || '获取库口列表失败'); |
| | | setSiteNos([]); |
| | | } |
| | | } catch (err) { |
| | | notify(err?.message || '获取库口列表失败'); |
| | | setSiteNos([]); |
| | | } finally { |
| | | setLoading(false); |
| | | } |
| | | } |
| | | |
| | |
| | | <Dialog |
| | | onClose={handleClose} |
| | | open={open} |
| | | maxWidth="xs" |
| | | fullWidth |
| | | > |
| | | <DialogTitle>{translate("toolbar.modiftySite")}</DialogTitle> |
| | | <List sx={{ pt: 0 }}> |
| | | {siteNos.map((site) => ( |
| | | {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} /> |
| | | <ListItemText primary={site?.site ?? site?.name ?? '-'} /> |
| | | </ListItemButton> |
| | | </ListItem> |
| | | ))} |
| | | )) |
| | | )} |
| | | </List> |
| | | )} |
| | | </Dialog> |
| | | ); |
| | | } |