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
adeff5a0
Commit
adeff5a0
authored
Jun 20, 2025
by
zhuzhequan
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/dev' into dev
# Conflicts: # src/views/order/podUs/index.vue
parents
91d3a891
a2f64d1f
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
377 additions
and
92 deletions
+377
-92
src/api/podUsOrder.ts
+36
-18
src/types/api/podUsOrder.ts
+3
-1
src/views/order/podUs/index.vue
+338
-73
No files found.
src/api/podUsOrder.ts
View file @
adeff5a0
...
@@ -12,18 +12,6 @@ import {
...
@@ -12,18 +12,6 @@ import {
import
axios
from
'./axios'
import
axios
from
'./axios'
import
{
PodMakeOrderData
}
from
'@/types/api/podMakeOrder'
import
{
PodMakeOrderData
}
from
'@/types/api/podMakeOrder'
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
[])
{
export
function
syncReceiverAddress
(
data
:
number
[])
{
return
axios
.
post
<
never
,
BaseRespData
<
never
>>
(
return
axios
.
post
<
never
,
BaseRespData
<
never
>>
(
...
@@ -112,7 +100,6 @@ export function updateExceptionOrderApi(data: number[]) {
...
@@ -112,7 +100,6 @@ export function updateExceptionOrderApi(data: number[]) {
},
},
)
)
}
}
export
function
changeExceptionOrderApi
(
export
function
changeExceptionOrderApi
(
url
:
string
,
url
:
string
,
ids
:
number
[],
ids
:
number
[],
...
@@ -166,13 +153,13 @@ export function productionQueryApi(id: number, podJomallOrderUsId: number) {
...
@@ -166,13 +153,13 @@ export function productionQueryApi(id: number, podJomallOrderUsId: number) {
}
}
export
function
printProductionOrderApi
(
orderIds
:
number
[])
{
export
function
printProductionOrderApi
(
orderIds
:
number
[])
{
return
axios
.
post
<
never
,
BaseRespData
<
string
>>
(
return
axios
.
post
<
never
,
BaseRespData
<
string
>>
(
'factory/podJomallOrderUs/printProducePdf'
,
'factory/podJomallOrder
Product
Us/printProducePdf'
,
orderIds
,
orderIds
,
)
)
}
}
export
function
printPrintOrderApi
(
orderIds
:
number
[])
{
export
function
printPrintOrderApi
(
orderIds
:
number
[])
{
return
axios
.
post
<
never
,
BaseRespData
<
string
>>
(
return
axios
.
post
<
never
,
BaseRespData
<
string
>>
(
'factory/podJomallOrderUs/printPickPdf'
,
'factory/podJomallOrder
Product
Us/printPickPdf'
,
{
{
ids
:
orderIds
.
join
(
','
),
ids
:
orderIds
.
join
(
','
),
},
},
...
@@ -180,7 +167,7 @@ export function printPrintOrderApi(orderIds: number[]) {
...
@@ -180,7 +167,7 @@ export function printPrintOrderApi(orderIds: number[]) {
}
}
export
function
printPickingOrderApi
(
orderIds
:
number
[])
{
export
function
printPickingOrderApi
(
orderIds
:
number
[])
{
return
axios
.
post
<
never
,
BaseRespData
<
string
>>
(
return
axios
.
post
<
never
,
BaseRespData
<
string
>>
(
'factory/podJomallOrderUs/pickingComplete'
,
'factory/podJomallOrder
Product
Us/pickingComplete'
,
{
{
ids
:
orderIds
.
join
(
','
),
ids
:
orderIds
.
join
(
','
),
},
},
...
@@ -280,10 +267,13 @@ export function loadWarehouseListApi() {
...
@@ -280,10 +267,13 @@ export function loadWarehouseListApi() {
'factoryWarehouseInfo/getAll'
,
'factoryWarehouseInfo/getAll'
,
)
)
}
}
export
function
refreshMaterialApi
(
orderIds
:
string
)
{
export
function
refreshMaterialApi
(
data
:
{
orderIds
?:
string
productIds
?:
string
})
{
return
axios
.
post
<
never
,
BaseRespData
<
never
>>
(
return
axios
.
post
<
never
,
BaseRespData
<
never
>>
(
'factory/podJomallOrderProductUs/refreshDesignImages '
,
'factory/podJomallOrderProductUs/refreshDesignImages '
,
{
orderIds
}
,
data
,
)
)
}
}
// 获取跟踪号
// 获取跟踪号
...
@@ -379,6 +369,28 @@ export function createLogisticsOrdersApi(orderIds: (string | number)[]) {
...
@@ -379,6 +369,28 @@ export function createLogisticsOrdersApi(orderIds: (string | number)[]) {
orderIds
,
orderIds
,
)
)
}
}
export
function
applyForReplenishmentApi
(
data
:
{
id
:
number
productId
:
number
factorySubOrderNumber
:
string
replenishmentNum
:
string
podJomallOrderUsStatus
:
string
}[],
)
{
return
axios
.
post
<
never
,
BaseRespData
<
never
>>
(
`factory/podJomallOrderProductUs/applyForReplenishment`
,
data
,
)
}
export
function
replenishmentSuccessApi
(
data
:
number
[])
{
return
axios
.
post
<
never
,
BaseRespData
<
never
>>
(
`factory/podJomallOrderProductUs/replenishmentComplete`
,
data
,
)
}
//确认生产
//确认生产
export
function
confirmProductApi
(
orderIds
:
(
string
|
number
)[])
{
export
function
confirmProductApi
(
orderIds
:
(
string
|
number
)[])
{
return
axios
.
post
<
never
,
BaseRespData
<
never
>>
(
return
axios
.
post
<
never
,
BaseRespData
<
never
>>
(
...
@@ -393,3 +405,9 @@ export function confirmProductToRiinApi(orderIds: (string | number)[]) {
...
@@ -393,3 +405,9 @@ export function confirmProductToRiinApi(orderIds: (string | number)[]) {
orderIds
,
orderIds
,
)
)
}
}
export
function
toOutOfStockApi
(
ids
:
number
[])
{
return
axios
.
post
<
never
,
BaseRespData
<
never
>>
(
`factory/podJomallOrderUs/pickingToStockOut`
,
ids
,
)
}
src/types/api/podUsOrder.ts
View file @
adeff5a0
...
@@ -19,7 +19,9 @@ export interface SearchForm {
...
@@ -19,7 +19,9 @@ export interface SearchForm {
endTime
:
string
|
null
endTime
:
string
|
null
exceptionHandling
:
number
|
undefined
exceptionHandling
:
number
|
undefined
platform
:
string
platform
:
string
productionClient
:
string
productionClient
:
string
warehouseId
:
string
|
number
thirdSkuCode
:
string
}
}
export
interface
PodUsOrderListData
{
export
interface
PodUsOrderListData
{
id
:
number
id
:
number
...
...
src/views/order/podUs/index.vue
View file @
adeff5a0
...
@@ -30,12 +30,75 @@
...
@@ -30,12 +30,75 @@
>
>
</el-date-picker>
</el-date-picker>
</ElFormItem>
</ElFormItem>
<ElFormItem
label=
"定制类型"
>
<ElSelect
v-model=
"searchForm.customizedQuantity"
placeholder=
"定制类型"
clearable
style=
"width: 100px"
>
<ElOption
label=
"单面"
value=
"single"
/>
<ElOption
label=
"多面"
value=
"multiple"
/>
</ElSelect>
</ElFormItem>
<ElFormItem
label=
"生产单号"
>
<ElInput
v-model=
"searchForm.factorySubOrderNumber"
placeholder=
"生产单号"
clearable
style=
"width: 150px"
/>
</ElFormItem>
<ElFormItem
label=
"订单号"
>
<ElInput
v-model=
"searchForm.factoryOrderNumber"
placeholder=
"订单号"
clearable
style=
"width: 150px"
/>
</ElFormItem>
<ElFormItem
label=
"店铺单号"
>
<ElInput
v-model=
"searchForm.shopNumber"
placeholder=
"店铺单号"
clearable
style=
"width: 150px"
/>
</ElFormItem>
<ElFormItem>
<ElButton
type=
"primary"
@
click=
"search"
>
查询
</ElButton>
</ElFormItem>
<ElFormItem>
<ElPopover
placement=
"bottom"
width=
"600"
trigger=
"click"
>
<ElForm
:model=
"searchForm"
size=
"default"
inline
label-width=
"100px"
>
<ElFormItem
label=
"仓库"
>
<ElSelect
v-model=
"searchForm.warehouseId"
clearable
filterable
placeholder=
"请输入"
style=
"width: 150px"
>
<el-option
v-for=
"item in warehouseList"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
></el-option>
</ElSelect>
</ElFormItem>
<ElFormItem
label=
"客户"
>
<ElFormItem
label=
"客户"
>
<el-select
<el-select
v-model=
"searchForm.userMark"
v-model=
"searchForm.userMark"
clearable
clearable
filterable
filterable
style=
"width: 10
0px"
style=
"width: 15
0px"
placeholder=
"客户"
placeholder=
"客户"
>
>
<el-option
<el-option
...
@@ -46,17 +109,6 @@
...
@@ -46,17 +109,6 @@
></el-option>
></el-option>
</el-select>
</el-select>
</ElFormItem>
</ElFormItem>
<ElFormItem
label=
"定制类型"
>
<ElSelect
v-model=
"searchForm.customizedQuantity"
placeholder=
"定制类型"
clearable
style=
"width: 100px"
>
<ElOption
label=
"单面"
value=
"single"
/>
<ElOption
label=
"多面"
value=
"multiple"
/>
</ElSelect>
</ElFormItem>
<ElFormItem
label=
"平台"
>
<ElFormItem
label=
"平台"
>
<ElSelect
<ElSelect
v-model=
"searchForm.platform"
v-model=
"searchForm.platform"
...
@@ -65,7 +117,7 @@
...
@@ -65,7 +117,7 @@
clearable
clearable
filterable
filterable
popper-class=
"customize-select-style"
popper-class=
"customize-select-style"
style=
"width: 13
0px"
style=
"width: 15
0px"
>
>
<ElOption
<ElOption
v-for=
"(item, index) in platformJson"
v-for=
"(item, index) in platformJson"
...
@@ -87,7 +139,7 @@
...
@@ -87,7 +139,7 @@
v-model=
"searchForm.productionClient"
v-model=
"searchForm.productionClient"
placeholder=
"生产端"
placeholder=
"生产端"
clearable
clearable
style=
"width: 13
0px"
style=
"width: 15
0px"
>
>
<ElOption
<ElOption
v-for=
"(item, index) in productionClient"
v-for=
"(item, index) in productionClient"
...
@@ -97,10 +149,10 @@
...
@@ -97,10 +149,10 @@
>
</ElOption>
>
</ElOption>
</ElSelect>
</ElSelect>
</ElFormItem>
</ElFormItem>
<ElFormItem
label=
"
SKU"
>
<ElFormItem
label=
"Variant
SKU"
>
<ElInput
<ElInput
v-model
.
trim=
"searchForm.sku"
v-model
.
trim=
"searchForm.sku"
placeholder=
"
SKU"
placeholder=
"Variant
SKU"
clearable
clearable
style=
"width: 150px"
style=
"width: 150px"
></ElInput>
></ElInput>
...
@@ -113,44 +165,28 @@
...
@@ -113,44 +165,28 @@
style=
"width: 150px"
style=
"width: 150px"
></ElInput>
></ElInput>
</ElFormItem>
</ElFormItem>
<ElFormItem
label=
"物流跟踪号
"
>
<ElFormItem
label=
"库存SKU
"
>
<ElInput
<ElInput
v-model
.
trim=
"searchForm.logisticsTracking
"
v-model
.
trim=
"searchForm.thirdSkuCode
"
placeholder=
"物流跟踪号
"
placeholder=
"库存SKU
"
clearable
clearable
style=
"width: 150px"
style=
"width: 150px"
></ElInput>
></ElInput>
</ElFormItem>
</ElFormItem>
<ElFormItem
label=
"生产单号"
>
<ElFormItem
label=
"物流跟踪号"
>
<ElInput
v-model=
"searchForm.factorySubOrderNumber"
placeholder=
"生产单号"
clearable
style=
"width: 150px"
/>
</ElFormItem>
<ElFormItem
label=
"订单号"
>
<ElInput
v-model=
"searchForm.factoryOrderNumber"
placeholder=
"订单号"
clearable
style=
"width: 150px"
/>
</ElFormItem>
<ElFormItem
label=
"店铺单号"
>
<ElInput
<ElInput
v-model=
"searchForm.shopNumber
"
v-model
.
trim=
"searchForm.logisticsTracking
"
placeholder=
"店铺单
号"
placeholder=
"物流跟踪
号"
clearable
clearable
style=
"width: 150px"
style=
"width: 150px"
/
>
></ElInput
>
</ElFormItem>
</ElFormItem>
<ElFormItem
label=
"物流类型"
>
<ElFormItem
label=
"物流类型"
>
<ElSelect
<ElSelect
v-model=
"searchForm.shipmentType"
v-model=
"searchForm.shipmentType"
placeholder=
"物流类型"
placeholder=
"物流类型"
clearable
clearable
style=
"width: 13
0px"
style=
"width: 15
0px"
>
>
<ElOption
<ElOption
v-for=
"(item, index) in ['自有物流', '工厂物流']"
v-for=
"(item, index) in ['自有物流', '工厂物流']"
...
@@ -160,8 +196,14 @@
...
@@ -160,8 +196,14 @@
></ElOption>
></ElOption>
</ElSelect>
</ElSelect>
</ElFormItem>
</ElFormItem>
<ElFormItem>
</ElForm>
<ElButton
type=
"primary"
@
click=
"search"
>
查询
</ElButton>
<template
#
reference
>
<el-button
type=
"warning"
@
click=
"searchVisible = !searchVisible"
>
<el-icon
v-if=
"searchVisible"
><CaretTop
/></el-icon>
<el-icon
v-else
><CaretBottom
/></el-icon>
</el-button>
</
template
>
</ElPopover>
</ElFormItem>
</ElFormItem>
</ElForm>
</ElForm>
</div>
</div>
...
@@ -281,11 +323,19 @@
...
@@ -281,11 +323,19 @@
处理异常
处理异常
</ElButton>
</ElButton>
</span> -->
</span> -->
<span
v-if=
"status === 'PICKING'"
class=
"item"
>
<span
v-if=
"status === 'PICKING' || status === 'TO_BE_REPLENISHMENT'"
class=
"item"
>
<ElButton
type=
"primary"
@
click=
"printProductionOrder"
>
<ElButton
type=
"primary"
@
click=
"printProductionOrder"
>
打印生产单
打印生产单
</ElButton>
</ElButton>
</span>
</span>
<span
v-if=
"status === 'TO_BE_REPLENISHMENT'"
class=
"item"
>
<ElButton
type=
"success"
@
click=
"replenishmentSuccess"
>
补胚完成
</ElButton>
</span>
<span
v-if=
"status === 'PICKING'"
class=
"item"
>
<span
v-if=
"status === 'PICKING'"
class=
"item"
>
<ElButton
type=
"success"
@
click=
"printPickingOrder"
>
<ElButton
type=
"success"
@
click=
"printPickingOrder"
>
打印拣货单
打印拣货单
...
@@ -296,13 +346,16 @@
...
@@ -296,13 +346,16 @@
拣胚完成
拣胚完成
</ElButton>
</ElButton>
</span>
</span>
<span
v-if=
"status === 'PICKING'"
class=
"item"
>
<ElButton
type=
"success"
@
click=
"toOutOfStock"
>
转至缺货
</ElButton>
</span>
<span
v-if=
"status === 'TO_BE_CONFIRMED'"
class=
"item"
>
<span
v-if=
"status === 'TO_BE_CONFIRMED'"
class=
"item"
>
<ElButton
type=
"warning"
@
click=
"changeExceptionOrder"
>
<ElButton
type=
"warning"
@
click=
"changeExceptionOrder"
>
转为异常单
转为异常单
</ElButton>
</ElButton>
</span>
</span>
<span
v-if=
"status === 'TO_BE_CONFIRMED'"
class=
"item"
>
<span
v-if=
"status === 'TO_BE_CONFIRMED'"
class=
"item"
>
<ElButton
type=
"
warning
"
@
click=
"confirmProductToRiin"
>
<ElButton
type=
"
success
"
@
click=
"confirmProductToRiin"
>
转至锐印生产
转至锐印生产
</ElButton>
</ElButton>
</span>
</span>
...
@@ -322,6 +375,11 @@
...
@@ -322,6 +375,11 @@
快捷生产
快捷生产
</ElButton>
</ElButton>
</span>
</span>
<span
v-if=
"status === 'IN_PRODUCTION'"
class=
"item"
>
<ElButton
type=
"success"
@
click=
"applyForReplenishment(undefined)"
>
申请补胚
</ElButton>
</span>
<span
v-if=
"status === 'WAIT_SHIPMENT'"
class=
"item"
>
<span
v-if=
"status === 'WAIT_SHIPMENT'"
class=
"item"
>
<ElButton
type=
"warning"
@
click=
"printPodOrder"
>
POD打单
</ElButton>
<ElButton
type=
"warning"
@
click=
"printPodOrder"
>
POD打单
</ElButton>
</span>
</span>
...
@@ -376,7 +434,8 @@
...
@@ -376,7 +434,8 @@
status === 'TO_BE_CONFIRMED' ||
status === 'TO_BE_CONFIRMED' ||
status === 'PICKING' ||
status === 'PICKING' ||
status === 'STOCK_OUT' ||
status === 'STOCK_OUT' ||
status === 'EXCEPTION_ORDER'
status === 'EXCEPTION_ORDER' ||
status === 'TO_BE_REPLENISHMENT'
"
"
class=
"item"
class=
"item"
>
>
...
@@ -386,7 +445,11 @@
...
@@ -386,7 +445,11 @@
</span>
</span>
</div>
</div>
<div
<div
v-if=
"status !== 'IN_PRODUCTION'"
v-if=
"
status !== 'IN_PRODUCTION' &&
status !== 'PICKING' &&
status !== 'TO_BE_REPLENISHMENT'
"
v-loading=
"loading"
v-loading=
"loading"
element-loading-text=
"加载中..."
element-loading-text=
"加载中..."
class=
"table-wrapper flex-1 flex-column overflow-hidden"
class=
"table-wrapper flex-1 flex-column overflow-hidden"
...
@@ -523,30 +586,39 @@
...
@@ -523,30 +586,39 @@
{{
item
.
supplierProductNo
}}
{{
item
.
supplierProductNo
}}
</span>
</span>
</div>
</div>
<div
v-if=
"item.isReplenishment"
class=
"goods-item-info-item"
>
<!--
<span
class=
"goods-item-info-item-label"
>
补胚状态:
</span>
-->
<el-tag
size=
"small"
effect=
"dark"
type=
"danger"
>
补胚中
</el-tag
>
</div>
</div>
</div>
<div
class=
"goods-item-info"
>
<div
class=
"goods-item-info"
>
<div
class=
"goods-item-info-item"
>
<div
class=
"goods-item-info-item"
>
<span
class=
"goods-item-info-item-label"
>
价格:
</span>
<span
class=
"goods-item-info-item-label"
>
价格:
</span>
<span
class=
"goods-item-info-item-value"
>
<span
class=
"goods-item-info-item-value"
>
{{
item
.
productPrice
}}
(
¥
)
{{
item
.
productPrice
}}
(
$
)
</span>
</span>
</div>
</div>
<div
class=
"goods-item-info-item"
>
<div
class=
"goods-item-info-item"
>
<span
class=
"goods-item-info-item-label"
>
模板金额:
</span>
<span
class=
"goods-item-info-item-label"
>
模板金额:
</span>
<span
class=
"goods-item-info-item-value"
>
<span
class=
"goods-item-info-item-value"
>
{{
item
.
templatePrice
}}
(
¥
)
{{
item
.
templatePrice
}}
(
$
)
</span>
</span>
</div>
</div>
<div
class=
"goods-item-info-item"
>
<div
class=
"goods-item-info-item"
>
<span
class=
"goods-item-info-item-label"
>
工艺金额:
</span>
<span
class=
"goods-item-info-item-label"
>
工艺金额:
</span>
<span
class=
"goods-item-info-item-value"
>
<span
class=
"goods-item-info-item-value"
>
{{
item
.
craftPrice
}}
(
¥
)
{{
item
.
craftPrice
}}
(
$
)
</span>
</span>
</div>
</div>
<div
class=
"goods-item-info-item"
>
<div
class=
"goods-item-info-item"
>
<span
class=
"goods-item-info-item-label"
>
付款金额:
</span>
<span
class=
"goods-item-info-item-label"
>
付款金额:
</span>
<span
class=
"goods-item-info-item-value"
>
<span
class=
"goods-item-info-item-value"
>
{{
item
.
payAmount
}}
(
¥
)
{{
item
.
payAmount
}}
(
$
)
</span>
</span>
</div>
</div>
...
@@ -570,6 +642,24 @@
...
@@ -570,6 +642,24 @@
}}
}}
</span>
</span>
</div>
</div>
<div
v-if=
"status === 'WAIT_SHIPMENT' || status === 'COMPLETE'"
class=
"goods-item-info-item"
>
<span
class=
"goods-item-info-item-label"
>
补胚数量:
</span>
<span
class=
"goods-item-info-item-value"
>
{{
item
.
replenishmentNum
||
0
}}
</span>
<el-icon
v-if=
"status === 'WAIT_SHIPMENT'"
class=
"icon"
style=
"color: #f56c6c; font-size: 24px"
title=
"申请补胚"
@
click=
"applyForReplenishment(item)"
>
<Edit
/>
</el-icon>
</div>
<div
class=
"goods-item-info-item"
>
<div
class=
"goods-item-info-item"
>
<span
class=
"goods-item-info-item-label"
>
克重:
</span>
<span
class=
"goods-item-info-item-label"
>
克重:
</span>
<span
<span
...
@@ -733,7 +823,7 @@
...
@@ -733,7 +823,7 @@
<div
class=
"order-price-item"
>
<div
class=
"order-price-item"
>
<span
class=
"order-price-item-label"
>
商品总价:
</span>
<span
class=
"order-price-item-label"
>
商品总价:
</span>
<span
class=
"order-price-item-value"
>
<span
class=
"order-price-item-value"
>
{{
row
.
totalAmount
}}
(
¥
)
{{
row
.
totalAmount
}}
(
$
)
</span>
</span>
</div>
</div>
<div
<div
...
@@ -941,10 +1031,23 @@
...
@@ -941,10 +1031,23 @@
>
{{
cardItem
?.
productName
}}
>
{{
cardItem
?.
productName
}}
<
/span
>
<
/span
>
<
/div
>
<
/div
>
<
div
class
=
"grid-item"
title
=
"未生产数量"
>
<
div
:
style
=
"{
visibility:
status === 'IN_PRODUCTION' || status === 'PICKING'
? 'visible'
: 'hidden',
}
"
class
=
"grid-item"
:
title
=
"status === 'PICKING' ? '数量' : '未生产数量'"
>
<
span
class
=
"grid-item-label"
>
数量:
<
/span
>
<
span
class
=
"grid-item-label"
>
数量:
<
/span
>
<
span
class
=
"grid-item-value"
>
<
span
class
=
"grid-item-value"
>
{{
cardItem
?.
notPassNum
}}
{{
status
===
'PICKING'
?
cardItem
.
num
||
0
:
cardItem
?.
notPassNum
||
0
}}
<
/span
>
<
/span
>
<
/div
>
<
/div
>
<
div
class
=
"grid-item"
>
<
div
class
=
"grid-item"
>
...
@@ -952,6 +1055,18 @@
...
@@ -952,6 +1055,18 @@
{{
cardItem
?.
baseSku
}}
{{
cardItem
?.
baseSku
}}
<
/span
>
<
/span
>
<
/div
>
<
/div
>
<
div
class
=
"grid-item"
>
<
span
class
=
"grid-item-label"
>
补胚数量:
<
/span
>
<
span
class
=
"grid-item-value"
>
{{
cardItem
?.
replenishmentNum
||
0
}}
<
/span
>
<
/div
>
<
div
class
=
"grid-item"
>
<
span
title
=
"Variant SKU"
class
=
"grid-item-value"
>
{{
cardItem
?.
variantSku
}}
<
/span
>
<
/div
>
<
div
class
=
"grid-item"
title
=
"工艺"
>
<
div
class
=
"grid-item"
title
=
"工艺"
>
<
span
class
=
"grid-item-label"
>
工艺:
<
/span
>
<
span
class
=
"grid-item-label"
>
工艺:
<
/span
>
<
span
class
=
"grid-item-value"
>
<
span
class
=
"grid-item-value"
>
...
@@ -992,6 +1107,11 @@
...
@@ -992,6 +1107,11 @@
{{
cardItem
?.
thirdSubOrderNumber
}}
{{
cardItem
?.
thirdSubOrderNumber
}}
<
/span
>
<
/span
>
<
/div
>
<
/div
>
<
div
v
-
if
=
"cardItem.isReplenishment"
class
=
"grid-item"
>
<
el
-
tag
size
=
"small"
type
=
"danger"
effect
=
"dark"
>
补胚中
<
/el-ta
g
>
<
/div
>
<
/div
>
<
/div
>
<
/template
>
<
/template
>
<
/CommonCard
>
<
/CommonCard
>
...
@@ -1369,6 +1489,9 @@ import {
...
@@ -1369,6 +1489,9 @@ import {
updateSelfLogistics
,
updateSelfLogistics
,
uploadExpressSheet
,
uploadExpressSheet
,
// handleExceptionOrderApi,
// handleExceptionOrderApi,
applyForReplenishmentApi
,
replenishmentSuccessApi
,
toOutOfStockApi
,
}
from
'@/api/podUsOrder'
}
from
'@/api/podUsOrder'
import
{
BaseRespData
}
from
'@/types/api'
import
{
BaseRespData
}
from
'@/types/api'
...
@@ -1451,6 +1574,7 @@ const downloadLoading = ref(false)
...
@@ -1451,6 +1574,7 @@ const downloadLoading = ref(false)
const
isChangeWay
=
ref
(
false
)
const
isChangeWay
=
ref
(
false
)
const
confirmData
=
ref
([])
const
confirmData
=
ref
([])
const
logisticsWayData
=
ref
([])
const
logisticsWayData
=
ref
([])
const
searchVisible
=
ref
(
false
)
const
confirmSelectionData
=
ref
<
LogisticsData
[]
>
([])
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'
)
...
@@ -1472,6 +1596,8 @@ const [searchForm] = useValue<SearchForm>({
...
@@ -1472,6 +1596,8 @@ const [searchForm] = useValue<SearchForm>({
exceptionHandling
:
undefined
,
exceptionHandling
:
undefined
,
platform
:
''
,
platform
:
''
,
productionClient
:
''
,
productionClient
:
''
,
warehouseId
:
''
,
thirdSkuCode
:
''
,
}
)
}
)
const
exceptionStatus
=
ref
(
1
)
const
exceptionStatus
=
ref
(
1
)
const
userMarkList
=
ref
<
string
[]
>
([])
const
userMarkList
=
ref
<
string
[]
>
([])
...
@@ -1727,7 +1853,11 @@ const {
...
@@ -1727,7 +1853,11 @@ const {
onPageSizeChange
:
handleSizeChange
,
onPageSizeChange
:
handleSizeChange
,
}
=
usePageList
({
}
=
usePageList
({
query
:
(
page
,
pageSize
)
=>
{
query
:
(
page
,
pageSize
)
=>
{
if
(
status
.
value
!==
'IN_PRODUCTION'
)
{
if
(
status
.
value
!==
'IN_PRODUCTION'
&&
status
.
value
!==
'PICKING'
&&
status
.
value
!==
'TO_BE_REPLENISHMENT'
)
{
return
getOrderList
(
return
getOrderList
(
{
{
...
searchForm
.
value
,
...
searchForm
.
value
,
...
@@ -1908,12 +2038,14 @@ const productionClientVisible = ref(false)
...
@@ -1908,12 +2038,14 @@ const productionClientVisible = ref(false)
//
}
//
}
const
downloadTif
=
async
()
=>
{
const
downloadTif
=
async
()
=>
{
if
(
!
s
election
.
value
.
length
)
{
if
(
!
cardS
election
.
value
.
length
)
{
return
ElMessage
.
warning
(
'请选择数据'
)
return
ElMessage
.
warning
(
'请选择数据'
)
}
}
downloadLoading
.
value
=
true
downloadLoading
.
value
=
true
try
{
try
{
const
res
=
await
composingDesignImages
(
selection
.
value
.
map
((
el
)
=>
el
.
id
))
const
res
=
await
composingDesignImages
(
cardSelection
.
value
.
map
((
el
)
=>
el
.
id
),
)
window
.
open
(
'http://ps.jomalls.com/tiff'
+
res
.
message
,
'_blank'
)
window
.
open
(
'http://ps.jomalls.com/tiff'
+
res
.
message
,
'_blank'
)
downloadLoading
.
value
=
false
downloadLoading
.
value
=
false
}
catch
(
e
)
{
}
catch
(
e
)
{
...
@@ -2024,10 +2156,10 @@ const assignOrder = async () => {
...
@@ -2024,10 +2156,10 @@ const assignOrder = async () => {
//
}
//
}
//
}
//
}
const
printProductionOrder
=
async
()
=>
{
const
printProductionOrder
=
async
()
=>
{
if
(
s
election
.
value
.
length
===
0
)
{
if
(
cardS
election
.
value
.
length
===
0
)
{
return
ElMessage
.
warning
(
'请选择数据'
)
return
ElMessage
.
warning
(
'请选择数据'
)
}
}
const
orderIds
=
s
election
.
value
.
map
((
item
)
=>
item
.
id
)
const
orderIds
=
cardS
election
.
value
.
map
((
item
)
=>
item
.
id
)
const
loading
=
ElLoading
.
service
({
const
loading
=
ElLoading
.
service
({
fullscreen
:
true
,
fullscreen
:
true
,
text
:
'操作中...'
,
text
:
'操作中...'
,
...
@@ -2045,10 +2177,10 @@ const printProductionOrder = async () => {
...
@@ -2045,10 +2177,10 @@ const printProductionOrder = async () => {
}
}
}
}
const
printPickingOrder
=
async
()
=>
{
const
printPickingOrder
=
async
()
=>
{
if
(
s
election
.
value
.
length
===
0
)
{
if
(
cardS
election
.
value
.
length
===
0
)
{
return
ElMessage
.
warning
(
'请选择数据'
)
return
ElMessage
.
warning
(
'请选择数据'
)
}
}
const
orderIds
=
s
election
.
value
.
map
((
item
)
=>
item
.
id
)
const
orderIds
=
cardS
election
.
value
.
map
((
item
)
=>
item
.
id
)
const
loading
=
ElLoading
.
service
({
const
loading
=
ElLoading
.
service
({
fullscreen
:
true
,
fullscreen
:
true
,
text
:
'操作中...'
,
text
:
'操作中...'
,
...
@@ -2066,7 +2198,7 @@ const printPickingOrder = async () => {
...
@@ -2066,7 +2198,7 @@ const printPickingOrder = async () => {
}
}
}
}
const
pickingComplete
=
async
()
=>
{
const
pickingComplete
=
async
()
=>
{
if
(
s
election
.
value
.
length
===
0
)
{
if
(
cardS
election
.
value
.
length
===
0
)
{
return
ElMessage
.
warning
(
'请选择数据'
)
return
ElMessage
.
warning
(
'请选择数据'
)
}
}
try
{
try
{
...
@@ -2078,7 +2210,7 @@ const pickingComplete = async () => {
...
@@ -2078,7 +2210,7 @@ const pickingComplete = async () => {
}
catch
{
}
catch
{
return
return
}
}
const
orderIds
=
s
election
.
value
.
map
((
item
)
=>
item
.
id
)
const
orderIds
=
cardS
election
.
value
.
map
((
item
)
=>
item
.
id
)
const
loading
=
ElLoading
.
service
({
const
loading
=
ElLoading
.
service
({
fullscreen
:
true
,
fullscreen
:
true
,
text
:
'操作中...'
,
text
:
'操作中...'
,
...
@@ -2096,6 +2228,36 @@ const pickingComplete = async () => {
...
@@ -2096,6 +2228,36 @@ const pickingComplete = async () => {
loading
.
close
()
loading
.
close
()
}
}
}
}
const
toOutOfStock
=
async
()
=>
{
if
(
cardSelection
.
value
.
length
===
0
)
{
return
ElMessage
.
warning
(
'请选择数据'
)
}
const
orderIds
=
cardSelection
.
value
.
map
((
item
)
=>
item
.
podJomallOrderUsId
)
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
toOutOfStockApi
(
orderIds
)
if
(
res
.
code
!==
200
)
return
search
()
loadTabData
()
}
catch
(
e
)
{
console
.
error
(
e
)
}
finally
{
loading
.
close
()
}
}
const
exceptionTypes
=
[
const
exceptionTypes
=
[
{
value
:
'1'
,
label
:
'客户'
}
,
{
value
:
'1'
,
label
:
'客户'
}
,
{
value
:
'2'
,
label
:
'工厂'
}
,
{
value
:
'2'
,
label
:
'工厂'
}
,
...
@@ -2200,7 +2362,10 @@ const isSelectStatused = (data: ProductList) => {
...
@@ -2200,7 +2362,10 @@ const isSelectStatused = (data: ProductList) => {
return
index
!==
-
1
return
index
!==
-
1
}
}
const
rightChange
=
async
(
code
:
string
)
=>
{
const
rightChange
=
async
(
code
:
string
)
=>
{
const
flat
=
status
.
value
!==
'IN_PRODUCTION'
const
flat
=
status
.
value
!==
'IN_PRODUCTION'
&&
status
.
value
!==
'PICKING'
&&
status
.
value
!==
'TO_BE_REPLENISHMENT'
if
(
code
===
'select-all'
)
{
if
(
code
===
'select-all'
)
{
if
(
flat
)
{
if
(
flat
)
{
tableRef
.
value
?.
toggleAllSelection
()
tableRef
.
value
?.
toggleAllSelection
()
...
@@ -2243,7 +2408,11 @@ const onFastProduction = () => {
...
@@ -2243,7 +2408,11 @@ const onFastProduction = () => {
// 下载稿件
// 下载稿件
const
downloadMaterial
=
async
()
=>
{
const
downloadMaterial
=
async
()
=>
{
let
selectedIds
=
[]
let
selectedIds
=
[]
if
(
status
.
value
===
'IN_PRODUCTION'
)
{
if
(
status
.
value
===
'IN_PRODUCTION'
||
status
.
value
===
'PICKING'
||
status
.
value
===
'TO_BE_REPLENISHMENT'
)
{
selectedIds
=
cardSelection
.
value
selectedIds
=
cardSelection
.
value
.
map
((
item
:
ProductList
)
=>
item
.
id
)
.
map
((
item
:
ProductList
)
=>
item
.
id
)
.
filter
((
id
):
id
is
number
=>
id
!==
undefined
)
.
filter
((
id
):
id
is
number
=>
id
!==
undefined
)
...
@@ -2816,18 +2985,31 @@ const loadWarehouseList = async () => {
...
@@ -2816,18 +2985,31 @@ const loadWarehouseList = async () => {
}
}
}
}
const
refreshMaterial
=
async
()
=>
{
const
refreshMaterial
=
async
()
=>
{
if
(
status
.
value
===
'PICKING'
)
{
if
(
cardSelection
.
value
.
length
===
0
)
{
return
ElMessage
.
warning
(
'请选择数据'
)
}
}
else
{
if
(
selection
.
value
.
length
===
0
)
{
if
(
selection
.
value
.
length
===
0
)
{
return
ElMessage
.
warning
(
'请选择数据'
)
return
ElMessage
.
warning
(
'请选择数据'
)
}
}
}
const
loading
=
ElLoading
.
service
({
const
loading
=
ElLoading
.
service
({
fullscreen
:
true
,
fullscreen
:
true
,
text
:
'刷新中...'
,
text
:
'刷新中...'
,
background
:
'rgba(0, 0, 0, 0.3)'
,
background
:
'rgba(0, 0, 0, 0.3)'
,
}
)
}
)
try
{
try
{
const
res
=
await
refreshMaterialApi
(
const
res
=
await
refreshMaterialApi
({
selection
.
value
.
map
((
item
)
=>
item
.
id
).
join
(
','
),
orderIds
:
)
status
.
value
!==
'PICKING'
?
selection
.
value
.
map
((
item
)
=>
item
.
id
).
join
(
','
)
:
undefined
,
productIds
:
status
.
value
===
'PICKING'
?
cardSelection
.
value
.
map
((
item
)
=>
item
.
id
).
join
(
','
)
:
undefined
,
}
)
if
(
res
.
code
!==
200
)
return
if
(
res
.
code
!==
200
)
return
ElMessage
.
success
(
'刷新成功'
)
ElMessage
.
success
(
'刷新成功'
)
search
()
search
()
...
@@ -2884,6 +3066,95 @@ const handleExceptionCommand = (command: number) => {
...
@@ -2884,6 +3066,95 @@ const handleExceptionCommand = (command: number) => {
exceptionStatus
.
value
=
command
exceptionStatus
.
value
=
command
search
()
search
()
}
}
const
applyForReplenishment
=
async
(
row
:
ProductList
|
undefined
)
=>
{
if
(
!
row
)
{
if
(
cardSelection
.
value
.
length
===
0
)
{
return
ElMessage
.
warning
(
'请至少选择一条数据'
)
}
}
ElMessageBox
.
prompt
(
'请输入补胚数量'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
inputPattern
:
/.+/
,
inputValue
:
row
?
String
(
row
.
replenishmentNum
||
''
)
:
''
,
inputErrorMessage
:
'请输入补胚数量'
,
inputPlaceholder
:
'补胚数量'
,
}
).
then
(
async
(
res
)
=>
{
if
(
res
.
value
)
{
let
data
=
[]
if
(
!
row
)
{
data
=
cardSelection
.
value
.
map
((
item
)
=>
{
return
{
id
:
item
.
podJomallOrderUsId
,
productId
:
item
.
id
,
factorySubOrderNumber
:
item
.
factorySubOrderNumber
||
''
,
replenishmentNum
:
res
.
value
,
podJomallOrderUsStatus
:
status
.
value
,
}
}
)
}
else
{
data
=
[
{
id
:
row
.
podJomallOrderUsId
,
productId
:
row
.
id
,
factorySubOrderNumber
:
row
.
factorySubOrderNumber
||
''
,
replenishmentNum
:
res
.
value
,
podJomallOrderUsStatus
:
status
.
value
,
}
,
]
}
const
loading
=
ElLoading
.
service
({
fullscreen
:
true
,
text
:
'操作中...'
,
background
:
'rgba(0, 0, 0, 0.3)'
,
}
)
try
{
const
result
=
await
applyForReplenishmentApi
(
data
)
if
(
result
.
code
!==
200
)
return
ElMessage
.
success
(
'操作成功'
)
search
()
loadTabData
()
}
catch
(
e
)
{
console
.
error
(
e
)
}
finally
{
loading
.
close
()
}
}
}
)
}
const
replenishmentSuccess
=
async
()
=>
{
if
(
cardSelection
.
value
.
length
===
0
)
{
return
ElMessage
.
warning
(
'请至少选择一条数据'
)
}
try
{
await
ElMessageBox
.
confirm
(
'是否确认补胚完成'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
,
}
)
}
catch
{
return
}
const
loading
=
ElLoading
.
service
({
fullscreen
:
true
,
text
:
'操作中...'
,
background
:
'rgba(0, 0, 0, 0.3)'
,
}
)
try
{
const
res
=
await
replenishmentSuccessApi
(
cardSelection
.
value
.
map
((
item
)
=>
item
.
id
),
)
if
(
res
.
code
!==
200
)
return
ElMessage
.
success
(
'操作成功'
)
search
()
loadTabData
()
}
catch
(
e
)
{
console
.
error
(
e
)
}
finally
{
loading
.
close
()
}
}
<
/script
>
<
/script
>
<
style
lang
=
"scss"
scoped
>
<
style
lang
=
"scss"
scoped
>
.
header
-
filter
-
form
{
.
header
-
filter
-
form
{
...
@@ -2984,12 +3255,6 @@ const handleExceptionCommand = (command: number) => {
...
@@ -2984,12 +3255,6 @@ const handleExceptionCommand = (command: number) => {
overflow
-
y
:
auto
;
overflow
-
y
:
auto
;
}
}
.
operate
-
item
{
.
el
-
button
{
margin
-
left
:
0
!
important
;
margin
-
top
:
20
px
!
important
;
}
}
.
tabs
-
node_count
{
.
tabs
-
node_count
{
display
:
inline
-
block
;
display
:
inline
-
block
;
...
...
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