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

Vue中如何合并el-table第一列相同數(shù)據(jù)

 更新時(shí)間:2023年03月27日 10:38:36   作者:半度納  
這篇文章主要介紹了Vue中如何合并el-table第一列相同數(shù)據(jù)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Vue合并el-table第一列相同數(shù)據(jù)

業(yè)務(wù)需求

需要將el-table表格第一列相同的內(nèi)容進(jìn)行合并。

解決辦法

el-table中使用 :span-method="objectSpanMethod"方法

vue標(biāo)簽

<el-table :data="contractList" border ?style="width: 100%" :span-method="objectSpanMethod">
?? ? ?<el-table-column label="各部門(mén)部1月-12月合同回款情況" align="center">
?? ? ? ?<el-table-column prop="quarterly" ?width="100" align="center" />
?? ? ? ?<el-table-column prop="mon" width="80" align="center" />
?? ? ? ?<el-table-column prop="amountReceived" width="180" align="center" />
?? ? ? ?<el-table-column prop="remark" width="180" align="center" />
?? ? ?</el-table-column>?? ?
</el-table>

methods內(nèi)部處理

/* 表格合并列和行 */
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
?? ??? ?if (columnIndex === 0) {
?? ??? ? ?const _row = this.flitterData(this.contractList).one[rowIndex];
?? ??? ? ?const _col = _row > 0 ? 1 : 0;
?? ??? ? ?return {
?? ??? ? ? ?rowspan: _row,
?? ??? ? ? ?colspan: _col,
?? ??? ? ?};
?? ??? ?}
?? ?},
?? ?/**合并表格的第一列,處理表格數(shù)據(jù) */
?? ?flitterData(arr) {
?? ? ?let spanOneArr = [];
?? ? ?let concatOne = 0;
?? ? ?arr.forEach((item, index) => {
?? ? ? ?if (index === 0) {
?? ? ? ? ?spanOneArr.push(1);
?? ? ? ?} else {
?? ? ? ?//注意這里的quarterly是表格綁定的字段,根據(jù)自己的需求來(lái)改
?? ? ? ? ?if (item.quarterly === arr[index - 1].quarterly) {
?? ? ? ? ? ?//第一列需合并相同內(nèi)容的判斷條件
?? ? ? ? ? ?spanOneArr[concatOne] += 1;
?? ? ? ? ? ?spanOneArr.push(0);
?? ? ? ? ?} else {
?? ? ? ? ? ?spanOneArr.push(1);
?? ? ? ? ? ?concatOne = index;
?? ? ? ? ?}
?? ? ? ?}
?? ? ?});
?? ? ?return {
?? ? ? ?one: spanOneArr,
?? ? ?};
?? ?},

效果展示

el-table合并相同單元格問(wèn)題

項(xiàng)目需求table表格中,相同的類型合并成一個(gè)單元格展示。

問(wèn)題描述

el-table并沒(méi)有相關(guān)的語(yǔ)法直接合并,需要我們自己傳入一個(gè)方法返回一個(gè)數(shù)組格式,來(lái)確定要合并行列。

效果圖

解決問(wèn)題

首先需要在 el-table 標(biāo)簽上綁定:span-method="objectSpanMethod"

<el-table :data="tableData" :span-method="objectSpanMethod" >
    <el-table-column prop="projectName" label="訂單類型" />  
</el-table>

再去methods中定義 objectSpanMethod 方法,data中定義一個(gè)rowSpanArr參數(shù)

// 獲取相同名稱的個(gè)數(shù) tableData: 表格的數(shù)據(jù), projectName: 確定相同的參數(shù)
handleTableData(tableData){
      let rowSpanArr = [], position = 0;
      for (let [index, item] of tableData.entries()) {
        if (index == 0) {
          rowSpanArr.push(1);
          position = 0;
        } else {
          if (item.projectName == tableData[index - 1].projectName) {
            rowSpanArr[position] += 1; //項(xiàng)目名稱相同,合并到同一個(gè)數(shù)組中
            rowSpanArr.push(0);
          } else {
            rowSpanArr.push(1);
            position = index;
          }
        }
      }
      this.rowSpanArr = rowSpanArr
}
// 單元格的處理方法 當(dāng)前行row、當(dāng)前列column、當(dāng)前行號(hào)rowIndex、當(dāng)前列號(hào)columnIndex
objectSpanMethod({ row, column, rowIndex, columnIndex }){
     if (columnIndex === 0) {
        const rowSpan = this.rowSpanArr[rowIndex];
        return {
          rowspan: rowSpan, //行
          colspan: 1 //列
        };
      }
}
        

擴(kuò)展

