ElementUI增删改的实现及表单验证

文章目录

  • 一、准备
  • 二、添加功能
    • 2.1 新增添加按钮
    • 2.2 添加弹出框
    • 2.3 data中添加内容
    • 2.4 methods中添加相关方法
  • 三、编辑功能
    • 3.1 表格中添加编辑和删除按钮
    • 3.2 methods中添加方法
    • 3.3 修改methods中clear方法
    • 3.4 修改methods中的handleSubmit方法
  • 四、删除书籍功能
    • 4.1 往methods的handleDelete方法中添加内容
  • 五、表单验证
    • 5.1 修改弹出层
    • 5.2 在data中添加变量值

一、准备

在action.js中添加对后台请求的地址

'BOOK_ADD': '/book/addBook', //书籍添加
'BOOK_EDIT': '/book/editBook', //书籍编辑
'BOOK_DEL': '/book/delBook', //书籍删除

二、添加功能

2.1 新增添加按钮

<template><div style="padding: 20px">....//新增语句开始<el-button type="success" @click="onAdd()">新增</el-button>//新增语句结束<!-- 数据表格 --><el-table :data="tableData" style="width: 100%">.....</el-table>...</div>
</template>

2.2 添加弹出框

<!--添加删除的弹出框-->
<el-dialog title="新增书籍" :visible.sync="dialogFormVisible"><el-form :model="book"><el-form-item label="书籍名称" :label-width="formLabelWidth"><el-input v-model="book.bookname" autocomplete="off"></el-input></el-form-item><el-form-item label="书籍价格" :label-width="formLabelWidth"><el-input v-model="book.price" autocomplete="off"></el-input></el-form-item><el-form-item label="书籍类型" :label-width="formLabelWidth"><el-select v-model="book.booktype" placeholder="请选择书籍类型"><el-option v-for="by in booktypes" :label="by.name" :value="by.name" 						:key="by.id"></el-option></el-select></el-form-item></el-form><div slot="footer" class="dialog-footer"><el-button @click="handleCancel">取 消</el-button><el-button type="primary" @click="handleSubmit">确 定</el-button></div>
</el-dialog>

2.3 data中添加内容

book: {id: '',bookname: '',price: '',booktype: ''
},
dialogFormVisible: false,
formLabelWidth: '100px',
booktypes: [{id: 1, name: '玄幻'}, {id: 2, name: '名著'}, {id: 3, name: '计算机'}],
title: '新增书籍'

2.4 methods中添加相关方法

clear(){this.dialogFormVisible = false;this.book.booktype = '';this.book.bookname = '';this.book.price = '';
},
onAdd() {this.dialogFormVisible = true;
},
handleSubmit(){let url = this.axios.urls.BOOK_ADD;let params = {id: this.book.id,bookname: this.book.bookname,price: this.book.price,booktype: this.book.booktype}this.axios.post(url,params).then(resp=>{if(resp.data.success){this.$message({message: resp.data.msg,type: 'success'});this.clear();let params = {bookname: this.bookname}this.query(params);}else{this.$message({message: resp.data.msg,type: 'error'})}}).catch(err=>{})
},
handleCancel(){this.clear();
},

在这里插入图片描述

三、编辑功能

3.1 表格中添加编辑和删除按钮

<el-table-column label="操作"><template slot-scope="scope"><el-button size="mini"@click="handleEdit(scope.$index, scope.row)">编辑</el-button><el-button size="mini" type="danger"@click="handleDelete(scope.$index, scope.row)">删除</el-button></template>
</el-table-column>

3.2 methods中添加方法

handleDelete(idx, row) {},
handleEdit(idx, row) {this.dialogFormVisible = true;this.book.id = row.id;this.book.bookname = row.bookname;this.book.booktype = row.booktype;this.book.price = row.price;this.title = '编辑书籍';
},

3.3 修改methods中clear方法

clear() {this.dialogFormVisible = false;this.book.booktype = '';this.book.bookname = '';this.book.price = '';this.title = '';
},

