forked from b2894lxlx/tuanwei-admin
AI团宝页面对纯学生隐藏「进入后台」入口
This commit is contained in:
@@ -66,6 +66,21 @@ export function hasAnyRole(value: string | string[]): boolean {
|
|||||||
return arrayHasAny(userStore?.roles, value);
|
return arrayHasAny(userStore?.roles, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** 学生角色标识 */
|
||||||
|
export const STUDENT_ROLE_CODE = 'student';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否仅为学生身份(角色恰好只有 student)
|
||||||
|
*
|
||||||
|
* 与后端 BaseController#hasOnlyStudentRole 保持一致:拥有任意其他角色
|
||||||
|
* (学生干部、教师、管理员等)即视为非纯学生,不在此列。
|
||||||
|
*/
|
||||||
|
export function isOnlyStudent(): boolean {
|
||||||
|
const userStore = useUserStore();
|
||||||
|
const roles = (userStore?.roles ?? []).filter((d) => !!d);
|
||||||
|
return roles.length === 1 && roles[0] === STUDENT_ROLE_CODE;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 是否有某些权限
|
* 是否有某些权限
|
||||||
* @param value 权限字符或字符数组
|
* @param value 权限字符或字符数组
|
||||||
|
|||||||
@@ -79,7 +79,11 @@
|
|||||||
<div class="sidebar-footer">
|
<div class="sidebar-footer">
|
||||||
<p class="user-name">{{ userName }}</p>
|
<p class="user-name">{{ userName }}</p>
|
||||||
<div class="footer-actions">
|
<div class="footer-actions">
|
||||||
<button class="admin-btn" type="button" @click="goAdmin"
|
<button
|
||||||
|
v-if="showAdminEntry"
|
||||||
|
class="admin-btn"
|
||||||
|
type="button"
|
||||||
|
@click="goAdmin"
|
||||||
>进入后台
|
>进入后台
|
||||||
</button
|
</button
|
||||||
>
|
>
|
||||||
@@ -319,6 +323,7 @@ import { useUserStore } from "@/store/modules/user";
|
|||||||
import { logout } from "@/utils/page-tab-util";
|
import { logout } from "@/utils/page-tab-util";
|
||||||
import { copyText } from "@/utils/common";
|
import { copyText } from "@/utils/common";
|
||||||
import { getToken } from "@/utils/token-util";
|
import { getToken } from "@/utils/token-util";
|
||||||
|
import { isOnlyStudent } from "@/utils/permission";
|
||||||
|
|
||||||
type ChatRole = "user" | "assistant";
|
type ChatRole = "user" | "assistant";
|
||||||
type ChatMode = "chat" | "writing" | "image";
|
type ChatMode = "chat" | "writing" | "image";
|
||||||
@@ -377,6 +382,11 @@ const userName = computed(
|
|||||||
(loginUser.value.userId ? `用户${loginUser.value.userId}` : "未登录")
|
(loginUser.value.userId ? `用户${loginUser.value.userId}` : "未登录")
|
||||||
);
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 是否展示「进入后台」入口:纯学生身份隐藏
|
||||||
|
*/
|
||||||
|
const showAdminEntry = computed(() => !isOnlyStudent());
|
||||||
|
|
||||||
const canSend = computed(
|
const canSend = computed(
|
||||||
() => content.value.trim().length > 0 && !loading.value
|
() => content.value.trim().length > 0 && !loading.value
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user