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

添加数据说明区、排除区单元格值修改,bug 修改

parent 7cb1917c
......@@ -157,8 +157,9 @@ export function setCurrentSheet(sheetNum: number | string) {
* 设置单元格背景颜色
* @param range
* @param bg
* @param isChangeSheet 是否切换当前sheet
*/
export function setRangeBackground(range: Recordable, bg: string) {
export function setRangeBackground(range: Recordable, bg: string, isChangeSheet: boolean = true) {
const r = {
beginRow: '',
endRow: '',
......@@ -175,7 +176,8 @@ export function setRangeBackground(range: Recordable, bg: string) {
r.endColum = range.colum
r.sheetNum = range.sheet
}
setCurrentSheet(r.sheetNum)
isChangeSheet && setCurrentSheet(r.sheetNum)
luckysheet.menuButton.customUpdateFormat(
null,
......
......@@ -262,7 +262,7 @@ const delAreaTitle = (index: number) => {
// 删除说明单元格和排除单元格
const delCaptionAndExclude = (row: any, index: number, type: number) => {
delCapAndExc.value.push(row);
delCapAndExc.value.push({...row, type });
// 删除本行
(type == 1 ? currentForm.dataTitles : currentForm.excludeArea).splice(index, 1)
......
......@@ -356,8 +356,8 @@ const confirmEdit = async () => {
const { data } = await editExcelArea(areaData)
if (data.code == 200) {
if (delCapAndExc.length) {
delCapAndExc.forEach((item) => {
setRangeBackground(item, areaMarksColor['data'])
delCapAndExc.forEach((item: any) => {
setRangeBackground(item, areaMarksColor[item.type == 1 ? 'default' : 'data'])
})
}
ElMessage.success('修改成功!')
......@@ -569,16 +569,8 @@ const setSheetAreaMark = (sheet: any) => {
if (locaExcelAreaMarks[sheet.order].length) {
locaExcelAreaMarks[sheet.order].forEach((item: any) => {
// 设置数据区标记
luckysheet.menuButton.customUpdateFormat(
null,
'bg',
areaMarksColor['data'],
item.beginRow,
item.endRow,
item.beginColum,
item.endColum,
false
)
setRangeBackground(item, areaMarksColor['data'], false)
// 设置数据区的标题
if (item.excelAreaTitle.length) {
const areas = JSON.parse(item.titleArea)
areas?.forEach((area: any) => {
......@@ -594,52 +586,34 @@ const setSheetAreaMark = (sheet: any) => {
)
})
}
// 设置附加信息
if (item.desGroups.length) {
item?.desGroups.forEach((area) => {
if (area.beginRow !== null && area.beginRow !== '') {
luckysheet.menuButton.customUpdateFormat(
null,
'bg',
areaMarksColor['attch'],
area.beginRow,
area.endRow,
area.beginColum,
area.endColum,
false
)
setRangeBackground(area, areaMarksColor['attch'], false)
}
// 设置附加信息的别称标题
if (area.groupTitles.length) {
area.groupTitles.forEach((a) => {
luckysheet.menuButton.customUpdateFormat(
null,
'bg',
areaMarksColor['attch_head'],
a.row,
a.row,
a.colum,
a.colum,
false
)
setRangeBackground(a, areaMarksColor['attch_head'], false)
})
}
// 设置附加信息的标题区
if (area.areaTitles.length) {
area.areaTitles.forEach((a) => {
luckysheet.menuButton.customUpdateFormat(
null,
'bg',
areaMarksColor['attch_title'],
a.row,
a.row,
a.colum,
a.colum,
false
)
setRangeBackground(a, areaMarksColor['attch_title'], false)
})
}
})
}
// 设置数据说明区
item.dataTitles.forEach((itm) => {
setRangeBackground(itm, areaMarksColor['caption'], false)
})
// 设置排除区
item.excludeTitles.forEach((itm) => {
setRangeBackground(itm, areaMarksColor['exclude'], false)
})
})
}
}
......
......@@ -53,8 +53,20 @@
</el-col> -->
<el-col :span="24">
<p class="table-title">数据说明区</p>
<vxe-table border max-height="200" :data="captionArea" size="mini">
<vxe-column title="单元格值" field="title"></vxe-column>
<vxe-table
border
size="mini"
max-height="200"
:data="captionArea"
:edit-config="{ trigger: 'click', mode: 'cell' }"
:row-config="{ isCurrent: true }"
>
<vxe-column title="单元格值" field="title" :edit-render="{}">
<template #default="{ row }">{{ row.title }}</template>
<template #edit="{ row }">
<el-input size="small" v-model="row.title"></el-input>
</template>
</vxe-column>
<vxe-column title="单元格" width="90">
<template #default="{ row }">{{
getRangetxt(row.row, row.row, row.colum, row.colum)
......@@ -62,7 +74,10 @@
</vxe-column>
<vxe-column title="操作" width="50">
<template #default="{ row, $rowIndex }">
<el-link type="danger" style="font-size: 12px" @click="delCaptionAndExclude(row, $rowIndex, 1)"
<el-link
type="danger"
style="font-size: 12px"
@click="delCaptionAndExclude(row, $rowIndex, 1)"
>删除</el-link
>
</template>
......@@ -70,8 +85,20 @@
</vxe-table>
<p class="table-title mt-2">排除区</p>
<vxe-table border max-height="200" :data="excludeArea" size="mini">
<vxe-column title="单元格值" field="title"></vxe-column>
<vxe-table
border
size="mini"
max-height="200"
:data="excludeArea"
:edit-config="{ trigger: 'click', mode: 'cell' }"
:row-config="{ isCurrent: true }"
>
<vxe-column title="单元格值" field="title" :edit-render="{}">
<template #default="{ row }">{{ row.title }}</template>
<template #edit="{ row }">
<el-input size="small" v-model="row.title"></el-input>
</template>
</vxe-column>
<vxe-column title="单元格" width="90">
<template #default="{ row }">{{
getRangetxt(row.row, row.row, row.colum, row.colum)
......@@ -79,7 +106,10 @@
</vxe-column>
<vxe-column title="操作" width="50">
<template #default="{ row, $rowIndex }">
<el-link type="danger" style="font-size: 12px" @click="delCaptionAndExclude(row, $rowIndex, 2)"
<el-link
type="danger"
style="font-size: 12px"
@click="delCaptionAndExclude(row, $rowIndex, 2)"
>删除</el-link
>
</template>
......@@ -191,16 +221,16 @@ const captionArea = ref<Recordable[]>([])
const excludeArea = ref<Recordable[]>([])
// 设置说明区
const setCaptionArea = () => {
captionArea.value = getRangeCellValue('exclude')
captionArea.value = getRangeCellValue('caption')
}
// 设置排除区
const setExcludeArea = () => {
excludeArea.value = getRangeCellValue('caption')
excludeArea.value = getRangeCellValue('exclude')
}
const delCaptionAndExclude = (row: any, index: number, type = 1) => {
;(type == 1 ? captionArea : excludeArea).value.splice(index, 1)
setRangeBackground(row, areaMarksColor['data'])
setRangeBackground(row, areaMarksColor[type == 1 ? 'default': 'data'])
}
// 获取有值的单元格
const getRangeCellValue = (type: 'caption' | 'exclude') => {
......
......@@ -58,7 +58,7 @@
</vxe-pager>
</div>
<vxe-modal v-model="showEdit" title="编辑&保存" destroy-on-close esc-closable @hide="onHide">
<vxe-modal :z-index="1005" v-model="showEdit" title="编辑&保存" destroy-on-close esc-closable @hide="onHide">
<template #default>
<el-form ref="formRef" label-width="90px" :model="formEdit" :rules="formRules">
<el-form-item label="客户" prop="customerId_dictText">
......
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