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
80452a41
Commit
80452a41
authored
Jan 11, 2025
by
何远江
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加错误信息、及订单项次检查
parent
25aa6dc3
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
176 additions
and
94 deletions
+176
-94
var.ts
src/api/var.ts
+12
-0
Variables.vue
src/views/var/variables/Variables.vue
+24
-6
CheckOrder.vue
src/views/var/variables/components/CheckOrder.vue
+41
-0
TemplateVariable.vue
src/views/var/variables/components/TemplateVariable.vue
+99
-88
No files found.
src/api/var.ts
View file @
80452a41
...
...
@@ -159,3 +159,15 @@ export const getVarSpecList = (productCode: any) => {
};
/**
* checkOrder
* @param orderItemId
* @returns
*/
export
const
getCheckOrder
=
(
orderltemld
:
any
)
=>
{
return
axios
.
get
(
"/api/orderVar/checkOrder"
,
{
params
:
{
orderltemld
}
});
};
src/views/var/variables/Variables.vue
View file @
80452a41
...
...
@@ -58,6 +58,7 @@
<
template
#
default=
"{ row }"
>
<el-button
type=
"text"
size=
"small"
@
click=
"handleImportVar(row)"
>
上传变量
</el-button>
<el-button
type=
"text"
size=
"small"
@
click=
"handleShowVarRun(row)"
>
查看解析
</el-button>
<el-button
type=
"text"
size=
"small"
@
click=
"handleCheckOrder(row)"
>
检查
</el-button>
</
template
>
</vxe-column>
</vxe-table>
...
...
@@ -114,6 +115,7 @@
</vxe-modal>
<TemplateVariable
v-model:visible=
"tempVisible"
v-bind=
"detailVariable"
@
download=
"download"
/>
<CheckOrder
ref=
"checkOrderRef"
/>
</div>
</template>
...
...
@@ -124,7 +126,8 @@ import {
apiOrderVarGetVars
,
apiOrderVarGetOrderNewVars
,
apiOrderVarSaveUpload
,
apiOrderVarRun
apiOrderVarRun
,
getCheckOrder
}
from
'@/api/var'
import
type
{
VxeTableInstance
}
from
'vxe-table'
import
TemplateVariable
from
'./components/TemplateVariable.vue'
...
...
@@ -133,6 +136,7 @@ import { uploadFile } from '@/api/excel'
import
{
ElLoading
,
ElMessage
}
from
'element-plus'
import
{
exportExcel
}
from
'@/utils/export-excel'
import
type
{
BookType
}
from
'xlsx'
import
CheckOrder
from
'./components/CheckOrder.vue'
const
loading
=
ref
(
false
)
const
formState
=
reactive
({
...
...
@@ -147,6 +151,7 @@ const formState = reactive({
// order: 'desc'
})
const
checkOrderRef
=
ref
()
const
xTable
=
ref
<
VxeTableInstance
>
()
const
tableData
=
ref
([])
...
...
@@ -155,17 +160,21 @@ const tempVisible = ref(false)
const
detailVariable
=
ref
({
title
:
'变量文件解析'
,
titles
:
[],
data
:
[]
data
:
[],
errors
:
[]
})
const
currentRow
=
ref
()
const
handleShowVarRun
=
async
(
row
:
any
)
=>
{
currentRow
.
value
=
row
const
{
data
}
=
await
apiOrderVarGetOrderNewVars
(
row
.
orderItemId
)
const
{
res
,
titles
}
=
filterVarData
(
data
.
result
||
[])
const
{
res
,
titles
}
=
filterVarData
(
data
.
result
.
varOrders
||
[])
detailVariable
.
value
.
titles
=
titles
detailVariable
.
value
.
data
=
res
tempVisible
.
value
=
true
detailVariable
.
value
.
titles
=
titles
as
any
detailVariable
.
value
.
data
=
res
as
any
detailVariable
.
value
.
errors
=
data
.
result
?.
errors
||
[]
nextTick
(()
=>
{
tempVisible
.
value
=
true
})
}
const
importVisible
=
ref
(
false
)
...
...
@@ -262,6 +271,15 @@ const onReset = () => {
onQuery
()
}
const
handleCheckOrder
=
async
(
row
)
=>
{
const
{
data
}
=
await
getCheckOrder
(
row
.
orderItemId
)
if
(
data
.
result
?.
success
)
{
ElMessage
.
success
(
'检查无误!'
)
}
else
{
checkOrderRef
.
value
.
openModal
(
data
.
result
.
errors
)
}
}
const
onQuery
=
async
(
e
?:
any
)
=>
{
loading
.
value
=
true
e
&&
(
formState
.
currentPage
=
1
)
...
...
src/views/var/variables/components/CheckOrder.vue
0 → 100644
View file @
80452a41
<
template
>
<vxe-modal
v-model=
"showEdit"
:z-index=
"1006"
@
hide=
"onHide"
title=
"检查信息"
width=
"800"
esc-closable
mask-closable
show-footer
>
<div
class=
"h-[400px] overflow-auto"
>
共计:
{{
errors
.
length
}}
条错误!
<el-alert
style=
"margin-bottom: 4px;"
v-for=
"(err,index) in errors"
:key=
"index"
:title=
"err"
type=
"error"
show-icon
:closable=
"false"
/>
</div>
<template
#
footer
>
<el-button
type=
"primary"
@
click=
"showEdit = false"
>
关闭
</el-button>
</
template
>
</vxe-modal>
</template>
<
script
lang=
"ts"
setup
>
import
{
ref
}
from
'vue'
const
showEdit
=
ref
(
false
)
const
errors
=
ref
([])
const
onHide
=
()
=>
{
errors
.
value
=
[]
}
const
openModal
=
(
errs
)
=>
{
showEdit
.
value
=
true
errors
.
value
=
errs
||
[]
}
defineExpose
({
openModal
})
</
script
>
<
style
lang=
"scss"
scoped
></
style
>
src/views/var/variables/components/TemplateVariable.vue
View file @
80452a41
<
template
>
<vxe-modal
v-model=
"showEdit"
:z-index=
"1006"
@
hide=
"onHide"
title=
"客户选择"
width=
"800"
esc-closable
mask-closable
show-footer
>
<template
#
default
>
<el-dropdown
placement=
"bottom-start"
@
command=
"handleExport"
>
<el-button
type=
"primary"
>
导出数据
</el-button>
<vxe-modal
v-model=
"showEdit"
:z-index=
"1006"
@
hide=
"onHide"
title=
"模版变量详情"
width=
"800"
esc-closable
mask-closable
show-footer
>
<template
#
default
>
<vxe-table
v-if=
"errors.length"
class=
"mb-2"
border
:data=
"errors"
size=
"mini"
height=
"200"
>
<vxe-column
field=
"field"
title=
"错误字段"
width=
"120"
/>
<vxe-column
field=
"message"
title=
"错误信息"
/>
<vxe-column
field=
"row"
title=
"Row"
width=
"120"
/>
</vxe-table>
<el-dropdown
placement=
"bottom-start"
@
command=
"handleExport"
>
<el-button
type=
"primary"
>
导出数据
</el-button>
<template
#
dropdown
>
<el-dropdown-menu>
<el-dropdown-item
command=
"xlsx"
>
*.xlsx
</el-dropdown-item>
<el-dropdown-item
command=
"txt"
>
*.txt
</el-dropdown-item>
<el-dropdown-item
command=
"csv"
>
*.csv
</el-dropdown-item>
</el-dropdown-menu>
</
template
>
</el-dropdown>
<vxe-table
ref=
"xTable"
border
:data=
"data"
size=
"small"
height=
"400"
>
<vxe-column
v-for=
"column in titles"
:key=
"item"
:field=
"column"
:title=
"column"
></vxe-column>
</vxe-table>
<template
#
dropdown
>
<el-dropdown-menu>
<el-dropdown-item
command=
"xlsx"
>
*.xlsx
</el-dropdown-item>
<el-dropdown-item
command=
"txt"
>
*.txt
</el-dropdown-item>
<el-dropdown-item
command=
"csv"
>
*.csv
</el-dropdown-item>
</el-dropdown-menu>
</
template
>
</el-dropdown>
<vxe-table
ref=
"xTable"
border
:data=
"data"
size=
"small"
height=
"400"
>
<vxe-column
v-for=
"column in titles"
:key=
"item"
:field=
"column"
:title=
"column"
></vxe-column>
</vxe-table>
</template>
<
template
#
footer
>
<el-button
type=
"primary"
@
click=
"showEdit = false"
>
关闭
</el-button>
</
template
>
</vxe-modal>
</template>
<
script
lang=
"ts"
>
import
{
defineComponent
,
ref
,
onMounted
,
reactive
,
watch
,
unref
}
from
'vue'
import
{
getCustomerPage
}
from
'@/api/customer'
import
type
{
VxeTableInstance
}
from
'vxe-table'
import
{
ElMessage
}
from
'element-plus'
export
default
defineComponent
({
name
:
'TemplateVariables'
,
props
:
{
visible
:
{
type
:
Boolean
,
default
:
false
},
titles
:
{
type
:
Array
,
default
:
()
=>
[]
},
data
:
{
type
:
Array
,
default
:
()
=>
[]
}
},
emits
:
[
'update:visible'
,
'download'
],
setup
(
props
,
{
emit
})
{
const
showEdit
=
ref
(
false
)
const
xTable
=
ref
<
VxeTableInstance
>
()
const
tableData
=
ref
([])
watch
(
()
=>
props
.
visible
,
(
val
)
=>
{
showEdit
.
value
=
val
}
)
const
onHide
=
()
=>
{
emit
(
'update:visible'
,
false
)
}
</template>
const
handleExport
=
(
type
:
any
)
=>
{
emit
(
'download'
,
type
)
}
return
{
showEdit
,
xTable
,
tableData
,
onHide
,
handleExport
<
template
#
footer
>
<el-button
type=
"primary"
@
click=
"showEdit = false"
>
关闭
</el-button>
</
template
>
</vxe-modal>
</template>
<
script
lang=
"ts"
>
import
{
defineComponent
,
ref
,
onMounted
,
reactive
,
watch
,
unref
}
from
'vue'
import
{
getCustomerPage
}
from
'@/api/customer'
import
type
{
VxeTableInstance
}
from
'vxe-table'
import
{
ElMessage
}
from
'element-plus'
export
default
defineComponent
({
name
:
'TemplateVariables'
,
props
:
{
visible
:
{
type
:
Boolean
,
default
:
false
},
titles
:
{
type
:
Array
,
default
:
()
=>
[]
},
data
:
{
type
:
Array
,
default
:
()
=>
[]
},
errors
:
{
type
:
Array
,
default
:
()
=>
[]
}
},
emits
:
[
'update:visible'
,
'download'
],
setup
(
props
,
{
emit
})
{
const
showEdit
=
ref
(
false
)
const
xTable
=
ref
<
VxeTableInstance
>
()
const
tableData
=
ref
([])
watch
(
()
=>
props
.
visible
,
(
val
)
=>
{
showEdit
.
value
=
val
}
)
const
onHide
=
()
=>
{
emit
(
'update:visible'
,
false
)
}
const
handleExport
=
(
type
:
any
)
=>
{
emit
(
'download'
,
type
)
}
return
{
showEdit
,
xTable
,
tableData
,
onHide
,
handleExport
}
})
</
script
>
<
style
lang=
"scss"
scoped
></
style
>
\ No newline at end of file
}
})
</
script
>
<
style
lang=
"scss"
scoped
></
style
>
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