Commit ce44d230 authored by 何远江's avatar 何远江

取消标题区域验证,添加标题去空格,修改标题获取字符串不全问题

parent 4b1addfe
...@@ -557,46 +557,23 @@ const setAreaMark = async (type: 'data' | 'head' = 'data') => { ...@@ -557,46 +557,23 @@ const setAreaMark = async (type: 'data' | 'head' = 'data') => {
*/ */
const result: Recordable[] = [] const result: Recordable[] = []
const rangeData = luckysheet.getRangeValue() const rangeData = luckysheet.getRangeValue()
console.log(rangeData, '-----')
// return // return
const { beginColum, beginRow, endColum, endRow } = formState as Recordable const { beginColum, beginRow, endColum, endRow } = formState as Recordable
const { beginColum: bc, beginRow: br, endColum: ec, endRow: er } = currentAreaMark const { beginColum: bc, beginRow: br, endColum: ec, endRow: er } = currentAreaMark
// const isOneColumn = bc == ec
// 是否是纵向 // 是否是纵向
let isVertical = rangeData.length > 1 let isVertical = rangeData.length > 1
if (!isRangeSide(unref(currentAreaMark), unref(formState))) { // if (!isRangeSide(unref(currentAreaMark), unref(formState))) {
return ElMessage.error('请选择区域边缘作为标题!') // return ElMessage.error('请选择区域边缘作为标题!')
}
// let position = 'left'
// if (beginRow == endRow) { // 横向
// isVertical = false
// if (beginRow == br) { // 上边
// position = 'top'
// } else if (beginRow == er) { // 下边
// position = 'bottom'
// } else {
// return ElMessage.error('请选择区域边缘作为标题!')
// }
// } else if (beginColum == endColum) { // 纵向
// isVertical = true
// if (beginColum == bc) { // 左边
// position = 'left'
// } else if (beginColum == ec) { // 右边
// position = 'right'
// } else {
// return ElMessage.error('请选择区域边缘作为标题!')
// }
// } // }
if (isVertical) { if (isVertical) {
// if (er - br + 1 != rangeData.length) {
// return ElMessage.error('请选择区域边缘作为标题区!')
// }
for (let r = 0; r < rangeData.length; r++) { for (let r = 0; r < rangeData.length; r++) {
const item = rangeData[r][0] const item = rangeData[r][0]
const title = item.v || item.ct.s.map((itm) => itm.v).join('')
result.push({ result.push({
title: item.v || item.ct.s[0].v, title: title.replaceAll(' ', ''),
sheet: formState.sheetNum, sheet: formState.sheetNum,
row: +beginRow + r, row: +beginRow + r,
colum: beginColum colum: beginColum
...@@ -608,28 +585,11 @@ const setAreaMark = async (type: 'data' | 'head' = 'data') => { ...@@ -608,28 +585,11 @@ const setAreaMark = async (type: 'data' | 'head' = 'data') => {
} }
} else { } else {
// // 如果只有一列,只能是头部或者尾部 // // 如果只有一列,只能是头部或者尾部
// if (isOneColumn) {
// console.log('isOneColumn')
// if (endColum != ec) {
// return ElMessage.error('请选择区域边缘作为标题区!')
// }
// if (rangeData[0].length == 1) {
// if (endRow == br || beginRow == er) {
// } else {
// return ElMessage.error('请选择区域边缘作为标题区!')
// }
// } else {
// return ElMessage.error('请选择区域边缘作为标题区!')
// }
// }
// if (ec - bc + 1 != rangeData[0].length) {
// return ElMessage.error('请选择区域边缘作为标题区!')
// }
for (let c = 0; c < rangeData[0].length; c++) { for (let c = 0; c < rangeData[0].length; c++) {
const item = rangeData[0][c] const item = rangeData[0][c]
console.log(item, '======') const title = item.v || item.ct.s.map((itm) => itm.v).join('')
result.push({ result.push({
title: item.v || item.ct.s[0].v, title: title.replaceAll(' ', ''),
sheet: formState.sheetNum, sheet: formState.sheetNum,
row: beginRow, row: beginRow,
colum: +beginColum + c colum: +beginColum + c
...@@ -642,18 +602,42 @@ const setAreaMark = async (type: 'data' | 'head' = 'data') => { ...@@ -642,18 +602,42 @@ const setAreaMark = async (type: 'data' | 'head' = 'data') => {
} }
// 清除之前的title颜色 // 清除之前的title颜色
resetCurrentHeadArea(() => { // resetCurrentHeadArea(() => {
luckysheet.setRangeShow({ // luckysheet.setRangeShow({
row: [beginRow, endRow], // row: [beginRow, endRow],
column: [beginColum, endColum] // column: [beginColum, endColum]
}) // })
currentAreaMark.excelAreaTitle = result // // currentAreaMark.excelAreaTitle = result
}) // })
// 合并组装的表头区域数据 // 合并组装的表头区域数据
// currentAreaMark.excelAreaTitle if (currentAreaMark.excelAreaTitle?.length > 0) {
// ? currentAreaMark.excelAreaTitle.push(...result) const arr = [...result, ...unref(currentAreaMark.excelAreaTitle)]
// : (currentAreaMark.excelAreaTitle = result)
// 合并,去重
currentAreaMark.excelAreaTitle = uniqArrayObject(arr)
} else {
currentAreaMark.excelAreaTitle = result
}
}
function uniqArrayObject(arr = []) {
return arr.reduce((cur, pre, index) => {
if (index == 0) {
cur.push(pre)
} else {
const isDiff = cur.every((item) => {
return (
item.column != pre.column ||
item.row != pre.row ||
item.sheet != pre.sheet ||
item.title != pre.title
)
})
isDiff && cur.push(pre)
}
return cur
}, [])
} }
setTimeout(() => { setTimeout(() => {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment