vue2+element基础架子2.0

本文详细介绍了如何使用Vue2和ElementUI构建一个具有模块化路由的项目,包括目录结构、路由配置、布局组件以及菜单设计,提供了实际代码示例和GitHub链接。
摘要由CSDN通过智能技术生成

 前言

449754f654477cc5422c3ed8f701d4f4.png

 大家好 今天对vue2+element ui架子做一个讲解

 目录结构

d38e08ba96bada69e88169e2af9fc65c.png

1546c2fbcc36e1c6b9abfed6df3fe686.png

 路由部分

51267ba352e46343816ee42e3620486d.png

  index.js

07860143c19108243b56f872c7965926.png

import Vue from 'vue'
import VueRouter from 'vue-router'
import Layout from "@/views/layout/index.vue"
import Login from "@/views/login/login.vue"
import Home from "@/views/home/Home.vue"
const Product=()=>import('@/views/product/index.vue')
const List=()=>import('@/views/product/list/index.vue')
const Category=()=>import('@/views/product/category/index.vue')




const Order=()=>import('@/views/order/index.vue')
const OrderList=()=>import('@/views/order/list/index.vue')
const OrderCollect=()=>import('@/views/order/collect/index.vue')




const Advent=()=>import('@/views/advent/index.vue')
const AdventList=()=>import('@/views/advent/list/index.vue')
Vue.use(VueRouter)




const routes = [
  {
    path: '/',
    name: 'layout',
    component: Layout,
    children: [{
      path: '/',
      name: 'home',
      component: Home,
    },{
      path: '/product',
      name: 'home',
      component: Product,
      children:[{
        path: 'list',
        name: 'list',
        component: List,
      },{
        path: 'category',
        name: 'category',
        component: Category,
      }]
    },{
      path: '/order',
      name: 'order',
      component: Order,
      children:[{
        path: 'orderlist',
        name: 'orderlist',
        component: OrderList,
      },{
        path: 'collect',
        name: 'collect',
        component: OrderCollect,
      }]
    },{
      path: '/advent',
      name: 'advent',
      component: Advent,
      children:[{
        path: 'adventlist',
        name: 'adventlist',
        component: AdventList,
      }]
    }]
  },
  {
    path: '/login',
    name: 'login',
    component: Login
  }
]


const router = new VueRouter({
  mode: 'history',
  base: process.env.BASE_URL,
  routes
})




export default router

 layout部分

1e4cdac3a7767efda209e688ae1cb921.png

<template>
  <div class="layout">
    <div class="menu">
        <Menu :isCollapse="isCollapse"></Menu>
    </div>
     <div class="content" :class="{small:isCollapse}">
       <Content @changeShow="changeShow" :isCollapse="isCollapse"></Content>
    </div>
  </div>
</template>
<script>
import Menu from "./menu/index.vue";
import Content from "./content/index.vue";




export default {
  name: "Layout",
  components: {
    Menu,
    Content,
  },
  data() {
    return {
        isCollapse:false
    };
  },
  mounted() {},
  methods: {
    changeShow(){
        console.log(2222)
        this.isCollapse=!this.isCollapse
    }
  },
};
</script>
<style lang="less" scoped>
    .layout{
        .menu{
            // width: 200px;
            background: #888;
            position: fixed;
            left: 0;
            top: 0;
            bottom: 0;
        }
        .content{
            padding-left: 200px;
        }
        .small{
            padding-left: 64px;
        }
    }
</style>

 menu

fde024fc901c4f944b3afe1a65315271.png

<template>
  <div>
    <el-menu
      :default-active="$route.path"
      class="el-menu-vertical-demo"
      background-color="#112f50"
      text-color="#fff"
      active-text-color="#ffd04b"
      router
      :collapse="isCollapse"
    >
      <el-menu-item>
        <span slot="title">歌谣采购管理系统</span>
      </el-menu-item>
      <el-menu-item index="/">
        <i class="el-icon-menu"></i>
        <span slot="title">首页</span>
      </el-menu-item>
      <el-submenu index="/product">
        <template slot="title">
          <i class="el-icon-location"></i>
          <span slot="title">产品管理</span>
        </template>
        <el-menu-group>
          <el-menu-item index="/product/list">
            <i class="el-icon-setting"></i>
            <span slot="title">产品列表</span>
          </el-menu-item>
          <el-menu-item index="/product/category">
            <i class="el-icon-setting"></i>
            <span slot="title">产品分类</span>
          </el-menu-item>
        </el-menu-group>
      </el-submenu>
      <el-submenu index="/order">
        <template slot="title">
          <i class="el-icon-location"></i>
          <span slot="title">订单管理</span>
        </template>
        <el-menu-group>
          <el-menu-item index="/order/orderlist">
            <i class="el-icon-setting"></i>
            <span slot="title">订单列表</span>
          </el-menu-item>
          <el-menu-item index="/order/collect">
            <i class="el-icon-setting"></i>
            <span slot="title">订单汇总</span>
          </el-menu-item>
        </el-menu-group>
      </el-submenu>
      <el-submenu index="/advent">
        <template slot="title">
          <i class="el-icon-location"></i>
          <span slot="title">广告管理</span>
        </template>
        <el-menu-group>
          <el-menu-item index="/advent/adventlist">
            <i class="el-icon-setting"></i>
            <span slot="title">广告列表</span>
          </el-menu-item>
        </el-menu-group>
      </el-submenu>
    </el-menu>
  </div>
</template>
<script>
export default {
  name: "Menu",
  props: ["isCollapse"],
  data() {
    return {};
  },
  mounted() {},
  methods: {},
};
</script>
<style lang="less" scoped>
.el-menu {
  border-right: 0;
  /deep/ .is-active {
    background-color: pink !important;
    color: #fff !important;
  }
}
.el-menu-vertical-demo:not(.el-menu--collapse) {
  width: 200px;
  min-height: 400px;
}
</style>

 菜单页面

b9faa75db96eb9080f2ffd04fc6eb72c.png

<template>
    <div>
        列表
    </div>
</template>




<script>
export default {
    name: 'ProductList',




    data() {
        return {
            
        };
    },




    mounted() {
        
    },




    methods: {
        
    },
};
</script>




<style lang="scss" scoped>
</style>

 运行结果

1864fd6da5b21f52a603d236eb013c20.png

17309f901cf0fe800d7c712e5b6ad415.png

github地址

38cb6a4586bfbe3f05a9100162eb9fe0.png

https://github.com/geyaoisnice/GeyaoV2BuySystem

outside_default.png

点击上方蓝字关注我们

outside_default.png

9d605dae9a0bf382d7018dac7c8da687.png

d3faadcbf4ed8d0682068e65ac53aff3.gif

下方查看历史文章

cdd6bc1ccb0bfb38237c315900dc407c.png

springboot+mybatis+vue3实现前后端管理系统

springboot+mybatis+vue3实现前后端管理系统

MongoDB之node操作实现数据库增删改查

vue2-element组件封装el-button-groups

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值