3.4 修改methods中的handleSubmit方法

handleSubmit() {let url = '';let params;if (this.title == '新增书籍') {url = this.axios.urls.BOOK_ADD;params = {bookname: this.book.bookname,price: this.book.price,booktype: this.book.booktype}} else {url = this.axios.urls.BOOK_EDIT;params = {id: this.book.id,bookname: this.book.bookname,price: this.book.price,booktype: this.book.booktype}}this.axios.post(url, params).then(resp => {if (resp.data.success) {this.$message({message: resp.data.msg,type: 'success'});this.clear();let params = {bookname: this.bookname}this.query(params);} else {this.$message({message: resp.data.msg,type: 'error'})}}).catch(err => {})
},

在这里插入图片描述

四、删除书籍功能

4.1 往methods的handleDelete方法中添加内容

handleDelete(idx, row) {this.$confirm('您确定删除id为' + row.id + '的书籍吗?', '提示', {confirmButtonText: '确定',cancelButtonText: '取消',type: 'warning'}).then(() => {let url = this.axios.urls.BOOK_DEL;this.axios.post(url, {id: row.id}).then(resp => {if (resp.data.success) {this.$message({message: resp.data.msg,type: 'success'});this.clear();let params = {bookname: this.bookname}this.query(params);} else {this.$message({message: resp.data.msg,type: 'error'})}})}).catch(() => {this.$message({type: 'info',message: '已取消删除'});});
},

在这里插入图片描述

五、表单验证

5.1 修改弹出层

 <!--添加删除的弹出框-->
<el-dialog :title="title" :visible.sync="dialogFormVisible"><el-form :model="book" :rules="rules" ref="book"><el-form-item label="书籍名称" :label-width="formLabelWidth" prop="bookname"><el-input v-model="book.bookname" autocomplete="off"></el-input></el-form-item><el-form-item label="书籍价格" :label-width="formLabelWidth" prop="price"><el-input v-model.number="book.price" autocomplete="off"></el-input></el-form-item><el-form-item label="书籍类型" :label-width="formLabelWidth" prop="booktype"><el-select v-model="book.booktype" placeholder="请选择书籍类型"><el-option v-for="by in booktypes" :label="by.name" :value="by.name" :key="by.id"></el-option></el-select></el-form-item></el-form><div slot="footer" class="dialog-footer"><el-button @click="handleCancel">取 消</el-button><el-button type="primary" @click="handleSubmit">确 定</el-button></div>
</el-dialog>

5.2 在data中添加变量值

rules:
{bookname: [{required: true, message: '请输入书本名称', trigger: 'blur'},{min: 1, message: '长度必须在1个字符以上', trigger: 'blur'}],price: [{required: true, message: '请输入书本价格', trigger: 'blur'},{type: 'number', message: '必须为数字', trigger: 'blur'}],booktype: [{required: true, message: '请选择书籍类型', trigger: 'blur'}]
}

在这里插入图片描述

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

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

相关文章

【LeetCode刷题笔记】哈希查找

771. 宝石与石头 解题思路&#xff1a; 1. HashSet &#xff0c;把所有 宝石 加入 set , 然后遍历检查 每一块石头是否包含在set中 &#xff0c;若包含就是宝石。 2. 计数数组map, 把所有 宝石 进行 count 数组 计数 &#xff0c;, 然后遍历检查 每一块石头是否 count[stone] …

算法错题簿(持续更新)

自用算法错题簿&#xff0c;按算法与数据结构分类 python1、二维矩阵&#xff1a;记忆化搜索dp2、图论&#xff1a;DFS3、回溯&#xff1a;129612964、二叉树&#xff1a;贪心算法5、字符串&#xff1a;记忆化搜索6、01字符串反转&#xff1a;结论题7、二进制数&#xff1a;逆向…

高效节能双冷源空调架构在某新建数据中心项目中的应用

