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">
       {/* 响应时间图表 */}
