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
03007d8e
Commit
03007d8e
authored
Oct 17, 2025
by
qinjianhui
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' into 'master'
Dev See merge request
!91
parents
603569a3
a1235faa
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
121 additions
and
11 deletions
+121
-11
src/api/podUsOrder.ts
+4
-0
src/types/api/podUsOrder.ts
+2
-0
src/views/order/podCN/SuperPodMakeOrder.vue
+60
-8
src/views/order/podUs/index.vue
+55
-3
No files found.
src/api/podUsOrder.ts
View file @
03007d8e
...
...
@@ -586,6 +586,10 @@ export function getAccountCodeByFactoryIdApi(params: { token: string }) {
params
,
})
}
export
function
getLogisticsWayApi
()
{
return
axios
.
get
(
`logisticsWay/usableAllList`
)
}
// 打印拣货单item
export
function
printPickPdfByBatchNumberApi
(
params
:
{
batchArrangeNumber
:
string
...
...
src/types/api/podUsOrder.ts
View file @
03007d8e
...
...
@@ -12,6 +12,8 @@ export interface ExportParams extends SearchForm {
export
interface
SearchForm
{
timeType
?:
number
|
null
shopNumber
?:
string
source
?:
string
logisticsWayId
?:
number
|
null
shipmentType
?:
string
|
number
|
null
userMark
?:
string
processNumber
?:
string
...
...
src/views/order/podCN/SuperPodMakeOrder.vue
View file @
03007d8e
...
...
@@ -99,10 +99,9 @@
<
template
#
image=
"{ row }"
>
<div
style=
"display: flex; flex-wrap: nowrap"
v-if=
"row.previewImgs?.length"
>
<div
v-for=
"img in row.pr
eviewImgs
"
v-for=
"img in row.pr
oductMark!=='normal'?row.previewImgs:[
{url:row.variantImage}]
"
:key="img"
@click.stop="handleCurrentChange(img.url)"
style="cursor: pointer; margin-right: 5px; flex: 1"
...
...
@@ -157,6 +156,12 @@
@
click=
"podOrderDetailsData && print(podOrderDetailsData, true)"
>
手动打印
</ElButton
>
<ElButton
type=
"primary"
@
click=
"printNormal"
>
普货拣货
</ElButton
>
<ElButton
type=
"success"
@
click=
"handlePrintFinish"
>
打单完成
</ElButton
>
...
...
@@ -220,11 +225,13 @@ import {
clearSuperAllBoxApi
,
getSuperPodBoxListApi
,
submitSuperInspectionApi
,
printNormalPdf
,
}
from
'@/api/podCnOrder'
import
useUserStore
from
'@/store/user'
import
{
Check
}
from
'@element-plus/icons-vue'
import
socket
from
'@/utils/cnSuperWebsocket'
import
{
ElMessage
}
from
'element-plus'
import
{
filePath
}
from
'@/api/axios.ts'
const
{
getCLodop
}
=
useLodop
()
const
userStore
=
useUserStore
()
...
...
@@ -268,31 +275,41 @@ const podOrderDetailsColumns = computed(() => [
// align: 'center',
// },
{
label
:
'库存SKU'
,
prop
:
'thirdSkuCode'
,
width
:
180
,
align
:
'center'
,
},
{
label
:
'variant SKU'
,
prop
:
'variantSku'
,
width
:
1
4
0
,
width
:
1
5
0
,
align
:
'center'
,
},
{
label
:
'商品名称'
,
width
:
200
,
prop
:
'productName'
,
},
{
label
:
'购买数量'
,
prop
:
'purchaseNumber'
,
width
:
90
,
fixed
:
'right'
,
prop
:
'purchaseNumber'
,
align
:
'center'
,
},
{
label
:
'拣货数量'
,
prop
:
'count'
,
width
:
90
,
fixed
:
'right'
,
align
:
'center'
,
},
{
label
:
'验证结果'
,
slot
:
'verifyResult'
,
fixed
:
'right'
,
width
:
90
,
align
:
'center'
,
},
...
...
@@ -374,7 +391,7 @@ watch(
(
val
)
=>
{
if
(
val
&&
val
.
productList
?.
length
)
val
.
productList
.
forEach
((
el
)
=>
{
if
(
!
el
.
previewImgs
)
el
.
previewImgs
=
JSON
.
parse
(
el
.
imageAry
)
if
(
!
el
.
previewImgs
)
el
.
previewImgs
=
JSON
.
parse
(
el
.
imageAry
||
'[]'
)
})
},
{
deep
:
true
},
...
...
@@ -398,7 +415,7 @@ const renderItemBox = (bool: boolean) => {
if
(
!
boxItem
)
boxItem
=
{
data
:
{
productList
:
[]
}
}
const
{
data
}
=
boxItem
data
?.
productList
?.
forEach
((
el
)
=>
{
if
(
!
el
.
previewImgs
)
el
.
previewImgs
=
JSON
.
parse
(
el
.
imageAry
)
if
(
!
el
.
previewImgs
)
el
.
previewImgs
=
JSON
.
parse
(
el
.
imageAry
||
'[]'
)
})
if
(
!
data
)
{
renderLock
=
false
...
...
@@ -467,6 +484,30 @@ const messageChange = (data: WebSocketMessage) => {
setPodBoxList
(
more
)
}
}
const
printNormal
=
async
()
=>
{
const
arr
:
(
number
|
undefined
)[]
=
[];
(
podBoxList
.
value
||
[]).
forEach
((
item
:
PodMakeOrderData
)
=>
{
if
(
item
.
data
)
{
if
(
item
.
data
.
productList
&&
item
.
data
.
productList
.
length
>
0
)
{
const
flag
=
item
.
data
.
productList
.
some
((
item1
)
=>
{
return
item1
.
productMark
==
'normal'
})
if
(
flag
)
{
arr
?.
push
(
item
.
data
?.
id
)
}
}
}
})
if
(
!
arr
.
length
)
{
ElMessage
.
warning
(
'暂无可打印的普货拣货单'
)
return
}
const
res
=
await
printNormalPdf
(
arr
.
join
())
ElMessage
.
success
(
'操作成功'
)
window
.
open
(
filePath
+
res
.
message
)
}
const
setPodBoxList
=
(
data
:
WebSocketMessage
)
=>
{
const
obj
=
data
.
txt
if
(
obj
&&
typeof
obj
===
'string'
)
{
...
...
@@ -618,6 +659,16 @@ const initOrderDetailBox = async () => {
ElMessage
.
warning
(
res
.
message
)
return
}
res
.
data
.
forEach
(
r
=>
{
r
.
data
?.
productList
?.
forEach
(
d
=>
{
if
(
d
.
productMark
===
'normal'
)
{
d
.
previewImgs
=
[{
url
:
d
.
variantImage
||
''
}]
}
else
{
if
(
!
d
.
previewImgs
)
d
.
previewImgs
=
JSON
.
parse
(
d
.
imageAry
||
'[]'
)
}
})
})
orderStore
.
setPodBoxList
({
boxList
:
res
.
data
,
factoryNo
,
...
...
@@ -869,7 +920,8 @@ const clearAllBox = async () => {
}
const
handleRowClick
=
(
row
:
ProductList
)
=>
{
console
.
log
(
907
,
row
)
coverImage
.
value
=
row
.
previewImgs
?.[
0
]?.
url
||
''
const
previewImages
=
row
.
productMark
!==
'normal'
?
row
.
previewImgs
:[{
url
:
row
.
variantImage
}]
coverImage
.
value
=
previewImages
?.[
0
]?.
url
||
''
productionOrderRef
.
value
.
focus
()
}
const
handleCurrentChange
=
(
url
:
string
)
=>
{
...
...
src/views/order/podUs/index.vue
View file @
03007d8e
<
template
>
<div
class=
"card flex-column h-100 overflow-hidden"
>
<div
class=
"header-filter-form"
>
<ElForm
:model=
"searchForm"
size=
"default"
inline
>
<ElForm
label-position=
"left"
label-width=
"70px"
:model=
"searchForm"
size=
"default"
inline
>
<!--
<div>
-->
<ElFormItem
label=
"仓库"
>
<ElSelect
...
...
@@ -54,7 +54,7 @@
collapse-tags
collapse-tags-tooltip
placeholder=
"请输入工艺"
style=
"width:
23
0px"
style=
"width:
15
0px"
>
<el-option
v-for=
"item in craftList"
...
...
@@ -313,6 +313,38 @@
>
</ElOption>
</ElSelect>
</ElFormItem>
<ElFormItem
label=
"物流方式"
>
<ElSelect
v-model=
"searchForm.logisticsWayId"
placeholder=
"请选择"
clearable
:teleported=
"false"
style=
"width: 150px"
>
<ElOption
v-for=
"(item, index) in logisticsWayList "
:key=
"index"
:value=
"item.id"
:label=
"item.name"
></ElOption>
</ElSelect>
</ElFormItem>
<ElFormItem
label=
"订单来源"
>
<ElSelect
v-model=
"searchForm.source"
placeholder=
"请选择"
clearable
:teleported=
"false"
style=
"width: 150px"
>
<ElOption
v-for=
"(item, index) in sourceList "
:key=
"index"
:value=
"item.id"
:label=
"item.name"
></ElOption>
</ElSelect>
</ElFormItem>
</ElForm>
<template
#
reference
>
<el-button
type=
"warning"
@
click=
"searchVisible = !searchVisible"
>
...
...
@@ -2867,7 +2899,7 @@ import {
changeToFinished
,
updateTrackingNumberAndRegister
,
countTrackRegisterApi
,
getCustomTagListApi
,
getCustomTagListApi
,
getLogisticsWayApi
,
}
from
'@/api/podUsOrder'
import
{
BaseRespData
}
from
'@/types/api'
...
...
@@ -2937,9 +2969,20 @@ declare global {
responseBody
?:
unknown
}
}
const
sourceList
=
[
{
name
:
'erp推送'
,
id
:
'jomall-erp'
}
,
{
name
:
'第三方推送'
,
id
:
'third-party'
}
]
const
tabsNav
=
ref
<
Tab
[]
>
()
const
isAuto
=
ref
(
true
)
const
countryList
=
ref
([])
const
logisticsWayList
=
ref
<
{
name
:
string
,
id
:
number
}
[]
>
([])
const
currentRow
=
ref
<
AddressInfo
>
({
receiverName
:
''
,
receiverPhone
:
''
,
...
...
@@ -3093,6 +3136,8 @@ const detailData = ref({})
const
[
searchForm
,
resetSearchForm
]
=
useValue
<
SearchForm
>
({
timeType
:
1
,
shopNumber
:
''
,
source
:
''
,
logisticsWayId
:
null
,
shipmentType
:
''
,
userMark
:
''
,
processNumber
:
''
,
...
...
@@ -6124,7 +6169,14 @@ const getTagName = (row: ProductList) => {
:
''
}
const
getLogisticsWay
=
async
()
=>
{
const
{
data
}
=
await
getLogisticsWayApi
()
logisticsWayList
.
value
=
data
}
getPermission
()
getLogisticsWay
()
const
globalProperties
=
getCurrentInstance
()?.
appContext
.
config
.
globalProperties
// 获取全局挂载
const
isPermissionBtn
=
globalProperties
?.
$isPermissionBtn
...
...
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