Vue电商管理系统-主页

  1. 写页面整体布局,并将container高度设置为100%
  <el-container class="container">
    <el-header>Header
      <el-button type="info" @click="logout">退出</el-button>
    </el-header>
    <el-container>
      <el-aside width="200px">Aside</el-aside>
      <el-main>Main</el-main>
    </el-container>
  </el-container>

在这里插入图片描述

  1. 将header中的布局设置为弹性布局,代码如下
  .el-header {
    background-color: #3a8ee6;
    display: flex;
    justify-content: space-between;
    align-items: center;
  }

justify-content属性如下
在这里插入图片描述

flex-start(默认值):左对齐
flex-end:右对齐
center: 居中
space-between:两端对齐,项目之间的间隔都相等。
space-around:每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。

align-items属性如下
在这里插入图片描述

flex-start:交叉轴的起点对齐。
flex-end:交叉轴的终点对齐。
center:交叉轴的中点对齐。
baseline:项目的第一行文字的基线对齐。
stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。

  1. 菜单栏布局
    el-menu:菜单标签
    el-submenu: 一级菜单 通过template引入图标和文本
    el-menu-item:二级菜单 同样通过template引入图标和文本
          <el-menu
            default-active="2"
            class="el-menu-vertical-demo">
<!--            一级菜单-->
            <el-submenu index="1">
              <template slot="title">
<!--                图标-->
                <i class="el-icon-location"></i>
<!--                文本-->
                <span>导航一</span>
              </template>
              <el-menu-item>
                <template slot="title">
                  <!--                图标-->
                  <i class="el-icon-location"></i>
                  <!--                文本-->
                  <span>导航一</span>
                </template>
              </el-menu-item>
            </el-submenu>
          </el-menu>
  1. axios配置拦截器
    为请求头添加Authorization字段,并将Authorization字段的属性设置成sessionStorage中存放的token值。
axios.interceptors.request.use(config => {
  config.headers.Authorization = window.sessionStorage.getItem('token')
  return config
})
  1. 获取菜单栏的值
    data中定义一个menulist存储得到的菜单数据,methods中定义一个getMenuList()函数如下,在created中调用getMenuList()函数,并将icon图标与item的id一一对应,实现菜单栏和图标的对应。
async getMenuList() {
  const {data: res} = await this.$http.get('menus')
  if (res.meta.status !== 200) return this.$message.error(res.meta.msg)
  this.menulist = res.data
}

在菜单组件中添加:index属性(取id值,只能为字符串的形式,因此要+‘’):v-for属性(要遍历的数组) :key属性(id值)

<el-submenu :index="item.id+''"  v-for="item in menulist" :key="item.id">
<el-menu-item :index="subItem.id+''" v-for="subItem in item.children" :key="subItem.id">
  1. 菜单栏的unique-opened属性设置为true,保证每次只能展开一个菜单栏
  2. 侧边栏折叠与展开
    data中新增一个值isCollapse,默认值为false,并将el-menu的:collapse属性设置绑定isCollapse,methods中新增函数toggleCollapse,代码如下,绑定toggle-button的点击事件为toggleCollapse
toggleCollapse(){
  this.isCollapse = !this.isCollapse
}

将el-menu的:collapse-transition属性设置为false,取消默认侧边栏折叠动画。
将el-aside的宽度值设置为动态赋值

<el-aside :width="isCollapse ? '64px' : '200px'">
  1. 主窗口重定向
    新建Welcome组件,route中添加home的子路由/welcome,并添加默认重定向到/welcome,在Home组件中的el-main标签下添加路由占位符<router-view></router-view>
    访问home网址时,主窗口默认跳转到welcome页面,url也会变为welcome
  {
    path: '/home',
    component: Home,
    redirect: '/welcome',
    children:[
      {
        path: '/welcome',
        component:Welcome
      }
    ]
  }
  1. 主窗口重定向侧边栏路由改造
    element-ui可以通过为整个侧边栏开启路由模式来实现点击不同菜单时跳转到不同的界面
    el-menu中添加router属性,相当于:router=“true”,代表为每一个菜单添加了一个路由,跳转到的页面地址就是el-menu-item 中设置的index值,将原来的subItem.path修改为"’/’+subItem.path"就可以跳转到不同的页面了
  • 10
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 16
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 16
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值