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
a240066c
Commit
a240066c
authored
Aug 14, 2022
by
huhaiqing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
报关/额外费用界面联调
parent
b8695a51
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
656 additions
and
407 deletions
+656
-407
boxSea.js
src/api/ecw/boxSea.js
+69
-5
index.vue
src/views/ecw/box/shippingSea/nodePage/cabinet/index.vue
+8
-1
startPacking.vue
...ews/ecw/box/shippingSea/nodePage/cabinet/startPacking.vue
+19
-17
cusDeclaration.vue
src/views/ecw/box/shippingSea/nodePage/cusDeclaration.vue
+131
-20
review.vue
src/views/ecw/box/shippingSea/nodePage/review.vue
+4
-3
index.vue
src/views/ecw/box/shippingSea/nodePage/unloading/index.vue
+8
-1
seaProcess.vue
src/views/ecw/box/shippingSea/seaProcess.vue
+17
-7
seaStepDetail.vue
src/views/ecw/box/shippingSea/seaStepDetail.vue
+14
-353
utils.js
src/views/ecw/box/shippingSea/utils.js
+386
-0
No files found.
src/api/ecw/boxSea.js
View file @
a240066c
...
...
@@ -385,7 +385,7 @@ export function preloadPage(params) {
* 创建预装部分
*
* @export
* @param {*}
params
* @param {*}
data
* @return {*}
*/
export
function
createSection
(
data
)
{
...
...
@@ -400,7 +400,7 @@ export function createSection(data) {
* 删除预装部分
*
* @export
* @param {*}
params
* @param {*}
id
* @return {*}
*/
export
function
deleteSection
(
id
)
{
...
...
@@ -414,7 +414,7 @@ export function deleteSection(id) {
* 删除预装货物
*
* @export
* @param {*}
params
* @param {*}
id
* @return {*}
*/
export
function
deleteGoods
(
id
)
{
...
...
@@ -428,7 +428,7 @@ export function deleteGoods(id) {
* 预装
*
* @export
* @param {*}
params
* @param {*}
data
* @return {*}
*/
export
function
createGoods
(
data
)
{
...
...
@@ -542,7 +542,7 @@ export function boxUpdate(data) {
* 获取卸柜数据
*
* @export
* @param {*}
data
* @param {*}
params
* @return {*}
*/
export
function
loadGoodsList
(
params
)
{
...
...
@@ -600,6 +600,70 @@ export function createError(data) {
/***************************** 卸柜 end **********************************/
/***************************** 报关费用 start **********************************/
/**
* 搜索出货单下的订单
*
* @export
* @param {*} data
* @return {*}
*/
export
function
extraCostOrder
(
data
)
{
return
request
({
url
:
"
/ecw/box-customs-extra-cost/searchByOrderNo
"
,
method
:
"
post
"
,
data
,
});
}
/**
* 创建额外报关费用
*
* @export
* @param {*} data
* @return {*}
*/
export
function
extraCostCreate
(
data
)
{
return
request
({
url
:
"
/ecw/box-customs-extra-cost/create
"
,
method
:
"
post
"
,
data
,
});
}
/**
* 更新额外报关费用
*
* @export
* @param {*} data
* @return {*}
*/
export
function
extraCostUpdate
(
data
)
{
return
request
({
url
:
"
/ecw/box-customs-extra-cost/update
"
,
method
:
"
put
"
,
data
,
});
}
/**
* 获得额外报关费用列表
*
* @export
* @param {*} data
* @return {*}
*/
export
function
extraCostList
(
params
)
{
return
request
({
url
:
"
/ecw/box-customs-extra-cost/list
"
,
method
:
"
get
"
,
params
,
});
}
/***************************** 报关费用 end **********************************/
/**
* 服务提示消息回调
*
...
...
src/views/ecw/box/shippingSea/nodePage/cabinet/index.vue
View file @
a240066c
...
...
@@ -30,7 +30,7 @@
<el-button
type=
"primary"
@
click=
"onSubmit(1)"
>
保存
</el-button>
<el-button
type=
"success"
@
click=
"onSubmit(2)"
>
封柜
</el-button>
<el-button
@
click=
"cancel"
>
关闭
</el-button>
<el-button
type=
"danger"
@
click=
"startCabinet"
>
开始装柜
</el-button>
<el-button
type=
"danger"
@
click=
"startCabinet"
:disabled=
"isStartCabinet"
>
开始装柜
</el-button>
</el-row>
</div>
</
template
>
...
...
@@ -104,6 +104,13 @@ export default {
this
.
dialogVisible
=
true
;
},
},
computed
:
{
isStartCabinet
()
{
const
{
currNode
,
shipmentObj
}
=
this
.
$attrs
;
const
status
=
shipmentObj
[
currNode
.
keyName
];
return
status
===
46
?
true
:
false
;
},
},
};
</
script
>
...
...
src/views/ecw/box/shippingSea/nodePage/cabinet/startPacking.vue
View file @
a240066c
...
...
@@ -120,14 +120,10 @@
<el-dialog
custom-class=
"shipping-dialog"
:title=
"dialogConfig.title"
:visible.sync=
"dialogConfig.dialogVisible"
:fullscreen=
"dialogConfig.fullscreen"
:width=
"dialogConfig.width"
:modal-append-to-body=
false
append-to-body
>
<!-- 已装未装订单 -->
<
template
v-if=
"dialogConfig.type === 'orderTable'"
>
<div
style=
"display: flex;"
>
<el-table
:data=
"orderList.loadList"
>
<el-table-column
label=
"已装"
align=
"center"
prop=
"loadTag"
/>
</el-table>
<el-table
:data=
"orderList.unLoadList"
>
<el-table-column
label=
"未装"
align=
"center"
prop=
"unloadTag"
/>
</el-table>
</div>
<el-table
:data=
"orderList"
border
>
<el-table-column
label=
"已装"
align=
"center"
prop=
"loadTag"
/>
<el-table-column
label=
"未装"
align=
"center"
prop=
"unloadTag"
/>
</el-table>
</
template
>
<!-- 补单 -->
<supplementOrder
v-if=
"dialogConfig.type === 'supplementOrder' && dialogConfig.dialogVisible"
v-bind=
"$attrs"
:shipmentObj=
"shipmentObj"
@
supplementFinish=
"supplementFinish"
/>
...
...
@@ -240,7 +236,7 @@ export default {
fullscreen
:
false
,
},
// 已装/未装
orderList
:
{}
,
orderList
:
[]
,
// 柜型
cabinetList
:
[],
// 二维码/条码编号
...
...
@@ -295,14 +291,20 @@ export default {
orderClick
(
row
)
{
orderTagList
({
orderId
:
row
.
orderId
}).
then
((
res
)
=>
{
const
{
data
=
[]
}
=
res
;
this
.
orderList
=
{
loadList
:
data
.
loadList
.
map
((
item
)
=>
({
loadTag
:
item
,
})),
unLoadList
:
data
.
unLoadList
.
map
((
item
)
=>
({
unloadTag
:
item
,
})),
};
this
.
orderList
=
[];
// 取最长的list
let
dataLength
=
data
.
loadList
.
length
;
if
(
data
.
unLoadList
.
length
>
dataLength
)
{
dataLength
=
data
.
unLoadList
.
length
;
}
// 组装数据,用一个table组件渲染
for
(
let
index
=
0
;
index
<
dataLength
;
index
++
)
{
this
.
orderList
.
push
({
loadTag
:
data
.
loadList
[
index
],
unloadTag
:
data
.
unLoadList
[
index
],
});
}
});
this
.
shwoDialog
({
type
:
"
orderTable
"
,
...
...
src/views/ecw/box/shippingSea/nodePage/cusDeclaration.vue
View file @
a240066c
...
...
@@ -70,31 +70,31 @@
<el-button
type=
"primary"
@
click=
"onSubmit(1)"
>
保存
</el-button>
<el-button
type=
"success"
@
click=
"onSubmit(2)"
>
提交
</el-button>
<el-button
@
click=
"cancel"
>
关闭
</el-button>
<el-button
type=
"primary"
@
click=
"extraCost"
>
额外费用
</el-button>
<el-button
type=
"primary"
@
click=
"extraCost"
v-show=
"cusDeclarationObj.dcCustomsStatus === '2' || cusDeclarationObj.dcCustomsStatus === '3'"
>
额外费用
</el-button>
</el-row>
<!-- 对话框 -->
<el-dialog
custom-class=
"shipping-dialog customsClearance"
:title=
"dialogConfig.title"
:visible.sync=
"dialogConfig.dialogVisible"
width=
"700px"
:modal-append-to-body=
false
append-to-body
destroy-on-close
>
<el-dialog
custom-class=
"shipping-dialog customsClearance"
:title=
"dialogConfig.title"
:visible.sync=
"dialogConfig.dialogVisible"
width=
"700px"
:modal-append-to-body=
false
append-to-body
>
<el-row>
<el-row>
<el-form
label-width=
"100px"
>
<el-form-item
label=
"订单号"
class=
"two-element"
>
<el-input
v-model=
"orderNo"
placeholder=
"请输入订单号"
clearable
/>
<el-button
type=
"primary"
icon=
"el-icon-search"
></el-button>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"searchOrder"
></el-button>
</el-form-item>
</el-form>
</el-row>
<el-row>
<el-table
:data=
"
[
{}]
">
<el-table-column
label=
"订单号"
align=
"center"
prop=
"
self
No"
/>
<el-table-column
label=
"报关费用"
align=
"center"
prop=
"
orderFees
"
>
<el-table
:data=
"
costOrderList
"
>
<el-table-column
label=
"订单号"
align=
"center"
prop=
"
order
No"
/>
<el-table-column
label=
"报关费用"
align=
"center"
prop=
"
fee
"
>
<template
slot-scope=
"scope"
>
<el-input
v-model=
"scope.row.orderFees"
placeholder=
"请输入内容"
/
>
<el-input
-number
v-model=
"scope.row.fee"
controls-position=
"right"
:min=
"1"
></el-input-number
>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
<el-button
type=
"primary"
size=
"small"
>
确定
</el-button>
<el-button
type=
"primary"
size=
"small"
@
click=
"createExtraCost(scope.row)"
>
确定
</el-button>
</
template
>
</el-table-column>
</el-table>
...
...
@@ -102,22 +102,22 @@
<el-row
class=
"cost-title"
>
<div>
额外费用订单
</div>
<div>
<el-button
size=
"small"
>
重置
</el-button>
<el-button
size=
"small"
@
click=
"restCostList()"
>
重置
</el-button>
</div>
</el-row>
<el-row>
<el-table
:data=
"
[{}]
"
>
<el-table
:data=
"
costList
"
>
<el-table-column
type=
"selection"
width=
"55"
/>
<el-table-column
label=
"订单号"
align=
"center"
prop=
"
self
No"
/>
<el-table-column
label=
"报关费用"
align=
"center"
prop=
"
customsFees
"
>
<el-table-column
label=
"订单号"
align=
"center"
prop=
"
order
No"
/>
<el-table-column
label=
"报关费用"
align=
"center"
prop=
"
fee"
width=
"220px
"
>
<
template
slot-scope=
"scope"
>
<el-input
v-model=
"scope.row.customsFees"
placeholder=
"请输入内容"
/
>
<el-input
-number
v-model=
"scope.row.fee"
controls-position=
"right"
:min=
"1"
></el-input-number
>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
<el-button
type=
"primary"
size=
"small"
>
修改
</el-button>
<el-button
size=
"small"
>
重置
</el-button>
<el-button
type=
"primary"
size=
"small"
@
click=
"updateExtraCost(scope.row)"
>
修改
</el-button>
<el-button
size=
"small"
@
click=
"restCostList(scope.row)"
>
重置
</el-button>
</
template
>
</el-table-column>
</el-table>
...
...
@@ -129,7 +129,15 @@
<
script
>
import
supplierSelect
from
"
./common/supplierSelect.vue
"
;
import
{
customsCreate
,
serviceMsg
}
from
"
@/api/ecw/boxSea
"
;
import
{
customsCreate
,
serviceMsg
,
extraCostList
,
extraCostOrder
,
extraCostCreate
,
extraCostUpdate
,
approvalCreate
,
}
from
"
@/api/ecw/boxSea
"
;
import
{
formatNumberString
,
formatDateStr
}
from
"
../utils
"
;
import
ImageUpload
from
"
@/components/ImageUpload
"
;
...
...
@@ -157,6 +165,10 @@ export default {
},
// 订单号
orderNo
:
""
,
// 订单列表
costOrderList
:
[],
// 额外费用列表
costList
:
[],
};
},
created
()
{
...
...
@@ -184,13 +196,107 @@ export default {
shipmentId
:
this
.
$attrs
.
shipmentObj
.
id
,
operateType
,
}).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
(()
=>
{
this
.
cancel
(
"
submit
"
);
});
// 查验
const
{
dcCustomsStatus
,
dcCheckStatus
}
=
this
.
cusDeclarationObj
;
if
(
dcCustomsStatus
===
"
3
"
)
{
// 退场/部分退场
if
([
"
1
"
,
"
2
"
].
includes
(
dcCheckStatus
))
{
approvalCreate
({
approvalStatus
:
0
,
approvalType
:
dcCheckStatus
===
"
1
"
?
5
:
6
,
// 5报关全退,6报关部分退
shipmentId
:
this
.
$attrs
.
shipmentObj
.
id
,
}).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
(()
=>
{
this
.
cancel
(
"
submit
"
);
});
});
}
}
else
{
serviceMsg
(
res
,
this
).
then
(()
=>
{
this
.
cancel
(
"
submit
"
);
});
}
});
}
});
},
/* 查询订单号 */
searchOrder
()
{
if
(
!
this
.
orderNo
)
{
this
.
$message
.
error
(
"
请输入订单号
"
);
return
;
}
extraCostOrder
({
shipmentId
:
this
.
$attrs
.
shipmentObj
.
id
,
orderNo
:
this
.
orderNo
,
}).
then
((
res
)
=>
{
this
.
costOrderList
=
[
{
orderNo
:
this
.
orderNo
,
orderId
:
res
.
data
,
},
];
this
.
searchCostList
(
res
.
data
);
});
},
/* 查询额外费用订单 */
searchCostList
(
orderId
)
{
extraCostList
({
shipmentId
:
this
.
$attrs
.
shipmentObj
.
id
,
orderId
:
orderId
,
}).
then
((
res
)
=>
{
this
.
costList
=
res
.
data
.
map
((
item
)
=>
{
return
{
originalFee
:
item
.
fee
,
...
item
};
});
});
},
/* 创建额外费用 */
createExtraCost
(
row
)
{
if
(
!
row
.
fee
)
{
this
.
$message
.
error
(
"
请输入费用
"
);
return
;
}
extraCostCreate
({
fee
:
row
.
fee
,
orderId
:
row
.
orderId
,
orderNo
:
row
.
orderNo
,
shipmentId
:
this
.
$attrs
.
shipmentObj
.
id
,
}).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
(()
=>
{
this
.
searchCostList
(
row
.
orderId
);
});
});
},
/* 修改额外费用 */
updateExtraCost
(
row
)
{
if
(
!
row
.
fee
)
{
this
.
$message
.
error
(
"
请输入费用
"
);
return
;
}
extraCostUpdate
(
row
).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
(()
=>
{
this
.
searchCostList
(
row
.
orderId
);
});
});
},
/* 重置 */
restCostList
(
row
)
{
this
.
costList
=
this
.
costList
.
map
((
item
)
=>
{
if
(
row
&&
row
.
id
===
item
.
id
)
{
return
{
...
item
,
fee
:
item
.
originalFee
,
};
}
if
(
!
row
)
{
return
{
...
item
,
fee
:
item
.
originalFee
,
};
}
return
item
;
});
},
/** 取消 */
cancel
(
type
)
{
this
.
$emit
(
"
closeDialog
"
,
type
);
...
...
@@ -203,7 +309,12 @@ export default {
},
// 额外费用
extraCost
()
{
this
.
$set
(
this
.
dialogConfig
,
"
title
"
,
"
自编号
"
);
const
{
shipmentObj
}
=
this
.
$attrs
;
// 清空额外费用
this
.
orderNo
=
""
;
this
.
costOrderList
=
[];
this
.
costList
=
[];
this
.
$set
(
this
.
dialogConfig
,
"
title
"
,
`
${
shipmentObj
.
selfNo
}
报关费用`
);
this
.
$set
(
this
.
dialogConfig
,
"
dialogVisible
"
,
true
);
},
// 计算VGM重量
...
...
src/views/ecw/box/shippingSea/nodePage/
preinstallR
eview.vue
→
src/views/ecw/box/shippingSea/nodePage/
r
eview.vue
View file @
a240066c
...
...
@@ -16,7 +16,7 @@
import
{
approvalCreate
,
serviceMsg
}
from
"
@/api/ecw/boxSea
"
;
/**
*
预装
反审
* 反审
*/
export
default
{
name
:
"
review
"
,
...
...
@@ -32,11 +32,12 @@ export default {
onSubmit
()
{
this
.
$refs
[
"
reviewForm
"
].
validate
((
valid
)
=>
{
if
(
valid
)
{
const
{
currNode
,
shipmentObj
}
=
this
.
$attrs
;
approvalCreate
({
shipmentId
:
this
.
$attrs
.
shipmentObj
.
id
,
shipmentId
:
shipmentObj
.
id
,
...
this
.
reviewObj
,
approvalStatus
:
0
,
approvalType
:
4
,
// 预装反审
approvalType
:
currNode
.
type
===
"
preinstall
"
?
4
:
7
,
// 4预装反审 7卸柜反审核
}).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
(()
=>
{
this
.
cancel
(
"
submit
"
);
...
...
src/views/ecw/box/shippingSea/nodePage/unloading/index.vue
View file @
a240066c
...
...
@@ -16,7 +16,7 @@
<el-button
type=
"primary"
@
click=
"onSubmit(1)"
>
保存
</el-button>
<el-button
type=
"success"
@
click=
"onSubmit(2)"
>
提交
</el-button>
<el-button
@
click=
"cancel"
>
关闭
</el-button>
<el-button
type=
"danger"
@
click=
"startUnloading"
>
开始卸柜
</el-button>
<el-button
type=
"danger"
@
click=
"startUnloading"
:disabled=
"isStartUnloading"
>
开始卸柜
</el-button>
</el-row>
<!-- 开始卸柜 -->
...
...
@@ -91,6 +91,13 @@ export default {
this
.
dialogVisible
=
true
;
},
},
computed
:
{
isStartUnloading
()
{
const
{
currNode
,
shipmentObj
}
=
this
.
$attrs
;
const
status
=
shipmentObj
[
currNode
.
keyName
];
return
status
===
146
?
true
:
false
;
},
},
};
</
script
>
...
...
src/views/ecw/box/shippingSea/seaProcess.vue
View file @
a240066c
...
...
@@ -32,7 +32,6 @@
import
bookingWidget
from
"
./nodePage/booking.vue
"
;
import
trailerWidget
from
"
./nodePage/trailer.vue
"
;
import
preinstallWidget
from
"
./nodePage/preinstall.vue
"
;
import
preinstallReviewWidget
from
"
./nodePage/preinstallReview.vue
"
;
import
agentWidget
from
"
./nodePage/agent.vue
"
;
import
cabinetWidget
from
"
./nodePage/cabinet/index.vue
"
;
import
cusDeclarationWidget
from
"
./nodePage/cusDeclaration.vue
"
;
...
...
@@ -46,6 +45,7 @@ import arrivalWidget from "./nodePage/arrival.vue";
import
cusClearanceWidget
from
"
./nodePage/cusClearance.vue
"
;
import
unloadingWidget
from
"
./nodePage/unloading/index.vue
"
;
import
settlementWidget
from
"
./nodePage/settlement.vue
"
;
import
ReviewWidget
from
"
./nodePage/review.vue
"
;
/**
* 海运流程图
...
...
@@ -70,7 +70,7 @@ export default {
cusClearanceWidget
,
unloadingWidget
,
settlementWidget
,
preinstall
ReviewWidget
,
ReviewWidget
,
},
props
:
{
shipmentObj
:
Object
,
...
...
@@ -129,15 +129,24 @@ export default {
// 预装
case
"
preinstall
"
:
// 预装反审
const
s
tatus
=
this
.
shipmentObj
[
node
.
keyName
];
if
([
23
,
24
].
includes
(
s
tatus
))
{
this
.
currentComponent
=
`
preinstall
ReviewWidget`
;
const
preS
tatus
=
this
.
shipmentObj
[
node
.
keyName
];
if
([
23
,
24
].
includes
(
preS
tatus
))
{
this
.
currentComponent
=
`ReviewWidget`
;
this
.
$set
(
this
.
dialogConfig
,
"
width
"
,
"
700px
"
);
this
.
$set
(
this
.
dialogConfig
,
"
title
"
,
"
预装反审
"
);
}
else
{
this
.
$set
(
this
.
dialogConfig
,
"
fullscreen
"
,
true
);
this
.
$set
(
this
.
dialogConfig
,
"
title
"
,
"
出货安排(预装)
"
);
}
// 卸柜
case
"
unloading
"
:
// 卸柜反审
const
unStatus
=
this
.
shipmentObj
[
node
.
keyName
];
if
([
144
,
145
].
includes
(
unStatus
))
{
this
.
currentComponent
=
`ReviewWidget`
;
this
.
$set
(
this
.
dialogConfig
,
"
width
"
,
"
700px
"
);
this
.
$set
(
this
.
dialogConfig
,
"
title
"
,
"
卸柜反审
"
);
}
break
;
}
this
.
$set
(
this
.
dialogConfig
,
"
dialogVisible
"
,
true
);
...
...
@@ -192,9 +201,10 @@ export default {
<
style
lang=
"scss"
>
.app-seaProcess
{
.shipping-chart
{
width
:
max-content
;
display
:
flex
;
padding
:
10px
0
;
padding
:
10px
10px
;
min-width
:
1320px
;
.chart-nodes
{
display
:
flex
;
align-items
:
center
;
...
...
src/views/ecw/box/shippingSea/seaStepDetail.vue
View file @
a240066c
<
template
>
<div
class=
"app-seaStepDetail"
>
<el-scrollbar
:vertical=
"true"
>
<div
class=
"shipping-step"
>
<template
v-for=
"(step, index) in flatSeaStep"
>
<div
:key=
"index"
v-if=
"shipmentObj[step.voName] && columnsMapping[step.voName]"
class=
"step-table"
>
<div
class=
"step-title"
>
{{
step
.
title
}}
</div>
<div
v-for=
"(data, index) in columnsMapping[step.voName]"
:key=
"index"
class=
"step-content"
>
<p>
{{
data
.
title
}}
</p>
<p>
{{
getObjInfo
(
step
.
voName
,
data
)
}}
</p>
</div>
<el-scrollbar
:vertical=
"true"
viewClass=
"shipping-step"
>
<!--
<div
class=
"shipping-step"
>
-->
<template
v-for=
"(step, index) in flatSeaStep"
>
<div
:key=
"index"
v-if=
"shipmentObj[step.voName] && columnsMapping[step.voName]"
class=
"step-table"
>
<div
class=
"step-title"
>
{{
step
.
title
}}
</div>
<div
v-for=
"(data, index) in columnsMapping[step.voName]"
:key=
"index"
class=
"step-content"
>
<p>
{{
data
.
title
}}
</p>
<p>
{{
getObjInfo
(
step
.
voName
,
data
)
}}
</p>
</div>
</
template
>
</div>
</div>
</
template
>
<!-- </div> -->
</el-scrollbar>
</div>
</template>
...
...
@@ -30,348 +30,7 @@ export default {
data
()
{
return
{
flatSeaStep
:
this
.
seaBaseData
.
flat
(),
columnsMapping
:
{
bookSeaInfo
:
[
{
title
:
"
SO NO
"
,
key
:
"
sono
"
,
},
{
title
:
"
船公司类型
"
,
key
:
"
shipCompanyType
"
,
type
:
"
supplier
"
,
},
{
title
:
"
驳船港
"
,
key
:
"
bargePortId
"
,
type
:
"
dock
"
,
},
{
title
:
"
大船港
"
,
key
:
"
bigPortId
"
,
type
:
"
dock
"
,
},
{
title
:
"
目的港
"
,
key
:
"
destPortId
"
,
type
:
"
dock
"
,
},
{
title
:
"
订舱公司
"
,
key
:
"
spaceCompanyId
"
,
type
:
"
supplier
"
,
},
{
title
:
"
预计驳船时间
"
,
key
:
"
bargeTime
"
,
type
:
"
date
"
,
},
{
title
:
"
预计开船时间
"
,
key
:
"
sailTime
"
,
type
:
"
date
"
,
},
{
title
:
"
业务员
"
,
key
:
"
operator
"
,
},
],
preInstallInfo
:
[
{
title
:
"
预装时间
"
,
key
:
"
createTime
"
,
type
:
"
date
"
,
},
{
title
:
"
业务员
"
,
key
:
"
operator
"
,
},
],
trailerInfo
:
[
{
title
:
"
货柜号
"
,
key
:
"
tlContainerNo
"
,
},
{
title
:
"
封条
"
,
key
:
"
tlStripSeal
"
,
},
{
title
:
"
拖车公司
"
,
key
:
"
tlCompanyId
"
,
type
:
"
supplier
"
,
},
{
title
:
"
拖车时间
"
,
key
:
"
tlTime
"
,
type
:
"
date
"
,
},
{
title
:
"
车牌
"
,
key
:
"
tlLicensePlate
"
,
},
{
title
:
"
司机
"
,
key
:
"
tlDriver
"
,
},
{
title
:
"
联系方式
"
,
key
:
"
tlDriverContact
"
,
},
{
title
:
"
业务员
"
,
key
:
"
operator
"
,
},
],
agentInfo
:
[
{
title
:
"
代理商
"
,
key
:
"
agentId
"
,
type
:
"
supplier
"
,
},
{
title
:
"
业务员
"
,
key
:
"
operator
"
,
},
],
cabinetInfo
:
[
{
title
:
"
到仓时间
"
,
key
:
"
ldInWarehouseTime
"
,
type
:
"
date
"
,
},
{
title
:
"
仓库类型
"
,
key
:
"
ldWarehouseType
"
,
type
:
"
warehouse
"
,
},
{
title
:
"
装柜时间
"
,
key
:
"
ldBoxTime
"
,
type
:
"
date
"
,
},
{
title
:
"
出仓时间
"
,
key
:
"
ldOutWarehouseTime
"
,
type
:
"
date
"
,
},
{
title
:
"
业务员
"
,
key
:
"
operator
"
,
},
],
customsInfo
:
[
{
title
:
"
报关方式
"
,
key
:
"
dcCustomsType
"
,
type
:
"
shipping_customs_type
"
,
},
{
title
:
"
报关行公司
"
,
key
:
"
dcCompanyId
"
,
type
:
"
supplier
"
,
},
{
title
:
"
截关时间
"
,
key
:
"
dcCutOffTime
"
,
type
:
"
date
"
,
},
{
title
:
"
状态
"
,
key
:
"
dcCustomsStatus
"
,
type
:
"
shipping_dcCustoms_status
"
,
},
{
title
:
"
放行时间
"
,
key
:
"
dcPassTime
"
,
type
:
"
date
"
,
},
{
title
:
"
新封条
"
,
key
:
"
dcStripSeal
"
,
},
{
title
:
"
柜重
"
,
key
:
"
dcBoxWgt
"
,
},
{
title
:
"
货重
"
,
key
:
"
dcGoodsWgt
"
,
},
{
title
:
"
VGM重量
"
,
key
:
"
dcVgmWgt
"
,
},
{
title
:
"
业务员
"
,
key
:
"
operator
"
,
},
],
shipConfigInfo
:
[
{
title
:
"
已配/免配
"
,
key
:
"
saExmtStatus
"
,
type
:
"
saExmtStatus
"
,
},
{
title
:
"
业务员
"
,
key
:
"
operator
"
,
},
],
ladingBillInfo
:
[
{
title
:
"
清关代理
"
,
key
:
"
agentId
"
,
type
:
"
supplier
"
,
},
{
title
:
"
提单品名
"
,
key
:
"
blMblNo
"
,
},
{
title
:
"
通知方
"
,
key
:
"
notifyingId
"
,
},
{
title
:
"
提单备注
"
,
key
:
"
remarks
"
,
},
{
title
:
"
数量
"
,
key
:
"
packageNum
"
,
},
{
title
:
"
体积
"
,
key
:
"
cbm
"
,
},
{
title
:
"
业务员
"
,
key
:
"
operator
"
,
},
],
bargeInfo
:
[
{
title
:
"
驳船
"
,
key
:
"
bgExmtStatus
"
,
type
:
"
bgExmtStatus
"
,
},
{
title
:
"
业务员
"
,
key
:
"
operator
"
,
},
],
shippingInfo
:
[
{
title
:
"
实际开船时间
"
,
key
:
"
dtRealShipTime
"
,
type
:
"
datetime
"
,
},
{
title
:
"
预计到港时间
"
,
key
:
"
dtEstArrivalTime
"
,
type
:
"
date
"
,
},
{
title
:
"
业务员
"
,
key
:
"
operator
"
,
},
],
clearanceDocInfo
:
[
{
title
:
"
agent list
"
,
key
:
"
cdAgentlistType
"
,
type
:
"
isFile
"
,
},
{
title
:
"
soncap
"
,
key
:
"
cdSoncapType
"
,
type
:
"
isFile
"
,
},
{
title
:
"
出单方式
"
,
key
:
"
cdOutBillType
"
,
type
:
"
billingMethod
"
,
},
{
title
:
"
寄送时间
"
,
key
:
"
cdSendTime
"
,
type
:
"
date
"
,
},
{
title
:
"
业务员
"
,
key
:
"
operator
"
,
},
],
arrivalInfo
:
[
{
title
:
"
实际到港时间
"
,
key
:
"
apRealTime
"
,
type
:
"
datetime
"
,
},
{
title
:
"
确认到港
"
,
key
:
"
apConfirmTime
"
,
type
:
"
datetime
"
,
},
{
title
:
"
卸港时间
"
,
key
:
"
apUnloadPortTime
"
,
type
:
"
date
"
,
},
{
title
:
"
业务员
"
,
key
:
"
operator
"
,
},
],
clearanceInfo
:
[
{
title
:
"
预计清关时间
"
,
key
:
"
clEstTime
"
,
type
:
"
date
"
,
},
{
title
:
"
清关时间
"
,
key
:
"
clClearTime
"
,
type
:
"
datetime
"
,
},
{
title
:
"
业务员
"
,
key
:
"
operator
"
,
},
],
cabinetUnloadInfo
:
[
{
title
:
"
到仓时间
"
,
key
:
"
ulWarehouseTime
"
,
type
:
"
date
"
,
},
{
title
:
"
卸货时间
"
,
key
:
"
ulBoxTime
"
,
type
:
"
date
"
,
},
{
title
:
"
业务员
"
,
key
:
"
operator
"
,
},
],
settlementInfo
:
[
{
title
:
"
可结算
"
,
key
:
"
slSettlementTime
"
,
type
:
"
date
"
,
},
{
title
:
"
已结算
"
,
key
:
"
slSettledTime
"
,
type
:
"
date
"
,
},
{
title
:
"
业务员
"
,
key
:
"
operator
"
,
},
],
},
columnsMapping
:
_C
.
getColmnMapping
(),
};
},
methods
:
{
...
...
@@ -445,6 +104,8 @@ export default {
flex-wrap
:
wrap
;
align-content
:
flex-start
;
height
:
550px
;
min-width
:
1300px
;
padding
:
10px
10px
;
p
{
margin
:
0
;
...
...
src/views/ecw/box/shippingSea/utils.js
View file @
a240066c
import
dayjs
from
"
dayjs
"
;
/**
* 节点状态值
*
* @return {*}
*/
function
getStatusName
()
{
const
statusName
=
new
Map
();
...
...
@@ -63,6 +68,11 @@ function getStatusName() {
return
statusName
;
}
/**
* 海运流程
*
* @return {*}
*/
function
seaBaseData
()
{
return
[
[
...
...
@@ -400,6 +410,359 @@ function seaBaseData() {
];
}
/**
* 详情显示列
*
* @return {*}
*/
function
getColmnMapping
()
{
return
{
bookSeaInfo
:
[
{
title
:
"
SO NO
"
,
key
:
"
sono
"
,
},
{
title
:
"
船公司类型
"
,
key
:
"
shipCompanyType
"
,
type
:
"
supplier
"
,
},
{
title
:
"
驳船港
"
,
key
:
"
bargePortId
"
,
type
:
"
dock
"
,
},
{
title
:
"
大船港
"
,
key
:
"
bigPortId
"
,
type
:
"
dock
"
,
},
{
title
:
"
目的港
"
,
key
:
"
destPortId
"
,
type
:
"
dock
"
,
},
{
title
:
"
订舱公司
"
,
key
:
"
spaceCompanyId
"
,
type
:
"
supplier
"
,
},
{
title
:
"
预计驳船时间
"
,
key
:
"
bargeTime
"
,
type
:
"
date
"
,
},
{
title
:
"
预计开船时间
"
,
key
:
"
sailTime
"
,
type
:
"
date
"
,
},
{
title
:
"
业务员
"
,
key
:
"
operator
"
,
},
],
preInstallInfo
:
[
{
title
:
"
预装时间
"
,
key
:
"
createTime
"
,
type
:
"
date
"
,
},
{
title
:
"
业务员
"
,
key
:
"
operator
"
,
},
],
trailerInfo
:
[
{
title
:
"
货柜号
"
,
key
:
"
tlContainerNo
"
,
},
{
title
:
"
封条
"
,
key
:
"
tlStripSeal
"
,
},
{
title
:
"
拖车公司
"
,
key
:
"
tlCompanyId
"
,
type
:
"
supplier
"
,
},
{
title
:
"
拖车时间
"
,
key
:
"
tlTime
"
,
type
:
"
date
"
,
},
{
title
:
"
车牌
"
,
key
:
"
tlLicensePlate
"
,
},
{
title
:
"
司机
"
,
key
:
"
tlDriver
"
,
},
{
title
:
"
联系方式
"
,
key
:
"
tlDriverContact
"
,
},
{
title
:
"
业务员
"
,
key
:
"
operator
"
,
},
],
agentInfo
:
[
{
title
:
"
代理商
"
,
key
:
"
agentId
"
,
type
:
"
supplier
"
,
},
{
title
:
"
业务员
"
,
key
:
"
operator
"
,
},
],
cabinetInfo
:
[
{
title
:
"
到仓时间
"
,
key
:
"
ldInWarehouseTime
"
,
type
:
"
date
"
,
},
{
title
:
"
仓库类型
"
,
key
:
"
ldWarehouseType
"
,
type
:
"
warehouse
"
,
},
{
title
:
"
装柜时间
"
,
key
:
"
ldBoxTime
"
,
type
:
"
date
"
,
},
{
title
:
"
出仓时间
"
,
key
:
"
ldOutWarehouseTime
"
,
type
:
"
date
"
,
},
{
title
:
"
业务员
"
,
key
:
"
operator
"
,
},
],
customsInfo
:
[
{
title
:
"
报关方式
"
,
key
:
"
dcCustomsType
"
,
type
:
"
shipping_customs_type
"
,
},
{
title
:
"
报关行公司
"
,
key
:
"
dcCompanyId
"
,
type
:
"
supplier
"
,
},
{
title
:
"
截关时间
"
,
key
:
"
dcCutOffTime
"
,
type
:
"
date
"
,
},
{
title
:
"
状态
"
,
key
:
"
dcCustomsStatus
"
,
type
:
"
shipping_dcCustoms_status
"
,
},
{
title
:
"
放行时间
"
,
key
:
"
dcPassTime
"
,
type
:
"
date
"
,
},
{
title
:
"
新封条
"
,
key
:
"
dcStripSeal
"
,
},
{
title
:
"
柜重
"
,
key
:
"
dcBoxWgt
"
,
},
{
title
:
"
货重
"
,
key
:
"
dcGoodsWgt
"
,
},
{
title
:
"
VGM重量
"
,
key
:
"
dcVgmWgt
"
,
},
{
title
:
"
业务员
"
,
key
:
"
operator
"
,
},
],
shipConfigInfo
:
[
{
title
:
"
已配/免配
"
,
key
:
"
saExmtStatus
"
,
type
:
"
saExmtStatus
"
,
},
{
title
:
"
业务员
"
,
key
:
"
operator
"
,
},
],
ladingBillInfo
:
[
{
title
:
"
清关代理
"
,
key
:
"
agentId
"
,
type
:
"
supplier
"
,
},
{
title
:
"
提单品名
"
,
key
:
"
blMblNo
"
,
},
{
title
:
"
通知方
"
,
key
:
"
notifyingId
"
,
},
{
title
:
"
提单备注
"
,
key
:
"
remarks
"
,
},
{
title
:
"
数量
"
,
key
:
"
packageNum
"
,
},
{
title
:
"
体积
"
,
key
:
"
cbm
"
,
},
{
title
:
"
业务员
"
,
key
:
"
operator
"
,
},
],
bargeInfo
:
[
{
title
:
"
驳船
"
,
key
:
"
bgExmtStatus
"
,
type
:
"
bgExmtStatus
"
,
},
{
title
:
"
业务员
"
,
key
:
"
operator
"
,
},
],
shippingInfo
:
[
{
title
:
"
实际开船时间
"
,
key
:
"
dtRealShipTime
"
,
type
:
"
datetime
"
,
},
{
title
:
"
预计到港时间
"
,
key
:
"
dtEstArrivalTime
"
,
type
:
"
date
"
,
},
{
title
:
"
业务员
"
,
key
:
"
operator
"
,
},
],
clearanceDocInfo
:
[
{
title
:
"
agent list
"
,
key
:
"
cdAgentlistType
"
,
type
:
"
isFile
"
,
},
{
title
:
"
soncap
"
,
key
:
"
cdSoncapType
"
,
type
:
"
isFile
"
,
},
{
title
:
"
出单方式
"
,
key
:
"
cdOutBillType
"
,
type
:
"
billingMethod
"
,
},
{
title
:
"
寄送时间
"
,
key
:
"
cdSendTime
"
,
type
:
"
date
"
,
},
{
title
:
"
业务员
"
,
key
:
"
operator
"
,
},
],
arrivalInfo
:
[
{
title
:
"
实际到港时间
"
,
key
:
"
apRealTime
"
,
type
:
"
datetime
"
,
},
{
title
:
"
确认到港
"
,
key
:
"
apConfirmTime
"
,
type
:
"
datetime
"
,
},
{
title
:
"
卸港时间
"
,
key
:
"
apUnloadPortTime
"
,
type
:
"
date
"
,
},
{
title
:
"
业务员
"
,
key
:
"
operator
"
,
},
],
clearanceInfo
:
[
{
title
:
"
预计清关时间
"
,
key
:
"
clEstTime
"
,
type
:
"
date
"
,
},
{
title
:
"
清关时间
"
,
key
:
"
clClearTime
"
,
type
:
"
datetime
"
,
},
{
title
:
"
业务员
"
,
key
:
"
operator
"
,
},
],
cabinetUnloadInfo
:
[
{
title
:
"
到仓时间
"
,
key
:
"
ulWarehouseTime
"
,
type
:
"
date
"
,
},
{
title
:
"
卸货时间
"
,
key
:
"
ulBoxTime
"
,
type
:
"
date
"
,
},
{
title
:
"
业务员
"
,
key
:
"
operator
"
,
},
],
settlementInfo
:
[
{
title
:
"
可结算
"
,
key
:
"
slSettlementTime
"
,
type
:
"
date
"
,
},
{
title
:
"
已结算
"
,
key
:
"
slSettledTime
"
,
type
:
"
date
"
,
},
{
title
:
"
业务员
"
,
key
:
"
operator
"
,
},
],
};
}
/**
* 常量字典
*/
const
constantDict
=
{
// 配船状态
saExmtStatus
:
[
...
...
@@ -447,6 +810,13 @@ const constantDict = {
],
};
/**
* string format number
*
* @param {*} obj
* @param {*} keys
* @return {*}
*/
function
formatStringNumber
(
obj
,
keys
)
{
for
(
const
[
key
,
value
]
of
Object
.
entries
(
obj
))
{
if
(
keys
.
includes
(
key
)
&&
!
Number
.
isNaN
(
Number
(
value
)))
{
...
...
@@ -456,6 +826,13 @@ function formatStringNumber(obj, keys) {
return
obj
;
}
/**
* number format string
*
* @param {*} obj
* @param {*} keys
* @return {*}
*/
function
formatNumberString
(
obj
,
keys
)
{
for
(
const
[
key
,
value
]
of
Object
.
entries
(
obj
))
{
if
(
keys
.
includes
(
key
)
&&
value
)
{
...
...
@@ -465,6 +842,14 @@ function formatNumberString(obj, keys) {
return
obj
;
}
/**
* stringDate format Date
*
* @param {*} obj
* @param {*} keys
* @param {string} [format="YYYY-MM-DD"]
* @return {*}
*/
function
formatDateStr
(
obj
,
keys
,
format
=
"
YYYY-MM-DD
"
)
{
for
(
const
[
key
,
value
]
of
Object
.
entries
(
obj
))
{
if
(
keys
.
includes
(
key
)
&&
dayjs
(
value
).
isValid
())
{
...
...
@@ -487,6 +872,7 @@ export const fileTypes = [
export
{
getStatusName
,
getColmnMapping
,
seaBaseData
,
constantDict
,
formatStringNumber
,
...
...
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