稳定运行版本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">
{/* 响应时间图表 */}