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

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

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