随着互联网、通信、金融等行业的发展&#xff0c;数据中心产业迈入高质量发展新阶段&#xff0c;在国家“双碳”战略目标和“东数西算”工程的有力指引下&#xff0c;数据中心加快向创新技术、强大算力、超高能效为特征的方向演进。数据中心已经成为支撑经济社会数字化转型必不…

Linux系统管理:虚拟机Centos Stream 9安装

目录 一、理论 1.Centos Stream 9 二、实验 1.虚拟机Centos Stream 9安装准备阶段 2.安装Centos Stream 9 3.进入系统 一、理论 1.Centos Stream 9 (1) 简介 CentOS Stream 是一种 Linux 操作系统。安装此操作系统的难题在于&#xff0c;在安装此系统之前&#xff0c…

想要用Chat GPT写申请文书?先看各大名校招生官对它的态度是什么?

新的申请季已经正式开始&#xff0c;一些热门项目的ED截止日期也不再遥远&#xff0c;因此很多准留学生们都已经开始了关于文书的创作。 而随着科技的不断发展&#xff0c;以ChatGPT为首的一众AI工具也作为一种辅助手段愈发融入了我们的生活。 那么不免就会有一些同学在准备申…

户外led显示屏中的裸眼3D效果是怎么做出来的?

近几年&#xff0c;裸眼3D成了一个热点词汇&#xff0c;但凡它出现的地方都会迅速成为网络热门话题和网红打卡点。裸眼3D大屏凭借其立体逼真的画面显示效果&#xff0c;带给人们新颖震撼的视觉体验&#xff0c;不仅成为户外广告的“新宠”&#xff0c;还成为了城市的新地标&…

Java 获取服务器资源(内存、负载、磁盘容量)

1.说明 我们经常通过SSH终端发送shell命令进行服务器运维&#xff0c;从而获取到服务器的各种资源&#xff0c;按照这个思路&#xff0c;我们可以利用Java做一个定时任务&#xff0c;定时采集服务器资源使用情况&#xff0c;从而实现服务器资源的动态呈现。 2.封装SSH操作方法…

若依微服务前后端部署启动流程(只记录)

若依官网&#xff1a;https://www.ruoyi.vip/ 若依源码下载&#xff0c;直接zip既可&#xff1a;RuoYi-Cloud: &#x1f389; 基于Spring Boot、Spring Cloud & Alibaba的分布式微服务架构权限管理系统&#xff0c;同时提供了 Vue3 的版本 下载解压&#xff0c;导入 idea&…

Jenkins 添加节点Node报错JNI error has occurred UnsupportedClassVersionError

节点日志 报错信息如下 Error: A JNI error has occurred, please check your installation and try again Exception in thread “main” java.lang.UnsupportedClassVersionError: hudson/remoting/Launcher has been compiled by a more recent version of the Java Runtime…

RabbitMQ与springboot整合

1、基本概念 Server&#xff1a;接收客户端的连接&#xff0c;实现AMQP实体服务&#xff1b;Connection&#xff1a;连接&#xff0c;应用程序与Server的网络连接&#xff0c;TCP连接&#xff1b;Channel&#xff1a;信道&#xff0c;消息读写等操作在信道中进行。客户端可以建…

Congestion Control for Large-Scale RDMA Deployments

文章目录 IntroductionDCQCNBuffer Setting Introduction PFC是粗粒度的流量控制机制&#xff0c;在端口层面发挥作用&#xff0c;不区别不同的流。这会导致很多弊端&#xff0c;比如不公平&#xff0c;受害流等。 解决PFC限制的解决方法是flow-level的拥塞控制&#xff0c;D…

目标识别项目实战:基于Yolov7-LPRNet的动态车牌目标识别算法模型(三)

前言 目标识别如今以及迭代了这么多年&#xff0c;普遍受大家认可和欢迎的目标识别框架就是YOLO了。按照官方描述&#xff0c;YOLOv8 是一个 SOTA 模型&#xff0c;它建立在以前 YOLO 版本的成功基础上&#xff0c;并引入了新的功能和改进&#xff0c;以进一步提升性能和灵活性…