国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

ElementUI之增刪改及表單驗證

這篇具有很好參考價值的文章主要介紹了ElementUI之增刪改及表單驗證。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

? ? ? ? ? ? ? ? ? ? ? ?ElementUI之增刪改及表單驗證,ElementUI的使用,elementui,前端,javascript,vue.js,idea,mybatis

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ???本文章收錄與ElementUI原創(chuàng)專欄:ElementUI專欄

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ????? ElementUI的官網(wǎng):ElementUI官網(wǎng)

目錄

一.前言

二.使用ElementUI完成增刪改

? ? ? ? 2.1 后臺代碼

? ? ? ? 2.2 前端代碼

三.使用ElementUI完成表單驗證


一.前言

? ? ? ? 本章是繼上一篇的基礎(chǔ)之上在做完善,上一篇是教大家如何使用ElementUI制作動態(tài)菜單欄以及表格的分頁查詢,本章就是繼續(xù)上篇完成剩下的增刪改功能,采用的是前后端分離,大家如果有不懂的可以點擊上方的ElementUI的專欄進去查看喲~

二.使用ElementUI完成增刪改

? ? ? ? 2.1 后臺代碼

? ? ? ? ? ? ? ?增刪改的后端代碼:

  @RequestMapping("/addBook")
    @ResponseBody
    public JsonResponseBody<?> addBook(Book book){
        try {
            bookService.insert(book);
            return new JsonResponseBody<>("新增書本成功",true,0,null);
        } catch (Exception e) {
            e.printStackTrace();
            return new JsonResponseBody<>("新增書本失敗",false,0,null);
        }
    }

    @RequestMapping("/editBook")
    @ResponseBody
    public JsonResponseBody<?> editBook(Book book){
        try {
            bookService.updateByPrimaryKey(book);
            return new JsonResponseBody<>("編輯書本成功",true,0,null);
        } catch (Exception e) {
            e.printStackTrace();
            return new JsonResponseBody<>("編輯書本失敗",false,0,null);
        }
    }

    @RequestMapping("/delBook")
    @ResponseBody
    public JsonResponseBody<?> delBook(Book book){
        try {
            bookService.deleteByPrimaryKey(book.getId());
            return new JsonResponseBody<>("刪除書本成功",true,0,null);
        } catch (Exception e) {
            e.printStackTrace();
            return new JsonResponseBody<>("刪除書本失敗",false,0,null);
        }
    }

    @RequestMapping("/queryBookPager")
    @ResponseBody
    public JsonResponseBody<List<Book>> queryBookPager(Book book, HttpServletRequest req){
        try {
            PageBean pageBean=new PageBean();
            pageBean.setRequest(req);
            List<Book> books = bookService.queryBookPager(book, pageBean);
            return new JsonResponseBody<>("OK",true,pageBean.getTotal(),books);
        } catch (Exception e) {
            e.printStackTrace();
            return new JsonResponseBody<>("分頁查詢書本失敗",false,0,null);
        }
    }

? ? ? ? 2.2 前端代碼

? ? ? ? 定義接口:?????????ElementUI之增刪改及表單驗證,ElementUI的使用,elementui,前端,javascript,vue.js,idea,mybatis

? ? ? ? 數(shù)據(jù)樣式格式:都是去ElementUI官網(wǎng)copy的,然后根據(jù)自己的情況進行修改即可

