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
888af742
Commit
888af742
authored
Jun 11, 2026
by
qinjianhui
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' into 'master'
Dev See merge request
!212
parents
acdec884
3bbd5f32
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
152 additions
and
56 deletions
+152
-56
components.d.ts
+0
-1
src/api/cancelOrderProcess.ts
+12
-4
src/api/factoryOrderNew.ts
+15
-0
src/api/warehouse.ts
+1
-1
src/router/menu.ts
+5
-5
src/types/api/warehouse.ts
+2
-0
src/views/order/cancelOrderProcess/index.vue
+83
-33
src/views/order/components/FastProduction.vue
+0
-0
src/views/order/factoryOrderNew/index.vue
+0
-0
src/views/order/podUs/PodMakeOrder.vue
+34
-5
vite.config.ts
+0
-7
No files found.
components.d.ts
View file @
888af742
...
@@ -54,7 +54,6 @@ declare module 'vue' {
...
@@ -54,7 +54,6 @@ declare module 'vue' {
ElTag
:
typeof
import
(
'element-plus/es'
)[
'ElTag'
]
ElTag
:
typeof
import
(
'element-plus/es'
)[
'ElTag'
]
ElTimeline
:
typeof
import
(
'element-plus/es'
)[
'ElTimeline'
]
ElTimeline
:
typeof
import
(
'element-plus/es'
)[
'ElTimeline'
]
ElTimelineItem
:
typeof
import
(
'element-plus/es'
)[
'ElTimelineItem'
]
ElTimelineItem
:
typeof
import
(
'element-plus/es'
)[
'ElTimelineItem'
]
ElTimePicker
:
typeof
import
(
'element-plus/es'
)[
'ElTimePicker'
]
ElTooltip
:
typeof
import
(
'element-plus/es'
)[
'ElTooltip'
]
ElTooltip
:
typeof
import
(
'element-plus/es'
)[
'ElTooltip'
]
ElTree
:
typeof
import
(
'element-plus/es'
)[
'ElTree'
]
ElTree
:
typeof
import
(
'element-plus/es'
)[
'ElTree'
]
ElTreeSelect
:
typeof
import
(
'element-plus/es'
)[
'ElTreeSelect'
]
ElTreeSelect
:
typeof
import
(
'element-plus/es'
)[
'ElTreeSelect'
]
...
...
src/api/cancelOrderProcess.ts
View file @
888af742
...
@@ -2,6 +2,7 @@ import axios from './axios'
...
@@ -2,6 +2,7 @@ import axios from './axios'
import
type
{
BasePaginationData
,
BaseRespData
}
from
'@/types/api'
import
type
{
BasePaginationData
,
BaseRespData
}
from
'@/types/api'
import
type
{
CancelOrderProcessStateGroupMap
}
from
'@/types/api/cancelOrderProcess'
import
type
{
CancelOrderProcessStateGroupMap
}
from
'@/types/api/cancelOrderProcess'
import
type
{
operateOrderListData
}
from
'@/types/api/factoryOrderNew'
import
type
{
operateOrderListData
}
from
'@/types/api/factoryOrderNew'
import
{
InterskuList
}
from
'@/types/api/warehouse'
function
normalizePodOrderQueryPayload
(
function
normalizePodOrderQueryPayload
(
data
:
Record
<
string
,
unknown
>
,
data
:
Record
<
string
,
unknown
>
,
...
@@ -20,7 +21,7 @@ function normalizePodOrderQueryPayload(
...
@@ -20,7 +21,7 @@ function normalizePodOrderQueryPayload(
export
function
getCancelOrderProcessStateGroupMapApi
()
{
export
function
getCancelOrderProcessStateGroupMapApi
()
{
return
axios
.
get
<
never
,
BaseRespData
<
CancelOrderProcessStateGroupMap
>>
(
return
axios
.
get
<
never
,
BaseRespData
<
CancelOrderProcessStateGroupMap
>>
(
'factory/podOrderOperation
ForReclaim/findStateGroupM
ap'
,
'factory/podOrderOperation
/find-state-group-m
ap'
,
)
)
}
}
...
@@ -32,13 +33,13 @@ export function getCancelOrderProcessListApi(
...
@@ -32,13 +33,13 @@ export function getCancelOrderProcessListApi(
)
{
)
{
const
body
=
normalizePodOrderQueryPayload
({
...
data
})
const
body
=
normalizePodOrderQueryPayload
({
...
data
})
return
axios
.
post
<
never
,
BasePaginationData
<
operateOrderListData
>>
(
return
axios
.
post
<
never
,
BasePaginationData
<
operateOrderListData
>>
(
'factory/podOrderOperation
ForReclaim/list_
page'
,
'factory/podOrderOperation
/list-
page'
,
{
...
body
,
currentPage
,
pageSize
,
alreadyInStock
},
{
...
body
,
currentPage
,
pageSize
,
alreadyInStock
},
)
)
}
}
export
function
getOperationInfoByNoApi
(
operationNo
:
string
)
{
export
function
getOperationInfoByNoApi
(
operationNo
:
string
)
{
return
axios
.
get
<
never
,
BaseRespData
<
operateOrderListData
>>
(
return
axios
.
get
<
never
,
BaseRespData
<
operateOrderListData
>>
(
`factory/podOrderOperation
ForReclaim/getByOperationN
o?operationNo=
${
operationNo
}
`
,
`factory/podOrderOperation
/get-by-operation-n
o?operationNo=
${
operationNo
}
`
,
)
)
}
}
export
function
completeDeliveryByCancelOrderProcessApi
(
data
:
{
export
function
completeDeliveryByCancelOrderProcessApi
(
data
:
{
...
@@ -47,7 +48,14 @@ export function completeDeliveryByCancelOrderProcessApi(data: {
...
@@ -47,7 +48,14 @@ export function completeDeliveryByCancelOrderProcessApi(data: {
warehouseId
:
number
warehouseId
:
number
})
{
})
{
return
axios
.
post
<
never
,
BaseRespData
<
never
>>
(
return
axios
.
post
<
never
,
BaseRespData
<
never
>>
(
'factory/podOrderOperation
ForReclaim/storeAfterS
can'
,
'factory/podOrderOperation
/store-after-s
can'
,
data
,
data
,
)
)
}
}
export
function
getBySkuAndUserMarkAndInboundTypeApi
(
operationNo
:
string
[])
{
return
axios
.
post
<
never
,
BaseRespData
<
InterskuList
[]
>>
(
'factory/podOrderOperation/get-product-by-operation-no'
,
operationNo
,
)
}
src/api/factoryOrderNew.ts
View file @
888af742
...
@@ -535,6 +535,14 @@ export function completeDeliveryApi(ids: (number | string)[]) {
...
@@ -535,6 +535,14 @@ export function completeDeliveryApi(ids: (number | string)[]) {
)
)
}
}
// 生产扫码
export
function
productionScanApi
(
id
:
number
|
string
,
status
:
string
)
{
return
axios
.
get
<
never
,
BaseRespData
<
never
>>
(
'factory/podOrderOperation/scan-produce'
,
{
params
:
{
id
,
status
}
},
)
}
export
function
applyForProductByIdApi
(
id
:
string
,
url
:
string
)
{
export
function
applyForProductByIdApi
(
id
:
string
,
url
:
string
)
{
return
axios
.
get
<
never
,
BaseRespData
<
operateOrderListData
[]
>>
(
url
,
{
return
axios
.
get
<
never
,
BaseRespData
<
operateOrderListData
[]
>>
(
url
,
{
params
:
{
podProductId
:
id
},
params
:
{
podProductId
:
id
},
...
@@ -550,6 +558,13 @@ export function getByOperationNoLogApi(operationNo: string) {
...
@@ -550,6 +558,13 @@ export function getByOperationNoLogApi(operationNo: string) {
)
)
}
}
// 校验库存
export
function
checkInventoryApi
(
id
:
number
|
string
,
status
:
string
)
{
return
axios
.
get
<
never
,
BaseRespData
<
never
>>
(
'factory/podOrderOperation/check-inventory'
,
{
params
:
{
id
,
status
}
},
)
}
export
function
listByNoPodOrderApi
(
params
:
{
export
function
listByNoPodOrderApi
(
params
:
{
type
:
string
type
:
string
no
:
string
no
:
string
...
...
src/api/warehouse.ts
View file @
888af742
...
@@ -394,7 +394,7 @@ export function rejectInRecordApi({
...
@@ -394,7 +394,7 @@ export function rejectInRecordApi({
)
)
}
}
export
function
addInRecordApi
(
form
:
InterWarehouseDetail
)
{
export
function
addInRecordApi
(
form
:
InterWarehouseDetail
)
{
return
axios
.
post
<
never
,
BaseRespData
<
never
>>
(
return
axios
.
post
<
never
,
BaseRespData
<
unknown
>>
(
'factory/warehouseInRecord/add'
,
'factory/warehouseInRecord/add'
,
{
{
...
form
,
...
form
,
...
...
src/router/menu.ts
View file @
888af742
...
@@ -151,11 +151,11 @@ const menu: MenuItem[] = [
...
@@ -151,11 +151,11 @@ const menu: MenuItem[] = [
id
:
12
,
id
:
12
,
label
:
'工厂订单(NEW)'
,
label
:
'工厂订单(NEW)'
,
},
},
//
{
{
//
index: '/order/cancel-order-process',
index
:
'/order/cancel-order-process'
,
//
id: 13,
id
:
13
,
//
label: '取消后订单处理',
label
:
'取消后订单处理'
,
//
},
},
],
],
},
},
{
{
...
...
src/types/api/warehouse.ts
View file @
888af742
...
@@ -123,6 +123,8 @@ export interface InterskuList {
...
@@ -123,6 +123,8 @@ export interface InterskuList {
remark
?:
string
|
null
remark
?:
string
|
null
currencyName
?:
string
|
null
currencyName
?:
string
|
null
currencyCode
?:
string
|
null
currencyCode
?:
string
|
null
buyStored
?:
number
|
null
totalPrice
?:
number
|
null
}
}
export
interface
ILocation
{
export
interface
ILocation
{
id
?:
number
id
?:
number
...
...
src/views/order/cancelOrderProcess/index.vue
View file @
888af742
...
@@ -327,6 +327,7 @@
...
@@ -327,6 +327,7 @@
</div>
</div>
<FastProduction
<FastProduction
v-model:detail-visible=
"detailVisible"
v-model:detail-visible=
"detailVisible"
:dialog-title=
"dialogTitle"
:is-new-order=
"true"
:is-new-order=
"true"
:detail-data=
"detailData"
:detail-data=
"detailData"
:fast-key=
"fastKey"
:fast-key=
"fastKey"
...
@@ -385,6 +386,7 @@ import {
...
@@ -385,6 +386,7 @@ import {
getCancelOrderProcessStateGroupMapApi
,
getCancelOrderProcessStateGroupMapApi
,
getOperationInfoByNoApi
,
getOperationInfoByNoApi
,
completeDeliveryByCancelOrderProcessApi
,
completeDeliveryByCancelOrderProcessApi
,
getBySkuAndUserMarkAndInboundTypeApi
,
}
from
'@/api/cancelOrderProcess'
}
from
'@/api/cancelOrderProcess'
import
type
{
CardLayoutListFetcher
}
from
'@/types/api/factoryOrderNew'
import
type
{
CardLayoutListFetcher
}
from
'@/types/api/factoryOrderNew'
import
LogisticsWaySelect
from
'@/views/logistics/components/LogisticsWaySelect'
import
LogisticsWaySelect
from
'@/views/logistics/components/LogisticsWaySelect'
...
@@ -393,7 +395,6 @@ import ProductTypeFilter from '../factoryOrderNew/component/ProductTypeFilter.vu
...
@@ -393,7 +395,6 @@ import ProductTypeFilter from '../factoryOrderNew/component/ProductTypeFilter.vu
import
{
CaretBottom
,
CaretTop
}
from
'@element-plus/icons-vue'
import
{
CaretBottom
,
CaretTop
}
from
'@element-plus/icons-vue'
import
{
normalizeProductMarkListForQuery
}
from
'../factoryOrderNew/utils/productMarkQuery'
import
{
normalizeProductMarkListForQuery
}
from
'../factoryOrderNew/utils/productMarkQuery'
import
FastProduction
from
'../components/FastProduction.vue'
import
FastProduction
from
'../components/FastProduction.vue'
import
{
ResultInfoDataItem
}
from
'@/types/api/order/common'
import
{
ElButton
}
from
'element-plus'
import
{
ElButton
}
from
'element-plus'
import
ReceiptProductDialog
from
'@/views/warehouse/components/ReceiptProductDialog.vue'
import
ReceiptProductDialog
from
'@/views/warehouse/components/ReceiptProductDialog.vue'
import
{
useValue
}
from
'@/utils/hooks/useValue'
import
{
useValue
}
from
'@/utils/hooks/useValue'
...
@@ -412,6 +413,7 @@ import {
...
@@ -412,6 +413,7 @@ import {
warehouseInfoGetAll
,
warehouseInfoGetAll
,
}
from
'@/api/warehouse'
}
from
'@/api/warehouse'
import
type
{
CancelOrderProcessStateGroupMap
}
from
'@/types/api/cancelOrderProcess'
import
type
{
CancelOrderProcessStateGroupMap
}
from
'@/types/api/cancelOrderProcess'
import
BigNumber
from
'bignumber.js'
const
cardLayoutRef
=
ref
()
const
cardLayoutRef
=
ref
()
...
@@ -545,23 +547,14 @@ const completeOperationById = (_: number[], detail: Record<string, unknown>) =>
...
@@ -545,23 +547,14 @@ const completeOperationById = (_: number[], detail: Record<string, unknown>) =>
warehouseId
:
detail
.
warehouseId
as
number
,
warehouseId
:
detail
.
warehouseId
as
number
,
inboundType
:
fastInboundType
.
value
,
inboundType
:
fastInboundType
.
value
,
})
})
const
handleFastProductionSuccess
=
(
data
:
ResultInfoDataItem
[])
=>
{
const
handleFastProductionSuccess
=
()
=>
{
const
result
=
data
[
0
]
ElMessage
.
success
(
'入库成功'
)
if
(
!
result
.
status
)
{
ElMessageBox
.
alert
(
`操作单号
${
result
.
factoryOrderNumber
}
${
result
.
message
}
`
,
'提示'
,
{
type
:
'error'
,
},
)
return
}
}
}
const
fastClose
=
()
=>
{
const
fastClose
=
()
=>
{
detailVisible
.
value
=
false
detailVisible
.
value
=
false
if
(
fastKey
.
value
===
'detail'
)
return
if
(
fastKey
.
value
===
'detail'
)
return
search
()
search
()
loadOrderStatusCounts
()
}
}
const
{
const
{
userMarkList
,
userMarkList
,
...
@@ -614,7 +607,10 @@ const { skuData, setCostPrice, filterSkuData } = useReceiptProductDialog({
...
@@ -614,7 +607,10 @@ const { skuData, setCostPrice, filterSkuData } = useReceiptProductDialog({
selectSku
:
receiptSelectSku
,
selectSku
:
receiptSelectSku
,
userMarkList
:
receiptUserMarkList
,
userMarkList
:
receiptUserMarkList
,
})
})
function
mapInterskuToProduct
(
val
:
InterskuList
):
InterProductList
{
function
mapInterskuToProduct
(
val
:
InterskuList
,
type
:
'completeProduction'
|
'embryoInStock'
,
):
InterProductList
{
const
warehouseSku
=
val
.
warehouseSku
||
val
.
sku
||
''
const
warehouseSku
=
val
.
warehouseSku
||
val
.
sku
||
''
const
skuNameVal
=
val
.
skuName
||
val
.
productName
||
''
const
skuNameVal
=
val
.
skuName
||
val
.
productName
||
''
let
customerId
:
number
|
null
=
null
let
customerId
:
number
|
null
=
null
...
@@ -622,6 +618,16 @@ function mapInterskuToProduct(val: InterskuList): InterProductList {
...
@@ -622,6 +618,16 @@ function mapInterskuToProduct(val: InterskuList): InterProductList {
const
n
=
Number
(
val
.
customerId
)
const
n
=
Number
(
val
.
customerId
)
if
(
!
Number
.
isNaN
(
n
))
customerId
=
n
if
(
!
Number
.
isNaN
(
n
))
customerId
=
n
}
}
if
(
type
===
'embryoInStock'
)
{
const
operationList
=
cardSelectList
.
value
.
filter
(
(
r
)
=>
r
.
thirdSkuCode
===
val
.
warehouseSku
,
)
val
.
buyStored
=
operationList
?
operationList
.
length
:
0
}
const
amount
=
new
BigNumber
(
val
.
buyStored
??
0
)
.
multipliedBy
(
val
.
costPrice
??
0
)
.
toFixed
(
2
)
val
.
totalPrice
=
Number
(
amount
)
as
number
return
{
return
{
skuImage
:
val
.
skuImage
||
val
.
image
||
''
,
skuImage
:
val
.
skuImage
||
val
.
image
||
''
,
warehouseSku
,
warehouseSku
,
...
@@ -630,8 +636,8 @@ function mapInterskuToProduct(val: InterskuList): InterProductList {
...
@@ -630,8 +636,8 @@ function mapInterskuToProduct(val: InterskuList): InterProductList {
locationCode
:
val
.
locationCode
??
''
,
locationCode
:
val
.
locationCode
??
''
,
locationId
:
val
.
locationId
??
null
,
locationId
:
val
.
locationId
??
null
,
costPrice
:
val
.
costPrice
??
null
,
costPrice
:
val
.
costPrice
??
null
,
buyStored
:
null
,
buyStored
:
val
.
buyStored
??
null
,
totalPrice
:
null
,
totalPrice
:
val
.
totalPrice
??
null
,
currencyName
:
val
.
currencyName
??
null
,
currencyName
:
val
.
currencyName
??
null
,
currencyCode
:
val
.
currencyCode
??
null
,
currencyCode
:
val
.
currencyCode
??
null
,
customerId
,
customerId
,
...
@@ -641,20 +647,40 @@ function mapInterskuToProduct(val: InterskuList): InterProductList {
...
@@ -641,20 +647,40 @@ function mapInterskuToProduct(val: InterskuList): InterProductList {
}
}
const
handleEmbryoInStock
=
async
()
=>
{
const
handleEmbryoInStock
=
async
()
=>
{
if
(
cardSelectList
.
value
.
length
!==
0
)
{
if
(
cardSelectList
.
value
.
length
!==
0
)
{
handleEmbryoInStockByCard
()
handleEmbryoInStockByCard
(
'embryoInStock'
)
}
else
{
}
else
{
handleEmbryoInFastStock
(
0
)
handleEmbryoInFastStock
(
0
)
}
}
}
}
const
dialogTitle
=
computed
(()
=>
{
return
fastKey
.
value
===
'fastReceipt'
?
fastInboundType
.
value
===
1
?
'生产完成-快捷入库'
:
'胚衣-快捷入库'
:
'查看详情'
})
const
handleEmbryoInFastStock
=
(
inboundType
:
number
)
=>
{
const
handleEmbryoInFastStock
=
(
inboundType
:
number
)
=>
{
fastInboundType
.
value
=
inboundType
fastInboundType
.
value
=
inboundType
fastKey
.
value
=
'fastReceipt'
fastKey
.
value
=
'fastReceipt'
detailVisible
.
value
=
true
detailVisible
.
value
=
true
detailData
.
value
=
{}
detailData
.
value
=
{}
}
}
const
handleEmbryoInStockByCard
=
async
()
=>
{
const
handleEmbryoInStockByCard
=
async
(
const
firstWid
=
cardSelectList
.
value
[
0
].
warehouseId
type
:
'completeProduction'
|
'embryoInStock'
,
if
(
cardSelectList
.
value
.
some
((
r
)
=>
r
.
warehouseId
!==
firstWid
))
{
)
=>
{
let
operationList
if
(
type
===
'completeProduction'
)
{
operationList
=
cardSelectList
.
value
.
filter
((
r
)
=>
r
.
inboundType
!==
2
)
if
(
operationList
.
length
===
0
)
{
ElMessage
.
error
(
'客户定制商品,不能入库!'
)
return
}
}
else
{
operationList
=
cardSelectList
.
value
}
fastInboundType
.
value
=
type
===
'completeProduction'
?
1
:
0
const
firstWid
=
operationList
[
0
].
warehouseId
if
(
operationList
.
some
((
r
)
=>
r
.
warehouseId
!==
firstWid
))
{
return
ElMessage
.
error
(
'请选择相同仓库的库存SKU!'
)
return
ElMessage
.
error
(
'请选择相同仓库的库存SKU!'
)
}
}
resetReceiptEditForm
()
resetReceiptEditForm
()
...
@@ -674,8 +700,7 @@ const handleEmbryoInStockByCard = async () => {
...
@@ -674,8 +700,7 @@ const handleEmbryoInStockByCard = async () => {
}
}
}
}
receiptEditForm
.
value
.
warehouseId
=
firstWid
receiptEditForm
.
value
.
warehouseId
=
firstWid
receiptEditForm
.
value
.
warehouseName
=
cardSelectList
.
value
[
0
]
receiptEditForm
.
value
.
warehouseName
=
operationList
[
0
].
warehouseName
as
string
.
warehouseName
as
string
const
wh
=
warehouseList
.
value
.
find
((
w
)
=>
w
.
id
==
firstWid
)
const
wh
=
warehouseList
.
value
.
find
((
w
)
=>
w
.
id
==
firstWid
)
if
(
wh
)
{
if
(
wh
)
{
receiptEditForm
.
value
.
warehouseName
=
wh
.
name
receiptEditForm
.
value
.
warehouseName
=
wh
.
name
...
@@ -685,11 +710,16 @@ const handleEmbryoInStockByCard = async () => {
...
@@ -685,11 +710,16 @@ const handleEmbryoInStockByCard = async () => {
background
:
'rgba(0, 0, 0, 0.3)'
,
background
:
'rgba(0, 0, 0, 0.3)'
,
})
})
try
{
try
{
const
skus
=
cardSelectList
.
value
.
map
((
r
)
=>
r
.
thirdSkuCode
as
string
)
const
skus
=
operationList
.
map
((
r
)
=>
r
.
thirdSkuCode
as
string
)
const
res
=
await
getBySkuAndUserMarkApi
(
firstWid
,
skus
.
join
(
','
),
null
)
const
res
=
type
===
'embryoInStock'
?
await
getBySkuAndUserMarkApi
(
firstWid
,
skus
.
join
(
','
),
null
)
:
await
getBySkuAndUserMarkAndInboundTypeApi
(
operationList
.
map
((
r
)
=>
r
.
operationNo
as
string
),
)
if
(
res
.
code
!==
200
)
return
if
(
res
.
code
!==
200
)
return
otherPurchaseData
.
value
=
res
.
data
.
map
((
item
:
InterskuList
)
=>
otherPurchaseData
.
value
=
res
.
data
.
map
((
item
:
InterskuList
)
=>
mapInterskuToProduct
(
item
),
mapInterskuToProduct
(
item
,
type
),
)
)
await
fetchReceiptLocationList
(
''
)
await
fetchReceiptLocationList
(
''
)
const
listRes
=
await
warehouseInfoGetAll
()
const
listRes
=
await
warehouseInfoGetAll
()
...
@@ -758,7 +788,17 @@ const handleReceiptSave = async () => {
...
@@ -758,7 +788,17 @@ const handleReceiptSave = async () => {
}
catch
{
}
catch
{
return
return
}
}
const
arr
=
otherPurchaseData
.
value
const
arr
=
otherPurchaseData
.
value
.
map
((
item
)
=>
{
const
operationForReclaimList
=
cardSelectList
.
value
.
filter
((
r
)
=>
fastInboundType
.
value
===
1
?
`
${
r
.
userMark
}${
r
.
variantSku
}
`
===
item
.
warehouseSku
:
r
.
thirdSkuCode
===
item
.
warehouseSku
,
)
return
{
...
item
,
operationForReclaimList
:
operationForReclaimList
,
}
})
if
(
arr
.
length
===
0
)
{
if
(
arr
.
length
===
0
)
{
ElMessage
.
error
(
'请至少选择一条数据'
)
ElMessage
.
error
(
'请至少选择一条数据'
)
return
return
...
@@ -780,17 +820,31 @@ const handleReceiptSave = async () => {
...
@@ -780,17 +820,31 @@ const handleReceiptSave = async () => {
}
}
}
}
const
params
=
{
const
params
=
{
forNewProduct
:
fastInboundType
.
value
===
1
,
...
receiptEditForm
.
value
,
...
receiptEditForm
.
value
,
productList
:
otherPurchaseData
.
value
,
productList
:
arr
,
}
}
const
loading
=
ElLoading
.
service
({
const
loading
=
ElLoading
.
service
({
text
:
'保存中...'
,
text
:
'保存中...'
,
background
:
'rgba(0, 0, 0, 0.3)'
,
background
:
'rgba(0, 0, 0, 0.3)'
,
})
})
try
{
try
{
await
addInRecordApi
(
params
)
const
res
=
await
addInRecordApi
(
params
)
if
(
res
.
code
!==
200
)
return
if
(
res
.
data
&&
Array
.
isArray
(
res
.
data
)
&&
res
.
data
.
length
>
0
)
{
ElMessageBox
.
alert
(
`操作单号:
${
res
.
data
.
map
((
e
:
number
)
=>
e
).
join
(
','
)}
入库失败`
,
'提示'
,
{
type
:
'error'
,
},
)
}
else
{
ElMessage
.
success
(
'保存成功'
)
ElMessage
.
success
(
'保存成功'
)
}
receiptDialogVisible
.
value
=
false
receiptDialogVisible
.
value
=
false
search
()
loadOrderStatusCounts
()
}
catch
(
e
)
{
}
catch
(
e
)
{
console
.
error
(
e
)
console
.
error
(
e
)
}
finally
{
}
finally
{
...
@@ -800,11 +854,7 @@ const handleReceiptSave = async () => {
...
@@ -800,11 +854,7 @@ const handleReceiptSave = async () => {
const
handleProductionCompleteInStock
=
()
=>
{
const
handleProductionCompleteInStock
=
()
=>
{
// 客户定制的单子不能操作生产完成入库,提示:客户定制商品,不能入库!
// 客户定制的单子不能操作生产完成入库,提示:客户定制商品,不能入库!
if
(
cardSelectList
.
value
.
length
!==
0
)
{
if
(
cardSelectList
.
value
.
length
!==
0
)
{
if
(
cardSelectList
.
value
.
some
((
r
)
=>
r
.
inboundType
===
2
))
{
handleEmbryoInStockByCard
(
'completeProduction'
)
ElMessage
.
error
(
'客户定制商品,不能入库!'
)
return
}
handleEmbryoInStockByCard
()
}
else
{
}
else
{
handleEmbryoInFastStock
(
1
)
handleEmbryoInFastStock
(
1
)
}
}
...
...
src/views/order/components/FastProduction.vue
View file @
888af742
This diff is collapsed.
Click to expand it.
src/views/order/factoryOrderNew/index.vue
View file @
888af742
This diff is collapsed.
Click to expand it.
src/views/order/podUs/PodMakeOrder.vue
View file @
888af742
...
@@ -13,7 +13,7 @@
...
@@ -13,7 +13,7 @@
>
>
<template
#
header
>
<template
#
header
>
<div
class=
"title"
>
<div
class=
"title"
>
<span>
播种墙配货
</span>
<span>
{{
isNewOrder
?
'配货打单'
:
'播种墙配货'
}}
</span>
<span
v-if=
"socketConnect === 'online'"
class=
"online"
>
[在线]
</span>
<span
v-if=
"socketConnect === 'online'"
class=
"online"
>
[在线]
</span>
<span
v-else
class=
"offline"
>
[离线]
</span>
<span
v-else
class=
"offline"
>
[离线]
</span>
<ElButton
<ElButton
...
@@ -169,7 +169,17 @@
...
@@ -169,7 +169,17 @@
>
>
{{ podOrderDetailsData?.pickingNumber }}
{{ podOrderDetailsData?.pickingNumber }}
</div>
</div>
<span
style=
"font-size: 30px"
>
件商品
</span>
<span
v-if=
"
podOrderDetailsData?.pickingNumber != null &&
podOrderDetailsData?.purchaseNumber != null &&
podOrderDetailsData.pickingNumber ===
podOrderDetailsData.purchaseNumber
"
style=
"font-size: 30px"
>
件已配齐
</span
>
<span
v-else
style=
"font-size: 30px"
>
件商品
</span>
</div>
</div>
<div
v-else
class=
"box-top-item-box-index-text"
>
<div
v-else
class=
"box-top-item-box-index-text"
>
单件商品
<span
style=
"color: rgb(0, 255, 0)"
>
(配齐)
</span
单件商品
<span
style=
"color: rgb(0, 255, 0)"
>
(配齐)
</span
...
@@ -288,6 +298,7 @@ import socket from '@/utils/websocket'
...
@@ -288,6 +298,7 @@ import socket from '@/utils/websocket'
import
{
WarehouseListData
}
from
'@/types/index'
import
{
WarehouseListData
}
from
'@/types/index'
import
{
filePath
}
from
'@/api/axios.ts'
import
{
filePath
}
from
'@/api/axios.ts'
import
{
ElButton
,
ElIcon
,
ElTag
}
from
'element-plus'
import
{
ElButton
,
ElIcon
,
ElTag
}
from
'element-plus'
import
{
BaseRespData
}
from
'@/types/api'
const
{
getCLodop
}
=
useLodop
()
const
{
getCLodop
}
=
useLodop
()
...
@@ -793,6 +804,7 @@ const getPackingData = async (code: string) => {
...
@@ -793,6 +804,7 @@ const getPackingData = async (code: string) => {
}
}
}
}
const
res
=
await
getPackingDataApi
(
url
,
params
)
const
res
=
await
getPackingDataApi
(
url
,
params
)
if
(
res
.
code
!==
200
)
{
if
(
res
.
code
!==
200
)
{
ElMessage
.
warning
(
res
.
message
)
ElMessage
.
warning
(
res
.
message
)
isLock
.
value
=
false
isLock
.
value
=
false
...
@@ -829,7 +841,24 @@ const getPackingData = async (code: string) => {
...
@@ -829,7 +841,24 @@ const getPackingData = async (code: string) => {
// }
// }
}
catch
(
error
)
{
}
catch
(
error
)
{
console
.
log
(
error
)
const
err
=
error
as
BaseRespData
<
{
inventory
:
number
producingQuantity
:
number
availableInventory
:
number
thirdSkuCode
?:
string
}
>
if
(
props
.
isNewOrder
&&
err
?.
code
===
301
)
{
loading
.
close
()
await
ElMessageBox
.
alert
(
`
${
err
.
data
?.
thirdSkuCode
}
库存不足,无法进入生产!请联系仓库管理人员核对库存。
<
br
/>
库存数量:
$
{
err
.
data
?.
inventory
}
,生产中的数量:
$
{
err
.
data
?.
producingQuantity
}
,
<
span
style
=
"color: red"
>
可调配库存:
$
{
err
.
data
?.
availableInventory
}
<
/span>`
,
'提示'
,
{
type
:
'warning'
,
dangerouslyUseHTMLString
:
true
,
},
)
}
}
finally
{
}
finally
{
isLock
.
value
=
false
isLock
.
value
=
false
productionOrder
.
value
=
''
productionOrder
.
value
=
''
...
@@ -1394,7 +1423,7 @@ const reconnectWebSocket = async () => {
...
@@ -1394,7 +1423,7 @@ const reconnectWebSocket = async () => {
font-size
:
60px
;
font-size
:
60px
;
color
:
red
;
color
:
red
;
text-align
:
center
;
text-align
:
center
;
width
:
12
0px
;
width
:
8
0px
;
font-weight
:
600
;
font-weight
:
600
;
}
}
.box-top-item-box-index-text
{
.box-top-item-box-index-text
{
...
@@ -1406,7 +1435,7 @@ const reconnectWebSocket = async () => {
...
@@ -1406,7 +1435,7 @@ const reconnectWebSocket = async () => {
color
:
red
;
color
:
red
;
display
:
inline-block
;
display
:
inline-block
;
text-align
:
center
;
text-align
:
center
;
width
:
9
0px
;
width
:
8
0px
;
font-weight
:
600
;
font-weight
:
600
;
}
}
.box-top-item-status
{
.box-top-item-status
{
...
...
vite.config.ts
View file @
888af742
...
@@ -7,13 +7,6 @@ import vueJsx from '@vitejs/plugin-vue-jsx'
...
@@ -7,13 +7,6 @@ import vueJsx from '@vitejs/plugin-vue-jsx'
import
compression
from
'vite-plugin-compression'
import
compression
from
'vite-plugin-compression'
export
default
defineConfig
({
export
default
defineConfig
({
base
:
'/'
,
base
:
'/'
,
server
:{
proxy
:
{
'/api/'
:
{
target
:
'http://172.16.17.244:8060'
,
},
},
},
plugins
:
[
plugins
:
[
vue
(),
vue
(),
...
...
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