修改用户缓存结构.
This commit is contained in:
@@ -1,3 +1,4 @@
|
||||
import type { MenuQueryResponse } from '@/api/system/menu';
|
||||
import axios from 'axios';
|
||||
|
||||
/**
|
||||
@@ -15,6 +16,22 @@ export interface LoginResponse {
|
||||
token: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* 用户权限响应
|
||||
*/
|
||||
export interface UserPermissionResponse {
|
||||
user: {
|
||||
id: number;
|
||||
username: string;
|
||||
nickname: string;
|
||||
avatar: string;
|
||||
systemPreference: Record<string, any>;
|
||||
tippedKeys: Array<string>;
|
||||
};
|
||||
roles: Array<string>;
|
||||
permissions: Array<string>;
|
||||
}
|
||||
|
||||
/**
|
||||
* 登录
|
||||
*/
|
||||
@@ -33,12 +50,12 @@ export function logout() {
|
||||
* 获取用户信息
|
||||
*/
|
||||
export function getUserPermission() {
|
||||
return axios.get('/infra/permission/user');
|
||||
return axios.get<UserPermissionResponse>('/infra/permission/user');
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取菜单列表
|
||||
*/
|
||||
export function getMenuList() {
|
||||
return axios.get('/infra/permission/menu');
|
||||
return axios.get<Array<MenuQueryResponse>>('/infra/permission/menu');
|
||||
}
|
||||
|
||||
@@ -58,7 +58,7 @@ export default function usePermission() {
|
||||
* 是否有角色
|
||||
*/
|
||||
hasAnyRole(role: string[]) {
|
||||
return userStore.roles?.includes('*') ||
|
||||
return userStore.roles?.includes('admin') ||
|
||||
role.map(s => userStore.roles?.includes(s))
|
||||
.filter(Boolean).length > 0;
|
||||
}
|
||||
|
||||
@@ -28,8 +28,8 @@
|
||||
<!-- 传输框 -->
|
||||
<a-transfer v-model="value"
|
||||
:data="data"
|
||||
:source-input-search-props="{ placeholder:'请输入主机名称/编码/IP' }"
|
||||
:target-input-search-props="{ placeholder:'请输入主机名称/编码/IP' }"
|
||||
:source-input-search-props="{ placeholder: '请输入主机名称/编码/IP' }"
|
||||
:target-input-search-props="{ placeholder: '请输入主机名称/编码/IP' }"
|
||||
:disabled="!group.key"
|
||||
show-search
|
||||
one-way>
|
||||
|
||||
@@ -80,7 +80,7 @@
|
||||
type="warning"
|
||||
@ok="toggleRoleStatus(record)">
|
||||
<a-button v-permission="['infra:system-role:delete']"
|
||||
:disabled="record.code === 'admin'"
|
||||
:disabled="record.code === AdminCode"
|
||||
:status="toggleDictValue(roleStatusKey, record.status, 'status')"
|
||||
type="text"
|
||||
size="mini">
|
||||
@@ -89,7 +89,7 @@
|
||||
</a-popconfirm>
|
||||
<!-- 分配菜单 -->
|
||||
<a-button v-permission="['infra:system-role:grant-menu']"
|
||||
:disabled="record.code === 'admin'"
|
||||
:disabled="record.code === AdminCode"
|
||||
type="text"
|
||||
size="mini"
|
||||
@click="emits('openGrant', record)">
|
||||
@@ -108,7 +108,7 @@
|
||||
type="warning"
|
||||
@ok="deleteRow(record)">
|
||||
<a-button v-permission="['infra:system-role:delete']"
|
||||
:disabled="record.code === 'admin'"
|
||||
:disabled="record.code === AdminCode"
|
||||
type="text"
|
||||
size="mini"
|
||||
status="danger">
|
||||
@@ -134,7 +134,7 @@
|
||||
import { Message } from '@arco-design/web-vue';
|
||||
import useLoading from '@/hooks/loading';
|
||||
import columns from '../types/table.columns';
|
||||
import { roleStatusKey } from '../types/const';
|
||||
import { roleStatusKey, AdminCode } from '../types/const';
|
||||
import { usePagination } from '@/types/table';
|
||||
import { useDictStore } from '@/store';
|
||||
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
// 管理员角色编码
|
||||
export const AdminCode = 'admin';
|
||||
|
||||
// 角色状态
|
||||
export const RoleStatus = {
|
||||
// 停用
|
||||
|
||||
Reference in New Issue
Block a user