最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue+element的表格實現(xiàn)批量刪除功能示例代碼

 更新時間:2018年08月17日 13:55:40   作者:qingzhizhenhun  
這篇文章主要介紹了vue+element的表格實現(xiàn)批量刪除功能示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

最近寫了一個批量刪除功能,遇到了不少坑,特此記錄一下


表格的代碼如下

復制代碼 代碼如下:
<el-table @row-click="handleCurrentChange" @selection-change="selsChange" ref="table" :data="pageData" stripe :default-sort="{prop: 'createAt', order: 'descending'}" @sort-change="sortChange">

如圖所示,表格最前面有一個復選框

代碼很簡單

 <el-table-column type="selection" width="65"></el-table-column>

刪除按鈕的代碼如下:

復制代碼 代碼如下:
<el-button v-show="mode == 'list'" class="small" type="warning" size="small" @click="removeBatch(sels)" :disabled="this.sels.length === 0||this.disabled">批量刪除</el-button>

data的代碼如下:

 data() {
  return {
   pageSize: 12,
   total: 0,
   pageData: [],
   query: '',
   sort: 'createAt',
   order: 'descending',
   defaultSnap: srcFallback,
   accept: '',
   ws: null,
   sels: [],//選中顯示的值
   disabled:true
  };
 }

表格中的視頻數據來自于pageData,每個視頻都是一個對象,對象的status屬性等于waiting或者有progress屬性時,此視頻正在轉碼,或者正在準備轉碼,不允許刪除, 批量刪除就是把被選中的行添加到sels這個數組中,把數組里的每一個對象的id屬性組成一個數組,發(fā)送給后端,此外,正在轉碼的視頻不允許刪除,此時按鈕也是禁用狀態(tài)

根據官方文檔,@selection-change="selsChange"是復選框選擇改變時觸發(fā)的事件

在methods中添加一個方法

selsChange(sels) { 
    //被選中的行組成數組 
    this.sels = sels;
    //遍歷被選中行數所組成的數組
    for(let element of this.sels){
    //如果視頻正在轉碼或者等待轉碼,禁用按鈕,結束方法
     if(element.status == 'waiting'||element.progress){
      this.disabled = true;
      return;
     }
       //如果沒有視頻正在轉碼或者等待轉碼,按鈕可用
      this.disabled = false;
    }
  }

把請求發(fā)送給后端,代碼如下:

  removeBatch(rows){
   var ids = [];
   rows.forEach(element =>{
    ids.push(element.id)
   })
   this.$confirm('確定要刪除選中的文件嗎?','提示').then(() =>{
    $.post('/vod/removeBatch',{
     ids:ids
    }).then(dara =>{
     this.updateData();
    })
   }).catch(()=>{});
  }

前端已經排除正在轉碼的視頻了,后端是否能根據前端傳來的數據,直接刪除視頻呢?

答案是不可以,后端一樣要做驗證

思路是,拿到前端傳來的數據后,遍歷數組兩次,第一次如果發(fā)現(xiàn)有正在轉碼的視頻,拋出異常,不會進入第二次循環(huán),第二次循環(huán)才根據id刪除視頻

代碼如下

r.post('/removeBatch',async(req,res) => {
  var ids = req.body.ids;
  var files = utils.vod.get("files");
  //第一次循環(huán),如果有正在轉碼的文件,就拋出異常,結束循環(huán)
  for(let id of ids){
    var transing = trans.agent.transing[id];
    if(transing){
      throw new Error('正在轉碼的文件無法刪除');
      return;
    }
  }
  //如果沒有轉碼的文件,進入第二次循環(huán)
  for(let id of ids){
    var files = utils.vod.get("files");
    var row = files.find({id: id}).cloneDeep().value();
    //如果沒有要刪除的,就結束
    if(!row) {
      res.sendStatus(200);
      return;
    }
    var dir = path.dirname(row.path);
    var name = path.basename(row.path, path.extname(row.path));
    var transDir = path.resolve(dir, name);
    //刪除源文件
    if(fs.existsSync(row.path)){
      fs.removeSync(row.path);
    }
    //刪除轉碼文件
    if(fs.existsSync(transDir)){
      fs.removeSync(transDir);
    }
    //刪除json文件記錄
    files.remove({id: id}).write();
  }
  res.sendStatus(200);
})

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 關于vue中使用three.js報錯的解決方法

    關于vue中使用three.js報錯的解決方法

    最近因為three.js的項目要用Vue.js,下面這篇文章主要給大家介紹了關于vue中使用three.js報錯的解決方法,文中通過圖文以及示例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-03-03
  • vue3.0生命周期的示例代碼

    vue3.0生命周期的示例代碼

    這篇文章主要介紹了vue3.0生命周期的相關知識,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2020-09-09
  • Vue.js中該如何自己維護路由跳轉記錄

    Vue.js中該如何自己維護路由跳轉記錄

    這篇文章主要給大家介紹了關于Vue.js中該如何自己維護路由跳轉記錄的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Vue.js具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-05-05
  • vue中如何解除數據之間的雙向綁定

    vue中如何解除數據之間的雙向綁定

    這篇文章主要介紹了vue中如何解除數據之間的雙向綁定,具有很好的參考價值,希望對
    2022-09-09
  • Vue3.x最小原型系統(tǒng)講解

    Vue3.x最小原型系統(tǒng)講解

    這篇文章主要介紹了Vue3.x最小原型系統(tǒng)講解。既然用Vue3.0構建最小原型系統(tǒng),那么肯定要用尤大的最新構建工具Vite來進行項目的初始化,下文舉例說明,需要的朋友可以參考一下
    2022-02-02
  • vue之computed的緩存特性

    vue之computed的緩存特性

    這篇文章主要介紹了vue之computed的緩存特性,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Vue鼠標滾輪滾動切換路由效果的實現(xiàn)方法

    Vue鼠標滾輪滾動切換路由效果的實現(xiàn)方法

    這篇文章主要介紹了Vue鼠標滾輪滾動切換路由效果的實現(xiàn)方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • VUE div click無效的問題及解決

    VUE div click無效的問題及解決

    這篇文章主要介紹了VUE div click無效的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • nuxt 實現(xiàn)在其它js文件中使用store的方式

    nuxt 實現(xiàn)在其它js文件中使用store的方式

    這篇文章主要介紹了nuxt 實現(xiàn)在其它js文件中使用store的方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • 前端利用vue實現(xiàn)導入和導出功能詳細代碼

    前端利用vue實現(xiàn)導入和導出功能詳細代碼

    最近項目中讓實現(xiàn)一個導入導出Excel的功能,下面這篇文章主要給大家介紹了關于前端利用vue實現(xiàn)導入和導出功能的相關資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-09-09

最新評論

天门市| 武陟县| 佛山市| 嵩明县| 包头市| 汝南县| 梓潼县| 会宁县| 阿尔山市| 荆州市| 长沙市| 雷州市| 安阳市| 鲁山县| 上饶市| 霍林郭勒市| 江都市| 涟水县| 开原市| 洛浦县| 开平市| 北票市| 色达县| 怀化市| 潜山县| 周至县| 重庆市| 莲花县| 乌拉特中旗| 淳安县| 海门市| 嘉善县| 高邑县| 蒙阴县| 东城区| 定兴县| 肥城市| 瑞丽市| 石台县| 贵南县| 扎兰屯市|