CUD表单验证+增删改查

目录

  • CUD表单验证+增删改查
  • 主要内容
  • 代码部分

主要内容

1.后台数据接口准备
增删改接口

2.Dialog弹出框

2.1 基本结构

 <el-dialog :title="title" :visible.sync="dialogFormVisible" @close="dialogClose"><!-- form表单 --><el-form :label-position="labelPosition" :model="bookForm" :rules="rules" ref="bookForm">...</el-form></el-dialog>

注1:隐藏显示设置,通过Vue实例对象中的dialogFormVisible="true|false"来控制dialog显示隐藏
:visible.sync=“dialogFormVisible”

注2:通过close或closed事件,在关闭dialog弹出框时清空form表单数据和验证信息;
@close=“dialogClose”

3.表单

3.1 基本结构

...

注1::label-position设置表单对齐方式
注2:设置表单元素属性双向绑定的对象属性名称

   data: function() {return {bookForm: {id: null,bookname: null,price: '',booktype: null}};}

3.2 表单验证

  <el-form :model="bookForm" :rules="rules" ref="bookForm">...</el-form>

注1::rules="rules"表单验证定义,只需要通过 rules 属性传入约定的验证规则

   //将el-form-item的prop属性设置为需校验的字段名即可,如下:<el-form-item label="书本名称" prop="bookname" :label-width="formLabelWidth"><el-input v-model="bookForm.bookname" autocomplete="off"></el-input></el-form-item>//在Vue实例的data属性中定义表单验证规则,如下:rules: {bookname: [{required: true,message: '请输入书本名称!',trigger: 'blur'},{min: 3,max: 6,message: '长度必须在3-6个字符之间',trigger: 'blur'}],...}

注2:有多个表单,怎么在提交进行区分?

   我们在rules这里写了对表单的验证规则,但是我们如何在methods里进行指定的表单进行认证,所以我们一开始就在el-form里写了 ref="ruleForm",我们在methods里就可以用

注3:清空表单验证信息

   this.$refs[formName].resetFields();补充说明:formName是指<el-form ref="bookForm">中定义的ref属性名

注4:表单重置时必须先清空表单验证信息,再清空表单数据信息

   //通过form表单的ref属性来清空表单验证信息this.$refs['bookForm'].resetFields();//清空上一次表单的数据信息this.bookForm.id = null;this.bookForm.bookname = null;this.bookForm.price = null;this.bookForm.booktype = null;
  1. CUD

2.1 新增

在事件中设置dialogFormVisible="true"即可打开dialog弹出框

2.2 添加修改/删除按钮

2.3 在上使用特殊的slot-scope 特性,可以接收传递给插槽的prop

slot-scope:类似将每一行的row对象封装到槽中,之后直接从scope中获取row对象信息和行索引index信息即可

代码部分

<!-- 编辑窗体 --><el-dialog :title="title" :visible.sync="editFormVisible" width="30%" @before-close="closeDialog"><el-form label-width="120px" :model="editForm" :rules="rules" ref="editForm"><el-form-item label="文章标题" prop="title"><el-input size="small" v-model="editForm.title" auto-complete="off" placeholder="请输入文章标题"></el-input></el-form-item><el-form-item label="文章内容" prop="body"><el-input size="small" v-model="editForm.body" auto-complete="off" placeholder="请输入文章内容"></el-input></el-form-item></el-form><div slot="footer" class="dialog-footer"><el-button size="small" @click="closeDialog">取消</el-button><el-button size="small" type="primary" class="title" @click="submitForm('editForm')">保存</el-button></div></el-dialog>

加rules的验证

rules: {title: [{required: true,message: '请输入文章标题',trigger: 'blur'},{min: 3,max: 5,message: '长度在 3 到 5 个字符',trigger: 'blur'}],body: [{required: true,message: '请输入文章内容',trigger: 'blur'}]}

新增页面

