Element-plus组件库基础组件使用

文章目录

      • 按钮
      • 图标
      • 输入框
      • 表格
      • 表单
      • 对话框
      • 文件上传
      • 布局容器
      • ElMessage消息提示
      • MessageBox 消息提示框
      • Pagination分页样式
      • 表单校验

记录vue3项目使用element-Plus,开发中常用的一些样式

下面这些组件是写增删改查是经常用到的,学习了这个写增删改查会好很多。

按钮

按钮是 el-button
基本的按钮 default 默认 primary基础蓝色 success info warning警告 Danger 危险
image.png

通过type属性 指定颜色     round  plain cycle指定形状 
<el-button type="primary">Primary</el-button>
<el-button type="success">Success</el-button>

image.png
不输入文字,展示标签 :icon

通过:icon 绑定  需要导入对应的标签样式  @element-plus/icos-vue
<el-button type="warning" :icon="Star" circle />
<el-button type="danger" :icon="Delete" circle />import {Check,  //确定Delete, //删除Edit, //编辑Message, //信息Search, //搜索Star, //星
} from '@element-plus/icons-vue'

通过size属性来控制大小
image.png
想要显示图片+文字

<el-button type="danger" :icon="Delete" circle> 删除</el-button>

图标

https://element-plus.org/zh-CN/component/icon.html#%E7%BB%93%E5%90%88-el-icon-%E4%BD%BF%E7%94%A8
常用的一些图标
image.png
使用图标的时候需要导入图标库

  import{} from @element-plus/icons-vue

输入框

image.png
image.png

v-model 绑定数据模型   placeholder 提示输入  clearable 是否直接清除  type指定类型 showpassword是否显示密码<el-inputv-model="input"style="width: 240px"placeholder="请输入用户名"clearable/><el-inputv-model="input"type="password"placeholder="请输入密码"show-passwordclearable/>

其他属性
image.png

表格

:data绑定数据模型。 prop绑定模型里面具体的数据、label这一列的名称

表格是 el-table     
每一列用prop绑定对象的属性。label展示的是这一列的名称。在js里面定义这个数组
const dataData=ref([])<el-table :data="tableData" style="width: 100%" height="250"><el-table-column fixed prop="date" label="Date" width="150" /><el-table-column prop="name" label="Name" width="120" /><el-table-column prop="state" label="State" width="120" /><el-table-column prop="city" label="City" width="320" /><el-table-column prop="address" label="Address" width="600" /><el-table-column prop="zip" label="Zip" /></el-table>

image.png

如果表格里面还要添加其他的数据,比如绑定按钮开关按钮等。
代码需要写在template里面。 但是这样写如何获取数据么? element团队提供了插槽 通过**#default=“scope”**绑定了多用于,想要拿这一行数据通过 scope.row 得到。再拿到里面的具体状态。

<el-table-column label="状态">实现开关按钮<template #default="scope">   //scope.row拿到当前行的数据<el-switch v-model="scope.row.status"></el-switch></template>
</el-table-column>通过scope得到当前的行  scope.row 得到当前行的数据

表格想要添加选择框和排列序号

type selection 选择框   index 序号<el-table-column type="selection" width="150"/>  //前面的选择框
<el-table-column type="index" width="120" label="序号"/> //序号进行排序的

表单

//表单也是常用的ui。    :model 绑定模型      :inline表示当前是否在一行内  v-show 是否展示
<el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="90px"><el-form-item label="合作商名称" prop="partnerName"><el-inputv-model="queryParams.partnerName"placeholder="请输入合作商名称"clearable@keyup.enter="handleQuery"/></el-form-item><el-form-item><el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button><el-button icon="Refresh" @click="resetQuery">重置</el-button></el-form-item>
</el-form>

对话框

 <!-- 添加或修改点位管理对话框 -->//标题  title     v-model true展示 false<el-dialog :title="title" v-model="open" width="500px" append-to-body>//ref    :rules绑定校验规则   :model 绑定模型
