Element-案例-脚本页面布局

这篇具有很好参考价值的文章主要介绍了Element-案例-脚本页面布局。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

案例需求:

根据页面原型完成员工管理页面开发,并通过Axios完成数据异步加载

Element-案例-脚本页面布局,Java Web学习跟踪笔记,前端

 步骤

  • 创建页面,完成页面的总体布局规划
  • 布局中各个组件的实现
  • 列表数据的异步加载,并渲染展示

1.创建页面,完成页面的总体布局规划

分析案例中的展示实例可以知道该页面的布局为header、aside、main三部分构成:在Element官网中的Container 布局容器中可找到对应的布局格式,将将代码复制即可。具体关键代码如下:

<!-- 定义HTML页面模板 -->
<template>
    <div>
        <el-container style="height: 700px; border: 1px solid #030101">
            <el-header style="font-size: 40px;background-color:rgb(238, 241, 246)">tlias智能学习辅助系统</el-header>
            <el-container>
                <el-aside width="200px" style="background-color: rgb(238, 241, 246)">
                    <el-menu :default-openeds="['1', '3']">
                        <el-submenu index="1">
                            <template slot="title"><i class="el-icon-message"></i>班级学员管理</template>
                            <el-menu-item-group>
                                <el-menu-item index="1-1">班级管理</el-menu-item>
                                <el-menu-item index="1-2">学员管理</el-menu-item>
                            </el-menu-item-group>
                        </el-submenu>
                        <el-submenu index="2">
                            <template slot="title"><i class="el-icon-message"></i>系统信息管理</template>
                            <el-menu-item-group>
                                <el-menu-item index="2-1">部门管理</el-menu-item>
                                <el-menu-item index="2-2">员工管理</el-menu-item>
                            </el-menu-item-group>
                        </el-submenu>
                        <el-submenu index="3">
                            <template slot="title"><i class="el-icon-message"></i>数据统计管理</template>
                            <el-menu-item-group>
                                <el-menu-item index="3-1">员工信息统计</el-menu-item>
                            </el-menu-item-group>
                        </el-submenu>
                    </el-menu>
                </el-aside>
                <el-main>
                    <el-table :data="tableData">
                        <el-table-column prop="name" label="姓名" width="140">
                        </el-table-column>
                        <el-table-column prop="image" label="图像" width="120">
                        </el-table-column>
                        <el-table-column prop="gender" label="性别" width="120">
                        </el-table-column>
                        <el-table-column prop="job" label="职位">
                        </el-table-column>
                        <el-table-column prop="entrydata" label="入职日期">
                        </el-table-column>
                        <el-table-column prop="updatetime" label="最后操作时间">
                        </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>

<!-- 定义Vue当中的数据模型以及方法 -->
<script>
export default {
    data() {
        return {
            tableData: [

            ]


        }
    }
}
</script>

<!-- 定义CSS样式 -->
<style></style>

具体的运行结果为:

Element-案例-脚本页面布局,Java Web学习跟踪笔记,前端

 ps:在上述代码中不太清楚<el-button>标签中type属性值所代表的具体含义

2.布局中各个组件的实现

对于组件的实现,我们首先要明确案例中的都是声明类型的组件,确定好组件的类型之后,在Element中去选择我们需要的样式即可。

注意

Vue要求所有在模板中使用的属性或方法必须在组件实例的 data 选项中进行声明或初始化。即模块中使用的属性和方法都需要在数据模型中进行设置,否则页面无法成功加载。

具体关键代码如下:(代码中的注释具有一定的参考价值)