<template>
  <div class="books" style="padding: 20px;">
    <!-- 1.搜索框 -->
    <el-form :inline="true" class="demo-form-inline">
      <el-form-item label="書籍名稱">
        <el-input v-model="bookname" placeholder="書籍名稱"></el-input>
      </el-form-item>
      <el-form-item>
        <el-button type="primary" @click="onSubmit">查詢</el-button>
        <el-button type="primary" @click="open">新增</el-button>
      </el-form-item>
    </el-form>
    <!-- 2.表格 -->
    <el-table :data="tableData" style="width: 100%">
      <el-table-column prop="id" label="書籍ID" width="180">
      </el-table-column>
      <el-table-column prop="bookname" label="書籍名稱" width="180">
      </el-table-column>
      <el-table-column prop="price" label="書籍價格" width="180">
      </el-table-column>
      <el-table-column prop="booktype" label="書籍類型" width="180">
      </el-table-column>
      <el-table-column label="操作">
        <template slot-scope="scope">
          <el-button size="mini" @click="open(scope.row)">編輯</el-button>
          <el-button size="mini" type="danger" @click="del(scope.row)">刪除</el-button>
        </template>
      </el-table-column>
    </el-table>
    <!-- 3.分頁條 -->
    <div class="block">
      <el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="page"
        :page-sizes="[10, 20, 30, 40]" :page-size="100" layout="total, sizes, prev, pager, next, jumper" :total="total">
      </el-pagination>
    </div>
    <!-- 4.多功能彈出框 -->
    <el-dialog :title='title' :visible.sync="dialogFormVisible" @close="clear">
      <el-form :model="book">
        <el-form-item label="書籍ID" :label-width="formLabelWidth">
          <el-input v-model="book.id" autocomplete="off"></el-input>
        </el-form-item>
        <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="t in types" :label="t.name" :value="t.name" :key="'key_'+t.id"></el-option>
          </el-select>
        </el-form-item>
      </el-form>
      <div slot="footer" class="dialog-footer">
        <el-button @click="dialogFormVisible = false">取 消</el-button>
        <el-button type="primary" @click="dosub">確 定</el-button>
      </div>
    </el-dialog>
  </div>
</template>

? ? ? ? 邏輯代碼:新增和修改是共用一個彈框,然后用 if 判斷,改變窗口的標題,接著根據(jù)窗體的標題來判斷調(diào)用新增的方法還是修改的方法,刪除的彈框的話也是在ElementUI官網(wǎng)中找的,獲取id進行刪除整條數(shù)據(jù)。

<script>
  export default {
    data() {
      return {
        bookname: '',
        tableData: [],
        rows: 10,
        page: 1,
        total: 0,
        title: '新增界面',
        // 默認不展示窗口
        dialogFormVisible: false,
        formLabelWidth: "100px", //寬度
        types: [],
        book: {
          id: "",
          bookname: "",
          price: "",
          booktype: ""
        }
      }
    },
    methods: {
      //刪除
      del(row) {
        this.$confirm('你確定要刪除該數(shù)據(jù)嘛~親?', '提示', {
          confirmButtonText: '確定',
          cancelButtonText: '取消',
          type: 'warning'
        }).then(() => {
          let url = this.axios.urls.BOOK_DEL;
          this.axios.post(url, {id:row.id}).then(r => {
            console.info(r);
            //彈出框
            this.$message({
              type: 'success',
              message: '刪除成功!'
            });

            this.query({});
          }).catch(e => {})

        }).catch(() => {
          this.$message({
            type: 'info',
            message: '已取消刪除'
          });
        });
      },
      dosub() {
        //新增
        //路由
        let url = this.axios.urls.BOOK_ADD;
        if (this.title == '編輯界面') {
          url = this.axios.urls.BOOK_UPD;
        }
        let params = {
          id: this.book.id,
          bookname: this.book.bookname,
          price: this.book.price,
          booktype: this.book.booktype
        };
        console.info(params);
        this.axios.post(url, params).then(r => {
          console.info(r);
          this.clear();
          this.query({});
        }).catch(e => {

        })
      },
      clear() {
        //初始化窗體
        this.dialogFormVisible = false;
        this.title = '新增界面';
        this.book = {
          id: "",
          bookname: "",
          pric: "",
          booktype: ""
        }
      },
      open(row) {
        //打開窗口
        this.dialogFormVisible = true;
        if (row) {
          this.title = '編輯界面';
          //賦值
          this.book.id = row.id;
          this.book.bookname = row.bookname;
          this.book.price = row.price;
          this.book.booktype = row.booktype;

        }
      },
      query(params) {
        //路由
        let url = this.axios.urls.BOOK_LIST;
        this.axios.get(url, {
          params: params
        }).then(r => {
          console.info(r);
          this.tableData = r.data.rows;
          this.total = r.data.total;
        }).catch(e => {

        })
      },
      onSubmit() {
        //模糊查詢的字段
        let params = {
          bookname: this.bookname
        }
        this.query(params);
      },
      handleSizeChange(r) {
        // 當頁大小發(fā)生變化

        let params = {
          bookname: this.bookname,
          rows: r,
          page: this.page
        }
        this.query(params);
      },
      handleCurrentChange(p) {
        // 當前頁碼發(fā)生變化
        let params = {
          bookname: this.bookname,
          rows: this.rows,
          page: p
        }
        this.query(params);
      }

    },
    created() {
      this.query({});
      //需要發(fā)ajax請求后臺數(shù)據(jù),在這里我給它定死了
      this.types = [{
        id: 1,
        name: '短文'
      }, {
        id: 2,
        name: '愛情'
      }, {
        id: 3,
        name: '爽文'
      }]
    }
  }
