在之前我们实现了注册登录功能,接下来就是管理平台侧面菜单栏以及平台首页的实现。

在实现功能之前,还是需要先整理一下实现的思路。

个人中心:目标(将用户信息存储到vuex中)

实现步骤:1、定义一个接口方法,用于请求用户信息

2、使用接口方法+actions获取用户的基本信息

3、在全局前置守卫, 做判断, 有token但是无userInfo信息, 才发请求拿用户信息

4、渲染用户信息

定义接口方法:

// 获取个人信息
export const userInfo = () => request({url: '/my/userinfo'
//没有添加请求拦截的时候,需要在这里带上请求头信息,如果在请求拦截里统一封装了请求头这里就不需要再次书写了// headers: {//   Authorization: store.state.token// }
})

使用接口方法:

import Vue from 'vue'
import Vuex from 'vuex'
import createPersistedState from 'vuex-persistedstate'
import { userInfo } from '@/api/index'
Vue.use(Vuex)export default new Vuex.Store({state: {// 保存token字符串token: '',// 保存用户信息userInfo: {}// 保存菜单信息// menu: {}},getters: {// 定义并导出用户名和昵称nickname: state => state.userInfo.nickname,username: state => state.userInfo.username,user_pic: state => state.userInfo.user_pic},mutations: {// 存储token的方法updateToken (state, val) {state.token = val}},actions: {// 定义初始化用户基本信息的action函数async initUserInfo (store) {const { data: res } = await userInfo()if (res.code === 0) {store.commit('updateUserInfo', res.data)}}},modules: {},plugins: [createPersistedState()]
})
// vuex-persistedstate 对vuex内的数据进行持久化存储

全局前置守卫:

// 路由白名单
const whiteList = ['/login', 'register']
// 路由前置守卫
// next()如果强制切换路由,会再次走路由守卫再次匹配路由表
router.beforeEach((to, from, next) => {const token = store.state.token// 有token代表登录了if (token) {if (!store.state.userInfo.username) {// 有token在请求信息store.dispatch('initUserInfo')}next()} else {// 未登录,跳转到登录页if (whiteList.includes(to.path)) {next()} else {next('/login')}}
})

渲染用户信息:

<div class="user-box"><!-- 有头像信息就展示,没有就选择默认 --><img :src="user_pic" alt="" v-if="user_pic" class="img"><img class="img" src="https://img0.baidu.com/it/u=2880518663,495982857&fm=253&fmt=auto&app=138&f=JPEG?w=500&h=500" alt="" v-else><span>欢迎{{nickname || username }}</span><!-- 直接用的方法{{$store.state.userInfo.nickname}} {{$store.getters.nickname}}--></div>

实现效果:

侧面菜单栏:1、样式布局

2、封装接口请求方法

3、调用接口,铺设数据

样式布局:

 <el-aside width="200px"><!-- 侧边栏导航菜单 --><!-- // 获取路径,相应的菜单栏高亮 --><el-menu:default-active="$route.path"class="el-menu-vertical-demo"background-color="#23262e"text-color="#fff"active-text-color="#409eff"routerunique-opened></el-menu></el-aside>

封装接口请求:

// 获取侧边栏数据
export const asideData = () => request({url: '/my/menus'
})

调用接口请求并铺设数据:

调用接口:

async  getMenu () {const { data: res } = await asideData()console.log(res)// 保存菜单this.menu = res.data}

保存接口请求的菜单数据:

data () {return {menu: []}}

铺设数据:

 <!-- 需要用template包裹 --><template v-for="item in menu"><el-menu-item :index="item.indexPath" v-if="!item.children" :key="item.indexPath"><i :class="item.icon"></i>{{item.title}}</el-menu-item><el-submenu :index="item.indexPath" v-else :key="item.indexPath"><template slot="title"><i :class="item.icon"></i><span>{{item.title}}</span></template><el-menu-item :index="item1.indexPath" v-for="item1 in item.children" :key="item1.indexPath"><i :class="item1.icon"></i>{{item1.title}}</el-menu-item></el-submenu></template>

实现效果:

 

文章管理平台PC端(个人中心+侧面菜单)相关推荐

  1. 文章管理平台PC端(文章分类)

    今天实现的功能是文章分类和文章列表. 文章分类主要实现的是能够渲染分类列表,然后可以添加.删除.修改分类信息. 实现步骤:1.根据接口请求的数据将文章分类情况渲染在表格中 2.点击添加文章按钮,弹出添 ...

  2. 企业办公oa系统医药OA办公后台管理会议管理用户管理物料管理活动管理/Axure医药内部管理平台/web端后台管理系统原型/医药OA系统/权限管理

    作品介绍:企业办公oa系统&医药OA办公后台管理&会议管理&用户管理&物料管理&活动管理/Axure医药内部管理平台/web端后台管理系统原型/医药OA系统/权 ...

  3. POLYV管理平台如何修改播放器右键菜单(右键版权修改)教程

    POLYV管理平台如何修改播放器右键菜单(右键版权修改) 视频播放器可以在管理平台中自己定义右键菜单,最多可以定义显示5行信息,可以更好的让播放器与公司品牌保持一致性. 播放器设置右键菜单: 播放器页 ...

  4. 微信开放平台PC端扫码登录

    最近公司给我安排一个微信登录的功能,需求是这样的: 1.登录授权 点击二维码图标后,登录界面切换为如下样式(二维码),微信扫描二维码并授权,即可成功登录:    若当前账号未绑定微信账号,扫描后提示& ...

  5. Dubbo-Admin管理平台和Zookeeper注册中心的搭建(转)

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubb ...

  6. 《Delphi传奇》研究系列文章1:服务端控制中心(服务器网关启动器)

    提示:所有的研究心得直接写在源码注释中,对照源码看注释即可学习了解传奇的流程架构.<Delphi传奇>全部源码获取可加入Delphi开发局QQ群:32422310 <Delphi传奇 ...

  7. Qt编写物联网管理平台46-云端数据同步

    一.前言 在上一篇文章说的采集数据转发的基础上,针对方案一还做了云端数据同步功能,满足各式各样的用户需求.云端数据库同步,相当于把本地采集到的数据实时存储到云端,至于这些记录到了云端后什么用途,客户端 ...

  8. Dubbo学习总结(3)——Dubbo-Admin管理平台和Zookeeper注册中心的搭建

    ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件.它是一个为分布式应用提供一致性服务的软件,提供的功 ...

  9. PHP语言:微信开放平台PC端扫码登录

    需求: 微信扫码时每次需要弹窗确认效果. 微信开放平台 :创建网站应用,绑定公众号,用于打通公众号用户数据. 注意域名填写规范,不带协议.eg:www.xxx-test.com 页面嵌套扫码登录二维码 ...

最新文章

  1. String.format()的使用
  2. 操作系统和Linux
  3. Linux 发展历史
  4. Android实现保存图片和视频到系统相册
  5. ATAT-mcsqs- 运行后出现报错:段错误(吐核/core dumped)
  6. 苹果 WWDC22 亮点一文汇总解读
  7. 微信小程序云开发实现聊天(聊天室,一对一聊天)
  8. xlwings使用InputBox
  9. 计算机的ctrl按键,与Ctrl相关的电脑快捷键大全
  10. java 民族_java简历 五年
  11. git合并多次提交为一次提交
  12. 专题三:羊毛党络绎不绝,电商行业防不胜防
  13. 计算机网络—IP头部结构,TCP头部结构,UDP头部结构
  14. 怎样批量查询中通快运物流并分析出提前签收的单号
  15. Unity2020后PackingTag灰色,图集无法正常使用
  16. 搜狗收录查询-搜狗排名查询
  17. python快速读取大数据
  18. 大华服务器u盘做系统,#测评大玩家#大华P609双接口U盘轻松备份资料
  19. 奥的斯服务器显示spb,西子奥的斯控制板故障代码一览表
  20. 电子科技大约计算机博士读几年,成都电子科技大学的博士的毕业条件 你能做到么...

热门文章

  1. 计算机一级及wps试题,计算机等级考试一级WPS试题及答案
  2. 蓝桥杯 算法提高 输出正反三角形 (Java)
  3. java JNI调用C++代码(给出一个简单java application示例和实际java web项目过程及错误解决)(一)
  4. python图像人类检测_Python 超简单实现人类面部情绪的识别
  5. LIO-SAM源码解析(七):utility.h
  6. 三级联动第二种方法 三级联动数据.js
  7. 3G之殇:龙旗平安夜裁掉TD手机设计团队
  8. 在vista/win7上使用PB5
  9. seo需要处理页面html,详解处理Vue单页面应用SEO的另一种思路
  10. 长虹变频空调室内机电路电路分析与故障检修