Vue——Elementui案例实现

news2024/11/16 2:18:34

需求分析:

对于上面要仿照的页面先新建一个页面组件EmpView.vue组件在views文件夹下

 

基本页面布局

 对于上面页面的布局其实在Element当中也可以找到相应可以实现的组件, 成功找到一个符合要求的布局,直接复制粘贴到项目里面

此时页面相应的位置已经有了对应的占位单词。 

基本布局实现代码:

<template>
    <div>
        <el-container style="height: 500px; 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">
                            <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-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>

每次处理一个区域,处理时去官网看看有没有适合的具体实现,有就搬过来,没有也搬过来自己改改就合适了,至于样式部分就自己看着加。 

效果图如图所示

页面组件实现 

会抄会改也是一门技术。

实现效果:

代码:

 

<template>
    <div>
        <el-container style="height: 500px; 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">
                            <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 label="入职日期">
                            <el-date-picker v-model="searchForm.entrydate" 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="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-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange"
                        layout="prev, pager, next" :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: function (val) {
            alert("每页记录数发生变化" + val);
        },
        handleCurrentChange: function (val) {
            alert("页码发生变化" + val);
        },
    }
}
</script>

<style></style>

axios异步加载数据并渲染展示

要想使用axios要先安装axios

用到一个叫做插槽slot的东西 

可以获取到prop的属性,scope.row获取到的是一整行数据

  

使用axios发送请求获取数据然后赋值给当前的数据模型用于页面数据渲染

 

效果图

 

最终代码:

<template>
    <div>
        <el-container style="height: 500px; border: 1px solid #eee">
            <el-header style=" font-size:40px; background-color: rgb(238, 241, 246)">tlias 智能学习辅助系统</el-header>
            <el-container>
                <el-aside width="240px" style="border: 1px solid #eee"> <el-menu :default-openeds="['1', '3']">
                        <el-submenu index="1">
                            <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 label="入职日期">
                            <el-date-picker v-model="searchForm.entrydate" 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="180"></el-table-column>
                        <el-table-column prop="image" label="图像" width="180">
                            <template slot-scope="scope">
                                <img :src="scope.row.image" width="100px">
                            </template>
                        </el-table-column>
                        <el-table-column prop="gender" label="性别" width="140">
                            <template slot-scope="scope">
                                {{ scope.row.gender == 1 ? '男' : '女' }}
                            </template>
                        </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-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange"
                        layout="prev, pager, next" :total="1000">
                    </el-pagination>
                </el-main>
            </el-container>
        </el-container>
    </div>
</template>

<script>
import axios from 'axios';
export default {
    comments: {
        axios
    },
    data() {
        return {
            tableData: [],
            searchForm: {
                name: "",
                gender: "",
                entrydate: []
            }
        }
    }, methods: {
        onSubmit: function () {
            alert("查询信息");
        },
        handleSizeChange: function (val) {
            alert("每页记录数发生变化" + val);
        },
        handleCurrentChange: function (val) {
            alert("页码发生变化" + val);
        },
    }, mounted() {
        //发送异步请求获取数据
        axios.get("http://yapi.smart-xwork.cn/mock/169327/emp/list").then((result) => {
            this.tableData = result.data.data;
        });
    },
}
</script>

<style></style>

小结: 

先从全局入手,完成全局布局,然后完成各个组件,最后实现数据渲染。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/487373.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

自动化运维工具 Ansible

目录 Puppet 自动运维工具特点&#xff1a; Saltstack 自动运维工具特点&#xff1a; Ansible 自动运维工具特点: Ansible 运维工具原理 Ansible 管理工具安装配置 Ansible 工具参数详解 Ansible ping 模块实战 Ansible command 模块实战 Ansible copy 模块实战 Ansib…

uboot第二阶段 start_armboot函数代码分析