</script>

? ? ? ? 看一下效果吧:

ElementUI之增刪改及表單驗證,ElementUI的使用,elementui,前端,javascript,vue.js,idea,mybatis

三.使用ElementUI完成表單驗證

????????第一步:去ElementUI官網(wǎng)搜索表單驗證:會發(fā)現(xiàn)需要添加:

ElementUI之增刪改及表單驗證,ElementUI的使用,elementui,前端,javascript,vue.js,idea,mybatis

? ?第二步:指定需要驗證的屬性字段,添加:

ElementUI之增刪改及表單驗證,ElementUI的使用,elementui,前端,javascript,vue.js,idea,mybatis

第三步,寫驗證規(guī)則

rules: {
          bookname: [{
            required: true,
            message: '請輸入書籍名稱',
            trigger: 'blur'
          }],
          price: [{
            required: true,
            message: '請輸入書籍價格',
            trigger: 'blur'
          }],
          booktype: [{
            required: true,
            message: '請輸入書籍類型',
            trigger: 'blur'
          }]
        }

最后一步使用驗證規(guī)則:

ElementUI之增刪改及表單驗證,ElementUI的使用,elementui,前端,javascript,vue.js,idea,mybatis

?

代碼:

 dosub() {
        // 驗證表單
        this.$refs['book'].validate((valid) => {
          if (valid) {
            //新增
            //路由
            let url = this.axios.urls.BOOK_ADD;
            if (this.title == '編輯界面') {
              url = this.axios.urls.BOOK_UPD;
            }
            let params = {
              id: this.book.id,
              bookname: this.book.bookname,
              price: this.book.price,
              booktype: this.book.booktype
            };
            console.info(params);
            this.axios.post(url, params).then(r => {
              console.info(r);
              this.clear();
              this.query({});
            }).catch(e => {

            })
          } else {
            console.log('error submit!!');
            return false;
          }
        });


      }

?好啦,看看效果吧?。?/strong>

ElementUI之增刪改及表單驗證,ElementUI的使用,elementui,前端,javascript,vue.js,idea,mybatis文章來源地址http://www.zghlxwxcb.cn/news/detail-729956.html

