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
b517d0c9
Commit
b517d0c9
authored
May 27, 2025
by
qinjianhui
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' into 'master'
Dev See merge request
!10
parents
03336ad7
76a2385e
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
405 additions
and
21 deletions
+405
-21
src/api/podUsOrder.ts
+62
-5
src/components/TableView.vue
+12
-0
src/types/api/podMakeOrder.ts
+1
-0
src/types/api/podUsOrder.ts
+14
-0
src/views/order/pod/index.vue
+3
-3
src/views/order/podUs/PodMakeOrder.vue
+55
-4
src/views/order/podUs/index.vue
+258
-9
No files found.
src/api/podUsOrder.ts
View file @
b517d0c9
...
...
@@ -5,6 +5,8 @@ import {
SearchForm
,
Tab
,
LogListData
,
ProductionClient
,
WarehouseListData
,
}
from
'@/types/api/podUsOrder'
import
axios
from
'./axios'
import
{
PodMakeOrderData
}
from
'@/types/api/podMakeOrder'
...
...
@@ -42,10 +44,18 @@ export function getCardOrderList(
},
)
}
export
function
confirmOrderApi
(
data
:
number
[])
{
export
function
confirmOrderApi
(
data
:
number
[]
,
productionClient
:
string
)
{
return
axios
.
post
<
never
,
BaseRespData
<
never
>>
(
'factory/podJomallOrderUs/confirmOrders'
,
data
,
{
ids
:
data
.
join
(
','
),
productionClient
,
},
)
}
export
function
getProductionClientApi
()
{
return
axios
.
get
<
never
,
BaseRespData
<
ProductionClient
[]
>>
(
'factory/podJomallOrderUs/getProductionClientList'
,
)
}
export
function
updateExceptionOrderApi
(
data
:
number
[])
{
...
...
@@ -110,6 +120,42 @@ export function printProductionOrderApi(orderIds: number[]) {
orderIds
,
)
}
export
function
printPrintOrderApi
(
orderIds
:
number
[],
productionClient
:
string
,
)
{
return
axios
.
post
<
never
,
BaseRespData
<
string
>>
(
'factory/podJomallOrderUs/printPickPdf'
,
{
ids
:
orderIds
.
join
(
','
),
productionClient
,
},
)
}
export
function
printPickingOrderApi
(
orderIds
:
number
[],
productionClient
:
string
,
)
{
return
axios
.
post
<
never
,
BaseRespData
<
string
>>
(
'factory/podJomallOrderUs/pickingComplete'
,
{
ids
:
orderIds
.
join
(
','
),
productionClient
,
},
)
}
export
function
stockOutCheckApi
(
orderIds
:
number
[])
{
return
axios
.
get
<
never
,
BaseRespData
<
number
[]
>>
(
`factory/podJomallOrderUs/replenishVerify?ids=
${
orderIds
.
join
(
','
)}
`
,
)
}
export
function
toBeConfirmedApi
(
orderIds
:
number
[])
{
return
axios
.
get
<
never
,
BaseRespData
<
never
>>
(
`factory/podJomallOrderUs/updateStockOutOrderToWaitConfirmed?ids=
${
orderIds
.
join
(
','
,
)}
`
,
)
}
export
function
getOrderDetailById
(
id
:
number
)
{
return
axios
.
get
<
never
,
BaseRespData
<
ProductList
>>
(
`factory/podJomallOrderProductUs/getProductUsById?id=
${
id
}
`
,
...
...
@@ -119,6 +165,7 @@ export function getPackingDataApi(
code
:
string
,
factoryNo
:
number
,
box
:
number
|
null
,
warehouseId
:
number
|
string
,
)
{
return
axios
.
get
<
never
,
BaseRespData
<
PodMakeOrderData
>>
(
'/factory/podJomallOrderUs/getPodBoxDetailsBySkuOrNo'
,
...
...
@@ -127,15 +174,19 @@ export function getPackingDataApi(
podJomallUsNo
:
code
,
box
,
factoryNo
,
warehouseId
,
},
},
)
}
export
function
getPodBoxListApi
(
factoryNo
:
number
|
string
)
{
export
function
getPodBoxListApi
(
factoryNo
:
number
|
string
,
warehouseId
:
number
|
string
,
)
{
return
axios
.
get
<
never
,
BaseRespData
<
PodMakeOrderData
[]
>>
(
'factory/podJomallOrderUs/getPodBoxOrderDetails'
,
{
params
:
{
factoryNo
},
params
:
{
factoryNo
,
warehouseId
},
},
)
}
...
...
@@ -143,9 +194,10 @@ export function getPodBoxListApi(factoryNo: number | string) {
export
function
submitInspectionApi
(
data
:
{
id
:
number
;
version
?:
number
}[],
boxIndex
:
number
|
null
,
warehouseId
:
number
|
string
,
)
{
return
axios
.
post
<
never
,
BaseRespData
<
never
>>
(
`factory/podJomallOrderUs/podPrintOrderComplete?box=
${
boxIndex
}
`
,
`factory/podJomallOrderUs/podPrintOrderComplete?box=
${
boxIndex
}
&warehouseId=
${
warehouseId
}
`
,
{
orderParamList
:
data
,
},
...
...
@@ -170,3 +222,8 @@ export function updateRemarkApi(id: number, content: string) {
{
id
,
content
},
)
}
export
function
loadWarehouseListApi
()
{
return
axios
.
get
<
never
,
BaseRespData
<
WarehouseListData
[]
>>
(
'factoryWarehouseInfo/getAll'
,
)
}
src/components/TableView.vue
View file @
b517d0c9
...
...
@@ -90,9 +90,21 @@ defineProps({
})
const
attrs
=
useAttrs
()
const
slots
=
useSlots
()
as
Record
<
string
,
Slot
>
const
setCurrentRow
=
(
row
:
T
)
=>
{
tableRef
.
value
?.
setCurrentRow
(
row
)
}
const
toggleRowSelection
=
(
row
:
T
,
selected
:
boolean
=
true
)
=>
{
tableRef
.
value
?.
toggleRowSelection
(
row
,
selected
)
}
const
clearSelection
=
()
=>
{
tableRef
.
value
?.
clearSelection
()
}
defineExpose
({
tableRef
,
setCurrentRow
,
toggleRowSelection
,
clearSelection
,
})
</
script
>
...
...
src/types/api/podMakeOrder.ts
View file @
b517d0c9
...
...
@@ -43,4 +43,5 @@ export interface ProductList {
count
?:
number
power
?:
boolean
variantImage
?:
string
podJomallUsNo
?:
string
}
src/types/api/podUsOrder.ts
View file @
b517d0c9
...
...
@@ -110,6 +110,10 @@ export interface LogListData {
deleteContent
:
string
createTime
:
string
}
export
interface
ProductionClient
{
code
?:
string
remark
?:
string
}
export
interface
PodOrderRes
extends
ProductList
{
expectDeliveryTime
?:
string
|
null
thirdOrderNumber
?:
string
|
null
...
...
@@ -124,3 +128,13 @@ export interface PodOrderRes extends ProductList {
note
?:
Array
<
{
prop
:
string
|
number
;
value
:
string
|
number
}
>
imgList
:
cardImages
[]
}
export
interface
WarehouseListData
{
code
?:
string
defaulted
?:
number
factoryCode
?:
string
factoryId
?:
number
id
:
number
name
?:
string
remarks
?:
string
sort
?:
number
}
src/views/order/pod/index.vue
View file @
b517d0c9
...
...
@@ -472,7 +472,7 @@
>
<
span
>
工艺:
<
/span
>
<
span
:
title
=
"String(cardItem?.process)"
:
title
=
"String(cardItem?.process
Name
)"
style
=
"
display: inline-block;
width: 100%;
...
...
@@ -480,8 +480,8 @@
text-overflow: ellipsis;
"
>
{{
cardItem
?.
process
}}
<
/span
>
{{
cardItem
?.
process
Name
}}
<
/span>
<
/el-col
>
<
el
-
col
:
span
=
"12"
...
...
src/views/order/podUs/PodMakeOrder.vue
View file @
b517d0c9
...
...
@@ -36,6 +36,21 @@
/>
</ElSelect>
</div>
<div
class=
"form-item"
>
<ElSelect
v-model=
"warehouseId"
placeholder=
"请选择仓库"
style=
"width: 200px"
@
change=
"handleWarehouseChange"
>
<ElOption
v-for=
"item in warehouseList"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
/>
</ElSelect>
</div>
<div
class=
"form-item"
style=
"flex: 1"
>
<ElInput
ref=
"productionOrderRef"
...
...
@@ -207,12 +222,14 @@ import {
import
useUserStore
from
'@/store/user'
import
{
Check
}
from
'@element-plus/icons-vue'
import
socket
from
'@/utils/websocket'
import
{
WarehouseListData
}
from
'@/types/api/podUsOrder'
const
{
getCLodop
}
=
useLodop
()
const
props
=
defineProps
<
{
modelValue
:
boolean
printOrder
:
(
data
:
OrderData
,
callback
:
(
status
:
boolean
)
=>
void
)
=>
void
warehouseList
:
WarehouseListData
[]
}
>
()
const
emit
=
defineEmits
([
'update:modelValue'
,
'set-printer'
,
'refresh'
])
const
visible
=
computed
({
...
...
@@ -294,6 +311,8 @@ watch(visible, async (value: boolean) => {
if
(
value
)
{
podOrderDetailsData
.
value
=
{}
currentCode
=
''
warehouseId
.
value
=
props
.
warehouseList
[
0
].
id
_warehouseId
.
value
=
props
.
warehouseList
[
0
].
id
if
(
userStore
.
user
?.
factory
.
id
)
{
try
{
await
socket
.
init
(
...
...
@@ -306,11 +325,13 @@ watch(visible, async (value: boolean) => {
socket
.
send
({
code
:
'STARTORDER'
,
factoryNo
:
userStore
.
user
?.
factory
.
id
,
warehouseId
:
warehouseId
.
value
,
})
}
catch
(
error
)
{
console
.
error
(
error
)
}
}
initOrderDetailBox
()
initPrintDevice
()
}
else
{
...
...
@@ -318,6 +339,7 @@ watch(visible, async (value: boolean) => {
socket
.
send
({
code
:
'ENDORDER'
,
factoryNo
:
userStore
.
user
?.
factory
.
id
,
warehouseId
:
warehouseId
.
value
,
})
socket
.
close
()
}
...
...
@@ -382,7 +404,7 @@ const renderItemBox = (bool: boolean) => {
}
if
(
currentCode
)
{
for
(
const
product
of
productList
)
{
if
(
product
.
podJomallNo
===
currentCode
)
{
if
(
product
.
podJomall
Us
No
===
currentCode
)
{
coverImage
.
value
=
product
.
variantImage
||
''
nextTick
(()
=>
{
tableRef
.
value
?.
setCurrentRow
(
product
)
...
...
@@ -500,7 +522,12 @@ const getPackingData = async (code: string) => {
productionOrder
.
value
=
''
return
}
const
res
=
await
getPackingDataApi
(
code
,
factoryNo
,
boxIndex
.
value
)
const
res
=
await
getPackingDataApi
(
code
,
factoryNo
,
boxIndex
.
value
,
warehouseId
.
value
,
)
if
(
res
.
code
!==
200
)
{
ElMessage
.
warning
(
res
.
message
)
isLock
.
value
=
false
...
...
@@ -535,7 +562,11 @@ const submitInspection = async (callback: () => void) => {
]
:
[]
try
{
const
res
=
await
submitInspectionApi
(
data
,
boxIndex
.
value
)
const
res
=
await
submitInspectionApi
(
data
,
boxIndex
.
value
,
warehouseId
.
value
,
)
if
(
res
.
code
!==
200
)
return
ElMessage
.
warning
(
res
.
message
)
isLock
.
value
=
false
...
...
@@ -560,7 +591,7 @@ const initOrderDetailBox = async () => {
fullscreen
:
true
,
})
try
{
const
res
=
await
getPodBoxListApi
(
factoryNo
)
const
res
=
await
getPodBoxListApi
(
factoryNo
,
warehouseId
.
value
)
if
(
res
.
code
!==
200
)
{
ElMessage
.
warning
(
res
.
message
)
return
...
...
@@ -814,6 +845,26 @@ const handleCurrentChange = (row: ProductList) => {
coverImage
.
value
=
row
.
variantImage
||
''
}
}
const
warehouseId
=
ref
<
string
|
number
>
(
''
)
const
_warehouseId
=
ref
<
string
|
number
>
(
''
)
const
handleWarehouseChange
=
(
value
:
string
|
number
)
=>
{
if
(
!
value
)
return
if
(
_warehouseId
.
value
!==
warehouseId
.
value
)
{
socket
.
send
({
code
:
'ENDORDER'
,
factoryNo
:
userStore
.
user
?.
factory
.
id
,
warehouseId
:
_warehouseId
.
value
,
})
}
warehouseId
.
value
=
value
socket
.
send
({
code
:
'STARTORDER'
,
factoryNo
:
userStore
.
user
?.
factory
.
id
,
warehouseId
:
warehouseId
.
value
,
})
_warehouseId
.
value
=
value
initOrderDetailBox
()
}
</
script
>
<
style
scoped
lang=
"scss"
>
...
...
src/views/order/podUs/index.vue
View file @
b517d0c9
...
...
@@ -137,6 +137,16 @@
打印生产单
<
/ElButton
>
<
/span
>
<
span
v
-
if
=
"status === 'PICKING'"
class
=
"item"
>
<
ElButton
type
=
"success"
@
click
=
"printPickingOrder"
>
打印拣货单
<
/ElButton
>
<
/span
>
<
span
v
-
if
=
"status === 'PICKING'"
class
=
"item"
>
<
ElButton
type
=
"warning"
@
click
=
"pickingComplete"
>
拣胚完成
<
/ElButton
>
<
/span
>
<
span
v
-
if
=
"status === 'TO_BE_CONFIRMED'"
class
=
"item"
>
<
ElButton
type
=
"warning"
@
click
=
"changeExceptionOrder"
>
转为异常单
...
...
@@ -161,6 +171,14 @@
<
span
v
-
if
=
"status === 'WAIT_SHIPMENT'"
class
=
"item"
>
<
ElButton
type
=
"warning"
@
click
=
"printPodOrder"
>
POD
打单
<
/ElButton
>
<
/span
>
<
span
v
-
if
=
"status === 'STOCK_OUT'"
class
=
"item"
>
<
ElButton
type
=
"warning"
@
click
=
"stockOutCheck"
>
补货校验
<
/ElButton
>
<
/span
>
<
span
v
-
if
=
"status === 'STOCK_OUT'"
class
=
"item"
>
<
ElButton
type
=
"success"
@
click
=
"toBeConfirmed"
>
转至待确认
<
/ElButton
>
<
/span
>
<
span
class
=
"item"
>
<
ElButton
type
=
"primary"
@
click
=
"downloadMaterial"
>
下载素材
<
/ElButton
>
<
/span
>
...
...
@@ -172,12 +190,14 @@
class
=
"table-wrapper flex-1 flex-column overflow-hidden"
>
<
TableView
ref
=
"tableRef"
:
columns
=
"tableColumns"
:
stripe
=
"true"
:
serial
-
numberable
=
"true"
:
selectionable
=
"true"
:
paginated
-
data
=
"tableData"
:
cell
-
style
=
"onCellStyle"
:
row
-
style
=
"getRowStyle"
@
selection
-
change
=
"handleSelectionChange"
>
<
template
#
goods
=
"{ row
}
"
>
...
...
@@ -216,6 +236,12 @@
><
DocumentCopy
/><
/el-icon
>
<
/div
>
<
div
class
=
"goods-item-info-item"
>
<
span
class
=
"goods-item-info-item-label"
>
工艺
:
<
/span
>
<
span
class
=
"goods-item-info-item-value"
>
{{
item
.
craftName
}}
<
/span
>
<
/div
>
<
div
class
=
"goods-item-info-item"
>
<
span
class
=
"goods-item-info-item-label"
>
备注
:
<
/span
>
...
...
@@ -270,6 +296,12 @@
{{
item
.
factoryCode
}}
<
/span
>
<
/div
>
<
div
class
=
"goods-item-info-item"
>
<
span
class
=
"goods-item-info-item-label"
>
货号
:
<
/span
>
<
span
class
=
"goods-item-info-item-value"
>
{{
item
.
thirdSkuCode
}}
<
/span
>
<
/div
>
<
/div
>
<
div
class
=
"goods-item-info"
>
<
div
class
=
"goods-item-info-item"
>
...
...
@@ -285,11 +317,18 @@
<
/span
>
<
/div
>
<
div
class
=
"goods-item-info-item"
>
<
span
class
=
"goods-item-info-item-label"
>
工艺金额
:
<
/span
>
<
span
class
=
"goods-item-info-item-value"
>
{{
item
.
craftPrice
}}
(
¥
)
<
/span
>
<
/div
>
<
div
class
=
"goods-item-info-item"
>
<
span
class
=
"goods-item-info-item-label"
>
付款金额
:
<
/span
>
<
span
class
=
"goods-item-info-item-value"
>
{{
item
.
payAmount
}}
(
¥
)
<
/span
>
<
/div
>
<
div
class
=
"goods-item-info-item"
>
<
span
class
=
"goods-item-info-item-label"
>
{{
status
===
'TO_BE_CONFIRMED'
...
...
@@ -611,9 +650,37 @@
<
PodMakeOrder
v
-
model
=
"podOrderVisible"
:
print
-
order
=
"printOrder"
:
warehouse
-
list
=
"warehouseList"
@
set
-
printer
=
"handlePrinterChange"
@
refresh
=
"onFastRefresh"
/>
<
ElDialog
v
-
model
=
"productionClientVisible"
title
=
"生产端"
width
=
"600px"
:
close
-
on
-
click
-
modal
=
"false"
>
<
div
class
=
"production-client"
>
<
ElSelect
v
-
model
=
"productionClientValue"
clearable
placeholder
=
"请选择生产端"
>
<
ElOption
v
-
for
=
"(item, index) in productionClient"
:
key
=
"index"
:
value
=
"item.code"
:
label
=
"`${item.remark
}
(${item.code
}
)`"
><
/ElOption
>
<
/ElSelect
>
<
/div
>
<
template
#
footer
>
<
div
class
=
"dialog-footer"
>
<
ElButton
@
click
=
"productionClientVisible = false"
>
取消
<
/ElButton
>
<
ElButton
type
=
"primary"
@
click
=
"submit"
>
确认
<
/ElButton
>
<
/div
>
<
/template
>
<
/ElDialog
>
<
/template
>
<
script
setup
lang
=
"ts"
>
import
{
getUserMarkList
}
from
'@/api/common'
...
...
@@ -630,14 +697,22 @@ import {
printProductionOrderApi
,
getOrderDetailById
,
updateRemarkApi
,
getProductionClientApi
,
printPickingOrderApi
,
printPrintOrderApi
,
stockOutCheckApi
,
toBeConfirmedApi
,
loadWarehouseListApi
,
}
from
'@/api/podUsOrder'
import
TableView
from
'@/components/TableView.vue'
import
{
LogListData
,
PodUsOrderListData
,
ProductList
,
ProductionClient
,
SearchForm
,
Tab
,
WarehouseListData
,
cardImages
,
}
from
'@/types/api/podUsOrder'
import
usePageList
from
'@/utils/hooks/usePageList'
...
...
@@ -645,7 +720,7 @@ import { useValue } from '@/utils/hooks/useValue'
import
{
showConfirm
}
from
'@/utils/ui'
import
{
DocumentCopy
,
EditPen
}
from
'@element-plus/icons-vue'
import
{
Column
}
from
'element-plus'
import
{
computed
,
onMounted
,
ref
}
from
'vue'
import
{
computed
,
onMounted
,
ref
,
nextTick
}
from
'vue'
import
FastProduction
from
'./FastProduction.vue'
import
{
filePath
}
from
'@/api/axios'
import
PodMakeOrder
from
'./PodMakeOrder.vue'
...
...
@@ -807,6 +882,10 @@ const rightClick = (e: MouseEvent) => {
const
handleSelectionChange
=
(
val
:
PodUsOrderListData
[])
=>
{
selection
.
value
=
val
// 只在手动清空选择时,且当前没有补货成功的行时,才清除补货成功状态
if
(
val
.
length
===
0
&&
stockOutSuccessIds
.
value
.
length
===
0
)
{
stockOutSuccessIds
.
value
=
[]
}
}
const
changeTab
=
(
item
:
Tab
)
=>
{
status
.
value
=
item
.
status
||
''
...
...
@@ -912,24 +991,48 @@ const handleUpdateRemark = async (item: ProductList) => {
}
}
)
}
const
productionClientValue
=
ref
(
''
)
const
productionClient
=
ref
<
ProductionClient
[]
>
()
const
productionClientVisible
=
ref
(
false
)
let
confirmBtn
=
false
let
pickingBtn
=
false
let
printBtn
=
false
const
confirmOrder
=
async
()
=>
{
if
(
selection
.
value
.
length
===
0
)
{
return
ElMessage
.
warning
(
'请选择数据'
)
}
confirmBtn
=
true
pickingBtn
=
false
printBtn
=
false
productionClientValue
.
value
=
''
productionClientVisible
.
value
=
true
}
const
loadProductionClient
=
async
()
=>
{
try
{
await
showConfirm
(
'确定确认吗?'
,
{
confirmButtonText
:
'确认'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
,
}
)
}
catch
{
return
const
res
=
await
getProductionClientApi
()
if
(
res
.
code
!==
200
)
return
productionClient
.
value
=
res
.
data
}
catch
(
e
)
{
console
.
error
(
e
)
}
}
const
submit
=
async
()
=>
{
if
(
confirmBtn
)
{
await
submitConfirm
()
}
else
if
(
printBtn
)
{
await
submitPrintPickingOrder
()
}
else
if
(
pickingBtn
)
{
await
submitPickingOrder
()
}
}
const
submitConfirm
=
async
()
=>
{
const
ids
=
selection
.
value
.
map
((
item
)
=>
item
.
id
)
try
{
const
res
=
await
confirmOrderApi
(
ids
)
const
res
=
await
confirmOrderApi
(
ids
,
productionClientValue
.
value
)
if
(
res
.
code
!==
200
)
return
ElMessage
.
success
(
'操作成功'
)
productionClientVisible
.
value
=
false
confirmBtn
=
false
search
()
loadTabData
()
}
catch
(
e
)
{
...
...
@@ -970,12 +1073,59 @@ const printProductionOrder = async () => {
if
(
res
.
code
!==
200
)
return
ElMessage
.
success
(
'操作成功'
)
window
.
open
(
filePath
+
res
.
message
)
}
catch
(
e
)
{
console
.
error
(
e
)
}
}
const
printPickingOrder
=
async
()
=>
{
if
(
selection
.
value
.
length
===
0
)
{
return
ElMessage
.
warning
(
'请选择数据'
)
}
pickingBtn
=
false
printBtn
=
true
confirmBtn
=
false
productionClientVisible
.
value
=
true
productionClientValue
.
value
=
''
}
const
pickingComplete
=
async
()
=>
{
if
(
selection
.
value
.
length
===
0
)
{
return
ElMessage
.
warning
(
'请选择数据'
)
}
pickingBtn
=
true
printBtn
=
false
confirmBtn
=
false
productionClientVisible
.
value
=
true
productionClientValue
.
value
=
''
}
const
submitPrintPickingOrder
=
async
()
=>
{
const
orderIds
=
selection
.
value
.
map
((
item
)
=>
item
.
id
)
try
{
const
res
=
await
printPrintOrderApi
(
orderIds
,
productionClientValue
.
value
)
if
(
res
.
code
!==
200
)
return
ElMessage
.
success
(
'操作成功'
)
window
.
open
(
filePath
+
res
.
message
)
printBtn
=
false
}
catch
(
e
)
{
console
.
error
(
e
)
}
}
const
submitPickingOrder
=
async
()
=>
{
const
orderIds
=
selection
.
value
.
map
((
item
)
=>
item
.
id
)
try
{
const
res
=
await
printPickingOrderApi
(
orderIds
,
productionClientValue
.
value
,
)
if
(
res
.
code
!==
200
)
return
ElMessage
.
success
(
'操作成功'
)
search
()
loadTabData
()
printBtn
=
false
}
catch
(
e
)
{
console
.
error
(
e
)
}
}
const
changeExceptionOrder
=
async
()
=>
{
if
(
selection
.
value
.
length
===
0
)
{
return
ElMessage
.
warning
(
'请选择数据'
)
...
...
@@ -1123,6 +1273,81 @@ const printPodOrder = async () => {
sheetPrinter
.
value
=
lodop
.
GET_PRINTER_NAME
(
0
)
podOrderVisible
.
value
=
true
}
// 添加补货成功行的状态
const
stockOutSuccessIds
=
ref
<
number
[]
>
([])
const
stockOutCheck
=
async
()
=>
{
if
(
selection
.
value
.
length
===
0
)
{
return
ElMessage
.
warning
(
'请选择数据'
)
}
try
{
const
selectedIds
=
selection
.
value
.
map
((
item
)
=>
item
.
id
)
const
res
=
await
stockOutCheckApi
(
selectedIds
)
if
(
res
.
code
!==
200
)
return
const
successIds
=
res
.
data
||
[]
if
(
successIds
.
length
===
0
)
{
ElMessage
.
warning
(
'未补到货'
)
return
}
ElMessage
.
success
(
'操作成功'
)
const
{
success
,
others
}
=
(
tableData
.
value
as
PodUsOrderListData
[]
).
reduce
(
(
acc
,
item
)
=>
{
successIds
.
includes
(
item
.
id
)
?
acc
.
success
.
push
(
item
)
:
acc
.
others
.
push
(
item
)
return
acc
}
,
{
success
:
[]
as
PodUsOrderListData
[],
others
:
[]
as
PodUsOrderListData
[],
}
,
)
tableData
.
value
=
[...
success
,
...
others
]
// 更新补货成功的行ID
stockOutSuccessIds
.
value
=
successIds
// 等待DOM更新后再设置选中状态
await
nextTick
()
// 清除所有选中状态
tableRef
.
value
?.
clearSelection
()
// 选中补货成功的行
success
.
forEach
((
row
)
=>
{
tableRef
.
value
?.
toggleRowSelection
(
row
,
true
)
}
)
}
catch
(
error
)
{
console
.
error
(
'补货校验失败:'
,
error
)
}
}
const
toBeConfirmed
=
async
()
=>
{
if
(
selection
.
value
.
length
===
0
)
{
return
ElMessage
.
warning
(
'请选择数据'
)
}
try
{
await
ElMessageBox
.
confirm
(
'确定转至待确认吗?'
,
'提示'
,
{
confirmButtonText
:
'确定'
,
cancelButtonText
:
'取消'
,
type
:
'warning'
,
}
)
}
catch
(
e
)
{
return
}
try
{
const
res
=
await
toBeConfirmedApi
(
selection
.
value
.
map
((
item
)
=>
item
.
id
))
if
(
res
.
code
!==
200
)
return
ElMessage
.
success
(
'操作成功'
)
search
()
loadTabData
()
}
catch
(
e
)
{
console
.
error
(
e
)
}
}
const
sheetPrinter
=
ref
(
''
)
const
handlePrinterChange
=
(
value
:
string
)
=>
{
sheetPrinter
.
value
=
value
...
...
@@ -1307,9 +1532,33 @@ const onFastRefresh = () => {
loadTabData
()
search
()
}
// 修改行样式方法
const
getRowStyle
=
({
row
}
:
{
row
:
PodUsOrderListData
}
)
=>
{
if
(
stockOutSuccessIds
.
value
.
includes
(
row
.
id
))
{
return
{
backgroundColor
:
'#f0f9eb'
,
color
:
'#67c23a'
,
}
}
return
{
}
}
// 添加表格ref
const
tableRef
=
ref
()
const
warehouseList
=
ref
<
WarehouseListData
[]
>
([])
const
loadWarehouseList
=
async
()
=>
{
try
{
const
res
=
await
loadWarehouseListApi
()
if
(
res
.
code
!==
200
)
return
warehouseList
.
value
=
res
.
data
}
catch
(
e
)
{
console
.
error
(
e
)
}
}
onMounted
(()
=>
{
loadTabData
()
getUserMark
()
loadProductionClient
()
loadWarehouseList
()
}
)
<
/script
>
<
style
lang
=
"scss"
scoped
>
...
...
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