Vue-Vben-Admin
一个基于 Vue3.0、Vite、Ant-Design-Vue、TypeScript的后台解决方案,为开发中大型项目提供开箱即用的解决方案。
包含功能:
- 二次封装组件
- utils
- hooks
- 动态菜单
- 权限校验
- 按钮级别权限控制
- …
安装
1.拉取代码
 从GitHub上
git clone https://github.com/vbenjs/vue-vben-admin.git
从Gitee上
git clone https://gitee.com/annsion/vue-vben-admin.git
用 pnpm install 安装依赖会报错,使用yarn安装不会有问题,原因是package.json中resolutions中第一个国内不支持安装
"resolutions": {
    "//": "Used to install imagemin dependencies, because imagemin may not be installed in China. If it is abroad, you can delete it",
    "bin-wrapper": "npm:bin-wrapper-china",
    "rollup": "^2.56.3"
  },
安装好后启动项目
yarn run dev
目录说明
- build:打包脚本相关 
  - config
- generate
- script
- vite
 
- mock
- public
- src:主目录 
  - api:接口文件
- assets:资源文件 
    - icons
- images
- svg
 
- components:公共组件
- disign:样式文件
- directives:指令
- enums:枚举/常量
- hooks:hook 
    - component
- core
- event
- setting
- web
 
- layouts:布局文件 
    - default
- iframe
- page
 
- locales:多语言
- logics:逻辑
- main.ts:主入口
- router:路由配置
- settings:项目配置 
    - componentSetting.ts
- designSetting.ts
- encryptionSetting.ts
- localeSetting.ts
- projectSetting.ts
- siteSetting.ts
 
- store:数据仓库
- utils:工具类
- views:页面
 
- test:测试 
  - server:测试用到的服务 
    - api
- upload
- websocket
 
 
- server:测试用到的服务 
    
- types:类型文件
- vite.config.ts:vite配置文件
- windi.config.ts:windcss配置文件
路由
在 src/router/routes/modules 内的 .ts 文件会被视为一个路由模块。
 例:src/router/routes/modules/dashboard.ts
import type { AppRouteModule } from '/@/router/types';
import { LAYOUT } from '/@/router/constant';
import { t } from '/@/hooks/web/useI18n';
const dashboard: AppRouteModule = {
  path: '/dashboard',
  name: 'Dashboard',
  component: LAYOUT,
  redirect: '/dashboard/analysis',
  meta: {
    orderNo: 10,
    icon: 'ion:grid-outline',
    title: t('routes.dashboard.dashboard'),
  },
  children: [
    {
      path: 'analysis',
      name: 'Analysis',
      component: () => import('/@/views/dashboard/analysis/index.vue'),
      meta: {
        // affix: true,
        title: t('routes.dashboard.analysis'),
      },
    },
    {
      path: 'workbench',
      name: 'Workbench',
      component: () => import('/@/views/dashboard/workbench/index.vue'),
      meta: {
        title: t('routes.dashboard.workbench'),
      },
    },
  ],
};
export default dashboard;
练习 —— 添加一个新路由模块 test
1.在 src/router/routes/modules 下添加 test.ts
import type { AppRouteModule } from '/@/router/types';
import { LAYOUT } from '/@/router/constant';
import { t } from '/@/hooks/web/useI18n';
const testRoute: AppRouteModule = {
  path: '/testRoute',
  name: 'TestRoute',
  component: LAYOUT,
  redirect: '/testRoute/test1',
  meta: {
    orderNo: 20,
    icon: 'ion:grid-outline',
    title: t('routes.test.testRoute'),
  },
  children: [
    {
      path: 'test1',
      name: 'test1',
      component: () => import('/@/views/myComponents/test1.vue'),
      meta: {
        // affix: true,
        title: t('routes.test.test1'),
      },
    },
    {
      path: 'test2',
      name: 'test2',
      component: () => import('/@/views/myComponents/test2.vue'),
      meta: {
        title: t('routes.test.test2'),
      },
    },
    {
      path: 'test3',
      name: 'test3',
      component: () => import('/@/views/myComponents/test3.vue'),
      meta: {
        title: t('routes.test.test3'),
      },
    },
  ],
};
export default testRoute;
2.在 src/views/myComponents中添加三个test1~3的测试页面
<template>
    <div>
        test1...
    </div>
</template>
<script setup lang="ts">
</script>
<style scoped>
</style>
页面呈现效果
 3.在 src/locales/lang/zh-CN/routes 下添加 test.ts,设置路由title
 
 4.至此路由模块及子页面添加成功,修改后效果
 















![「欧拉定理」[SDOI2008]仪仗队](https://img-blog.csdnimg.cn/img_convert/6e21f1e1efc4be1c3f6f034ba8e38b9e.png)



