新增路由管理

Change-Id: I8139fd09f135c42944f60ca473ee208e69549dc2
diff --git a/Merge/front/src/App.jsx b/Merge/front/src/App.jsx
index 3ab9fca..6dab985 100644
--- a/Merge/front/src/App.jsx
+++ b/Merge/front/src/App.jsx
@@ -1,19 +1,44 @@
-import React from 'react';
-import Header from './components/Header';
-import Sidebar from './components/Sidebar';
-import AppRoutes from './router/App';
-import './App.css';
+// src/App.jsx
+import React, { useState, useEffect } from 'react'
+import { useLocation } from 'react-router-dom'
+import Header  from './components/Header'
+import Sidebar from './components/Sidebar'
+import AppRoutes from './router/App'
+import { getUserInfo } from './utils/auth'
+import './App.css'
 
 export default function App() {
+  const location = useLocation()
+
+  // 初始 role = null (未登录或刚进来时)
+  const [role, setRole] = useState(null)
+
+  // 每次路由变化(含登录後 navigate),都重新从 storage 读一遍 userInfo
+  useEffect(() => {
+    const u = getUserInfo()
+    setRole(u?.role || null)
+  }, [location.pathname])
+
+  // 只有普通 user 才显示侧边栏
+  const showSidebar = role === 'user'
+
   return (
     <div className="app">
       <Header />
-      <Sidebar />
-      <main className="main-content">
+
+      {showSidebar && <Sidebar />}
+
+      <main
+        className="main-content"
+        style={{
+          // 没侧边栏时去掉左边距
+          marginLeft: showSidebar ? undefined : 0
+        }}
+      >
         <div className="content-wrapper">
           <AppRoutes />
         </div>
       </main>
     </div>
-  );
-}
\ No newline at end of file
+  )
+}