目录
概述
Form表单
Table表格
Pagination 分页
效果展示
完整代码
概述
在刚才制作出来的页面当中,上面项目的名称已制作好,左侧的菜单栏也已配置好。
接下来主要处理的是右侧主展示区域当中的组件编写。
在右侧的主展示区域,主要有 3 个组件。上方有一个表单组件,这个表单用来收集用户输入的查询条件。中间一块是一个表格,表格的下面是有一个分页条。
所以接下来,我们需要在表格的上面增加一个 Form 表单,在表格的下面增加一个分页条。而这个表单是在一行当中展示的。接下来,我们就参照 Element 所提供的组件进行改造。
Form表单
先打开 VS Code,看一下表单应放在哪个位置。
主展示区域是这个 el-main,这里已有一个 el-table 表格。刚才提到,在表格的上方应该有一个表单,所以应在这个表格的上方增加一个 Form 表单。我们打开 Element 的官网,找到表单的源代码拿来改造。
之前提到过,行内表单是指将表单项放在一行当中展示,这正是我们需要的。此时直接点击显示代码,将里面的代码用 Ctrl+C 复制,在相应位置 Ctrl+V 粘贴过来,对格式稍微做规整即可。
复制过来的这个表单当中只有两个表单项和一个查询按钮,表单中的表单项数据绑定到一个数据模型叫做 formInline 当中,这个名字可读性不强,我们改造为 searchForm,所有表单项都绑定到 searchForm 这个对象当中。
上面通过 v-model 绑定了数据模型,这个数据模型必须在下面声明,它是一个对象,里面两个属性,一个是 name,一个是 gender。所以在下面,在数据模型当中定义这个对象,对象使用大括号,一个是 name 代表姓名,一个是 gender 代表性别。这样数据模型就定义好了。
然后再往上看,下面点击查询时会触发一个方法 onSubmit,接下来在下面定义一个 view 当中的方法 methods,在 methods 当中定义一个方法 onSubmit,点击提交时会触发这个方法,在这个方法中可以直接 alert 一个提示信息,代表要查询数据了。Form 表单的基本结构就准备好了。
接下来打开浏览器看效果,有两个表单项,一个姓名一个性别,性别是下拉框,有男有女。
接下来,表单中除了姓名性别,还有一个入职日期。这个表单项是入职日期,其体现形式不是输入框,而是日期选择器,这里不能再使用简单的 el-form,需要使用日期选择器。
还要绑定属性值:
这样,上面的表单就完善好了
Table表格
中间的表格部分,我们之前已制作好,可以再为表格加上一个边框,使其看起来更好看,在Table当中增加一个属性 border 即可。
Pagination 分页
接下来,在表格的下面增加一个分页条,在这个位置增加一个分页条,分页条之前用到过,可以直接将之前制作的分页条的内容用 Ctrl+C、Ctrl+V 复制过来,
里面还有两个方法需要复制过来,一个是 handleSizeChange,一个是 handleCurrentChange,直接复制过来,在最下面粘贴即可。
效果展示
接下来再次打开浏览器,会看到上面的表单、中间的表格以及下面的分页条已经展示出来。
表格和分页条之间比较拥挤,可以在中间加上一个简单的换行解决这个问题。
由于当前表格中没有数据,所以会展示在一起,等将数据动态加载返回后,就不会存在这个问题了。这就是第二步操作,完成各个部分的组件实现。
完整代码
项目内部文件: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-item label="入职日期"><el-date-pickerv-model="searchForm.entryDate"type="daterange"range-separator="至"start-placeholder="开始日期"end-placeholder="结束日期"></el-date-picker></el-form-item></el-form><!-- 表格 --><el-table :data="tableData" border><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><br /><!-- 分页条 --><el-paginationbackgroundlayout="total,sizes,prev, pager, next,jumper"@size-change="handleSizeChange"@current-change="handleCurrentChange":total="1000"></el-pagination></el-main></el-container></el-container></div>
</template><script>
export default {data() {return {tableData: [],searchForm: {name: "",gender: "",entryDate: [],},};},methods: {onSubmit: function () {alert("查询数据");},handleSizeChange(val) {console.log(`每页 ${val} 条`);},handleCurrentChange(val) {console.log(`当前页: ${val}`);},},
};
</script><style>
</style>
END
学习自:黑马程序员——JavaWeb课程