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
8c4e01eb
Commit
8c4e01eb
authored
Jun 17, 2025
by
zhuzhequan
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
podus修改
parent
19a166e9
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
262 additions
and
11 deletions
+262
-11
src/api/podUsOrder.ts
+33
-3
src/types/api/podUsOrder.ts
+1
-0
src/views/order/podUs/components/updateAddress.vue
+100
-0
src/views/order/podUs/index.vue
+128
-8
No files found.
src/api/podUsOrder.ts
View file @
8c4e01eb
...
...
@@ -18,6 +18,38 @@ export interface LogisticsData {
partition
:
string
// 所在分区
logisticsWayId
?:
number
|
null
}
export
interface
AddressInfo
{
id
?:
string
receiverName
:
string
,
receiverPhone
:
string
,
receiverCountry
:
string
,
receiverProvince
:
string
,
receiverCity
:
string
,
receiverDistrict
:
string
,
receiverAddress1
:
string
,
receiverAddress2
:
string
,
receiverPostCode
:
string
,
}
// 同步收货地址
export
function
syncReceiverAddress
(
data
:
number
[])
{
return
axios
.
post
<
never
,
BaseRespData
<
never
>>
(
'factory/podJomallOrderUs/syncReceiverAddress'
,
data
,
)
}
export
function
refreshAddressApi
(
idList
:
number
[])
{
return
axios
.
post
<
never
,
BaseRespData
<
never
>>
(
'factory/podJomallOrderUs/syncReceiverAddress'
,
idList
,
)
}
export
function
updateAddressApi
(
data
:
PodUsOrderListData
)
{
return
axios
.
post
<
never
,
BaseRespData
<
never
>>
(
'factory/podJomallOrderUs/updateReceiverAddress'
,
data
,
)
}
export
function
getOrderTabData
()
{
return
axios
.
get
<
never
,
BaseRespData
<
Tab
[]
>>
(
'/factory/podJomallOrderUs/findStateGroupList'
,
...
...
@@ -311,9 +343,7 @@ export function createLogisticsOrderApi(params: {
export
function
composingDesignImages
(
data
:
number
[])
{
return
axios
.
post
<
never
,
BaseRespData
<
never
>>
(
'factory/podJomallOrderUs/composingDesignImages'
,
data
,{
responseType
:
'blob'
,
// 设置响应类型为 Blob(处理二进制流)
}
data
)
}
// 转至待拣胚
...
...
src/types/api/podUsOrder.ts
View file @
8c4e01eb
...
...
@@ -6,6 +6,7 @@ export interface Tab {
export
interface
SearchForm
{
timeType
:
number
|
null
shopNumber
:
string
shipmentType
:
string
userMark
:
string
logisticsTracking
:
string
baseSku
:
string
...
...
src/views/order/podUs/components/updateAddress.vue
0 → 100644
View file @
8c4e01eb
<
script
setup
lang=
"ts"
>
import
{
defineModel
}
from
'vue'
import
{
updateAddressApi
,
AddressInfo
}
from
'@/api/podUsOrder.ts'
const
emits
=
defineEmits
([
'success'
])
defineProps
<
{
countryList
:
{
countryCode
:
string
}[]
}
>
()
const
visible
=
defineModel
<
boolean
>
(
'visible'
)
const
form
=
defineModel
<
AddressInfo
>
(
'form'
,
{
default
:
{
receiverName
:
''
,
receiverPhone
:
''
,
receiverCountry
:
''
,
receiverProvince
:
''
,
receiverCity
:
''
,
receiverDistrict
:
''
,
receiverAddress1
:
''
,
receiverAddress2
:
''
,
receiverPostCode
:
''
,
},
})
const
formRef
=
ref
()
const
rules
=
{
receiverName
:
[{
required
:
true
,
message
:
'请输入姓名'
,
trigger
:
'blur'
}],
receiverPhone
:
[{
required
:
true
,
message
:
'请输入电话'
,
trigger
:
'blur'
}],
receiverCountry
:
[{
required
:
true
,
message
:
'请输入国家'
,
trigger
:
'blur'
}],
receiverProvince
:
[{
required
:
true
,
message
:
'请输入省/州'
,
trigger
:
'blur'
}],
receiverCity
:
[{
required
:
true
,
message
:
'请输入市'
,
trigger
:
'blur'
}],
receiverAddress1
:
[{
required
:
true
,
message
:
'请输入地址1'
,
trigger
:
'blur'
}],
receiverPostCode
:
[{
required
:
true
,
message
:
'请输入邮政编码'
,
trigger
:
'blur'
}],
}
const
submitForm
=
async
()
=>
{
formRef
?.
value
.
validate
(
async
(
valid
:
boolean
)
=>
{
if
(
valid
)
{
await
updateAddressApi
(
form
.
value
as
never
)
visible
.
value
=
false
emits
(
'success'
)
await
ElMessageBox
.
alert
(
'请修改/刷新地址后取消物流重新创建物流订单、获取跟踪号、获取打印面单。'
,
'提示'
,
{
type
:
'warning'
,
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
showCancelButton
:
true
,
})
}
})
}
</
script
>
<
template
>
<el-dialog
v-model=
"visible"
:close-on-click-modal=
"false"
title=
"修改揽收信息"
width=
"50%"
>
<el-form
ref=
"formRef"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
>
<el-form-item
label=
"姓名"
prop=
"receiverName"
>
<el-input
v-model=
"form.receiverName"
clearable
placeholder=
"请输入姓名"
/>
</el-form-item>
<el-form-item
label=
"电话"
prop=
"receiverPhone"
>
<el-input
v-model=
"form.receiverPhone"
clearable
placeholder=
"请输入电话"
/>
</el-form-item>
<el-form-item
label=
"国家"
prop=
"receiverCountry"
>
<el-select
v-model=
"form.receiverCountry"
clearable
filterable
>
<el-option
v-for=
"it in countryList"
:key=
"it.countryCode"
:label=
"it.countryCode"
:value=
"it.countryCode"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"省/州"
prop=
"receiverProvince"
>
<el-input
v-model=
"form.receiverProvince"
clearable
placeholder=
"请输入省/州"
/>
</el-form-item>
<el-form-item
label=
"市"
prop=
"receiverCity"
>
<el-input
v-model=
"form.receiverCity"
clearable
placeholder=
"请输入市"
/>
</el-form-item>
<el-form-item
label=
"区/县"
prop=
"receiverDistrict"
>
<el-input
v-model=
"form.receiverDistrict"
clearable
placeholder=
"请输入区/县"
/>
</el-form-item>
<el-form-item
label=
"地址1"
prop=
"receiverAddress1"
>
<el-input
v-model=
"form.receiverAddress1"
clearable
placeholder=
"请输入地址1"
/>
</el-form-item>
<el-form-item
label=
"地址2"
prop=
"receiverAddress2"
>
<el-input
v-model=
"form.receiverAddress2"
clearable
placeholder=
"请输入地址2"
/>
</el-form-item>
<el-form-item
label=
"邮政编码"
prop=
"receiverPostCode"
>
<el-input
v-model=
"form.receiverPostCode"
clearable
placeholder=
"请输入邮政编码"
/>
</el-form-item>
</el-form>
<template
#
footer
>
<el-button
@
click=
"visible=false"
>
取消
</el-button>
<el-button
type=
"primary"
@
click=
"submitForm"
>
提交
</el-button>
</
template
>
</el-dialog>
</template>
<
style
scoped
lang=
"scss"
>
</
style
>
src/views/order/podUs/index.vue
View file @
8c4e01eb
...
...
@@ -145,7 +145,21 @@
style=
"width: 150px"
/>
</ElFormItem>
<ElFormItem
label=
"物流类型"
>
<ElSelect
v-model=
"searchForm.shipmentType"
placeholder=
"物流类型"
clearable
style=
"width: 130px"
>
<ElOption
v-for=
"(item, index) in ['自有物流','工厂物流']"
:key=
"index"
:value=
"index"
:label=
"item"
></ElOption>
</ElSelect>
</ElFormItem>
<ElFormItem>
<ElButton
type=
"primary"
@
click=
"search"
>
查询
</ElButton>
</ElFormItem>
...
...
@@ -239,6 +253,9 @@
<span
v-if=
"status === 'EXCEPTION_ORDER'"
class=
"item"
>
<ElButton
type=
"success"
@
click=
"updateOrder"
>
转至待确认
</ElButton>
</span>
<span
v-if=
"status === 'EXCEPTION_ORDER' && exceptionStatus === 3"
class=
"item"
>
<ElButton
type=
"success"
@
click=
"asyncOrderAddress"
>
同步收货地址
</ElButton>
</span>
<span
v-if=
"status === 'EXCEPTION_ORDER' && exceptionStatus === 1"
class=
"item"
...
...
@@ -577,6 +594,12 @@
</el-icon>
</div>
<div
class=
"order-detail-item"
>
<span
class=
"order-detail-item-label"
>
物流类型:
</span>
<span
class=
"order-detail-item-value"
>
{{
[
'自有物流'
,
'工厂物流'
][
row
.
shipmentType
]
}}
</span>
</div>
<div
class=
"order-detail-item"
>
<span
class=
"order-detail-item-label"
>
物流跟踪号:
</span>
<span
class=
"order-detail-item-value"
>
<el-button
...
...
@@ -761,7 +784,14 @@
<
/template
>
<
template
#
operate
=
"{ row
}
"
>
<
div
class
=
"operate-box"
>
<
span
class
=
"operate-item"
>
<
span
class
=
"operate-item"
style
=
"display: flex;flex-direction: column"
>
<
ElButton
link
type
=
"primary"
@
click
=
"operationLog(row.id, null)"
>
操作日志
<
/ElButton
>
<
ElButton
v
-
if
=
"!row.expressSheet && row.status === 'TO_BE_CONFIRMED'"
link
...
...
@@ -771,11 +801,20 @@
确认
<
/ElButton
>
<
ElButton
v
-
if
=
"row.shipmentType===1 && ['CREATE_LOGISTICS','WAIT_SHIPMENT'].includes(status)"
link
type
=
"primary"
@
click
=
"
operationLog(row.id, null
)"
@
click
=
"
handleUpdateAddress(row
)"
>
操作日志
修改地址
<
/ElButton
>
<
ElButton
v
-
if
=
"row.shipmentType===0 && ['CREATE_LOGISTICS','WAIT_SHIPMENT'].includes(status)"
link
type
=
"primary"
@
click
=
"handleRefreshAddress(row)"
>
刷新地址
<
/ElButton
>
<
/span
>
<
/div
>
...
...
@@ -1141,7 +1180,7 @@
<
/el-button
>
<
/template
>
<
/el-dialog
>
<
UpdateAddress
v
-
if
=
"updateAddVisible"
v
-
model
:
form
=
"currentRow"
v
-
model
:
visible
=
"updateAddVisible"
:
country
-
list
=
"countryList"
@
success
=
"search"
><
/UpdateAddress
>
<
ElDialog
v
-
model
=
"exceptionDialogVisible"
title
=
"转为异常单"
...
...
@@ -1234,11 +1273,12 @@ import {
changeLogisticsApi
,
createLogisticsOrderApi
,
updateLogisticsToPickingApi
,
createLogisticsOrdersApi
,
createLogisticsOrdersApi
,
syncReceiverAddress
,
refreshAddressApi
,
AddressInfo
,
// handleExceptionOrderApi,
}
from
'@/api/podUsOrder'
import
UpdateAddress
from
'./components/updateAddress.vue'
import
{
BaseRespData
}
from
'@/types/api'
import
{
getAllCountryApi
}
from
'@/api/logistics.ts'
import
TableView
from
'@/components/TableView.vue'
import
{
LogListData
,
...
...
@@ -1281,6 +1321,7 @@ declare global {
}
}
const
tabsNav
=
ref
<
Tab
[]
>
()
const
updateAddVisible
=
ref
(
false
)
const
resultRefs
=
ref
<
InstanceType
<
typeof
ResultInfo
>
|
null
>
(
null
)
const
confirmDialogShow
=
ref
(
false
)
const
downloadLoading
=
ref
(
false
)
...
...
@@ -1294,6 +1335,7 @@ const detailData = ref({})
const
[
searchForm
]
=
useValue
<
SearchForm
>
({
timeType
:
null
,
shopNumber
:
''
,
shipmentType
:
''
,
userMark
:
''
,
logisticsTracking
:
''
,
baseSku
:
''
,
...
...
@@ -1308,6 +1350,17 @@ const [searchForm] = useValue<SearchForm>({
platform
:
''
,
productionClient
:
''
,
}
)
const
currentRow
=
ref
<
AddressInfo
>
({
receiverName
:
''
,
receiverPhone
:
''
,
receiverCountry
:
''
,
receiverProvince
:
''
,
receiverCity
:
''
,
receiverDistrict
:
''
,
receiverAddress1
:
''
,
receiverAddress2
:
''
,
receiverPostCode
:
''
,
}
)
const
exceptionStatus
=
ref
(
1
)
const
userMarkList
=
ref
<
string
[]
>
([])
const
selection
=
ref
<
PodUsOrderListData
[]
>
([])
...
...
@@ -1366,7 +1419,30 @@ const getDateRange = (days = 0, type: 'past' | 'future' = 'past') => {
type
===
'past'
?
end
.
subtract
(
days
,
'day'
)
:
end
.
add
(
days
,
'day'
)
return
[
start
.
startOf
(
'day'
).
toDate
(),
end
.
endOf
(
'day'
).
toDate
()]
}
const
handleRefreshAddress
=
async
(
row
:
PodUsOrderListData
)
=>
{
try
{
await
showConfirm
(
'确定刷新地址吗?'
,
{
confirmButtonText
:
'确认'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
,
}
)
}
catch
{
return
}
await
refreshAddressApi
([
row
.
id
])
await
ElMessageBox
.
alert
(
'请修改/刷新地址后取消物流重新创建物流订单、获取跟踪号、获取打印面单。'
,
'提示'
,
{
type
:
'warning'
,
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
showCancelButton
:
true
,
}
)
}
const
handleUpdateAddress
=
async
(
row
:
PodUsOrderListData
)
=>
{
const
{
data
}
=
await
getAllCountryApi
()
countryList
.
value
=
data
currentRow
.
value
=
JSON
.
parse
(
JSON
.
stringify
(
row
))
updateAddVisible
.
value
=
true
}
const
getMonthRange
=
(
months
=
0
,
type
:
'past'
|
'future'
=
'past'
)
=>
{
const
now
=
dayjs
()
const
start
=
...
...
@@ -1412,6 +1488,10 @@ const tableColumns = computed(() => [
slot
:
'innerLabel'
,
width
:
300
,
prop
:
'innerLabel'
,
}
,{
label
:
'异常原因'
,
width
:
300
,
prop
:
'exceptionReason'
,
}
,
{
label
:
'操作'
,
...
...
@@ -1437,6 +1517,39 @@ const handleSelectionChange = (val: PodUsOrderListData[]) => {
stockOutSuccessIds
.
value
=
[]
}
}
const
asyncOrderAddress
=
async
()
=>
{
if
(
selection
.
value
.
length
===
0
)
{
return
ElMessage
.
warning
(
'请选择数据'
)
}
try
{
await
showConfirm
(
'确定同步收货地址吗?'
,
{
confirmButtonText
:
'确认'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
,
}
)
}
catch
{
return
}
const
ids
=
selection
.
value
.
map
((
item
)
=>
item
.
id
)
const
loading
=
ElLoading
.
service
({
fullscreen
:
true
,
text
:
'操作中...'
,
background
:
'rgba(0, 0, 0, 0.3)'
,
}
)
try
{
const
res
=
await
syncReceiverAddress
(
ids
)
if
(
res
.
code
!==
200
)
return
ElMessage
.
success
(
'同步成功'
)
search
()
await
loadTabData
()
}
catch
(
e
)
{
console
.
error
(
e
)
}
finally
{
loading
.
close
()
}
}
const
changeTab
=
(
item
:
Tab
)
=>
{
status
.
value
=
item
.
status
||
''
selection
.
value
=
[]
...
...
@@ -2798,6 +2911,13 @@ const handleExceptionCommand = (command: number) => {
}
}
}
.
operate
-
item
{
.
el
-
button
{
margin
-
left
:
0
!
important
;
margin
-
top
:
20
px
!
important
;
}
}
<
/style
>
<
style
>
.
customize
-
select
-
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