mirror of
				https://github.com/continew-org/continew-admin.git
				synced 2025-11-04 10:57:10 +08:00 
			
		
		
		
	新增:新增获取路由信息 API(默认前端动态路由处于关闭状态,可通过[页面配置]>[菜单来源于后台]开启)
1.在页面导航栏中通过[页面配置]>[菜单来源于后台]临时启用,刷新后配置失效 2.在前端项目 src/config/setting.json 中,可通过 menuFromServer 配置永久启用
This commit is contained in:
		@@ -27,6 +27,6 @@ export function getUserInfo() {
 | 
			
		||||
  return axios.get<UserState>(`${BASE_URL}/user/info`);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
export function getMenuList() {
 | 
			
		||||
  return axios.get<RouteRecordNormalized[]>('/api/user/menu');
 | 
			
		||||
export function listRoute() {
 | 
			
		||||
  return axios.get<RouteRecordNormalized[]>(`${BASE_URL}/route`);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -95,7 +95,7 @@
 | 
			
		||||
            _route.forEach((element) => {
 | 
			
		||||
              // This is demo, modify nodes as needed
 | 
			
		||||
              const icon = element?.meta?.icon
 | 
			
		||||
                ? () => h(compile(`<${element?.meta?.icon}/>`))
 | 
			
		||||
                ? () => h(compile(`<icon-${element?.meta?.icon}/>`))
 | 
			
		||||
                : null;
 | 
			
		||||
              const node =
 | 
			
		||||
                element?.children && element?.children.length !== 0 ? (
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@ export default {
 | 
			
		||||
  name: 'ArcoWebsite',
 | 
			
		||||
  meta: {
 | 
			
		||||
    locale: 'menu.arcoWebsite',
 | 
			
		||||
    icon: 'icon-link',
 | 
			
		||||
    icon: 'link',
 | 
			
		||||
    requiresAuth: true,
 | 
			
		||||
    order: 106,
 | 
			
		||||
  },
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@ export default {
 | 
			
		||||
  name: 'GitHub',
 | 
			
		||||
  meta: {
 | 
			
		||||
    locale: 'menu.github',
 | 
			
		||||
    icon: 'icon-github',
 | 
			
		||||
    icon: 'github',
 | 
			
		||||
    requiresAuth: true,
 | 
			
		||||
    order: 107,
 | 
			
		||||
  },
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,7 @@ const EXCEPTION: AppRouteRecordRaw = {
 | 
			
		||||
  meta: {
 | 
			
		||||
    locale: 'menu.exception',
 | 
			
		||||
    requiresAuth: true,
 | 
			
		||||
    icon: 'icon-exclamation-circle',
 | 
			
		||||
    icon: 'exclamation-circle',
 | 
			
		||||
    order: 104,
 | 
			
		||||
  },
 | 
			
		||||
  children: [
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,7 @@ const FORM: AppRouteRecordRaw = {
 | 
			
		||||
  component: DEFAULT_LAYOUT,
 | 
			
		||||
  meta: {
 | 
			
		||||
    locale: 'menu.form',
 | 
			
		||||
    icon: 'icon-bookmark',
 | 
			
		||||
    icon: 'bookmark',
 | 
			
		||||
    requiresAuth: true,
 | 
			
		||||
    order: 101,
 | 
			
		||||
  },
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,7 @@ const LIST: AppRouteRecordRaw = {
 | 
			
		||||
  meta: {
 | 
			
		||||
    locale: 'menu.list',
 | 
			
		||||
    requiresAuth: true,
 | 
			
		||||
    icon: 'icon-list',
 | 
			
		||||
    icon: 'list',
 | 
			
		||||
    order: 100,
 | 
			
		||||
  },
 | 
			
		||||
  children: [
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,7 @@ const PROFILE: AppRouteRecordRaw = {
 | 
			
		||||
  meta: {
 | 
			
		||||
    locale: 'menu.profile',
 | 
			
		||||
    requiresAuth: true,
 | 
			
		||||
    icon: 'icon-file',
 | 
			
		||||
    icon: 'file',
 | 
			
		||||
    order: 102,
 | 
			
		||||
  },
 | 
			
		||||
  children: [
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,7 @@ const RESULT: AppRouteRecordRaw = {
 | 
			
		||||
  component: DEFAULT_LAYOUT,
 | 
			
		||||
  meta: {
 | 
			
		||||
    locale: 'menu.result',
 | 
			
		||||
    icon: 'icon-check-circle',
 | 
			
		||||
    icon: 'check-circle',
 | 
			
		||||
    requiresAuth: true,
 | 
			
		||||
    order: 103,
 | 
			
		||||
  },
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,7 @@ const VISUALIZATION: AppRouteRecordRaw = {
 | 
			
		||||
  meta: {
 | 
			
		||||
    locale: 'menu.visualization',
 | 
			
		||||
    requiresAuth: true,
 | 
			
		||||
    icon: 'icon-bar-chart',
 | 
			
		||||
    icon: 'bar-chart',
 | 
			
		||||
    order: 105,
 | 
			
		||||
  },
 | 
			
		||||
  children: [
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@ const DASHBOARD: AppRouteRecordRaw = {
 | 
			
		||||
  meta: {
 | 
			
		||||
    locale: 'menu.dashboard',
 | 
			
		||||
    requiresAuth: true,
 | 
			
		||||
    icon: 'icon-dashboard',
 | 
			
		||||
    icon: 'dashboard',
 | 
			
		||||
    order: 0,
 | 
			
		||||
    hideChildrenInMenu: true,
 | 
			
		||||
  },
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,7 @@ const Monitor: AppRouteRecordRaw = {
 | 
			
		||||
  component: DEFAULT_LAYOUT,
 | 
			
		||||
  meta: {
 | 
			
		||||
    locale: 'menu.monitor',
 | 
			
		||||
    icon: 'icon-computer',
 | 
			
		||||
    icon: 'computer',
 | 
			
		||||
    requiresAuth: true,
 | 
			
		||||
    order: 2,
 | 
			
		||||
  },
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,7 @@ const System: AppRouteRecordRaw = {
 | 
			
		||||
  component: DEFAULT_LAYOUT,
 | 
			
		||||
  meta: {
 | 
			
		||||
    locale: 'menu.system',
 | 
			
		||||
    icon: 'icon-settings',
 | 
			
		||||
    icon: 'settings',
 | 
			
		||||
    requiresAuth: true,
 | 
			
		||||
    order: 1,
 | 
			
		||||
  },
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,7 @@ const UserCenter: AppRouteRecordRaw = {
 | 
			
		||||
  component: DEFAULT_LAYOUT,
 | 
			
		||||
  meta: {
 | 
			
		||||
    locale: 'menu.user',
 | 
			
		||||
    icon: 'icon-user',
 | 
			
		||||
    icon: 'user',
 | 
			
		||||
    requiresAuth: true,
 | 
			
		||||
  },
 | 
			
		||||
  children: [
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@ import { Notification } from '@arco-design/web-vue';
 | 
			
		||||
import type { NotificationReturn } from '@arco-design/web-vue/es/notification/interface';
 | 
			
		||||
import type { RouteRecordNormalized } from 'vue-router';
 | 
			
		||||
import defaultSettings from '@/config/settings.json';
 | 
			
		||||
import { getMenuList } from '@/api/auth/login';
 | 
			
		||||
import { listRoute } from '@/api/auth/login';
 | 
			
		||||
import { AppState } from './types';
 | 
			
		||||
 | 
			
		||||
const useAppStore = defineStore('app', {
 | 
			
		||||
@@ -52,7 +52,7 @@ const useAppStore = defineStore('app', {
 | 
			
		||||
          content: 'loading',
 | 
			
		||||
          closable: true,
 | 
			
		||||
        });
 | 
			
		||||
        const { data } = await getMenuList();
 | 
			
		||||
        const { data } = await listRoute();
 | 
			
		||||
        this.serverMenu = data;
 | 
			
		||||
        notifyInstance = Notification.success({
 | 
			
		||||
          id: 'menuNotice',
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user