element-plus 的简单应用

前言

本篇博客是 基于 ElementPlus 快速入门_element plus x-CSDN博客 的进阶

最终成果

完成的要求

1 深入学习 设计 | Element Plus 从里面找自己合适的

  • 使用到的 组件有:表格,分页条,表单,卡片

2 具备 前端基础(html,css 样式等前端基础)


正文

接下来,将通过使用element-plus的 组件,向大家展示过程

前期准备

已经构建好一个vue 项目,并且通过vscode 打开

初识Vue3(详细版:创建,启动vue 项目)-CSDN博客


1 选择 element-plus的 组件: 表格,按钮

成果展示

步骤

1 在src 文件夹下,创建vue 文件

  • 这里,我定义为article1.vue

2 向 App.vue 导入 创建的vue文件的路径

注意:在template标签中,添加的标签 和导入外部vue 文件命名有关

导入外部文件的格式:import  自定义名字 from 路径

举例

导入 当前目录下的 a.vue 文件

import a from './a.vue 。 注意这里的"a "可以是其他的,什么都行


在template标签中,添加的标签,往往是与你自定义的命名,相关的。这里当你输入一个“<" 时,vscode会有提示!

3 在 element-plus 官网上找到合适的表格组件

这里我选择:基础表单

cv 粘贴到 之前定义的article1 .vue 文件

调整 script 标签的位置,放到template 标签的前面,在package.json 文件点击调试,运行展示

4 调整 

  • 1 修改表格值,间距

代码

prop 属性:和tableDate数组是绑定在一起的,使得将数组中的数据,关联到表格中

label 属性:表示 表格的第一行各个表头名

<script lang="ts" setup>
const tableData = [{title: '标题1',category: '时事',time: '2021-08-01',state: '已发布',},{title: '标题1',category: '时事',time: '2021-08-01',state: '已发布',},{title: '标题1',category: '时事',time: '2021-08-01',state: '已发布',},{title: '标题1',category: '时事',time: '2021-08-01',state: '已发布',},
]</script>
<template><el-table :data="tableData" style="width: 100%"><el-table-column prop="title" label="文章标题" /><el-table-column prop="category" label="分类"  /><el-table-column prop="time" label="发表时间" /><el-table-column prop="state" label="状态"  /><el-table-column  label="操作" width="180" ></el-table-column></el-table></template>
  • 2 添加 编辑,删除 按钮

type 的属性值可以表示图标的颜色: primary :蓝色;default:白色; danger: 红色

修改之后的完整代码如下

<script lang="ts" setup>
import { Delete, Edit } from '@element-plus/icons-vue'
const tableData = [{title: '标题1',category: '时事',time: '2021-08-01',state: '已发布',},{title: '标题1',category: '时事',time: '2021-08-01',state: '已发布',},{title: '标题1',category: '时事',time: '2021-08-01',state: '已发布',},{title: '标题1',category: '时事',time: '2021-08-01',state: '已发布',},
]</script>
<template><el-table :data="tableData" style="width: 100%"><el-table-column prop="title" label="文章标题" /><el-table-column prop="category" label="分类"  /><el-table-column prop="time" label="发表时间" /><el-table-column prop="state" label="状态"  /><el-table-column  label="操作" width="180" ><el-button type="primary" :icon="Edit" circle /><el-button type="danger" :icon="Delete" circle /></el-table-column></el-table></template>

效果展示


2 选择 element-plus的 组件: 分页条

成果展示

1 在 element-plus 官网上找到合适的分页条组件

这里我选择: All combined 这种分页方式

2 cv 粘贴对应的代码到article1.vue 文件

将script标签中的代码粘贴到article1.vue 

如果 发现script标签中的代码 通过vscode 发现颜色变淡,说明这行代码没有起作用,可以删掉

效果展示

调整

1 将分页表示的区域移动到右边

  • 使用内部样式,修改

效果展示


2 修改总页数,页容量,页码

total:数据总量

