JavaWeb——Vue组件库Element(4/6):案例:基本页面布局(基本框架、页面布局、CSS样式、完善布局、效果展示,含完整代码)
目录
步骤
基本页面布局
基本框架
页面布局
CSS样式
完善布局
效果展示
完整代码
Element 的基本使用方式以及常见的组件已经了解完了,接下来要完成一个案例,通过这个案例让大家知道如何基于 Element 中的各个组件制作一个完整的页面。
案例:根据页面原型完成员工管理页面开发,并通过Axios完成数据异步加载。
页面列表中的数据不是写死的,而是要基于 Axios 发送请求动态加载展示的,提供了服务端数据获取的地址,即 YAPI Pro平台提供的 MOCK 地址,访问后返回 JSON 格式的数据,需要将其渲染展示在列表页面中,最终制作出来的页面分为三个部分,上面是页头部分,下面分为左侧菜单栏和右侧主展示区域。
MOCK地址:https://yapi.pro/mock/401965/user/getById
该地址来源于互联网,如有侵权请联系删除。
制作页面的思路是从全局到细节推进,具体操作步骤如下:
步骤
- 创建页面,完成页面的整体布局规划
- 布局中各个部分的组件实现
- 列表数据的异步加载,并渲染展示
基本页面布局
接下来着手开发页面,先创建一个页面并完成整体布局规划。
基本框架
打开 VS Code,在“View”目录下创建“tlias”目录,在该目录下创建“EmpView.vue”组件,组件包含“templates”(定义 HTML 页面模板,先定义根标签 div)、“script”(定义 view 中的数据模型和方法,即编写 JS 文件)、“style”(定义 CSS 样式代码)。
完成基本框架:
创建好组件后,在浏览器中访问,由于在 main.js 入口文件中引用的是之前的组件,现在要开发新的员工管理组件,所以在App.vue组件中将之前的引用注释掉
定义新的“emp-view”标签,访问项目时即为“emp-view”组件,但此时组件内无内容。
页面布局
接下来编写页面布局,页面布局分为三个部分,可使用 Element 提供的布局组件,其中有“el_container”(外层容器)、“el_header”(顶栏容器)、“el_aside”(侧边栏容器)、“el_main”(主要区域容器)、“el_footer”(底栏容器)。
找到所需页面布局,点击显示代码将布局拷贝过来粘贴在 div 区域,由于未加样式和组件,页面无效果。
CSS样式
接着加入 CSS 样式,在外层布局容器“el_container”中通过 style 设置样式,指定容器高度和边框,将设置高度为 700,将顶栏替换为项目标题“tlias智能学习辅助系统”,设置字体大小为 40 像素,再设置顶栏背景颜色。(都可在官网参考)
完善布局
准备好顶栏结构后,准备侧边栏菜单,参照实例将菜单复制到“el_aside”区域,只保留需要的“选项一”和“选项二”,并修改菜单名字为“系统信息管理”、“部门管理”、“员工管理”。
然后制作右侧主展示区域,参考 Element 官网实例将表格内容复制到“el_main”区域,调整表格列名,
将资料中准备好的表格列内容复制过来,在表格渲染时要展示“data”数据模型,定义一个数组“tableData”。
效果展示
最后打开浏览器确认,页面最上面是页头部分,左侧是菜单,右侧是表格,基本网页布局完成。
完整代码
EmpView.vue
<template><div><el-container style="height: 700px; border: 1px solid #eee"><el-header style="font-size: 40px; background-color: rgb(238, 241, 246)"> tlias 智能学习辅助系统</el-header><el-container><el-aside width="200px"><el-menu :default-openeds="['1', '3']"><el-submenu index="1" style="background-color: rgb(215, 215, 215)"><template slot="title"><i class="el-icon-message"></i>系统信息管理 >></template><el-menu-item index="1-1">部门管理</el-menu-item><el-menu-item index="1-2">员工管理</el-menu-item></el-submenu></el-menu></el-aside><el-main><!-- 表单 --><el-form :inline="true" :model="searchForm" class="demo-form-inline"><el-form-item label="姓名"><el-input v-model="searchForm.name" placeholder="姓名"></el-input></el-form-item><el-form-item label="性别"><el-select v-model="searchForm.gender" placeholder="性别"><el-option label="男" value="1"></el-option><el-option label="女" value="2"></el-option></el-select></el-form-item><el-form-item><el-button type="primary" @click="onSubmit">查询</el-button></el-form-item></el-form><!-- 表格 --><el-table :data="tableData"><el-table-column prop="name" label="姓名" width="180"></el-table-column><el-table-column prop="image" label="图像" width="180"></el-table-column><el-table-column prop="gender" label="性别" width="140"></el-table-column><el-table-column prop="job" label="职位" width="140"></el-table-column><el-table-column prop="entryDate" label="入职日期" width="180"></el-table-column><el-table-column prop="updateTime" label="最后操作时间" width="230"></el-table-column><el-table-column label="操作"><el-button type="primary" size="mini">编辑</el-button><el-button type="danger" size="mini">删除</el-button></el-table-column></el-table></el-main></el-container></el-container></div>
</template><script>
export default {data() {return {tableData:[],};},
};
</script><style> </style>
END
学习自:黑马程序员——JavaWeb课程