//在这个例子中,ref="nodeRef" 为 el-form 组件(即 Element Plus 的表单组件)创建了一个引用,命名为 nodeRef。<el-form ref="nodeRef" :model="form" :rules="rules" label-width="80px">//label 标题   prop校验规则<el-form-item label="点位名称" prop="nodeName"><el-input v-model="form.nodeName" placeholder="请输入点位名称"/></el-form-item><el-form-item label="详细地址" prop="address"><el-input v-model="form.address" placeholder="请输入详细地址"/></el-form-item>
/**v-for="dict in bussiness_type": 使用 v-for 指令循环遍历 bussiness_type 数组,生成多个 el-option 组件。
:key="dict.value": 使用 dict.value 作为每个 el-option 的唯一键,确保 Vue 能高效地渲染和更新选项。
:label="dict.label": 设置选项的显示文本为 dict.label。
:value="parseInt(dict.value)": 设置选项的值为 dict.value,并通过 parseInt 转换为整数。这个值将绑定到 form.businessType 中。
**/<el-form-item label="商圈类型" prop="businessType"><el-select v-model="form.businessType" placeholder="请选择商圈类型">//下拉菜单<el-optionv-for="dict in bussiness_type":key="dict.value":label="dict.label":value="parseInt(dict.value)"></el-option></el-select></el-form-item><el-form-item label="区域ID" prop="regionId"><el-input v-model="form.regionId" placeholder="请输入区域ID"/></el-form-item><el-form-item label="合作商ID" prop="partnerId"><el-input v-model="form.partnerId" placeholder="请输入合作商ID"/></el-form-item></el-form>//绑定插槽<template #footer><div class="dialog-footer"><el-button type="primary" @click="submitForm">确 定</el-button><el-button @click="cancel">取 消</el-button></div></template></el-dialog>

文件上传

<el-uploadaction="/api/upload"  //向后端请求的地址name="file" //文件名称auto-upload:true  //是否是自动上传:on-success="handleCovergeSuccess">//上传成功的回调函数<el-button type="primary">请选择上传视频封面</el-button>
</el-upload>
const handleSuccess = (result) => {
//响应的结果      //返回的是服务器上面的地址
console.log(result.data)
VideoData.value.videoUrl = result.data  //回调 后端返回文件在服务器上面的地址 前端拿到赋值给视频的地址。点击投稿后数据库中存放的是视频的URL
ElMessage.success('success')  //弹出消息成功
}

布局容器

<el-container>:外层容器。当子元素中包含 <el-header> 或 <el-footer> 时,全部子元素会垂直上下排列, 否则会水平左右排列。<el-header>:顶栏容器。<el-aside>:侧边栏容器。<el-main>:主要区域容器。<el-footer>:底栏容器。

vue3中的创建属性使用的是ref,这个创建的是对象,如果想要获取属性需要通过.value拿到
自动展开:当传递响应式对象给一个函数时,vue3会自动响应处理系统,使得可以直接传递整个对象而不用手动解包.value属

image.png

ElMessage消息提示

方法成功后需要提示消息,用的ElMessage。

import { ElMessage } from 'element-plus'ElMessage.error('服务异常');
ElMessage.success('登录成功!')
<script setup>
import {Search, Download, Upload, ArrowRight
} from '@element-plus/icons-vue'
import  {ElMessage} from 'element-plus'//箭头函数
const show=()=>{// ElMessage.success('成功')ElMessage.error('失败')
}
</script><template>
<el-button  type="primary" :icon="Search" @click="show()">登录按钮</el-button>
</template>

MessageBox 消息提示框

  //confirm确认吗   内容 标题   确定按钮 取消按钮  then成功回调函数  catch 取消的回调函数ElMessageBox.confirm('确定删除吗','删除用户',{confirmButtonText: '确定',cancelButtonText: '取消',type: 'warning'}).then(()=>{ElMessage.success('删除成功')}).catch(()=>{ElMessage.error('删除失败')})//编写退出按钮 配合路由进行跳转

image.png

