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
1d040bb3
Commit
1d040bb3
authored
Sep 26, 2022
by
huhaiqing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
拆单开发
parent
6b5ab41c
Changes
5
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
233 additions
and
245 deletions
+233
-245
boxSea.js
src/api/ecw/boxSea.js
+14
-0
index.vue
src/views/ecw/box/ladingBill/index.vue
+5
-1
splitOrder.vue
...views/ecw/box/shippingSea/nodePage/cabinet/splitOrder.vue
+188
-239
startPacking.vue
...ews/ecw/box/shippingSea/nodePage/cabinet/startPacking.vue
+2
-2
review.vue
src/views/ecw/box/shippingSea/nodePage/review.vue
+24
-3
No files found.
src/api/ecw/boxSea.js
View file @
1d040bb3
...
@@ -610,6 +610,20 @@ export function boxUpdate(data) {
...
@@ -610,6 +610,20 @@ export function boxUpdate(data) {
});
});
}
}
/**
* 拆单审核
*
* @param {*} params
* @returns
*/
export
function
createApproval
(
data
)
{
return
request
({
url
:
"
/ecw/box-approval/create
"
,
method
:
"
post
"
,
data
,
});
}
/***************************** 装柜 end **********************************/
/***************************** 装柜 end **********************************/
/***************************** 卸柜 start **********************************/
/***************************** 卸柜 start **********************************/
...
...
src/views/ecw/box/ladingBill/index.vue
View file @
1d040bb3
...
@@ -175,7 +175,11 @@ export default {
...
@@ -175,7 +175,11 @@ export default {
this.$set(this.dialogCfg, "visible", true);
this.$set(this.dialogCfg, "visible", true);
},
},
makeBill(row) {
makeBill(row) {
makeBillService({ orderId: row.orderId }).then((res) => {
const { bookSeaInfo } = this.shipmentObj;
makeBillService({
orderId: row.orderId,
zgDate: bookSeaInfo.sailTime,
}).then((res) => {
const { data } = res;
const { data } = res;
const { titleZh = "", contentZh = "" } = data?.ladingTemplate ?? {};
const { titleZh = "", contentZh = "" } = data?.ladingTemplate ?? {};
let billContent = `
$
{
titleZh
}
$
{
contentZh
}
`,
let billContent = `
$
{
titleZh
}
$
{
contentZh
}
`,
...
...
src/views/ecw/box/shippingSea/nodePage/cabinet/splitOrder.vue
View file @
1d040bb3
<
template
>
<
template
>
<div
class=
"app-container"
>
<div
class=
"app-container shipping-split-order"
>
<!-- 搜索工作栏 -->
<el-card>
<el-card>
<div
slot=
"header"
class=
"card-title"
>
拆单申请-
{{
orderData
.
orderNo
||
''
}}
</div>
<div
slot=
"header"
class=
"card-title"
>
拆单申请-
{{
orderData
.
orderNo
||
''
}}
</div>
<div
class=
"btn-header"
>
<div
class=
"btn-header"
>
<span
class=
"card-title"
>
原单信息
</span>
<span
class=
"card-title"
>
原单信息
</span>
<div>
<span
v-if=
"orderData.status==99"
class=
"red"
>
异常无法拆单
</span>
<el-button
v-else
type=
"primary"
@
click=
"addSplit"
>
新建拆单
</el-button>
</div>
</div>
</div>
<el-descriptions
:column=
"4"
>
<el-descriptions
:column=
"4"
>
<el-descriptions-item
label=
"唛头"
>
<el-descriptions-item
label=
"唛头"
>
{{
orderData
.
marks
?
orderData
.
marks
:
'
无
'
}}
{{
orderData
.
marks
?
orderData
.
marks
:
'
无
'
}}
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label=
"已
到
箱数/总箱数"
>
<el-descriptions-item
label=
"已
实装
箱数/总箱数"
>
<span>
{{
orderData
.
sum
Num
||
0
}}
/
{{
orderData
.
costVO
?
orderData
.
costVO
.
totalNum
:
0
}}
</span>
<span>
{{
currRow
.
install
Num
||
0
}}
/
{{
orderData
.
costVO
?
orderData
.
costVO
.
totalNum
:
0
}}
</span>
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label=
"订单状态"
>
<el-descriptions-item
label=
"订单状态"
>
<!--
<dict-tag
:type=
"DICT_TYPE.ORDER_STATUS"
:value=
"orderData.status"
/>
-->
{{
orderData
.
status
==
99
?
'
异常
'
:
'
正常
'
}}
{{
orderData
.
status
==
99
?
'
异常
'
:
'
正常
'
}}
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label=
"送货日期"
>
<el-descriptions-item
label=
"送货日期"
>
...
@@ -55,11 +49,11 @@
...
@@ -55,11 +49,11 @@
{{
orderData
.
consigneeVO
?
orderData
.
consigneeVO
.
company
||
'
无
'
:
'
无
'
}}
{{
orderData
.
consigneeVO
?
orderData
.
consigneeVO
.
company
||
'
无
'
:
'
无
'
}}
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label=
"收货电话"
>
<el-descriptions-item
label=
"收货电话"
>
{{
orderData
.
consigneeVO
?
(
orderData
.
consigneeVO
.
phone
?(
orderData
.
consigneeVo
.
countryCode
+
orderData
.
consigneeVO
.
phone
):
'
无
'
)
:
'
无
'
}}
{{
orderData
.
consigneeVO
?
orderData
.
consigneeVO
.
phone
?
orderData
.
consigneeVO
.
countryCode
+
orderData
.
consigneeVO
.
phone
:
'
无
'
:
'
无
'
}}
</el-descriptions-item>
</el-descriptions-item>
</el-descriptions>
</el-descriptions>
</el-card>
</el-card>
<el-card
class=
"card"
>
<el-card
class=
"card"
>
<!-- 列表 -->
<!-- 列表 -->
<div
slot=
"header"
class=
"card-title"
>
货物信息
</div>
<div
slot=
"header"
class=
"card-title"
>
货物信息
</div>
...
@@ -77,6 +71,7 @@
...
@@ -77,6 +71,7 @@
</el-table-column>
</el-table-column>
<el-table-column
label=
"装柜货物属性"
align=
"center"
width=
"600"
>
<el-table-column
label=
"装柜货物属性"
align=
"center"
width=
"600"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-row
style=
"text-align:left;"
>
<el-row>
<el-row>
<span>
规格:
{{
scope
.
row
.
boxGauge
}}
</span>
<span>
规格:
{{
scope
.
row
.
boxGauge
}}
</span>
</el-row>
</el-row>
...
@@ -88,6 +83,10 @@
...
@@ -88,6 +83,10 @@
<span
style=
"margin-left: 10px;"
>
体积:
{{
scope
.
row
.
warehouseInInfoVO
?
scope
.
row
.
warehouseInInfoVO
.
volume
:
0
}}
m³
</span>
<span
style=
"margin-left: 10px;"
>
体积:
{{
scope
.
row
.
warehouseInInfoVO
?
scope
.
row
.
warehouseInInfoVO
.
volume
:
0
}}
m³
</span>
<span
style=
"margin-left: 10px;"
>
重量:
{{
scope
.
row
.
warehouseInInfoVO
?
scope
.
row
.
warehouseInInfoVO
.
weight
:
0
}}
kg
</span>
<span
style=
"margin-left: 10px;"
>
重量:
{{
scope
.
row
.
warehouseInInfoVO
?
scope
.
row
.
warehouseInInfoVO
.
weight
:
0
}}
kg
</span>
</el-row>
</el-row>
<el-row>
<span>
计划装柜:无返回
</span>
</el-row>
</el-row>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"最后操作时间"
align=
"center"
>
<el-table-column
label=
"最后操作时间"
align=
"center"
>
...
@@ -102,27 +101,26 @@
...
@@ -102,27 +101,26 @@
</el-table-column>
</el-table-column>
</el-table>
</el-table>
</el-card>
</el-card>
<el-card
class=
"card"
v-if=
"splitData.length>0"
>
<el-card
class=
"card"
v-if=
"splitData"
>
<!-- 列表 -->
<!-- 列表 -->
<div
slot=
"header"
class=
"card-title"
>
拆单信息
</div>
<div
slot=
"header"
class=
"card-title"
>
拆单信息
</div>
<div
v-for=
"(item, index) in splitData"
:key=
"index"
>
<div>
<div
class=
"btn-header"
>
<div
class=
"btn-header"
>
<div>
<div>
<p
class=
"card-info"
>
<p
class=
"card-info"
>
<span
class=
"card-title"
>
<span
class=
"card-title"
>
{{
item
.orderNo}}
{{
splitData
.orderNo}}
</span>
</span>
<
dict-tag
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
:value=
"item.transportId"
/
>
<
span>
{{orderData.logisticsInfoDto?orderData.logisticsInfoDto.startTitleZh:'无'}}
</span
>
<span>
发往:{{
importCityName(item.dstWarehouseId)
}}
</span>
<span>
发往:{{
splitData.dstWarehouseName
}}
</span>
</p>
</p>
</div>
</div>
<div>
<div>
<el-button
v-if=
"index==0"
disabled
type=
"primary"
@
click=
"addShop(index)"
>
放入
</el-button>
<el-button
type=
"primary"
@
click=
"addShop"
>
放入
</el-button>
<el-button
v-if=
"index!=0"
type=
"primary"
@
click=
"addShop(index)"
>
放入
</el-button>
<el-button
type=
"primary"
plain
@
click=
"deleteSplit(item.id)"
>
删除
</el-button>
</div>
</div>
</div>
</div>
<el-table
border
:data=
"
item
.orderSplitItemBackVOList"
>
<el-table
border
:data=
"
splitData
.orderSplitItemBackVOList"
>
<el-table-column
label=
"序号"
align=
"center"
prop=
"id"
type=
"index"
>
<el-table-column
label=
"序号"
align=
"center"
prop=
"id"
type=
"index"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
$index
+
1
}}
</span>
<span>
{{
scope
.
$index
+
1
}}
</span>
...
@@ -155,71 +153,49 @@
...
@@ -155,71 +153,49 @@
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"计划装柜"
align=
"center"
>
<el-table-column
label=
"计划装柜"
align=
"center"
>
无
</el-table-column>
</el-table-column>
<el-table-column
label=
"操作"
align=
"center"
>
<el-table-column
label=
"操作"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-button
v-if=
"index==0"
disabled
size=
"mini"
type=
"text"
icon=
"el-icon-delete"
@
click=
"removeShop(scope.row.id)"
>
移出
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-delete"
@
click=
"removeShop(scope.row.id)"
>
移出
</el-button>
<el-button
v-else
size=
"mini"
type=
"text"
icon=
"el-icon-delete"
@
click=
"removeShop(scope.row.id)"
>
移出
</el-button>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
</div>
</div>
</el-card>
</el-card>
<el-row
style=
"marginTop:15px;"
>
<work-flow
xmlkey=
"split_order"
v-model=
"selectedUsers"
></work-flow>
<work-flow
xmlkey=
"split_order"
v-model=
"selectedUsers"
></work-flow>
</el-row>
<div
slot=
"footer"
class=
"card footer_btn"
v-if=
"orderData.status!=99"
>
<div
slot=
"footer"
class=
"card footer_btn"
v-if=
"orderData.status!=99"
>
<el-button
v-if=
"orderData.status!=19"
type=
"primary"
@
click=
"submitForm"
>
提交申请
</el-button>
<el-button
v-if=
"orderData.status!=19"
type=
"primary"
@
click=
"submitForm"
>
提交申请
</el-button>
<el-button
v-if=
"orderData.status!=19"
plain
type=
"primary"
@
click=
"$emit('closeDialog')"
>
取消
</el-button>
<el-button
v-if=
"orderData.status!=19"
plain
type=
"primary"
@
click=
"$emit('closeDialog')"
>
取消
</el-button>
<el-button
v-if=
"orderData.status==19"
type=
"primary"
disabled
>
审核中
</el-button>
<el-button
v-if=
"orderData.status==19"
type=
"primary"
>
审核中
</el-button>
<el-button
v-if=
"orderData.status==19"
plain
type=
"primary"
@
click=
"cancelSplit"
>
取消审核
</el-button>
<el-button
v-if=
"orderData.status==19"
plain
type=
"primary"
@
click=
"cancelSplit"
>
取消审核
</el-button>
<el-button
v-if=
"orderData.status==19"
plain
type=
"primary"
@
click=
"$emit('closeDialog')"
>
返回
</el-button>
<el-button
v-if=
"orderData.status==19"
plain
type=
"primary"
@
click=
"$emit('closeDialog')"
>
返回
</el-button>
</div>
</div>
<!-- 对话框(添加 / 修改) -->
<el-dialog
title=
"新建拆单"
:visible.sync=
"open"
width=
"400px"
append-to-body
>
<el-form
ref=
"formSplit"
:model=
"form"
:rules=
"rules"
label-width=
"80px"
>
<el-row>
<el-form-item
label=
"运输方式"
>
<dict-selector
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
v-model=
"form.transportId"
formatter=
"number"
/>
</el-form-item>
</el-row>
<el-row>
<el-form-item
label=
"目的仓库:"
>
<el-select
v-model=
"form.destWarehouseId"
placeholder=
"请选择目的仓库"
>
<el-option
v-for=
"item in importCityList"
:label=
"item.titleZh"
:value=
"item.id"
:key=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"出货渠道"
v-if=
"getDictData(DICT_TYPE.ECW_TRANSPORT_TYPE, form.transportId).cssClass == 'channel'"
>
<el-select
v-model=
"form.channelId"
placeholder=
"请选择出货渠道"
>
<el-option
:disabled=
"getDictData(DICT_TYPE.ECW_TRANSPORT_TYPE, form.transportId).cssClass != 'channel'"
v-for=
"item in channelData"
:key=
"item.channelId"
:label=
"item.nameZh"
:value=
"item.channelId"
/>
</el-select>
</el-form-item>
</el-row>
</el-form>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"haddleAdd"
>
确 定
</el-button>
<el-button
@
click=
"cancel"
>
取 消
</el-button>
</div>
</el-dialog>
<!-- 对话框(添加 / 修改) -->
<!-- 对话框(添加 / 修改) -->
<el-dialog
title=
"放入品名"
:visible.sync=
"shopOpen"
width=
"400px"
append-to-body
>
<el-dialog
title=
"放入品名"
:visible.sync=
"shopOpen"
width=
"400px"
append-to-body
>
<el-form
ref=
"shopForm"
:model=
"shopForm"
:rules=
"shopRules"
label-width=
"
8
0px"
>
<el-form
ref=
"shopForm"
:model=
"shopForm"
:rules=
"shopRules"
label-width=
"
10
0px"
>
<el-row>
<el-row>
<el-form-item
label=
"中文品名:"
>
<el-form-item
label=
"中文品名:"
prop=
"prodTitleZh"
>
<el-select
v-model=
"shopForm.prodTitleZh"
placeholder=
"请选择中文品名"
@
change=
"changeProdTitleZh"
>
<el-select
v-model=
"shopForm.prodTitleZh"
placeholder=
"请选择中文品名"
@
change=
"changeProdTitleZh"
>
<el-option
v-for=
"item in order
Data.orderItemVOList
"
:label=
"item.prodTitleZh"
:value=
"item.prodTitleZh"
:key=
"item.prodTitleZh"
></el-option>
<el-option
v-for=
"item in order
Items
"
:label=
"item.prodTitleZh"
:value=
"item.prodTitleZh"
:key=
"item.prodTitleZh"
></el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
</el-row>
</el-row>
<el-row>
<el-row>
<el-form-item
label=
"英文品名:"
>
<el-form-item
label=
"英文品名:"
prop=
"prodTitleEn"
>
<el-select
v-model=
"shopForm.prodTitleEn"
placeholder=
"请选择英文品名"
@
change=
"changeProdTitleEn"
>
<el-select
v-model=
"shopForm.prodTitleEn"
placeholder=
"请选择英文品名"
@
change=
"changeProdTitleEn"
>
<el-option
v-for=
"item in order
Data.orderItemVOList
"
:label=
"item.prodTitleEn"
:value=
"item.prodTitleEn"
:key=
"item.prodTitleEn"
></el-option>
<el-option
v-for=
"item in order
Items
"
:label=
"item.prodTitleEn"
:value=
"item.prodTitleEn"
:key=
"item.prodTitleEn"
></el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"剩余箱数:"
>
<el-form-item
label=
"剩余箱数:"
>
{{shopForm.sum||0}}
{{shopForm.sum||0}}
</el-form-item>
</el-form-item>
<el-form-item
label=
"放入箱数:"
>
<el-form-item
label=
"放入箱数:"
prop=
"num"
>
<el-input-number
v-model=
"shopForm.num"
controls-position=
"right"
:min=
"1"
:max=
"shopForm.sum"
></el-input-number>
<el-input-number
v-model=
"shopForm.num"
controls-position=
"right"
:min=
"1"
:max=
"shopForm.sum"
></el-input-number>
</el-form-item>
</el-form-item>
<el-form-item
label=
"备注信息:"
>
<el-form-item
label=
"备注信息:"
>
...
@@ -236,23 +212,22 @@
...
@@ -236,23 +212,22 @@
</template>
</template>
<
script
>
<
script
>
import
{
getDictData
,
getDictDatas
}
from
"
@/utils/dict
"
;
import
{
import
{
getSplitList
,
getSplitList
,
splitApply
,
createSplit
,
createSplit
,
cancelApply
,
cancelApply
,
createSplitItem
,
createSplitItem
,
deleteSplitItem
,
deleteSplitItem
,
deleteSplit
,
}
from
"
@/api/ecw/orderHandle
"
;
}
from
"
@/api/ecw/orderHandle
"
;
import
{
getTradeCityList
}
from
"
@/api/ecw/region
"
;
import
{
getTradeCityList
}
from
"
@/api/ecw/region
"
;
import
{
getChannelList
}
from
"
@/api/ecw/channel
"
;
import
WorkFlow
from
"
@/components/WorkFlow
"
;
import
WorkFlow
from
"
@/components/WorkFlow
"
;
import
{
getOrder
}
from
"
@/api/ecw/order
"
;
import
{
getOrder
}
from
"
@/api/ecw/order
"
;
import
{
serviceMsg
}
from
"
../../utils
"
;
import
{
createApproval
}
from
"
@/api/ecw/boxSea
"
;
export
default
{
export
default
{
name
:
"
splitOrder
"
,
name
:
"
splitOrder
"
,
inheritAttrs
:
false
,
components
:
{
components
:
{
WorkFlow
,
WorkFlow
,
},
},
...
@@ -261,33 +236,17 @@ export default {
...
@@ -261,33 +236,17 @@ export default {
},
},
data
()
{
data
()
{
return
{
return
{
checked
:
false
,
orderData
:
{},
orderData
:
{},
splitData
:
[],
splitData
:
{},
splitIndex
:
0
,
detail
:
{},
channelData
:
[],
tradeCityList
:
[],
multipleSelection
:
[],
loading
:
false
,
loading
:
false
,
open
:
false
,
form
:
{},
selectedUsers
:
[],
selectedUsers
:
[],
shopOpen
:
false
,
tradeCityList
:
[]
,
shopOpen
:
false
,
orderItems
:
[],
shopForm
:
{},
shopForm
:
{},
// 表单校验
// 表单校验
rules
:
{
transportId
:
[
{
required
:
true
,
message
:
"
请选择运输方式
"
,
trigger
:
"
change
"
},
],
warehouseIds
:
[
{
required
:
true
,
message
:
"
请选择目的仓库
"
,
trigger
:
"
change
"
},
],
channelId
:
[
{
required
:
true
,
message
:
"
请选择出货渠道
"
,
trigger
:
"
change
"
},
],
},
// 表单校验
shopRules
:
{
shopRules
:
{
prodTitleZh
:
[
prodTitleZh
:
[
{
required
:
true
,
message
:
"
请选择中文品名
"
,
trigger
:
"
change
"
},
{
required
:
true
,
message
:
"
请选择中文品名
"
,
trigger
:
"
change
"
},
...
@@ -295,24 +254,19 @@ export default {
...
@@ -295,24 +254,19 @@ export default {
prodTitleEn
:
[
prodTitleEn
:
[
{
required
:
true
,
message
:
"
请选择英文品名
"
,
trigger
:
"
change
"
},
{
required
:
true
,
message
:
"
请选择英文品名
"
,
trigger
:
"
change
"
},
],
],
num
:
[{
required
:
true
,
message
:
"
请输入箱数
"
,
trigger
:
"
change
"
}],
},
},
queryParams
:
{
queryParams
:
{
orderId
:
96
,
orderId
:
0
,
lang
:
0
,
lang
:
0
,
},
},
query
:
{
page
:
1
,
rows
:
20
,
},
splitItemIndex
:
0
,
};
};
},
},
created
()
{
created
()
{
this
.
getChannel
();
getTradeCityList
().
then
((
res
)
=>
(
this
.
tradeCityList
=
res
.
data
));
getTradeCityList
().
then
((
res
)
=>
(
this
.
tradeCityList
=
res
.
data
));
this
.
queryParams
.
orderId
=
this
.
currRow
.
orderId
;
this
.
queryParams
.
orderId
=
this
.
currRow
.
orderId
;
this
.
get
List
();
this
.
get
OrderDetail
();
this
.
get
Order
();
this
.
get
Split
();
},
},
watch
:
{
watch
:
{
//监听table这个对象
//监听table这个对象
...
@@ -334,51 +288,64 @@ export default {
...
@@ -334,51 +288,64 @@ export default {
},
},
},
},
},
},
computed
:
{
methods
:
{
getDictData
()
{
/* 拆箱总数 */
return
(
type
,
value
)
=>
getDictData
(
type
,
value
)
||
{};
totalSplitNum
()
{
},
let
_total
=
0
;
getDictDatas
()
{
const
{
orderSplitItemBackVOList
=
[]
}
=
this
.
splitData
;
return
getDictDatas
;
orderSplitItemBackVOList
.
forEach
((
v
)
=>
{
},
_total
+=
Number
(
v
.
splitNum
);
importCityList
()
{
});
return
this
.
tradeCityList
.
filter
((
item
)
=>
item
.
type
==
1
);
return
_total
;
},
/* 打开拆单 */
getSplit
()
{
this
.
querySplitGoods
().
then
((
res
)
=>
{
if
(
res
)
{
if
(
this
.
currRow
.
goodsList
&&
this
.
currRow
.
goodsList
.
length
)
{
const
[
orderItem
]
=
this
.
currRow
.
goodsList
;
createSplit
({
parentOrderId
:
this
.
currRow
.
orderId
,
parentOrderNo
:
this
.
currRow
.
orderNo
,
dstWarehouseId
:
orderItem
.
destWarehouseId
,
transportId
:
orderItem
.
transportId
,
shipmentType
:
1
,
}).
then
((
res
)
=>
{
this
.
querySplitGoods
();
});
}
}
});
},
},
/* 查询拆单项 */
querySplitGoods
()
{
return
new
Promise
((
resolve
,
reject
)
=>
{
getSplitList
({
lang
:
0
,
orderId
:
this
.
currRow
.
orderId
,
shipmentType
:
1
,
}).
then
((
res
)
=>
{
const
{
orderSplitBackVOList
}
=
res
.
data
;
if
(
orderSplitBackVOList
&&
orderSplitBackVOList
.
length
)
{
this
.
orderItems
=
this
.
currRow
.
goodsList
??
[];
// 取拆单项
this
.
splitData
=
orderSplitBackVOList
.
filter
(
(
item
)
=>
!
item
.
isMaster
)[
0
];
resolve
(
false
);
}
else
{
resolve
(
true
);
}
});
});
},
},
methods
:
{
getOrderDetail
()
{
getOrder
()
{
this
.
loading
=
true
;
this
.
loading
=
true
;
getOrder
(
this
.
queryParams
.
orderId
).
then
((
response
)
=>
{
getOrder
(
this
.
queryParams
.
orderId
).
then
((
response
)
=>
{
this
.
orderData
=
response
.
data
;
this
.
orderData
=
response
.
data
;
this
.
query
.
destWarehouseId
=
response
.
data
.
logisticsInfoDto
.
startWarehouseId
;
this
.
loading
=
false
;
});
},
/** 查询列表 */
getList
()
{
this
.
loading
=
true
;
// 执行查询
getSplitList
(
this
.
queryParams
).
then
((
response
)
=>
{
this
.
splitData
=
response
.
data
;
this
.
loading
=
false
;
this
.
loading
=
false
;
});
});
},
},
getChannel
()
{
getChannelList
().
then
((
res
)
=>
(
this
.
channelData
=
res
.
data
));
},
changeDest
()
{
this
.
query
.
warehouseIds
=
this
.
form
.
destWarehouseId
;
},
arraySpanMethod
({
row
,
column
,
rowIndex
,
columnIndex
})
{
if
(
rowIndex
==
this
.
orderData
.
orderItemVOList
.
length
)
{
if
(
columnIndex
===
1
)
{
return
[
2
,
3
];
}
else
if
(
columnIndex
>
1
)
{
return
[
0
,
0
];
}
}
},
getSummaries
()
{
getSummaries
()
{
const
sums
=
[];
const
sums
=
[];
...
@@ -390,12 +357,12 @@ export default {
...
@@ -390,12 +357,12 @@ export default {
)
{
)
{
return
sums
;
return
sums
;
}
}
var
orderSum
=
0
;
let
orderSum
=
0
;
var
orderV
=
0
;
let
orderV
=
0
;
var
orderW
=
0
;
let
orderW
=
0
;
var
leviteSum
=
0
;
let
leviteSum
=
0
;
var
leviteV
=
0
;
let
leviteV
=
0
;
var
leviteW
=
0
;
let
leviteW
=
0
;
this
.
orderData
.
orderItemVOList
.
forEach
((
column
,
index
)
=>
{
this
.
orderData
.
orderItemVOList
.
forEach
((
column
,
index
)
=>
{
orderSum
+=
column
.
num
??
0
;
orderSum
+=
column
.
num
??
0
;
orderV
+=
column
.
volume
??
0
;
orderV
+=
column
.
volume
??
0
;
...
@@ -422,31 +389,32 @@ export default {
...
@@ -422,31 +389,32 @@ export default {
return
sums
;
return
sums
;
},
},
importCityName
(
id
)
{
importCityName
(
id
)
{
var
arr
=
this
.
tradeCityList
.
filter
((
item
)
=>
item
.
id
==
id
);
let
arr
=
this
.
tradeCityList
.
filter
((
item
)
=>
item
.
id
==
id
);
return
arr
.
length
>
0
?
arr
[
0
].
titleZh
:
"
无
"
;
return
arr
.
length
>
0
?
arr
[
0
].
titleZh
:
"
无
"
;
},
},
submitForm
()
{
submitForm
()
{
var
params
=
{
const
{
shipmentObj
}
=
this
.
$attrs
;
orderId
:
this
.
queryParams
.
orderId
,
// 创建拆单审核
createApproval
({
applyReason
:
"
拆单审核
"
,
approvalStatus
:
0
,
approvalType
:
8
,
copyUserId
:
this
.
selectedUsers
,
copyUserId
:
this
.
selectedUsers
,
};
orderId
:
this
.
currRow
.
orderId
,
splitApply
(
params
).
then
((
res
)
=>
{
shipmentId
:
shipmentObj
.
id
,
this
.
$modal
.
msgSuccess
(
"
申请成功
"
);
}).
then
((
res
)
=>
{
that
.
getList
();
serviceMsg
(
res
,
this
).
then
((
res
)
=>
{
this
.
getSplit
();
});
});
});
},
},
addShop
(
index
)
{
addShop
()
{
this
.
splitItemIndex
=
index
;
this
.
shopOpen
=
true
;
this
.
shopOpen
=
true
;
},
},
addSplit
()
{
this
.
open
=
true
;
},
changeProdTitleZh
()
{
changeProdTitleZh
()
{
var
list
=
[];
let
list
=
[];
list
=
this
.
orderData
.
orderItemVO
List
.
filter
(
list
=
this
.
currRow
.
goods
List
.
filter
(
(
item
)
=>
item
.
prodTitleZh
==
this
.
shopForm
.
prodTitleZh
(
item
)
=>
item
.
prodTitleZh
==
this
.
shopForm
.
prodTitleZh
);
);
this
.
shopForm
.
sum
=
list
[
0
].
num
;
this
.
shopForm
.
sum
=
list
[
0
].
num
;
...
@@ -454,73 +422,58 @@ export default {
...
@@ -454,73 +422,58 @@ export default {
this
.
shopForm
.
prodTitleEn
=
list
[
0
].
prodTitleEn
;
this
.
shopForm
.
prodTitleEn
=
list
[
0
].
prodTitleEn
;
},
},
changeProdTitleEn
()
{
changeProdTitleEn
()
{
var
list
=
[];
let
list
=
[];
list
=
this
.
orderData
.
orderItemVOList
.
filter
(
list
=
this
.
orderData
.
orderItemVOList
.
filter
(
(
item
)
=>
item
.
prodTitleEn
==
this
.
shopForm
.
prodTitleEn
(
item
)
=>
item
.
prodTitleEn
==
this
.
shopForm
.
prodTitleEn
);
);
this
.
shopForm
.
sum
=
list
[
0
].
num
;
this
.
shopForm
.
sum
=
list
[
0
].
num
;
this
.
shopForm
.
prodTitleZh
=
list
[
0
].
prodTitleZh
;
this
.
shopForm
.
prodTitleZh
=
list
[
0
].
prodTitleZh
;
},
},
haddleAdd
()
{
let
that
=
this
;
if
(
!
that
.
form
.
transportId
)
{
that
.
$message
.
error
(
"
请选择运输方式
"
);
}
if
(
!
that
.
form
.
destWarehouseId
)
{
that
.
$message
.
error
(
"
请选择目的仓库
"
);
}
// if(!this.form.channelId){
// this.$modal.msgError("请选择出货渠道");
// }
var
params
=
{
dstWarehouseId
:
that
.
form
.
destWarehouseId
,
parentOrderId
:
that
.
orderData
.
orderId
,
parentOrderNo
:
that
.
orderData
.
orderNo
,
transportId
:
that
.
form
.
transportId
,
};
createSplit
(
params
).
then
((
res
)
=>
{
that
.
getList
();
});
that
.
open
=
false
;
},
cancel
()
{
this
.
open
=
false
;
this
.
form
=
{};
},
shopAdd
()
{
shopAdd
()
{
this
.
$refs
[
"
shopForm
"
].
validate
((
valid
)
=>
{
this
.
$refs
[
"
shopForm
"
].
validate
((
valid
)
=>
{
if
(
!
valid
)
{
if
(
valid
)
{
// 输入箱数大于实装箱数
const
total
=
this
.
totalSplitNum
();
const
canSplitNum
=
this
.
currRow
.
num
-
this
.
currRow
.
installNum
;
const
remain
=
canSplitNum
-
total
;
if
(
this
.
shopForm
.
num
>
remain
)
{
this
.
$message
.
error
(
"
放入箱数不能大于总箱数
"
);
return
;
return
;
}
}
});
var
params
=
{
let
params
=
{
num
:
this
.
shopForm
.
num
,
num
:
this
.
shopForm
.
num
,
orderItemId
:
this
.
shopForm
.
orderItemId
,
orderItemId
:
this
.
shopForm
.
orderItemId
,
orderSplitId
:
this
.
splitData
[
this
.
splitItemIndex
]
.
id
,
orderSplitId
:
this
.
splitData
.
id
,
remarks
:
this
.
shopForm
.
remarks
,
remarks
:
this
.
shopForm
.
remarks
,
};
};
createSplitItem
(
params
).
then
((
res
)
=>
{
createSplitItem
(
params
).
then
((
res
)
=>
{
this
.
$message
.
success
(
"
放入成功
"
);
this
.
$message
.
success
(
"
放入成功
"
);
this
.
getLis
t
();
this
.
getSpli
t
();
this
.
shopForm
=
{};
this
.
shopForm
=
{};
});
});
this
.
shopOpen
=
false
;
this
.
shopOpen
=
false
;
}
});
},
},
removeShop
(
id
)
{
removeShop
(
id
)
{
let
that
=
this
;
let
that
=
this
;
that
.
$confirm
(
"
是否移除货物吗?
"
).
then
(
function
()
{
that
.
$confirm
(
"
是否移除货物吗?
"
).
then
(
function
()
{
deleteSplitItem
(
id
).
then
((
res
)
=>
{
deleteSplitItem
(
id
).
then
((
res
)
=>
{
that
.
$message
.
success
(
"
移除成功
"
);
that
.
$message
.
success
(
"
移除成功
"
);
that
.
get
Lis
t
();
that
.
get
Spli
t
();
});
});
});
});
},
},
cancelSplit
()
{
cancelSplit
()
{
let
that
=
this
;
const
{
shipmentObj
}
=
this
.
$attrs
;
that
.
$confirm
(
"
是否取消审核吗?
"
).
then
(
function
()
{
approvalCancel
({
cancelApply
({
orderId
:
that
.
queryParams
.
orderId
}).
then
((
res
)
=>
{
applyReason
:
"
取消审核
"
,
that
.
$message
.
success
(
"
取消成功
"
);
id
:
shipmentObj
[
"
cabinetApprovalInfo
"
].
id
,
that
.
getList
();
shipmentId
:
shipmentObj
.
id
,
}).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
(()
=>
{
this
.
$emit
(
"
closeDialog
"
);
});
});
});
});
},
},
...
@@ -528,43 +481,39 @@ export default {
...
@@ -528,43 +481,39 @@ export default {
this
.
shopOpen
=
false
;
this
.
shopOpen
=
false
;
this
.
shopForm
=
{};
this
.
shopForm
=
{};
},
},
/** 删除按钮操作 */
deleteSplit
(
id
)
{
let
that
=
this
;
that
.
$confirm
(
"
是否确认删除新拆的订单吗?
"
).
then
(
function
()
{
deleteSplit
(
id
).
then
((
res
)
=>
{
that
.
$message
.
success
(
"
删除成功
"
);
that
.
getList
();
});
});
},
},
},
};
};
</
script
>
</
script
>
<
style
>
.card-title
{
<
style
lang=
"scss"
>
.shipping-split-order
{
.card-title
{
font-size
:
18px
;
font-size
:
18px
;
font-weight
:
bold
;
font-weight
:
bold
;
margin-top
:
10px
;
margin-top
:
10px
;
}
}
.card-info
{
.card-info
{
font-size
:
16px
;
font-size
:
16px
;
}
>
span
{
.card
{
margin-right
:
10px
;
}
}
.card
{
margin-top
:
20px
;
margin-top
:
20px
;
}
}
.btn-header
{
.btn-header
{
width
:
90%
;
width
:
90%
;
display
:
flex
;
display
:
flex
;
align-items
:
center
;
align-items
:
center
;
justify-content
:
space-between
;
justify-content
:
space-between
;
margin
:
20px
0
;
margin
:
20px
0
;
}
}
.red
{
.red
{
color
:
#ff3430
;
color
:
#ff3430
;
font-size
:
15px
;
font-size
:
15px
;
}
}
.footer_btn
{
.footer_btn
{
padding-bottom
:
60px
;
padding-bottom
:
60px
;
}
}
}
</
style
>
</
style
>
src/views/ecw/box/shippingSea/nodePage/cabinet/startPacking.vue
View file @
1d040bb3
...
@@ -80,7 +80,7 @@
...
@@ -80,7 +80,7 @@
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-button
type=
"text"
size=
"small"
@
click=
"moveOut(scope.row)"
v-if=
"!isUnderReview && scope.row.installNum === 0"
>
移出
</el-button>
<el-button
type=
"text"
size=
"small"
@
click=
"moveOut(scope.row)"
v-if=
"!isUnderReview && scope.row.installNum === 0"
>
移出
</el-button>
<
!--
<el-button
type=
"text"
size=
"small"
v-if=
"isShowSplitOrder(scope.row)"
@
click=
"handlerSplitOrder(scope.row, 'splitOrder','拆单')"
>
拆单
</el-button>
--
>
<
el-button
type=
"text"
size=
"small"
v-if=
"isShowSplitOrder(scope.row)"
@
click=
"handlerSplitOrder(scope.row, 'splitOrder','拆单')"
>
拆单
</el-button
>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
...
@@ -194,7 +194,7 @@
...
@@ -194,7 +194,7 @@
</el-row>
</el-row>
</
template
>
</
template
>
<!-- 拆单 -->
<!-- 拆单 -->
<splitOrder
v-if=
"dialogConfig.type === 'splitOrder' && dialogConfig.dialogVisible"
:currRow=
"currRow"
@
closeDialog=
"closeDialog"
/>
<splitOrder
v-
bind=
"$attrs"
:shipmentObj=
"shipmentObj"
v-
if=
"dialogConfig.type === 'splitOrder' && dialogConfig.dialogVisible"
:currRow=
"currRow"
@
closeDialog=
"closeDialog"
/>
</el-dialog>
</el-dialog>
</div>
</div>
</template>
</template>
...
...
src/views/ecw/box/shippingSea/nodePage/review.vue
View file @
1d040bb3
...
@@ -2,11 +2,12 @@
...
@@ -2,11 +2,12 @@
<div>
<div>
<el-form
ref=
"reviewForm"
:model=
"reviewObj"
label-width=
"120px"
>
<el-form
ref=
"reviewForm"
:model=
"reviewObj"
label-width=
"120px"
>
<el-form-item
label=
"申请理由"
>
<el-form-item
label=
"申请理由"
>
<el-input
v-model=
"reviewObj.applyReason"
type=
"textarea"
rows=
"2"
placeholder=
"请输入申请理由"
></el-input>
<el-input
v-model=
"reviewObj.applyReason"
type=
"textarea"
rows=
"2"
placeholder=
"请输入申请理由"
:disabled=
"isReview"
></el-input>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
<el-row
class=
"operate-button"
>
<el-row
class=
"operate-button"
>
<el-button
type=
"success"
@
click=
"onSubmit"
>
发起申请
</el-button>
<el-button
type=
"success"
@
click=
"onSubmit"
:disabled=
"isReview"
>
发起申请
</el-button>
<el-button
type=
"primary"
@
click=
"jumpReviewDetail"
:disabled=
"!isReview"
>
审核中
</el-button>
<el-button
@
click=
"cancel"
>
关闭
</el-button>
<el-button
@
click=
"cancel"
>
关闭
</el-button>
</el-row>
</el-row>
</div>
</div>
...
@@ -14,7 +15,7 @@
...
@@ -14,7 +15,7 @@
<
script
>
<
script
>
import
{
approvalCreate
}
from
"
@/api/ecw/boxSea
"
;
import
{
approvalCreate
}
from
"
@/api/ecw/boxSea
"
;
import
{
serviceMsg
}
from
"
../utils
"
;
import
{
serviceMsg
,
toReviewDetail
}
from
"
../utils
"
;
/**
/**
* 反审
* 反审
...
@@ -26,9 +27,29 @@ export default {
...
@@ -26,9 +27,29 @@ export default {
return
{
return
{
// 反审对象
// 反审对象
reviewObj
:
{},
reviewObj
:
{},
isReview
:
false
,
bpmProcessId
:
""
,
};
};
},
},
created
()
{
const
{
currNode
,
shipmentObj
}
=
this
.
$attrs
;
if
(
currNode
.
type
===
"
preinstall
"
)
{
this
.
isReview
=
shipmentObj
[
"
preInstallBackInfo
"
]
?
true
:
false
;
this
.
bpmProcessId
=
shipmentObj
[
"
preInstallBackInfo
"
]?.
bpmProcessId
;
}
if
(
currNode
.
type
===
"
unloading
"
)
{
this
.
isReview
=
shipmentObj
[
"
cabinetUnloadBackApprovalInfo
"
]
?
true
:
false
;
this
.
bpmProcessId
=
shipmentObj
[
"
cabinetUnloadBackApprovalInfo
"
]?.
bpmProcessId
;
}
},
methods
:
{
methods
:
{
jumpReviewDetail
()
{
toReviewDetail
.
apply
(
this
,
[
this
.
bpmProcessId
]);
this
.
$emit
(
"
closeDialog
"
);
},
/** 提交 */
/** 提交 */
onSubmit
()
{
onSubmit
()
{
this
.
$refs
[
"
reviewForm
"
].
validate
((
valid
)
=>
{
this
.
$refs
[
"
reviewForm
"
].
validate
((
valid
)
=>
{
...
...
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