vxe-table表格合并单元格和编辑

article/2025/9/12 20:31:02

在这里插入图片描述
//这是在vue上面引用vxe-table插件实现的,主要方法都设置在table中,mergeCells,tableData都是在vue页面的data初使化数据, :footer-method=“footerMethod”:尾部数据,:merge-footer-items=“mergeCells”:尾部合并单元格。vxe-table网址:https://vxetable.cn/#/table/advanced/footerSpan

<vxe-table
:data=“tableData”
empty-text=“暂无数据!”
border
:column-config=“{ resizable: true }”
:edit-config=“{ trigger: ‘click’, mode: ‘cell’ }” //编辑单元格
:row-config=“{
isCurrent: true,
isHover: true,
height: 30,
}”
show-overflow
stripe
:footer-method=“footerMethod” //表尾方法
class=“mytablevxe”
show-footer
:merge-footer-items=“mergeCells” //表尾合并单元格
footer-align=“center”
:header-cell-style=“{ color: ‘#000’ }”
style=“border-collapse: collapse;min-height: 65vh;”
>

  <vxe-colgroup title="裤子"><vxe-table-column field="item1s" title="奖"></vxe-table-column><vxe-table-column field="item2s" title="罚"></vxe-table-column></vxe-colgroup><vxe-colgroup title="连带"><vxe-table-column field="item3s" title="奖"></vxe-table-column><vxe-table-column field="item4s" title="罚"></vxe-table-column></vxe-colgroup><vxe-colgroup title="抖音码奖罚">    //奖罚点击输入框填写<vxe-table-columnfield="item25"title="奖":edit-render="{ placeholder: '请输入' }"><template #edit="{ row }"><vxe-inputv-model="row.item25"type="text"placeholder="请输入奖励"></vxe-input></template></vxe-table-column><vxe-table-columnfield="item26"title="罚":edit-render="{ placeholder: '请输入' }"><template #edit="{ row }"><vxe-inputv-model="row.item26"type="text"placeholder="请输入罚款"></vxe-input></template></vxe-table-column></vxe-colgroup>其它字段省略.......</vxe-table-column>
</vxe-table>

export default {
data() {
return {
mergeCells: [
//row 1代表尾部第一行, col:尾部第几行单元格开始要合并,rowspan:跨列合并,colspan:横向合并3个单元格
{ row: 1, col: 1, rowspan: 0, colspan: 3 }, //第一行开始,横向合并3个单元格,如图店员奖金
{ row: 1, col: 4, rowspan: 0, colspan: 3 },
{ row: 1, col: 9, rowspan: 0, colspan: 3 },
{ row: 1, col: 12, rowspan: 0, colspan: 3 },
{ row: 1, col: 17, rowspan: 0, colspan: 3 },
{ row: 1, col: 20, rowspan: 0, colspan: 4 },
{ row: 1, col: 26, rowspan: 0, colspan: 3 },
{ row: 1, col: 29, rowspan: 0, colspan: 3 },
{ row: 1, col: 34, rowspan: 0, colspan: 2 },
{ row: 1, col: 36, rowspan: 0, colspan: 4 },
{ row: 2, col: 0, rowspan: 0, colspan: 6 },
{ row: 2, col: 6, rowspan: 0, colspan: 9 },
{ row: 2, col: 15, rowspan: 0, colspan: 5 },
{ row: 2, col: 20, rowspan: 0, colspan: 9 },
{ row: 2, col: 29, rowspan: 0, colspan: 14 },
],
tableData: [
{
name: ‘张三’,
item1s: 5,
item2s: 2,
item3s: 3,
item4s: 4,
item5: 0,
item6: 0,
item7: 7,
item8: 0,
dmjlNum: 0,
item10: 10,
item11: 11,
item12: 12,
item13: 13,
item14: 14,
item15: 15,
item16: 16,
item17: 17,
item18: 18,
item19: 18,
item20: 20,
item21: 21,
item22: 22,
item23: 23,
item24: 24,
item25: 0,
},
{
name: ‘张四’,
item1s: 1,
item2s: 2,
item3s: -3,
item4s: 4,
item5: 0,
item6: 0,
item7: 7,
item8: 0,
dmjlNum: 0,
item10: 10,
item11: 11,
item12: 12,
item13: 13,
item14: 14,
item15: -5,
item16: 16,
item17: 17,
item18: 18,
item19: 18,
item20: 20,
item21: 21,
item22: 22,
item23: 23,
item24: 24,
item25: 0,
},
{
name: ‘张四’,
item1s: 1,
item2s: 2,
item3s: -3,
item4s: 4,
item5: 0,
item6: 0,
item7: 7,
item8: 0,
dmjlNum: 0,
item10: 10,
item11: 11,
item12: 12,
item13: 13,
item14: 14,
item15: -5,
item16: 16,
item17: 17,
item18: 18,
item19: 18,
item20: 20,
item21: 21,
item22: 22,
item23: 23,
item24: 24,
item25: 0,
},
{
name: ‘张四’,
item1s: 1,
item2s: 2,
item3s: -3,
item4s: 4,
item5: 0,
item6: 0,
item7: 7,
item8: 0,
dmjlNum: 0,
item10: 10,
item11: 11,
item12: 12,
item13: 13,
item14: 14,
item15: -5,
item16: 16,
item17: 17,
item18: 18,
item19: 18,
item20: 20,
item21: 21,
item22: 22,
item23: 23,
item24: 24,
item25: 0,
},
{
name: ‘张四’,
item1s: 1,
item2s: 2,
item3s: -3,
item4s: 4,
item5: 0,
item6: 0,
item7: 7,
item8: 0,
dmjlNum: 0,
item10: 10,
item11: 11,
item12: 12,
item13: 13,
item14: 14,
item15: -5,
item16: 16,
item17: 17,
item18: 18,
item19: 18,
item20: 20,
item21: 21,
item22: 22,
item23: 23,
item24: 24,
item25: 0,
},
],
dyjl:0,
},

methods:{
//表尾方法
footerMethod({ columns, data }) {
console.log(data + ‘------’)

  return [columns.map((column, columnIndex) => {if (columnIndex === 0) {return '小计'}if (['item1s','item2s','item3s','item4s','item5','item6','item7','item8','item9','item10','item11','item12','item13','item14','item15','item16','item17','item18','item19','item20',].includes(column.property)) {return XEUtils.sum(data, column.property)    //每个字段下面求合,就是图中的小计}return null}),//表尾第一行columns.map((column, columnIndex) => {if (columnIndex === 0) {return '合计'}if (columnIndex === 1) { //第一列填写的值return '店员奖金'}if (columnIndex === 4) {//第四列填写的值return this.dyjl  //值可以跟据需要自己计算后再赋值  如this.dyjl=item.item1+item.item2就有值了}if (columnIndex === 7) {//第七列填写的值,后面依此类推return '元'}if (columnIndex === 8) {return ''}if (columnIndex === 9) {return '绩效奖金'}if (columnIndex === 12) {return this.dyjl}if (columnIndex === 15) {return '元'}if (columnIndex === 16) {return ''}if (columnIndex === 17) {return '线上奖金'}if (columnIndex === 20) {return this.dyjl}if (columnIndex === 24) {return '元'}if (columnIndex === 26) {return '线上罚款'}if (columnIndex === 29) {return this.dyjl}if (columnIndex === 32) {return '元'}if (columnIndex === 34) {return '总金额'}if (columnIndex === 36) {return this.dyjl}if (columnIndex === 40) {return '元'}}),//表尾第二行columns.map((column, columnIndex) => {if (columnIndex === 0) {return '填表人(收银员/店助)'}if (columnIndex === 15) {return '审核人(店长):'}]
},

http://chatgpt.dhexx.cn/article/xMIGbuud.shtml

相关文章

elementUI中table单元格的合并,通用版

之前曾发布过一篇文章关于单元格合并问题&#xff0c;但是通用性很差&#xff0c;切代码较长不美观&#xff0c;改进之后分享给大家&#xff0c;我这里使用的是vue3,vue2的小伙伴稍微改动一下即可 如图&#xff1a;合并前 想要效果&#xff1a; 话不多说直接上代码教大家&…

Table表格合并

vueelementUI 中的 Table 表格的合并功能&#xff0c;可配置&#xff0c;使用方便。 1、合并前后效果图 2、代码实现 <template><div class"hello">{{msg}}<div><el-table:data"tableData":span-method"arraySpanMethod"b…

Element UI 的 table 单元格合并

项目中遇到表格单元格合并的需求&#xff0c;在此记录整个解决过程。 项目使用的是 Element UI&#xff0c;表格使用的是 table 组件。Element UI 的 table 表格组件中对单元格进行合并&#xff0c;需要使用 table 组件的 span-method 属性。 先看一张成果图&#xff08;完整代…

vxe-table 合并单元格合并列

效果如下&#xff1a; 合并单元格&#xff08;表头&#xff09;&#xff1a; :edit-render"{autofocus: .vxe-input--inner}"是控制是否可编辑单元格&#xff0c;和:edit-config搭配使用 合并列方法绑定:span-method&#xff0c;具体如下 <vxe-tableref"xT…

element ui 的table单元格合并

element ui中的table表格数据是动态生成的&#xff0c;如果说后台要求我们对单元格进行合并&#xff0c;这个时候需要借助一个api,:span-method"arraySpanMethod",arraySpanMethod为我们自己编写的合并单元格的方法。 下图是我在项目中合并的单元格 数据都是从那后…

element table表格合并行和列

element-ui 官网案例&#xff1a; table合并行或列 通过给table传入span-method方法可以实现合并行或列&#xff0c;方法的参数是一个对象&#xff0c;里面包含当前行row、当前列column、当前行号rowIndex、当前列号columnIndex四个属性。该函数可以返回一个包含两个元素的数组…

Element_Table的单元格合并

在进行Table的单元格合并的时候&#xff0c;出现了bug&#xff1a;合并第一列的第 x 和 x1 行时&#xff0c;第x2行的数据被第二列的数据替换&#xff0c;之后表格中的数据均向前移动了一格&#xff0c;导致数据展示错乱 分析 在进行单元格合并时&#xff0c;未考虑到动态合并…

el-table 怎么合并相同单元格

问题背景 项目需求table表格中&#xff0c;相同的类型合并成一个单元格展示。 问题描述 el-table并没有相关的语法直接合并&#xff0c;需要我们自己传入一个方法返回一个数组格式&#xff0c;来确定要合并行列。 解决问题 首先需要在 el-table 标签上绑定:span-method&quo…

el-table合并单元格

根据id相同合并单元格 <el-table selection-change"handleSelectionChange" :span-method"objectSpanMethod" :data"tableData" ref"multipleTable" ><el-table-column :selectable"checkSelect" type"sel…

Ant table表格合并单元格使用

Ant 合并单元格覆盖样式 项目需求&#xff1a; 最后一列用来展示详情&#xff0c;表格左侧点击行切换&#xff1b;要求选中行的样式和详情信息用一个边框凸显出来 结果如下&#xff1a; 切换效果展示如下&#xff1a; 实现过程&#xff1a; 在ant合并单元格demo中&#xff…

table 表格合并行或列

合并单元格 <table><tbody><tr><th colspan"2">我是占位符</th><th colspan"2">我是占位符</th></tr><tr><th rowspan"2">我是占位符</th><th>我是占位符</th>&…

Element Table 单元格中嵌套表格(Table) 合并行效果

在Element中实现表格合并行功能一般是通过自定义span-method方法&#xff0c;此方法要求表格数据源中需要合并行的单元格中数据相同&#xff0c;根据相同数据来实现合并算法。 本例通过在父Table单元格中嵌套子Table实现合并行效果&#xff08;也使用了span-method方法&#x…

Html Table 合并单元格

<!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title></title> </head> <body> <ol><li>基本表格</li><table border"2" bordercolor"black" …

使用原生table合并单元格

先上个我要实现的页面 例子1&#xff1a; 就是最近要开发这么一个页面&#xff08;这是个原型图&#xff0c;没有美化&#xff0c;大概是这个样子也都懂&#xff09;&#xff0c;刚看到的时候说实话有点儿懵的&#xff0c;第一次见到这样的表格&#xff0c;可以看到里面有很多…

el-table 合并单元格(合并行)

1. 添加 :span-method"objectSpanMethod" 2. 写objectSpanMethod 方法 //#region 合并单元格// 这个方法是 element-ui提供的单元格合并方法// objectSpanMethod 传入了 { row, column, rowIndex, columnIndex }// row: 当前行// column: 当前列// rowIndex&…

table表格 ---合并单元格

1、合并表头 第一种方法 利用table的 :header-cell-style属性 <el-table:data"tableData"height"400px"max-height"400px"size"small":header-cell-style"headerStyle"fit > methods: {headerStyle({ row, rowIndex …

table表格单元格的合并详解

1.html实现表格 <el-tablemax-height"300":columns"columns":data"tableData":show-index"false":span-method"objectSpanMethod":header-cell-style"{ background: #eef0f6 }" /> 2.记录每个字段合并数的…

table表格--合并单元格

知识点概要&#xff1a; 1、colpan:横向合并"n"个单元格--n:默认1 2、rowspan:纵向合并"n"个单元格--n:默认1 代码demo&#xff1a; <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/lo…

table表格中单元格的合并

目录 table表格中单元格的合并 table表格中单元格的合并很多朋友不一定了解&#xff0c;今天我就写一篇博客来跟大家分享一下table表格中的跨行合并和跨列合并。 我们先看一个合并过的表格&#xff0c;大家可以先思考一下这种表格通过代码是怎么实现的。 解析&#xff1a;我们…

类型“HTMLElement”上不存在属性“getContext”

ts警告&#xff1a;类型“HTMLElement”上不存在属性“getContext” 修改代码如下&#xff1a; const state reactive({canvasDom: null as HTMLCanvasElement | null,canvasCtx: null as CanvasRenderingContext2D | null, });onMounted(() > {state.canvasDom <HTML…