page-size:页容量

currentPage4:当前页

修改 :total 改为20,page-size 改为 5

修改后的代码

<script lang="ts" setup>
import { Delete, Edit } from '@element-plus/icons-vue'
const tableData = [{title: '标题1',category: '时事',time: '2021-08-01',state: '已发布',},{title: '标题1',category: '时事',time: '2021-08-01',state: '已发布',},{title: '标题1',category: '时事',time: '2021-08-01',state: '已发布',},{title: '标题1',category: '时事',time: '2021-08-01',state: '已发布',},
]
import { ref } from 'vue'
import type { ComponentSize } from 'element-plus'const currentPage4 = ref(4)
// 控制每页显示的条目数
const pageSize4 = ref(5)
const size = ref<ComponentSize>('default')
const background = ref(false)
const disabled = ref(false)
// 总条目数
const total = ref(20)const handleSizeChange = (val: number) => {console.log(`${val} items per page`)
}
const handleCurrentChange = (val: number) => {console.log(`current page: ${val}`)
}</script>
<template><!-- 表格 --><el-table :data="tableData" style="width: 100%"><el-table-column prop="title" label="文章标题" /><el-table-column prop="category" label="分类"  /><el-table-column prop="time" label="发表时间" /><el-table-column prop="state" label="状态"  /><el-table-column  label="操作" width="180" ><el-button type="primary" :icon="Edit" circle /><el-button type="danger" :icon="Delete" circle /></el-table-column></el-table><!-- 分页条 --><el-paginationclass="el-p"v-model:current-page="currentPage4"v-model:page-size="pageSize4":page-sizes="[5,10,15,20]":size="size":disabled="disabled":background="background"layout="total, sizes, prev, pager, next, jumper":total="total"@size-change="handleSizeChange"@current-change="handleCurrentChange"/></template><style lang="css" scoped>.el-p {margin-top: 20px;display: flex;justify-content: flex-end;}</style>

效果展示


3 选择 element-plus的 组件: 表单

成果展示

步骤

1 在 element-plus 官网上找到合适的 表单

2 cv将对应的代码 粘贴到article.vue 文件

效果展示

3 调整

1 把之前复制 输入框代码删掉,换成 下滑列表方式,同时添加一个重置按钮

代码

<script lang="ts" setup>
import { Delete, Edit } from '@element-plus/icons-vue'
const tableData = [{title: '标题1',category: '时事',time: '2021-08-01',state: '已发布',},{title: '标题1',category: '时事',time: '2021-08-01',state: '已发布',},{title: '标题1',category: '时事',time: '2021-08-01',state: '已发布',},{title: '标题1',category: '时事',time: '2021-08-01',state: '已发布',},
]
import { ref } from 'vue'
import type { ComponentSize } from 'element-plus'
const currentPage4 = ref(4)
// 控制每页显示的条目数
const pageSize4 = ref(5)
const size = ref<ComponentSize>('default')
const background = ref(false)
const disabled = ref(false)
// 总条目数
const total = ref(20)const handleSizeChange = (val: number) => {console.log(`${val} items per page`)
}
const handleCurrentChange = (val: number) => {console.log(`current page: ${val}`)
}import { reactive } from 'vue'const formInline = reactive({user: '',region: '',date: '',
})const onSubmit = () => {console.log('submit!')
}</script>
<template><!-- 表单 --><el-form :inline="true" :model="formInline" class="demo-form-inline"><el-form-item label="文章分类"><el-selectv-model="formInline.region"placeholder="请选择"clearable><el-option label="时事" value="时事" /><el-option label="篮球" value="篮球" /></el-select></el-form-item><el-form-item label="发布状态"><el-selectv-model="formInline.region"placeholder="请选择 "clearable><el-option label="已发布" value="已发布" /><el-option label="草稿" value="草稿" /></el-select></el-form-item><el-form-item><el-button type="primary" @click="onSubmit">搜索</el-button></el-form-item><el-form-item><el-button type="default" @click="onSubmit">重置</el-button></el-form-item></el-form><!-- 表格 --><el-table :data="tableData" style="width: 100%"><el-table-column prop="title" label="文章标题" /><el-table-column prop="category" label="分类"  /><el-table-column prop="time" label="发表时间" /><el-table-column prop="state" label="状态"  /><el-table-column  label="操作" width="180" ><el-button type="primary" :icon="Edit" circle /><el-button type="danger" :icon="Delete" circle /></el-table-column></el-table><!-- 分页条 --><el-paginationclass="el-p"v-model:current-page="currentPage4"v-model:page-size="pageSize4":page-sizes="[5,10,15,20]":size="size":disabled="disabled":background="background"layout="total, sizes, prev, pager, next, jumper":total="total"@size-change="handleSizeChange"@current-change="handleCurrentChange"/></template><style lang="css" scoped>.el-p {margin-top: 20px;display: flex;justify-content: flex-end;}</style>

