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

bug 修改

parent 7e72d5df
...@@ -110,6 +110,48 @@ export function handleRangeTitle(range: any) { ...@@ -110,6 +110,48 @@ export function handleRangeTitle(range: any) {
return titles return titles
} }
export function handleRangeCell(range: any) {
// console.log(luckysheet.getRangeValue(), 'range-----')
// return
const { beginRow, beginColum, endRow, sheetNum, endColum, columnLen, rowLen } =
getRangeState(range)
const titles = []
const mergeCells: any = []
for (let c = 0; c < columnLen; c++) {
for (let r = 0; r < rowLen; r++) {
const t = {
title: '',
sheet: sheetNum,
row: +beginRow + r,
colum: +beginColum + c
}
if (mergeCells.includes(`${t.row}_${t.colum}`)) {
continue
}
const cell = range[r][c]
try {
t.title = (cell.v || cell?.ct?.s?.map((itm) => itm.v).join('')).replaceAll(/(\s+)/g, '')
// 如果有合并单元格,直接跳过合并的单元格
if (cell?.mc?.rs > 1) {
Array.from({ length: cell.mc.rs - 1 }, (_, i) => {
mergeCells.push(`${t.row + i + 1}_${t.colum}`)
})
}
if (cell?.mc?.cs > 1) {
Array.from({ length: cell.mc.cs - 1 }, (_, i) => {
mergeCells.push(`${t.row}_${t.colum + i + 1}`)
})
}
titles.push(t)
} catch (e) {
console.log(r, c, t, e, 'error')
}
}
}
return titles
}
/** /**
* 获取当前选取的坐标 * 获取当前选取的坐标
* @returns * @returns
...@@ -210,13 +252,13 @@ export function filterRunData(data: any, config: boolean = false) { ...@@ -210,13 +252,13 @@ export function filterRunData(data: any, config: boolean = false) {
// excelOrderFiledConfId: '', // excelOrderFiledConfId: '',
// params: {}, // params: {},
// orderFiled: {}, // orderFiled: {},
excelOrderFiledConfId:'', excelOrderFiledConfId: '',
title: '', title: '',
orderFiledConfs: [], orderFiledConfs: [],
templateFileId: '' templateFileId: ''
} }
console.log(data, 'data-----') console.log(data, 'data-----')
data.forEach((row: any) => { data.forEach((row: any) => {
const rw: Recordable = {} const rw: Recordable = {}
......
...@@ -53,7 +53,7 @@ ...@@ -53,7 +53,7 @@
<script lang="ts" setup> <script lang="ts" setup>
import { ref, reactive, unref } from 'vue' import { ref, reactive, unref } from 'vue'
import { compareSameCell, getRangetxt, handleRangeTitle } from '@/utils/excel' import { compareSameCell, getRangetxt, handleRangeCell, handleRangeTitle } from '@/utils/excel'
import { areaMarksColor } from '@/constants/excelConfig' import { areaMarksColor } from '@/constants/excelConfig'
import { ElMessage } from 'element-plus' import { ElMessage } from 'element-plus'
import type { Recordable } from '@/types/global' import type { Recordable } from '@/types/global'
...@@ -94,14 +94,17 @@ const setAreaTitle = () => { ...@@ -94,14 +94,17 @@ const setAreaTitle = () => {
if (sheet.order != props.currentAreaMark.sheetNum) { if (sheet.order != props.currentAreaMark.sheetNum) {
return ElMessage.error('请在同一sheet页中选择数据!') return ElMessage.error('请在同一sheet页中选择数据!')
} }
const isPublic = props.currentAreaMark.excelAreaType == 'public_area'
const [sr, er] = sheet.luckysheet_select_save[0].row const [sr, er] = sheet.luckysheet_select_save[0].row
const [sc, ec] = sheet.luckysheet_select_save[0].column const [sc, ec] = sheet.luckysheet_select_save[0].column
const rangeData = luckysheet.getRangeValue() const rangeData = luckysheet.getRangeValue()
const titles = handleRangeTitle(rangeData).map((item) => { const titles = isPublic
Reflect.set(item, 'numTitle', '') ? handleRangeCell(rangeData)
Reflect.set(item, 'numFlag', 'N') : handleRangeTitle(rangeData).map((item) => {
return item Reflect.set(item, 'numTitle', '')
}) Reflect.set(item, 'numFlag', 'N')
return item
})
titleArea.value.push({ titleArea.value.push({
excelAreaNicname: props.currentAreaMark.excelAreaNicname, excelAreaNicname: props.currentAreaMark.excelAreaNicname,
......
...@@ -163,6 +163,7 @@ ...@@ -163,6 +163,7 @@
width="500px" width="500px"
show-footer show-footer
@hide="imporModalHide" @hide="imporModalHide"
:z-index="1000"
> >
<el-form ref="importFormInstance" :model="importForm" :rules="importRules"> <el-form ref="importFormInstance" :model="importForm" :rules="importRules">
<el-form-item label="客户名称" prop="customerId"> <el-form-item label="客户名称" prop="customerId">
......
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