objectSpanMethod({ row, column, rowIndex, columnIndex }) {
   if (columnIndex === 0) { // 判斷是不是第一列,只有第一列才執(zhí)行合并
      if (rowIndex % 2 === 0) { // 判斷能不能被2整除
          return {
            rowspan: 2, // 從當(dāng)前單元格開(kāi)始,執(zhí)行合并2行
            colspan: 1, // 從當(dāng)前單元格開(kāi)始,執(zhí)行合并1列
          };
       } else {
         return { // 第一列的其他元素不執(zhí)行合并
           rowspan: 0, // 為0,不執(zhí)行合并
           colspan: 0  // 為0,不執(zhí)行合并
         };
       }
    }
 }

總結(jié)

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

相關(guān)文章

  • Vue3中父子傳參常見(jiàn)方式及用法

    Vue3中父子傳參常見(jiàn)方式及用法

    在 Vue 3 中,父子組件之間進(jìn)行通信有多種方式,下面簡(jiǎn)單介紹下常見(jiàn)的方式及其用法和使用場(chǎng)景,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友參考下吧
    2024-01-01
  • Vue中watch、computed、updated三者的區(qū)別及用法

    Vue中watch、computed、updated三者的區(qū)別及用法

    這篇文章主要介紹了Vue中watch、computed、updated三者的區(qū)別及用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-07-07
  • vue項(xiàng)目中公用footer組件底部位置的適配問(wèn)題

    vue項(xiàng)目中公用footer組件底部位置的適配問(wèn)題

    footer為公用組件,其他頁(yè)面都需要引入。接下來(lái)通過(guò)本文給大家分享vue項(xiàng)目中公用footer組件底部位置的適配問(wèn)題,需要的朋友可以參考下
    2018-05-05
  • vue中swiper?vue-awesome-swiper的使用方法及各種坑解決

    vue中swiper?vue-awesome-swiper的使用方法及各種坑解決

    這篇文章主要介紹了vue中swiper?vue-awesome-swiper的使用方法及各種坑解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • vue2左側(cè)菜單欄收縮展開(kāi)功能實(shí)現(xiàn)

    vue2左側(cè)菜單欄收縮展開(kāi)功能實(shí)現(xiàn)

    vue2左側(cè)菜單欄收縮展開(kāi)目前是非常常見(jiàn)的,我們?cè)谌粘i_(kāi)發(fā)過(guò)程中經(jīng)常會(huì)碰到,這篇文章給大家介紹vue2左側(cè)菜單欄收縮展開(kāi)功能,感興趣的朋友跟隨小編一起看看吧
    2024-04-04
  • Element中el-form表單舉例詳解

    Element中el-form表單舉例詳解

    Form組件提供了表單驗(yàn)證的功能,只需要通過(guò)屬性傳入約定的驗(yàn)證規(guī)則,并將Form-Item的屬性設(shè)置為需校驗(yàn)的字段名即可,下面這篇文章主要給大家介紹了關(guān)于Element中el-form表單的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • vue-router 路由傳參用法實(shí)例分析

    vue-router 路由傳參用法實(shí)例分析

    這篇文章主要介紹了vue-router 路由傳參用法,結(jié)合實(shí)例形式分析了vue-router 路由傳參基本使用方法及操作注意事項(xiàng),需要的朋友可以參考下
    2020-03-03
  • Vue修改iview組件的樣式的兩種方案(element同)

    Vue修改iview組件的樣式的兩種方案(element同)

    使用vue必然會(huì)用到等iview組件庫(kù),但是iview的組件的樣式跟自己寫(xiě)的div的樣式修改不太一樣,所以本文給大家介紹了Vue修改iview組件的樣式的兩種方案(element同),需要的朋友可以參考下
    2024-04-04
  • vue自定義加載指令v-loading占位圖指令v-showimg

    vue自定義加載指令v-loading占位圖指令v-showimg

    這篇文章主要為大家介紹了vue自定義加載指令和v-loading占位圖指令v-showimg的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • vue組件詳解之使用slot分發(fā)內(nèi)容

    vue組件詳解之使用slot分發(fā)內(nèi)容

    這篇文章主要介紹了vue組件詳解之使用slot分發(fā)內(nèi)容及Vue組件中slot的用法,需要的朋友可以參考下
    2018-04-04

最新評(píng)論

保德县| 温宿县| 吴堡县| 行唐县| 沾化县| 新民市| 西华县| 梅州市| 宁蒗| 郁南县| 金平| 神农架林区| 清水河县| 宁南县| 大港区| 长垣县| 集贤县| 新邵县| 六安市| 崇明县| 九台市| 苏尼特右旗| 石屏县| 自贡市| 来安县| 高阳县| 葫芦岛市| 海林市| 大名县| 汉源县| 德清县| 临漳县| 通江县| 磐安县| 苍南县| 土默特右旗| 新昌县| 文登市| 芒康县| 水城县| 龙陵县|