2021搭建企业级后台(Vue + TS + Element Plus )~ 8. 页面基础布局

页面效果

在这里插入图片描述

整体布局

Container 布局容器
在这里插入图片描述

编辑 src/Layout/index.vue 文件:

<template>
  <el-container>
    <!-- 侧边栏 -->
    <el-aside width="200px">
      <app-aside />
    </el-aside>

    <!-- 版心 -->
    <el-container>

      <!-- 头部 -->
      <el-header>
        <app-header />
      </el-header>

      <!-- 内容区域 -->
      <el-main>
        <!-- 子路由出口 -->
        <router-view />
      </el-main>
    </el-container>
  </el-container>
</template>

<script lang="ts">
import Vue from 'vue'
import AppAside from './components/app-aside.vue'
import AppHeader from './components/app-header.vue'

export default Vue.extend({
  name: 'LayoutIndex',
  components: {
    AppAside,
    AppHeader
  }
})
</script>

<style lang="scss" scoped>
  .el-container {
    min-width: 980px;
    min-height: 100vh;
  }

  .el-header {
    background-color: #B3C0D1;
  }

  .el-aside {
    background-color: #545c64;
  }

  .el-main {
    background-color: #E9EEF3;
  }

</style>


侧边栏


涉及组件:

NavMenu 导航菜单


新建 src/Layout/components/app-aside.vue 文件:

<template>
  <el-menu
    default-active='role'
    background-color="#545c64"
    text-color="#fff"
    active-text-color="#ffd04b"
    router
  >
    <el-submenu index="role">
      <template slot="title">
        <i class="el-icon-location"></i>
        <span>权限管理</span>
      </template>
      <el-menu-item index="role">
        <i class="el-icon-location"></i>
        角色管理
        </el-menu-item>
      <el-menu-item index="menu">
        <i class="el-icon-location"></i>
        菜单管理
        </el-menu-item>
      <el-menu-item index="resource">
        <i class="el-icon-location"></i>
        资源管理
      </el-menu-item>
    </el-submenu>
    <el-menu-item index="course">
      <i class="el-icon-menu"></i>
      <span slot="title">课程管理</span>
    </el-menu-item>
    <el-menu-item index="user">
      <i class="el-icon-setting"></i>
      <span slot="title">用户管理</span>
    </el-menu-item>
    <el-submenu index="advert">
      <template slot="title">
        <i class="el-icon-location"></i>
        <span>广告管理</span>
      </template>
      <el-menu-item index="advert">
        <i class="el-icon-location"></i>
        广告列表
      </el-menu-item>
      <el-menu-item index="advert-space">
        <i class="el-icon-location"></i>
        广告位管理
      </el-menu-item>
    </el-submenu>
  </el-menu>
</template>

<script lang="ts">
import Vue from 'vue'

export default Vue.extend({
  name: 'AppAsideIndex'
})
</script>

<style lang="scss" scoped>
.el-container {
  .el-aside {
    width: 200px;
    min-height: 100vh;

    .el-submenu {
      width: 200px;
    }

    .el-menu-item {
      width: 200px;
    }
  }
}

</style>


头部


涉及组件:

Dropdown 下拉菜单
Avatar 头像(Element Plus)


新建 src/Layout/components/app-header.vue 文件:

<template>
<div class="app-header">
  <el-breadcrumb separator="/">
    <el-breadcrumb-item :to="{ path: '/' }">首页</el-breadcrumb-item>
    <el-breadcrumb-item>活动管理</el-breadcrumb-item>
    <el-breadcrumb-item>活动列表</el-breadcrumb-item>
    <el-breadcrumb-item>活动详情</el-breadcrumb-item>
  </el-breadcrumb>
  <el-dropdown>
  <span class="el-dropdown-link">
    <!-- 头像 -->
    <el-avatar
      shape="square"
      :size="40"
      src="https://cube.elemecdn.com/9/c2/f0ee8a3c7c9638a54940382568c9dpng.png">
    </el-avatar>
    <i class="el-icon-arrow-down el-icon--right"></i>
  </span>
  <!-- 下拉菜单 -->
  <el-dropdown-menu slot="dropdown">
    <el-dropdown-item>用户 ID</el-dropdown-item>
    <el-dropdown-item divided>退出</el-dropdown-item>
  </el-dropdown-menu>
</el-dropdown>
</div>

</template>

<script lang="ts">
import Vue from 'vue'

export default Vue.extend({
  name: 'AppHeaderIndex'
})
</script>

<style lang="scss" scoped>
.app-header {
  height: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;

    // 头像
    .el-dropdown-link {
      display: flex;
      align-items: center;
    }
}
</style>


效果展示

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
搭建一个vue3 ts pinia element-plus后台管理系统框架,可以按照以下步骤进行: 1. 安装Node.js和Vue CLI Vue CLI是用于创建和管理Vue项目的官方工具,需要先安装Node.js和Vue CLI。 2. 创建基于Vue3和TypeScript的项目 使用Vue CLI创建一个基于Vue3和TypeScript的项目,输入以下命令: ``` vue create my-project --preset=@vue/cli-plugin-typescript ``` 3. 安装Pinia Pinia是一个Vue 3状态管理库,可以用于管理应用程序的状态。在项目中安装Pinia,输入以下命令: ``` npm install pinia ``` 4. 安装Element Plus Element Plus是一个基于Vue.js 3的UI库,可用于构建后台管理系统。在项目中安装Element Plus,输入以下命令: ``` npm install element-plus ``` 5. 创建页面和组件 根据项目需求,创建页面和组件。 6. 配置Pinia 在main.ts中引入Pinia,并在创建Vue实例时使用它。示例代码如下: ```typescript import { createApp } from 'vue' import App from './App.vue' import { createPinia } from 'pinia' const app = createApp(App) app.use(createPinia()) app.mount('#app') ``` 7. 配置Element Plus 在main.ts中引入Element Plus,并在创建Vue实例时使用它。示例代码如下: ```typescript import { createApp } from 'vue' import App from './App.vue' import ElementPlus from 'element-plus' import 'element-plus/lib/theme-chalk/index.css' const app = createApp(App) app.use(ElementPlus) app.mount('#app') ``` 8. 编写页面和组件 使用Vue3和TypeScript编写页面和组件。 9. 运行项目 运行项目,输入以下命令: ``` npm run serve ``` 以上就是搭建一个vue3 ts pinia element-plus后台管理系统框架的步骤。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

后海 0_o

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值