<!-- 定义HTML页面模板 -->
<template>
    <div>
        <el-container style="height: 700px; border: 1px solid #030101">
            <el-header style="font-size: 40px;background-color:rgb(238, 241, 246)">tlias智能学习辅助系统</el-header>
            <el-container>
                <el-aside width="200px" style="background-color: rgb(238, 241, 246)">
                    <el-menu :default-openeds="['1', '3']">
                        <el-submenu index="1">
                            <template slot="title"><i class="el-icon-message"></i>班级学员管理</template>
                            <el-menu-item-group>
                                <el-menu-item index="1-1">班级管理</el-menu-item>
                                <el-menu-item index="1-2">学员管理</el-menu-item>
                            </el-menu-item-group>
                        </el-submenu>
                        <el-submenu index="2">
                            <template slot="title"><i class="el-icon-message"></i>系统信息管理</template>
                            <el-menu-item-group>
                                <el-menu-item index="2-1">部门管理</el-menu-item>
                                <el-menu-item index="2-2">员工管理</el-menu-item>
                            </el-menu-item-group>
                        </el-submenu>
                        <el-submenu index="3">
                            <template slot="title"><i class="el-icon-message"></i>数据统计管理</template>
                            <el-menu-item-group>
                                <el-menu-item index="3-1">员工信息统计</el-menu-item>
                            </el-menu-item-group>
                        </el-submenu>
                    </el-menu>
                </el-aside>
                <el-main>
                    <!-- 表单 -->
                    <!-- 整个表单帮当的数据模型为searchForm -->
                    <!-- Vue要求所有在模板中使用的属性或方法必须在组件实例的 data 选项中进行声明或初始化。 -->
                    <!-- 因此运行之前一定声明searchForm否则无法运行 -->
                    <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 label="入职日期">
                            <!-- 使用日期选择器 -->
                            <!-- 由于包含开始时间和结束时间 -->
                            <!-- 因次数据模型中entrydata为数组类型的数据 -->
                            <el-date-picker v-model="searchForm.entrydata" type="daterange" range-separator="至"
                                start-placeholder="开始日期" end-placeholder="结束日期">
                            </el-date-picker>
                        </el-form-item>
                        <el-form-item>
                            <el-button type="primary" @click="onSubmit">查询</el-button>
                        </el-form-item>
                    </el-form>
                    <!-- 表格 -->
                    <el-table :data="tableData" border>
                        <el-table-column prop="name" label="姓名" width="140">
                        </el-table-column>
                        <el-table-column prop="image" label="图像" width="120">
                        </el-table-column>
                        <el-table-column prop="gender" label="性别" width="120">
                            <span v-if="gender = 1">男</span>
                            <span v-else-if="gender = 2">女</span>
                        </el-table-column>
                        <el-table-column prop="job" label="职位">
                        </el-table-column>
                        <el-table-column prop="entrydata" label="入职日期">
                        </el-table-column>
                        <el-table-column prop="updatetime" label="最后操作时间">
                        </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>
                    <!-- 分页条 -->
                    <div class="block">
                        <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
                            :current-page="currentPage4" :page-sizes="[100, 200, 300, 400]" :page-size="100"
                            layout="total, sizes, prev, pager, next, jumper" :total="400">
                        </el-pagination>
                    </div>
                </el-main>
            </el-container>
        </el-container>
    </div>
</template>

<!-- 定义Vue当中的数据模型以及方法 -->
<script>
export default {
    data() {
        return {
            tableData: [
                {
                    "name": "hkm",
                    "image": "",
                    "gender": "1",
                    "job": "高贵的打工人",

                }
            ],
            searchForm: {
                user: "",
                region: "",
                entrydata: [],
            }


        }
    },
    methods: {
        onSubmit() {
            alert("进行查询数据")
        },
        handleSizeChange(val) {
            alert('数据显示容量为:' + val);
        },
        handleCurrentChange(val) {
            alert('当前页码数据为:' + val);
        }
    }
}
</script>

<!-- 定义CSS样式 -->
<style></style>

运行结果如下:

Element-案例-脚本页面布局,Java Web学习跟踪笔记,前端

 3.列表数据的异步加载,并渲染展示

异步加载的实现需要通过Axios实现,在Vue项目中安装Axios:npm install axios

Element-案例-脚本页面布局,Java Web学习跟踪笔记,前端

 安装完成之后,在需要使用Axios的页面中引入Axios

Element-案例-脚本页面布局,Java Web学习跟踪笔记,前端

 思考在什么时候需要发送异步请求?

只需要在Vue当中的勾子方法中来发送请求,如此,只要vue对象一创建挂载完成就会发送异步请求,加载数据,然后将加载得到的数据赋值给tableDAta对象就可以渲染展现出来了

最后具体关键代码如下:(由于教学中提供的url地址失效,所以数据暂未填充)

