Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
T
topsun-baoshen-excel
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
何远江
topsun-baoshen-excel
Commits
f84f0bdf
Commit
f84f0bdf
authored
Jan 10, 2024
by
何远江
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加数据说明区、排除区单元格值修改,bug 修改
parent
7cb1917c
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
63 additions
and
57 deletions
+63
-57
excel.ts
src/utils/excel.ts
+4
-2
EditArea.vue
src/views/comment-excel/components/EditArea/EditArea.vue
+1
-1
ExcelOperate.vue
...ws/comment-excel/components/ExcelOperate/ExcelOperate.vue
+18
-44
SetDataArea.vue
...iews/comment-excel/components/SetDataArea/SetDataArea.vue
+39
-9
CustomerEmail.vue
src/views/customer/CustomerEmail/CustomerEmail.vue
+1
-1
No files found.
src/utils/excel.ts
View file @
f84f0bdf
...
@@ -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
,
...
...
src/views/comment-excel/components/EditArea/EditArea.vue
View file @
f84f0bdf
...
@@ -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
)
...
...
src/views/comment-excel/components/ExcelOperate/ExcelOperate.vue
View file @
f84f0bdf
...
@@ -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
)
})
})
})
}
}
}
}
...
...
src/views/comment-excel/components/SetDataArea/SetDataArea.vue
View file @
f84f0bdf
...
@@ -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'
)
=>
{
...
...
src/views/customer/CustomerEmail/CustomerEmail.vue
View file @
f84f0bdf
...
@@ -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"
>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment