vue-element-admin 快速构建后台系统

这篇具有很好参考价值的文章主要介绍了vue-element-admin 快速构建后台系统。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、vue-element-admin

vue-element-admin是基于element-ui 的一套后台管理系统集成方案。

功能:https://panjiachen.github.io/vue-element-admin-site/zh/guide/#功能

GitHub地址:https://github.com/PanJiaChen/vue-element-admin

项目在线预览:https://panjiachen.gitee.io/vue-element-admin

2、vue-admin-template

2.1、简介

vue-admin-template是基于vue-element-admin的一套后台管理系统基础模板(最少精简版),可作为模板进行二次开发。

GitHub地址:https://github.com/PanJiaChen/vue-admin-template

建议:你可以在 vue-admin-template 的基础上进行二次开发,把 vue-element-admin当做工具箱,想要什么功能或者组件就去 vue-element-admin 那里复制过来。

2.2、目录结构

|-dist 生产环境打包生成的打包项目
|-mock 使用mockjs来mock接口
|-public 包含会被自动打包到项目根路径的文件夹
    |-index.html 唯一的页面
|-src
    |-api 包含接口请求函数模块
        |-table.js  表格列表mock数据接口的请求函数
        |-user.js  用户登陆相关mock数据接口的请求函数
    |-assets 组件中需要使用的公用资源
        |-404_images 404页面的图片
    |-components 非路由组件
        |-SvgIcon svg图标组件
        |-Breadcrumb 面包屑组件(头部水平方向的层级组件)
        |-Hamburger 用来点击切换左侧菜单导航的图标组件
    |-icons
        |-svg 包含一些svg图片文件
        |-index.js 全局注册SvgIcon组件,加载所有svg图片并暴露所有svg文件名的数组
    |-layout
        |-components 组成整体布局的一些子组件
        |-mixin 组件中可复用的代码
        |-index.vue 后台管理的整体界面布局组件
    |-router
        |-index.js 路由器
    |-store
        |-modules
            |-app.js 管理应用相关数据
            |-settings.js 管理设置相关数据
            |-user.js 管理后台登陆用户相关数据
        |-getters.js 提供子模块相关数据的getters计算属性
        |-index.js vuex的store
    |-styles
        |-xxx.scss 项目组件需要使用的一些样式(使用scss)
    |-utils 一些工具函数
        |-auth.js 操作登陆用户的token cookie
        |-get-page-title.js 得到要显示的网页title
        |-request.js axios二次封装的模块
        |-validate.js 检验相关工具函数
        |-index.js 日期和请求参数处理相关工具函数
    |-views 路由组件文件夹
        |-dashboard 首页
        |-login 登陆
    |-App.vue 应用根组件
    |-main.js 入口js
    |-permission.js 使用全局守卫实现路由权限控制的模块
    |-settings.js 包含应用设置信息的模块
|-.env.development 指定了开发环境的代理服务器前缀路径
|-.env.production 指定了生产环境的代理服务器前缀路径
|-.eslintignore eslint的忽略配置
|-.eslintrc.js eslint的检查配置
|-.gitignore git的忽略配置
|-.npmrc 指定npm的淘宝镜像和sass的下载地址
|-babel.config.js babel的配置
|-jsconfig.json 用于vscode引入路径提示的配置
|-package.json 当前项目包信息
|-package-lock.json 当前项目依赖的第三方包的精确信息
|-vue.config.js webpack相关配置(如: 代理服务器)

3、二次开发

3.1、项目启动

这里使用vue-admin-template进行二次开发。首先将源码克隆到本地,或者直接下载压缩包解压到本地。

创建一个新文件夹(oa-system-front),将源码文件放至其中,用vscode打开文件夹,将oa-system-front加至工作区

element ui admin,vue.js,javascript,前端,Powered by 金山文档

将其保存至打开的文件下!!!

事先下载好Node.js,对源码文件单击鼠标右键,在终端打开,使用npm install命令下载相关依赖

element ui admin,vue.js,javascript,前端,Powered by 金山文档
element ui admin,vue.js,javascript,前端,Powered by 金山文档

使用npm run dev命令启动项目

element ui admin,vue.js,javascript,前端,Powered by 金山文档
element ui admin,vue.js,javascript,前端,Powered by 金山文档

3.2、修改相关配置

3.2.1、设置反向代理(将请求转发至我们的后端)

修改方式一:进入.env.development(不能解决跨域问题)

element ui admin,vue.js,javascript,前端,Powered by 金山文档
element ui admin,vue.js,javascript,前端,Powered by 金山文档

修改方式二:在vue.config.js中修改配置

  • 注释掉mock接口配置

  • 配置代理转发请求到目标接口

