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

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

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

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

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

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

解決辦法

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

vue標(biāo)簽

<el-table :data="contractList" border ?style="width: 100%" :span-method="objectSpanMethod">
?? ? ?<el-table-column label="各部門部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ù)自己的需求來改
?? ? ? ? ?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合并相同單元格問題

項目需求table表格中,相同的類型合并成一個單元格展示。

問題描述

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

效果圖

解決問題

首先需要在 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中定義一個rowSpanArr參數(shù)

// 獲取相同名稱的個數(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; //項目名稱相同,合并到同一個數(shù)組中
            rowSpanArr.push(0);
          } else {
            rowSpanArr.push(1);
            position = index;
          }
        }
      }
      this.rowSpanArr = rowSpanArr
}
// 單元格的處理方法 當(dāng)前行row、當(dāng)前列column、當(dāng)前行號rowIndex、當(dāng)前列號columnIndex
objectSpanMethod({ row, column, rowIndex, columnIndex }){
     if (columnIndex === 0) {
        const rowSpan = this.rowSpanArr[rowIndex];
        return {
          rowspan: rowSpan, //行
          colspan: 1 //列
        };
      }
}
        

擴展

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

總結(jié)

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

相關(guān)文章

  • Vue3中父子傳參常見方式及用法

    Vue3中父子傳參常見方式及用法

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

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

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

    vue項目中公用footer組件底部位置的適配問題

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

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

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

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

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

    Element中el-form表單舉例詳解

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

    vue-router 路由傳參用法實例分析

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

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

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

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

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

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

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

最新評論

新郑市| 许昌市| 江西省| 盐边县| 建水县| 科技| 项城市| 临泽县| 启东市| 寻乌县| 柘城县| 辰溪县| 义乌市| 汨罗市| 莱阳市| 丽水市| 苏尼特左旗| 忻城县| 娄底市| 阿勒泰市| 鹿泉市| 淮阳县| 嘉义县| 康乐县| 潞城市| 黑河市| 乐至县| 平度市| 尼木县| 合作市| 南岸区| 嵩明县| 伊宁市| 讷河市| 万荣县| 昂仁县| 青神县| 开原市| 永仁县| 长治市| 虞城县|