亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

vue+element表格實現(xiàn)多層數(shù)據(jù)的嵌套方式

 更新時間:2022年09月10日 10:06:31   作者:白佯們班的小莫  
這篇文章主要介紹了vue+element表格實現(xiàn)多層數(shù)據(jù)的嵌套方式,具有很好的參考價值。希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

vue+element表格實現(xiàn)多層數(shù)據(jù)嵌套

今天用element的表格渲染了商城的購物車列表,element的表格之前也用到過,它把所有的東西都封裝好了,

這是完成之后的

  

只需要往里面?zhèn)鲾?shù)據(jù)就可以了,通過prop來拿到相對應(yīng)的字段,非常方便,但是天不盡人愿吶,后臺接口返回的數(shù)據(jù)  

是嵌套多了一層,直接上圖,后臺返回的數(shù)據(jù)結(jié)構(gòu)

  

data下面是店鋪的名字和id,orderItemList是店鋪下面的商品,店鋪要顯示,商品更要顯示,(難受)

這nm嵌套兩層,表格拿不出來啊,于是各種想思路,什么里邊再套一個表格,這樣會出現(xiàn)空表頭,也從網(wǎng)上找了很多方法,都是差強人意,決心還是要自己解決,當(dāng)我研究了element的表格之后,發(fā)現(xiàn)一個叫樹形數(shù)據(jù),見下圖

  

我可以把店鋪名字放到尖括號展開啊,再把店鋪下的orderItemList放到尖括號展開下 (我這無處安放的才華)。  

我研究了樹形表格之后,發(fā)現(xiàn)無論是展開還是折疊,就拿上圖為例,他的日期的字段必須是一樣的,包括姓名地址也必須是一樣的,但是看我的返回的數(shù)據(jù)不一樣啊,那就要想辦法,于是我就循環(huán)了接口返回的數(shù)據(jù),代碼如下

for(let i = 0; i < res.data.data.length; i++){
   this.tableData.push({
        'goodsId':i, 
        'title':res.data.data[i].sellerName,
        'children':res.data.data[i].orderItemList
    })
}

按照我需要的字段來進行push,在每次循環(huán)之前要把tableData清空掉,不然你曉得,當(dāng)然你也可以讓后臺把接口里的字段改掉,我這里后臺也是拿的別人的改不掉,只能自己想辦法,  

樹形數(shù)據(jù)接收一個:

tree-props="{children: ‘children',hasChildren: ‘hasChildren'}"

這里的children是展開下的數(shù)據(jù),這個字段是不是children都可以,說的是引號里的啊,外邊的必須是children,hasChildren是 是否有這個展開下的數(shù)據(jù),

我這里沒有用到,當(dāng)然是用之后還是要做很多的判斷,因為你的店鋪名字也是一行,只顯示店鋪名字,我把我代碼貼出來,看一下

這是表格結(jié)構(gòu)

<el-table
   :data="tableData"
   style="width: 90%;"
   row-key="goodsId"
   default-expand-all
   :header-cell-class-name='handleHead'
   @selection-change="handleSelectionChange"
   :tree-props="{children: 'children',hasChildren: 'hasChildren'}"
>
   <el-table-column
       width="55"
       type="selection"
       :selectable='handleCheckbox'
   >
   </el-table-column>
   <el-table-column show-overflow-tooltip width="400" label='商品'>
       <template slot-scope="scope">
           <div style="display:inline-block;">
               <img v-if="scope.row.picPath" class="shops-img" :src="scope.row.picPath" alt="">
               <span>{{scope.row.title}}</span>
           </div>
       </template>
   </el-table-column>
   <el-table-column label='單價' prop="price"></el-table-column>
   <el-table-column label='數(shù)量' prop="num">
       <template v-if="scope.row.num" slot-scope="scope">
           <span @click="shopsNumDown(scope.row.itemId)" class="shops-num-btn curpor">-</span>
           <span class="shops-num">{{scope.row.num}}</span>
           <span @click="shopsNumUp(scope.row.itemId)" class="shops-num-btn curpor">+</span>
       </template>
   </el-table-column>
   <el-table-column label='小計' prop="totalFee"></el-table-column>
   <el-table-column label='操作'>
       <template v-if="scope.row.price" slot-scope="scope">
           <div class="curpor handle-txt" @click="deleteShops(scope.row.itemId)">
               刪除
           </div>
           <div class="curpor handle-txt" @click="addCollection(scope.row.goodsId)">
               移入收藏夾
           </div>
       </template>
   </el-table-column>