<!-- 定义HTML页面模板 -->
<template>
    <div>
        <el-container style="height: 700px; border: 1px solid #030101">
            <el-header style="font-size: 40px;background-color:rgb(238, 241, 246)">tlias智能学习辅助系统</el-header>
            <el-container>
                <el-aside width="230px" style="border:1px solid #030101">
                    <el-menu :default-openeds="['1', '3']">
                        <el-submenu index="1">
                            <template slot="title"><i class="el-icon-message"></i>班级学员管理</template>
                            <el-menu-item-group>
                                <el-menu-item index="1-1">班级管理</el-menu-item>
                                <el-menu-item index="1-2">学员管理</el-menu-item>
                            </el-menu-item-group>
                        </el-submenu>
                        <el-submenu index="2">
                            <template slot="title"><i class="el-icon-message"></i>系统信息管理</template>
                            <el-menu-item-group>
                                <el-menu-item index="2-1">部门管理</el-menu-item>
                                <el-menu-item index="2-2">员工管理</el-menu-item>
                            </el-menu-item-group>
                        </el-submenu>
                        <el-submenu index="3">
                            <template slot="title"><i class="el-icon-message"></i>数据统计管理</template>
                            <el-menu-item-group>
                                <el-menu-item index="3-1">员工信息统计</el-menu-item>
                            </el-menu-item-group>
                        </el-submenu>
                    </el-menu>
                </el-aside>
                <el-main>
                    <!-- 表单 -->
                    <!-- 整个表单帮当的数据模型为searchForm -->
                    <!-- Vue要求所有在模板中使用的属性或方法必须在组件实例的 data 选项中进行声明或初始化。 -->
                    <!-- 因此运行之前一定声明searchForm否则无法运行 -->
                    <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 label="入职日期">
                            <!-- 使用日期选择器 -->
                            <!-- 由于包含开始时间和结束时间 -->
                            <!-- 因次数据模型中entrydata为数组类型的数据 -->
                            <el-date-picker v-model="searchForm.entrydata" type="daterange" range-separator="至"
                                start-placeholder="开始日期" end-placeholder="结束日期">
                            </el-date-picker>
                        </el-form-item>
                        <el-form-item>
                            <el-button type="primary" @click="onSubmit">查询</el-button>
                        </el-form-item>
                    </el-form>
                    <!-- 表格 -->
                    <el-table :data="tableData" border>
                        <el-table-column prop="name" label="姓名" width="140">
                        </el-table-column>
                        <el-table-column prop="image" label="图像" width="120">
                            <template slot-scope="scope">
                                <img :src="scope.row.image" width="1000px" height="70px">
                            </template>
                        </el-table-column>
                        <el-table-column prop="gender" label="性别" width="120">
                            <span v-if="gender = 1">男</span>
                            <span v-else-if="gender = 2">女</span>
                        </el-table-column>
                        <el-table-column prop="job" label="职位">
                        </el-table-column>
                        <el-table-column prop="entrydata" label="入职日期">
                        </el-table-column>
                        <el-table-column prop="updatetime" label="最后操作时间">
                        </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>
                    <!-- 分页条 -->
                    <div class="block">
                        <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
                            :current-page="currentPage4" :page-sizes="[100, 200, 300, 400]" :page-size="100"
                            layout="total, sizes, prev, pager, next, jumper" :total="400">
                        </el-pagination>
                    </div>
                </el-main>
            </el-container>
        </el-container>
    </div>
</template>

<!-- 定义Vue当中的数据模型以及方法 -->
<script>
import axios from 'axios';
export default {
    data() {
        return {
            tableData: [
            ],
            searchForm: {
                user: "",
                region: "",
                entrydata: [],
            }


        }
    },
    methods: {
        onSubmit() {
            alert("进行查询数据")
        },
        handleSizeChange(val) {
            alert('数据显示容量为:' + val);
        },
        handleCurrentChange(val) {
            alert('当前页码数据为:' + val);
        },
        mounted() {
            // 发送异步请求,获取数据
            axios.get("").then((result) => {
                this.tableData = result.data.data;
            })// 此处url地址我还没有创建


        }
    }
}
</script>

<!-- 定义CSS样式 -->
<style></style>

最终的运行结果为:

Element-案例-脚本页面布局,Java Web学习跟踪笔记,前端

 最重要的自己动手做文章来源地址https://www.toymoban.com/news/detail-538529.html

