vue3-element-admin-template 是基于 Vue3 + Vite5+ TypeScript5 + Element-Plus + Pinia 等主流技术栈构建的免费开源的后台管理前端模板。
-
简洁易用:基于 vue-element-admin 升级的 Vue3 版本,无过渡封装 ,易上手。
-
数据交互:同时支持本地
Mock和线上接口 -
权限管理:用户、角色、菜单、字典、部门等完善的权限系统功能。
-
基础设施:动态路由、按钮权限、国际化、代码规范、Git 提交规范、常用组件封装。
-
持续更新:项目持续开源更新,实时更新工具和依赖。
| 环境 | 名称版本 | 下载地址 |
|---|---|---|
| 开发工具 | VSCode | 下载 |
| 运行环境 | Node ≥18 (其中 20.6.0 版本不可用, 推荐统一18.18.0保证一致) | 下载 |
# 克隆代码
git clone http://59.172.94.146:96/businessplatform/frontendtemplate.git
# 切换目录
cd frontendtemplate
# 安装 pnpm
npm install pnpm -g
# 安装依赖
pnpm install
# 启动运行
pnpm run dev# 项目打包
pnpm run build
# 上传文件至远程服务器
将打包生成在 `dist` 目录下的文件拷贝至 `/usr/share/nginx/html` 目录
# nginx.cofig 配置
server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
# 反向代理配置
location /prod-api/ {
# vapi.youlai.tech 替换后端API地址,注意保留后面的斜杠 /
proxy_pass http://vapi.youlai.tech/;
}
}项目同时支持在线和本地 Mock 接口,默认使用线上接口,如需替换为 Mock 接口,修改文件 .env.development 的 VITE_MOCK_DEV_SERVER 为 true 即可。
如果您具备Java开发基础,按照以下步骤将在线接口转为本地后端接口
- 修改
.env.development文件中的VITE_APP_API_URL的值,将其从 http://vapi.youlai.tech 更改为 后端服务器地址
-
自动导入插件自动生成默认关闭
模板项目的组件类型声明已自动生成。如果添加和使用新的组件,请按照图示方法开启自动生成。在自动生成完成后,记得将其设置为
false,避免重复执行引发冲突。 -
项目启动浏览器访问空白
请升级浏览器尝试,低版本浏览器内核可能不支持某些新的 JavaScript 语法,比如可选链操作符
?.。 -
项目同步仓库更新升级
项目同步仓库更新升级之后,建议
pnpm install安装更新依赖之后启动 。 -
项目组件、函数和引用爆红
重启 VSCode 尝试
-
其他问题
如果有其他问题或者建议,建议 ISSUE
执行 pnpm run commit 唤起 git commit 交互,根据提示完成信息的输入和选择。
-
菜单路由获取 src\store\modules\permission.ts中getRoutes接口获取
-
菜单中嵌入外部iframe (这种实现方式的好处是菜单、面包屑样式统一)
// 前端路由配置
{
"path": "internal-doc",
"component": "demo/internal-doc",
"name": "InternalDoc",
"meta": {
"title": "平台文档(内嵌)",
"icon": "document",
"hidden": false,
"alwaysShow": false,
"params": null
}
}
// 组件配置
<template>
<div class="app-container">
<iframe
src="https://juejin.cn/post/7228990409909108793"
frameborder="0"
></iframe>
</div>
</template>
<style lang="scss" scoped>
/** 关闭tag标签 */
.app-container {
/* 50px = navbar = 50px */
height: calc(100vh - 50px);
}
/** 开启tag标签 */
.hasTagsView {
.app-container {
/* 84px = navbar + tags-view = 50px + 34px */
height: calc(100vh - 84px);
}
}
iframe {
width: 100%;
height: 100%;
}
</style>本项目GIS地图使用的openlayers,详细代码在components\DeviceMap\index.vue中
// 编辑按钮, pageName页面名称,如'sys:user'(系统管理,用户页)
v-hasPerm="[`${contentConfig.pageName}:edit`]"
// 具体实现: src\directive\permission\index.js// src\store\modules\user.js 中的perms => UserAPI.getInfo返回
perms: ['add', 'edit', 'delete']- 修改文件
.env.development的VITE_MOCK_DEV_SERVER为true仍然走的dev-api接口而不是本地mock 解决:升级 vite-plugin-mock-dev-server 版本至 1.7.1