</el-table>

方法  

我這里用到了多選框勾選商品,當(dāng)el-table-column的type為selection時接受一個方法為selectable,決定誰可以被選擇,我這里是只有商品才能被勾選,所以店鋪就給false掉了。  

我把表頭的那個總選框返回一個class名給隱藏了,最好用visibility: hidden;隱藏,它是占位隱藏,為什么給隱藏,是因為勾選了表頭的總選框只能勾選到店鋪,而商品勾選不到,研究了好久也沒有發(fā)現(xiàn),需求也不怎么需要,我就給隱藏了

handleCheckbox(row,index){
  if(!row.children){
       return true
   }
},
handleHead(row){
   if(row.columnIndex === 0){
       return 'check-head'
   }
},

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。 

相關(guān)文章

  • vue打包相關(guān)細(xì)節(jié)整理(小結(jié))

    vue打包相關(guān)細(xì)節(jié)整理(小結(jié))

    這篇文章主要介紹了vue打包相關(guān)細(xì)節(jié)整理(小結(jié)),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-09-09
  • vue3+vite使用環(huán)境變量.env的一些配置情況詳細(xì)說明

    vue3+vite使用環(huán)境變量.env的一些配置情況詳細(xì)說明

    開發(fā)中經(jīng)常會使用環(huán)境變量,Vite相比于Webpack也有一定的變化,下面這篇文章主要給大家介紹了關(guān)于vue3+vite使用環(huán)境變量.env的一些配置情況說明的相關(guān)資料,需要的朋友可以參考下
    2022-12-12
  • 10分鐘了解Vue3遞歸組件的用法

    10分鐘了解Vue3遞歸組件的用法

    遞歸?簡單來講就是程序自己調(diào)用自身,vue中的遞歸組件就是,組件自身調(diào)用自身,下面這篇文章主要給大家介紹了關(guān)于Vue3遞歸組件的用法,需要的朋友可以參考下
    2022-03-03
  • 淺談vue獲得后臺數(shù)據(jù)無法顯示到table上面的坑

    淺談vue獲得后臺數(shù)據(jù)無法顯示到table上面的坑

    這篇文章主要介紹了淺談vue獲得后臺數(shù)據(jù)無法顯示到table上面的坑,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • vue粘貼復(fù)制功能的實現(xiàn)過程記錄

    vue粘貼復(fù)制功能的實現(xiàn)過程記錄

    最近在項目中遇到點擊按鈕復(fù)制鏈接功能,所以這篇文章主要給大家介紹了關(guān)于vue粘貼復(fù)制功能的實現(xiàn)過程,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-03-03
  • vue router-link傳參以及參數(shù)的使用實例

    vue router-link傳參以及參數(shù)的使用實例

    下面小編就為大家?guī)硪黄獀ue router-link傳參以及參數(shù)的使用實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • vue實現(xiàn)的網(wǎng)易云音樂在線播放和下載功能案例

    vue實現(xiàn)的網(wǎng)易云音樂在線播放和下載功能案例

    這篇文章主要介紹了vue實現(xiàn)的網(wǎng)易云音樂在線播放和下載功能,結(jié)合具體實例形式分析了網(wǎng)易云音樂相關(guān)接口調(diào)用與操作技巧,需要的朋友可以參考下
    2019-02-02
  • vue+highCharts實現(xiàn)可選范圍的圖表

    vue+highCharts實現(xiàn)可選范圍的圖表

    這篇文章主要為大家詳細(xì)介紹了vue+highCharts實現(xiàn)可選范圍的圖表,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Vite創(chuàng)建項目的實現(xiàn)步驟

    Vite創(chuàng)建項目的實現(xiàn)步驟

    隨著 Vite2 的發(fā)布并日趨穩(wěn)定,現(xiàn)在越來越多的項目開始嘗試使用它。本文我們就介紹了Vite創(chuàng)建項目的實現(xiàn)步驟,感興趣的可以了解一下
    2021-07-07
  • 簡單談一談Vue中render函數(shù)

    簡單談一談Vue中render函數(shù)

    vue中的render函數(shù),它返回的是一個虛擬節(jié)點vnode,也就是我們要渲染的節(jié)點,下面這篇文章主要給大家介紹了關(guān)于Vue中render函數(shù)的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-09-09

最新評論