User.js里面的方法:
get请求用查询字符串,传入对象的时候用{}包裹。 @RequestParam
post请求携带数据,直接传入对象即可 后端用@RequestBody 对象 携带的是表单数据
还有请求是模板字符串后端用的是@pathvairable动态提取。

import request from '@/util/request.js'
//查询所有用户
export const getAllUsers = (formData) => {var params = new URLSearchParams();for (let key in formData) {params.append(key, formData[key])}//这边漏掉了一个大括号return request.get('/user/queryByPage',{params})
}
//添加用户 post请求携带数据 直接添加到data属性上面去
export const addUser = (formData) => {return request.post('/user/add', formData)
}
//更新用户  根据id和status
export const updateStatus = (id, status) => {return request.put(`/user/modifyStatus/${id}/${status}`);
}
//根据用户id得到用户 模板字符串
export const getUserById = (id) => {return request.get(`/user/query/${id}`)
}
//更新用户
export const UpdateUser = (formData) => {return request.put('/user/modify', formData)
}
//删除用户
export const deleteUser = (id) => {return request.delete(`/user/remove/${id}`)
}

Pagination分页样式

image.png

<el-pagination v-model:current-page="userList.pageNum" v-model:page-size="userList.pageSize":page-sizes="[10, 20 ,30, 50]" //有哪些选项layout="jumper, total, sizes, prev, pager, next"background :total="total"@size-change="onSizeChange"  //监听size改变@current-change="onCurrentChange"   //监听当前页改变  这两个都要重新请给后端style="margin-top: 20px; justify-content: flex-end"/>

这个代码片段是一个使用 Vue.js 和 Element UI 框架的分页组件。下面是对这个代码的分析:
. el-pagination 组件
<el-pagination> 是 Element UI 中的分页组件,用于分页显示数据列表。分页组件提供了许多属性和事件来控制分页行为和样式。
2. 属性和绑定

  • v-model:current-page="userList.pageNum":

    • 双向绑定 current-page 属性和 userList.pageNumcurrent-page 表示当前页码,userList.pageNum 是一个变量,存储当前页码的值。
  • v-model:page-size="userList.pageSize":

    • 双向绑定 page-size 属性和 userList.pageSizepage-size 表示每页显示的条目数,userList.pageSize 是一个变量,存储每页显示的条目数。
  • :page-sizes="[10, 20 ,30, 50]":

    • 绑定 page-sizes 属性,设置每页条目数的选项,这里提供了 10、20、30 和 50 条每页的选项。
  • layout="jumper, total, sizes, prev, pager, next":

    • 设置分页组件的布局,包括跳转器、总条目数、条数选择器、上一页按钮、页码按钮和下一页按钮。
  • background:

    • 添加背景样式。
  • :total="total":

    • 绑定 total 属性,总条目数。total 是一个变量,表示数据总条目数。
  • @size-change="onSizeChange":

    • 监听 size-change 事件,当每页条目数改变时触发 **onSizeChange** 方法。
  • @current-change="onCurrentChange":

    • 监听 current-change 事件,当当前页码改变时触发 **onCurrentChange** 方法。

    这个两个函数会自动有一个参数,我们需要传入这个参数。
    3. 样式

  • style="margin-top: 20px; justify-content: flex-end":

    • 设置组件的内联样式,添加顶部外边距为 20px,并将内容对齐方式设置为 flex-end,即右对齐。

表单校验

定义表单检验的规则.required:true 表示这个字段是必须的  trigger 校验触发规则  min max 表单的最大长度
const registerDataRules = ref({username: [{required: true, message: '请输入用户名', trigger: 'blur'},{min: 5, max: 16, message: '用户名的长度必须为5~16位', trigger: 'blur'}],password: [{required: true, message: '请输入密码', trigger: 'blur'},{min: 5, max: 16, message: '密码长度必须为5~16位', trigger: 'blur'}],phone: [{required: true, message: '请输入密码', trigger: 'blur'},{min: 5, max: 16, message: '密码长度必须为5~16位', trigger: 'blur'}]
})
给需要校验的表单绑定规则 一定要是form表单
:rules="registerDataRules",绑定校验的规则。给每一个form-item 绑定prop属性,prop属性对应校验里面的对象数组名称

