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
34184de7
Commit
34184de7
authored
Dec 20, 2023
by
何远江
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加字段
parent
2ac543ef
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
118 additions
and
33 deletions
+118
-33
ExcelOperate.vue
...ws/comment-excel/components/ExcelOperate/ExcelOperate.vue
+118
-33
No files found.
src/views/comment-excel/components/ExcelOperate/ExcelOperate.vue
View file @
34184de7
...
@@ -15,6 +15,11 @@
...
@@ -15,6 +15,11 @@
class=
"comment-form pl-2 pr-2 pt-2 pb-2 border-b-2"
class=
"comment-form pl-2 pr-2 pt-2 pb-2 border-b-2"
>
>
<el-row
:gutter=
"10"
>
<el-row
:gutter=
"10"
>
<el-col
:span=
"24"
>
<el-form-item
label=
"区域别称"
prop=
"excelAreaNicname"
>
<el-input
v-model=
"formState.excelAreaNicname"
clearable
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"区域类型"
prop=
"excelAreaType"
>
<el-form-item
label=
"区域类型"
prop=
"excelAreaType"
>
<el-select
v-model=
"formState.excelAreaType"
clearable
>
<el-select
v-model=
"formState.excelAreaType"
clearable
>
...
@@ -24,23 +29,23 @@
...
@@ -24,23 +29,23 @@
</el-select>
</el-select>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"24"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"区域别称"
prop=
"excelAreaNicname"
>
<el-input
v-model=
"formState.excelAreaNicname"
clearable
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"24"
>
<el-form-item
label=
"循环体间隔"
prop=
"checkNumber"
>
<el-form-item
label=
"循环体间隔"
prop=
"checkNumber"
>
<el-input
type=
"number"
v-model=
"formState.checkNumber"
clearable
></el-input>
<el-input
type=
"number"
v-model=
"formState.checkNumber"
clearable
></el-input>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"
24
"
>
<el-col
:span=
"
12
"
>
<el-form-item
label=
"标题区作为数据"
prop=
"oneself"
label-width=
"100px"
>
<el-form-item
label=
"标题区作为数据"
prop=
"oneself"
label-width=
"100px"
>
<el-checkbox
<el-checkbox
true-label=
"Y"
false-label=
"N"
v-model=
"formState.oneself"
true-label=
"Y"
>
是
</el-checkbox
false-label=
"N"
>
v-model=
"formState.oneself"
</el-form-item>
>
是
</el-checkbox>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"标题参与循环"
prop=
"checkSelf"
label-width=
"100px"
>
<el-checkbox
true-label=
"Y"
false-label=
"N"
v-model=
"formState.checkSelf"
>
是
</el-checkbox
>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"24"
>
<el-col
:span=
"24"
>
...
@@ -59,7 +64,12 @@
...
@@ -59,7 +64,12 @@
:column=
"2"
:column=
"2"
>
>
<el-descriptions-item
label-class-name=
"descriptions-label"
:span=
"2"
label=
"区域别称"
>
<el-descriptions-item
label-class-name=
"descriptions-label"
:span=
"2"
label=
"区域别称"
>
{{ currentAreaMark.excelAreaNicname || '--' }}
<
template
v-if=
"isEditCurrentArea"
>
<el-input
v-model=
"currentAreaMark.excelAreaNicname"
size=
"small"
></el-input>
</
template
>
<
template
v-else
>
{{
currentAreaMark
.
excelAreaNicname
||
'--'
}}
</
template
>
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label-class-name=
"descriptions-label"
label=
"标记区域"
>
<el-descriptions-item
label-class-name=
"descriptions-label"
label=
"标记区域"
>
{{
{{
...
@@ -72,15 +82,55 @@
...
@@ -72,15 +82,55 @@
}}
}}
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label-class-name=
"descriptions-label"
label=
"区域类型"
>
<el-descriptions-item
label-class-name=
"descriptions-label"
label=
"区域类型"
>
{{ getAreaTypeText(currentAreaMark.excelAreaType) }}
<
template
v-if=
"isEditCurrentArea"
>
<el-select
style=
"width: 80px"
size=
"small"
v-model=
"currentAreaMark.excelAreaType"
clearable
>
<template
v-for=
"item in areaTypeSelectOption"
:key=
"item.value"
>
<el-option
:label=
"item.label"
:value=
"item.value"
></el-option>
</
template
>
</el-select>
</template>
<
template
v-else
>
{{
getAreaTypeText
(
currentAreaMark
.
excelAreaType
)
}}
</
template
>
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label-class-name=
"descriptions-label"
label=
"循环体间隔"
>
<el-descriptions-item
label-class-name=
"descriptions-label"
label=
"循环体间隔"
>
{{ currentAreaMark.checkNumber || '--' }}
<
template
v-if=
"isEditCurrentArea"
>
<el-input
style=
"width: 80px"
size=
"small"
type=
"number"
v-model=
"currentAreaMark.checkNumber"
></el-input>
</
template
>
<
template
v-else
>
{{
currentAreaMark
.
checkNumber
||
'--'
}}
</
template
>
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label-class-name=
"descriptions-label"
label=
"标题作为数据"
>
<el-descriptions-item
label-class-name=
"descriptions-label"
label=
"标题作为数据"
>
{{ currentAreaMark.oneself == 'Y' ? '是' : '否' }}
<el-checkbox
<!-- <el-checkbox v-model="currentAreaMark.oneself" disabled></el-checkbox> -->
true-label=
"Y"
false-label=
"N"
size=
"small"
v-model=
"currentAreaMark.oneself"
:disabled=
"!isEditCurrentArea"
>
是
</el-checkbox
>
</el-descriptions-item>
<el-descriptions-item
label-class-name=
"descriptions-label"
label=
"标题参与循环"
>
<el-checkbox
true-label=
"Y"
false-label=
"N"
size=
"small"
v-model=
"currentAreaMark.checkSelf"
:disabled=
"!isEditCurrentArea"
>
是
</el-checkbox
>
</el-descriptions-item>
</el-descriptions-item>
</el-descriptions>
</el-descriptions>
...
@@ -106,7 +156,7 @@
...
@@ -106,7 +156,7 @@
</vxe-table>
</vxe-table>
<el-button
type=
"primary"
size=
"small"
@
click=
"saveAreaMark"
>
保存
</el-button>
<el-button
type=
"primary"
size=
"small"
@
click=
"saveAreaMark"
>
保存
</el-button>
<el-button
<el-button
v-if=
"
currentAreaMark.excelAreaId
"
v-if=
"
isEditCurrentArea
"
type=
"default"
type=
"default"
size=
"small"
size=
"small"
@
click=
"resetCurrentAreaState(true)"
@
click=
"resetCurrentAreaState(true)"
...
@@ -244,7 +294,7 @@
...
@@ -244,7 +294,7 @@
</template>
</template>
<
script
lang=
"ts"
setup
>
<
script
lang=
"ts"
setup
>
import
{
ref
,
onMounted
,
onUnmounted
,
reactive
,
unref
,
computed
,
watch
}
from
'vue'
import
{
ref
,
onMounted
,
onUnmounted
,
reactive
,
unref
,
computed
,
watch
,
nextTick
}
from
'vue'
import
LuckyExcel
from
'luckyexcel'
import
LuckyExcel
from
'luckyexcel'
import
{
import
{
areaMarksColor
,
areaMarksColor
,
...
@@ -258,7 +308,13 @@ import { flatten, cloneDeep } from 'lodash-es'
...
@@ -258,7 +308,13 @@ import { flatten, cloneDeep } from 'lodash-es'
import
{
useCommentExcel
}
from
'@/stores/commentExcel'
import
{
useCommentExcel
}
from
'@/stores/commentExcel'
import
{
storeToRefs
}
from
'pinia'
import
{
storeToRefs
}
from
'pinia'
import
{
isFunction
}
from
'@/utils/is'
import
{
isFunction
}
from
'@/utils/is'
import
{
ElMessage
,
ElMessageBox
,
type
FormInstance
,
type
FormItemRule
}
from
'element-plus'
import
{
ElLoading
,
ElMessage
,
ElMessageBox
,
type
FormInstance
,
type
FormItemRule
}
from
'element-plus'
import
{
import
{
addExcelArea
,
addExcelArea
,
addExcelAreaConnect
,
addExcelAreaConnect
,
...
@@ -338,7 +394,8 @@ const formState = reactive({
...
@@ -338,7 +394,8 @@ const formState = reactive({
excelAreaType
:
''
,
excelAreaType
:
''
,
excelAreaNicname
:
''
,
excelAreaNicname
:
''
,
checkNumber
:
1
,
checkNumber
:
1
,
oneself
:
'N'
oneself
:
'N'
,
checkSelf
:
'N'
})
})
watch
(
watch
(
...
@@ -405,9 +462,13 @@ const cellClick = ({ row }) => {
...
@@ -405,9 +462,13 @@ const cellClick = ({ row }) => {
const
currentAreaMark
=
reactive
<
Recordable
>
({
const
currentAreaMark
=
reactive
<
Recordable
>
({
oneself
:
'N'
,
oneself
:
'N'
,
checkSelf
:
'N'
,
checkNumber
:
1
,
excelAreaTitle
:
[]
excelAreaTitle
:
[]
})
})
const
isEditCurrentArea
=
computed
(()
=>
!!
currentAreaMark
.
excelAreaId
)
// const currentHeadAreaData = ref([])
// const currentHeadAreaData = ref([])
// watch(
// watch(
...
@@ -443,10 +504,17 @@ const setAreaMark = async (type: 'data' | 'head' = 'data') => {
...
@@ -443,10 +504,17 @@ const setAreaMark = async (type: 'data' | 'head' = 'data') => {
})
})
})
})
}
}
console
.
log
(
formState
)
debugger
Object
.
assign
(
currentAreaMark
,
unref
(
formState
))
Object
.
assign
(
currentAreaMark
,
unref
(
formState
))
// 设置完成之后重置表单
// 设置完成之后重置表单
settingForm
.
value
?.
resetFields
([
'excelAreaType'
,
'excelAreaNicname'
])
settingForm
.
value
?.
resetFields
([
'excelAreaType'
,
'excelAreaNicname'
,
'oneself'
,
'checkSelf'
,
'checkNumber'
])
}
else
{
}
else
{
if
(
!
currentAreaMark
.
excelAreaTitle
)
{
if
(
!
currentAreaMark
.
excelAreaTitle
)
{
return
ElMessage
.
error
(
'请先设置数据区!'
)
return
ElMessage
.
error
(
'请先设置数据区!'
)
...
@@ -540,6 +608,7 @@ const resetCurrentAreaState = (isedit: boolean = false) => {
...
@@ -540,6 +608,7 @@ const resetCurrentAreaState = (isedit: boolean = false) => {
excelAreaNicname
:
''
,
excelAreaNicname
:
''
,
excelAreaTitle
:
[],
excelAreaTitle
:
[],
oneself
:
'N'
,
oneself
:
'N'
,
checkSelf
:
'N'
,
checkNumber
:
''
checkNumber
:
''
}
}
isedit
&&
(
tmp
.
excelAreaId
=
''
)
isedit
&&
(
tmp
.
excelAreaId
=
''
)
...
@@ -949,17 +1018,33 @@ const runResultData = ref([])
...
@@ -949,17 +1018,33 @@ const runResultData = ref([])
const
runResultTitle
=
ref
([])
const
runResultTitle
=
ref
([])
const
runResultVisible
=
ref
(
false
)
const
runResultVisible
=
ref
(
false
)
const
toRun
=
async
()
=>
{
const
toRun
=
async
()
=>
{
const
{
data
}
=
await
excelMarkRun
(
getFileInfo
.
value
.
orderFileId
)
const
loadingInstance
=
ElLoading
.
service
({
if
(
data
?.
code
!=
200
)
{
fullscreen
:
true
,
ElMessage
.
error
(
data
?.
message
||
'操作失败!'
)
text
:
'解析中...'
return
})
try
{
const
{
data
}
=
await
excelMarkRun
(
getFileInfo
.
value
.
orderFileId
)
nextTick
(()
=>
{
// Loading should be closed asynchronously
loadingInstance
.
close
()
})
if
(
data
?.
code
!=
200
)
{
ElMessage
.
error
(
data
?.
message
||
'操作失败!'
)
return
}
if
(
!
data
.
result
.
length
)
return
runResultData
.
value
=
data
.
result
runResultTitle
.
value
=
Object
.
keys
(
data
.
result
[
0
])
const
idx
=
runResultTitle
.
value
.
findIndex
((
v
)
=>
v
==
'sortNum'
)
runResultTitle
.
value
.
splice
(
idx
,
1
)
runResultVisible
.
value
=
true
}
catch
{
nextTick
(()
=>
{
// Loading should be closed asynchronously
loadingInstance
.
close
()
})
}
}
if
(
!
data
.
result
.
length
)
return
runResultData
.
value
=
data
.
result
runResultTitle
.
value
=
Object
.
keys
(
data
.
result
[
0
])
const
idx
=
runResultTitle
.
value
.
findIndex
((
v
)
=>
v
==
'sortNum'
)
runResultTitle
.
value
.
splice
(
idx
,
1
)
runResultVisible
.
value
=
true
}
}
onMounted
(()
=>
{
onMounted
(()
=>
{
loadExcel
()
loadExcel
()
...
...
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