1. 表单验证

Form组件提供了表单验证的功能,只需要通过 rules 属性传入约定的验证规则,
   并将Form-Item的prop属性设置为需校验的字段名即可
  
   <el-form-item label="活动名称" prop="name">
   <el-form :model="ruleForm" :rules="rules" ref="ruleForm"

1、

  1. <el-dialog :title="title" :visible.sync="editFormVisible" width="30%" @click="closeDialog">
  2. <el-form label-width="120px" :model="editForm" :rules="rules" ref="editForm">
  3. <el-form-item label="文章标题" prop="title">
  4. <el-input size="small" v-model="editForm.title" auto-complete="off" placeholder="请输入文章标题"></el-input>
  5. </el-form-item>
  6. <el-form-item label="文章内容" prop="body">
  7. <el-input size="small" v-model="editForm.body" auto-complete="off" placeholder="请输入文章内容"></el-input>
  8. </el-form-item>
  9. </el-form>
  10. <div slot="footer" class="dialog-footer">
  11. <el-button size="small" @click="closeDialog">取消</el-button>
  12. <el-button size="small" type="primary" class="title" @click="submitForm('editForm')">保存</el-button>
  13. </div>
  14. </el-dialog>

2、

  1. rules: {
  2. title: [{
  3. required: true,
  4. message: '请输入文章标题',
  5. trigger: 'blur'
  6. },
  7. {
  8. min: 3,
  9. max: 5,
  10. message: '标题长度在 3 到 5 个字符',
  11. trigger: 'blur'
  12. }
  13. ],
  14. body: [{
  15. required: true,
  16. message: '请输入文章内容',
  17. trigger: 'change'
  18. }]
  19. }

2、数据增删改

  1. <template>
  2. <div>
  3. <!-- 搜索筛选 -->
  4. <el-form :inline="true" :model="formInline" class="user-search">
  5. <el-form-item label="搜索:">
  6. <el-input size="small" v-model="formInline.title" placeholder="输入文章标题"></el-input>
  7. </el-form-item>
  8. <el-form-item>
  9. <el-button size="small" type="primary" icon="el-icon-search" @click="search">搜索</el-button>
  10. <el-button size="small" type="primary" icon="el-icon-plus" @click="handleAdd()">添加</el-button>
  11. </el-form-item>
  12. </el-form>
  13. <!--列表-->
  14. <el-table size="small" :data="listData" border element-loading-text="拼命加载中" style="min-width: 1;">
  15. <el-table-column align="center" type="selection" min-width="1">
  16. </el-table-column>
  17. <el-table-column sortable prop="id" label="文章的ID" min-width="1">
  18. </el-table-column>
  19. <el-table-column sortable prop="title" label="文章的标题" min-width="2">
  20. </el-table-column>
  21. <el-table-column sortable prop="body" label="文章的内容" min-width="4">
  22. </el-table-column>
  23. <el-table-column align="center" label="操作" min-width="2">
  24. <template slot-scope="scope">
  25. <el-button size="mini" @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
  26. <el-button size="mini" type="danger" @click="deleteUser(scope.$index, scope.row)">删除</el-button>
  27. </template>
  28. </el-table-column>
  29. </el-table>
  30. <!-- 分页条 -->
  31. <el-pagination style="margin-top: 20px;" @size-change="handleSizeChange" @current-change="handleCurrentChange"
  32. :current-page="formInline.page" :page-sizes="[10, 20, 30, 50]" :page-size="100" layout="total, sizes, prev, pager, next, jumper"
  33. :total="total">
  34. </el-pagination>
  35.  
  36. <!-- 编辑界面 -->
  37. <el-dialog :title="title" :visible.sync="editFormVisible" width="30%" @click="closeDialog">
  38. <el-form label-width="120px" :model="editForm" :rules="rules" ref="editForm">
  39. <el-form-item label="文章标题" prop="title">
  40. <el-input size="small" v-model="editForm.title" auto-complete="off" placeholder="请输入文章标题"></el-input>
  41. </el-form-item>
  42. <el-form-item label="文章内容" prop="body">
  43. <el-input size="small" v-model="editForm.body" auto-complete="off" placeholder="请输入文章内容"></el-input>
  44. </el-form-item>
  45. </el-form>
  46. <div slot="footer" class="dialog-footer">
  47. <el-button size="small" @click="closeDialog">取消</el-button>
  48. <el-button size="small" type="primary" class="title" @click="submitForm('editForm')">保存</el-button>
  49. </div>
  50. </el-dialog>
  51.  
  52. </div>
  53. </template>
  54.  
  55. <script>
  56. export default {
  57. data() {
  58. return {
  59. listData: [],
  60. formInline: {
  61. page: 1,
  62. rows: 10,
  63. title: ''
  64. },
  65. total:0,
  66. editForm: {
  67. id: 0,
  68. title: '',
  69. body: ''
  70. },
  71. editFormVisible: false,
  72. title: '',
  73. rules: {
  74. title: [{
  75. required: true,
  76. message: '请输入文章标题',
  77. trigger: 'blur'
  78. },
  79. {
  80. min: 3,
  81. max: 5,
  82. message: '标题长度在 3 到 5 个字符',
  83. trigger: 'blur'
  84. }
  85. ],
  86. body: [{
  87. required: true,
  88. message: '请输入文章内容',
  89. trigger: 'change'
  90. }]
  91. }
  92.  
  93. };
  94. },
  95. methods: {
  96.  
  97. doSearch(params) {
  98. let url = this.axios.urls.SYSTEM_ARTICLE_LIST;
  99. this.axios.post(url, params).then((response) => {
  100. console.log(response);
  101. this.listData = response.data.result;
  102. this.total = response.data.pageBean.total;
  103. }).catch((response) => {
  104. console.log(response);
  105. });
  106. },
  107. handleSizeChange(rows) {
  108. console.log('页码大小发生改变的时候触发');
  109. this.formInline.page = 1;
  110. this.formInline.rows = rows;
  111. this.search();
  112. },
  113. handleCurrentChange(page) {
  114. console.log('当前页页码发生改变的时候触发');
  115. this.formInline.page = page;
  116. this.search();
  117. },
  118. search() {
  119. this.doSearch(this.formInline);
  120. },
  121. closeDialog() {
  122.  
  123. },
  124. submitForm(formName) {
  125. this.$refs[formName].validate((valid) => {
  126. if (valid) {
  127. let url;
  128. if (this.editForm.id == 0) {
  129. url = this.axios.urls.SYSTEM_ARTICLE_ADD;
  130. } else {
  131. url = this.axios.urls.SYSTEM_ARTICLE_EDIT;
  132. }
  133. // let url = 'http://localhost:8080/T216_SSH/vue/userAction_login.action';
  134. this.axios.post(url, this.editForm).then((response) => {
  135. console.log(response);
  136. this.clearData();
  137. this.search();
  138. }).catch(function(error) {
  139. console.log(error);
  140. });
  141. } else {
  142. console.log('error submit!!');
  143. return false;
  144. }
  145. });
  146. },
  147. //新增文章
  148. handleAdd() {
  149. this.clearData(); //清除弹出窗体中残留的信息
  150. this.editFormVisible = true;
  151. this.title = '新增文章';
  152. },
  153. //编辑文章
  154. handleEdit(index, row) {
  155. this.editFormVisible = true;
  156. this.title = '编辑文章';
  157. this.editForm.id = row.id;
  158. this.editForm.title = row.title;
  159. this.editForm.body = row.body;
  160. },
  161. //删除文章
  162. deleteUser(index, row) {
  163. let url = this.axios.urls.SYSTEM_ARTICLE_DEL;
  164. this.axios.post(url, {id:row.id}).then((response) => {
  165. console.log(response);
  166. this.clearData();
  167. this.search();
  168. }).catch(function(error) {
  169. console.log(error);
  170. });
  171. },
  172. //清除弹出窗体中残留的信息
  173. clearData() {
  174. this.editFormVisible = false;
  175. this.title = '';
  176. this.editForm.id = 0;
  177. this.editForm.title = '';
  178. this.editForm.body = '';
  179. }
  180. },
  181. created() {
  182. this.doSearch({});
  183. }
  184. }
  185. </script>
  186.  
  187. <style>
  188.  
  189. </style>

3、展示效果

表单验证

新增

修改

删除后

谢谢观看!!!

