• ElementUI之增删改及表单验证


                           

                                     ⭐⭐本文章收录与ElementUI原创专栏ElementUI专栏

                                         ⭐⭐   ElementUI的官网:ElementUI官网

    目录

    一.前言

    二.使用ElementUI完成增删改

            2.1 后台代码

            2.2 前端代码

    三.使用ElementUI完成表单验证


    一.前言

            本章是继上一篇的基础之上在做完善,上一篇是教大家如何使用ElementUI制作动态菜单栏以及表格的分页查询,本章就是继续上篇完成剩下的增删改功能,采用的是前后端分离,大家如果有不懂的可以点击上方的ElementUI的专栏进去查看哟~

    二.使用ElementUI完成增删改

            2.1 后台代码

                   增删改的后端代码:

    1. @RequestMapping("/addBook")
    2. @ResponseBody
    3. public JsonResponseBody addBook(Book book){
    4. try {
    5. bookService.insert(book);
    6. return new JsonResponseBody<>("新增书本成功",true,0,null);
    7. } catch (Exception e) {
    8. e.printStackTrace();
    9. return new JsonResponseBody<>("新增书本失败",false,0,null);
    10. }
    11. }
    12. @RequestMapping("/editBook")
    13. @ResponseBody
    14. public JsonResponseBody editBook(Book book){
    15. try {
    16. bookService.updateByPrimaryKey(book);
    17. return new JsonResponseBody<>("编辑书本成功",true,0,null);
    18. } catch (Exception e) {
    19. e.printStackTrace();
    20. return new JsonResponseBody<>("编辑书本失败",false,0,null);
    21. }
    22. }
    23. @RequestMapping("/delBook")
    24. @ResponseBody
    25. public JsonResponseBody delBook(Book book){
    26. try {
    27. bookService.deleteByPrimaryKey(book.getId());
    28. return new JsonResponseBody<>("删除书本成功",true,0,null);
    29. } catch (Exception e) {
    30. e.printStackTrace();
    31. return new JsonResponseBody<>("删除书本失败",false,0,null);
    32. }
    33. }
    34. @RequestMapping("/queryBookPager")
    35. @ResponseBody
    36. public JsonResponseBody<List<Book>> queryBookPager(Book book, HttpServletRequest req){
    37. try {
    38. PageBean pageBean=new PageBean();
    39. pageBean.setRequest(req);
    40. List<Book> books = bookService.queryBookPager(book, pageBean);
    41. return new JsonResponseBody<>("OK",true,pageBean.getTotal(),books);
    42. } catch (Exception e) {
    43. e.printStackTrace();
    44. return new JsonResponseBody<>("分页查询书本失败",false,0,null);
    45. }
    46. }

            2.2 前端代码

            定义接口:         

            数据样式格式:都是去ElementUI官网copy的,然后根据自己的情况进行修改即可

    1. <template>
    2. <div class="books" style="padding: 20px;">
    3. <!-- 1.搜索框 -->
    4. <el-form :inline="true" class="demo-form-inline">
    5. <el-form-item label="书籍名称">
    6. <el-input v-model="bookname" placeholder="书籍名称"></el-input>
    7. </el-form-item>
    8. <el-form-item>
    9. <el-button type="primary" @click="onSubmit">查询</el-button>
    10. <el-button type="primary" @click="open">新增</el-button>
    11. </el-form-item>
    12. </el-form>
    13. <!-- 2.表格 -->
    14. <el-table :data="tableData" style="width: 100%">
    15. <el-table-column prop="id" label="书籍ID" width="180">
    16. </el-table-column>
    17. <el-table-column prop="bookname" label="书籍名称" width="180">
    18. </el-table-column>
    19. <el-table-column prop="price" label="书籍价格" width="180">
    20. </el-table-column>
    21. <el-table-column prop="booktype" label="书籍类型" width="180">
    22. </el-table-column>
    23. <el-table-column label="操作">
    24. <template slot-scope="scope">
    25. <el-button size="mini" @click="open(scope.row)">编辑</el-button>
    26. <el-button size="mini" type="danger" @click="del(scope.row)">删除</el-button>
    27. </template>
    28. </el-table-column>
    29. </el-table>
    30. <!-- 3.分页条 -->
    31. <div class="block">
    32. <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="page"
    33. :page-sizes="[10, 20, 30, 40]" :page-size="100" layout="total, sizes, prev, pager, next, jumper" :total="total">
    34. </el-pagination>
    35. </div>
    36. <!-- 4.多功能弹出框 -->
    37. <el-dialog :title='title' :visible.sync="dialogFormVisible" @close="clear">
    38. <el-form :model="book">
    39. <el-form-item label="书籍ID" :label-width="formLabelWidth">
    40. <el-input v-model="book.id" autocomplete="off"></el-input>
    41. </el-form-item>
    42. <el-form-item label="书籍名称" :label-width="formLabelWidth">
    43. <el-input v-model="book.bookname" autocomplete="off"></el-input>
    44. </el-form-item>
    45. <el-form-item label="书籍价格" :label-width="formLabelWidth">
    46. <el-input v-model="book.price" autocomplete="off"></el-input>
    47. </el-form-item>
    48. <el-form-item label="书籍类别" :label-width="formLabelWidth">
    49. <el-select v-model="book.booktype" placeholder="请选择书籍类型">
    50. <el-option v-for="t in types" :label="t.name" :value="t.name" :key="'key_'+t.id"></el-option>
    51. </el-select>
    52. </el-form-item>
    53. </el-form>
    54. <div slot="footer" class="dialog-footer">
    55. <el-button @click="dialogFormVisible = false">取 消</el-button>
    56. <el-button type="primary" @click="dosub">确 定</el-button>
    57. </div>
    58. </el-dialog>
    59. </div>
    60. </template>

            逻辑代码:新增和修改是共用一个弹框,然后用 if 判断,改变窗口的标题,接着根据窗体的标题来判断调用新增的方法还是修改的方法,删除的弹框的话也是在ElementUI官网中找的,获取id进行删除整条数据。

            看一下效果吧:

    三.使用ElementUI完成表单验证

            第一步:去ElementUI官网搜索表单验证:会发现需要添加:

       第二步:指定需要验证的属性字段,添加:

    第三步,写验证规则

    1. rules: {
    2. bookname: [{
    3. required: true,
    4. message: '请输入书籍名称',
    5. trigger: 'blur'
    6. }],
    7. price: [{
    8. required: true,
    9. message: '请输入书籍价格',
    10. trigger: 'blur'
    11. }],
    12. booktype: [{
    13. required: true,
    14. message: '请输入书籍类型',
    15. trigger: 'blur'
    16. }]
    17. }

    最后一步使用验证规则:



     

    代码:

    1. dosub() {
    2. // 验证表单
    3. this.$refs['book'].validate((valid) => {
    4. if (valid) {
    5. //新增
    6. //路由
    7. let url = this.axios.urls.BOOK_ADD;
    8. if (this.title == '编辑界面') {
    9. url = this.axios.urls.BOOK_UPD;
    10. }
    11. let params = {
    12. id: this.book.id,
    13. bookname: this.book.bookname,
    14. price: this.book.price,
    15. booktype: this.book.booktype
    16. };
    17. console.info(params);
    18. this.axios.post(url, params).then(r => {
    19. console.info(r);
    20. this.clear();
    21. this.query({});
    22. }).catch(e => {
    23. })
    24. } else {
    25. console.log('error submit!!');
    26. return false;
    27. }
    28. });
    29. }

     好啦,看看效果吧!!

  • 相关阅读:
    【Python百日刷题计划】Day10~一些编程题练习
    中压电缆和高压电缆有哪些型号?它们的的执行标准是什么?
    Goland快捷键整理
    memcpy和memmove的模拟实现,思路详解+代码实现
    【1429】招生管理管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目
    任正非“苹果是华为的老师”;音频编解码标准 L2HC 发布;GNU 和自由软件运动四十周年丨RTE开发者日报 Vol.53
    删除有序数组中的重复项
    【MySQL】复合查询
    网工有35岁焦虑吗
    工业相机飞拍模式介绍及相机曝光值计算
  • 原文地址:https://blog.csdn.net/YZZdear/article/details/133344263