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
1
Merge Requests
1
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
51723d81
Commit
51723d81
authored
Aug 22, 2025
by
wusiyi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 待跟踪页面添加tab页
parent
4a7ddea5
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
161 additions
and
33 deletions
+161
-33
src/api/podUsOrder.ts
+13
-5
src/types/api/podUsOrder.ts
+1
-0
src/views/order/podUs/index.vue
+147
-28
No files found.
src/api/podUsOrder.ts
View file @
51723d81
...
@@ -548,20 +548,21 @@ export function statusPushApi(params: (string | number)[]) {
...
@@ -548,20 +548,21 @@ export function statusPushApi(params: (string | number)[]) {
export
function
changeToFinished
(
ids
:
string
)
{
export
function
changeToFinished
(
ids
:
string
)
{
return
axios
.
get
<
never
,
BaseRespData
<
never
>>
(
return
axios
.
get
<
never
,
BaseRespData
<
never
>>
(
`factory/podJomallOrderUs/updateToComplete`
,
`factory/podJomallOrderUs/updateToComplete`
,
{
params
:
{
ids
}
},
{
params
:
{
ids
}
},
)
)
}
}
// 转至已完成
// 转至已完成
export
function
updateTrackingNumberAndRegister
(
id
:
number
,
trackingNumber
:
string
)
{
export
function
updateTrackingNumberAndRegister
(
id
:
number
,
trackingNumber
:
string
,
)
{
return
axios
.
post
<
never
,
BaseRespData
<
never
>>
(
return
axios
.
post
<
never
,
BaseRespData
<
never
>>
(
`factory/podJomallOrderUs/updateTrackingNumberAndRegister`
,
`factory/podJomallOrderUs/updateTrackingNumberAndRegister`
,
{
id
,
trackingNumber
},
{
id
,
trackingNumber
},
)
)
}
}
// 完成发货
// 完成发货
export
function
completeDeliveryApi
(
params
:
{
export
function
completeDeliveryApi
(
params
:
{
orderIdList
:
(
string
|
number
)[]
orderIdList
:
(
string
|
number
)[]
...
@@ -603,3 +604,10 @@ export function printProductionPdfByBatchNumberApi(params: {
...
@@ -603,3 +604,10 @@ export function printProductionPdfByBatchNumberApi(params: {
},
},
)
)
}
}
// 待跟踪 注册列表统计接口
export
function
countTrackRegisterApi
()
{
return
axios
.
get
<
never
,
BaseRespData
<
never
>>
(
`factory/podJomallOrderUs/countTrackRegister`
,
)
}
src/types/api/podUsOrder.ts
View file @
51723d81
...
@@ -35,6 +35,7 @@ export interface SearchForm {
...
@@ -35,6 +35,7 @@ export interface SearchForm {
craftCode
?:
string
craftCode
?:
string
thirdStockSku
?:
string
thirdStockSku
?:
string
interceptStatus
?:
number
|
string
interceptStatus
?:
number
|
string
trackRegisterSelect
?:
string
|
number
}
}
export
interface
PodUsOrderListData
{
export
interface
PodUsOrderListData
{
id
:
number
id
:
number
...
...
src/views/order/podUs/index.vue
View file @
51723d81
...
@@ -666,9 +666,7 @@
...
@@ -666,9 +666,7 @@
<ElButton
type=
"warning"
@
click=
"statusPush"
>
状态推送
</ElButton>
<ElButton
type=
"warning"
@
click=
"statusPush"
>
状态推送
</ElButton>
</span>
</span>
</ElFormItem>
</ElFormItem>
<ElFormItem
<ElFormItem
v-if=
"['WAIT_TRACK'].includes(status)"
>
v-if=
"['WAIT_TRACK'].includes(status)"
>
<span
class=
"item"
>
<span
class=
"item"
>
<ElButton
type=
"success"
@
click=
"setFinish"
>
转至已完成
</ElButton>
<ElButton
type=
"success"
@
click=
"setFinish"
>
转至已完成
</ElButton>
</span>
</span>
...
@@ -767,6 +765,58 @@
...
@@ -767,6 +765,58 @@
<span
class=
"sub-status-item-label"
>
待同步
</span>
<span
class=
"sub-status-item-label"
>
待同步
</span>
</div>
</div>
</div>
</div>
<div
v-if=
"status === 'WAIT_TRACK'"
class=
"sub-status mb-10"
>
<div
class=
"sub-status-item"
:class=
"waitTrackStatus === 1 ? 'sub-active' : ''"
@
click=
"handleWaitTrackCommand(1)"
>
<span
class=
"sub-status-item-label"
>
注册失败
</span>
<span
class=
"tabs-node_count"
>
{{
trackRegisterCount[0]?.count || 0
}}
</span>
</div>
<div
class=
"sub-status-item"
:class=
"waitTrackStatus === 2 ? 'sub-active' : ''"
@
click=
"handleWaitTrackCommand(2)"
>
<span
class=
"sub-status-item-label"
>
未注册
</span>
<span
class=
"tabs-node_count blue"
>
{{
trackRegisterCount[1]?.count || 0
}}
</span>
</div>
<div
class=
"sub-status-item"
:class=
"waitTrackStatus === 3 ? 'sub-active' : ''"
@
click=
"handleWaitTrackCommand(3)"
>
<span
class=
"sub-status-item-label"
>
常规(
<
3天)
</span>
<span
class=
"tabs-node_count green"
>
{{
trackRegisterCount[2]?.count || 0
}}
</span>
</div>
<div
class=
"sub-status-item"
:class=
"waitTrackStatus === 4 ? 'sub-active' : ''"
@
click=
"handleWaitTrackCommand(4)"
>
<span
class=
"sub-status-item-label"
>
观察(2~3天)
</span>
<span
class=
"tabs-node_count yellow"
>
{{
trackRegisterCount[3]?.count || 0
}}
</span>
</div>
<div
class=
"sub-status-item"
:class=
"waitTrackStatus === 5 ? 'sub-active' : ''"
@
click=
"handleWaitTrackCommand(5)"
>
<span
class=
"sub-status-item-label"
>
重扫
&
补发(>3天)
</span>
<span
class=
"tabs-node_count red"
>
{{
trackRegisterCount[4]?.count || 0
}}
</span>
</div>
</div>
<div
v-if=
"status === 'INTERCEPTED'"
class=
"sub-status mb-10"
>
<div
v-if=
"status === 'INTERCEPTED'"
class=
"sub-status mb-10"
>
<div
<div
class=
"sub-status-item"
class=
"sub-status-item"
...
@@ -1533,7 +1583,9 @@
...
@@ -1533,7 +1583,9 @@
<
/span
>
<
/span
>
<
span
v
-
if
=
"['WAIT_TRACK'].includes(status)"
class
=
"operate-item"
>
<
span
v
-
if
=
"['WAIT_TRACK'].includes(status)"
class
=
"operate-item"
>
<
ElButton
link
type
=
"warning"
@
click
=
"updateTrackingNumber"
>
修改跟踪号
<
/ElButton
>
<
ElButton
link
type
=
"warning"
@
click
=
"updateTrackingNumber(row)"
>
修改跟踪号
<
/ElButto
n
>
<
/span
>
<
/span
>
<!--
<
span
<!--
<
span
v
-
if
=
"!row.expressSheet && row.status === 'TO_BE_CONFIRMED'"
v
-
if
=
"!row.expressSheet && row.status === 'TO_BE_CONFIRMED'"
...
@@ -1605,6 +1657,11 @@
...
@@ -1605,6 +1657,11 @@
<
/span
>
<
/span
>
<
/div
>
<
/div
>
<
/template
>
<
/template
>
<
template
#
trackRegisterFailContent
=
"{ row
}
"
>
<
div
style
=
"white-space: pre-line"
>
{{
JSON
.
parse
(
row
.
trackRegisterFailContent
)?.
error
||
''
}}
<
/div
>
<
/template
>
<
/TableView
>
<
/TableView
>
<
/div
>
<
/div
>
<
div
<
div
...
@@ -2009,8 +2066,7 @@
...
@@ -2009,8 +2066,7 @@
style
=
"margin-left: 10px"
style
=
"margin-left: 10px"
@
click
=
"changeChinaTime('Asia/Shanghai')"
@
click
=
"changeChinaTime('Asia/Shanghai')"
>
北京时间
>
北京时间
<
/el-butto
n
<
/el-button
>
>
<
el
-
button
<
el
-
button
:
type
=
"timeType === 'America/New_York' ? 'primary' : ''"
:
type
=
"timeType === 'America/New_York' ? 'primary' : ''"
size
=
"small"
size
=
"small"
...
@@ -2018,8 +2074,7 @@
...
@@ -2018,8 +2074,7 @@
style
=
"margin-left: 10px"
style
=
"margin-left: 10px"
@
click
=
"changeChinaTime('America/New_York')"
@
click
=
"changeChinaTime('America/New_York')"
>
新泽西时间
>
新泽西时间
<
/el-butto
n
<
/el-button
>
>
<
el
-
button
<
el
-
button
:
type
=
"timeType === 'America/Los_Angeles' ? 'primary' : ''"
:
type
=
"timeType === 'America/Los_Angeles' ? 'primary' : ''"
size
=
"small"
size
=
"small"
...
@@ -2027,8 +2082,7 @@
...
@@ -2027,8 +2082,7 @@
style
=
"margin-left: 10px"
style
=
"margin-left: 10px"
@
click
=
"changeChinaTime('America/Los_Angeles')"
@
click
=
"changeChinaTime('America/Los_Angeles')"
>
洛杉矶时间
>
洛杉矶时间
<
/el-butto
n
<
/el-button
>
>
<
/div
>
<
/div
>
<
/div
>
<
/div
>
<
/template
>
<
/template
>
...
@@ -2397,7 +2451,10 @@ import {
...
@@ -2397,7 +2451,10 @@ import {
get17TrackInfoApi
,
get17TrackInfoApi
,
getAccountCodeByFactoryIdApi
,
getAccountCodeByFactoryIdApi
,
printPickPdfByBatchNumberApi
,
printPickPdfByBatchNumberApi
,
printProductionPdfByBatchNumberApi
,
changeToFinished
,
updateTrackingNumberAndRegister
,
printProductionPdfByBatchNumberApi
,
changeToFinished
,
updateTrackingNumberAndRegister
,
countTrackRegisterApi
,
}
from
'@/api/podUsOrder'
}
from
'@/api/podUsOrder'
import
{
BaseRespData
}
from
'@/types/api'
import
{
BaseRespData
}
from
'@/types/api'
...
@@ -2452,7 +2509,7 @@ import {
...
@@ -2452,7 +2509,7 @@ import {
declare
global
{
declare
global
{
interface
Window
{
interface
Window
{
ActiveXObject
:
{
ActiveXObject
:
{
new
(
type
:
string
):
XMLHttpRequest
new
(
type
:
string
):
XMLHttpRequest
}
}
VBS_BinaryToArray
:
{
VBS_BinaryToArray
:
{
(
data
:
unknown
):
{
toArray
():
number
[]
}
(
data
:
unknown
):
{
toArray
():
number
[]
}
...
@@ -2483,18 +2540,15 @@ const exportForm = ref({
...
@@ -2483,18 +2540,15 @@ const exportForm = ref({
resource
:
''
,
resource
:
''
,
}
)
}
)
//updateTrackingNumber
// 修改物流跟踪号
const
updateTrackingNumber
=
async
(
row
:
PodUsOrderListData
)
=>
{
const
updateTrackingNumber
=
async
()
=>
{
if
(
selection
.
value
.
length
!==
1
)
{
return
ElMessage
.
warning
(
'请选择一条数据'
)
}
const
{
value
}
=
await
ElMessageBox
.
prompt
(
'请输入物流跟踪号'
,
'提示'
,
{
const
{
value
}
=
await
ElMessageBox
.
prompt
(
'请输入物流跟踪号'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
cancelButtonText
:
'取消'
,
inputPattern
:
/.+/
,
inputPattern
:
/.+/
,
inputErrorMessage
:
'请输入物流跟踪号'
,
inputErrorMessage
:
'请输入物流跟踪号'
,
inputPlaceholder
:
'物流跟踪号'
,
inputPlaceholder
:
'物流跟踪号'
,
inputValue
:
row
.
trackingNumber
,
}
)
}
)
const
loading
=
ElLoading
.
service
({
const
loading
=
ElLoading
.
service
({
fullscreen
:
true
,
fullscreen
:
true
,
...
@@ -2502,7 +2556,7 @@ const updateTrackingNumber = async () => {
...
@@ -2502,7 +2556,7 @@ const updateTrackingNumber = async () => {
background
:
'rgba(0, 0, 0, 0.3)'
,
background
:
'rgba(0, 0, 0, 0.3)'
,
}
)
}
)
try
{
try
{
const
res
=
await
updateTrackingNumberAndRegister
(
selection
.
value
[
0
]
.
id
,
value
)
const
res
=
await
updateTrackingNumberAndRegister
(
row
.
id
,
value
)
if
(
res
.
code
!==
200
)
return
if
(
res
.
code
!==
200
)
return
ElMessage
.
success
(
'操作成功'
)
ElMessage
.
success
(
'操作成功'
)
search
()
search
()
...
@@ -2617,6 +2671,14 @@ const [searchForm, resetSearchForm] = useValue<SearchForm>({
...
@@ -2617,6 +2671,14 @@ const [searchForm, resetSearchForm] = useValue<SearchForm>({
const
exceptionStatus
=
ref
(
1
)
const
exceptionStatus
=
ref
(
1
)
const
interceptCurrent
=
ref
(
1
)
const
interceptCurrent
=
ref
(
1
)
const
interceptStatus
=
ref
(
0
)
const
interceptStatus
=
ref
(
0
)
const
waitTrackStatus
=
ref
(
1
)
const
trackRegisterCount
=
ref
<
{
count
:
number
trackRegisterSelect
:
number
name
:
string
}
[]
>
([])
const
userMarkList
=
ref
<
string
[]
>
([])
const
userMarkList
=
ref
<
string
[]
>
([])
const
selection
=
ref
<
PodUsOrderListData
[]
>
([])
const
selection
=
ref
<
PodUsOrderListData
[]
>
([])
const
currentItem
=
ref
<
PodUsOrderListData
|
null
>
(
null
)
const
currentItem
=
ref
<
PodUsOrderListData
|
null
>
(
null
)
...
@@ -2970,10 +3032,18 @@ const tableColumns = computed(() => {
...
@@ -2970,10 +3032,18 @@ const tableColumns = computed(() => {
prop
:
'exceptionReason'
,
prop
:
'exceptionReason'
,
slot
:
'exceptionReason'
,
slot
:
'exceptionReason'
,
align
:
'left'
,
align
:
'left'
,
}
,{
}
,
{
label
:
'物流跟踪状态'
,
label
:
'物流跟踪状态'
,
width
:
220
,
width
:
220
,
prop
:
'track17_Status'
,
prop
:
'track17Status'
,
align
:
'left'
,
}
,
{
label
:
'注册失败信息'
,
width
:
220
,
prop
:
'trackRegisterFailContent'
,
slot
:
'trackRegisterFailContent'
,
align
:
'left'
,
align
:
'left'
,
}
,
}
,
{
{
...
@@ -2985,10 +3055,34 @@ const tableColumns = computed(() => {
...
@@ -2985,10 +3055,34 @@ const tableColumns = computed(() => {
prop
:
'operate'
,
prop
:
'operate'
,
}
,
}
,
]
]
if
(
!
[
'WAIT_TRACK'
,
'IN_TRANSIT'
].
includes
(
status
.
value
)){
// 根据状态动态调整列显示
const
index
=
arr
.
findIndex
(
item
=>
item
.
prop
===
'track17_Status'
)
if
(
!
[
'WAIT_TRACK'
].
includes
(
status
.
value
))
{
if
(
index
>=
0
){
const
trackRegisterIndex
=
arr
.
findIndex
(
arr
.
splice
(
index
,
1
)
(
item
)
=>
item
.
prop
===
'trackRegisterFailContent'
,
)
if
(
trackRegisterIndex
>=
0
)
{
arr
.
splice
(
trackRegisterIndex
,
1
)
}
const
track17Index
=
arr
.
findIndex
((
item
)
=>
item
.
prop
===
'track17Status'
)
if
(
track17Index
>=
0
)
{
arr
.
splice
(
track17Index
,
1
)
}
}
else
{
if
(
waitTrackStatus
.
value
!==
1
)
{
const
trackRegisterIndex
=
arr
.
findIndex
(
(
item
)
=>
item
.
prop
===
'trackRegisterFailContent'
,
)
if
(
trackRegisterIndex
>=
0
)
{
arr
.
splice
(
trackRegisterIndex
,
1
)
}
}
}
if
(
!
[
'WAIT_TRACK'
,
'IN_TRANSIT'
].
includes
(
status
.
value
))
{
const
index
=
arr
.
findIndex
((
item
)
=>
item
.
prop
===
'track17Status'
)
if
(
index
>=
0
)
{
arr
.
splice
(
index
,
1
)
}
}
}
}
return
arr
return
arr
...
@@ -3083,6 +3177,10 @@ const loadTabData = async () => {
...
@@ -3083,6 +3177,10 @@ const loadTabData = async () => {
try
{
try
{
const
res
=
await
getOrderTabData
()
const
res
=
await
getOrderTabData
()
tabsNav
.
value
=
res
.
data
tabsNav
.
value
=
res
.
data
if
(
status
.
value
===
'WAIT_TRACK'
)
{
const
res
=
await
countTrackRegisterApi
()
trackRegisterCount
.
value
=
res
.
data
}
// 获取拦截数量
// 获取拦截数量
const
statusRes
=
await
getgetInterceptStateGroupList
()
const
statusRes
=
await
getgetInterceptStateGroupList
()
...
@@ -3171,6 +3269,8 @@ const {
...
@@ -3171,6 +3269,8 @@ const {
:
undefined
,
:
undefined
,
interceptStatus
:
interceptStatus
:
status
.
value
===
'INTERCEPTED'
?
interceptStatus
.
value
:
''
,
status
.
value
===
'INTERCEPTED'
?
interceptStatus
.
value
:
''
,
trackRegisterSelect
:
status
.
value
===
'WAIT_TRACK'
?
waitTrackStatus
.
value
:
''
,
}
,
}
,
page
,
page
,
pageSize
,
pageSize
,
...
@@ -4790,6 +4890,7 @@ const logisticsSubmit = () => {
...
@@ -4790,6 +4890,7 @@ const logisticsSubmit = () => {
}
)
}
)
}
}
// 异常单分页
const
handleExceptionCommand
=
(
command
:
number
)
=>
{
const
handleExceptionCommand
=
(
command
:
number
)
=>
{
exceptionStatus
.
value
=
command
exceptionStatus
.
value
=
command
search
()
search
()
...
@@ -4802,6 +4903,13 @@ const handleInterceptionCommand = (current: number, command: number) => {
...
@@ -4802,6 +4903,13 @@ const handleInterceptionCommand = (current: number, command: number) => {
loadTabData
()
loadTabData
()
}
}
// 待跟踪分页
const
handleWaitTrackCommand
=
(
command
:
number
)
=>
{
waitTrackStatus
.
value
=
command
search
()
loadTabData
()
}
const
applyForReplenishment
=
async
(
row
:
ProductList
|
undefined
)
=>
{
const
applyForReplenishment
=
async
(
row
:
ProductList
|
undefined
)
=>
{
if
(
!
row
)
{
if
(
!
row
)
{
if
(
cardSelection
.
value
.
length
===
0
)
{
if
(
cardSelection
.
value
.
length
===
0
)
{
...
@@ -5081,7 +5189,9 @@ const setFinish = async () => {
...
@@ -5081,7 +5189,9 @@ const setFinish = async () => {
background
:
'rgba(0, 0, 0, 0.3)'
,
background
:
'rgba(0, 0, 0, 0.3)'
,
}
)
}
)
try
{
try
{
const
res
=
await
changeToFinished
(
selection
.
value
.
map
((
item
)
=>
item
.
id
).
join
(
','
))
const
res
=
await
changeToFinished
(
selection
.
value
.
map
((
item
)
=>
item
.
id
).
join
(
','
),
)
if
(
res
.
code
!==
200
)
return
if
(
res
.
code
!==
200
)
return
ElMessage
.
success
(
'操作成功'
)
ElMessage
.
success
(
'操作成功'
)
search
()
search
()
...
@@ -5304,6 +5414,15 @@ useRouter().beforeEach((to, from, next) => {
...
@@ -5304,6 +5414,15 @@ useRouter().beforeEach((to, from, next) => {
color
:
rgb
(
153
27
27
);
color
:
rgb
(
153
27
27
);
}
}
.
tabs
-
node_count
.
green
{
background
:
rgb
(
223
240
216
);
color
:
rgb
(
39
174
96
);
}
.
tabs
-
node_count
.
yellow
{
background
:
rgb
(
255
243
205
);
color
:
rgb
(
91
,
99
,
18
);
}
.
empty
{
.
empty
{
height
:
100
%
;
height
:
100
%
;
display
:
flex
;
display
:
flex
;
...
@@ -5531,8 +5650,8 @@ useRouter().beforeEach((to, from, next) => {
...
@@ -5531,8 +5650,8 @@ useRouter().beforeEach((to, from, next) => {
}
}
.
el
-
timeline
.
el
-
timeline
>
.
el
-
timeline
-
item
:
first
-
child
>
.
el
-
timeline
-
item
:
first
-
child
.
el
-
timeline
-
item__timestamp
.
is
-
top
{
.
el
-
timeline
-
item__timestamp
.
is
-
top
{
color
:
#
409
eff
;
color
:
#
409
eff
;
}
}
...
...
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