Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
J
jiedao-app-operator-master
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lanbaoming
jiedao-app-operator-master
Commits
e5430c88
Commit
e5430c88
authored
Jun 10, 2023
by
dragondean@qq.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
拆单升级
parent
09b9105e
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
290 additions
and
76 deletions
+290
-76
App.vue
src/App.vue
+6
-1
splitApply.vue
src/views/ecw/order/splitApply.vue
+284
-75
No files found.
src/App.vue
View file @
e5430c88
...
...
@@ -50,7 +50,12 @@ export default {
padding
:
50px
;
text-align
:
center
;
}
$sizes
:
0
,
10
,
20
,
30
,
50
,
100
,
150
,
200
,
300
,
500
,
800
,
1000
;
/*给el-input-number一个紧凑的样式*/
.el-input-number.is-controls-right.tight
.el-input__inner
{
padding-right
:
30px
;
padding-left
:
5px
;
}
$sizes
:
0
,
10
,
20
,
30
,
50
,
75
,
100
,
150
,
200
,
300
,
500
,
800
,
1000
;
@for
$i
from
1
through
length
(
$sizes
){
$item
:
nth
(
$sizes
,
$i
);
.ml-
#{
$item
}
{
...
...
src/views/ecw/order/splitApply.vue
View file @
e5430c88
...
...
@@ -244,8 +244,8 @@
</div>
</el-dialog>
<!-- 对话框(添加 / 修改) -->
<el-dialog
:title=
"$t('放入品名')"
:visible.sync=
"shopOpen"
width=
"500px"
append-to-body
>
<el-form
ref=
"shopForm"
:model=
"shopForm"
:rules=
"shopRules"
label-width=
"120px"
>
<el-dialog
:title=
"$t('放入品名')"
:visible.sync=
"shopOpen"
width=
"
1
500px"
append-to-body
>
<el-form
ref=
"shopForm"
:model=
"shopForm"
:rules=
"shopRules"
label-width=
"120px"
size=
"mini"
>
<el-form-item
:label=
"$t('中文品名')"
v-if=
"splitData.length>0"
>
<el-select
v-model=
"shopForm.pordid"
:placeholder=
"$t('请选择中文品名')"
@
change=
"changeProdTitleZh"
clearable
>
<el-option
v-for=
"item in splitData[0].orderSplitItemBackVOList"
:label=
"item.prodTitleZh"
:value=
"item.id"
:key=
"item.prodTitleZh"
></el-option>
...
...
@@ -256,46 +256,195 @@
<el-option
v-for=
"item in splitData[0].orderSplitItemBackVOList"
:label=
"item.prodTitleEn"
:value=
"item.id"
:key=
"item.prodTitleEn"
></el-option>
</el-select>
</el-form-item>
<el-form-item
:label2=
"$t('剩余箱数')"
v-if=
"mainOrderItem.orderItemId"
>
{{$t('剩余箱数')}}{{ shopForm.sum || 0 }}
<!--,可放入箱数:{{ mainOrderItem.num - 1 }}-->
<el-form-item
:label=
"$t('剩余数据')"
>
<div>
{{$t('剩余箱数')}}{{ shopForm.sum || 0 }}
</div>
<div>
{{ $t('入仓方数') }}:{{ mainOrderItem.volume || 0 }}m³
{{ $t('收费方数') }}:{{ mainOrderItem.chargeVolume || 0 }}m³
</div>
<div>
{{ $t('入仓重量') }}:{{ mainOrderItem.weight || 0 }}kg
{{ $t('收费重量') }}:{{ mainOrderItem.chargeWeight || 0 }}kg
</div>
<div>
{{ $t('数量(个)') }}:{{ mainOrderItem.quantity || 0 }}
{{ $t('剩余货值') }}:{{ mainOrderItem.worth || 0 }}{{ $t('美元') }}
</div>
</el-form-item>
<el-form-item
:label=
"$t('放入箱数')"
>
<el-input-number
v-model=
"shopForm.num"
@
change=
"numChange"
controls-position=
"right"
:min=
"1"
:max=
"mainOrderItem.num"
></el-input-number>
<el-card
class=
"box-card"
v-if=
"shopForm.specsRecordVOList"
>
<div
slot=
"header"
class=
"clearfix"
>
<span>
{{ $t('入仓记录') }}
</span>
<el-button
style=
"float: right;margin-left: 15px"
size=
"mini"
type=
"primary"
icon=
"el-icon-minus"
circle
@
click=
"deleteRow"
:disabled=
"shopForm.specsRecordVOList.length <= 1"
></el-button>
<el-button
style=
"float: right"
size=
"mini"
type=
"primary"
icon=
"el-icon-plus"
circle
@
click=
"addRow"
:disabled=
"!shopForm.orderItemId"
></el-button>
</div>
<!--<el-form ref="tableForm" :model="shopForm" size="mini">-->
<el-table
:data=
"shopForm.specsRecordVOList"
style=
"width: 100%"
>
<el-table-column
:label=
"$t('箱数')"
width=
"200px"
>
<
template
v-slot:header
>
<span
style=
"color: red"
>
*
</span>
{{
$t
(
'
箱数
'
)
}}
</
template
>
<
template
v-slot=
"{row,$index}"
>
<el-form-item
class=
"flex"
label-width=
"0"
:prop=
"`specsRecordVOList.$
{$index}.num`"
:rules="{required: true, message: $t('不能为空'), trigger: 'blur'}">
<el-input-number
controls-position=
"right"
:min=
"0"
class=
"w-75 tight"
v-model=
"row.num"
type=
"number"
></el-input-number>
<dict-selector
class=
"w-75"
:type=
"DICT_TYPE.WAREHOUSING_SPECIFICATION_TYPE"
v-model=
"row.specificationType"
defaultable
></dict-selector>
</el-form-item>
<el-form-item
v-if=
"quantityshow"
:label=
"$t('放入数量')+'('+$t('个')+')'"
>
<el-input-number
v-model=
"shopForm.quantity"
controls-position=
"right"
:min=
"1"
:max=
"mainOrderItem.quantity-1"
:placeholder=
"$t('最多可放入{quantity}', {
quantity: mainOrderItem.quantity-1
})"
></el-input-number>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('包装类型')"
width=
"100px"
>
<
template
v-slot:header
>
<span
style=
"color: red"
>
*
</span>
{{
$t
(
'
包装类型
'
)
}}
</
template
>
<
template
v-slot=
"{row,$index}"
>
<el-form-item
label-width=
"0"
>
<dict-selector
:type=
"DICT_TYPE.ECW_PACKAGING_TYPE"
v-model=
"row.unit"
defaultable
></dict-selector>
</el-form-item>
<el-form-item
v-if=
"mainOrderItem.orderItemId"
>
<div>
{{ $t('剩余入仓方数') }}:{{ mainOrderItem.volume || 0 }}m³
<!--,{{$t('可放入仓方数')}}:{{ (mainOrderItem.volume - 0.01).toFixed(2) }}m³-->
</div>
<div>
{{$t('剩余收费方数')}}:{{ mainOrderItem.chargeVolume || 0 }}m³
<!--,{{$t('可放入收费方数')}}:{{ (mainOrderItem.chargeVolume - 0.01).toFixed(2) }}m³-->
</div>
</
template
>
</el-table-column>
<el-table-column
label=
"长(cm)"
>
<
template
v-slot:header
>
<span>
{{
$t
(
'
长
'
)
}}
</span>
(cm)
</
template
>
<
template
v-slot=
"{row,$index}"
>
<el-form-item
label-width=
"0"
>
<el-input-number
controls-position=
"right"
:min=
"0"
class=
"w-100 tight"
v-model=
"row.boxGauge1"
@
blur=
"calcVolume(row)"
/>
</el-form-item>
<el-form-item
:label=
"$t('入仓方数')"
>
<el-input-number
v-model=
"shopForm.volume"
controls-position=
"right"
:min=
"0"
:max=
"mainOrderItem.volume"
></el-input-number>
</
template
>
</el-table-column>
<el-table-column
label=
"宽(cm)"
>
<
template
v-slot:header
>
<span>
{{
$t
(
'
宽
'
)
}}
</span>
(cm)
</
template
>
<
template
v-slot=
"{row,$index}"
>
<el-form-item
label-width=
"0"
>
<el-input-number
controls-position=
"right"
:min=
"0"
class=
"w-100 tight"
v-model=
"row.boxGauge2"
@
blur=
"calcVolume(row)"
/>
</el-form-item>
<el-form-item
:label=
"$t('收费方数')"
>
<el-input-number
v-model=
"shopForm.chargeVolume"
controls-position=
"right"
:min=
"0"
:max=
"mainOrderItem.chargeVolume"
></el-input-number>
</
template
>
</el-table-column>
<el-table-column
label=
"高(cm)"
>
<
template
v-slot:header
>
<span>
{{
$t
(
'
高
'
)
}}
</span>
(cm)
</
template
>
<
template
v-slot=
"{row,$index}"
>
<el-form-item
label-width=
"0"
>
<el-input-number
controls-position=
"right"
:min=
"0"
class=
"w-100 tight"
v-model=
"row.boxGauge3"
@
blur=
"calcVolume(row)"
/>
</el-form-item>
<el-form-item
v-if=
"mainOrderItem.orderItemId"
>
<div>
{{$t('剩余入仓重量')}}:{{ mainOrderItem.weight || 0 }}kg
<!--,{{$t('可放入重量')}}:{{ mainOrderItem.weight }}kg-->
</div>
<div>
{{$t('剩余收费重量')}}:{{ mainOrderItem.chargeWeight || 0 }}kg
<!--,{{$t('可放入收费重量')}}:{{ mainOrderItem.chargeWeight }}kg-->
</div>
</
template
>
</el-table-column>
<el-table-column
label=
"入仓体积(m³)"
>
<
template
v-slot:header
>
<span
style=
"color: red"
>
*
</span>
<span>
{{
$t
(
'
体积
'
)
}}
</span>
(m³)
</
template
>
<
template
v-slot=
"{row,$index}"
>
<el-form-item
label-width=
"0"
:prop=
"`specsRecordVOList.$
{$index}.volume`"
:rules="{required: true, message: $t('不能为空'), trigger: 'blur'}">
<el-input-number
controls-position=
"right"
:min=
"0"
class=
"w-100 tight"
v-model=
"row.volume"
/>
</el-form-item>
<el-form-item
:label=
"$t('入仓重量')"
>
<el-input-number
v-model=
"shopForm.weight"
controls-position=
"right"
:min=
"0"
:max=
"mainOrderItem.weight"
></el-input-number>
</
template
>
</el-table-column>
<el-table-column
label=
"收费体积(m³)"
>
<
template
v-slot:header
>
<span
style=
"color: red"
>
*
</span>
<span>
{{
$t
(
'
收费体积
'
)
}}
</span>
(m³)
</
template
>
<
template
v-slot=
"{row,$index}"
>
<el-form-item
label-width=
"0"
:prop=
"`specsRecordVOList.$
{$index}.chargeVolume`"
:rules="{required: true, message: $t('不能为空'), trigger: 'blur'}">
<el-input-number
controls-position=
"right"
:min=
"0"
class=
"w-100 tight"
v-model=
"row.chargeVolume"
/>
</el-form-item>
<el-form-item
:label=
"$t('收费重量')"
>
<el-input-number
v-model=
"shopForm.chargeWeight"
controls-position=
"right"
:min=
"0"
:max=
"mainOrderItem.chargeWeight"
></el-input-number>
</
template
>
</el-table-column>
<el-table-column
label=
"入仓重量(Kg)"
>
<
template
v-slot:header
>
<span
style=
"color: red"
>
*
</span>
<span>
{{
$t
(
'
入仓重量
'
)
}}
</span>
(Kg)
</
template
>
<
template
v-slot=
"{row,$index}"
>
<el-form-item
label-width=
"0"
:prop=
"`specsRecordVOList.$
{$index}.weight`"
:rules="{required: true, message: $t('不能为空'), trigger: 'blur'}">
<el-input-number
controls-position=
"right"
:min=
"0"
class=
"w-100 tight"
v-model=
"row.weight"
/>
</el-form-item>
<el-form-item
v-if=
"mainOrderItem.orderItemId"
>
<div>
{{$t('剩余货值')}}:{{ mainOrderItem.worth || 0 }}{{ $t('美元') }}
</div>
</
template
>
</el-table-column>
<el-table-column
label=
"收费重量(Kg)"
>
<
template
v-slot:header
>
<span
style=
"color: red"
>
*
</span>
<span>
{{
$t
(
'
收费重量
'
)
}}
</span>
(Kg)
</
template
>
<
template
v-slot=
"{row,$index}"
>
<el-form-item
label-width=
"0"
:prop=
"`specsRecordVOList.$
{$index}.chargeWeight`"
:rules="{required: true, message: $t('不能为空'), trigger: 'blur'}">
<el-input-number
controls-position=
"right"
:min=
"0"
class=
"w-100 tight"
v-model=
"row.chargeWeight"
type=
"number"
/>
</el-form-item>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('数量')"
width=
"130px"
>
<
template
v-slot=
"{row,$index}"
>
<el-form-item
label-width=
"0"
:prop=
"`specsRecordVOList.$
{$index}.quantity`"
:rules="{required: quantityshow, message: $t('不能为空'), trigger: 'blur'}">
<el-input-number
controls-position=
"right"
:min=
"0"
class=
"w-75 tight"
v-model.number=
"row.quantity"
/>
{{
$t
(
'
个
'
)
}}
</el-form-item>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('快递单号')"
>
<
template
v-slot=
"{row,$index}"
>
<el-form-item
label-width=
"0"
>
<el-input
v-model=
"row.expressNo"
></el-input>
</el-form-item>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('储位')"
prop=
"orderLocationBackVOList"
>
<
template
v-slot=
"{ row, column, $index }"
>
<!--
<el-button
type=
"primary"
size=
"mini"
@
click=
"showLocation(row, $index)"
>
{{
$t
(
'
选择储位
'
)
}}
</el-button>
-->
<warehouse-area-select
v-model=
"row.orderLocationBackVOList"
:warehouse-id=
"splitData[splitItemIndex].dstWarehouseId"
></warehouse-area-select>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('操作')"
>
<
template
v-slot=
"{ row, column, $index}"
>
<el-popconfirm
v-if=
"$index > 0"
:title=
"$t('确定要删除该行入仓记录吗?')"
@
confirm=
"deleteRow($index)"
>
<template
v-slot:reference
>
<el-button
size=
"mini"
type=
"danger"
>
删除
</el-button>
</
template
>
</el-popconfirm>
</template>
</el-table-column>
</el-table>
<!--</el-form>-->
</el-card>
<el-form-item
:label=
"$t('放入数据')"
>
<div>
{{$t('箱数')}}{{ putin.num || 0 }}
</div>
<div>
{{ $t('入仓方数') }}:{{ putin.volume || 0 }}m³
{{ $t('收费方数') }}:{{ putin.chargeVolume || 0 }}m³
</div>
<div>
{{ $t('入仓重量') }}:{{ putin.weight || 0 }}kg
{{ $t('收费重量') }}:{{ putin.chargeWeight || 0 }}kg
</div>
<div>
{{ $t('数量(个)') }}:{{ putin.quantity || 0 }}
{{ $t('剩余货值') }}:{{ putin.worth || 0 }}{{ $t('美元') }}
</div>
</el-form-item>
<el-form-item
:label=
"$t('放入货值')"
>
<el-input-number
v-model=
"shopForm.worth"
controls-position=
"right"
:min=
"0"
:max=
"mainOrderItem.worth"
>
<
template
slot=
"append"
>
{{
$t
(
'
元
'
)
}}
</
template
>
</el-input-number>
</el-form-item>
<el-form-item
:label=
"$t('备注信息')
+':'
"
>
<el-form-item
:label=
"$t('备注信息')"
>
<el-input
v-model=
"shopForm.remark"
></el-input>
</el-form-item>
</el-form>
...
...
@@ -339,12 +488,12 @@ import {getChannelList} from '@/api/ecw/channel'
import
WorkFlow
from
'
@/components/WorkFlow
'
import
{
getOrder
,
splitItemUpdate
}
from
'
@/api/ecw/order
'
import
Decimal
from
'
decimal.js
'
import
Template
from
"
@/views/cms/template
"
;
import
WarehouseAreaSelect
from
"
@/components/WarehouseAreaSelect
"
;
export
default
{
name
:
"
SplitApply
"
,
components
:
{
Template
,
WarehouseAreaSelect
,
WorkFlow
},
data
()
{
...
...
@@ -368,7 +517,9 @@ export default {
selectedUsers
:[],
shopOpen
:
false
,
quantityshow
:
false
,
shopForm
:{},
shopForm
:{
specsRecordVOList
:
[]
},
// 表单校验
rules
:
{
transportId
:
[{
required
:
true
,
message
:
this
.
$t
(
"
请选择运输方式
"
),
trigger
:
"
change
"
}],
...
...
@@ -461,6 +612,33 @@ export default {
mainOrderItem
(){
if
(
!
this
.
orderItem
.
orderItemId
||
!
this
.
splitData
.
length
||
!
this
.
splitData
[
0
].
orderSplitItemBackVOList
)
return
{}
return
this
.
splitData
[
0
].
orderSplitItemBackVOList
.
find
(
item
=>
item
.
orderItemId
==
this
.
orderItem
.
orderItemId
)
||
{}
},
// 放入数据
putin
(){
let
data
=
{
num
:
new
Decimal
(
0
),
volume
:
new
Decimal
(
0
),
chargeVolume
:
new
Decimal
(
0
),
weight
:
new
Decimal
(
0
),
chargeWeight
:
new
Decimal
(
0
),
quantity
:
new
Decimal
(
0
)
}
this
.
shopForm
.
specsRecordVOList
&&
this
.
shopForm
.
specsRecordVOList
.
forEach
(
item
=>
{
data
.
num
=
data
.
num
.
plus
(
new
Decimal
(
item
.
num
||
0
))
data
.
volume
=
data
.
volume
.
plus
(
new
Decimal
(
item
.
volume
||
0
))
data
.
chargeVolume
=
data
.
chargeVolume
.
plus
(
new
Decimal
(
item
.
chargeVolume
||
0
))
data
.
weight
=
data
.
weight
.
plus
(
new
Decimal
(
item
.
weight
||
0
))
data
.
chargeWeight
=
data
.
chargeWeight
.
plus
(
new
Decimal
(
item
.
chargeWeight
||
0
))
data
.
quantity
=
data
.
quantity
.
plus
(
new
Decimal
(
item
.
quantity
||
0
))
})
return
{
num
:
data
.
num
.
toNumber
(),
volume
:
data
.
volume
.
toNumber
(),
chargeVolume
:
data
.
chargeVolume
.
toNumber
(),
weight
:
data
.
weight
.
toNumber
(),
chargeWeight
:
data
.
chargeWeight
.
toNumber
(),
quantity
:
data
.
quantity
.
toNumber
()
}
}
},
methods
:
{
...
...
@@ -510,8 +688,6 @@ export default {
this
.
splitData
=
response
.
data
.
orderSplitBackVOList
this
.
orderApprovalBackVO
=
response
.
data
this
.
loading
=
false
;
});
},
...
...
@@ -639,12 +815,11 @@ export default {
this
.
shopForm
.
orderItemId
=
list
[
0
].
orderItemId
this
.
shopForm
.
prodTitleEn
=
list
[
0
].
prodTitleEn
this
.
shopForm
.
prodTitleZh
=
list
[
0
].
prodTitleZh
var
orderItemData
=
this
.
orderData
.
orderItemVOList
.
find
(
item
=>
item
.
orderItemId
==
this
.
shopForm
.
orderItemId
)
/*var params = {
'seaFreightVolume':orderItemData.seaFreightVolume,
'clearanceFreightVolume':orderItemData.clearanceFreightVolume
// 默认给一个
if
(
!
this
.
shopForm
.
specsRecordVOList
||
!
this
.
shopForm
.
specsRecordVOList
.
length
){
this
.
addRow
()
}
console.log(orderItemData)*/
this
.
numcheck
()
},
numcheck
(){
...
...
@@ -705,27 +880,28 @@ export default {
if
(
!
valid
)
{
return
;
}
})
var
params
=
{
num
:
this
.
shopForm
.
num
,
num
:
this
.
putin
.
num
,
orderItemId
:
this
.
shopForm
.
orderItemId
,
orderSplitId
:
this
.
splitData
[
this
.
splitItemIndex
].
id
,
remark
:
this
.
shopForm
.
remark
,
volume
:
this
.
shopForm
.
volume
,
chargeVolume
:
this
.
shopForm
.
chargeVolume
,
weight
:
this
.
shopForm
.
weight
,
chargeWeight
:
this
.
shopForm
.
chargeWeight
,
worth
:
this
.
shopForm
.
worth
volume
:
this
.
putin
.
volume
,
chargeVolume
:
this
.
putin
.
chargeVolume
,
weight
:
this
.
putin
.
weight
,
chargeWeight
:
this
.
putin
.
chargeWeight
,
worth
:
this
.
shopForm
.
worth
,
specsRecordVOList
:
this
.
shopForm
.
specsRecordVOList
}
if
(
this
.
quantityshow
){
params
.
quantity
=
this
.
shopForm
.
quantity
}
createSplitItem
(
params
).
then
(
res
=>
{
createSplitItem
(
params
).
then
(
async
res
=>
{
this
.
$message
.
success
(
this
.
$t
(
"
放入成功
"
));
this
.
getList
()
await
this
.
getList
()
this
.
shopForm
=
{}
})
this
.
shopOpen
=
false
})
})
},
removeShop
(
id
){
let
that
=
this
...
...
@@ -761,6 +937,35 @@ export default {
})
})
},
// 添加一行
addRow
(){
if
(
!
this
.
shopForm
.
specsRecordVOList
){
this
.
$set
(
this
.
shopForm
,
'
specsRecordVOList
'
,[])
}
this
.
shopForm
.
specsRecordVOList
.
push
({
orderLocationBackVOList
:
[]
})
},
// 删除一行,可选参数index表上行号,参数不是数字则删除最后一行
deleteRow
(
index
){
const
spliceIndex
=
typeof
index
!==
'
number
'
?
this
.
shopForm
.
specsRecordVOList
.
length
-
1
:
index
this
.
shopForm
.
specsRecordVOList
.
splice
(
spliceIndex
,
1
)
},
// 计算体积
calcVolume
(
row
){
let
volume
=
Decimal
(
row
.
boxGauge1
||
0
)
.
times
(
Decimal
(
row
.
boxGauge2
||
0
))
.
times
(
Decimal
(
row
.
boxGauge3
||
0
)).
div
(
1000000
)
// 如果是箱的单位要乘以箱数
if
(
row
.
specificationType
===
1
)
{
row
.
volume
=
volume
.
times
(
Decimal
(
row
.
num
||
0
))
}
// 最低0.01
volume
=
Math
.
max
(
0.01
,
volume
.
toNumber
().
toFixed
(
2
))
this
.
$set
(
row
,
'
volume
'
,
volume
)
this
.
$set
(
row
,
'
chargeVolume
'
,
volume
)
}
}
}
</
script
>
...
...
@@ -802,4 +1007,8 @@ export default {
.cancel_content
span
{
width
:
100px
;
}
::v-deep
.el-form-item--mini.is-error
{
margin-bottom
:
18px
;
}
</
style
>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment