element-plus学习 -2025/3/18

news/2025/3/18 23:13:28/文章来源:https://www.cnblogs.com/XYu1230/p/18779914

{ ...this.form } 是 JavaScript 中的 ​扩展运算符(Spread Operator)​,它的作用是将 this.form 对象的所有属性“展开”到一个新的对象中
例如
form :{
name : '',
score:''
}

简易学生分数管理系统 element-plus实现

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/element-plus/dist/index.css" /><script src="https://cdn.jsdelivr.net/npm/vue@3"></script><script src="https://cdn.jsdelivr.net/npm/element-plus"></script><title>学生成绩管理系统</title><style>.red-score {color: red;font-weight: bold;}</style>
</head><body><div id="app"><!-- 添加学生表单 --><el-form ref="form" :model="form" :rules="rules" label-width="80px"><el-form-item label="姓名" prop="name"><el-input placeholder="请填写姓名" :maxlength="20" v-model="form.name"></el-input></el-form-item><el-form-item label="分数" prop="score"><el-input placeholder="请填写分数" v-model.number="form.score"></el-input></el-form-item></el-form><el-button type="primary" @click="addStudent">添加学生</el-button><!-- 分割线 --><el-divider direction="horizontal" content-position="center"></el-divider><div><!-- 搜索框 --><el-form ref="searchForm" :model="searchForm" label-width="80px"><el-form-item label="姓名" prop="name"><el-input placeholder="请输入姓名" v-model="searchForm.name" style="width: 240px"></el-input></el-form-item></el-form><!-- 成绩大于 60 的筛选 --><el-checkbox v-model="filterByScore">成绩大于 60</el-checkbox><div><el-form ref="form" :model="form" :rules="rules" label-width="80px"><el-form-item><el-input v-model.number="minScore" placeholder="最低分" type="number" :min="0" :max="100"style="width: 100px;"></el-input><el-input v-model.number="maxScore" placeholder="最高分" type="number" :min="0" :max="100"style="width: 100px;"></el-input><el-button type="text" @click="resetScoreFilter">清除</el-button></el-form-item></el-form></div></div><!-- 学生表格 --><el-table :data="filteredStudentList" border style="margin-top: 20px"><el-table-column type="index" label="序号"></el-table-column><el-table-column label="姓名" prop="name"></el-table-column><el-table-column label="分数"><template #default="{ row }"><span :class="{ 'red-score': row.score < 60 }">{{ row.score }}</span></template></el-table-column><el-table-column label="操作" width="120"><template #default="{ $index }"><el-button type="danger" size="small" @click="deleteStudent($index)">删除</el-button></template></el-table-column></el-table></div><script>const { ElMessage } = ElementPlus;const { createApp } = Vue;const app = createApp({data() {return {studentList: [{ name: '张三', score: 100 },{ name: '李四', score: 90 },{ name: '王五', score: 80 },{ name: '赵六', score: 50 },{ name: '钱七', score: 40 }],form: {name: '',score: ''},searchForm: {name: ''},minScore: 0, // 默认值 0maxScore: 100, // 默认值 100filterByScore: false,rules: {name: [{ required: true, message: '请输入姓名', trigger: 'blur' },],score: [{ required: true, message: '请输入分数', trigger: 'blur' },{ type: 'number', message: '分数必须为数字值' },{validator: (rule, value, callback) => {if (value < 0 || value > 100) {callback(new Error('分数必须在 0-100 之间'));} else {callback();}}, trigger: 'blur'}]}};},computed: {filteredStudentList() {let list = this.studentList;// 姓名筛选if (this.searchForm.name) {list = list.filter(student =>student.name.includes(this.searchForm.name));}// 分数区间筛选if (this.minScore != null || this.maxScore != null) {list = list.filter(student => {const minMatch = this.minScore == null || student.score >= this.minScore;const maxMatch = this.maxScore == null || student.score <= this.maxScore;return minMatch && maxMatch;});}// 成绩大于 60 的筛选if (this.filterByScore) {list = list.filter(student => student.score > 60);}return list;}},methods: {addStudent() {this.$refs.form.validate((valid) => {if (valid) {this.studentList.push({ ...this.form });this.$refs.form.resetFields();ElMessage.success('添加成功');} else {ElMessage.error('添加失败');}});},query() {ElMessage.info(`找到 ${this.filteredStudentList.length} 条记录`);},deleteStudent(index) {this.studentList.splice(index, 1);ElMessage.success('删除成功');},// 重置分数筛选resetScoreFilter() {this.minScore = 0; // 恢复默认值this.maxScore = 100; // 恢复默认值ElMessage.success('分数筛选已重置');}}});app.use(ElementPlus);app.mount('#app');</script>
</body></html>

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

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

相关文章

web161笔记(getimagesize()图片文件头检测)