image.png

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

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

相关文章

实战docker第一天——windows安装docker,测试,并解决被墙办法

Docker 是一个开源的容器化平台&#xff0c;它允许开发者将应用程序及其所有依赖项打包在一个名为“容器”的单独环境中&#xff0c;从而确保应用程序在任何环境下都能一致地运行。以下是 Docker 的一些核心概念及其意义&#xff1a; 容器化&#xff1a;Docker 通过将应用程序及…

带头节点单链表和无头节点--简单选择排序

带头节点单链表 void simpleselectsort(LinkList& l)//简单选择排序 { LinkList s;if (l->next NULL || l->next->next NULL)return;LinkList q l->next;//第一个节点for (; q ! NULL; q q->next){int min q->data;s q;for (LinkList pq->next;…

MOS管驱动电路阻值如何选取?以及为什么要有下拉电阻

开通时&#xff0c;电源为高电平&#xff0c;会通过Rg1给MOS的Cgs充电&#xff0c;关断时&#xff0c;Cgs通过Rg2放电.实现慢开快关的过程 如果驱动阻值太大&#xff0c;开关会很慢&#xff0c;会让MOS管的损耗增加&#xff0c;降低了效率&#xff0c;dv/dt&#xff0c;di/dt也…

SpringBoot对接Midjourney Api

提示&#xff1a;SpringBoot对接Midjourney Api 文章目录 目录 文章目录 后端代码 导包 controller层 工具类层 前端代码 申请API 测试结果 后端代码 导包 <!--添加hutool的依赖--><dependency><groupId>cn.hutool</groupId><artifactId&g…

Java设计模式之单例模式详细讲解和案例示范

单例模式&#xff08;Singleton Pattern&#xff09;是Java设计模式中最简单但却非常实用的一种。它确保一个类只有一个实例&#xff0c;并提供一个全局的访问点。本文将通过电商交易系统为例&#xff0c;详细探讨单例模式的使用场景、常见问题及解决方案。 1. 单例模式简介 …

企业产品推广系统小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;用户管理&#xff0c;活动资讯管理&#xff0c;产品分类管理&#xff0c;产品信息管理&#xff0c;用户分享管理&#xff0c;留言板管理&#xff0c;系统管理 微信端账号功能包括&#xff1a;系统首页…

【Python机器学习】NLP词频背后的含义——奇异值分解

目录 左奇异向量U 奇异值向量S 右奇异向量 SVD矩阵的方向 主题约简 奇异值分解是LSA背后的算法。我们从一个小规模的语料库开始&#xff1a; from nlpia.book.examples.ch04_catdog_lsa_sorted import lsa_models,prettify_tdmbow_svd,tfidf_svdlsa_models() print(prett…

如何消除工人们对TPM管理培训的抵触情绪?

在探讨如何消除工人们对TPM管理培训抵触情绪的问题时&#xff0c;我们首先需要深入理解这种抵触情绪的根源&#xff0c;进而设计出一套既科学又人性化的策略来逐步化解。TPM作为一种旨在通过全员参与&#xff0c;实现设备综合效率最大化的管理模式&#xff0c;其成功实施离不开…

kube-scheduler调度策略之预选策略(三)

一、概述 摘要&#xff1a;本文我们继续分析源码&#xff0c;并聚焦在预选策略的调度过程的执行。 二、正文 说明&#xff1a;基于 kubernetes v1.12.0 源码分析 上文我们说的(g *genericScheduler) Schedule()函数调用了findNodesThatFit()执行预选策略。 2.1 findNodesTha…

新手使用住宅代理有哪些常见误区?

作为新手&#xff0c;在使用住宅代理时往往会陷入一些常见误区&#xff0c;这些误区不仅可能影响到使用效果&#xff0c;甚至可能会带来安全风险。今天将与大家探讨新手在使用住宅代理时可能会遇到的几个关键误区&#xff0c;并提供相应的解决方案。误区一&#xff1a;盲目追求…

Spike-in:微生态16S扩增子绝对定量重磅上线!

