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
0eb970c3
Commit
0eb970c3
authored
Mar 18, 2025
by
qinjianhui
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
fix: 完成发货
parent
dbcad4dc
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
166 additions
and
2 deletions
+166
-2
src/api/podOrder.ts
+10
-0
src/types/api/order.ts
+1
-0
src/views/order/Shipment.vue
+18
-1
src/views/order/pod/index.vue
+137
-1
No files found.
src/api/podOrder.ts
View file @
0eb970c3
...
...
@@ -213,3 +213,13 @@ export function getWaitShipmentCount(
},
)
}
// 完成发货
export
function
completeDeliveryApi
(
productIdList
:
number
[],
data
:
ShipmentForm
,
)
{
return
axios
.
post
<
never
,
BaseRespData
<
never
>>
(
'factory/podJomallOrder/completeDelivery '
,
{
productIdList
,
...
data
},
)
}
src/types/api/order.ts
View file @
0eb970c3
...
...
@@ -108,6 +108,7 @@ export interface ProductList {
factorySubOrderNumber
?:
string
podOrderId
?:
number
|
string
isProduction
?:
boolean
imageAry
?:
string
}
export
interface
MemoList
{
...
...
src/views/order/Shipment.vue
View file @
0eb970c3
...
...
@@ -180,9 +180,18 @@
</div>
</div>
<div
v-if=
"currentRow"
class=
"shipment-order-detail_info"
>
<div
class=
"shipment-order-detail_info_image"
>
<div
v-if=
"!currentRow.imageAry"
class=
"shipment-order-detail_info_image"
>
<img
:src=
"currentRow.variantImage"
style=
"width: 100%"
/>
</div>
<div
v-else
class=
"shipment-order-detail_info_image-list"
>
<div
v-for=
"item in JSON.parse(currentRow.imageAry)"
:key=
"item"
class=
"shipment-order-detail_info_image-list-item"
>
<img
:src=
"item.url"
style=
"width: 100%"
/>
</div>
</div>
<div
class=
"shipment-order-detail_info_other"
>
<div
class=
"order-norm"
>
<span
class=
"order-norm-label"
style=
"margin-right: 6px"
>
...
...
@@ -446,4 +455,12 @@ const calculateTotals = (ee: OrderData) => {
font-weight
:
bold
;
}
}
.shipment-order-detail_info_image-list
{
height
:
100%
;
overflow
:
auto
;
border
:
1px
solid
#eee
;
.
shipment-order-detail_info_image-list-item
:
not
(:
last-child
)
{
border-bottom
:
1px
solid
#eee
;
}
}
</
style
>
src/views/order/pod/index.vue
View file @
0eb970c3
...
...
@@ -185,6 +185,9 @@
>
<
ElButton
type
=
"success"
@
click
=
"confirmDelivery"
>
发货
<
/ElButton
>
<
/span
>
<
span
v
-
if
=
"status === 'WAIT_SHIPMENT'"
class
=
"item"
>
<
ElButton
type
=
"warning"
@
click
=
"completeDelivery"
>
完成发货
<
/ElButton
>
<
/span
>
<
span
v
-
if
=
"status === 'IN_PRODUCTION'"
class
=
"item"
>
<
ElButton
type
=
"danger"
@
click
=
"voidedBtn"
>
作废
<
/ElButton
>
<
/span
>
...
...
@@ -913,6 +916,68 @@
:
table
-
right
-
menu
-
visible
=
"tableRightMenuVisible"
@
on
-
copy
-
change
=
"onCopyChange"
/>
<
el
-
dialog
v
-
model
=
"completeShipmentVisible"
title
=
"完成发货"
width
=
"600px"
:
close
-
on
-
click
-
modal
=
"false"
>
<
el
-
form
ref
=
"completeShipmentFormRef"
:
model
=
"completeShipmentForm"
:
rules
=
"completeShipmentRules"
label
-
width
=
"100px"
>
<
el
-
form
-
item
label
=
"发货方式"
prop
=
"shippingWay"
>
<
el
-
select
v
-
model
=
"completeShipmentForm.shippingWay"
placeholder
=
"请选择发货方式"
style
=
"width: 100%"
>
<
el
-
option
label
=
"送货上门"
value
=
"1"
/>
<
el
-
option
label
=
"快递"
value
=
"2"
/>
<
/el-select
>
<
/el-form-item
>
<
template
v
-
if
=
"completeShipmentForm.shippingWay === '2'"
>
<
el
-
form
-
item
label
=
"物流名称"
prop
=
"carriageName"
>
<
el
-
select
v
-
model
=
"completeShipmentForm.carriageName"
filterable
placeholder
=
"请选择物流名称"
style
=
"width: 100%"
>
<
el
-
option
v
-
for
=
"item in logisticsCompanyList"
:
key
=
"item.id"
:
value
=
"item.name"
/>
<
/el-select
>
<
/el-form-item
>
<
el
-
form
-
item
label
=
"物流跟踪号"
prop
=
"logisticsTracking"
>
<
el
-
input
v
-
model
=
"completeShipmentForm.logisticsTracking"
placeholder
=
"请输入物流跟踪号"
/>
<
/el-form-item
>
<
el
-
form
-
item
label
=
"物流费用"
prop
=
"carriageAmount"
>
<
el
-
input
v
-
model
=
"completeShipmentForm.carriageAmount"
placeholder
=
"请输入物流费用"
/>
<
/el-form-item
>
<
/template
>
<
/el-form
>
<
template
#
footer
>
<
div
class
=
"dialog-footer"
>
<
el
-
button
@
click
=
"completeShipmentVisible = false"
>
取消
<
/el-button
>
<
el
-
button
type
=
"primary"
@
click
=
"saveCompleteShipment"
>
确认
<
/el-button
>
<
/div
>
<
/template
>
<
/el-dialog
>
<
/template
>
<
script
setup
lang
=
"tsx"
>
// refreshJMProductInfo,reasonInvalidationApi,
...
...
@@ -935,6 +1000,7 @@ import {
refreshJMProductInfo
,
reasonInvalidationApi
,
applyForReplenishmentApi
,
completeDeliveryApi
,
}
from
'@/api/podOrder'
import
TableView
from
'@/components/TableView.vue'
import
{
...
...
@@ -947,7 +1013,14 @@ import fastProduction from '../fastProduction.vue'
import
CardWrapper
from
'@/components/CardPods.vue'
import
{
CustomColumn
}
from
'@/types/table'
import
{
useValue
}
from
'@/utils/hooks/useValue'
import
{
computed
,
onBeforeUnmount
,
onMounted
,
reactive
,
ref
}
from
'vue'
import
{
computed
,
nextTick
,
onBeforeUnmount
,
onMounted
,
reactive
,
ref
,
}
from
'vue'
import
dayjs
from
'dayjs'
import
useElTableColumnWidth
from
'@/utils/hooks/useElTableColumnWidth'
import
ProductInfo
from
'../ProductInfo.vue'
...
...
@@ -1926,6 +1999,69 @@ const handleContextMenu = (e: MouseEvent) => {
const
listenerClick
=
()
=>
{
tableRightMenuVisible
.
value
=
false
}
const
completeShipmentVisible
=
ref
(
false
)
const
completeShipmentForm
=
ref
({
shippingWay
:
''
,
// 发货方式:1-送货上门,2-快递
carriageName
:
''
,
// 物流名称
logisticsTracking
:
''
,
// 物流跟踪号
carriageAmount
:
''
,
// 物流费用
}
)
// 表单校验规则
const
completeShipmentRules
=
{
shippingWay
:
[
{
required
:
true
,
message
:
'请选择发货方式'
,
trigger
:
'change'
}
,
],
carriageName
:
[
{
required
:
true
,
message
:
'请选择物流名称'
,
trigger
:
'change'
}
,
],
logisticsTracking
:
[
{
required
:
true
,
message
:
'请输入物流跟踪号'
,
trigger
:
'blur'
}
,
],
carriageAmount
:
[
{
required
:
true
,
message
:
'请输入物流费用'
,
trigger
:
'blur'
}
,
],
}
const
completeShipmentFormRef
=
ref
()
const
completeDelivery
=
async
()
=>
{
if
(
selection
.
value
.
length
===
0
)
{
ElMessage
.
warning
(
'请选择要完成发货的订单'
)
return
}
completeShipmentForm
.
value
=
{
shippingWay
:
'1'
,
carriageName
:
''
,
logisticsTracking
:
''
,
carriageAmount
:
''
,
}
completeShipmentVisible
.
value
=
true
await
nextTick
()
completeShipmentFormRef
.
value
&&
completeShipmentFormRef
.
value
.
clearValidate
()
}
const
saveCompleteShipment
=
async
()
=>
{
try
{
await
completeShipmentFormRef
.
value
.
validate
()
}
catch
(
e
)
{
return
}
const
productIdList
=
selection
.
value
.
map
(
(
item
:
CardOrderData
|
PodProductList
)
=>
item
.
id
,
)
try
{
const
res
=
await
completeDeliveryApi
(
productIdList
,
{
...
completeShipmentForm
.
value
,
}
)
ElMessage
.
success
(
res
.
message
)
completeShipmentVisible
.
value
=
false
loadTabData
()
loadDiffList
()
}
catch
(
e
)
{
console
.
error
(
e
)
}
}
onMounted
(()
=>
{
document
.
addEventListener
(
'keydown'
,
listenerKeydown
)
document
.
addEventListener
(
'click'
,
listenerClick
)
...
...
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