赞
踩
文中使用的环境是
"name": "vue-admin-template",
"version": "3.8.0"
using npm@6.4.1
using node@v10.14.2
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
vueAdmin-template
是基于vue-element-admin
的一套后台管理系统基础模板(最少精简版),可作为模板进行二次开发。
GitHub地址:https://github.com/PanJiaChen/vue-admin-template
建议:可以在vue-admin-template
的基础上进行二次开发,把vue-element-admin
当做工具箱,想要什么功能或者组件就去vue-element-admin
那里复制过来。
准备使用这个框架做后台的前端页面。项目下载下来部署运行起来了。登陆报错如下。
登陆后台 vue-admin-template 会访问官方服务 访问超时
为了不让每次登陆时请求,官方服务。登陆成功后,把它替换成本地服务
要访问这两个接口
抓到的两个接口的响应。
{"code":20000,"data":{"token":"admin"}}
{"code":20000,"data":{"roles":["admin"],"name":"admin","avatar":"https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif"}}
思路:写一个controller访问伪造本地响应。
提供一个R.java统一响应处理模型
import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.HashMap; import java.util.Map; @Data public class R { @ApiModelProperty(value = "是否成功") private Boolean success; @ApiModelProperty(value = "返回码") private Integer code; @ApiModelProperty(value = "返回消息") private String message; @ApiModelProperty(value = "返回数据") private Map<String, Object> data = new HashMap<String, Object>(); private R(){} public static R ok(){ R r = new R(); r.setSuccess(true); r.setCode(ResultCode.SUCCESS); r.setMessage("成功"); return r; } public static R error(){ R r = new R(); r.setSuccess(false); r.setCode(ResultCode.ERROR); r.setMessage("失败"); return r; } public R success(Boolean success){ this.setSuccess(success); return this; } public R message(String message){ this.setMessage(message); return this; } public R code(Integer code){ this.setCode(code); return this; } public R data(String key, Object value){ this.data.put(key, value); return this; } public R data(Map<String, Object> map){ this.setData(map); return this; } }
添加解决**@CrossOrigin** 跨域问题,因为本地的vue-admin-template 默认服务端口:9528
跨域访问:请求协议、访问ip、端口号,三项有一个不一样 可能导致403
import com.domoyun.commonutils.R; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; @Api(description="模拟用户登陆") @RestController @RequestMapping("/eduuser") @CrossOrigin public class LoginController { {"code":2000e,"data":{"token":"admin"}} @ApiOperation("模拟登陆") @PostMapping("login") public R login(){ return R.ok().data("token","admin"); } //{"code":20000,"data":{"roles":["admin"],"name":"admin","avatar":"https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif"}} @ApiOperation(value="模拟获取信息") @GetMapping("info") public R info(){ return R.ok().data("roles", "admin") .data("name", "admin") .data("avatar", "https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif"); } }
因为运行npm run dev
的时候用的是dev环境
在项目目录下npm run dev
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。