// before: require('./mock/mock-server.js')
proxy: {
  '/dev-api': { // 匹配所有以 '/dev-api'开头的请求路径
    target: 'http://localhost:8800',//类似于Nginx反向代理
    changeOrigin: true, // 支持跨域
    pathRewrite: { // 重写路径: 去掉路径中开头的'/dev-api'
      '^/dev-api': ''
    }
  }
}

3.2.2、编写后端登录接口

查看登录响应的数据

element ui admin,vue.js,javascript,前端,Powered by 金山文档

可以看到发了两个请求!!

其中login和info请求的响应数据如下

element ui admin,vue.js,javascript,前端,Powered by 金山文档
element ui admin,vue.js,javascript,前端,Powered by 金山文档

编写对应的接口

/**
 * 返回结果状态码枚举
 */
@Getter
public enum ResultCodeEnum {
    SUCCESS(200,"成功"),
    FAIL(201, "失败");

    private Integer code;
    private String message;

    private ResultCodeEnum(Integer code, String message) {
        this.code = code;
        this.message = message;
    }
}
/**
 * 全局返回同一结果封装类
 */
@Data
public class Result<T> {

    private Integer code;
    private String message;
    private T data;


    private Result(){}

    public static <T> Result<T> build(T data){
        Result<T> result=new Result();
        if(data!=null){
            result.setData(data);
        }
        return result;
    }

    public static <T> Result<T> build(T data,Integer code,String msg){
        Result<T> build = build(data);
        build.setCode(code);
        build.setMessage(msg);
        return build;
    }

    public static <T> Result<T> build(T data,ResultCodeEnum codeEnum){
        Result<T> build = build(data);
        build.setMessage(codeEnum.getMessage());
        build.setCode(codeEnum.getCode());
        return build;
    }

    //成功
    public static <T> Result<T> success(){
        return build(null,ResultCodeEnum.SUCCESS);
    }

    public static <T> Result<T> success(T data){
        return build(data,ResultCodeEnum.SUCCESS);
    }

    //失败
    public static <T> Result<T> fail(){
        return build(null,ResultCodeEnum.FAIL);
    }
    public static <T> Result<T> fail(T data){
        return build(data,ResultCodeEnum.FAIL);
    }

    public Result<T> message(String msg){
        this.setMessage(msg);
        return this;
    }

    public Result<T> code(Integer code){
        this.setCode(code);
        return this;
    }

}

接口如下:

@Api(tags = "后台登录管理")
@RestController
@RequestMapping("/admin/system/index")
public class IndexController {
    @ApiOperation("登录接口")
    @PostMapping("/login")
    public Result login(){
        Map<String,Object> map=new HashMap<>();
        map.put("token","admin-token");
        return Result.success(map);
    }

    @GetMapping("info")
    public Result info() {
        Map<String, Object> map = new HashMap<>();
        map.put("roles","[admin]");
        map.put("name","admin");
        map.put("avatar","https://oss.aliyuncs.com/aliyun_id_photo_bucket/default_handsome.jpg");
        return Result.success(map);
    }

    @PostMapping("logout")
    public Result logout(){
        return Result.success();
    }
}

3.2.3、修改请求路径和返回状态码拦截

修改状态码拦截器

element ui admin,vue.js,javascript,前端,Powered by 金山文档

从这可以看到,只有返回状态码为20000才能登录进去,但我们的统一结果封装类中200为成功,所以我们可以修改前端状态码拦截。

在src/utils/request.js中进行修改

element ui admin,vue.js,javascript,前端,Powered by 金山文档

此时我修改的状态码为200,即状态码为200时即可登录进系统!!

修改登录请求路径

element ui admin,vue.js,javascript,前端,Powered by 金山文档

上面我们配置的反向代理只解决了url前面的部分,但后面的还没解决,此时需要修改src/api/user.js文件

element ui admin,vue.js,javascript,前端,Powered by 金山文档

将url修改为我们后端接口就行,修改后如下:

element ui admin,vue.js,javascript,前端,Powered by 金山文档

启动后端项目和前端,登录试试!!

element ui admin,vue.js,javascript,前端,Powered by 金山文档
element ui admin,vue.js,javascript,前端,Powered by 金山文档
element ui admin,vue.js,javascript,前端,Powered by 金山文档

此时登录成功!!!

3.3、页面修改

3.3.1、设置页面路由

在src/router/index.js中重新定义constantRoutes

element ui admin,vue.js,javascript,前端,Powered by 金山文档

3.3.2、在api文件夹创建js文件(此处为sysRole.js),定义接口信息

