tijiao
This commit is contained in:
@@ -8541,55 +8541,46 @@ function shouldColor(rowIndex, cellIndex, row) {
|
|||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
function addRowIdToData(data) {
|
function addRowIdToData(content) {
|
||||||
console.log('data at line 8526:', data)
|
console.log('每行data数据1', content)
|
||||||
|
var data = JSON.parse(JSON.stringify(content))
|
||||||
let idCounter = 0; // Initialize an ID counter
|
let idCounter = 0; // Initialize an ID counter
|
||||||
|
|
||||||
// Iterate through each row
|
|
||||||
for (let i = 0; i < data.length; i++) {
|
for (let i = 0; i < data.length; i++) {
|
||||||
// Assign an ID to the current row
|
|
||||||
data[i].rowId = `row-${idCounter}`;
|
data[i].rowId = `row-${idCounter}`;
|
||||||
idCounter++;
|
idCounter++;
|
||||||
|
|
||||||
// Check for rowspan and propagate the same ID to merged cells
|
|
||||||
for (let j = 0; j < data[i].length; j++) {
|
for (let j = 0; j < data[i].length; j++) {
|
||||||
const cell = data[i][j];
|
const cell = data[i][j];
|
||||||
|
if (cell && cell.text && cell.rowspan && cell.rowspan > 1) {
|
||||||
// If the cell has a rowspan attribute, propagate the same ID across all affected rows
|
|
||||||
if (cell&&cell.text&&cell.rowspan && cell.rowspan > 1) {
|
|
||||||
for (let k = 0; k < cell.rowspan; k++) {
|
for (let k = 0; k < cell.rowspan; k++) {
|
||||||
if (data[i + k]) {
|
if (data[i + k]) {
|
||||||
|
|
||||||
// Ensure that all cells in the same column and across the rows have the same rowId
|
data[i + k][j] = { ...data[i + k][j], rowId: `row-${idCounter - 1}` };
|
||||||
data[i + k][j] ={...data[i + k][j],rowId:`row-${idCounter - 1}`} ;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
console.log('每行data数据:', JSON.parse(JSON.stringify(data)))
|
||||||
const seenIds = [];
|
const seenIds = [];
|
||||||
|
|
||||||
|
|
||||||
data.map((row, rowIndex) => {
|
data.map((row, rowIndex) => {
|
||||||
|
// row= row.filter(cell => cell.cellId)
|
||||||
|
|
||||||
row.map((cell, cellIndex) => {
|
row.map((cell, cellIndex) => {
|
||||||
if (cell.rowId) {
|
if (cell.rowId) {
|
||||||
row.rowId = cell.rowId
|
row.rowId = cell.rowId
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
data.forEach(row => {
|
data.forEach(row => {
|
||||||
if (row.rowId && !seenIds.includes(row.rowId)) {
|
if (row.rowId && !seenIds.includes(row.rowId)) {
|
||||||
seenIds.push(row.rowId); // Mark this rowId as seen
|
seenIds.push(row.rowId); // Mark this rowId as seen
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
console.log('data at line 最新8534:', seenIds, data)
|
|
||||||
const rowIds = seenIds.filter((_, index) => index % 2 === 0);
|
const rowIds = seenIds.filter((_, index) => index % 2 === 0);
|
||||||
const rowData = data;
|
const rowData = data
|
||||||
console.log(rowIds);
|
|
||||||
return { rowData, rowIds }
|
return { rowData, rowIds }
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -8639,7 +8630,8 @@ function initArticleHtmlFun(arr, result, html_type) {
|
|||||||
|
|
||||||
|
|
||||||
const { header, content } = splitTable(tableList);
|
const { header, content } = splitTable(tableList);
|
||||||
var { rowData, rowIds } = addRowIdToData(content)
|
console.log('content at line 8641:', content); // 打印深拷贝的内容
|
||||||
|
var { rowData, rowIds } = addRowIdToData(JSON.parse(JSON.stringify(content)))
|
||||||
console.log('content at line 8542:', rowIds, rowData)
|
console.log('content at line 8542:', rowIds, rowData)
|
||||||
// console.log('contentList at line 8571:', contentList)
|
// console.log('contentList at line 8571:', contentList)
|
||||||
|
|
||||||
@@ -8672,11 +8664,16 @@ ${rowData
|
|||||||
<tr class="table-content-row ${row.rowId && rowIds.includes(row.rowId) ? 'oddColor' : ''}" >
|
<tr class="table-content-row ${row.rowId && rowIds.includes(row.rowId) ? 'oddColor' : ''}" >
|
||||||
${row
|
${row
|
||||||
.map((cell, cellIndex) => {
|
.map((cell, cellIndex) => {
|
||||||
return `
|
if (cell && cell.cellId) {
|
||||||
|
return `
|
||||||
<td colspan="${cell.colspan || 1}" rowspan="${cell.rowspan || 1}" >
|
<td colspan="${cell.colspan || 1}" rowspan="${cell.rowspan || 1}" >
|
||||||
<span style="font-family: 'Charis SIL';">${cell.text || ''}</span>
|
<span style="font-family: 'Charis SIL';">${cell.text || ''}</span>
|
||||||
</td>
|
</td>
|
||||||
`;
|
`;
|
||||||
|
} else {
|
||||||
|
return ``
|
||||||
|
}
|
||||||
|
|
||||||
})
|
})
|
||||||
.join('')}
|
.join('')}
|
||||||
</tr>
|
</tr>
|
||||||
@@ -9122,32 +9119,33 @@ function initArticleHtml(htmlData, refs, type) {
|
|||||||
function isHeaderRow(rowIndex, table) {
|
function isHeaderRow(rowIndex, table) {
|
||||||
|
|
||||||
|
|
||||||
console.log('table at line 697:', table)
|
|
||||||
var head = table[0]
|
var head = table[0]
|
||||||
console.log('head at line 699:', head[0].rowspan)
|
|
||||||
|
|
||||||
return rowIndex < head[0].rowspan; // 假设前两行是表头
|
return rowIndex < head[0].rowspan; // 假设前两行是表头
|
||||||
}
|
}
|
||||||
function splitTable(tableList) {
|
function splitTable(tableList) {
|
||||||
// 获取头部行数
|
// 获取头部行数
|
||||||
const headerRowCount = tableList[0][0].rowspan || 1; // 默认第一行是头部行,获取该行的 rowspan
|
const headerRowCount = tableList[0][0].rowspan || 1; // 默认第一行是头部行,获取该行的 rowspan
|
||||||
|
|
||||||
// 用 isHeaderRow 判断头部行
|
// 用 isHeaderRow 判断头部行
|
||||||
const header = [];
|
const header = [];
|
||||||
const content = [];
|
const content = [];
|
||||||
|
let cellIdCounter = 0; // 初始化计数器,用于为每个单元格生成唯一的 cellId
|
||||||
tableList.forEach((row, rowIndex) => {
|
tableList.forEach((row, rowIndex) => {
|
||||||
|
row.forEach((cell, cellIndex) => {
|
||||||
|
cell.cellId = `cell-${cellIdCounter}`;
|
||||||
|
cellIdCounter++;
|
||||||
|
});
|
||||||
if (isHeaderRow(rowIndex, tableList)) {
|
if (isHeaderRow(rowIndex, tableList)) {
|
||||||
header.push(row); // 将头部行添加到 header 数组
|
header.push(row); // 将头部行添加到 header 数组
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
|
|
||||||
content.push(row); // 将内容行添加到 table 数组
|
content.push(row); // 将内容行添加到 table 数组
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
//
|
//
|
||||||
console.log('header:', header); // 打印头部行数据
|
console.log('header:', header); // 打印头部行数据
|
||||||
console.log('table:', content); // 打印内容行数据
|
console.log('table打印内容行数据:', content); // 打印内容行数据
|
||||||
|
|
||||||
return { header, content };
|
return { header, content };
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user