效果展示


4 选择 element-plus的 组件: 卡片

成果展示

步骤

1 在 element-plus 官网上找到合适的 卡片

代码

<!-- 卡片 --><el-card style="max-width: 480px"><div class="card-header"><span>发布文章</span><el-button   type="primary">文章管理</el-button></div>

效果展示

2 调整

1文章管理,移动到右边

2 为了使整个界面看着更加美观,将其他的代码移动到卡片代码中

最终代码

<script lang="ts" setup>
import { Delete, Edit } from '@element-plus/icons-vue'
const tableData = [{title: '标题1',category: '时事',time: '2021-08-01',state: '已发布',},{title: '标题1',category: '时事',time: '2021-08-01',state: '已发布',},{title: '标题1',category: '时事',time: '2021-08-01',state: '已发布',},{title: '标题1',category: '时事',time: '2021-08-01',state: '已发布',},
]
import { ref } from 'vue'
import type { ComponentSize } from 'element-plus'
const currentPage4 = ref(4)
// 控制每页显示的条目数
const pageSize4 = ref(5)
const size = ref<ComponentSize>('default')
const background = ref(false)
const disabled = ref(false)
// 总条目数
const total = ref(20)const handleSizeChange = (val: number) => {console.log(`${val} items per page`)
}
const handleCurrentChange = (val: number) => {console.log(`current page: ${val}`)
}import { reactive } from 'vue'const formInline = reactive({user: '',region: '',date: '',
})const onSubmit = () => {console.log('submit!')
}</script>
<template><!-- 卡片 --><el-card ><div class="card-header"><span>发布文章</span><el-button   type="primary">文章管理</el-button></div><!-- 表单 --><el-form :inline="true" :model="formInline" class="demo-form-inline"><el-form-item label="文章分类"><el-selectv-model="formInline.region"placeholder="请选择"clearable><el-option label="时事" value="时事" /><el-option label="篮球" value="篮球" /></el-select></el-form-item><el-form-item label="发布状态"><el-selectv-model="formInline.region"placeholder="请选择 "clearable><el-option label="已发布" value="已发布" /><el-option label="草稿" value="草稿" /></el-select></el-form-item><el-form-item><el-button type="primary" @click="onSubmit">搜索</el-button></el-form-item><el-form-item><el-button type="default" @click="onSubmit">重置</el-button></el-form-item></el-form><!-- 表格 --><el-table :data="tableData" style="width: 100%"><el-table-column prop="title" label="文章标题" /><el-table-column prop="category" label="分类"  /><el-table-column prop="time" label="发表时间" /><el-table-column prop="state" label="状态"  /><el-table-column  label="操作" width="180" ><el-button type="primary" :icon="Edit" circle /><el-button type="danger" :icon="Delete" circle /></el-table-column></el-table><!-- 分页条 --><el-paginationclass="el-p"v-model:current-page="currentPage4"v-model:page-size="pageSize4":page-sizes="[5,10,15,20]":size="size":disabled="disabled":background="background"layout="total, sizes, prev, pager, next, jumper":total="total"@size-change="handleSizeChange"@current-change="handleCurrentChange"/></el-card></template><style lang="css" scoped>.el-p {margin-top: 20px;display: flex;justify-content: flex-end;}.card-header {display: flex;justify-content: space-between;}
</style>