element ui admin,vue.js,javascript,前端,Powered by 金山文档

3.3.3、在views文件夹中创建页面,在页面引入定义接口js文件,调用接口通过axios实现功能

参照上面引入的页面创建相应的文件夹及页面(后缀名为vue)

element ui admin,vue.js,javascript,前端,Powered by 金山文档

在list页面中初始化页面

element ui admin,vue.js,javascript,前端,Powered by 金山文档

此时就可以自己构建我们的系统啦啦啦~~~~~~~~~~文章来源地址https://www.toymoban.com/news/detail-765135.html

到了这里,关于vue-element-admin 快速构建后台系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue-element-admin入门

    这里下载的是基础模板,要下载完整版的可以去官网下载 运行项目的过程中可能会报错Error: error:0308010C:digital envelope routines::unsupported,如何解决可以这篇文章 https://blog.csdn.net/2301_76809965/article/details/130456851 如果我们安装的是基础模板,我们运行打开项目后应该是这个样子 m

    2024年02月02日
    浏览(29)
  • vue-element-admin的接口请求

    以退出登录接口为例 封装request.js:添加请求拦截器和响应拦截器 封装permission.js:添加路由导航守卫 在src/api/user.js中写接口 在store中写退出登录逻辑 在vue页面中调用登录接口 请求拦截器:做一些发送请求前的操作,比如说在请求头上携带token,处理一些错误 响应拦截器:处

    2024年02月16日
    浏览(22)
  • 【Vue-Element-Admin】table添加自定义索引

    通过给 type=index 的列传入 index 属性,可以自定义索引。该属性传入数字时,将作为索引的起始值。也可以传入一个方法,它提供当前行的行号(从 0 开始)作为参数,返回值将作为索引展示。

    2024年02月05日
    浏览(31)
  • 虚拟机Ubuntu下运行vue-element-admin项目

    首先附上vue-element-admin项目的相关介绍链接 介绍 | vue-element-admin (gitee.io) 一.环境搭建 1.安装nodejs 安装完成后,查看对应的版本号 没有问题,会输出对应版本号,我这里是10.19.0 2.安装npm 安装完成查看对应的版本号,确认OK 我这里是版本是6.14.4 3.安装Vue 同样查看一下版本号确

    2024年02月07日
    浏览(15)
  • Vue-Element-Admin项目学习笔记(6)Vuex状态管理

    前情回顾: vue-element-admin项目学习笔记(1)安装、配置、启动项目 vue-element-admin项目学习笔记(2)main.js 文件分析 vue-element-admin项目学习笔记(3)路由分析一:静态路由 vue-element-admin项目学习笔记(4)路由分析二:动态路由及permission.js vue-element-admin项目学习笔记(5)路由分析

    2024年02月09日
    浏览(18)
  • 6. vue-element-admin 二次开发避坑指南

    上一篇博文,我们分享了vue-element-admin二次开发的改造优化技巧,这篇博文汇总 vue-element-admin 二次开发可能遇到的坑。 1.1.1 切换标签时未保存页面的操作内容 有时候会发现一个神奇的现象,当打开多个tab标签,然后当修改某个标签页面内容,再次切换标签页面的时候,会发

    2024年02月10日
    浏览(11)
  • 安装运行vue-element-admin的报错问题-解决办法

    官网安装链接如下: https://panjiachen.gitee.io/vue-element-admin-site/zh/guide/#%E5%AE%89%E8%A3%85 我遇到的报错主要在以下阶段: 按上方安装链接里git clone后npm install无法安装 npm install完成后无法启动,即npm run dev失败 后经查找网上各种资料,于 2022.11.20 完成安装并成功运行。 下面将分这两

    2023年04月23日
    浏览(35)
  • Vue-element-admin项目中完全移除ES lint

    由于不需要用到eslint,因此需要完全移除此插件,过程如下: 在项目根目录下,执行以下命令,卸载与 ESLint 相关的依赖包: npm uninstall @vue/cli-plugin-eslint lint-staged husky eslint babel-eslint eslint-config-standard eslint-friendly-formatter eslint-loader eslint-plugin-html eslint-plugin-promise eslint-plugin-s

    2024年02月07日
    浏览(17)
  • 课程13:vue-element-admin安装与移除实例代码

    本文是《.Net Core从零学习搭建权限管理系统》教程专栏的课程(点击

    2024年02月08日
    浏览(17)
  • 【Vue-Element-Admin】导出el-table全部数据

    因为el-table实现了分页查询,所以想要实现el-table需要重新编写一个查询全部数据的方法 listQuery:

    2024年02月09日
    浏览(20)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包