<template><div><!-- 搜索框 --><el-form :inline="true" :model="formInline"><el-form-item label="搜索:"><el-input size="small" v-model="formInline.title" placeholder="请输入文章标题"></el-input></el-form-item><el-form-item><el-button size="small" type="primary" @click="search">查询</el-button><el-button size="small" type="primary" @click="handleAdd">新增</el-button></el-form-item></el-form><!-- 表格数据 --><el-table size="small" :data="listData" style="width: 100%"><el-table-column align="center" type="selection" min-width="1"></el-table-column><el-table-column prop="id" label="文章id" min-width="1"></el-table-column><el-table-column prop="title" label="文章标题" min-width="2"></el-table-column><el-table-column prop="body" label="文章内容" min-width="3"></el-table-column><el-table-column label="操作" min-width="2"><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></el-table><!-- 分页条current-page=传输当前页page-sizes=传输的页码--><el-pagination style="margin-top: 20px;" @size-change="handleSizeChange" @current-change="handleCurrentChange":current-page="formInline.page" :page-sizes="[10, 20, 30, 50]" :page-size="100" layout="total, sizes, prev, pager, next, jumper":total="total"></el-pagination><!-- 编辑窗体 --><el-dialog :title="title" :visible.sync="editFormVisible" width="30%" @before-close="closeDialog"><el-form label-width="120px" :model="editForm" :rules="rules" ref="editForm"><el-form-item label="文章标题" prop="title"><el-input size="small" v-model="editForm.title" auto-complete="off" placeholder="请输入文章标题"></el-input></el-form-item><el-form-item label="文章内容" prop="body"><el-input size="small" v-model="editForm.body" auto-complete="off" placeholder="请输入文章内容"></el-input></el-form-item></el-form><div slot="footer" class="dialog-footer"><el-button size="small" @click="closeDialog">取消</el-button><el-button size="small" type="primary" class="title" @click="submitForm('editForm')">保存</el-button></div></el-dialog></div>
</template><script>export default {data() {return {listData: [],formInline: {page: 1,rows: 10,title: ''},total: 0,editForm: {id: 0,title: '',body: ''},/* 是否打开窗体,默认关闭 */editFormVisible: false,title: '',rules: {title: [{required: true,message: '请输入文章标题',trigger: 'blur'},{min: 3,max: 5,message: '长度在 3 到 5 个字符',trigger: 'blur'}],body: [{required: true,message: '请输入文章内容',trigger: 'blur'}]}};},methods: {doSearch(params) {let url = this.axios.urls.SYSTEM_ARTICLE_LISTthis.axios.post(url, params).then((response) => {console.log(response);this.listData = response.data.result;this.total = response.data.pageBean.total;}).catch(function(error) {console.log(error);});},handleSizeChange(rows) {console.log("页大小发生改变" + rows)this.formInline.page = 1;this.formInline.rows = rows;this.search();},handleCurrentChange(page) {console.log("当前页发生改变" + page)this.formInline.page = page;this.search();},search() {this.doSearch(this.formInline);},closeDialog() {},submitForm(formName) {/* 表单验证 */this.$refs[formName].validate((valid) => {if (valid) {//移交后台数据let url;/* 判断调用新增或修改方法 */if(this.editForm.id == 0){url = this.axios.urls.SYSTEM_ARTICLE_ADD;}else{url = this.axios.urls.SYSTEM_ARTICLE_EDIT;}this.axios.post(url,this.editForm).then((response) => {console.log(response);//操作成功后关闭框,并自动刷新this.clearData();  this.search();}).catch(function(error) {console.log(error);});      } else {console.log('error submit!!');return false;}});},/* 新增 */handleAdd() {this.clearData();this.editFormVisible = true;this.title = "新增文章"},/* 修改 */handleEdit(index,row){this.editFormVisible = true;this.title = "编辑文章";this.editForm.id=row.id;this.editForm.title=row.title;this.editForm.body=row.body;},/* 删除 */handleDelete(index,row){let url = this.axios.urls.SYSTEM_ARTICLE_DELthis.axios.post(url, {id:row.id}).then((response) => {console.log(response);alert('删除成功');//操作成功后关闭框,并自动刷新this.clearData();this.search();}).catch(function(error) {console.log(error);});},/* 清空数据 */clearData(){this.editFormVisible = false;this.title = "";this.editForm.id=0;this.editForm.title='';this.editForm.body='';}},created() {this.doSearch({});}}
</script><style>
</style>

CUD表单验证+增删改查相关推荐

  1. SpringMVC表单数据增删改查简易梳理(含实例代码)

    使用SpringMVC创建表单进行数据的增删改查是javaEE开发的基本功,本人根据自己最近开发的基于jeecms框架的网站平台来梳理数据增删改查的思路. 首先根据所需表单页面设计数据库,定义不同字段 ...

  2. Online Coding开发模式 (通过在线配置实现一个表模型的增删改查功能,无需写任何代码)

    JEECG 智能开发平台. 开发模式由代码生成器转变为Online Coding模式                      (通过在线配置实现一个表模型的增删改查功能,无需一行代码,支持用户自定义 ...

  3. MySQL学习总结(2) --- 数据表管理(增删改查)、使用DQL查询数据(SELECT)

    MySQL学习总结(2) - 数据表管理(增删改查).使用DQL查询数据(SELECT) 1. 数据管理(增删改查) 数据库数据管理方法: a.通过SQLyog等管理工具管理数据库数据 b. 通过DM ...

  4. Java程序-单链表增删改查(实现对水浒人物的增删改查操作)

    单链表增删改查(实现对水浒人物的增删改查操作) 前言 一.链表(Linked List)介绍 二.应用实例 1.问题描述 2.代码实现 总结 前言 参考:B站,尚硅谷数据结构与算法 课程 一.链表(L ...

  5. mysql用创建的用户登陆并修改表格_MySQL 基础学习二:创建一个用户表,并增删改查...

    MySQL 基础学习二:创建一个用户表,并 增删改查 提示:MySQL 命令建议都用大写,因为小写运行时,还是翻译成大写的. 第一步,创建一个用户表 1,打开控制台,进入数据库 C:\Users\Ad ...

  6. C案例:创建顺序表并进行增删改查操作

    一.顺序表概述 顺序表是在计算机内存中以数组的形式保存的线性表,线性表的顺序存储是指用一组地址连续的存储单元依次存储线性表中的各个元素.使得线性表中在逻辑结构上相邻的数据元素存储在相邻的物理存储单元中 ...

  7. 【Laravel】Laravel-admin后台框架-2创建数据表建立模块增删改查CURD(2)

    前言 前面的操作我们已经能够 安装Laravel-admin 创建数据表并生成模型 修改模型实现按业务写入数据 可以参考之前的文章 [Laravel]Laravel-admin后台框架-2创建数据表建 ...

  8. SAP abap内表分类与增删改查操作

    SAP abap内表分类与增删改查操作 1.内表的分类 1.1.标准表 (standard table ) 系统为该表每一行生成一个院级索引.填表是可以将数据附加在现有行之后,也可以插入到指定的位置, ...

  9. 详细记录->使用Maven+SSM框架,实现单表简单的增删改查

    话不多说,ssm框架整合小栗子 步骤 1.创建web Maven项目 2.创建数据库配置文件:jdbc.properties 3.项目总体目录: 4.添加spring配置文件:applicationC ...

  10. 数据结构,单链表讲解,并使用Java代码实现单链表增删改查【尾部添加,中间插入、修改节点、删除节点、展示链表】

    文章目录 单链表 什么是单链表,链式存储结构详解 链表的节点 头节点,头指针和首元节点 单链表的实现 1.尾部添加新节点 思路分析 代码实现 注意事项 2.按照编号插入新节点 思路分析 代码实现 注意 ...

最新文章

  1. Ubuntu上通过android toolchain交叉编译Valgrind操作步骤
  2. 7-1 查找书籍(20 分)(程序设计天梯赛模拟练习题)
  3. 精简教程版 | 100行代码入手天池CV赛事
  4. 不同位数编译器下的基本数据类型所占的字节数(字节大小):
  5. HDU 2177HDU 2176
  6. 认识微服务-服务架构演变
  7. python读取文件最后一行
  8. 北方大学 ACM 多校训练赛 第十五场 买花
  9. mds聚类matlab,机器学习C9笔记:MDS聚类可视化
  10. 岁月温柔-8 妈妈的抑郁症?
  11. 电脑连不上ishanghai_ishanghai用电脑肿么连网
  12. 接口用例设计从哪些方面考虑
  13. TLE8242-2L的开关/比例电磁阀驱动电路
  14. 使用自定义RRT*全局规划器建图导航
  15. 防静电包装材料应用越来越广泛,这些变化你知道吗?
  16. 石榴算法?低质量页面终结者
  17. 【报告分享】2021旅游大数据系列报告-周边游-马蜂窝(附下载)
  18. ArcMap安装与使用入门
  19. stc89c51单片机音乐盒系统设计_801【毕设课设】基于单片机心型音乐盒系统DIY设计...
  20. windows下执行.sh脚本

热门文章

  1. 红警地图编辑器的使用方法
  2. 筒灯可以执行CAN/ULC-S101测试吗?与BS 476-21区别大吗?
  3. java deflate,java.util.zip.Deflater.deflate(byte[] b, int off, int len)方法示例
  4. Windows基础 加固
  5. 读书百客:《月夜》鉴赏
  6. Noisy machines: understanding noisy NNs and enhancing robustness to analog hardware errors
  7. 达内python第一次月考题目_第一次月考总结
  8. Linux内核抢占机制(preempt)
  9. Java实现 LeetCode 717 1比特与2比特字符(暴力)
  10. 0 win10重装partition_win10换win7,U盘装机错误,Error:partition 0 ended too near怎么回事?怎么修?...