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

vxe-grid與vxe-table實(shí)現(xiàn)表格尾部合并方式

 更新時(shí)間:2026年02月09日 10:30:10   作者:pity_fan  
本文介紹了如何在Vue項(xiàng)目中使用vxe-table和vxe-grid組件實(shí)現(xiàn)表格尾部的動(dòng)態(tài)合并功能,包括如何配置和使用`mergeFooterItems`屬性來定義底部單元格合并規(guī)則,并提供了示例代碼,同時(shí),對(duì)比了兩種組件在尾部合并配置方面的差異,總結(jié)了各自的優(yōu)勢(shì)和適用場(chǎng)景

在日常開發(fā)中,我們經(jīng)常需要對(duì)表格的尾部進(jìn)行個(gè)性化處理,例如對(duì)總計(jì)進(jìn)行計(jì)算顯示在表尾中等合并某些單元格以突出關(guān)鍵信息。

本文將以 vxe-table 和 vxe-grid 組件為例,詳細(xì)介紹如何在 Vue 項(xiàng)目中實(shí)現(xiàn)表格尾部的動(dòng)態(tài)合并功能。

使用 vxe-grid 實(shí)現(xiàn)尾部合并

核心配置項(xiàng)

  • border:控制表格邊框顯示
  • height:設(shè)置表格高度
  • columns:配置列定義
  • data:綁定表格主體數(shù)據(jù)
  • showFooter:控制底部行(footer)顯示
  • footerData:綁定表格尾部數(shù)據(jù)
  • mergeFooterItems:定義底部單元格合并規(guī)則

代碼示例

<template>
  <vxe-grid
    border 
    :columns="columns"     
    :data="tableData"        
    show-footer       
    :footer-data="footerData" 
    :merge-footer-items="mergeFooterItems" 
  />
</template>

<script setup>
import { ref } from 'vue'

/**
 * 定義尾部單元格合并規(guī)則
 * 格式:{ row, col, rowspan, colspan }
 * - row: 尾部行索引(從 0 開始)
 * - col: 尾部列索引(從 0 開始)
 * - rowspan: 縱向合并的單元格數(shù)量
 * - colspan: 橫向合并的單元格數(shù)量
 */
const mergeFooterItems = ref([
  { row: 0, col: 0, rowspan: 1, colspan: 2 } // 合并第1行的前兩列
])

/**
 * 定義表格尾部數(shù)據(jù)
 * 每一項(xiàng)對(duì)應(yīng)尾部的一行數(shù)據(jù)
 * 字段需與 columns 中定義的 field 保持一致
 */
const footerData = ref([
  { name: '總計(jì)', amount: '—', count: '100' } // 尾部顯示“總計(jì)”信息
])


const columns = ref([
  //footerAlign: "right"---表格顯示位置
  { field: 'name', title: '名稱' ,footerAlign: "right"},
  { field: 'amount', title: '金額' },
  { field: 'count', title: '數(shù)量' }  
])


const tableData = ref([
  { name: '商品A', amount: 100, count: 50 }, 
  { name: '商品B', amount: 200, count: 30 } 
])
</script>

動(dòng)態(tài)切換合并方式

// 初始合并配置(合并前兩列)
gridOptions.mergeFooterItems = [
  { row: 0, col: 0, rowspan: 1, colspan: 2 }
]

// 切換為合并后兩列
function changeMerge() {
  gridOptions.mergeFooterItems = [
    { row: 0, col: 1, rowspan: 1, colspan: 2 }
  ]
}
 
  • 必須設(shè)置 showFooter: true 顯示表尾
  • 需通過 footerData 提供尾部數(shù)據(jù)
  • 修改 mergeFooterItems 后會(huì)自動(dòng)觸發(fā)表格重繪

 重點(diǎn):footerAlign: "right"---表格顯示位置

官方文檔:Vxe Table v4 https://vxetable.cn/v4/#/component/grid/merge/footer

使用 vxe-table 實(shí)現(xiàn)尾部合并

核心配置差異

  • 需手動(dòng)通過 <vxe-column> 渲染列
  • 合并配置通過 :merge-footer-items 屬性傳遞

代碼示例