1.1、start_armboot函数简介 这个函数整个构成了uboot启动的第二阶段。 1.2、uboot第二阶段做的事情 uboot第一阶段主要就是初始化了SoC内部的一些部件&#xff08;譬如看门狗、时钟、串口…&#xff09;&#xff0c;然后初始化DDR并且完成重定位。那么&#xff0c;uboot的第…

数字化转型导师坚鹏:企业数字化营销能力提升

企业数字化营销能力提升 课程背景&#xff1a; 很多企业存在以下问题&#xff1a; 不清楚数字化营销对企业发展有什么影响&#xff1f; 不知道如何提升企业数字化营销能力&#xff1f; 不知道企业如何开展数字化营销工作&#xff1f; 课程特色&#xff1a; 原创企业数…

vcruntime140.dll无法继续执行代码?vcruntime140.dll如何修复?只需要3步即可

vcruntime140.dll是用于Microsoft Visual C Redistributable&#xff08;可再发行组件&#xff09;的一部分&#xff0c;它是一个动态链接库文件&#xff0c;包含了该软件包提供的运行库。在许多应用程序和游戏中&#xff0c;vcruntime140.dll文件经常被使用。如果该文件缺失或…

Tkinter正则表达式工具

文章目录 &#x1f3f3;️‍&#x1f308; 1. 导入tkinter和re模块&#x1f3f3;️‍&#x1f308; 2. 设置窗口居中&#x1f3f3;️‍&#x1f308; 3. 设置lable、text、button布局&#x1f3f3;️‍&#x1f308; 4. 设置下拉列表框&#x1f3f3;️‍&#x1f308; 5. 清空文…

Scrum敏捷开发和项目管理流程及工具

Scrum是全球运用最广泛的敏捷管理框架&#xff0c;Leangoo基于Scrum框架提供了一系列的流程和模板&#xff0c;可以帮助敏捷团队快速启动Scrum敏捷开发。 这里可以介绍一下在scrum中单团队敏捷开发如何管理&#xff0c;单团队敏捷开发主要是针对10-15人以下&#xff0c;只有一…

零基础如何学习挖漏洞?看这篇就够了【网络安全】

前言 有不少阅读过我文章的伙伴都知道&#xff0c;我从事网络安全行业已经好几年&#xff0c;积累了丰富的经验和技能。在这段时间里&#xff0c;我参与了多个实际项目的规划和实施&#xff0c;成功防范了各种网络攻击和漏洞利用&#xff0c;提高了安全防护水平。 也有很多小…

Qt常用快捷键

Qt常用快捷键 1.添加头文件&#xff1a;Alt Enter2.查看槽函数的实现 位置&#xff1a;F2 / F43.快速查看帮助文档&#xff1a;F14.代码快速对齐&#xff1a;Ctrl I5.代码全选&#xff1a;Ctrl A6.保存&#xff1a;Ctrl S7.代码复制&#xff1a;Ctrl C8.代码粘贴&#xff…

Flutter之插件开发plugin

目的:适用于独立业务模块,或者与原生页面交互频繁的地方。 基于flutter3.x , IDE :androidStudio 步骤: 1.新建flutter project 【New flutter project】. 2. 在新建工程面板记得切换 Project Type, 选择【PLugin】. 其他的根据足迹需求选择就行。 3. 在flutter主工…

联想凌拓教育行业解决方案

联想凌拓教育行业解决方案 教育部等六部门《关于推进教育新型基础设施建设构建高质量教育支撑体系的指导意见》&#xff0c;指出&#xff1a;信息网络、平台体系、数字资源、智慧校园、创新应用、可信安全的新型基础设施为六大发展重点&#xff0c;需建立全面覆盖的标准规范体…

文献集锦 | 非因生物空间多组学技术在头颈部肿瘤中的研究策略

头颈部鳞状细胞癌(HNSCC)是全球第七大癌症病因&#xff0c;是一种异质性恶性肿瘤&#xff0c;起源于上呼吸道&#xff0c;尤其是鳞状粘膜线。唇部、口腔和鼻腔、鼻窦、喉、鼻咽、口咽和下咽是HNSCC的受累部位。利用空间组学分析平台深入剖析组织肿瘤微环境&#xff0c;对深入理…

