登陆:
- src\views\user\Login.vue 页面中点击、验证账号密码
- 访问src\store\modules\user.js/Login
- 访问src\layouts\UserLayout.vue
- 访问src\api\login.js/login并记录token
- 访问src\mock\services\auth.js/login,返回用户信息
mock是伪后台,现在改成了自己的后台 - src\views\user\Login.vue跳转push /
- src\mock\services\user.js:475 相当于访问/api/user/nav获取路由
用户定义:src\store\modules\user.js
登录页外层布局:src\layouts\UserLayout.vue
个人信息:
src\permission.js调用GetInfo
src\store\modules\user.js调用getInfo
src\api\login.js调用UserInfo 其中:token: storage.get(ACCESS_TOKEN)
src\mock\services\user.js返回用户信息,包括权限
动态路由:
src\router\generator-routers.js调用getCurrentUserNav
src\mock\services\user.js根据token返回路由表
主路由:
src\config\router.config.js 不是
src\router\generator-routers.js
默认首页:src\router\generator-routers.js L76
右上角的用户菜单
src\components\GlobalHeader\RightContent.vue
增加浏览器本地变量
src\store\mutation-types.js
import storage from ‘store’
import { NAME } from ‘@/store/mutation-types’
storage.set(NAME, result.name)
storage.get(NAME)
storage.remove(NAME)
左上角的大logo
src\layouts\BasicLayout.vue 25 65
加载页面:
public\index.html
mock设置(proxy)
vue.config.js
src\main.js
弹窗
this.$message.success(‘复制完毕’)
ICON
src\components\IconSelector\icons.js
<a-icon class="item-icon" type="alipay-circle"></a-icon>
.item-icon {
font-size: 24px;
color: rgba(0, 0, 0, 0.2);
margin-left: 16px;
vertical-align: middle;
cursor: pointer;
transition: color 0.3s;
&:hover {
color: #1890ff;
}
}