到了这里,关于Element-案例-脚本页面布局的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Vue+Element UI 生鲜管理系统简介及项目搭建,页面布局(一)

    Vue+Element UI 生鲜管理系统简介及项目搭建,页面布局(一)

    自从入了这家公司,就没分配过前端的工作了,在上一家还能前后端都写写,现在真是对vue的代码真是望尘莫及哇,前几天跟前端朋友交流前端知识的时候,发现自己脑子里面的前端代码好像被偷了一样,赶紧找个项目练练,虽然现在是java,以后还是想要做全栈呢( ▽ )(哈哈

    2024年02月11日
    浏览(13)
  • vue3.0+element Plus实现页面布局,侧边栏菜单路由跳转

    vue3.0+element Plus实现页面布局,侧边栏菜单路由跳转

    一. 先在router.js文件中配置路由,将侧边栏中需要跳转的页面都添加到children中 二. 在view目录下新建一个文件,里面包含侧边栏要跳转的页面 三.  页面样式布局 1. 我选择使用自定义组件BaseLayout.vue文件来设置header和aside样式显示 也可以使用element plus中的Container 布局容器 

    2024年02月13日
    浏览(17)
  • 【Web前端基础】实验8 表格与表格页面布局

    【Web前端基础】实验8 表格与表格页面布局

    表格资料: 会议时间 会议名称 演讲人 2015年10月14日09:30 - 17:00 中国二恶英排放清单研究 刘文彬 研究员(中国科学院生态研究中心) 2015年10月14日09:30 - 17:00 优化的PAHs和Dioxin分析仪在环境分析中的应用 孔晔(安捷伦) 2015年10月14日09:30 - 17:00 LCMS在持久性有机污染物分析中的

    2024年02月04日
    浏览(11)
  • Vue3 入门笔记 ---- 利用Element Plus对页面进行布局划分以及实现左侧公共菜单

    Vue3 入门笔记 ---- 利用Element Plus对页面进行布局划分以及实现左侧公共菜单

    这个系列的笔记重点会放在怎么样利用Vue3把项目架设起来并跟后端API互动,不会介绍Vue的基础特性,关于Vue的基础特性可以参考这个视频四个小时带你快速入门Vue,我是看这个入门的,觉得还不错。 代码地址: https://github.com/yexia553/vue_study/tree/%E9%85%8D%E7%BD%AEvue-router/vue3-note

    2024年02月04日
    浏览(12)
  • 从零开始Vue3+Element Plus的后台管理系统(二)——Layout页面布局的实现

    从零开始Vue3+Element Plus的后台管理系统(二)——Layout页面布局的实现

    项目搭建好之后,开始写基本的布局。后台管理系统的布局3大元素:头部、侧栏、主要内容,各种布局结构相差不大,我选择了下图所示的布局,其中头部、侧栏、页签在页面中是固定的,只有主要内容容器会跟随页面滚动。 Layout布局的目录结构 代码就不贴了,仓库有😄

    2024年02月16日
    浏览(11)
  • Web前端开发技术(第3版) 实训5 项目16 DIV+CSS页面布局

    Web前端开发技术(第3版) 实训5 项目16 DIV+CSS页面布局

    实验课本61页 根据要求修改注释和链接的css文件就可以实现三种页面的呈现 更改具体内容和颜色代码就可以实现课本上的页面。 主代码: !DOCTYPE html html     head         meta charset=\\\"utf-8\\\" /         title/title         link href=\\\"layout_1.css\\\" rel=\\\"stylesheet\\\" type=\\\"text/css\\\"/     /he

    2024年02月06日
    浏览(13)
  • Java页面布局

    Java页面布局

    Java页面常用的布局主要有五种:FlowLayout、BorderLayout、GridLayout、CardLayout和NULL 1、FlowLayout 称为“流布局”,将组件按从左到右顺序、流动的安排到容器中,直到占满上方的空间时、则向下移动一行,Flow Layout是面板的默认布局 Flow Layout的构造方法列表 方法 功能说明 Flow Layou

    2024年02月09日
    浏览(4)
  • 基于vue-cli创建后台管理系统前端页面——element-ui,axios,跨域配置,布局初步,导航栏

    基于vue-cli创建后台管理系统前端页面——element-ui,axios,跨域配置,布局初步,导航栏

    1.vue-cli创建前端工程,安装element-ui,axios和配置; 2.前端跨域的配置,请求添加Jwt的设置; 3.进行初始化布局,引入新增页面的方式; 4.home页面导航栏的设置,一级目录,二级目录; 安装成功 布局初步 1.vue-cli创建前端工程,安装element-ui,axios和配置; 2.前端跨域的配置,请

    2024年02月09日
    浏览(16)
  • HTML5+CSS3学习笔记(九)前端页面六大布局(文档流布局、浮动布局、定位布局、表格布局、弹性布局、网格布局)

    HTML5+CSS3学习笔记(九)前端页面六大布局(文档流布局、浮动布局、定位布局、表格布局、弹性布局、网格布局)

    本系列更多文章,可以查看专栏 HTML+CSS学习笔记 块级元素自上至下垂直排列,行内元素自左至右水平排列 块级元素独占一行,行内元素不会另起一行 默认情况下,height和width决定内容区的大小;内容区、内边距和边框构成可见区域的大小;外边距决定元素的位置 更多内容可

    2024年02月02日
    浏览(33)
  • Vue3学习(二十一)- 文档管理页面布局修改

    Vue3学习(二十一)- 文档管理页面布局修改

    按照国际惯例,要先聊下生活,吐槽一番,今天是2月14日,也是下午听老妈说,我才知道! 现在真的是对日期节日已经毫无概念可言,只知道星期几。 现在已经觉得写博客也好,学习文章也罢,和写日记一样,已经融入到我的生活中,或者更确切的说,变成生活的一部分了

    2024年03月09日
    浏览(14)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包