SPA项目开发--表单验证、增删改的更多相关文章

  1. vue.js带复选框表单的增删改查

    近段时间由于公司项目要求,前端开始使用VUE框架进行开发,最近刚开始学习,做了一个表单的增删改查,和大家分享一下. 页面模型代码设计如下 <template> <div id=&qu ...

  2. django-orm框架表单的增删改查

    08.14自我总结 django-orm框架 一.orm基本配置 1.创建django项目 命令行:cmd先去到django创建目录,然后输入django-admin startproject dja ...

  3. Web开发-表单验证

    表单验证是Web开发中必不可少的一个环节,用来限制用户输入数据的规范和一致性.那么如何能够简化这一任务,让开发人员通过简单的属性设置就能达到目的呢? FineUI在这一点上也是下足了功夫,比Asp.N ...

  4. AppBox实战: 如何实现一对多表单的增删改查

      本篇通过完整示例介绍如何实现一对多关系表单的相应服务及视图. 一.准备数据结构   示例所采用的数据结构为"物资需求"一对多"物资清单",通过IDE的实体设 ...

  5. angularjs 表单验证(不完整版)

    针对项目实践表单验证总结: angular 的 form表单验证:form内需要novalidate取消默认验证,用ng自己的验证,form的名字是非常必要的 栗子:以注册为栗子,下面是注册的部分: ...

  6. SPA项目之CRUD+表单验证

    1. 表单验证 Form组件提供了表单验证的功能,只需要通过 rules 属性传入约定的验证规则, 并将Form-Item的prop属性设置为需校验的字段名即可 <el-dialog :titl ...

  7. SPA项目开发之CRUD+表单验证

    表单验证 Form组件提供了表单验证的功能,只需要通过 rules 属性传入约定的验证规则, 并将Form-Item的prop属性设置为需校验的字段名即可 <el-form-item label ...

  8. 测试开发【提测平台】分享10-Element UI抽屉和表单校验&增改接口合并实现应用管理

    微信搜索[大奇测试开],关注这个坚持分享测试开发干货的家伙. 开篇说个小讨论,一个群里聊天聊到关于更新篇章的长度,是小篇幅多次,还是每次按照一个小完整的功能,我个人的是按照后种来的,主要的思考就是希望 ...

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

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

随机推荐

  1. day39——SQL语句简单介绍、库、表、记录、安装mysql简单命令

    day39 SQL语句简单介绍 库(增删改查) 查看数据库 show databases; 查看其中一个库 show create database db1; 创建数据库 create databas ...

  2. VC6.0- C语言-winsocket-警告warning C4761

    错误介绍 操作系统:windows10 IDE:VC6.0 语言:C语言 项目内容简介:编写一个双人网络海战棋对战游戏 警告类型:警告warning C4761 integral size misma ...

  3. 使用 Issue 管理软件项目详解

    文章来源:http://www.ruanyifeng.com/blog/2017/08/issue.html 软件开发(尤其是商业软件)离不开项目管理,Issue 是最通用的管理工具之一. 本文介绍 ...

  4. SAS学习笔记58 单元格格式化设计

    单元格行_row_ 对于行单元格,主要就通过_row_这么一个自动变量的方式,来对单元格所有行进行格式化设计 例如,对性别为“男”的单元格所在行颜色设定为红色: 单元格列_col_ 将_row_改成_ ...

  5. Docker入门以及常用命令

    目的: Docker入门 Docker简介 Centos7安装Docker Docker HelloWorld运行原理解析 阿里云镜像仓库配置 Docker常用命令 Docker基本命令 Docker ...

  6. quartz2.3.0(十四)trigger触发器优先级排序

    job任务类: package org.quartz.examples.example14; import org.slf4j.Logger; import org.slf4j.LoggerFacto ...

  7. Synchronized 与Lock的不同之处

    Synchronized 与Lock的不同之处 用法不一样.synchronized既可以加在方法上,也可以加载特定的代码块上,括号中表示需要锁的对象.而Lock需要显示地指定起始位置和终止位置.sy ...

  8. WebClient 请求 https 页面出错:未能创建 SSL/TLS 安全通道

    ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3 | SecurityProtocolType.Tls | Securi ...

  9. kubernetes第七章--管理存储资源

  10. error LNK2005: “找到一个或多个多重定义的符号” 已经在 xxxx.obj 中定义 的解决方法

    1 问题还原 这里我有三个源文件:Base.hpp, Base.cpp 和 main.cpp 在Base.hpp里面定义一个基类,注意,基类只包含构造函数和析构函数的声明,函数在Base.cpp里实现 ...