16S扩增子测序是一种广泛应用于微生物群落分析的技术&#xff0c;主要用于研究环境样本中微生物的种类、丰度及其生态关系。 然而&#xff0c;传统的16S扩增子测序通常只能提供相对丰度数据&#xff0c;无法准确反映样本中各微生物的绝对数量&#xff0c;导致在一定程度上掩盖…

LACP链路聚合

链路聚合包含两种模式&#xff1a;手动负载均衡模式和LACP&#xff08;Link AggregationControl Protocol&#xff09;模式。 手工负载分担模式&#xff1a;Eth-Trunk的建立、成员接口的加入由手工配置&#xff0c;没有链路聚合控制协议的参与。该模式下所有活动链路都参与数…

如何在 MySQL 中匹配列

在 MySQL 中&#xff0c;匹配列可以通过多种方式实现&#xff0c;具体取决于你要执行的操作类型。常见的列匹配操作包括条件查询、JOIN操作、字符串匹配等。以下是具体解决的几种方式。 1、问题背景 在 MySQL 中&#xff0c;可以使用 “” 运算符来匹配列。例如&#xff1a; …

中断处理流程举例(21)

中断流程的截图&#xff1a; 下面主要就是解释这张图&#xff1a; 当中断发生之后&#xff0c;首先是硬件&#xff0c;保存&#xff23;&#xff30;&#xff33;&#xff32;到&#xff33;&#xff30;&#xff33;&#xff32;&#xff0c;设置&#xff23;&#xff30;&…

用MATLAB 画一个64QAM的星座图

由于QAM采用幅度和相位二维调制&#xff0c;其频谱效率大大提高&#xff0c;而且不同点的欧式距离也要大于调幅AM调制方式&#xff0c;QAM也是LTE和5G NR首选的调制方式&#xff0c;本期教大家画一个64QAM的星座图。 如下&#xff1a; 首先产生一个64QAM的调制数据&#xff0…

【windows】windows 如何实现 ps aux | grep xxx -c 统计某个进程数的功能?

windows 如何实现 ps aux | grep xxx -c 统计某个进程数的功能&#xff1f; 在Windows中&#xff0c;要实现类似Linux中ps aux | grep xxx -c的功能&#xff0c;即统计某个特定进程的数量&#xff0c;可以使用PowerShell或命令提示符&#xff08;cmd.exe&#xff09;来实现。 …

【学习笔记】卫星通信NTN 3GPP标准化进展分析(二)- 3GPP Release16 内容

一、引言&#xff1a; 本文来自3GPP Joern Krause, 3GPP MCC (May 14,2024) Non-Terrestrial Networks (NTN) (3gpp.org) 本文总结了NTN标准化进程以及后续的研究计划&#xff0c;是学习NTN协议的入门。 【学习笔记】卫星通信NTN 3GPP标准化进展分析&#xff08;一&#xff…

SQL-多表查询

1、多表关系 一对多、多对一&#xff1a;在多的一方建立外键&#xff0c;指向一的一方。 多对多&#xff1a;至少两个外键&#xff0c;通过中间表维护。 一对一 2、多表查询概述 3、内连接 4、外连接 5、自连接 6、联合查询 7、子查询 8、多表查询案例 # 1、多表关系 #…

【EtherCAT】运行原理

目录 1、有个兄弟提了个问题&#xff0c;如下&#xff1a; 2、EtherCAT运行原理 1、有个兄弟提了个问题&#xff0c;如下&#xff1a; “您好&#xff0c;在这篇文章中https://blog.csdn.net/qq_46211259/article/details/139824335 EtherCAT的数据区有三个子报文&#xff0c…

IP SSL证书——为IP升级加密

在数字化浪潮中&#xff0c;每一份数据传输都承载着重要信息与价值。当您的业务跨越国界&#xff0c;触及全球用户时&#xff0c;确保通信安全、提升品牌信任度&#xff0c;成为了不可或缺的一环。IP SSL证书&#xff0c;作为网络安全的守护者&#xff0c;正以其独特的优势&…