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
71d29a4a
Commit
71d29a4a
authored
Oct 11, 2025
by
zhuzhequan
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' into 'master'
Dev See merge request
!88
parents
ae73ff91
9bbaad08
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
244 additions
and
52 deletions
+244
-52
src/api/podCnOrder.ts
+8
-0
src/components/RenderColumn.vue
+2
-1
src/components/TableView.vue
+1
-0
src/types/api/podCnOrder.ts
+2
-0
src/types/api/podMakeOrder.ts
+1
-1
src/views/order/podCN/PodMakeOrder.vue
+95
-18
src/views/order/podCN/index.vue
+135
-32
No files found.
src/api/podCnOrder.ts
View file @
71d29a4a
...
@@ -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 @
71d29a4a
<
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"
...
@@ -31,7 +32,7 @@
...
@@ -31,7 +32,7 @@
</
template
>
</
template
>
</ElTableColumn>
</ElTableColumn>
</template>
</template>
<ElTableColumn
v-else
header-align=
"center"
v-bind=
"col"
>
<ElTableColumn
show-overflow-tooltip
v-else
header-align=
"center"
v-bind=
"col"
>
<
template
#
header=
"{ column, $index }"
>
<
template
#
header=
"{ column, $index }"
>
<component
<component
:is=
"() => col.headerRender(column, $index)"
:is=
"() => col.headerRender(column, $index)"
...
...
src/components/TableView.vue
View file @
71d29a4a
...
@@ -32,6 +32,7 @@
...
@@ -32,6 +32,7 @@
></ElTableColumn>
></ElTableColumn>
<template
v-for=
"column in columns"
:key=
"column.key"
>
<template
v-for=
"column in columns"
:key=
"column.key"
>
<ElTableColumn
<ElTableColumn
show-overflow-tooltip
v-if=
"column.type === 'expand'"
v-if=
"column.type === 'expand'"
v-bind=
"column"
v-bind=
"column"
header-align=
"center"
header-align=
"center"
...
...
src/types/api/podCnOrder.ts
View file @
71d29a4a
...
@@ -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 @
71d29a4a
...
@@ -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 @
71d29a4a
...
@@ -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
()
...
@@ -304,13 +316,20 @@ const podOrderDetailsColumns = computed(() => [
...
@@ -304,13 +316,20 @@ const podOrderDetailsColumns = computed(() => [
// align: 'center',
// align: 'center',
// },
// },
{
{
label
:
'库存SKU'
,
prop
:
'thirdSkuCode'
,
width
:
180
,
align
:
'center'
,
},
{
label
:
'variant SKU'
,
label
:
'variant SKU'
,
prop
:
'variantSku'
,
prop
:
'variantSku'
,
width
:
1
4
0
,
width
:
1
5
0
,
align
:
'center'
,
align
:
'center'
,
},
},
{
{
label
:
'商品名称'
,
label
:
'商品名称'
,
width
:
200
,
prop
:
'productName'
,
prop
:
'productName'
,
},
},
...
@@ -318,18 +337,21 @@ const podOrderDetailsColumns = computed(() => [
...
@@ -318,18 +337,21 @@ const podOrderDetailsColumns = computed(() => [
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'
,
},
},
])
])
...
@@ -418,7 +440,7 @@ watch(
...
@@ -418,7 +440,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
},
...
@@ -447,7 +469,7 @@ const renderItemBox = (bool: boolean) => {
...
@@ -447,7 +469,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
...
@@ -477,8 +499,6 @@ const renderItemBox = (bool: boolean) => {
...
@@ -477,8 +499,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
)
})
})
...
@@ -523,6 +543,29 @@ const setPodBoxList = (data: WebSocketMessage) => {
...
@@ -523,6 +543,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
...
@@ -682,6 +725,17 @@ const initOrderDetailBox = async () => {
...
@@ -682,6 +725,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
,
...
@@ -712,10 +766,6 @@ const initOrderDetailBox = async () => {
...
@@ -712,10 +766,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
||
''
...
@@ -941,7 +991,8 @@ const print = (data: OrderData, forcePrint = false, callback?: () => void) => {
...
@@ -941,7 +991,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
)
=>
{
...
@@ -978,52 +1029,62 @@ const handleWarehouseChange = (value: string | number) => {
...
@@ -978,52 +1029,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
;
...
@@ -1036,6 +1097,7 @@ const handleWarehouseChange = (value: string | number) => {
...
@@ -1036,6 +1097,7 @@ const handleWarehouseChange = (value: string | number) => {
}
}
}
}
}
}
.box-top
{
.box-top
{
position
:
relative
;
position
:
relative
;
border
:
1px
solid
#ddd
;
border
:
1px
solid
#ddd
;
...
@@ -1047,10 +1109,12 @@ const handleWarehouseChange = (value: string | number) => {
...
@@ -1047,10 +1109,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
;
...
@@ -1061,6 +1125,7 @@ const handleWarehouseChange = (value: string | number) => {
...
@@ -1061,6 +1125,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
;
...
@@ -1068,12 +1133,14 @@ const handleWarehouseChange = (value: string | number) => {
...
@@ -1068,12 +1133,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
;
...
@@ -1081,10 +1148,12 @@ const handleWarehouseChange = (value: string | number) => {
...
@@ -1081,10 +1148,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
;
...
@@ -1093,21 +1162,25 @@ const handleWarehouseChange = (value: string | number) => {
...
@@ -1093,21 +1162,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
;
...
@@ -1118,10 +1191,12 @@ const handleWarehouseChange = (value: string | number) => {
...
@@ -1118,10 +1191,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
;
...
@@ -1137,6 +1212,7 @@ const handleWarehouseChange = (value: string | number) => {
...
@@ -1137,6 +1212,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
;
...
@@ -1156,6 +1232,7 @@ const handleWarehouseChange = (value: string | number) => {
...
@@ -1156,6 +1232,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 @
71d29a4a
...
@@ -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