最终效果展示


总结

本篇博客,简单介绍了,怎么使用element-plus 来构建简单的查询界面

下一步,就该从后端服务器获取数据,进一步完善

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于Qt的各类问题

目录 1、问题&#xff1a;Qt中文乱码 2、问题&#xff1a;启动时避免ComBox控件出现默认值 博客会不定期的更新各种Qt开发的Bug与解决方法,敬请关注! 1、问题&#xff1a;Qt中文乱码 问题描述&#xff1a;我在设置标题时出现了中文乱码 this->setWindowTitle("算法…

海思烧录工具HITool电视盒子刷机详解

HiTool是华为开发的一款用于海思芯片设备的刷机和调试工具&#xff0c;可对搭载海思芯片的机顶盒、智能电视等设备进行固件烧录、参数配置等操作。以下为你详细介绍&#xff1a; 功能用途 固件烧录&#xff1a;这是HiTool最主要的功能之一。它能够将下载好的适配固件文件烧录到…

Docker Compose介绍

基本概念 Docker-Compose是Docker官方的开源项目&#xff0c;负责实现对docker容器集群的快速编排。 可以这么理解&#xff0c;docker compose是docker提出的一个工具软件&#xff0c;可以管理多个docker容器组成一个应用&#xff0c;只需要编写一个YAML格式的配置文件docker…

大疆上云api直播功能如何实现

概述 流媒体服务器作为直播画面的中转站,它接收推流端的相机画面,同时拉流端找它获取相机的画面。整个流程如下: 在流媒体服务器上创建流媒体应用(app),一个流媒体服务器上面可以创建多个流媒体应用约定推拉流的地址。假设流媒体服务器工作在1935端口上面,假设创建的流…

LabVIEW远程控制通讯接口

abVIEW提供了多种远程控制与通讯接口&#xff0c;适用于不同场景下的设备交互、数据传输和系统集成。这些接口涵盖从基础的网络协议&#xff08;如TCP/IP、UDP&#xff09;到专用技术&#xff08;如DataSocket、远程面板&#xff09;&#xff0c;以及工业标准协议&#xff08;如…

算法每日一练 (18)

&#x1f4a2;欢迎来到张翊尘的技术站 &#x1f4a5;技术如江河&#xff0c;汇聚众志成。代码似星辰&#xff0c;照亮行征程。开源精神长&#xff0c;传承永不忘。携手共前行&#xff0c;未来更辉煌&#x1f4a5; 文章目录 算法每日一练 (18)删除并获得点数题目描述解题思路解题…

Java后端API限流秘籍:高并发的防护伞与实战指南

目录导航 📜 🛡️ 为什么需要API限流?🧠 主流限流算法大解析👩‍💻 阿里巴巴的限流实践📏 四大黄金定律🤼 限流策略组合拳🏆 限流场景实战💻 技术实现方案🌟 最佳实践分享📈 结语与展望📚 推荐阅读 1. 🛡️ 为什么需要API限流? 在高并发环境中,未…

【软件测试】:软件测试实战

