diff --git a/src/components/ErrorPage.jsx b/src/components/ErrorPage.jsx
index 49b8f9d..9c779d0 100644
--- a/src/components/ErrorPage.jsx
+++ b/src/components/ErrorPage.jsx
@@ -1,12 +1,12 @@
-import { useRouteError } from "react-router-dom"
+import { useRouteError } from 'react-router-dom'
import { Result } from 'antd'
export default function ErrorPage() {
const errorResponse = useRouteError()
return (
)
diff --git a/src/components/RequireAuth.jsx b/src/components/RequireAuth.jsx
new file mode 100644
index 0000000..24bbdae
--- /dev/null
+++ b/src/components/RequireAuth.jsx
@@ -0,0 +1,19 @@
+import { Result } from 'antd'
+import useAuthStore from '@/stores/Auth'
+
+export default function RequireAuth({ children, ...props }, ) {
+
+ const isPermitted = useAuthStore((state) => state.isPermitted)
+
+ if (isPermitted(props.subject)) {
+ return children
+ } else {
+ return (
+
+ )
+ }
+}
\ No newline at end of file
diff --git a/src/config.js b/src/config.js
index 58e13a2..b6e379a 100644
--- a/src/config.js
+++ b/src/config.js
@@ -9,3 +9,10 @@ export const SMALL_DATETIME_FORMAT = "YYYY-MM-DD 23:59";
const __BUILD_VERSION__ = `__BUILD_VERSION__`.replace(/"/g, '')
export const BUILD_VERSION = import.meta.env.PROD ? __BUILD_VERSION__ : import.meta.env.MODE;
+
+// 权限常量定义
+export const PERM_ACCOUNT_MANAGEMENT = '/account/management'
+export const PERM_ACCOUNT_NEW = '/account/new'
+export const PERM_ACCOUNT_DISABLE = '/account/disable'
+export const PERM_ACCOUNT_RESET_PASSWORD = '/account/reset-password'
+export const PERM_ROLE_NEW = '/account/role/new'
diff --git a/src/main.jsx b/src/main.jsx
index ff392ac..a5c8525 100644
--- a/src/main.jsx
+++ b/src/main.jsx
@@ -14,6 +14,7 @@ import Login from "@/views/Login";
import Logout from "@/views/Logout";
import Index from "@/views/index";
import ErrorPage from "@/components/ErrorPage";
+import RequireAuth from '@/components/RequireAuth'
import ReservationNewest from "@/views/reservation/Newest";
import ReservationDetail from "@/views/reservation/Detail";
import ChangePassword from "@/views/account/ChangePassword";
@@ -31,6 +32,8 @@ import InvoicePaid from "@/views/invoice/Paid";
import InvoicePaidDetail from "@/views/invoice/PaidDetail";
import Airticket from "@/views/airticket/Index";
+import { PERM_ACCOUNT_MANAGEMENT } from '@/config'
+
import './i18n';
configure({
@@ -53,7 +56,7 @@ const router = createBrowserRouter([
{ path: "reservation/:reservationId", element: },
{ path: "account/change-password", element: },
{ path: "account/profile", element: },
- { path: "account/management", element: },
+ { path: "account/management", element: },
{ path: "feedback", element: },
{ path: "feedback/:GRI_SN/:CII_SN/:RefNo", element: },
{ path: "feedback/:GRI_SN/:RefNo", element: },
diff --git a/src/views/account/Management.jsx b/src/views/account/Management.jsx
index 4f028ea..5f063e0 100644
--- a/src/views/account/Management.jsx
+++ b/src/views/account/Management.jsx
@@ -65,7 +65,7 @@ const permissionData = [
},
],
},
-];
+]
function Management() {
const { t } = useTranslation()
@@ -121,8 +121,8 @@ function Management() {
}
const onPermissionChange = (newValue) => {
- console.log('onChange ', newValue);
- setPermissionValue(newValue);
+ console.log('onChange ', newValue)
+ setPermissionValue(newValue)
}
const [permissionValue, setPermissionValue] = useState(['0-0-0'])