<template>
  <vxe-table
    border
    show-footer
    :data="tableData"
    :footer-data="footerData"
    :merge-footer-items="mergeFooterItems"
  >
    <vxe-column field="name" title="名稱" />
    <vxe-column field="amount" title="金額" />
    <vxe-column field="count" title="數(shù)量" />
  </vxe-table>
</template>

<script setup>
import { ref } from 'vue'

const mergeFooterItems = ref([
  { row: 0, col: 0, rowspan: 1, colspan: 2 }
])

//顯示在那個(gè)列就寫對(duì)應(yīng)列的field---name顯示在名稱列
const footerData = ref([
  { name: '總計(jì)', amount: '—', count: '100' }
])

const tableData = ref([
  { name: '商品A', amount: 100, count: 50 },
  { name: '商品B', amount: 200, count: 30 }
])
</script>

動(dòng)態(tài)切換合并方式

const setMergeMode = (mode) => {
  mergeFooterItems.value = mode === 1 
    ? [{ row: 0, col: 0, colspan: 2 }] 
    : [{ row: 0, col: 1, colspan: 2 }]
}

關(guān)鍵點(diǎn)

  • 需要同時(shí)設(shè)置 show-footer 屬性
  • 合并規(guī)則變更時(shí)會(huì)自動(dòng)響應(yīng)更新
  • 支持多行尾部數(shù)據(jù)的復(fù)雜合并

官方文檔:Vxe Table v4 https://vxetable.cn/v4/#/component/table/merge/footer

兩種方式對(duì)比總結(jié)

特性vxe-gridvxe-table
配置方式集中式配置對(duì)象分散式屬性綁定
適合場(chǎng)景復(fù)雜表格場(chǎng)景簡(jiǎn)單表格或需要更高自由度時(shí)
動(dòng)態(tài)更新修改配置對(duì)象的屬性直接更新響應(yīng)式數(shù)據(jù)
代碼量相對(duì)較少相對(duì)較多

1. 動(dòng)態(tài)列定義

  • 通過 columns 數(shù)組動(dòng)態(tài)定義列結(jié)構(gòu)
  • 支持靈活調(diào)整列配置(字段名、標(biāo)題、寬度等)

2. 尾部合并配置

  • 通過 mergeFooterItems 數(shù)組控制合并規(guī)則

關(guān)鍵參數(shù):

  • row:起始行索引
  • col:起始列索引
  • rowspan:縱向合并行數(shù)
  • colspan:橫向合并列數(shù)

3. 數(shù)據(jù)綁定

  • footerData 綁定底部顯示數(shù)據(jù)
  • 數(shù)據(jù)結(jié)構(gòu)需與列定義的 field 對(duì)應(yīng)

4. 動(dòng)態(tài)更新機(jī)制

  • 使用響應(yīng)式變量(ref/reactive)
  • 修改配置自動(dòng)觸發(fā)界面更新

關(guān)鍵注意事項(xiàng)

  • 合并范圍不能超出表格實(shí)際列數(shù)
  • 合并后單元格內(nèi)容取自第一個(gè)指定單元格的值
  • 需配合 footerData 使用才能顯示尾部?jī)?nèi)容
  • 多行尾部合并需確保規(guī)則不沖突
  • 動(dòng)態(tài)列場(chǎng)景需同步更新列索引

性能優(yōu)化建議

  • 大數(shù)據(jù)量時(shí)避免頻繁更新合并規(guī)則
  • 固定列寬提升渲染性能
  • 復(fù)雜合并預(yù)先計(jì)算規(guī)則對(duì)象

總結(jié)

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

相關(guān)文章

最新評(píng)論

化隆| 疏勒县| 孙吴县| 福清市| 宜兰市| 文水县| 英山县| 广丰县| 安丘市| 肇州县| 会宁县| 平乐县| 乌恰县| 化州市| 通河县| 洛隆县| 台州市| 甘谷县| 淮北市| 湄潭县| 朝阳县| 阿坝县| 天祝| 龙南县| 沙田区| 福鼎市| 安国市| 三明市| 长沙市| 大方县| 页游| 梁山县| 澳门| 贵南县| 常宁市| 澄城县| 庄河市| 梅河口市| 岳阳市| 桃江县| 新蔡县|