1. ⾃动化实施步骤 1.1 编写web测试⽤例 1.2 ⾃动化测试脚本开发 common public class AutotestUtils {public static EdgeDriver driver;// 创建驱动对象public static EdgeDriver createDriver(){// 驱动对象已经创建好了 / 没有创建if( driver null){driver new EdgeDr…

26考研——栈、队列和数组_栈(3)

408答疑 文章目录 一、栈1、栈&#xff08;Stack&#xff09;的概念和特点定义术语操作特性示例直观理解栈的基本操作初始化栈判断栈是否为空入栈操作出栈操作读取栈顶元素销毁栈 栈的数学性质 2、栈的顺序存储结构顺序栈的定义栈顶指针初始化注意事项 共享栈共享栈的操作共享栈…

基于Spring Boot的ONLY在线商城系统设计与实现的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

信息安全的数学本质与工程实践

信息安全的本质是数学理论与工程实践的高度统一。在这个数字空间与物理世界深度融合的时代&#xff0c;信息安全已从简单的数据保护演变为维系数字社会正常运转的基础设施。对于计算机专业学习者而言&#xff0c;理解信息安全需要超越工具化认知&#xff0c;深入其数学内核与系…

网站迁移监测体系:301重定向与流量波动预警机制

网站迁移监测体系&#xff1a;301重定向与流量波动预警机制 引言 在网站迁移过程中&#xff0c;确保用户体验的连续性和搜索引擎优化&#xff08;SEO&#xff09;的稳定性是至关重要的。301重定向作为一种永久性重定向技术&#xff0c;能够有效地将旧页面的权重和流量传递到新…

自动驾驶VLA模型技术解析与模型设计

1.前言 2025年被称为“VLA上车元年”&#xff0c;以视觉语言动作模型&#xff08;Vision-Language-Action Model, VLA&#xff09;为核心的技术范式正在重塑智能驾驶行业。VLA不仅融合了视觉语言模型&#xff08;VLM&#xff09;的感知能力和端到端模型的决策能力&#xff0c;…

OpenEuler linux samba部分目录无法访问的问题

ubuntu上没遇到过这个问题 换成openeuler这个系统后 出现 安装samba之后 部分目录无法访问的问题 vi /etc/selinux/config SELINUXenforcing&#xff0c;改为SELINUXpermissive。 改完之后重启 就可以了

游戏引擎学习第184天

"我们有所有的代码"α 我们将进行一个完整的游戏开发过程&#xff0c;并且会展示。我们从零开始编写引擎&#xff0c;所以我们涵盖的内容从最底层的代码到最高层次的模块都有。虽然我们不能说是“高层次high level”的内容&#xff0c;但我们确实拥有所有的代码&…

基于javaweb的SpringBoot雪具商城系统设计与实现(源码+文档+部署讲解)

技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论…

vue数字公式篇 Tinymce结合使用(二)

继上一篇的数字公式 &#xff0c; 这次的功能是将公式能插入编辑器以及修改 1、Tinymce 自定义 LateX 按钮&#xff0c;打开公式编辑器窗口 LateX.vue window.tinymce.init({...//基础配置这里我就不写了setup(ed) {//自定义 LateX 按钮ed.ui.registry.addButton(LateX, {text:…

香蕉派 BPI-CM6 工业级核心板采用进迭时空K1 8核 RISC-V 芯片开发

BPI-CM6 产品介绍 香蕉派BPI-CM6是一款工业级RISC-V核心板&#xff0c;它采用SpacemiT K1 8核RISC-V芯片设计&#xff0c;CPU集成2.0 TOPs AI计算能力。8/16G DDR和8/16/32/128G eMMC。设计了板对板连接器&#xff0c;以增强稳定性&#xff0c;与树莓派CM4尺寸相同&#xff0c…

SpringBoot大学生竞赛管理系统设计与实现

一个用于管理大学生竞赛报名、信息查询与竞赛管理的系统&#xff0c;采用了现代化的SpringBoot框架进行开发。该系统的主要功能包括学生信息管理、教师信息管理、竞赛报名审核、竞赛信息管理等模块&#xff0c;适用于学校或教育机构进行竞赛活动的组织与管理。系统界面简洁&…

使用ucharts写的小程序,然后让圆环中间的空白位置变大

将ringWidth属性调小 extra: { ring: { ringWidth: 20, activeOpacity: 1.5, activeRadius: 10, offsetAngle: 0, labelWidth: 15, border: true, borderWidth: 0, borderColor: #F…