Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
F
factory_front
Overview
Overview
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
qinjianhui
factory_front
Commits
215c937e
Commit
215c937e
authored
Sep 08, 2025
by
linjinhong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
添加我的下载页面
parent
8d0213b5
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
314 additions
and
8 deletions
+314
-8
src/api/myDownload.ts
+19
-0
src/components/NavMenu.vue
+5
-0
src/components/SearchForm.tsx
+1
-1
src/router/index.ts
+11
-1
src/views/MyDownloads.vue
+272
-0
src/views/order/orderTracking/index.vue
+2
-2
src/views/order/podUs/index.vue
+2
-2
src/views/podUsBillOrder/index.vue
+2
-2
No files found.
src/api/myDownload.ts
0 → 100644
View file @
215c937e
import
axios
from
'./axios'
import
{
BaseRespData
}
from
'@/types/api'
//我的下载列表
export
function
getExportRecordApi
(
params
:
{
pageSize
?:
number
currentPage
?:
number
})
{
return
axios
.
post
<
never
,
BaseRespData
<
never
>>
(
'factory/exportRecord/getExportRecord '
,
params
,
)
}
export
function
deleteExportRecordByIdsApi
(
ids
:
string
)
{
return
axios
.
get
<
never
,
BaseRespData
<
never
>>
(
'factory/exportRecord/delete'
,
{
params
:
{
ids
},
})
}
src/components/NavMenu.vue
View file @
215c937e
...
@@ -52,6 +52,7 @@
...
@@ -52,6 +52,7 @@
</span>
</span>
<
template
#
dropdown
>
<
template
#
dropdown
>
<el-dropdown-menu>
<el-dropdown-menu>
<el-dropdown-item
@
click=
"toDownload"
>
我的下载
</el-dropdown-item>
<el-dropdown-item
@
click=
"resetPassword"
<el-dropdown-item
@
click=
"resetPassword"
>
修改密码
</el-dropdown-item
>
修改密码
</el-dropdown-item
>
>
...
@@ -455,6 +456,10 @@ onMounted(() => {
...
@@ -455,6 +456,10 @@ onMounted(() => {
}
}
})
})
const
toDownload
=
()
=>
{
router
.
push
({
name
:
'MyDownloads'
})
}
onUnmounted
(()
=>
{
onUnmounted
(()
=>
{
// 清理监听器
// 清理监听器
resizeObserver
.
disconnect
()
resizeObserver
.
disconnect
()
...
...
src/components/SearchForm.tsx
View file @
215c937e
...
@@ -187,8 +187,8 @@ export default defineComponent({
...
@@ -187,8 +187,8 @@ export default defineComponent({
searchForm
.
value
[
item
.
prop
]
=
value
searchForm
.
value
[
item
.
prop
]
=
value
},
},
...
getComponentAttrs
(
item
),
style
:
{
width
:
`${componentWidth.value}px`
},
style
:
{
width
:
`${componentWidth.value}px`
},
...
getComponentAttrs
(
item
),
})
}
})
}
</
ElFormItem
>
</
ElFormItem
>
))
}
))
}
...
...
src/router/index.ts
View file @
215c937e
...
@@ -165,7 +165,8 @@ const router = createRouter({
...
@@ -165,7 +165,8 @@ const router = createRouter({
title
:
'POD(CN)对账单'
,
title
:
'POD(CN)对账单'
,
},
},
component
:
PodBillOrder
,
component
:
PodBillOrder
,
},{
},
{
path
:
'/account/pod-us-bill-order'
,
path
:
'/account/pod-us-bill-order'
,
meta
:
{
meta
:
{
title
:
'POD(US)对账单'
,
title
:
'POD(US)对账单'
,
...
@@ -284,6 +285,14 @@ const router = createRouter({
...
@@ -284,6 +285,14 @@ const router = createRouter({
},
},
component
:
()
=>
import
(
'@/views/setting/settingIndex.vue'
),
component
:
()
=>
import
(
'@/views/setting/settingIndex.vue'
),
},
},
{
path
:
'/MyDownloads'
,
meta
:
{
title
:
'我的下载'
,
},
name
:
'MyDownloads'
,
component
:
()
=>
import
(
'@/views/MyDownloads.vue'
),
},
],
],
},
},
// 登录
// 登录
...
@@ -295,6 +304,7 @@ const router = createRouter({
...
@@ -295,6 +304,7 @@ const router = createRouter({
path
:
'/user/reset'
,
path
:
'/user/reset'
,
component
:
Reset
,
component
:
Reset
,
},
},
// 其他路由
// 其他路由
{
{
path
:
'/:pathMatch(.*)*'
,
path
:
'/:pathMatch(.*)*'
,
...
...
src/views/MyDownloads.vue
0 → 100644
View file @
215c937e
<
template
>
<div
class=
"user-page flex-column card h-100 overflow-hidden"
>
<div
class=
"header-filter-form"
>
<SearchForm
v-model=
"searchForm"
:config=
"searchConfig"
@
search=
"search"
:isAddBtn=
"false"
@
delete=
"deleteFn"
></SearchForm>
</div>
<div
class=
"user-content flex-1 flex-column overflow-hidden"
>
<div
v-loading=
"loading"
class=
"user-list flex-1 overflow-hidden"
>
<CustomizeTable
border
align=
"center"
v-model=
"tableData"
:config=
"tableConfig"
@
get-checkbox-records=
"handleCheckboxRecords"
></CustomizeTable>
</div>
<ElPagination
v-model:current-page=
"currentPage"
v-model:page-size=
"pageSize"
:page-sizes=
"[100, 200, 300, 400, 500]"
background
layout=
"total, sizes, prev, pager, next, jumper"
:total=
"total"
style=
"margin: 10px auto 0; text-align: right"
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
></ElPagination>
</div>
</div>
</
template
>
<
script
setup
lang=
"tsx"
>
defineOptions
({
name
:
'MyDownloads'
,
})
import
{
getExportRecordApi
,
deleteExportRecordByIdsApi
,
}
from
'@/api/myDownload'
import
{
ISeachFormConfig
}
from
'@/types/searchType'
import
{
TableColumn
}
from
'@/components/VxeTable'
import
SearchForm
from
'@/components/SearchForm.tsx'
import
CustomizeTable
from
'@/components/VxeTable.tsx'
import
usePageList
from
'@/utils/hooks/usePageList'
import
{
useValue
}
from
'@/utils/hooks/useValue'
// import { filePath } from '@/api/axios'
import
{
Delete
,
Download
}
from
'@element-plus/icons-vue'
const
[
searchForm
]
=
useValue
({
periodTime
:
[]
})
interface
ParamsType
{
startTime
?:
string
endTime
?:
string
periodTime
?:
string
[]
pageSize
:
number
currentPage
:
number
}
const
{
loading
,
currentPage
,
pageSize
,
total
,
data
:
tableData
,
refresh
:
search
,
onCurrentPageChange
:
handleCurrentChange
,
onPageSizeChange
:
handleSizeChange
,
}
=
usePageList
({
query
:
(
page
,
pageSize
)
=>
{
const
params
:
ParamsType
=
{
...
searchForm
.
value
,
pageSize
:
pageSize
,
currentPage
:
page
,
}
if
(
searchForm
.
value
?.
periodTime
.
length
)
{
params
.
startTime
=
searchForm
.
value
?.
periodTime
[
0
]
params
.
endTime
=
searchForm
.
value
?.
periodTime
[
1
]
}
params
.
periodTime
&&
delete
params
.
periodTime
return
getExportRecordApi
(
params
).
then
(({
data
})
=>
{
return
data
})
},
})
const
selection
=
ref
([])
const
searchConfig
=
ref
<
ISeachFormConfig
[]
>
([
{
prop
:
'periodTime'
,
type
:
'dateRangePicker'
,
label
:
'创建时间'
,
attrs
:
{
style
:
{
width
:
'380px'
},
clearable
:
true
,
type
:
'datetimerange'
,
'default-time'
:
[
new
Date
(
0
,
0
,
0
,
0
,
0
,
0
),
new
Date
(
0
,
0
,
0
,
23
,
59
,
59
),
],
'start-placeholder'
:
'开始时间'
,
'end-placeholder'
:
'结束时间'
,
format
:
'YYYY-MM-DD HH:mm:ss'
,
'value-format'
:
'YYYY-MM-DD HH:mm:ss'
,
},
},
{
prop
:
'status'
,
type
:
'select'
,
label
:
'状态'
,
attrs
:
{
clearable
:
true
,
placeholder
:
'请选择启用状态'
,
options
:
[
{
label
:
'正在生成'
,
value
:
1
},
{
label
:
'生成成功'
,
value
:
2
},
{
label
:
'生成失败'
,
value
:
3
},
],
},
},
{
prop
:
'fileDescription'
,
type
:
'input'
,
label
:
'下载描述'
,
attrs
:
{
clearable
:
true
,
placeholder
:
'请输入下载描述'
,
},
},
])
const
tableConfig
=
ref
<
TableColumn
[]
>
([
{
prop
:
'fileDescription'
,
label
:
'下载文件描述'
,
attrs
:
{
'min-width'
:
200
,
},
},
{
prop
:
'status'
,
label
:
'下载状态'
,
render
:
{
default
:
({
row
})
=>
(
<
div
>
{
row
.
status
===
1
?
'正在生成'
:
row
.
status
===
2
?
'生成成功'
:
'生成失败'
}
<
/div
>
),
},
},
{
prop
:
'createTime'
,
label
:
'创建时间'
,
},
{
prop
:
'finishTime'
,
label
:
'完成时间'
,
},
{
prop
:
'errorMsg'
,
label
:
'错误信息'
,
attrs
:
{
'min-width'
:
400
,
},
},
{
prop
:
'operating'
,
label
:
'操作'
,
attrs
:
{
align
:
'center'
,
},
render
:
{
default
:
({
row
})
=>
(
<
div
>
<
el
-
icon
size
=
"24"
title
=
"下载"
color
=
{
row
.
status
===
2
?
'#8cc34b'
:
'#ccc'
}
style
=
{{
cursor
:
row
.
status
===
2
?
'pointer'
:
'not-allowed'
,
verticalAlign
:
'middle'
,
opacity
:
row
.
status
===
2
?
1
:
0.6
,
}}
onClick
=
{
row
.
status
===
2
?
()
=>
downloadFn
(
row
as
{
fileUrl
:
string
})
:
undefined
}
>
<
Download
/>
<
/el-icon
>
<
el
-
icon
size
=
"24"
title
=
"删除"
color
=
"#f56c6c"
style
=
"cursor: pointer; vertical-align: middle"
onclick
=
{()
=>
deleteFn
(
row
.
id
as
string
|
number
)}
>
<
Delete
/>
<
/el-icon
>
<
/div
>
),
},
},
])
/**
* @description: 获取选中数据
*/
function
handleCheckboxRecords
(
value
:
never
[])
{
console
.
log
(
351
,
value
)
selection
.
value
=
value
}
function
downloadFn
(
data
:
{
fileUrl
:
string
})
{
window
.
open
(
'http://10.168.1.209//upload/factory'
+
data
.
fileUrl
,
'_blank'
)
console
.
log
(
248
,
data
)
}
async
function
deleteFn
(
id
?:
string
|
number
)
{
try
{
await
ElMessageBox
.
confirm
(
'确定删除该下载文件记录?'
,
'提示'
,
{
cancelButtonText
:
'取消'
,
confirmButtonText
:
'确认'
,
type
:
'warning'
,
})
let
ids
if
(
id
)
{
ids
=
[
id
].
join
(
','
)
}
else
{
ids
=
selection
.
value
.
map
((
el
:
{
id
:
string
})
=>
el
.
id
).
join
(
','
)
}
console
.
log
(
214
,
ids
)
await
deleteExportRecordByIdsApi
(
ids
)
ElMessage
.
success
(
'操作成功'
)
search
()
}
catch
(
error
)
{
console
.
log
(
error
)
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.header-filter-form
{
margin-bottom
:
20px
;
:deep(.el-form-item)
{
margin-right
:
14px
;
margin-bottom
:
10px
;
}
}
.user-operate-btn
{
margin-bottom
:
10px
;
}
.dialog-footer
{
text-align
:
center
;
}
</
style
>
src/views/order/orderTracking/index.vue
View file @
215c937e
...
@@ -424,11 +424,11 @@ const submitExportForm = async () => {
...
@@ -424,11 +424,11 @@ const submitExportForm = async () => {
console
.
error
(
'未知的资源类型:'
,
resourceType
)
console
.
error
(
'未知的资源类型:'
,
resourceType
)
}
}
try
{
try
{
const
res
=
await
exportPodUSInfo
({
await
exportPodUSInfo
({
...
params
,
...
params
,
...(
resourceType
===
2
?
searchForm
.
value
:
{}),
...(
resourceType
===
2
?
searchForm
.
value
:
{}),
})
})
window
.
open
(
filePath
+
res
.
message
,
'_blank
'
)
ElMessage
.
success
(
'请求成功,请稍后到右上角[我的下载]中查看
'
)
exportVisible
.
value
=
false
exportVisible
.
value
=
false
exportLoading
.
value
=
false
exportLoading
.
value
=
false
}
catch
(
e
)
{
}
catch
(
e
)
{
...
...
src/views/order/podUs/index.vue
View file @
215c937e
...
@@ -2743,11 +2743,11 @@ const submitExportForm = async () => {
...
@@ -2743,11 +2743,11 @@ const submitExportForm = async () => {
console
.
error
(
'未知的资源类型:'
,
resourceType
)
console
.
error
(
'未知的资源类型:'
,
resourceType
)
}
}
try
{
try
{
const
res
=
await
exportPodUSInfo
({
await
exportPodUSInfo
({
...
params
,
...
params
,
...(
resourceType
===
2
?
searchForm
.
value
:
{
}
),
...(
resourceType
===
2
?
searchForm
.
value
:
{
}
),
}
)
}
)
window
.
open
(
filePath
+
res
.
message
,
'_blank
'
)
ElMessage
.
success
(
'请求成功,请稍后到右上角[我的下载]中查看
'
)
exportVisible
.
value
=
false
exportVisible
.
value
=
false
exportLoading
.
value
=
false
exportLoading
.
value
=
false
}
catch
(
e
)
{
}
catch
(
e
)
{
...
...
src/views/podUsBillOrder/index.vue
View file @
215c937e
...
@@ -209,7 +209,7 @@
...
@@ -209,7 +209,7 @@
>
>
<
template
#
default
>
US
账户
<
/template
>
<
template
#
default
>
US
账户
<
/template
>
<
/el-table-column
>
<
/el-table-column
>
<
el
-
table
-
column
<
!--
<
el
-
table
-
column
label
=
"应付金额($)"
label
=
"应付金额($)"
header
-
align
=
"center"
header
-
align
=
"center"
prop
=
"totalAmount"
prop
=
"totalAmount"
...
@@ -217,7 +217,7 @@
...
@@ -217,7 +217,7 @@
align
=
"center"
align
=
"center"
show
-
overflow
-
tooltip
show
-
overflow
-
tooltip
>
>
<
/el-table-column
>
<
/el-table-column>
--
>
<
el
-
table
-
column
<
el
-
table
-
column
label
=
"实付金额($)"
label
=
"实付金额($)"
header
-
align
=
"center"
header
-
align
=
"center"
...
...
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