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
9deae37e
Commit
9deae37e
authored
Nov 27, 2025
by
zhuzhequan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:pod订单(us) 添加prn文件上传下载
parent
8f57c541
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
144 additions
and
27 deletions
+144
-27
src/api/podUsOrder.ts
+17
-0
src/types/api/podUsOrder.ts
+3
-0
src/views/order/podUs/index.vue
+124
-27
No files found.
src/api/podUsOrder.ts
View file @
9deae37e
...
...
@@ -85,6 +85,23 @@ export function getCardOrderList(
},
)
}
export
function
uploadPRNFile
(
id
:
number
,
data
:
FormData
,
)
{
return
axios
.
post
<
never
,
BaseRespData
<
string
>>
(
`/factory/podBatchDownload/uploadPRNFile?id=
${
id
}
`
,
data
)
}
export
function
updatePRNDownloadStatus
(
id
:
number
)
{
return
axios
.
get
<
never
,
BaseRespData
<
string
>>
(
`/factory/podBatchDownload/updatePRNDownloadStatus?id=
${
id
}
`
)
}
export
function
confirmOrderApi
(
data
:
number
[],
productionClient
:
string
,
...
...
src/types/api/podUsOrder.ts
View file @
9deae37e
...
...
@@ -48,8 +48,11 @@ export interface SearchForm {
export
interface
PodUsOrderListData
{
id
:
number
thirdOrderNumber
?:
string
prnUrl
?:
string
factoryOrderNumber
?:
string
prnDownloadStatus
?:
boolean
shopNumber
?:
string
isUpload
?:
boolean
factoryOnlineId
?:
number
|
null
factoryNo
?:
number
|
null
factoryCode
?:
string
|
null
...
...
src/views/order/podUs/index.vue
View file @
9deae37e
...
...
@@ -399,33 +399,43 @@
>
<ElDropdown>
<el-button
type=
"primary"
>
DTF排版
<el-icon
class=
"el-icon--right"
><ArrowDown
/></el-icon>
DTF排版
<el-icon
class=
"el-icon--right"
>
<ArrowDown
/>
</el-icon>
</el-button>
<
template
#
dropdown
>
<ElDropdownMenu>
<ElDropdownItem
:loading=
"tifDownloadLoading"
@
click=
"downloadTif('tiff', 42)"
>
TIF(40+2cm)
</ElDropdownItem
>
TIF(40+2cm)
</ElDropdownItem
>
<ElDropdownItem
:loading=
"tifDownloadLoading"
@
click=
"downloadTif('tiff', 60)"
>
TIF(60cm)
</ElDropdownItem
>
TIF(60cm)
</ElDropdownItem
>
<ElDropdownItem
:loading=
"pngDownloadLoading"
@
click=
"downloadTif('png', 42)"
>
PNG(40+2cm)
</ElDropdownItem
>
PNG(40+2cm)
</ElDropdownItem
>
<ElDropdownItem
:loading=
"pngDownloadLoading"
@
click=
"downloadTif('png', 60)"
>
PNG(60cm)
</ElDropdownItem
>
PNG(60cm)
</ElDropdownItem
>
</ElDropdownMenu>
</
template
>
</ElDropdown
>
</ElDropdownMenu></
template
></ElDropdown
></ElFormItem
</ElFormItem
>
<!-- <ElFormItem
v-if="
...
...
@@ -1781,6 +1791,26 @@
{{
row
.
automaticComposing
?
'是'
:
'否'
}}
<
/div
>
<
/template
>
<
template
#
prn
=
"{ row
}
"
>
<
div
style
=
"display: flex"
>
<
span
:
title
=
"fileName(row)"
class
=
"flex-1"
>
{{
fileName
(
row
)
}}
<
/span
>
<
el
-
link
:
disabled
=
"row.isUpload"
underline
=
"never"
type
=
"success"
@
click
=
"uploadFile(row)"
>
上传
<
/el-link
>
<
el
-
icon
v
-
if
=
"row.isUpload"
style
=
"right: 0;top:5px;"
class
=
"is-loading"
>
<
Loading
/>
<
/el-icon
>
<
el
-
link
:
disabled
=
"!row.prnUrl"
style
=
"margin-left: 8px"
underline
=
"never"
type
=
"primary"
@
click
=
"downloadRowProFile(row)"
>
下载
<
/el-link
>
<
el
-
icon
v
-
if
=
"row.prnDownloadStatus"
style
=
"right: -2px"
class
=
"check-icon"
>
<
CircleCheckFilled
/>
<
/el-icon
>
<
/div
>
<
/template
>
<
template
#
composingParam
=
"{ row
}
"
>
<
div
style
=
"white-space: pre-line"
>
{{
row
.
composingParam
?.
split
(
';'
).
join
(
'
\
n'
)
}}
...
...
@@ -1825,10 +1855,11 @@
<
span
class
=
"operate-item"
>
<
ElButton
link
title
=
"打印拣货单"
type
=
"primary"
@
click
=
"printPickingOrderItem(row, 1)"
>
打印
拣货单
拣货单
<
/ElButton
>
<
el
-
icon
v
-
if
=
"row.printPickOrder"
class
=
"check-icon"
><
CircleCheckFilled
...
...
@@ -1837,10 +1868,11 @@
<
span
class
=
"operate-item"
>
<
ElButton
link
title
=
"打印生产单"
type
=
"primary"
@
click
=
"printPickingOrderItem(row, 2)"
>
打印
生产单
生产单
<
/ElButton
>
<
el
-
icon
v
-
if
=
"row.printProductOrder"
class
=
"check-icon"
><
CircleCheckFilled
...
...
@@ -1850,11 +1882,12 @@
<
ElButton
:
disabled
=
"row.productNum > 50"
link
title
=
"重新排版"
type
=
"warning"
:
loading
=
"reComposingLoadingMap[row.id]"
@
click
=
"showArrange(1, row)"
>
重
新排版
重
排
<
/ElButton
>
<
/span
>
<
span
class
=
"operate-item"
>
...
...
@@ -1994,8 +2027,8 @@
<
div
v
-
for
=
"(cardItem) in tableData as ProductList[]"
:
key
=
"cardItem.id"
class
=
"card-list-item"
ref
=
"cardRefs"
class
=
"card-list-item"
@
click
=
"cardClick(cardItem)"
@
mouseleave
=
"handleChangeImages(null, cardItem)"
>
...
...
@@ -2043,24 +2076,25 @@
type
=
"primary"
:
title
=
"item.name || ''"
style
=
"margin-bottom: 2px"
>
{{
item
.
name
||
''
}}
<
/el-ta
g
>
{{
item
.
name
||
''
}}
<
/el-ta
g
>
<
/div
>
<
/template
>
<
div
class
=
"flex
"
v
-
if
=
"cardItem.customTagList?.length
"
ref
=
"tagRefs"
class
=
"flex"
style
=
"gap: 5px; overflow: hidden"
v
-
if
=
"cardItem.customTagList?.length"
>
<
el
-
tag
size
=
"small"
type
=
"primary"
v
-
for
=
"(item, index) in cardItem.customTagList.slice(
0,
3,
)"
:
key
=
"index"
size
=
"small"
type
=
"primary"
><
span
style
=
"
width: 50px;
...
...
@@ -2075,10 +2109,11 @@
><
/el-ta
g
>
<
el
-
tag
v
-
if
=
"cardItem.customTagList?.slice(3)?.length"
size
=
"small"
type
=
"primary"
v
-
if
=
"cardItem.customTagList?.slice(3)?.length"
>+
{{
cardItem
.
customTagList
.
slice
(
3
).
length
}}
<
/el-ta
g
>+
{{
cardItem
.
customTagList
.
slice
(
3
).
length
}}
<
/el-ta
g
>
<
/div
>
<
/el-tooltip
>
...
...
@@ -2639,8 +2674,8 @@
v
-
model
:
form
=
"currentRow"
v
-
model
:
visible
=
"updateAddVisible"
:
country
-
list
=
"countryList"
@
success
=
"search"
:
type
=
"updateAddressType"
@
success
=
"search"
><
/UpdateAddress
>
<
ElDialog
v
-
model
=
"exceptionDialogVisible"
...
...
@@ -2842,7 +2877,8 @@
typesettingVisible = false
}
"
>
取消
<
/el-butto
n
>
取消
<
/el-butto
n
>
<
el
-
button
type
=
"primary"
@
click
=
"submitTypesetting"
>
确认
<
/el-button
>
<
/template
>
...
...
@@ -2903,6 +2939,7 @@ import {
}
from
'@element-plus/icons-vue'
import
{
getCardOrderList
,
uploadPRNFile
,
getOrderList
,
getOrderTabData
,
confirmOrderApi
,
...
...
@@ -2964,7 +3001,7 @@ import {
getCustomTagListApi
,
getLogisticsWayApi
,
printNormalPickPdfApi
,
reissueOrderApi
reissueOrderApi
,
updatePRNDownloadStatus
,
}
from
'@/api/podUsOrder'
import
{
BaseRespData
}
from
'@/types/api'
...
...
@@ -2997,6 +3034,7 @@ import { showConfirm } from '@/utils/ui'
import
{
DocumentCopy
,
EditPen
,
Loading
,
CircleCheckFilled
,
}
from
'@element-plus/icons-vue'
import
{
Column
,
ElFormItem
}
from
'element-plus'
...
...
@@ -3025,7 +3063,7 @@ import {
declare
global
{
interface
Window
{
ActiveXObject
:
{
new
(
type
:
string
):
XMLHttpRequest
new
(
type
:
string
):
XMLHttpRequest
}
VBS_BinaryToArray
:
{
(
data
:
unknown
):
{
toArray
():
number
[]
}
...
...
@@ -3552,6 +3590,12 @@ const tableColumns = computed(() => {
prop
:
'automaticComposing'
,
slot
:
'automaticComposing'
,
align
:
'center'
,
}
,
{
label
:
'PRN文件'
,
width
:
300
,
prop
:
'automaticComposing'
,
slot
:
'prn'
,
align
:
'right'
,
}
,
{
label
:
'排版参数'
,
...
...
@@ -3563,7 +3607,7 @@ const tableColumns = computed(() => {
{
label
:
'操作'
,
slot
:
'operate'
,
width
:
3
5
0
,
width
:
3
0
0
,
align
:
'center'
,
fixed
:
'right'
,
prop
:
'operate'
,
...
...
@@ -3967,7 +4011,10 @@ watch(
}
,
{
deep
:
true
,
immediate
:
true
}
,
// 添加immediate确保初始化时执行
)
const
fileName
=
(
row
:
PodUsOrderListData
)
=>
{
if
(
!
row
.
prnUrl
)
return
''
return
row
.
prnUrl
.
split
(
'/'
)[
row
.
prnUrl
.
split
(
'/'
).
length
-
1
]
}
const
search
=
()
=>
{
selection
.
value
=
[]
cardSelection
.
value
=
[]
...
...
@@ -4145,6 +4192,37 @@ const productionClientVisible = ref(false)
// productionClientVisible.value = true
//
}
const
downloadRowProFile
=
async
(
row
:
PodUsOrderListData
)
=>
{
const
url
=
`https://factory.jomalls.com/upload/factory`
+
row
.
prnUrl
window
.
open
(
url
,
'_blank'
)
await
updatePRNDownloadStatus
(
row
.
id
,
)
search
()
}
const
uploadFile
=
(
row
:
PodUsOrderListData
)
=>
{
const
input
=
document
.
createElement
(
'input'
)
input
.
style
.
display
=
'none'
input
.
type
=
'file'
input
.
multiple
=
false
input
?.
click
()
row
.
isUpload
=
true
input
.
onchange
=
async
function
()
{
try
{
if
(
input
.
files
&&
input
.
files
.
length
)
{
const
fm
=
new
FormData
()
fm
.
append
(
'file'
,
input
.
files
?.[
0
])
const
res
=
await
uploadPRNFile
(
row
.
id
,
fm
)
row
.
prnUrl
=
res
.
message
}
}
finally
{
row
.
isUpload
=
false
}
}
}
const
downloadTif
=
async
(
type
:
string
,
templateWidth
:
number
)
=>
{
if
(
!
cardSelection
.
value
.
length
)
{
return
ElMessage
.
warning
(
'请选择数据'
)
...
...
@@ -6562,6 +6640,7 @@ const printNormal = async () => {
background
:
rgb
(
255
243
205
);
color
:
rgb
(
91
,
99
,
18
);
}
.
empty
{
height
:
100
%
;
display
:
flex
;
...
...
@@ -6765,13 +6844,16 @@ const printNormal = async () => {
color
:
white
;
font
-
weight
:
bold
;
}
.
triangle
-
container
-
wrap
{
position
:
absolute
;
top
:
0
;
right
:
0
;
}
.
triangle
-
container
{
position
:
relative
;
.
triangle
-
marker
{
width
:
0
;
height
:
0
;
...
...
@@ -6779,6 +6861,7 @@ const printNormal = async () => {
border
-
right
:
18
px
solid
#
e74c3c
;
border
-
top
:
18
px
solid
#
e74c3c
;
}
.
content
{
position
:
absolute
;
top
:
0
;
...
...
@@ -6790,13 +6873,16 @@ const printNormal = async () => {
font
-
size
:
12
px
;
}
}
.
triangle
-
container
-
wrap
{
position
:
absolute
;
top
:
0
;
right
:
0
;
}
.
triangle
-
container
{
position
:
relative
;
.
triangle
-
marker
{
width
:
0
;
height
:
0
;
...
...
@@ -6804,6 +6890,7 @@ const printNormal = async () => {
border
-
right
:
18
px
solid
#
e74c3c
;
border
-
top
:
18
px
solid
#
e74c3c
;
}
.
content
{
position
:
absolute
;
top
:
0
;
...
...
@@ -6839,8 +6926,8 @@ const printNormal = async () => {
}
.
el
-
timeline
>
.
el
-
timeline
-
item
:
first
-
child
.
el
-
timeline
-
item__timestamp
.
is
-
top
{
>
.
el
-
timeline
-
item
:
first
-
child
.
el
-
timeline
-
item__timestamp
.
is
-
top
{
color
:
#
409
eff
;
}
...
...
@@ -6849,6 +6936,7 @@ const printNormal = async () => {
justify
-
content
:
space
-
between
;
align
-
items
:
center
;
}
.
tabs
-
node
-
quantity
{
position
:
relative
;
color
:
red
;
...
...
@@ -6856,6 +6944,7 @@ const printNormal = async () => {
top
:
-
10
px
;
right
:
0
px
;
}
.
operate
-
item
{
position
:
relative
;
}
...
...
@@ -6867,4 +6956,12 @@ const printNormal = async () => {
top
:
30
%
;
transform
:
translateY
(
-
50
%
);
}
.
flex
-
1
{
flex
:
1
;
flex
-
shrink
:
0
;
overflow
:
hidden
;
text
-
overflow
:
ellipsis
;
white
-
space
:
nowrap
;
}
<
/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