到了這里,關(guān)于ElementUI之增刪改及表單驗證的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • elementUI表單驗證之動態(tài)表單驗證

    elementUI表單驗證之動態(tài)表單驗證

    elementUI 中 Form 組件提供了表單驗證的功能,只需要通過? rules ?屬性傳入約定的驗證規(guī)則,并將 Form-Item 的? prop ?屬性設(shè)置為需校驗的字段名即可。 (1)常用表單驗證 (2)自定義驗證規(guī)則(:validator) ?有些需要自定義的校驗規(guī)則可以作為變量寫在data中,然后賦值

    2024年02月11日
    瀏覽(29)
  • elementui表單的驗證問題

    elementui表單的驗證問題

    element ui 是基于vue的一個ui框架,用起來還是挺不錯的,但是有時候還是會遇到一些摸不著頭腦的情況。 ? 我在打開一個新增數(shù)據(jù)的對話框的時候出現(xiàn)了一個問題,明明是新增,但是一打開就出現(xiàn)了錯誤提示,這肯定是不對的,用戶體驗也是極其不好的。到底是什么原因?qū)е?/p>

    2024年02月07日
    瀏覽(21)
  • ElementUI之CUD+表單驗證

    ElementUI之CUD+表單驗證

    ElementUI之CUD 表單驗證 1.ElementUI之CUD 2.表單驗證

    2024年02月07日
    瀏覽(20)
  • vue中elementUI表單循環(huán)驗證

    vue中elementUI表單循環(huán)驗證

    進行驗證的步驟

    2024年02月15日
    瀏覽(23)
  • 解決ElementUI動態(tài)表單校驗驗證不通過

    解決ElementUI動態(tài)表單校驗驗證不通過

    這里記錄一下,寫項目時遇到的一個問題:就是動態(tài)渲染的表單項,加驗證規(guī)則后一直不通過?。?! html部分: ?js部分: 結(jié)果:? ?可以看到,按照官網(wǎng)的寫法動態(tài)渲染的表單項是無法進行校驗驗證的。這里就是無論選中沒選中值都校驗 不通過。 修改prop、rules 結(jié)果:

    2024年02月12日
    瀏覽(21)
  • elementUi表單恢復(fù)至初始狀態(tài)并不觸發(fā)表單驗證

    elementUi表單恢復(fù)至初始狀態(tài)并不觸發(fā)表單驗證

    左側(cè)是樹形列表,右側(cè)是顯示節(jié)點的詳情,點擊+按鈕應(yīng)該就是新增一個規(guī)則的意思,表單內(nèi)容是沒有改變的,所以就把需要把表單恢復(fù)至初始狀態(tài)并不觸發(fā)表單驗證 this.form是定義在Data里的form數(shù)據(jù), this.$refs.form是el-form ref為form的表單

    2024年02月13日
    瀏覽(20)
  • VUE+ElementUI的表單驗證二選一必填項,并且滿足條件后清除表單驗證提示
  • vue+elementui表單數(shù)組對象深層嵌套之自定義驗證規(guī)則

    需求場景:在Vue+Elementui項目中,需要在表單的循環(huán)數(shù)組中,對某一深層嵌套的對象屬性制定自定義校驗規(guī)則。

    2024年02月05日
    瀏覽(37)
  • 【手機號驗證/前端】Vue2+elementUI編寫一個手機號驗證碼登錄頁面,路由式開發(fā)(附完整代碼)

    【手機號驗證/前端】Vue2+elementUI編寫一個手機號驗證碼登錄頁面,路由式開發(fā)(附完整代碼)

    目錄 效果圖: 一、template部分 二、style樣式 三、script部分 1.先對手機號的格式進行一個判斷 2.接下來就是表單驗證規(guī)則rules 3.最后就是methods了 (1)首先我們給獲取驗證碼綁定一個方法 (2)然后封裝一個axios接口,方便后面測試聯(lián)調(diào)(這部分每個人封裝的都不一樣) (3)然

    2024年02月17日
    瀏覽(21)
  • ElementUI 樹形表格的使用以及表單嵌套樹形表格的校驗問題等匯總

    ElementUI 樹形表格的使用以及表單嵌套樹形表格的校驗問題等匯總

    目錄 一、樹形表格如何添加序號體現(xiàn)層級關(guān)系? 二、樹形表格展開收縮圖標位置放置,設(shè)置指定列 三、表單嵌套樹形表格的校驗問題以及如何給校驗rules傳參 普通表格綁定如下:這種方法只能校驗表格的第一層,樹形需要遞歸設(shè)置子級節(jié)點prop。 樹形表格綁定如下:使用下面

    2024年02月11日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包