这次上传失败了,尝试在头部加了图片文件头,就过去了,所以这里应该是用了getimagesize()进行检测getimagesize(): 会对目标文件的16进制去进行一个读取,去读取头几个字符串是不是符合图片的要求所以在上题的基础上都加个GIF89a图片头就可以了 GIF89a加个图⽚的头欺骗检测 .u…

MIT6.5840 2024 Spring Lab1

MIT6.5840 2024 Spring Lab1 前言本文主要作为笔记使用,这次实验基本是边查GO的语法边做的,所以代码写的不够优雅,无法充分发挥GO的一些特性,因此本文的代码实现有很大的优化空间,欢迎各位大佬指正,希望本文能给一些正在学习的小伙伴提供一些思路。最后希望小伙伴们不要抄代码,…

OP222机器人与柔性振动盘交互逻辑

1.机器人运行逻辑主体逻辑就是PLC发送取料指令后,机器人向柔性振动系统索要OK件的坐标-->柔性振动系统接收到指令后拍照,识别出OK件就发送其坐标,找不到OK件就振动一下再拍照-->机器人通过获取到的坐标去取料-->取料后检查真空吸盘负压信号,如果吸住了即取料成功,…

web157-web159笔记(+分号;过滤+()过滤)

web157 .user.ini正常上传了,但是在传mumuzi.png的时候出错看来⼜过滤了什么不知名的东⻄,测试删掉system报错,tac报错,然后发现是分号的问题。这⾥ 使⽤反引号(相当于shell_exec() )<?=`tac ../f*`?> (后来发现短标签可以不要分号…

20244213 实验一《Python程序设计》实验报告

实验一 课程:《Python程序设计》 班级: 2442 姓名: 孙爱宣 学号:20244213 实验教师:王志强 实验日期:2025年3月18日 必修/选修: 公选课 1.实验内容 1.熟悉Python开发环境; 2.练习Python运行、调试技能; 3.编写程序,练习变量和类型、字符串、对象、缩进和注释等;编…

web154-web156笔记(图片内容过滤php-短标签形式转换)

继续按照上题步骤,传一个.user.ini文件,接着在上传图片马的时候报错了 解码后显示的文字是不支持格式,说明可能内容里的php被ban了,改成短标签的形式再上传,而且末尾不能有php,做任意匹配,可以通过 短标签形式:<?=system("tac ../f*");?> 原来…

Netty基础—8.Netty实现私有协议栈

大纲 1.私有协议介绍 2.私有协议的通信模型 3.私有协议栈的消息定义 4.私有协议栈链路的建立 5.私有协议栈链路的关闭 6.私有协议栈的心跳机制 7.私有协议栈的重连机制 8.私有协议栈的重复登录保护 9.私有协议栈核心的ChannelHandler 10.私有协议栈的客户端和服务端 11.私有协议…

10. PWM输出

一、PWM简介PWM(Pulse Width Modulation),简称脉宽调制,是一种将模拟信号变为脉冲信号的计数。PWM 可以控制 LED 亮度、直流电机的转速等。PWM 的主要参数如下:PWM 频率。PWM 频率是 PWM 信号在 1s 内从高电平到低电平再回到高电平的次数,也就是说 1s 内有多少个 PWM 周期…

memcached DRDOS攻击实验

memcached DRDOS攻击实验 一、前提 关于drdos DRDoS(Distributed Reflection Denial of Service) 指的是利用IP Spoofing技术,构造带有受害者IP的数据包,发送给肉鸡,然后肉鸡对受害者IP做出大量回应,造成拒绝服务。 关于memcached命令 第一个是上传有效载荷Memcached set 命…

USB分类

USB特点差分传输 差错管理 恢复机制协议标准左边是原标准,后面是新标准USB1.1:低速、全速 USB2.高速 USB3.0 8b/10b编码 增加一对超高速差分线 USB3.1 采用 128b/132b编码,速度提升一倍 USB3.2 增加一对超高速传输通道,速度再次翻倍,只在C口上运行速度等级1.5Mbps/12M/480M…

0318- Wifi模式选择,信道选择

前言 在设置 H3C 路由器的时候(管理地址居然不是192.168.0.1,而是 http://192.168.124.1/),我发现 有下面的3种设置无线模式 无线频宽 无线信道Wifi 模式选择 推荐 n-only 也就是 Wifi-4 及以上的协议模式 其他的都是古早协议了,如果家里没有那种老设备就完全不需要考虑兼容…

20244214 实验一《Python程序设计》实验报告

20244214 2024-2025-2 《Python程序设计》实验一报告 课程:《Python程序设计》 班级: 2442 姓名: 张家乐 学号:20244214 实验教师:王志强 实验日期:2025年3月18日 必修/选修: 公选课 1.实验内容 1.熟悉Python开发环境; 2.练习Python运行、调试技能; 3.编写程序,练…