上一章我们已经把这个项目跑起来了。但是你点击登录按钮(用户名密码随便填),是不能登录的。点击键盘的F12按键,弹出谷歌浏览器的网页调试窗口。我们可以看到一个post错误,url连接是http://localhost:8088/user/login。由于作者的这个项目是前后端分离的,前端是vue项目,后端是java项目。但是后端我们是没有部署的。幸好vue项目是可以不需要后端就可以独立跑起来的。好了,下面我们进行一些改造,把后端的调用进行修改,方便前端的页面能正常运行。
这是所有页面请求的js脚本,类似ajax。当然登录的请求也在这里。原来这个项目是前后分离的,由于我们没有部署后端,需要对这些ajax请求进行改造,改造成不对后端发请求了,直接在前端返回需要的报文。
下面的代码是改造后的代码,那些ajax请求的函数已经被我屏蔽了。
import Axios from '../libs/AxiosPlugin'
// 接口地址
const BASE_PATH = process.env.API_URL
// 用户登录
//export const login = params => { return Axios.post(`${BASE_PATH}/user/login`, params).then(res => res.data); };
export const login = function (params) {
return new Promise((resolve, reject) => {
var res = {
'code': 200,
'message': '',
'data': {
'token': 'JWT aaaaaaaaaa',
'uid': '1',
'username': 'admin',
'meuns': [
{
'icon': 'el-icon-setting',
'index': '/home',
'title': '首页'
},
{
'icon': 'el-icon-menu',
'index': '2',
'title': '用户管理',
'subs': [
{
'index': '/users',
'title': '用户列表'
},
{
'index': '/user/info',
'title': '用户信息'
}
]
}
],
'routers': '/home_/users_/user/info'
}
}
resolve(res);
});
}
// 获取用户列表
//export const getUserList = params => { return Axios.get(`${BASE_PATH}/user/list`, { params: params }).then(res => res.data); };
export const getUserList = function (params) {
return new Promise((resolve, reject) => {
var res = {
'code': 200,
'message': '',
'data': {
'currentPage': 1,
'total': 19,
'pageSize': 20,
'list': [
{'id': '1', 'name': '王小虎1', 'address': '上海市普陀区金沙江路 1518 弄', 'date': '2016-05-02'},
{'id': '2', 'name': '王小虎2', 'address': '上海市普陀区金沙江路 1518 弄', 'date': '2016-05-02'},
{'id': '3', 'name': '王小虎3', 'address': '上海市普陀区金沙江路 1518 弄', 'date': '2016-05-02'},
{'id': '4', 'name': '王小虎4', 'address': '上海市普陀区金沙江路 1518 弄', 'date': '2016-05-02'},
{'id': '5', 'name': '王小虎5', 'address': '上海市普陀区金沙江路 1518 弄', 'date': '2016-05-02'},
{'id': '6', 'name': '王小虎6', 'address': '上海市普陀区金沙江路 1518 弄', 'date': '2016-05-02'},
{'id': '7', 'name': '王小虎7', 'address': '上海市普陀区金沙江路 1518 弄', 'date': '2016-05-02'},
{'id': '8', 'name': '王小虎8', 'address': '上海市普陀区金沙江路 1518 弄', 'date': '2016-05-02'},
{'id': '9', 'name': '王小虎9', 'address': '上海市普陀区金沙江路 1518 弄', 'date': '2016-05-02'},
{'id': '10', 'name': '王小虎10', 'address': '上海市普陀区金沙江路 1518 弄', 'date': '2016-05-02'}
]
}
}
resolve(res);
});
}
// 首页加载数据
//export const loadData = params => { return Axios.get(`${BASE_PATH}/home/loadData`).then(res => res.data) };
export const loadData = function (params) {
return new Promise((resolve, reject) => {
var res = {'code':200, 'data':'hello'}
resolve(res);
});
}
// 文件上传地址
export const uploadFile = `${BASE_PATH}/file/upload`;
按理说,修改完上面那个文件程序就可以运行了,但是登陆哪里有个小毛病。login.vue文件第52行。原来的代码使用了http请求的状态来判断是否连接成功。http请求的状态一般是用于http连接协议的。这里改为报文返回code进行判断。
点击登录按钮进入系统后,左边导航菜单:用户管理 – 用户列表,有个小bug需要修改,加载图层没有消失,如图。
对文件users.vue第159行进行修改,如图。
使用git命令:git clone -b v2 https://github.com/rongxr/vue-elementui.git
说明:rongxr/vue-elementui的v2分支,修复了rongxr/vue-elementui的v1分支无法登陆的bug。
1、/src/api/index.js,把请求后端的接口改造为直接返回报文,不需要部署后端程序。
2、/src/components/user/login.vue,原来是判断http状态,改造为判断报文返回的状态。
3、/src/components/user/users.vue,修复数据加载页面不消失的bug
at last。整个项目都可以跑起来,希望你按照教程也跑起来,good luck !!!接下来的几章,我会开始介绍整个项目的程序,以及vue的基础知识了。希望不要枯燥。
【Hello VUE】暴学VUE之基础篇(五)