【大数据之Hadoop】从自定义 RPC 到 Hadoop RPC ,理解分布式通信系统的底层工作原理

1. 前言 Hadoop是分布式计算系统&#xff0c;在分布式环境中&#xff0c;网络通信模块是其核心模块之一。要学好Hadoop&#xff0c;需理解其底层通信系统的基本工作原理。Hadoop提供有体系完整的RPC框架&#xff0c;实现了对底层网络通信过程的优雅封装。 本文将从RPC概念说起…

从五一的旅游热潮看,该如何实现数字文旅的转型升级?

文旅产业是文化和旅游行业的融合&#xff0c;属于国家战略性产业&#xff0c;资源消耗低&#xff0c;带动系数大&#xff0c;就业机会多&#xff0c;综合效益好。改革开放以来&#xff0c;随着国内工业化、城镇化的快速发展&#xff0c;日益增长的大众化、多样化消费需求为文旅…

java电子招标采购系统源码:营造全面规范安全的电子招投标环境,促进招投标市场健康可持续发展

营造全面规范安全的电子招投标环境&#xff0c;促进招投标市场健康可持续发展 传统采购模式面临的挑战 一、立项管理 1、招标立项申请 功能点&#xff1a;招标类项目立项申请入口&#xff0c;用户可以保存为草稿&#xff0c;提交。 2、非招标立项申请 功能点&#xff1a;非招标…

JUC多并发编程 对象内存布局

对象的内存布局简介 在 Hotspot 虚拟机里&#xff0c;对象在堆内存中存在布局可划分为三个部分: 对象头(Header), 实例数据(Instance Data) 和对齐填充(Padding 保证8字节位数) 对象头 对象标记 MarkWord, 在64位操作系统中&#xff0c; Mark Word 占8个字节, 类型占 8个字节&…

单词搜索I II/前缀树

79单词搜索 思路&#xff1a; 注意&#xff1a; 我自己在写 for i in range(m):for j in range(n):# 对每一个格子都从头开始搜索if self.__search_word(board, word, 0, i, j, marked, m, n):return True这一段的时候&#xff0c;就写成了&#xff1a; 这一段代码是…

Mysql 主从 读写分离

目录 0 课程视频 1 概述 1.1原理 -> 传二进制日志到 从库 -> 执行 1.2 作用 1.2.1 主库崩 从库上 1.2.2 读写分离 1.2.3 从库备份 -> 备份完 再用 二进制日志同步 2 搭建 2.1 防火墙 端口号开启 2.2 主库设置 2.2.1 修改配置文件 -.> /etc/my.cnf 2.2…

高压放大器模块在平面水声压电换能器研究中的应用

实验名称&#xff1a;平面水声压电换能器的制备与性能研究 研究方向&#xff1a;压电换能器 实验原理&#xff1a; 压电换能器是能够发射和接收超声波的电声转换器件&#xff0c;按照不同的标准&#xff0c;换能器可分为不同的种类。按照功能可分为发射型、接收型和收发两用…

亚马逊下单需要什么条件?(养号干货知识)

混迹亚马逊的老手都知道&#xff0c;测评向来都是最有效&#xff0c;最快速的推广方式&#xff0c;给自己商品做点销量&#xff0c;优化一下listing&#xff0c;留一下一些优质评论&#xff0c;甚至于打压一下竞品&#xff0c;帮自己商品解个围。 养号环境四大步&#xff1a; …

定制海报、AI扣人像小程序

大家好,我是csdn的博主:lqj_本人 这是我的个人博客主页: lqj_本人的博客_CSDN博客-微信小程序,前端,python领域博主lqj_本人擅长微信小程序,前端,python,等方面的知识https://blog.csdn.net/lbcyllqj?spm=1011.2415.3001.5343哔哩哔哩欢迎关注:小淼Develop 小淼Develop的个…