真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

怎么在vue中利用element實現(xiàn)表格批量刪除功能

這篇文章給大家介紹怎么在vue中利用element實現(xiàn)表格批量刪除功能,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

在成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)過程中,需要針對客戶的行業(yè)特點、產(chǎn)品特性、目標(biāo)受眾和市場情況進行定位分析,以確定網(wǎng)站的風(fēng)格、色彩、版式、交互等方面的設(shè)計方向。創(chuàng)新互聯(lián)還需要根據(jù)客戶的需求進行功能模塊的開發(fā)和設(shè)計,包括內(nèi)容管理、前臺展示、用戶權(quán)限管理、數(shù)據(jù)統(tǒng)計和安全保護等功能。

復(fù)制代碼 代碼如下:

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

代碼很簡單

 

刪除按鈕的代碼如下:

復(fù)制代碼 代碼如下:

批量刪除

data的代碼如下:

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

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

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

在methods中添加一個方法

selsChange(sels) { 
    //被選中的行組成數(shù)組 
    this.sels = sels;
    //遍歷被選中行數(shù)所組成的數(shù)組
    for(let element of this.sels){
    //如果視頻正在轉(zhuǎn)碼或者等待轉(zhuǎn)碼,禁用按鈕,結(jié)束方法
     if(element.status == 'waiting'||element.progress){
      this.disabled = true;
      return;
     }
       //如果沒有視頻正在轉(zhuǎn)碼或者等待轉(zhuǎn)碼,按鈕可用
      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(()=>{});
  }

前端已經(jīng)排除正在轉(zhuǎn)碼的視頻了,后端是否能根據(jù)前端傳來的數(shù)據(jù),直接刪除視頻呢?

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

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

代碼如下

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

關(guān)于怎么在vue中利用element實現(xiàn)表格批量刪除功能就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。


新聞標(biāo)題:怎么在vue中利用element實現(xiàn)表格批量刪除功能
當(dāng)前地址:http://weahome.cn/article/pcpegd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部