+
{{ props.name }}
+
+
+
+ 进入
+
-
-
-
-
-
-
-
-
\ No newline at end of file
+
diff --git a/Yi.Bbs.Vue3/src/hooks/useAuths.js b/Yi.Bbs.Vue3/src/hooks/useAuths.js
index acfb77c3..cd88d469 100644
--- a/Yi.Bbs.Vue3/src/hooks/useAuths.js
+++ b/Yi.Bbs.Vue3/src/hooks/useAuths.js
@@ -2,7 +2,12 @@ import { ElMessage, ElMessageBox } from "element-plus";
import useUserStore from "@/stores/user";
import router from "@/router";
import { Session, Local } from "@/utils/storage";
-import { userLogin, getUserDetailInfo, userLogout } from "@/apis/auth";
+import {
+ userLogin,
+ getUserDetailInfo,
+ userLogout,
+ userRegister,
+} from "@/apis/auth";
const TokenKey = "AccessToken";
export const AUTH_MENUS = "AUTH_MENUS";
@@ -112,7 +117,7 @@ export default function useAuths(opt) {
setToken(token);
try {
// 存储用户信息
- await getUserInfo(); // 用户信息
+ await useUserStore().getInfo(); // 用户信息
// 登录成功后 路由跳转
// 如果有记录当前跳转页面
const currentPath = Session.get("currentPath");
@@ -130,6 +135,19 @@ export default function useAuths(opt) {
}
};
+ // 注册
+ const registerFun = async (params) => {
+ try {
+ await userRegister(params);
+ ElMessage({
+ message: `恭喜!${params.userName},注册成功!请登录!`,
+ type: "success",
+ });
+ } catch (error) {
+ console.log(error);
+ }
+ };
+
return {
getToken,
setToken,
@@ -138,5 +156,6 @@ export default function useAuths(opt) {
getUserInfo,
logoutFun,
clearStorage,
+ registerFun,
};
}
diff --git a/Yi.Bbs.Vue3/src/layout/AppBody.vue b/Yi.Bbs.Vue3/src/layout/AppBody.vue
index 47f5ca73..5cc8df80 100644
--- a/Yi.Bbs.Vue3/src/layout/AppBody.vue
+++ b/Yi.Bbs.Vue3/src/layout/AppBody.vue
@@ -1,24 +1,20 @@
-
-
-
-
-
-
-
+
+
+
+
\ No newline at end of file
+
diff --git a/Yi.Bbs.Vue3/src/layout/AppHeader.vue b/Yi.Bbs.Vue3/src/layout/AppHeader.vue
index 7e0fcdfd..e679ef15 100644
--- a/Yi.Bbs.Vue3/src/layout/AppHeader.vue
+++ b/Yi.Bbs.Vue3/src/layout/AppHeader.vue
@@ -123,7 +123,7 @@ const isLogin = getToken("AccessToken") ? true : false;
\ No newline at end of file
+
+
+
+
+
diff --git a/Yi.Bbs.Vue3/src/router/index.js b/Yi.Bbs.Vue3/src/router/index.js
index 4ffdd002..1269e39c 100644
--- a/Yi.Bbs.Vue3/src/router/index.js
+++ b/Yi.Bbs.Vue3/src/router/index.js
@@ -23,7 +23,8 @@ const router = createRouter({
{
name: "login",
path: "/login",
- component: () => import("../views/Login.vue"),
+ // component: () => import("../views/Login.vue"),
+ component: () => import("../views/login/index.vue"),
},
{
name: "register",
@@ -53,7 +54,7 @@ const router = createRouter({
},
{
name: "discuss",
- path: "/discuss/:plateId?",
+ path: "/discuss/:plateId?/:isPublish?",
component: () => import("../views/Discuss.vue"),
meta: {
title: "板块",
diff --git a/Yi.Bbs.Vue3/src/stores/user.js b/Yi.Bbs.Vue3/src/stores/user.js
index 566d34f2..6a445008 100644
--- a/Yi.Bbs.Vue3/src/stores/user.js
+++ b/Yi.Bbs.Vue3/src/stores/user.js
@@ -14,6 +14,7 @@ const useUserStore = defineStore("user", {
icon: null,
roles: [],
permissions: [],
+ hasPermissions: false,
}),
getters: {},
actions: {
@@ -42,18 +43,22 @@ const useUserStore = defineStore("user", {
getUserDetailInfo()
.then((response) => {
const res = response.data;
-
const user = res.user;
- console.log(user, "user");
const avatar =
user.icon == "" || user.icon == null
? "/favicon.ico"
: import.meta.env.VITE_APP_BASEAPI + "/file/" + user.icon;
- console.log(avatar, "avatar");
+ const all_permission = "*:*:*";
if (res.roleCodes && res.roleCodes.length > 0) {
// 验证返回的roles是否是一个非空数组
this.roles = res.roleCodes;
this.permissions = res.permissionCodes;
+ this.hasPermissions = res.permissionCodes.some((permission) => {
+ return (
+ all_permission === permission ||
+ permissionFlag.includes(permission)
+ );
+ });
// this.roles = ["admin"];
// this.permissions=["*:*:*"]
} else {
@@ -116,5 +121,9 @@ const useUserStore = defineStore("user", {
this.id = "";
},
},
+ persist: {
+ key: "userInfo",
+ storage: window.sessionStorage,
+ },
});
export default useUserStore;
diff --git a/Yi.Bbs.Vue3/src/views/Article.vue b/Yi.Bbs.Vue3/src/views/Article.vue
index 47aa07d9..fe8e3b8d 100644
--- a/Yi.Bbs.Vue3/src/views/Article.vue
+++ b/Yi.Bbs.Vue3/src/views/Article.vue
@@ -1,5 +1,5 @@