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
c75f478c
Commit
c75f478c
authored
Oct 13, 2025
by
wuqian
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' of
http://47.122.114.111:9999/qinjianhui/factory_front
into dev
parents
1bdff346
946e0d0a
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
247 additions
and
51 deletions
+247
-51
src/api/podCnOrder.ts
+8
-0
src/components/RenderColumn.vue
+1
-0
src/types/api/podCnOrder.ts
+2
-0
src/types/api/podMakeOrder.ts
+1
-1
src/views/order/podCN/PodMakeOrder.vue
+100
-18
src/views/order/podCN/index.vue
+135
-32
No files found.
src/api/podCnOrder.ts
View file @
c75f478c
...
@@ -311,6 +311,14 @@ export function getSuperPodBoxListApi(factoryNo: number | string) {
...
@@ -311,6 +311,14 @@ export function getSuperPodBoxListApi(factoryNo: number | string) {
)
)
}
}
// 超级播种墙配货 获取pod订单拣货箱子详情
export
function
printNormalPdf
(
ids
:
string
)
{
return
axios
.
get
<
never
,
BaseRespData
<
string
>>
(
'factory/podJomallOrderCn/printPickPdf'
,
{
params
:
{
ids
}
},
)
}
// 播种墙配货 打单完成
// 播种墙配货 打单完成
export
function
submitInspectionApi
(
export
function
submitInspectionApi
(
data
:
{
id
:
number
;
version
?:
number
}[],
data
:
{
id
:
number
;
version
?:
number
}[],
...
...
src/components/RenderColumn.vue
View file @
c75f478c
<
template
>
<
template
>
<template
v-if=
"col.subs?.length"
>
<template
v-if=
"col.subs?.length"
>
<ElTableColumn
<ElTableColumn
show-overflow-tooltip
header-align=
"center"
header-align=
"center"
:label=
"col.label"
:label=
"col.label"
:align=
"col.align"
:align=
"col.align"
...
...
src/types/api/podCnOrder.ts
View file @
c75f478c
...
@@ -15,6 +15,7 @@ export interface ExportParams extends SearchForm {
...
@@ -15,6 +15,7 @@ export interface ExportParams extends SearchForm {
export
interface
SearchForm
{
export
interface
SearchForm
{
timeType
?:
number
|
null
timeType
?:
number
|
null
shopNumber
?:
string
shopNumber
?:
string
productMark
?:
string
shipmentType
?:
string
|
number
shipmentType
?:
string
|
number
replaceShipment
?:
string
|
number
replaceShipment
?:
string
|
number
userMark
?:
string
userMark
?:
string
...
@@ -97,6 +98,7 @@ export interface PodCnOrderListData {
...
@@ -97,6 +98,7 @@ export interface PodCnOrderListData {
export
interface
ProductList
{
export
interface
ProductList
{
id
:
number
id
:
number
podJomallOrderCnId
:
number
podJomallOrderCnId
:
number
productMark
?:
string
thirdSubOrderNumber
?:
string
thirdSubOrderNumber
?:
string
thirdStockSku
?:
string
thirdStockSku
?:
string
factorySubOrderNumber
?:
string
factorySubOrderNumber
?:
string
...
...
src/types/api/podMakeOrder.ts
View file @
c75f478c
...
@@ -51,7 +51,7 @@ export interface ProductList {
...
@@ -51,7 +51,7 @@ export interface ProductList {
variantImage
?:
string
variantImage
?:
string
podJomallUsNo
?:
string
podJomallUsNo
?:
string
podJomallCnNo
?:
string
podJomallCnNo
?:
string
previewImgs
?:
{
sort
:
string
|
number
;
title
:
string
;
url
:
string
}[]
previewImgs
?:
{
sort
?:
string
|
number
;
title
?
:
string
;
url
:
string
}[]
}
}
export
interface
LogisticBill
{
export
interface
LogisticBill
{
...
...
src/views/order/podCN/PodMakeOrder.vue
View file @
c75f478c
...
@@ -114,24 +114,26 @@
...
@@ -114,24 +114,26 @@
<
template
#
image=
"{ row }"
>
<
template
#
image=
"{ row }"
>
<div
<div
style=
"display: flex; flex-wrap: nowrap"
style=
"display: flex; flex-wrap: nowrap"
v-if=
"row.previewImgs?.length"
>
>
<div
<div
v-for=
"img in row.pr
eviewImgs
"
v-for=
"img in row.pr
oductMark!=='normal'?row.previewImgs:[
{url:row.variantImage}]
"
:key="img"
:key="img"
@
click
.
stop=
"handleCurrentChange(img.url)"
style="cursor: pointer; margin-right: 5px; flex: 1"
style="cursor: pointer; margin-right: 5px; flex: 1"
@click.stop="handleCurrentChange(img.url)"
>
>
<img
v-if=
"img.url"
:src=
"img.url"
alt=
""
/>
<img
v-if=
"img.url"
:src=
"img.url"
alt=
""
/>
</div>
</div>
</div>
</div>
</
template
>
</
template
>
<
template
#
verifyResult=
"{ row }"
>
<
template
#
verifyResult=
"{ row }"
>
<el-icon
<el-icon
v-if=
"row.power"
v-if=
"row.power"
style=
"color: #00cc00; font-size: 24px; font-weight: 900"
style=
"color: #00cc00; font-size: 24px; font-weight: 900"
><Check
>
/></el-icon>
<Check
/>
</el-icon>
</
template
>
</
template
>
</TableView>
</TableView>
</div>
</div>
...
@@ -185,10 +187,18 @@
...
@@ -185,10 +187,18 @@
<ElButton
<ElButton
type=
"primary"
type=
"primary"
@
click=
"podOrderDetailsData && print(podOrderDetailsData, true)"
@
click=
"podOrderDetailsData && print(podOrderDetailsData, true)"
>
手动打印
</ElButton
>
手动打印
</ElButton
>
<ElButton
type=
"primary"
@
click=
"printNormal"
>
普货拣货
</ElButton
>
>
<ElButton
type=
"success"
@
click=
"handlePrintFinish"
<ElButton
type=
"success"
@
click=
"handlePrintFinish"
>
打单完成
</ElButton
>
打单完成
</ElButton
>
>
<ElButton
type=
"danger"
@
click=
"handleClearBox"
>
清空箱子
</ElButton>
<ElButton
type=
"danger"
@
click=
"handleClearBox"
>
清空箱子
</ElButton>
</div>
</div>
...
@@ -249,12 +259,14 @@ import {
...
@@ -249,12 +259,14 @@ import {
getPackingCnDataApi
,
getPackingCnDataApi
,
clearBoxApi
,
clearBoxApi
,
getPodBoxListApi
,
getPodBoxListApi
,
submitInspectionApi
,
submitInspectionApi
,
printNormalPdf
,
}
from
'@/api/podCnOrder'
}
from
'@/api/podCnOrder'
import
useUserStore
from
'@/store/user'
import
useUserStore
from
'@/store/user'
import
{
Check
}
from
'@element-plus/icons-vue'
import
{
Check
}
from
'@element-plus/icons-vue'
import
socket
from
'@/utils/cnWebsocket'
import
socket
from
'@/utils/cnWebsocket'
import
{
WarehouseListData
}
from
'@/types/api/podUsOrder'
import
{
WarehouseListData
}
from
'@/types/api/podUsOrder'
import
{
ElMessage
}
from
'element-plus'
import
{
filePath
}
from
'@/api/axios.ts'
const
{
getCLodop
}
=
useLodop
()
const
{
getCLodop
}
=
useLodop
()
...
@@ -294,6 +306,7 @@ const podOrderDetailsColumns = computed(() => [
...
@@ -294,6 +306,7 @@ const podOrderDetailsColumns = computed(() => [
{
{
label
:
'生产单号'
,
label
:
'生产单号'
,
prop
:
'podJomallCnNo'
,
prop
:
'podJomallCnNo'
,
showOverflowTooltip
:
true
,
width
:
150
,
width
:
150
,
align
:
'center'
,
align
:
'center'
,
},
},
...
@@ -304,32 +317,46 @@ const podOrderDetailsColumns = computed(() => [
...
@@ -304,32 +317,46 @@ const podOrderDetailsColumns = computed(() => [
// align: 'center',
// align: 'center',
// },
// },
{
{
label
:
'库存SKU'
,
prop
:
'thirdSkuCode'
,
showOverflowTooltip
:
true
,
width
:
180
,
align
:
'center'
,
},
{
label
:
'variant SKU'
,
label
:
'variant SKU'
,
prop
:
'variantSku'
,
prop
:
'variantSku'
,
width
:
140
,
showOverflowTooltip
:
true
,
width
:
150
,
align
:
'center'
,
align
:
'center'
,
},
},
{
{
label
:
'商品名称'
,
label
:
'商品名称'
,
showOverflowTooltip
:
true
,
width
:
200
,
prop
:
'productName'
,
prop
:
'productName'
,
},
},
{
{
label
:
'购买数量'
,
label
:
'购买数量'
,
prop
:
'purchaseNumber'
,
prop
:
'purchaseNumber'
,
width
:
90
,
width
:
90
,
fixed
:
'right'
,
align
:
'center'
,
align
:
'center'
,
},
},
{
{
label
:
'拣货数量'
,
label
:
'拣货数量'
,
prop
:
'count'
,
prop
:
'count'
,
width
:
90
,
width
:
90
,
fixed
:
'right'
,
align
:
'center'
,
align
:
'center'
,
},
},
{
{
label
:
'验证结果'
,
label
:
'验证结果'
,
slot
:
'verifyResult'
,
slot
:
'verifyResult'
,
width
:
90
,
width
:
90
,
fixed
:
'right'
,
align
:
'center'
,
align
:
'center'
,
},
},
])
])
...
@@ -419,7 +446,7 @@ watch(
...
@@ -419,7 +446,7 @@ watch(
(
val
)
=>
{
(
val
)
=>
{
if
(
val
&&
val
.
productList
?.
length
)
if
(
val
&&
val
.
productList
?.
length
)
val
.
productList
.
forEach
((
el
)
=>
{
val
.
productList
.
forEach
((
el
)
=>
{
if
(
!
el
.
previewImgs
)
el
.
previewImgs
=
JSON
.
parse
(
el
.
imageAry
)
if
(
!
el
.
previewImgs
)
el
.
previewImgs
=
JSON
.
parse
(
el
.
imageAry
||
'[]'
)
})
})
},
},
{
deep
:
true
},
{
deep
:
true
},
...
@@ -448,7 +475,7 @@ const renderItemBox = (bool: boolean) => {
...
@@ -448,7 +475,7 @@ const renderItemBox = (bool: boolean) => {
if
(
!
boxItem
)
boxItem
=
{
data
:
{
productList
:
[]
}
}
if
(
!
boxItem
)
boxItem
=
{
data
:
{
productList
:
[]
}
}
const
{
data
}
=
boxItem
const
{
data
}
=
boxItem
data
?.
productList
?.
forEach
((
el
)
=>
{
data
?.
productList
?.
forEach
((
el
)
=>
{
if
(
!
el
.
previewImgs
)
el
.
previewImgs
=
JSON
.
parse
(
el
.
imageAry
)
if
(
!
el
.
previewImgs
)
el
.
previewImgs
=
JSON
.
parse
(
el
.
imageAry
||
'[]'
)
})
})
if
(
!
data
)
{
if
(
!
data
)
{
renderLock
=
false
renderLock
=
false
...
@@ -478,8 +505,6 @@ const renderItemBox = (bool: boolean) => {
...
@@ -478,8 +505,6 @@ const renderItemBox = (bool: boolean) => {
:
parts
[
0
]
:
parts
[
0
]
for
(
const
product
of
productList
)
{
for
(
const
product
of
productList
)
{
if
(
product
.
podJomallCnNo
===
currentCode
)
{
if
(
product
.
podJomallCnNo
===
currentCode
)
{
coverImage
.
value
=
product
.
previewImgs
?.[
0
]?.
url
||
''
nextTick
(()
=>
{
nextTick
(()
=>
{
tableRef
.
value
?.
setCurrentRow
(
product
)
tableRef
.
value
?.
setCurrentRow
(
product
)
})
})
...
@@ -524,6 +549,29 @@ const setPodBoxList = (data: WebSocketMessage) => {
...
@@ -524,6 +549,29 @@ const setPodBoxList = (data: WebSocketMessage) => {
orderStore
.
setPodBoxList
(
parsedData
)
orderStore
.
setPodBoxList
(
parsedData
)
}
}
}
}
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
initPrintDevice
=
()
=>
{
const
initPrintDevice
=
()
=>
{
const
lodop
=
getCLodop
(
null
,
null
)
const
lodop
=
getCLodop
(
null
,
null
)
if
(
!
lodop
)
return
if
(
!
lodop
)
return
...
@@ -683,6 +731,17 @@ const initOrderDetailBox = async () => {
...
@@ -683,6 +731,17 @@ const initOrderDetailBox = async () => {
ElMessage
.
warning
(
res
.
message
)
ElMessage
.
warning
(
res
.
message
)
return
return
}
}
console
.
log
(
res
.
data
)
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
||
'[]'
)
}
})
})
console
.
log
(
res
.
data
)
orderStore
.
setPodBoxList
({
orderStore
.
setPodBoxList
({
boxList
:
res
.
data
,
boxList
:
res
.
data
,
factoryNo
,
factoryNo
,
...
@@ -713,10 +772,6 @@ const initOrderDetailBox = async () => {
...
@@ -713,10 +772,6 @@ const initOrderDetailBox = async () => {
podOrderDetailsData
.
value
=
podOrderDetailsData
.
value
=
boxList
.
find
((
item
)
=>
item
.
data
)?.
data
||
undefined
boxList
.
find
((
item
)
=>
item
.
data
)?.
data
||
undefined
boxIndex
.
value
=
boxList
.
find
((
item
)
=>
item
.
data
)?.
box
||
null
boxIndex
.
value
=
boxList
.
find
((
item
)
=>
item
.
data
)?.
box
||
null
podOrderDetailsData
.
value
?.
productList
?.
forEach
((
el
)
=>
{
if
(
!
el
.
previewImgs
)
el
.
previewImgs
=
JSON
.
parse
(
el
.
imageAry
)
})
coverImage
.
value
=
coverImage
.
value
=
podOrderDetailsData
.
value
?.
productList
?.[
0
]?.
previewImgs
?.[
0
].
url
||
''
podOrderDetailsData
.
value
?.
productList
?.[
0
]?.
previewImgs
?.[
0
].
url
||
''
...
@@ -942,7 +997,8 @@ const print = (data: OrderData, forcePrint = false, callback?: () => void) => {
...
@@ -942,7 +997,8 @@ const print = (data: OrderData, forcePrint = false, callback?: () => void) => {
// }
// }
const
handleRowClick
=
(
row
:
ProductList
)
=>
{
const
handleRowClick
=
(
row
:
ProductList
)
=>
{
console
.
log
(
907
,
row
)
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
()
productionOrderRef
.
value
.
focus
()
}
}
const
handleCurrentChange
=
(
url
:
string
)
=>
{
const
handleCurrentChange
=
(
url
:
string
)
=>
{
...
@@ -979,52 +1035,62 @@ const handleWarehouseChange = (value: string | number) => {
...
@@ -979,52 +1035,62 @@ const handleWarehouseChange = (value: string | number) => {
align-items
:
center
;
align-items
:
center
;
gap
:
10px
;
gap
:
10px
;
}
}
.online
{
.online
{
color
:
green
;
color
:
green
;
font-size
:
14px
;
font-size
:
14px
;
font-weight
:
600
;
font-weight
:
600
;
}
}
.offline
{
.offline
{
color
:
red
;
color
:
red
;
font-size
:
14px
;
font-size
:
14px
;
font-weight
:
600
;
font-weight
:
600
;
}
}
.pod-make-order-content
{
.pod-make-order-content
{
display
:
flex
;
display
:
flex
;
height
:
100%
;
height
:
100%
;
overflow
:
hidden
;
overflow
:
hidden
;
gap
:
10px
;
gap
:
10px
;
}
}
.left-content
{
.left-content
{
display
:
flex
;
display
:
flex
;
flex-direction
:
column
;
flex-direction
:
column
;
gap
:
10px
;
gap
:
10px
;
width
:
calc
(
100%
-
900px
-
20px
);
width
:
calc
(
100%
-
900px
-
20px
);
}
}
.head-form
{
.head-form
{
display
:
flex
;
display
:
flex
;
align-items
:
center
;
align-items
:
center
;
gap
:
10px
;
gap
:
10px
;
}
}
.table-content
{
.table-content
{
flex
:
1
;
flex
:
1
;
overflow
:
hidden
;
overflow
:
hidden
;
}
}
.middle-content
{
.middle-content
{
width
:
500px
;
width
:
500px
;
display
:
flex
;
display
:
flex
;
flex-direction
:
column
;
flex-direction
:
column
;
gap
:
5px
;
gap
:
5px
;
}
}
.right-content
{
.right-content
{
width
:
400px
;
width
:
400px
;
overflow-y
:
auto
;
overflow-y
:
auto
;
overflow-x
:
hidden
;
overflow-x
:
hidden
;
}
}
.basic-info
{
.basic-info
{
display
:
grid
;
display
:
grid
;
grid-template-columns
:
repeat
(
2
,
1
fr
);
grid-template-columns
:
repeat
(
2
,
1
fr
);
gap
:
10px
;
gap
:
10px
;
.basic-info-item
{
.basic-info-item
{
display
:
flex
;
display
:
flex
;
align-items
:
center
;
align-items
:
center
;
...
@@ -1037,6 +1103,7 @@ const handleWarehouseChange = (value: string | number) => {
...
@@ -1037,6 +1103,7 @@ const handleWarehouseChange = (value: string | number) => {
}
}
}
}
}
}
.box-top
{
.box-top
{
position
:
relative
;
position
:
relative
;
border
:
1px
solid
#ddd
;
border
:
1px
solid
#ddd
;
...
@@ -1048,10 +1115,12 @@ const handleWarehouseChange = (value: string | number) => {
...
@@ -1048,10 +1115,12 @@ const handleWarehouseChange = (value: string | number) => {
color
:
#fff
;
color
:
#fff
;
overflow
:
hidden
;
overflow
:
hidden
;
}
}
.multiple-title
{
.multiple-title
{
position
:
absolute
;
position
:
absolute
;
top
:
0
;
top
:
0
;
right
:
0
;
right
:
0
;
&::after
{
&::after
{
position
:
absolute
;
position
:
absolute
;
top
:
-31px
;
top
:
-31px
;
...
@@ -1062,6 +1131,7 @@ const handleWarehouseChange = (value: string | number) => {
...
@@ -1062,6 +1131,7 @@ const handleWarehouseChange = (value: string | number) => {
border-color
:
transparent
transparent
red
transparent
;
border-color
:
transparent
transparent
red
transparent
;
transform
:
rotate
(
45deg
);
transform
:
rotate
(
45deg
);
}
}
.multiple-title-text
{
.multiple-title-text
{
position
:
absolute
;
position
:
absolute
;
z-index
:
2
;
z-index
:
2
;
...
@@ -1069,12 +1139,14 @@ const handleWarehouseChange = (value: string | number) => {
...
@@ -1069,12 +1139,14 @@ const handleWarehouseChange = (value: string | number) => {
left
:
-20px
;
left
:
-20px
;
}
}
}
}
.box-top-item
{
.box-top-item
{
display
:
flex
;
display
:
flex
;
height
:
80px
;
height
:
80px
;
align-items
:
center
;
align-items
:
center
;
margin-bottom
:
10px
;
margin-bottom
:
10px
;
}
}
.box-top-item-box-index
{
.box-top-item-box-index
{
font-size
:
60px
;
font-size
:
60px
;
color
:
red
;
color
:
red
;
...
@@ -1082,10 +1154,12 @@ const handleWarehouseChange = (value: string | number) => {
...
@@ -1082,10 +1154,12 @@ const handleWarehouseChange = (value: string | number) => {
width
:
120px
;
width
:
120px
;
font-weight
:
600
;
font-weight
:
600
;
}
}
.box-top-item-box-index-text
{
.box-top-item-box-index-text
{
margin-right
:
15px
;
margin-right
:
15px
;
font-size
:
30px
;
font-size
:
30px
;
}
}
.box-top-item-box-index-number
{
.box-top-item-box-index-number
{
font-size
:
60px
;
font-size
:
60px
;
color
:
red
;
color
:
red
;
...
@@ -1094,21 +1168,25 @@ const handleWarehouseChange = (value: string | number) => {
...
@@ -1094,21 +1168,25 @@ const handleWarehouseChange = (value: string | number) => {
width
:
90px
;
width
:
90px
;
font-weight
:
600
;
font-weight
:
600
;
}
}
.box-top-item-status
{
.box-top-item-status
{
margin-bottom
:
15px
;
margin-bottom
:
15px
;
}
}
.order-image
{
.order-image
{
flex
:
1
;
flex
:
1
;
overflow
:
hidden
;
overflow
:
hidden
;
border
:
1px
solid
#ddd
;
border
:
1px
solid
#ddd
;
background
:
#eee
;
background
:
#eee
;
}
}
.box-list
{
.box-list
{
display
:
grid
;
display
:
grid
;
grid-template-columns
:
repeat
(
7
,
50px
);
grid-template-columns
:
repeat
(
7
,
50px
);
gap
:
8px
;
gap
:
8px
;
position
:
relative
;
position
:
relative
;
}
}
.box-list-item
{
.box-list-item
{
position
:
relative
;
position
:
relative
;
border
:
1px
solid
#ddd
;
border
:
1px
solid
#ddd
;
...
@@ -1119,10 +1197,12 @@ const handleWarehouseChange = (value: string | number) => {
...
@@ -1119,10 +1197,12 @@ const handleWarehouseChange = (value: string | number) => {
text-align
:
center
;
text-align
:
center
;
box-sizing
:
border-box
;
box-sizing
:
border-box
;
border-radius
:
5px
;
border-radius
:
5px
;
&:not(.isNull)
{
&:not(.isNull)
{
background
:
#819aff
;
background
:
#819aff
;
color
:
#fff
;
color
:
#fff
;
}
}
&
.active
{
&
.active
{
background
:
#ff9900
;
background
:
#ff9900
;
color
:
#fff
;
color
:
#fff
;
...
@@ -1138,6 +1218,7 @@ const handleWarehouseChange = (value: string | number) => {
...
@@ -1138,6 +1218,7 @@ const handleWarehouseChange = (value: string | number) => {
border-radius
:
50%
;
border-radius
:
50%
;
background-color
:
red
;
background-color
:
red
;
}
}
.number
{
.number
{
position
:
absolute
;
position
:
absolute
;
bottom
:
3px
;
bottom
:
3px
;
...
@@ -1157,6 +1238,7 @@ const handleWarehouseChange = (value: string | number) => {
...
@@ -1157,6 +1238,7 @@ const handleWarehouseChange = (value: string | number) => {
flex-direction
:
column
;
flex-direction
:
column
;
height
:
calc
(
100%
-
60px
);
height
:
calc
(
100%
-
60px
);
}
}
.el-dialog__body
{
.el-dialog__body
{
flex
:
1
;
flex
:
1
;
overflow
:
hidden
;
overflow
:
hidden
;
...
...
src/views/order/podCN/index.vue
View file @
c75f478c
...
@@ -129,14 +129,14 @@
...
@@ -129,14 +129,14 @@
</ElFormItem>
</ElFormItem>
<ElFormItem
label=
"类型"
>
<ElFormItem
label=
"类型"
>
<el-radio-group
v-model=
"searchForm.customizedQuantity"
@
click
.
stop=
"(e: Event) => handleRadioGroupClick(e)"
>
<el-radio-group
v-model=
"searchForm.customizedQuantity"
@
click
.
stop=
"(e: Event) => handleRadioGroupClick(e)"
>
<el-radio-button
label
=
"single"
>
单面
</el-radio-button>
<el-radio-button
value
=
"single"
>
单面
</el-radio-button>
<el-radio-button
label
=
"multiple"
>
多面
</el-radio-button>
<el-radio-button
value
=
"multiple"
>
多面
</el-radio-button>
</el-radio-group>
</el-radio-group>
</ElFormItem>
</ElFormItem>
<ElFormItem
label=
"数量"
>
<ElFormItem
label=
"数量"
>
<el-radio-group
v-model=
"searchForm.multi"
@
click
.
stop=
"(e: Event) => handleMultiRadioGroupClick(e)"
>
<el-radio-group
v-model=
"searchForm.multi"
@
click
.
stop=
"(e: Event) => handleMultiRadioGroupClick(e)"
>
<el-radio-button
:
label
=
"false"
>
单件
</el-radio-button>
<el-radio-button
:
value
=
"false"
>
单件
</el-radio-button>
<el-radio-button
:
label
=
"true"
>
多件
</el-radio-button>
<el-radio-button
:
value
=
"true"
>
多件
</el-radio-button>
</el-radio-group>
</el-radio-group>
</ElFormItem>
</ElFormItem>
<ElFormItem>
<ElFormItem>
...
@@ -321,6 +321,25 @@
...
@@ -321,6 +321,25 @@
></ElOption>
></ElOption>
</ElSelect>
</ElSelect>
</ElFormItem>
</ElFormItem>
<ElFormItem
label=
"商品类型"
>
<ElSelect
v-model=
"searchForm.productMark"
placeholder=
"请选择商品类型"
clearable
filterable
collapse-tags
collapse-tags-tooltip
:teleported=
"false"
style=
"width: 150px"
>
<ElOption
v-for=
"(item, index) in productMarkList"
:key=
"index"
:value=
"item.value"
:label=
"item.label"
></ElOption>
</ElSelect>
</ElFormItem>
</ElForm>
</ElForm>
<template
#
reference
>
<template
#
reference
>
<el-button
type=
"warning"
@
click=
"searchVisible = !searchVisible"
>
<el-button
type=
"warning"
@
click=
"searchVisible = !searchVisible"
>
...
@@ -336,7 +355,7 @@
...
@@ -336,7 +355,7 @@
</ElFormItem>
</ElFormItem>
<ElFormItem>
<ElFormItem>
<span>
<span>
<ElButton
link
@
click=
"resetSearchForm"
style=
"font-size: 12px
"
<ElButton
link
style=
"font-size: 12px"
@
click=
"resetSearchForm
"
><span
title=
"重置查询条件"
>
重置
</span></ElButton
><span
title=
"重置查询条件"
>
重置
</span></ElButton
>
>
</span>
</span>
...
@@ -355,32 +374,41 @@
...
@@ -355,32 +374,41 @@
>
>
<ElDropdown>
<ElDropdown>
<el-button
type=
"primary"
>
<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>
</el-button>
<
template
#
dropdown
>
<
template
#
dropdown
>
<ElDropdownMenu>
<ElDropdownMenu>
<ElDropdownItem
<ElDropdownItem
:loading=
"tifDownloadLoading"
:loading=
"tifDownloadLoading"
@
click=
"downloadTif('tiff', 42)"
@
click=
"downloadTif('tiff', 42)"
>
TIF(40+2cm)
</ElDropdownItem
>
TIF(40+2cm)
</ElDropdownItem
>
>
<ElDropdownItem
<ElDropdownItem
:loading=
"tifDownloadLoading"
:loading=
"tifDownloadLoading"
@
click=
"downloadTif('tiff', 60)"
@
click=
"downloadTif('tiff', 60)"
>
TIF(60cm)
</ElDropdownItem
>
TIF(60cm)
</ElDropdownItem
>
>
<ElDropdownItem
<ElDropdownItem
:loading=
"pngDownloadLoading"
:loading=
"pngDownloadLoading"
@
click=
"downloadTif('png', 42)"
@
click=
"downloadTif('png', 42)"
>
PNG(40+2cm)
</ElDropdownItem
>
PNG(40+2cm)
</ElDropdownItem
>
>
<ElDropdownItem
<ElDropdownItem
:loading=
"pngDownloadLoading"
:loading=
"pngDownloadLoading"
@
click=
"downloadTif('png', 60)"
@
click=
"downloadTif('png', 60)"
>
PNG(60cm)
</ElDropdownItem
>
PNG(60cm)
</ElDropdownItem
>
>
</ElDropdownMenu></
template
</ElDropdownMenu>
></ElDropdown
</
template
>
</ElDropdown
>
>
</ElFormItem>
</ElFormItem>
<ElFormItem>
<ElFormItem>
...
@@ -665,6 +693,18 @@
...
@@ -665,6 +693,18 @@
</span>
</span>
<span
<span
v-if=
"
v-if=
"
[
'WAIT_SHIPMENT',
].includes(status)
"
class=
"item"
>
<ElButton
type=
"primary"
@
click=
"printNormal"
>
普货拣货
</ElButton>
</span>
<span
v-if=
"
status === 'STOCK_OUT' ||
status === 'STOCK_OUT' ||
status === 'CREATE_LOGISTICS' ||
status === 'CREATE_LOGISTICS' ||
status === 'TO_BE_ARRANGE' ||
status === 'TO_BE_ARRANGE' ||
...
@@ -910,7 +950,9 @@
...
@@ -910,7 +950,9 @@
"
"
placement=
"bottom"
placement=
"bottom"
>
>
<el-icon
color=
"#E6A23C"
><InfoFilled
/></el-icon>
<el-icon
color=
"#E6A23C"
>
<InfoFilled
/>
</el-icon>
</el-tooltip>
</el-tooltip>
<span
class=
"serial-number"
>
{{
index
+
1
}}
</span>
<span
class=
"serial-number"
>
{{
index
+
1
}}
</span>
</div>
</div>
...
@@ -928,7 +970,7 @@
...
@@ -928,7 +970,7 @@
style=
"display: flex; flex-direction: column"
style=
"display: flex; flex-direction: column"
>
>
<div
<div
v-for=
"img in item.pr
eviewImgs
"
v-for=
"img in item.pr
oductMark!=='normal' ?item.previewImgs:[
{url:item.variantImage}]
"
:key="img"
:key="img"
style="text-align: center"
style="text-align: center"
>
>
...
@@ -1155,7 +1197,7 @@
...
@@ -1155,7 +1197,7 @@
{{
item
.
replenishmentSumNum
||
0
}}
{{
item
.
replenishmentSumNum
||
0
}}
</span>
</span>
<el-button
<el-button
v-if=
"status === 'WAIT_SHIPMENT'"
v-if=
"status === 'WAIT_SHIPMENT'
&& item.productMark!=='normal'
"
link
link
size=
"small"
size=
"small"
type=
"success"
type=
"success"
...
@@ -1173,7 +1215,7 @@
...
@@ -1173,7 +1215,7 @@
{{
item
.
weight
}}
g
{{
item
.
weight
}}
g
</span>
</span>
<el-button
<el-button
v-if=
"status === 'WAIT_SHIPMENT'"
v-if=
"status === 'WAIT_SHIPMENT'
&& item.productMark!=='normal'
"
link
link
size=
"small"
size=
"small"
type=
"warning"
type=
"warning"
...
@@ -1483,7 +1525,7 @@
...
@@ -1483,7 +1525,7 @@
<
/div
>
<
/div
>
<
/template
>
<
/template
>
<
template
#
failReason
=
"{ row
}
"
>
<
template
#
failReason
=
"{ row
}
"
>
<
span
v
-
html
=
"row.failReason"
style
=
"white-space: pre-line
"
><
/span
>
<
span
style
=
"white-space: pre-line"
v
-
html
=
"row.failReason
"
><
/span
>
<
/template
>
<
/template
>
<
template
#
operate
=
"{ row
}
"
>
<
template
#
operate
=
"{ row
}
"
>
<
div
<
div
...
@@ -1650,7 +1692,9 @@
...
@@ -1650,7 +1692,9 @@
"
"
placement
=
"bottom"
placement
=
"bottom"
>
>
<
el
-
icon
color
=
"#E6A23C"
><
InfoFilled
/><
/el-icon
>
<
el
-
icon
color
=
"#E6A23C"
>
<
InfoFilled
/>
<
/el-icon
>
<
/el-tooltip
>
<
/el-tooltip
>
<
el
-
tooltip
<
el
-
tooltip
v
-
if
=
"cardItem.customTagList"
v
-
if
=
"cardItem.customTagList"
...
@@ -1669,24 +1713,25 @@
...
@@ -1669,24 +1713,25 @@
type
=
"primary"
type
=
"primary"
:
title
=
"item.name || ''"
:
title
=
"item.name || ''"
style
=
"margin-bottom: 2px"
style
=
"margin-bottom: 2px"
>
{{
item
.
name
||
''
}}
<
/el-ta
g
>
{{
item
.
name
||
''
}}
<
/el-ta
g
>
>
<
/div
>
<
/div
>
<
/template
>
<
/template
>
<
div
<
div
class
=
"flex
"
v
-
if
=
"cardItem.customTagList?.length
"
ref
=
"tagRefs"
ref
=
"tagRefs"
class
=
"flex"
style
=
"gap: 5px; overflow: hidden"
style
=
"gap: 5px; overflow: hidden"
v
-
if
=
"cardItem.customTagList?.length"
>
>
<
el
-
tag
<
el
-
tag
size
=
"small"
type
=
"primary"
v
-
for
=
"(item, index) in cardItem.customTagList.slice(
v
-
for
=
"(item, index) in cardItem.customTagList.slice(
0,
0,
3,
3,
)"
)"
:
key
=
"index"
:
key
=
"index"
size
=
"small"
type
=
"primary"
><
span
><
span
style
=
"
style
=
"
width: 50px;
width: 50px;
...
@@ -1701,17 +1746,18 @@
...
@@ -1701,17 +1746,18 @@
><
/el-ta
g
><
/el-ta
g
>
>
<
el
-
tag
<
el
-
tag
v
-
if
=
"cardItem.customTagList?.slice(3)?.length"
size
=
"small"
size
=
"small"
type
=
"primary"
type
=
"primary"
v
-
if
=
"cardItem.customTagList?.slice(3)?.length"
>+
{{
cardItem
.
customTagList
.
slice
(
3
).
length
}}
>+
{{
cardItem
.
customTagList
.
slice
(
3
).
length
}}
<
/el-ta
g
<
/el-ta
g
>
>
<
/div
>
<
/div
>
<
/el-tooltip
>
<
/el-tooltip
>
<
/template
>
<
/template
>
<
template
<
template
#
top_right
v
-
if
=
"['ZPZY', 'CXZY', 'THZY'].includes(cardItem.craftCode as string)"
v
-
if
=
"['ZPZY', 'CXZY', 'THZY'].includes(cardItem.craftCode as string)"
#
top_right
>
>
<
img
<
img
:
src
=
"`/images/pic/${cardItem.craftCode
}
.png`"
:
src
=
"`/images/pic/${cardItem.craftCode
}
.png`"
...
@@ -1744,8 +1790,8 @@
...
@@ -1744,8 +1790,8 @@
<
/div
>
<
/div
>
<
Icon
<
Icon
name
=
"caozuorizhi"
name
=
"caozuorizhi"
@
click
=
"(e: MouseEvent) => operationLog(cardItem.podJomallOrderCnId, e)"
style
=
"width: 28px; height: 28px"
style
=
"width: 28px; height: 28px"
@
click
=
"(e: MouseEvent) => operationLog(cardItem.podJomallOrderCnId, e)"
>
>
<
template
#
title
>
<
template
#
title
>
<
title
>
操作日志
<
/title
>
<
title
>
操作日志
<
/title
>
...
@@ -1759,7 +1805,7 @@
...
@@ -1759,7 +1805,7 @@
<
/template
>
<
/template
>
<
template
#
images
>
<
template
#
images
>
<
div
class
=
"flex-between"
>
<
div
class
=
"flex-between"
>
<
div
v
-
if
=
"cardItem.imageAry"
class
=
"images-position"
>
<
div
v
-
if
=
"cardItem.imageAry
"
class
=
"images-position"
>
<
div
<
div
v
-
for
=
"(item, index) in JSON.parse(
v
-
for
=
"(item, index) in JSON.parse(
cardItem.imageAry || '',
cardItem.imageAry || '',
...
@@ -2389,7 +2435,8 @@
...
@@ -2389,7 +2435,8 @@
typesettingVisible = false
typesettingVisible = false
}
}
"
"
>
取消
<
/el-butto
n
>
取消
<
/el-butto
n
>
>
<
el
-
button
type
=
"primary"
@
click
=
"submitTypesetting"
>
确认
<
/el-button
>
<
el
-
button
type
=
"primary"
@
click
=
"submitTypesetting"
>
确认
<
/el-button
>
<
/template
>
<
/template
>
...
@@ -2400,6 +2447,7 @@ import { getUserMarkList } from '@/api/common'
...
@@ -2400,6 +2447,7 @@ import { getUserMarkList } from '@/api/common'
// import
{
AnyObject
}
from
'@/types/api/warehouse'
// import
{
AnyObject
}
from
'@/types/api/warehouse'
import
{
import
{
InfoFilled
,
InfoFilled
,
Close
,
CaretBottom
,
CaretBottom
,
CaretTop
,
CaretTop
,
ArrowDown
,
ArrowDown
,
...
@@ -2455,7 +2503,7 @@ import {
...
@@ -2455,7 +2503,7 @@ import {
printPickPdfByBatchNumberApi
,
printPickPdfByBatchNumberApi
,
printProductionPdfByBatchNumberApi
,
printProductionPdfByBatchNumberApi
,
batchDownloadRecomposingApi
,
batchDownloadRecomposingApi
,
getCustomTagListCnApi
,
getCustomTagListCnApi
,
printNormalPdf
,
}
from
'@/api/podCnOrder'
}
from
'@/api/podCnOrder'
import
{
BaseRespData
}
from
'@/types/api'
import
{
BaseRespData
}
from
'@/types/api'
...
@@ -2484,7 +2532,7 @@ import usePageList from '@/utils/hooks/usePageList'
...
@@ -2484,7 +2532,7 @@ import usePageList from '@/utils/hooks/usePageList'
import
{
useValue
}
from
'@/utils/hooks/useValue'
import
{
useValue
}
from
'@/utils/hooks/useValue'
import
{
showConfirm
}
from
'@/utils/ui'
import
{
showConfirm
}
from
'@/utils/ui'
import
{
DocumentCopy
,
EditPen
}
from
'@element-plus/icons-vue'
import
{
DocumentCopy
,
EditPen
}
from
'@element-plus/icons-vue'
import
{
Column
,
ElFormItem
}
from
'element-plus'
import
{
Column
,
ElFormItem
,
ElMessage
}
from
'element-plus'
import
{
computed
,
onMounted
,
ref
,
nextTick
,
reactive
}
from
'vue'
import
{
computed
,
onMounted
,
ref
,
nextTick
,
reactive
}
from
'vue'
import
FastProduction
from
'./FastProduction.vue'
import
FastProduction
from
'./FastProduction.vue'
import
{
filePath
}
from
'@/api/axios'
import
{
filePath
}
from
'@/api/axios'
...
@@ -2505,10 +2553,11 @@ import {
...
@@ -2505,10 +2553,11 @@ import {
type
NavigationGuardNext
,
type
NavigationGuardNext
,
type
RouteLocationNormalized
,
type
RouteLocationNormalized
,
}
from
'vue-router'
}
from
'vue-router'
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
[]
}
...
@@ -2626,6 +2675,21 @@ const confirmDialogShow = ref(false)
...
@@ -2626,6 +2675,21 @@ const confirmDialogShow = ref(false)
const
tifDownloadLoading
=
ref
(
false
)
const
tifDownloadLoading
=
ref
(
false
)
const
pngDownloadLoading
=
ref
(
false
)
const
pngDownloadLoading
=
ref
(
false
)
const
confirmData
=
ref
([])
const
confirmData
=
ref
([])
const
productMarkList
=
[
{
label
:
'普通商品'
,
value
:
'normal'
,
}
,
{
label
:
'pod商品'
,
value
:
'pod'
,
}
,
{
label
:
'一件定制局部印'
,
value
:
'custom_part'
,
}
,
{
label
:
'一件定制满印'
,
value
:
'custom_full'
,
}
,
]
const
searchVisible
=
ref
(
false
)
const
searchVisible
=
ref
(
false
)
const
confirmSelectionData
=
ref
<
LogisticsData
[]
>
([])
const
confirmSelectionData
=
ref
<
LogisticsData
[]
>
([])
const
confirmRowData
=
ref
<
ProductList
|
null
>
(
null
)
const
confirmRowData
=
ref
<
ProductList
|
null
>
(
null
)
...
@@ -2636,6 +2700,7 @@ const [searchForm, resetSearchForm] = useValue<SearchForm>({
...
@@ -2636,6 +2700,7 @@ const [searchForm, resetSearchForm] = useValue<SearchForm>({
timeType
:
1
,
timeType
:
1
,
shopNumber
:
''
,
shopNumber
:
''
,
replaceShipment
:
''
,
replaceShipment
:
''
,
productMark
:
''
,
shipmentType
:
''
,
shipmentType
:
''
,
userMark
:
''
,
userMark
:
''
,
processNumber
:
''
,
processNumber
:
''
,
...
@@ -2811,6 +2876,29 @@ const handleExceptionConfirm = async () => {
...
@@ -2811,6 +2876,29 @@ const handleExceptionConfirm = async () => {
loading
.
close
()
loading
.
close
()
}
}
}
}
const
printNormal
=
async
()
=>
{
await
showConfirm
(
'确定普货拣货吗?'
,
{
confirmButtonText
:
'确认'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
,
}
)
const
arr
:
(
number
|
undefined
)[]
=
[]
if
(
!
selection
.
value
.
length
)
{
return
ElMessage
.
warning
(
'请选择订单'
)
}
selection
.
value
.
forEach
(
s
=>
{
const
f
=
s
.
productList
&&
s
.
productList
.
find
(
p
=>
p
.
productMark
===
'normal'
)
if
(
f
)
arr
.
push
(
s
.
id
)
}
)
if
(
!
arr
.
length
)
{
ElMessage
.
warning
(
'暂无可打印的普货拣货单'
)
return
}
const
res
=
await
printNormalPdf
(
arr
.
join
())
ElMessage
.
success
(
'操作成功'
)
window
.
open
(
filePath
+
res
.
message
)
}
const
completeDelivery
=
async
()
=>
{
const
completeDelivery
=
async
()
=>
{
if
(
selection
.
value
.
length
===
0
)
{
if
(
selection
.
value
.
length
===
0
)
{
return
ElMessage
.
warning
(
'请选择订单'
)
return
ElMessage
.
warning
(
'请选择订单'
)
...
@@ -3571,6 +3659,7 @@ const confirmRules = reactive({
...
@@ -3571,6 +3659,7 @@ const confirmRules = reactive({
}
,
}
,
],
],
}
)
}
)
//确认生产
//确认生产
function
confirmProduct
()
{
function
confirmProduct
()
{
if
(
selection
.
value
.
length
===
0
)
{
if
(
selection
.
value
.
length
===
0
)
{
...
@@ -3579,6 +3668,7 @@ function confirmProduct() {
...
@@ -3579,6 +3668,7 @@ function confirmProduct() {
confirmManuShow
.
value
=
true
confirmManuShow
.
value
=
true
confirmFormRef
.
value
.
resetFields
()
confirmFormRef
.
value
.
resetFields
()
}
}
async
function
confirmSubmit
()
{
async
function
confirmSubmit
()
{
try
{
try
{
await
confirmFormRef
.
value
.
validate
()
await
confirmFormRef
.
value
.
validate
()
...
@@ -3617,6 +3707,7 @@ async function confirmSubmit() {
...
@@ -3617,6 +3707,7 @@ async function confirmSubmit() {
ElMessage
.
success
(
'操作成功'
)
ElMessage
.
success
(
'操作成功'
)
confirmManuShow
.
value
=
false
confirmManuShow
.
value
=
false
}
}
const
handleConfirm
=
async
()
=>
{
const
handleConfirm
=
async
()
=>
{
if
(
!
productionClientValue
.
value
)
{
if
(
!
productionClientValue
.
value
)
{
return
ElMessage
.
warning
(
'请选择生产端'
)
return
ElMessage
.
warning
(
'请选择生产端'
)
...
@@ -4855,6 +4946,7 @@ const getCustomTagList = async () => {
...
@@ -4855,6 +4946,7 @@ const getCustomTagList = async () => {
function
tooltipContent
(
arr
:
{
name
:
string
}
[])
{
function
tooltipContent
(
arr
:
{
name
:
string
}
[])
{
return
arr
.
map
((
tag
)
=>
tag
.
name
).
join
(
'、'
)
return
arr
.
map
((
tag
)
=>
tag
.
name
).
join
(
'、'
)
}
}
const
expressSheetUpload
=
async
(
file
:
File
)
=>
{
const
expressSheetUpload
=
async
(
file
:
File
)
=>
{
const
fm
=
new
FormData
()
const
fm
=
new
FormData
()
fm
.
append
(
'file'
,
file
)
fm
.
append
(
'file'
,
file
)
...
@@ -5172,6 +5264,7 @@ useRouter().beforeEach((to, from, next) => {
...
@@ -5172,6 +5264,7 @@ useRouter().beforeEach((to, from, next) => {
// width: 100px;
// width: 100px;
// height: 100px;
// height: 100px;
position
:
relative
;
position
:
relative
;
img
{
img
{
width
:
65
%
;
width
:
65
%
;
}
}
...
@@ -5218,6 +5311,7 @@ useRouter().beforeEach((to, from, next) => {
...
@@ -5218,6 +5311,7 @@ useRouter().beforeEach((to, from, next) => {
height
:
100
%
;
height
:
100
%
;
overflow
-
y
:
auto
;
overflow
-
y
:
auto
;
}
}
.
tabs
-
node_count
{
.
tabs
-
node_count
{
display
:
inline
-
block
;
display
:
inline
-
block
;
min
-
width
:
20
px
;
min
-
width
:
20
px
;
...
@@ -5252,19 +5346,23 @@ useRouter().beforeEach((to, from, next) => {
...
@@ -5252,19 +5346,23 @@ useRouter().beforeEach((to, from, next) => {
.
card
-
list
-
item
{
.
card
-
list
-
item
{
cursor
:
pointer
;
cursor
:
pointer
;
.
flex
-
between
{
.
flex
-
between
{
display
:
flex
;
display
:
flex
;
justify
-
content
:
space
-
between
;
justify
-
content
:
space
-
between
;
align
-
items
:
center
;
align
-
items
:
center
;
.
images
-
position
{
.
images
-
position
{
display
:
flex
;
display
:
flex
;
height
:
30
px
;
height
:
30
px
;
gap
:
10
px
;
gap
:
10
px
;
.
item
-
image
{
.
item
-
image
{
width
:
30
px
;
width
:
30
px
;
height
:
30
px
;
height
:
30
px
;
border
:
1
px
solid
#
909399
;
border
:
1
px
solid
#
909399
;
cursor
:
pointer
;
cursor
:
pointer
;
img
{
img
{
width
:
100
%
;
width
:
100
%
;
height
:
100
%
;
height
:
100
%
;
...
@@ -5272,11 +5370,13 @@ useRouter().beforeEach((to, from, next) => {
...
@@ -5272,11 +5370,13 @@ useRouter().beforeEach((to, from, next) => {
}
}
}
}
}
}
b
{
b
{
margin
-
right
:
5
px
;
margin
-
right
:
5
px
;
font
-
size
:
15
px
;
font
-
size
:
15
px
;
}
}
}
}
.
flex
-
row
{
.
flex
-
row
{
display
:
flex
;
display
:
flex
;
flex
-
direction
:
row
;
flex
-
direction
:
row
;
...
@@ -5433,11 +5533,13 @@ useRouter().beforeEach((to, from, next) => {
...
@@ -5433,11 +5533,13 @@ useRouter().beforeEach((to, from, next) => {
font
-
size
:
15
px
;
font
-
size
:
15
px
;
}
}
}
}
.
orderNumber
{
.
orderNumber
{
display
:
flex
;
display
:
flex
;
align
-
items
:
center
;
align
-
items
:
center
;
justify
-
content
:
flex
-
start
;
justify
-
content
:
flex
-
start
;
}
}
.
customizedQuantity
{
.
customizedQuantity
{
height
:
28
px
;
height
:
28
px
;
width
:
28
px
;
width
:
28
px
;
...
@@ -5451,6 +5553,7 @@ useRouter().beforeEach((to, from, next) => {
...
@@ -5451,6 +5553,7 @@ useRouter().beforeEach((to, from, next) => {
font
-
weight
:
700
;
font
-
weight
:
700
;
box
-
sizing
:
border
-
box
;
box
-
sizing
:
border
-
box
;
}
}
.
triangle
-
box
{
.
triangle
-
box
{
position
:
absolute
;
position
:
absolute
;
top
:
0
;
top
:
0
;
...
...
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