稳定运行版本v1

Change-Id: Id2cb7e1c6d3fbe156911e42fa342cab74f817193
diff --git a/Merge/front/src/components/PerformanceLogs.js b/Merge/front/src/components/PerformanceLogs.js
index 00f7e7d..f87ef7a 100644
--- a/Merge/front/src/components/PerformanceLogs.js
+++ b/Merge/front/src/components/PerformanceLogs.js
@@ -8,11 +8,29 @@
 function PerformanceLogs({ userId }) {
   const [data, setData] = useState([]);
   const [loading, setLoading] = useState(true);
+  const [unauthorized, setUnauthorized] = useState(false);
 
   useEffect(() => {
     setLoading(true);
     fetchSysCost(userId)
-      .then(list => {
+      .then(result => {
+        // 检查是否是权限错误
+        if (result && result.status === 'error' && result.message === 'Unauthorized') {
+          setUnauthorized(true);
+          setData([]);
+          return;
+        }
+        
+        // 确保数据是数组格式
+        let list = [];
+        if (Array.isArray(result)) {
+          list = result;
+        } else if (Array.isArray(result.data)) {
+          list = result.data;
+        } else if (Array.isArray(result.syscost)) {
+          list = result.syscost;
+        }
+        
         const msList = list.map(item => ({
           ...item,
           elapsed_time: item.elapsed_time * 1000,
@@ -23,8 +41,15 @@
         }));
         console.log('Converted data:', msList[0]); // debug first item
         setData(msList);
+        setUnauthorized(false);
       })
-      .catch(err => console.error('fetchSysCost error:', err))
+      .catch(err => {
+        console.error('fetchSysCost error:', err);
+        if (err.message === 'Unauthorized') {
+          setUnauthorized(true);
+          setData([]);
+        }
+      })
       .finally(() => setLoading(false));
   }, [userId]);
 
@@ -58,6 +83,35 @@
     );
   }
 
+  if (unauthorized) {
+    return (
+      <section className="dashboard-performance">
+        <div style={{ 
+          display: 'flex', 
+          justifyContent: 'center', 
+          alignItems: 'center', 
+          height: '400px',
+          flexDirection: 'column',
+          textAlign: 'center'
+        }}>
+          <div style={{ 
+            fontSize: '18px',
+            color: '#ff4d4f',
+            marginBottom: '10px'
+          }}>
+            权限不足,无法访问性能监控数据
+          </div>
+          <div style={{ 
+            fontSize: '14px',
+            color: '#666'
+          }}>
+            请联系管理员获取相应权限
+          </div>
+        </div>
+      </section>
+    );
+  }
+
   return (
     <section className="dashboard-performance">
       {/* 响应时间图表 */}