From 7e5973a3061989a976e2c19ef588bb2f34f29cf4 Mon Sep 17 00:00:00 2001
From: chen.lin <1442464845@qq.com>
Date: 星期三, 11 二月 2026 10:26:53 +0800
Subject: [PATCH] 下发任务校验

---
 rsf-admin/src/page/orders/outStock/OutStockSiteDialog.jsx |   67 ++++++++++++++++++++++++---------
 1 files changed, 49 insertions(+), 18 deletions(-)

diff --git a/rsf-admin/src/page/orders/outStock/OutStockSiteDialog.jsx b/rsf-admin/src/page/orders/outStock/OutStockSiteDialog.jsx
index e0b0ced..1462658 100644
--- a/rsf-admin/src/page/orders/outStock/OutStockSiteDialog.jsx
+++ b/rsf-admin/src/page/orders/outStock/OutStockSiteDialog.jsx
@@ -1,14 +1,16 @@
-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);
@@ -19,16 +21,31 @@
     }
 
     useEffect(() => {
-        getSiteNos()
+        if (open) {
+            getSiteNos();
+        } else {
+            setSiteNos([]);
+        }
     }, [open])
 
-
     const getSiteNos = async () => {
-        const { data: { code, data, msg } } = await request.get('/outStock/tasks/sites');
-        if (code === 200) {
-            setSiteNos(data);
-        } else {
-            notify(msg);
+        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);
         }
     }
 
@@ -36,17 +53,31 @@
         <Dialog
             onClose={handleClose}
             open={open}
+            maxWidth="xs"
+            fullWidth
         >
             <DialogTitle>{translate("toolbar.modiftySite")}</DialogTitle>
-            <List sx={{ pt: 0 }}>
-                {siteNos.map((site) => (
-                    <ListItem disableGutters key={site?.id}>
-                        <ListItemButton onClick={() => handleListItemClick(site)}>
-                            <ListItemText primary={site.site} />
-                        </ListItemButton>
-                    </ListItem>
-                ))}
-            </List>
+            {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>
     );
 }

--
Gitblit v1.9.1