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
957eb5db
Commit
957eb5db
authored
Jun 24, 2025
by
wusiyi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat:podus新增待排单页面
parent
af6efe38
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
123 additions
and
47 deletions
+123
-47
src/api/podUsOrder.ts
+20
-3
src/types/api/podUsOrder.ts
+3
-1
src/views/order/podUs/index.vue
+100
-43
No files found.
src/api/podUsOrder.ts
View file @
957eb5db
...
@@ -326,16 +326,16 @@ export function createLogisticsOrderApi(params: {
...
@@ -326,16 +326,16 @@ export function createLogisticsOrderApi(params: {
// 创建物流
// 创建物流
export
function
uploadExpressSheet
(
params
:
{
export
function
uploadExpressSheet
(
params
:
{
trackingNumber
:
string
trackingNumber
:
string
file
:
File
file
:
File
})
{
})
{
return
axios
.
post
<
never
,
BaseRespData
<
never
>>
(
return
axios
.
post
<
never
,
BaseRespData
<
never
>>
(
'factory/podJomallOrderUs/uploadExpressSheet'
,
'factory/podJomallOrderUs/uploadExpressSheet'
,
params
,
params
,
)
)
}
// 创建物流
}
// 创建物流
export
function
updateSelfLogistics
(
params
:
{
export
function
updateSelfLogistics
(
params
:
{
trackingNumber
:
string
trackingNumber
:
string
expressSheet
:
string
expressSheet
:
string
processNumber
:
string
processNumber
:
string
id
?:
string
id
?:
string
...
@@ -362,6 +362,15 @@ export function updateLogisticsToPickingApi(params: { ids: string }) {
...
@@ -362,6 +362,15 @@ export function updateLogisticsToPickingApi(params: { ids: string }) {
},
},
)
)
}
}
// 转至待排单
export
function
updateLogisticsToArrangeApi
(
params
:
{
ids
:
string
})
{
return
axios
.
get
<
never
,
BaseRespData
<
never
>>
(
`factory/podJomallOrderUs/updateLogisticsToArrange`
,
{
params
,
},
)
}
//创建物流订单
//创建物流订单
export
function
createLogisticsOrdersApi
(
orderIds
:
(
string
|
number
)[])
{
export
function
createLogisticsOrdersApi
(
orderIds
:
(
string
|
number
)[])
{
return
axios
.
post
<
never
,
BaseRespData
<
never
>>
(
return
axios
.
post
<
never
,
BaseRespData
<
never
>>
(
...
@@ -411,3 +420,11 @@ export function toOutOfStockApi(ids: number[]) {
...
@@ -411,3 +420,11 @@ export function toOutOfStockApi(ids: number[]) {
ids
,
ids
,
)
)
}
}
// 排单完成
export
function
arrangeFinishApi
(
ids
:
number
[])
{
return
axios
.
post
<
never
,
BaseRespData
<
never
>>
(
`factory/podJomallOrderProductUs/arrangeFinish`
,
ids
,
)
}
src/types/api/podUsOrder.ts
View file @
957eb5db
...
@@ -15,6 +15,7 @@ export interface SearchForm {
...
@@ -15,6 +15,7 @@ export interface SearchForm {
factorySubOrderNumber
:
string
factorySubOrderNumber
:
string
status
:
string
status
:
string
customizedQuantity
:
string
customizedQuantity
:
string
multi
:
boolean
|
null
startTime
:
string
|
null
startTime
:
string
|
null
endTime
:
string
|
null
endTime
:
string
|
null
exceptionHandling
:
number
|
undefined
exceptionHandling
:
number
|
undefined
...
@@ -22,7 +23,8 @@ export interface SearchForm {
...
@@ -22,7 +23,8 @@ export interface SearchForm {
productionClient
:
string
productionClient
:
string
warehouseId
:
string
|
number
warehouseId
:
string
|
number
thirdSkuCode
:
string
thirdSkuCode
:
string
supplierProductNo
:
string
supplierProductNo
:
string
batchArrangeNumber
:
string
}
}
export
interface
PodUsOrderListData
{
export
interface
PodUsOrderListData
{
id
:
number
id
:
number
...
...
src/views/order/podUs/index.vue
View file @
957eb5db
...
@@ -30,21 +30,30 @@
...
@@ -30,21 +30,30 @@
>
>
</el-date-picker>
</el-date-picker>
</ElFormItem>
</ElFormItem>
<ElFormItem
label=
"定制类型"
>
<ElFormItem
label=
"类型"
>
<ElSelect
<el-radio-group
v-model=
"searchForm.customizedQuantity"
>
v-model=
"searchForm.customizedQuantity"
<el-radio-button
label=
"single"
>
单面
</el-radio-button>
placeholder=
"定制类型"
<el-radio-button
label=
"multiple"
>
多面
</el-radio-button>
</el-radio-group>
</ElFormItem>
<ElFormItem
label=
"数量"
>
<el-radio-group
v-model=
"searchForm.multi"
>
<el-radio-button
:label=
"false"
>
单件
</el-radio-button>
<el-radio-button
:label=
"true"
>
多件
</el-radio-button>
</el-radio-group>
</ElFormItem>
<ElFormItem
label=
"库存SKU"
>
<ElInput
v-model
.
trim=
"searchForm.thirdSkuCode"
placeholder=
"库存SKU"
clearable
clearable
style=
"width: 100px"
style=
"width: 150px"
>
></ElInput>
<ElOption
label=
"单面"
value=
"single"
/>
<ElOption
label=
"多面"
value=
"multiple"
/>
</ElSelect>
</ElFormItem>
</ElFormItem>
<ElFormItem
label=
"供应货号"
>
<ElFormItem
label=
"供应货号"
>
<ElInput
<ElInput
v-model=
"searchForm.supplierProductNo"
v-model=
"searchForm.supplierProductNo"
placeholder=
"
生产单
号"
placeholder=
"
供应货
号"
clearable
clearable
style=
"width: 150px"
style=
"width: 150px"
/>
/>
...
@@ -65,6 +74,14 @@
...
@@ -65,6 +74,14 @@
style=
"width: 150px"
style=
"width: 150px"
/>
/>
</ElFormItem>
</ElFormItem>
<ElFormItem
label=
"批次号"
>
<ElInput
v-model=
"searchForm.batchArrangeNumber"
placeholder=
"批次号"
clearable
style=
"width: 150px"
/>
</ElFormItem>
<ElFormItem
label=
"店铺单号"
>
<ElFormItem
label=
"店铺单号"
>
<ElInput
<ElInput
v-model=
"searchForm.shopNumber"
v-model=
"searchForm.shopNumber"
...
@@ -74,10 +91,6 @@
...
@@ -74,10 +91,6 @@
/>
/>
</ElFormItem>
</ElFormItem>
<ElFormItem>
<ElFormItem>
<ElButton
type=
"primary"
@
click=
"search"
>
查询
</ElButton>
</ElFormItem>
<ElFormItem>
<ElPopover
placement=
"bottom"
width=
"600"
trigger=
"click"
>
<ElPopover
placement=
"bottom"
width=
"600"
trigger=
"click"
>
<ElForm
<ElForm
:model=
"searchForm"
:model=
"searchForm"
...
@@ -165,22 +178,14 @@
...
@@ -165,22 +178,14 @@
style=
"width: 150px"
style=
"width: 150px"
></ElInput>
></ElInput>
</ElFormItem>
</ElFormItem>
<ElFormItem
label=
"Base SKU"
>
<
!--
<
ElFormItem
label=
"Base SKU"
>
<ElInput
<ElInput
v-model
.
trim=
"searchForm.baseSku"
v-model
.
trim=
"searchForm.baseSku"
placeholder=
" Base SKU"
placeholder=
" Base SKU"
clearable
clearable
style=
"width: 150px"
style=
"width: 150px"
></ElInput>
></ElInput>
</ElFormItem>
</ElFormItem>
-->
<ElFormItem
label=
"库存SKU"
>
<ElInput
v-model
.
trim=
"searchForm.thirdSkuCode"
placeholder=
"库存SKU"
clearable
style=
"width: 150px"
></ElInput>
</ElFormItem>
<ElFormItem
label=
"物流跟踪号"
>
<ElFormItem
label=
"物流跟踪号"
>
<ElInput
<ElInput
v-model
.
trim=
"searchForm.logisticsTracking"
v-model
.
trim=
"searchForm.logisticsTracking"
...
@@ -213,6 +218,12 @@
...
@@ -213,6 +218,12 @@
</
template
>
</
template
>
</ElPopover>
</ElPopover>
</ElFormItem>
</ElFormItem>
<ElFormItem>
<ElButton
type=
"primary"
@
click=
"search"
>
查询
</ElButton>
</ElFormItem>
<ElFormItem>
<ElButton
type=
"danger"
@
click=
"resetSearchForm"
>
清空
</ElButton>
</ElFormItem>
</ElForm>
</ElForm>
</div>
</div>
<div
class=
"header-filter-tab"
>
<div
class=
"header-filter-tab"
>
...
@@ -393,7 +404,7 @@
...
@@ -393,7 +404,7 @@
</span>
</span>
<span
v-if=
"status === 'CREATE_LOGISTICS'"
class=
"item"
>
<span
v-if=
"status === 'CREATE_LOGISTICS'"
class=
"item"
>
<ElButton
type=
"warning"
@
click=
"logisticsToPicking"
>
<ElButton
type=
"warning"
@
click=
"logisticsToPicking"
>
转至待
拣胚
转至待
排单
</ElButton>
</ElButton>
</span>
</span>
<span
<span
...
@@ -433,7 +444,9 @@
...
@@ -433,7 +444,9 @@
转至待创建物流
转至待创建物流
</ElButton>
</ElButton>
</span>
</span>
<span
v-if=
"status === 'TO_BE_ARRANGE'"
class=
"item"
>
<ElButton
type=
"warning"
@
click=
"arrangeFinish"
>
排单完成
</ElButton>
</span>
<span
class=
"item"
>
<span
class=
"item"
>
<ElButton
type=
"primary"
@
click=
"downloadMaterial"
>
下载素材
</ElButton>
<ElButton
type=
"primary"
@
click=
"downloadMaterial"
>
下载素材
</ElButton>
</span>
</span>
...
@@ -456,7 +469,8 @@
...
@@ -456,7 +469,8 @@
v-if=
"
v-if=
"
status !== 'IN_PRODUCTION' &&
status !== 'IN_PRODUCTION' &&
status !== 'PICKING' &&
status !== 'PICKING' &&
status !== 'TO_BE_REPLENISHMENT'
status !== 'TO_BE_REPLENISHMENT' &&
status !== 'TO_BE_ARRANGE'
"
"
v-loading=
"loading"
v-loading=
"loading"
element-loading-text=
"加载中..."
element-loading-text=
"加载中..."
...
@@ -1516,7 +1530,8 @@ import {
...
@@ -1516,7 +1530,8 @@ import {
composingDesignImages
,
composingDesignImages
,
changeLogisticsApi
,
changeLogisticsApi
,
createLogisticsOrderApi
,
createLogisticsOrderApi
,
updateLogisticsToPickingApi
,
// updateLogisticsToPickingApi,
updateLogisticsToArrangeApi
,
createLogisticsOrdersApi
,
createLogisticsOrdersApi
,
syncReceiverAddress
,
syncReceiverAddress
,
refreshAddressApi
,
refreshAddressApi
,
...
@@ -1528,6 +1543,7 @@ import {
...
@@ -1528,6 +1543,7 @@ import {
applyForReplenishmentApi
,
applyForReplenishmentApi
,
replenishmentSuccessApi
,
replenishmentSuccessApi
,
toOutOfStockApi
,
toOutOfStockApi
,
arrangeFinishApi
,
}
from
'@/api/podUsOrder'
}
from
'@/api/podUsOrder'
import
{
BaseRespData
}
from
'@/types/api'
import
{
BaseRespData
}
from
'@/types/api'
...
@@ -1616,7 +1632,7 @@ const confirmSelectionData = ref<LogisticsData[]>([])
...
@@ -1616,7 +1632,7 @@ const confirmSelectionData = ref<LogisticsData[]>([])
const
confirmRowData
=
ref
<
ProductList
|
null
>
(
null
)
const
confirmRowData
=
ref
<
ProductList
|
null
>
(
null
)
const
status
=
ref
(
'TO_BE_CONFIRMED'
)
const
status
=
ref
(
'TO_BE_CONFIRMED'
)
const
detailData
=
ref
({
}
)
const
detailData
=
ref
({
}
)
const
[
searchForm
]
=
useValue
<
SearchForm
>
({
const
[
searchForm
,
resetSearchForm
]
=
useValue
<
SearchForm
>
({
timeType
:
null
,
timeType
:
null
,
shopNumber
:
''
,
shopNumber
:
''
,
shipmentType
:
''
,
shipmentType
:
''
,
...
@@ -1628,6 +1644,7 @@ const [searchForm] = useValue<SearchForm>({
...
@@ -1628,6 +1644,7 @@ const [searchForm] = useValue<SearchForm>({
factorySubOrderNumber
:
''
,
factorySubOrderNumber
:
''
,
status
:
''
,
status
:
''
,
customizedQuantity
:
''
,
customizedQuantity
:
''
,
multi
:
null
,
startTime
:
null
,
startTime
:
null
,
endTime
:
null
,
endTime
:
null
,
exceptionHandling
:
undefined
,
exceptionHandling
:
undefined
,
...
@@ -1635,7 +1652,8 @@ const [searchForm] = useValue<SearchForm>({
...
@@ -1635,7 +1652,8 @@ const [searchForm] = useValue<SearchForm>({
productionClient
:
''
,
productionClient
:
''
,
warehouseId
:
''
,
warehouseId
:
''
,
thirdSkuCode
:
''
,
thirdSkuCode
:
''
,
supplierProductNo
:
''
supplierProductNo
:
''
,
batchArrangeNumber
:
''
,
}
)
}
)
const
exceptionStatus
=
ref
(
1
)
const
exceptionStatus
=
ref
(
1
)
const
userMarkList
=
ref
<
string
[]
>
([])
const
userMarkList
=
ref
<
string
[]
>
([])
...
@@ -1895,7 +1913,8 @@ const {
...
@@ -1895,7 +1913,8 @@ const {
if
(
if
(
status
.
value
!==
'IN_PRODUCTION'
&&
status
.
value
!==
'IN_PRODUCTION'
&&
status
.
value
!==
'PICKING'
&&
status
.
value
!==
'PICKING'
&&
status
.
value
!==
'TO_BE_REPLENISHMENT'
status
.
value
!==
'TO_BE_REPLENISHMENT'
&&
status
.
value
!==
'TO_BE_ARRANGE'
)
{
)
{
return
getOrderList
(
return
getOrderList
(
{
{
...
@@ -2518,6 +2537,44 @@ const downloadMaterial = async () => {
...
@@ -2518,6 +2537,44 @@ const downloadMaterial = async () => {
loading
.
close
()
loading
.
close
()
}
}
}
}
// 排单完成
const
arrangeFinish
=
async
()
=>
{
const
selectedIds
=
cardSelection
.
value
.
map
((
item
)
=>
item
.
id
)
if
(
selectedIds
.
length
===
0
)
{
return
ElMessage
({
message
:
'请选择订单'
,
type
:
'warning'
,
offset
:
window
.
innerHeight
/
2
,
}
)
}
try
{
await
ElMessageBox
.
confirm
(
'确定排单完成吗?'
,
'提示'
,
{
cancelButtonText
:
'取消'
,
confirmButtonText
:
'确认'
,
type
:
'warning'
,
}
)
}
catch
{
return
}
const
loading
=
ElLoading
.
service
({
fullscreen
:
true
,
text
:
'操作中...'
,
background
:
'rgba(0, 0, 0, 0.3)'
,
}
)
try
{
const
res
=
await
arrangeFinishApi
(
selectedIds
)
if
(
res
.
code
!==
200
)
return
ElMessage
.
success
(
'操作成功'
)
search
()
loadTabData
()
}
catch
(
e
)
{
console
.
error
(
e
)
}
finally
{
loading
.
close
()
}
}
const
logList
=
ref
<
LogListData
[]
>
([])
const
logList
=
ref
<
LogListData
[]
>
([])
const
logVisible
=
ref
(
false
)
const
logVisible
=
ref
(
false
)
const
operationLog
=
async
(
id
:
number
,
e
:
MouseEvent
|
null
)
=>
{
const
operationLog
=
async
(
id
:
number
,
e
:
MouseEvent
|
null
)
=>
{
...
@@ -2617,7 +2674,7 @@ const getOrderByIdApi = async (type: string) => {
...
@@ -2617,7 +2674,7 @@ const getOrderByIdApi = async (type: string) => {
factoryOrderNumber
?:
string
factoryOrderNumber
?:
string
message
:
string
message
:
string
}
[])
||
[]
}
[])
||
[]
resultRefs
.
value
?.
showDialog
()
resultRefs
.
value
?.
showDialog
()
}
else
if
(
isString
(
res
.
data
))
{
}
else
if
(
isString
(
res
.
data
))
{
window
.
open
(
filePath
+
res
.
data
)
window
.
open
(
filePath
+
res
.
data
)
}
}
...
@@ -2816,21 +2873,21 @@ const toBePicking = async () => {
...
@@ -2816,21 +2873,21 @@ const toBePicking = async () => {
loading
.
close
()
loading
.
close
()
}
}
}
}
//转至待
拣胚
//转至待
排单
const
logisticsToPicking
=
async
()
=>
{
const
logisticsToPicking
=
async
()
=>
{
if
(
selection
.
value
.
length
===
0
)
{
if
(
selection
.
value
.
length
===
0
)
{
return
ElMessage
.
warning
(
'请选择数据'
)
return
ElMessage
.
warning
(
'请选择数据'
)
}
}
if
(
//
if (
selection
.
value
.
some
(
//
selection.value.some(
(
el
)
=>
//
(el) =>
el
.
trackingNumber
==
null
||
String
(
el
.
trackingNumber
).
trim
()
===
''
,
//
el.trackingNumber == null || String(el.trackingNumber).trim() === '',
)
//
)
)
{
//
)
{
return
ElMessage
.
warning
(
'选中数据中有未创建物流的订单,请先创建物流'
)
//
return ElMessage.warning('选中数据中有未创建物流的订单,请先创建物流')
}
//
}
try
{
try
{
await
ElMessageBox
.
confirm
(
'确定转至待
拣胚
吗?'
,
'提示'
,
{
await
ElMessageBox
.
confirm
(
'确定转至待
排单
吗?'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
,
type
:
'warning'
,
...
@@ -2844,7 +2901,7 @@ const logisticsToPicking = async () => {
...
@@ -2844,7 +2901,7 @@ const logisticsToPicking = async () => {
background
:
'rgba(0, 0, 0, 0.3)'
,
background
:
'rgba(0, 0, 0, 0.3)'
,
}
)
}
)
try
{
try
{
const
res
=
await
updateLogisticsTo
Picking
Api
({
const
res
=
await
updateLogisticsTo
Arrange
Api
({
ids
:
selection
.
value
.
map
((
item
)
=>
item
.
id
).
join
(
','
),
ids
:
selection
.
value
.
map
((
item
)
=>
item
.
id
).
join
(
','
),
}
)
}
)
if
(
res
.
code
!==
200
)
return
if
(
res
.
code
!==
200
)
return
...
...
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