/** * 封装表格指定行单元格 * @param data 表格数据 * @param merge 合并的列表头字段数组 * @returns */ export function useMergeTableRow(data: any, merge: any) { // let data = deepCopy(list) if (!merge || merge.length === 0) { return data } merge.forEach((m: any) => { const mList = {} as any data = data.map((v: any, index: number) => { const rowVal = v[m] if (mList[rowVal] && mList[rowVal].newIndex === index) { mList[rowVal].num++ mList[rowVal].newIndex++ data[mList[rowVal].index][`${m}-span`].rowspan++ v[`${m}-span`] = { rowspan: 0, colspan: 0, } } else { mList[rowVal] = { num: 1, index, newIndex: index + 1 } v[`${m}-span`] = { rowspan: 1, colspan: 1, } } return v }) }) return data } export function mergeTableRow({ row, column }: any) { // console.log(row, column, rowIndex, columnIndex); const span = `${column.property}-span` if (row[span]) { return row[span] } } // 初始化列表数据 export function initTableRow(data: any) { let tableData = [] tableData = data.map((item: any) => { const obj = {} as { [key: string]: any } for (const i in item) { if (!i.includes('-span')) { obj[i] = item[i] } } console.log(obj, 'obj') return obj }) return tableData }