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
b094be9f
Commit
b094be9f
authored
Aug 20, 2022
by
huhaiqing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
海运功能开发
parent
b46d89d6
Changes
31
Show whitespace changes
Inline
Side-by-side
Showing
31 changed files
with
987 additions
and
503 deletions
+987
-503
box.js
src/api/ecw/box.js
+49
-0
boxSea.js
src/api/ecw/boxSea.js
+30
-21
index.scss
src/assets/styles/index.scss
+1
-1
costForm.vue
src/views/ecw/box/costForm.vue
+36
-4
editForm.vue
src/views/ecw/box/editForm.vue
+143
-0
indexSea.vue
src/views/ecw/box/indexSea.vue
+207
-331
query.vue
src/views/ecw/box/query.vue
+377
-86
regError.vue
src/views/ecw/box/regError.vue
+32
-4
shippingDetail.vue
src/views/ecw/box/shippingDetail.vue
+0
-1
agent.vue
src/views/ecw/box/shippingSea/nodePage/agent.vue
+2
-2
arrival.vue
src/views/ecw/box/shippingSea/nodePage/arrival.vue
+2
-2
barge.vue
src/views/ecw/box/shippingSea/nodePage/barge.vue
+2
-2
blCopy.vue
src/views/ecw/box/shippingSea/nodePage/blCopy.vue
+2
-2
booking.vue
src/views/ecw/box/shippingSea/nodePage/booking.vue
+2
-2
index.vue
src/views/ecw/box/shippingSea/nodePage/cabinet/index.vue
+2
-2
startPacking.vue
...ews/ecw/box/shippingSea/nodePage/cabinet/startPacking.vue
+37
-17
supplementOrder.vue
.../ecw/box/shippingSea/nodePage/cabinet/supplementOrder.vue
+1
-2
clrDocument.vue
src/views/ecw/box/shippingSea/nodePage/clrDocument.vue
+2
-1
cusClearance.vue
src/views/ecw/box/shippingSea/nodePage/cusClearance.vue
+2
-2
cusDeclaration.vue
src/views/ecw/box/shippingSea/nodePage/cusDeclaration.vue
+1
-2
departure.vue
src/views/ecw/box/shippingSea/nodePage/departure.vue
+2
-2
preinstall.vue
src/views/ecw/box/shippingSea/nodePage/preinstall.vue
+11
-4
review.vue
src/views/ecw/box/shippingSea/nodePage/review.vue
+2
-1
settlement.vue
src/views/ecw/box/shippingSea/nodePage/settlement.vue
+2
-2
ship.vue
src/views/ecw/box/shippingSea/nodePage/ship.vue
+7
-2
subMaterial.vue
src/views/ecw/box/shippingSea/nodePage/subMaterial.vue
+2
-2
trailer.vue
src/views/ecw/box/shippingSea/nodePage/trailer.vue
+2
-1
index.vue
src/views/ecw/box/shippingSea/nodePage/unloading/index.vue
+2
-2
startUnloading.vue
...ecw/box/shippingSea/nodePage/unloading/startUnloading.vue
+2
-1
unloadingError.vue
...ecw/box/shippingSea/nodePage/unloading/unloadingError.vue
+2
-1
utils.js
src/views/ecw/box/shippingSea/utils.js
+23
-1
No files found.
src/api/ecw/box.js
View file @
b094be9f
...
...
@@ -55,6 +55,14 @@ export function exportboxExcel(query) {
// 创建费用登记
export
function
createCost
(
data
)
{
if
(
data
.
id
)
{
return
request
({
url
:
"
/ecw/box-cost/update
"
,
method
:
"
put
"
,
data
,
});
}
return
request
({
url
:
'
/ecw/box-cost/create
'
,
method
:
'
post
'
,
...
...
@@ -62,6 +70,14 @@ export function createCost(data) {
})
}
// 删除费用登记
export
function
deleteCost
(
id
)
{
return
request
({
url
:
`/ecw/box-cost/delete?id=
${
id
}
`
,
method
:
"
delete
"
,
})
}
// 审核详情
export
function
approvalDetail
(
data
)
{
return
request
({
...
...
@@ -72,6 +88,39 @@ export function approvalDetail(data) {
})
}
// 出货操作日志列表
export
function
getLogList
(
params
)
{
return
request
({
url
:
'
/ecw/box-op-log/list
'
,
method
:
'
get
'
,
params
})
}
// 获得费用登记列表
export
function
getCostList
(
params
)
{
return
request
({
url
:
'
/ecw/box-cost/list
'
,
method
:
'
get
'
,
params
})
}
// 获得出货异常记录列表
export
function
getAbnormalList
(
params
)
{
return
request
({
url
:
'
/ecw/box-abnormal/list
'
,
method
:
'
get
'
,
params
})
}
/**
* formData数据
*
* @param {*} params
* @return {*}
*/
function
jsonToFormData
(
params
)
{
const
formData
=
new
FormData
();
for
(
const
[
key
,
value
]
of
Object
.
entries
(
params
))
{
...
...
src/api/ecw/boxSea.js
View file @
b094be9f
...
...
@@ -505,6 +505,21 @@ export function orderTagList(data) {
});
}
/**
* 单个装柜
*
* @export
* @param {*} data
* @return {*}
*/
export
function
singleCreate
(
data
)
{
return
request
({
url
:
"
/ecw/box-load-info/singleCreate
"
,
method
:
"
post
"
,
data
,
});
}
/**
* 批量装柜
*
...
...
@@ -520,6 +535,21 @@ export function batchCreate(data) {
});
}
/**
* 单个删除已装柜标签
*
* @export
* @param {*} data
* @return {*}
*/
export
function
singleDelete
(
data
)
{
return
request
({
url
:
"
/ecw/box-load-info/singleDelete
"
,
method
:
"
post
"
,
data
,
});
}
/**
* 批量删除已装柜标签
*
...
...
@@ -695,27 +725,6 @@ export function extraCostList(params) {
/***************************** 报关费用 end **********************************/
/**
* 服务提示消息回调
*
* @export
* @param {*} result
* @param {*} _vue
* @return {*}
*/
export
function
serviceMsg
(
result
,
_vue
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
const
{
code
,
msg
}
=
result
;
if
(
code
===
0
)
{
_vue
.
$message
.
success
(
"
操作成功
"
);
resolve
();
}
else
{
_vue
.
$message
.
error
(
msg
);
reject
();
}
});
}
function
jsonToFormData
(
params
)
{
const
formData
=
new
FormData
();
for
(
const
[
key
,
value
]
of
Object
.
entries
(
params
))
{
...
...
src/assets/styles/index.scss
View file @
b094be9f
...
...
@@ -49,7 +49,7 @@ a,
a
:focus
,
a
:hover
{
cursor
:
pointer
;
color
:
inherit
;
//
color: inherit;
text-decoration
:
none
;
}
...
...
src/views/ecw/box/costForm.vue
View file @
b094be9f
<
template
>
<div
class=
"app-costForm"
>
<div
class=
"app-costForm
shippingSea-dialog
"
>
<el-form
ref=
"costForm"
:model=
"costObj"
label-width=
"80px"
>
<el-form-item
label=
"操作步骤"
>
...
...
@@ -46,7 +46,7 @@
<
script
>
import
{
getSupplierPage
}
from
"
@/api/ecw/supplier
"
;
import
{
createCost
}
from
"
@/api/ecw/box
"
;
import
{
serviceMsg
}
from
"
@/api/ecw/boxSea
"
;
import
{
serviceMsg
}
from
"
./shippingSea/utils
"
;
export
default
{
name
:
"
costForm
"
,
...
...
@@ -65,17 +65,19 @@ export default {
const
{
data
}
=
res
;
this
.
allSupplier
=
data
.
list
;
});
const
{
costDetail
}
=
this
.
$attrs
;
this
.
costObj
=
{
...
costDetail
};
},
methods
:
{
submit
()
{
this
.
$refs
[
"
costForm
"
].
validate
((
valid
)
=>
{
if
(
valid
)
{
createCost
({
shipmentId
:
this
.
$attrs
.
currRow
.
id
,
shipmentId
:
this
.
$attrs
.
shipmentObj
.
id
,
...
this
.
costObj
,
}).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
(()
=>
{
this
.
$emit
(
"
closeDialog
"
);
this
.
$emit
(
"
closeDialog
"
,
"
cost
"
);
});
});
}
...
...
@@ -84,3 +86,33 @@ export default {
},
};
</
script
>
<
style
lang=
"scss"
>
// 海运操作统一弹窗样式
.shippingSea-dialog
{
// 页面内元素弹窗form控件宽度设置
.el-form-item__content
{
>
div
:not
(
.el-input-number
)
{
width
:
100%
;
}
}
.operate-button
{
text-align
:
center
;
}
.two-element-formItem
{
display
:
flex
;
>
:last-child
{
width
:
100%
;
margin-left
:
10px
;
}
}
.two-element
{
.el-form-item__content
{
display
:
flex
;
>
:last-child
{
margin-left
:
10px
;
}
}
}
}
</
style
>
src/views/ecw/box/editForm.vue
0 → 100644
View file @
b094be9f
<
template
>
<div
class=
"shippingSea-dialog"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"80px"
>
<el-form-item
label=
"运输方式"
prop=
"transportType"
>
<el-radio-group
v-model=
"form.transportType"
>
<el-radio
v-for=
"dict in transportTypes"
:key=
"dict.value"
:label=
"dict.value"
>
{{
dict
.
label
}}
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
label=
"柜型"
prop=
"cabinetId"
>
<el-select
v-model=
"form.cabinetId"
placeholder=
"请选择柜型"
>
<el-option
v-for=
"item in cabinetList"
:label=
"item.name"
:value=
"item.id"
:key=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"始发地"
prop=
"startWarehouseId"
>
<el-select
v-model=
"form.startWarehouseId"
placeholder=
"请选择始发地"
>
<el-option
v-for=
"item in exportWarehouseList"
:label=
"item.titleZh"
:value=
"item.id"
:key=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"目的地"
prop=
"destWarehouseId"
>
<el-select
v-model=
"form.destWarehouseId"
placeholder=
"请选择目的地"
>
<el-option
v-for=
"item in importWarehouseList"
:label=
"item.titleZh"
:value=
"item.id"
:key=
"item.id"
></el-option>
</el-select>
</el-form-item>
<div
class=
"operate-button"
>
<el-button
type=
"primary"
@
click=
"submitForm"
>
确 定
</el-button>
<el-button
@
click=
"cancel"
>
取 消
</el-button>
</div>
</el-form>
</div>
</
template
>
<
script
>
import
{
createbox
,
updatebox
}
from
"
@/api/ecw/box
"
;
export
default
{
name
:
"
editForm
"
,
inheritAttrs
:
false
,
props
:
{
transportTypes
:
Array
,
warehouseList
:
Array
,
cabinetList
:
Array
,
shipmentObj
:
Object
,
},
created
()
{
this
.
form
=
{
...
this
.
shipmentObj
};
},
data
()
{
return
{
// 表单参数
form
:
{},
// 表单校验
rules
:
{
transportType
:
[
{
required
:
true
,
message
:
"
运输方式不能为空
"
,
trigger
:
"
blur
"
},
],
cabinetId
:
[
{
required
:
true
,
message
:
"
柜型不能为空
"
,
trigger
:
"
blur
"
},
],
startWarehouseId
:
[
{
required
:
true
,
message
:
"
始发地不能为空
"
,
trigger
:
"
blur
"
},
],
destWarehouseId
:
[
{
required
:
true
,
message
:
"
目的地不能为空
"
,
trigger
:
"
blur
"
},
],
},
};
},
methods
:
{
/** 提交按钮 */
submitForm
()
{
this
.
$refs
[
"
form
"
].
validate
((
valid
)
=>
{
if
(
!
valid
)
{
return
;
}
// 修改的提交
if
(
this
.
form
.
id
!=
null
)
{
updatebox
(
this
.
form
).
then
((
response
)
=>
{
this
.
$modal
.
msgSuccess
(
"
修改成功
"
);
this
.
$emit
(
"
closeDialog
"
,
"
edit
"
);
});
return
;
}
// 添加的提交
createbox
(
this
.
form
).
then
((
response
)
=>
{
this
.
$modal
.
msgSuccess
(
"
新增成功
"
);
this
.
$emit
(
"
closeDialog
"
,
"
add
"
);
});
});
},
/** 取消按钮 */
cancel
()
{
this
.
$emit
(
"
closeDialog
"
);
},
},
computed
:
{
exportWarehouseList
()
{
return
this
.
warehouseList
.
filter
(
(
item
)
=>
item
.
tradeType
==
"
2
"
||
item
.
type
==
"
3
"
);
},
importWarehouseList
()
{
return
this
.
warehouseList
.
filter
(
(
item
)
=>
item
.
tradeType
==
"
1
"
||
item
.
type
==
"
3
"
);
},
},
};
</
script
>
<
style
lang=
"scss"
>
// 海运操作统一弹窗样式
.shippingSea-dialog
{
// 页面内元素弹窗form控件宽度设置
.el-form-item__content
{
>
div
:not
(
.el-input-number
)
{
width
:
100%
;
}
}
.operate-button
{
text-align
:
center
;
}
.two-element-formItem
{
display
:
flex
;
>
:last-child
{
width
:
100%
;
margin-left
:
10px
;
}
}
.two-element
{
.el-form-item__content
{
display
:
flex
;
>
:last-child
{
margin-left
:
10px
;
}
}
}
}
</
style
>
src/views/ecw/box/indexSea.vue
View file @
b094be9f
...
...
@@ -4,10 +4,10 @@
<!-- 搜索工作栏 -->
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"68px"
>
<el-form-item
label=
"自编号"
prop=
"selfNo"
>
<el-input
v-model=
"queryParams.selfNo"
placeholder=
"请输入自编号"
clearable
@
keyup.enter.native=
"handleQuery"
/>
<el-input
v-model=
"queryParams.selfNo"
placeholder=
"请输入自编号"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"柜号"
prop=
"cubNo"
>
<el-input
v-model=
"queryParams.cubNo"
placeholder=
"请输入柜号"
clearable
@
keyup.enter.native=
"handleQuery"
/>
<el-input
v-model=
"queryParams.cubNo"
placeholder=
"请输入柜号"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
label=
"柜型"
prop=
"cabinetId"
>
<el-select
v-model=
"queryParams.cabinetId"
placeholder=
"请选择柜型"
>
...
...
@@ -34,27 +34,21 @@
</el-form-item>
<el-form-item
label=
""
>
<el-date-picker
v-model=
"queryParams.dateRangeCreateTime"
style=
"width: 240px"
value-format=
"yyyy-MM-dd"
type=
"daterange"
range-separator=
"-"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
/>
<el-date-picker
v-model=
"queryParams.dateRangeCreateTime"
style=
"width: 240px"
value-format=
"yyyy-MM-dd"
type=
"daterange"
range-separator=
"-"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
/>
</el-form-item>
<el-form-item
label=
"状态"
prop=
"boxStatus"
>
<el-select
v-model=
"queryParams.boxStatus"
placeholder=
"请选择状态"
clearable
size=
"small"
>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.BOX_SHIPMENT_STATUS)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
<el-option
v-for=
"dict in this.getDictDatas(DICT_TYPE.BOX_SHIPMENT_STATUS)"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item
label=
"运输方式"
prop=
"transportType"
>
<el-select
v-model=
"queryParams.transportType"
placeholder=
"请选择运输方式"
clearable
size=
"small"
>
<el-option
v-for=
"dict in transportTypes"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
<el-option
v-for=
"dict in transportTypes"
:key=
"dict.value"
:label=
"dict.label"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleQuery"
>
搜索
</el-button>
<el-button
icon=
"el-icon-refresh"
@
click=
"resetQuery"
>
重置
</el-button>
...
...
@@ -64,14 +58,11 @@
<!-- 操作工具栏 -->
<el-row
:gutter=
"10"
class=
"mb8"
>
<el-col
:span=
"1.5"
>
<el-button
type=
"primary"
plain
icon=
"el-icon-plus"
size=
"mini"
@
click=
"handleAdd"
v-hasPermi=
"['shipment:box:create']"
>
出货安排
<el-button
type=
"primary"
plain
icon=
"el-icon-plus"
size=
"mini"
@
click=
"handleAdd"
v-hasPermi=
"['shipment:box:create']"
>
出货安排
</el-button>
</el-col>
<el-col
:span=
"1.5"
>
<el-button
type=
"warning"
plain
icon=
"el-icon-download"
size=
"mini"
@
click=
"handleExport"
:loading=
"exportLoading"
v-hasPermi=
"['shipment:box:export']"
>
导出
<el-button
type=
"warning"
plain
icon=
"el-icon-download"
size=
"mini"
@
click=
"handleExport"
:loading=
"exportLoading"
v-hasPermi=
"['shipment:box:export']"
>
导出
</el-button>
</el-col>
<right-toolbar
:showSearch.sync=
"showSearch"
@
queryTable=
"getList"
></right-toolbar>
...
...
@@ -81,10 +72,10 @@
<el-table
v-loading=
"loading"
:data=
"list"
>
<el-table-column
label=
"自编号"
align=
"center"
prop=
"selfNo"
>
<template
slot-scope=
"scope"
>
<
el-button
type=
"text"
@
click=
"handleCommand(scope.row, 'detail')"
>
{{
scope
.
row
.
selfNo
}}
</el-button
>
<
a
href=
"javascript:void(0)"
@
click=
"handleCommand(scope.row, 'detail')"
>
{{
scope
.
row
.
selfNo
}}
</a
>
</
template
>
</el-table-column>
<el-table-column
label=
"柜号"
align=
"center"
prop=
"cubNo"
/>
<el-table-column
label=
"柜号"
align=
"center"
prop=
"cubNo"
/>
<el-table-column
label=
"柜型"
align=
"center"
prop=
"cabinetId"
>
<
template
slot-scope=
"scope"
>
<span>
{{
getCabinetName
(
scope
.
row
.
cabinetId
)
}}
</span>
...
...
@@ -92,16 +83,16 @@
</el-table-column>
<el-table-column
label=
"运输方式"
align=
"center"
prop=
"transportType"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
:value=
"scope.row.transportType"
/>
<dict-tag
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
:value=
"scope.row.transportType"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"方数(预装/已装)"
align=
"center"
prop=
"squareNumber"
/>
<el-table-column
label=
"重量(预装/已装)"
align=
"center"
prop=
"weight"
/>
<el-table-column
label=
"方数(预装/已装)"
align=
"center"
prop=
"squareNumber"
/>
<el-table-column
label=
"重量(预装/已装)"
align=
"center"
prop=
"weight"
/>
<el-table-column
label=
"状态"
align=
"center"
prop=
"boxStatus"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.BOX_SHIPMENT_STATUS"
:value=
"scope.row.boxStatus"
/>
<dict-tag
:type=
"DICT_TYPE.BOX_SHIPMENT_STATUS"
:value=
"scope.row.boxStatus"
/>
</
template
>
</el-table-column>
...
...
@@ -142,80 +133,48 @@
</el-table-column>
</el-table>
<!-- 分页组件 -->
<pagination
v-show=
"total > 0"
:total=
"total"
:page.sync=
"queryParams.pageNo"
:limit.sync=
"queryParams.pageSize"
@
pagination=
"getList"
/>
<pagination
v-show=
"total > 0"
:total=
"total"
:page.sync=
"queryParams.pageNo"
:limit.sync=
"queryParams.pageSize"
@
pagination=
"getList"
/>
<!-- 对话框(添加 / 修改) -->
<el-dialog
:title=
"title"
:visible.sync=
"open"
width=
"600px"
append-to-body
class=
"shippingSea-dialog"
>
<
template
v-if=
"dialogType === 'edit' || dialogType === 'add'"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"80px"
>
<el-form-item
label=
"运输方式"
prop=
"transportType"
>
<el-radio-group
v-model=
"form.transportType"
>
<el-radio
v-for=
"dict in transportTypes"
:key=
"dict.value"
:label=
"dict.value"
>
{{
dict
.
label
}}
</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item
label=
"柜型"
prop=
"cabinetId"
>
<el-select
v-model=
"form.cabinetId"
placeholder=
"请选择柜型"
>
<el-option
v-for=
"item in cabinetList"
:label=
"item.name"
:value=
"item.id"
:key=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"始发地"
prop=
"startWarehouseId"
>
<el-select
v-model=
"form.startWarehouseId"
placeholder=
"请选择始发地"
>
<el-option
v-for=
"item in exportWarehouseList"
:label=
"item.titleZh"
:value=
"item.id"
:key=
"item.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"目的地"
prop=
"destWarehouseId"
>
<el-select
v-model=
"form.destWarehouseId"
placeholder=
"请选择目的地"
>
<el-option
v-for=
"item in importWarehouseList"
:label=
"item.titleZh"
:value=
"item.id"
:key=
"item.id"
></el-option>
</el-select>
</el-form-item>
</el-form>
<div
class=
"operate-button"
>
<el-button
type=
"primary"
@
click=
"submitForm"
>
确 定
</el-button>
<el-button
@
click=
"cancel"
>
取 消
</el-button>
</div>
<editForm
v-if=
"open"
@
closeDialog=
"closeDialog"
:shipmentObj=
"currRow"
:warehouseList=
"warehouseList"
:transportTypes=
"transportTypes"
:cabinetList=
"cabinetList"
/>
</
template
>
<
template
v-if=
"dialogType === 'cost'"
>
<costForm
v-if=
"open"
@
closeDialog=
"closeDialog"
:
currRow=
"currRow"
/>
<costForm
v-if=
"open"
@
closeDialog=
"closeDialog"
:
shipmentObj=
"currRow"
/>
</
template
>
<
template
v-if=
"dialogType === 'error'"
>
<regError
v-if=
"open"
@
closeDialog=
"closeDialog"
:shipmentObj=
"currRow"
/>
<regError
v-if=
"open"
@
closeDialog=
"closeDialog"
:shipmentObj=
"currRow"
/>
</
template
>
</el-dialog>
</div>
</template>
<
script
>
import
{
createbox
,
updatebox
,
deletebox
,
getbox
,
getboxPage
,
exportboxExcel
}
from
"
@/api/ecw/box
"
;
import
{
getCabinetPage
}
from
"
@/api/ecw/cabinet
"
;
import
{
getWarehouseList
}
from
"
@/api/ecw/warehouse
"
import
{
DICT_TYPE
}
from
'
@/utils/dict
'
;
import
costForm
from
'
./costForm.vue
'
import
regError
from
'
./regError.vue
'
export
default
{
name
:
"
box
"
,
import
{
deletebox
,
getbox
,
getboxPage
,
exportboxExcel
}
from
"
@/api/ecw/box
"
;
import
{
getCabinetPage
}
from
"
@/api/ecw/cabinet
"
;
import
{
getWarehouseList
}
from
"
@/api/ecw/warehouse
"
;
import
costForm
from
"
./costForm.vue
"
;
import
regError
from
"
./regError.vue
"
;
import
editForm
from
"
./editForm.vue
"
;
export
default
{
name
:
"
indexSea
"
,
components
:
{
costForm
,
regError
regError
,
editForm
,
},
data
()
{
return
{
dateTypes
:
[
{
value
:
'
1
'
,
label
:
'
预装时间
'
},
{
value
:
'
2
'
,
label
:
'
装柜时间
'
},
{
value
:
'
3
'
,
label
:
'
起运时间
'
},
{
value
:
'
4
'
,
label
:
'
到港时间
'
},
{
value
:
'
5
'
,
label
:
'
清关时间
'
},
{
value
:
'
6
'
,
label
:
'
提货时间
'
},
dateTypes
:
[
{
value
:
"
1
"
,
label
:
"
预装时间
"
},
{
value
:
"
2
"
,
label
:
"
装柜时间
"
},
{
value
:
"
3
"
,
label
:
"
起运时间
"
},
{
value
:
"
4
"
,
label
:
"
到港时间
"
},
{
value
:
"
5
"
,
label
:
"
清关时间
"
},
{
value
:
"
6
"
,
label
:
"
提货时间
"
},
],
// 遮罩层
loading
:
true
,
// 导出遮罩层
...
...
@@ -239,60 +198,40 @@
queryParams
:
{
pageNo
:
1
,
pageSize
:
10
,
id
:
null
,
selfNo
:
null
,
cubNo
:
null
,
cabinetId
:
null
,
boxStatus
:
null
,
startWarehouseId
:
null
,
destWarehouseId
:
null
,
transportType
:
null
,
},
cabinetList
:
[],
cabinetList
:
[],
warehouseList
:
[],
transportTypes
:
this
.
getDictDatas
(
DICT_TYPE
.
ECW_TRANSPORT_TYPE
),
// 表单参数
form
:
{},
// 表单校验
rules
:
{
transportType
:
[{
required
:
true
,
message
:
"
运输方式不能为空
"
,
trigger
:
"
blur
"
}],
cabinetId
:
[{
required
:
true
,
message
:
"
柜型不能为空
"
,
trigger
:
"
blur
"
}],
startWarehouseId
:
[{
required
:
true
,
message
:
"
始发地不能为空
"
,
trigger
:
"
blur
"
}],
destWarehouseId
:
[{
required
:
true
,
message
:
"
目的地不能为空
"
,
trigger
:
"
blur
"
}],
}
transportTypes
:
[],
};
},
computed
:
{
exportWarehouseList
()
{
return
this
.
warehouseList
.
filter
(
item
=>
item
.
tradeType
==
'
2
'
||
item
.
type
==
'
3
'
)
return
this
.
warehouseList
.
filter
(
(
item
)
=>
item
.
tradeType
==
"
2
"
||
item
.
type
==
"
3
"
);
},
importWarehouseList
()
{
return
this
.
warehouseList
.
filter
(
item
=>
item
.
tradeType
==
'
1
'
||
item
.
type
==
'
3
'
)
return
this
.
warehouseList
.
filter
(
(
item
)
=>
item
.
tradeType
==
"
1
"
||
item
.
type
==
"
3
"
);
},
getCabinetName
()
{
return
cabinetId
=>
{
return
(
cabinetId
)
=>
{
for
(
let
index
in
this
.
cabinetList
)
{
let
cabinetItem
=
this
.
cabinetList
[
index
];
if
(
cabinetItem
.
id
==
cabinetId
)
{
return
cabinetItem
.
name
;
}
}
return
'
/
'
}
}
};
},
},
created
()
{
this
.
transportTypes
=
this
.
transportTypes
.
filter
(
item
=>
item
.
value
==
'
1
'
||
item
.
value
==
'
2
'
);
getWarehouseList
().
then
(
res
=>
this
.
warehouseList
=
res
.
data
);
getCabinetPage
(
null
).
then
(
response
=>
{
this
.
transportTypes
=
this
.
getDictDatas
(
this
.
DICT_TYPE
.
ECW_TRANSPORT_TYPE
).
filter
((
item
)
=>
item
.
value
==
"
1
"
||
item
.
value
==
"
2
"
);
getWarehouseList
().
then
((
res
)
=>
(
this
.
warehouseList
=
res
.
data
));
getCabinetPage
(
null
).
then
((
response
)
=>
{
this
.
cabinetList
=
response
.
data
.
list
;
});
this
.
getList
();
...
...
@@ -302,32 +241,16 @@
getList
()
{
this
.
loading
=
true
;
// 处理查询参数
let
params
=
{...
this
.
queryParams
};
params
.
transportTypeList
=
[
'
1
'
,
'
2
'
];
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
);
let
params
=
{
...
this
.
queryParams
};
params
.
transportTypeList
=
[
"
1
"
,
"
2
"
];
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
"
createTime
"
);
// 执行查询
getboxPage
(
params
).
then
(
response
=>
{
getboxPage
(
params
).
then
((
response
)
=>
{
this
.
list
=
response
.
data
.
list
;
this
.
total
=
response
.
data
.
total
;
this
.
loading
=
false
;
});
},
/** 取消按钮 */
cancel
()
{
this
.
open
=
false
;
this
.
reset
();
},
/** 表单重置 */
reset
()
{
this
.
form
=
{
id
:
undefined
,
cabinetId
:
undefined
,
startWarehouseId
:
undefined
,
destWarehouseId
:
undefined
,
transportType
:
undefined
,
};
this
.
resetForm
(
"
form
"
);
},
/** 搜索按钮操作 */
handleQuery
()
{
this
.
queryParams
.
pageNo
=
1
;
...
...
@@ -341,140 +264,93 @@
},
/** 新增按钮操作 */
handleAdd
()
{
this
.
reset
();
this
.
open
=
true
;
this
.
title
=
"
添加出货
"
;
this
.
dialogType
=
"
add
"
;
},
/** 修改按钮操作 */
handleUpdate
(
row
)
{
this
.
reset
();
const
id
=
row
.
id
;
getbox
(
id
).
then
(
response
=>
{
this
.
form
=
response
.
data
;
getbox
(
id
).
then
((
response
)
=>
{
this
.
currRow
=
response
.
data
;
this
.
open
=
true
;
this
.
title
=
"
修改出货
"
;
this
.
dialogType
=
"
edit
"
;
});
},
/** 提交按钮 */
submitForm
()
{
this
.
$refs
[
"
form
"
].
validate
(
valid
=>
{
if
(
!
valid
)
{
return
;
}
// 修改的提交
if
(
this
.
form
.
id
!=
null
)
{
updatebox
(
this
.
form
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
"
修改成功
"
);
this
.
open
=
false
;
this
.
getList
();
});
return
;
}
// 添加的提交
createbox
(
this
.
form
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
"
新增成功
"
);
this
.
open
=
false
;
this
.
getList
();
});
});
},
/** 删除按钮操作 */
handleDelete
(
row
)
{
const
id
=
row
.
id
;
this
.
$modal
.
confirm
(
'
是否确认删除出货编号为"
'
+
id
+
'
"的数据项?
'
).
then
(
function
()
{
this
.
$modal
.
confirm
(
'
是否确认删除出货编号为"
'
+
id
+
'
"的数据项?
'
)
.
then
(
function
()
{
return
deletebox
(
id
);
}).
then
(()
=>
{
})
.
then
(()
=>
{
this
.
getList
();
this
.
$modal
.
msgSuccess
(
"
删除成功
"
);
})
.
catch
(()
=>
{
});
})
.
catch
(()
=>
{
});
},
/** 导出按钮操作 */
handleExport
()
{
// 处理查询参数
let
params
=
{...
this
.
queryParams
};
let
params
=
{
...
this
.
queryParams
};
params
.
pageNo
=
undefined
;
params
.
pageSize
=
undefined
;
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
);
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
"
createTime
"
);
// 执行导出
this
.
$modal
.
confirm
(
'
是否确认导出所有出货数据项?
'
).
then
(()
=>
{
this
.
$modal
.
confirm
(
"
是否确认导出所有出货数据项?
"
)
.
then
(()
=>
{
this
.
exportLoading
=
true
;
return
exportboxExcel
(
params
);
}).
then
(
response
=>
{
this
.
$download
.
excel
(
response
,
'
${table.classComment}.xls
'
);
})
.
then
((
response
)
=>
{
this
.
$download
.
excel
(
response
,
"
${table.classComment}.xls
"
);
this
.
exportLoading
=
false
;
})
.
catch
(()
=>
{
});
})
.
catch
(()
=>
{
});
},
closeDialog
()
{
/* 关闭弹窗 */
closeDialog
(
type
)
{
this
.
open
=
false
;
if
(
type
===
"
add
"
||
type
===
"
edit
"
)
{
this
.
getList
();
}
},
/** 查看按钮操作 */
handleCommand
(
row
,
command
)
{
switch
(
command
)
{
case
'
sea
'
:
this
.
$router
.
push
(
'
/boxSea/shippingSea/
'
+
row
.
id
)
case
"
sea
"
:
this
.
$router
.
push
(
"
/boxSea/shippingSea/
"
+
row
.
id
);
break
;
case
'
edit
'
:
case
"
edit
"
:
this
.
handleUpdate
(
row
);
break
;
case
'
delete
'
:
case
"
delete
"
:
this
.
handleDelete
(
row
);
break
;
case
'
cost
'
:
this
.
title
=
'
费用登记
'
this
.
dialogType
=
'
cost
'
;
case
"
cost
"
:
this
.
title
=
"
费用登记
"
;
this
.
dialogType
=
"
cost
"
;
this
.
open
=
true
;
this
.
currRow
=
row
;
break
;
case
'
error
'
:
this
.
title
=
'
异常登记
'
this
.
dialogType
=
'
error
'
;
case
"
error
"
:
this
.
title
=
"
异常登记
"
;
this
.
dialogType
=
"
error
"
;
this
.
open
=
true
;
this
.
currRow
=
row
;
break
;
case
'
detail
'
:
this
.
$router
.
push
(
'
/boxSea/query/
'
+
row
.
id
)
case
"
detail
"
:
this
.
$router
.
push
(
"
/boxSea/query/
"
+
row
.
id
);
break
;
}
},
}
};
},
};
</
script
>
<
style
lang=
"scss"
>
// 海运操作统一弹窗样式
.shippingSea-dialog
{
// 页面内元素弹窗form控件宽度设置
.el-form-item__content
{
>
div
:not
(
.el-input-number
)
{
width
:
100%
;
}
}
.operate-button
{
text-align
:
center
;
}
.two-element-formItem
{
display
:
flex
;
>
:last-child
{
width
:
100%
;
margin-left
:
10px
;
}
}
.two-element
{
.el-form-item__content
{
display
:
flex
;
>
:last-child
{
margin-left
:
10px
;
}
}
}
}
</
style
>
src/views/ecw/box/query.vue
View file @
b094be9f
<
template
>
<div>
<div
class=
"app-container shipping-detail"
>
<el-row
type=
"flex"
style=
"margin-top: 15px; margin-bottom: 15px"
justify=
"center"
>
<el-col
:xs=
"24"
:sm=
"24"
:md=
"24"
:lg=
"20"
:xl=
"
19
"
>
<el-col
:xs=
"24"
:sm=
"24"
:md=
"24"
:lg=
"20"
:xl=
"
22
"
>
<div
style=
"display: flex; justify-content: space-between;align-items: flex-end;"
>
<h2>
出货详情
</h2>
<div>
<el-button
size=
"small"
>
编辑
</el-button>
<el-button
size=
"small"
>
操作
</el-button>
<el-button
type=
"primary"
size=
"small"
>
异常登记
</el-button>
<el-button
type=
"primary"
size=
"small"
>
费用登记
</el-button>
<el-button
type=
"danger"
size=
"small"
>
删除
</el-button>
<el-button
size=
"small"
@
click=
"handleCommand('edit')"
>
编辑
</el-button>
<el-button
size=
"small"
@
click=
"handleCommand('router')"
>
操作
</el-button>
<el-button
type=
"primary"
size=
"small"
@
click=
"handleCommand('error')"
>
异常登记
</el-button>
<el-button
type=
"primary"
size=
"small"
@
click=
"handleCommand('cost')"
>
费用登记
</el-button>
<el-popconfirm
title=
"确定是否删除"
@
confirm=
"handleCommand('delete')"
style=
"marginLeft:10px;"
>
<el-button
type=
"danger"
size=
"small"
slot=
"reference"
>
删除
</el-button>
</el-popconfirm>
</div>
</div>
<el-card
style=
"margin-top: 15px"
>
...
...
@@ -44,55 +46,115 @@
</el-descriptions>
</el-card>
<el-tabs
style=
"margin-top: 15px"
type=
"border-card"
>
<el-tab-pane
label=
"明细"
>
<el-tabs
style=
"margin-top: 15px"
type=
"border-card"
value=
"detail"
>
<el-tab-pane
label=
"明细"
name=
"detail"
>
<div
class=
"detail-pane"
>
<
p>
当前部分:
</p
>
<
div>
当前部分:
</div
>
<el-select
placeholder=
"请选择"
v-model=
"sectionId"
@
change=
"sectionChange"
>
<el-option
key=
"0"
label=
"全部"
value=
"0"
></el-option>
<el-option
v-for=
"item in sectionList"
:key=
"item.id"
:label=
"item.title"
:value=
"item.id"
></el-option>
</el-select>
<p
class=
"box-weight"
>
{{
getSectionInfo
}}
</p>
<p
class=
"document-status"
>
单证状态:我司全代
</p>
<div
class=
"document-status"
>
<p>
单证状态:
</p>
<template
v-for=
"(item, index) in getDocStatus(sectionObj.sectionOrderList)"
>
<dict-tag
:type=
"DICT_TYPE.ECW_CUSTOMS_TYPE"
:value=
"item"
:key=
"index"
/>
</
template
>
</div>
</div>
<el-table
:data=
"sectionObj.sectionOrderList"
style=
"width: 100%"
border
>
<el-table-column
type=
"index"
align=
"center"
label=
"序号"
width=
"50"
/>
<el-table-column
prop=
"orderNo"
label=
"订单号"
align=
"center"
></el-table-column>
<el-table-column
prop=
"goodsList"
label=
"货物信息"
width=
"250px"
align=
"center"
>
<
template
v-slot=
"{row}"
>
<section>
<div
v-for=
"(item, index) in row.goodsList"
:key=
"index"
>
{{
index
+
1
}}
:
{{
item
.
prodTitleZh
}}
</div>
</section>
</
template
>
</el-table-column>
<el-table-column
prop=
"num"
label=
"计划箱数"
align=
"center"
></el-table-column>
<el-table-column
prop=
"installNum"
label=
"实装箱数"
align=
"center"
></el-table-column>
<el-table-column
prop=
"unloadNum"
label=
"卸柜箱数"
align=
"center"
></el-table-column>
<el-table-column
prop=
"destWarehouseName"
label=
"提货点"
align=
"center"
></el-table-column>
<el-table-column
prop=
"volume"
label=
"体积"
align=
"center"
></el-table-column>
<el-table-column
prop=
"weight"
label=
"重量"
align=
"center"
></el-table-column>
<el-table-column
prop=
"totalWorth"
label=
"货值"
align=
"center"
></el-table-column>
<el-table-column
prop=
"customsType"
label=
"报关方式"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<div
:class=
"scope.row.customsType !== 1 ? 'customsType-red' : ''"
>
<dict-tag
:type=
"DICT_TYPE.ECW_CUSTOMS_TYPE"
:value=
"scope.row.customsType"
/>
</div>
<el-table
:data=
"[]"
style=
"width: 100%"
>
<el-table-column
prop=
""
label=
"序号"
>
</el-table-column>
<el-table-column
prop=
""
label=
"订单号"
>
</el-table-column>
<el-table-column
prop=
""
label=
"货物信息"
>
</el-table-column>
<el-table-column
prop=
""
label=
"计划箱数"
>
</el-table-column>
<el-table-column
prop=
""
label=
"实装箱数"
>
</el-table-column>
<el-table-column
prop=
""
label=
"卸柜箱数"
>
</el-table-column>
<el-table-column
prop=
""
label=
"提货点"
>
</el-table-column>
<el-table-column
prop=
""
label=
"体积"
>
</el-table-column>
<el-table-column
prop=
""
label=
"重量"
>
</el-table-column>
<el-table-column
prop=
""
label=
"货值"
>
</el-table-column>
<el-table-column
prop=
""
label=
"报关方式"
>
</el-table-column>
<el-table-column
prop=
""
label=
"报关费用"
>
</el-table-column>
</
template
>
</el-table-column>
<el-table-column
prop=
"customsFee"
label=
"报关费用"
align=
"center"
></el-table-column>
</el-table>
</el-tab-pane>
<el-tab-pane
label=
"状态"
></el-tab-pane>
<el-tab-pane
label=
"费用"
>
<el-table
:data=
"[]"
style=
"width: 100%"
>
<el-table-column
prop=
""
label=
"序号"
>
</el-table-column>
<el-table-column
prop=
""
label=
"费用类型"
>
</el-table-column>
<el-table-column
prop=
""
label=
"供应商"
>
</el-table-column>
<el-table-column
prop=
""
label=
"金额"
>
</el-table-column>
<el-table-column
prop=
""
label=
"实付金额"
>
</el-table-column>
<el-table-column
prop=
""
label=
"实付日期"
>
</el-table-column>
<el-table-column
prop=
""
label=
"操作"
>
</el-table-column>
<el-tab-pane
label=
"状态"
name=
"status"
>
<div
v-for=
"(item, index) in logList"
:key=
"item.id"
:class=
"`shipping-status ${index === 0 ? 'curr-status' : '' }`"
>
<div
class=
"status-line"
></div>
<div
class=
"status-number"
>
{{logList.length - index}}
</div>
<div
class=
"status-info"
>
<div>
{{item.titleZh}}
</div>
<div>
<p>
{{formatDate(item.createTime)}}
</p>
<p>
{{item.operator}}
</p>
</div>
</div>
</div>
</el-tab-pane>
<el-tab-pane
label=
"费用"
name=
"fee"
>
<el-table
:data=
"costList"
style=
"width: 100%"
border
>
<el-table-column
type=
"index"
align=
"center"
label=
"序号"
width=
"50"
/>
<el-table-column
prop=
"costType"
label=
"费用类型"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.FEE_TYPE"
:value=
"scope.row.costType"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"supplierId"
label=
"供应商"
align=
"center"
>
<
template
slot-scope=
"scope"
>
{{
getSupplier
(
scope
.
row
.
supplierId
)
}}
</
template
>
</el-table-column>
<el-table-column
prop=
"price"
label=
"金额"
align=
"center"
></el-table-column>
<el-table-column
prop=
""
label=
"实付金额"
align=
"center"
></el-table-column>
<el-table-column
prop=
""
label=
"实付日期"
align=
"center"
></el-table-column>
<el-table-column
prop=
""
label=
"操作"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<el-button
type=
"primary"
size=
"small"
@
click=
"editCostClick(scope.row)"
style=
"marginRight:10px;"
>
编辑
</el-button>
<el-popconfirm
title=
"确定是否删除"
@
confirm=
"deleteCostClick(scope.row)"
>
<el-button
type=
"danger"
size=
"small"
slot=
"reference"
>
删除
</el-button>
</el-popconfirm>
</
template
>
</el-table-column>
</el-table>
</el-tab-pane>
<el-tab-pane
label=
"异常"
>
<el-table
:data=
"[]"
style=
"width: 100%"
>
<el-table-column
prop=
""
label=
"序号"
>
</el-table-column>
<el-table-column
prop=
""
label=
"操作步骤"
>
</el-table-column>
<el-table-column
prop=
""
label=
"异常"
>
</el-table-column>
<el-table-column
prop=
""
label=
"异常详情"
>
</el-table-column>
<el-table-column
prop=
""
label=
"异常时间"
>
</el-table-column>
<el-tab-pane
label=
"异常"
name=
"error"
>
<el-table
:data=
"errorList"
style=
"width: 100%"
border
>
<el-table-column
type=
"index"
align=
"center"
label=
"序号"
width=
"50"
/>
<el-table-column
prop=
"opStep"
label=
"操作步骤"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.BOX_SHIPPING_PROCESS"
:value=
"scope.row.opStep"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"billAbnId"
label=
"异常"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.BOX_SHIPPING_TICKET_EXCEPTION"
:value=
"scope.row.opStep"
/>
</
template
>
</el-table-column>
<el-table-column
prop=
"abnDetail"
label=
"异常详情"
align=
"center"
width=
"800"
></el-table-column>
<el-table-column
prop=
""
label=
"异常时间"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<span
v-if=
"scope.row.abnStartTime"
>
{{
formatDate
(
scope
.
row
.
abnStartTime
)
}}
-
</span>
<span
v-if=
"scope.row.abnEndTime"
>
{{
formatDate
(
scope
.
row
.
abnEndTime
)
}}
</span>
</
template
>
</el-table-column>
</el-table>
</el-tab-pane>
<el-tab-pane
label=
"表单"
>
<el-tab-pane
label=
"表单"
name=
"download"
>
<el-table
:data=
"[]"
style=
"width: 50%"
>
<el-table-column
prop=
""
label=
"文件类型"
>
</el-table-column>
<el-table-column
prop=
""
label=
"下载链接"
>
</el-table-column>
...
...
@@ -101,11 +163,31 @@
</el-tabs>
</el-col>
</el-row>
<!-- 对话框(添加 / 修改) -->
<el-dialog
:title=
"dialogConfig.title"
:visible.sync=
"dialogConfig.visible"
:width=
"dialogConfig.width"
append-to-body
class=
"shippingSea-dialog"
>
<
template
v-if=
"dialogConfig.type === 'edit'"
>
<editForm
v-if=
"dialogConfig.visible"
@
closeDialog=
"closeDialog"
:shipmentObj=
"shipmentObj"
:warehouseList=
"warehouseList"
:transportTypes=
"transportTypes"
:cabinetList=
"cabinetList"
/>
</
template
>
<
template
v-if=
"dialogConfig.type === 'cost'"
>
<costForm
v-if=
"dialogConfig.visible"
@
closeDialog=
"closeDialog"
:shipmentObj=
"shipmentObj"
:costDetail=
"costDetail"
/>
</
template
>
<
template
v-if=
"dialogConfig.type === 'error'"
>
<regError
v-if=
"dialogConfig.visible"
@
closeDialog=
"closeDialog"
:shipmentObj=
"shipmentObj"
/>
</
template
>
</el-dialog>
</div>
</template>
<
script
>
import
{
getbox
}
from
"
@/api/ecw/box
"
;
import
{
getbox
,
getLogList
,
getCostList
,
getAbnormalList
,
deleteCost
,
deletebox
,
}
from
"
@/api/ecw/box
"
;
import
{
getChannelList
}
from
"
@/api/ecw/channel
"
;
import
{
getCabinetPage
}
from
"
@/api/ecw/cabinet
"
;
import
{
getWarehouseList
}
from
"
@/api/ecw/warehouse
"
;
...
...
@@ -113,42 +195,32 @@ import {
getSeaStatus
,
getStatusName
,
getTotlContent
,
formatDate
,
serviceMsg
,
}
from
"
./shippingSea/utils
"
;
import
{
getSectionList
,
boxGoodsDetail
}
from
"
@/api/ecw/boxSea
"
;
import
{
getSupplierPage
}
from
"
@/api/ecw/supplier
"
;
import
costForm
from
"
./costForm.vue
"
;
import
regError
from
"
./regError.vue
"
;
import
editForm
from
"
./editForm.vue
"
;
export
default
{
name
:
"
boxDetail
"
,
props
:
{
shipmentId
:
String
,
},
components
:
{},
components
:
{
costForm
,
regError
,
editForm
,
},
created
()
{
// 查询出货信息
getbox
(
this
.
shipmentId
).
then
((
res
)
=>
{
const
{
data
}
=
res
;
this
.
shipmentObj
=
data
??
{};
});
// 查询渠道
getChannelList
().
then
((
res
)
=>
(
this
.
channelList
=
res
.
data
));
// 查询柜型
getCabinetPage
(
null
).
then
(
(
response
)
=>
(
this
.
cabinetList
=
response
.
data
.
list
)
);
// 仓库
getWarehouseList
().
then
((
r
)
=>
{
this
.
warehouseList
=
r
.
data
;
});
// 部分
getSectionList
({
shipmentId
:
this
.
shipmentId
}).
then
((
res
)
=>
{
this
.
sectionList
=
res
.
data
.
map
((
item
,
index
)
=>
{
return
{
...
item
,
title
:
`第
${
index
+
1
}
部分`
,
};
});
});
// 装柜明细
this
.
getBoxGoodsDetail
(
0
);
console
.
log
();
this
.
transportTypes
=
this
.
getDictDatas
(
this
.
DICT_TYPE
.
ECW_TRANSPORT_TYPE
).
filter
((
item
)
=>
item
.
value
==
"
1
"
||
item
.
value
==
"
2
"
);
this
.
initData
();
this
.
queryAllData
();
},
data
()
{
return
{
...
...
@@ -160,29 +232,187 @@ export default {
cabinetList
:
[],
// 仓库
warehouseList
:
[],
// 供应商
allSupplier
:
[],
// 部分list
sectionList
:
[],
// 单证数组
docStatus
:
[],
// 操作日志
logList
:
[],
// 费用
costList
:
[],
// 异常
errorList
:
[],
// 部分订单商品
sectionObj
:
{
secStatistics
:
{},
sectionOrderList
:
[],
totalStatistics
:
{},
},
sectionId
:
""
,
// 部分ID
sectionId
:
"
0
"
,
// 弹窗配置
dialogConfig
:
{
visible
:
false
,
title
:
""
,
width
:
"
600px
"
,
type
:
""
,
},
// 运输方式
transportTypes
:
[],
// 费用详情
costDetail
:
{},
};
},
methods
:
{
sectionChange
(
val
)
{
console
.
log
(
val
)
this
.
getBoxGoodsDetail
(
this
.
sectionId
)
// 初始化字典数据
initData
()
{
// 查询渠道
getChannelList
().
then
((
res
)
=>
(
this
.
channelList
=
res
.
data
));
// 查询柜型
getCabinetPage
(
null
).
then
(
(
response
)
=>
(
this
.
cabinetList
=
response
.
data
.
list
)
);
// 仓库
getWarehouseList
().
then
((
r
)
=>
{
this
.
warehouseList
=
r
.
data
;
});
// 供应商
getSupplierPage
({
pageNo
:
"
1
"
,
pageSize
:
"
10000
"
}).
then
((
res
)
=>
{
const
{
data
}
=
res
;
this
.
allSupplier
=
data
.
list
;
});
},
getBoxGoodsDetail
(
secId
)
{
boxGoodsDetail
({
shipmentId
:
this
.
shipmentId
,
secId
}).
then
((
res
)
=>
{
// 查询详情页所有数据
queryAllData
()
{
let
param
=
{
shipmentId
:
this
.
shipmentId
};
// 查询出货信息
this
.
getBoxDetail
();
// 部分
getSectionList
(
param
).
then
((
res
)
=>
{
this
.
sectionList
=
res
.
data
.
map
((
item
,
index
)
=>
{
return
{
...
item
,
title
:
`第
${
index
+
1
}
部分`
,
};
});
});
// 明细
this
.
getBoxGoodsDetail
();
// 状态
getLogList
(
param
).
then
((
res
)
=>
{
this
.
logList
=
res
.
data
;
});
// 费用
this
.
getCost
();
// 异常
getAbnormalList
(
param
).
then
((
res
)
=>
{
this
.
errorList
=
res
.
data
;
});
//表单
},
// 出货信息
getBoxDetail
()
{
getbox
(
this
.
shipmentId
).
then
((
res
)
=>
{
const
{
data
}
=
res
;
this
.
shipmentObj
=
data
??
{};
});
},
// 获取费用
getCost
()
{
getCostList
({
shipmentId
:
this
.
shipmentId
}).
then
((
res
)
=>
{
this
.
costList
=
res
.
data
;
});
},
// 部分切换
sectionChange
()
{
this
.
getBoxGoodsDetail
();
},
// 获取部分详情以及物品
getBoxGoodsDetail
()
{
boxGoodsDetail
({
shipmentId
:
this
.
shipmentId
,
secId
:
this
.
sectionId
,
}).
then
((
res
)
=>
{
this
.
sectionObj
=
res
.
data
;
});
},
// 供应商
getSupplier
(
id
)
{
let
arr
=
this
.
allSupplier
.
find
((
item
)
=>
item
.
id
==
id
)
??
{};
return
arr
.
companyZh
??
""
;
},
editCostClick
(
row
)
{
this
.
costDetail
=
row
;
this
.
handleCommand
(
"
cost
"
);
},
deleteCostClick
(
row
)
{
deleteCost
(
row
.
id
).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
((
res
)
=>
{
this
.
getCost
();
});
});
},
// 事件执行
handleCommand
(
type
)
{
switch
(
type
)
{
case
"
edit
"
:
this
.
$set
(
this
.
dialogConfig
,
"
visible
"
,
true
);
this
.
$set
(
this
.
dialogConfig
,
"
title
"
,
"
修改出货
"
);
this
.
$set
(
this
.
dialogConfig
,
"
type
"
,
"
edit
"
);
break
;
case
"
router
"
:
this
.
$router
.
push
(
"
/boxSea/shippingSea/
"
+
this
.
shipmentId
);
break
;
case
"
cost
"
:
this
.
$set
(
this
.
dialogConfig
,
"
visible
"
,
true
);
this
.
$set
(
this
.
dialogConfig
,
"
title
"
,
"
费用登记
"
);
this
.
$set
(
this
.
dialogConfig
,
"
type
"
,
"
cost
"
);
break
;
case
"
error
"
:
this
.
$set
(
this
.
dialogConfig
,
"
visible
"
,
true
);
this
.
$set
(
this
.
dialogConfig
,
"
title
"
,
"
异常登记
"
);
this
.
$set
(
this
.
dialogConfig
,
"
type
"
,
"
error
"
);
break
;
case
"
delete
"
:
deletebox
(
this
.
shipmentId
).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
((
res
)
=>
{
this
.
$router
.
push
(
"
/shipment/boxSea
"
);
});
});
break
;
}
},
// 关闭弹框
closeDialog
(
type
)
{
this
.
$set
(
this
.
dialogConfig
,
"
visible
"
,
false
);
if
(
type
===
"
edit
"
)
{
this
.
getBoxDetail
();
}
if
(
type
===
"
cost
"
)
{
this
.
getCost
();
}
if
(
type
===
"
error
"
)
{
getAbnormalList
({
shipmentId
:
this
.
shipmentId
}).
then
((
res
)
=>
{
this
.
errorList
=
res
.
data
;
});
}
},
formatDate
,
},
computed
:
{
// 单证状态
getDocStatus
()
{
return
(
list
=
[])
=>
{
// 获取类型
let
customsTypes
=
list
.
map
((
item
)
=>
item
.
customsType
);
// 去重
return
Array
.
from
(
new
Set
(
customsTypes
));
};
},
/* 渠道 */
getShipChannelName
()
{
return
(
shippingChannelId
)
=>
{
...
...
@@ -190,7 +420,6 @@ export default {
if
(
channelItem
.
channelId
==
shippingChannelId
)
{
return
channelItem
.
nameZh
;
}
return
"
/
"
;
}
};
},
...
...
@@ -201,7 +430,6 @@ export default {
if
(
cabinetItem
.
id
==
cabinetId
)
{
return
cabinetItem
.
name
;
}
return
"
/
"
;
}
};
},
...
...
@@ -242,15 +470,78 @@ export default {
};
</
script
>
<
style
lang=
"scss"
scoped
>
.detail-pane
{
<
style
lang=
"scss"
>
.shipping-detail
{
.detail-pane
{
display
:
flex
;
align-items
:
center
;
margin-bottom
:
5px
;
.box-weight
{
margin-left
:
10px
;
}
.document-status
{
flex
:
1
;
text-align
:
right
;
justify-content
:
flex-end
;
display
:
flex
;
align-items
:
center
;
>
span
{
margin-right
:
10px
;
}
}
}
.el-table__body
{
.customsType-red
{
color
:
red
;
}
}
.shipping-status
{
position
:
relative
;
display
:
flex
;
.status-line
{
width
:
1px
;
height
:
calc
(
100%
-
35px
);
background-color
:
#e8eaec
;
position
:
absolute
;
left
:
13px
;
top
:
30px
;
}
.status-number
{
width
:
26px
;
height
:
26px
;
border
:
1px
solid
#ccc
;
border-radius
:
50%
;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
}
.status-info
{
color
:
#999
;
margin-left
:
20px
;
>
:first-child
{
font-size
:
14px
;
font-weight
:
bolder
;
line-height
:
26px
;
}
>
:last-child
{
line-height
:
26px
;
display
:
flex
;
>
p
{
margin
:
0
;
margin-right
:
10px
;
}
}
}
&
.curr-status
{
.status-number
{
color
:
#fff
;
background-color
:
#2d8cf0
;
border-color
:
#2d8cf0
;
}
.status-info
{
color
:
#666
;
}
}
}
}
</
style
>
src/views/ecw/box/regError.vue
View file @
b094be9f
<
template
>
<div>
<div
class=
"shippingSea-dialog"
>
<el-form
ref=
"errorForm"
:model=
"errorObj"
label-width=
"140px"
>
<el-form-item
label=
"操作步骤"
>
<el-select
v-model=
"errorObj.opStep"
placeholder=
"请选择操作步骤"
>
...
...
@@ -40,7 +40,8 @@
</
template
>
<
script
>
import
{
abnormalCreate
,
serviceMsg
}
from
"
@/api/ecw/boxSea
"
;
import
{
abnormalCreate
}
from
"
@/api/ecw/boxSea
"
;
import
{
serviceMsg
}
from
"
./shippingSea/utils
"
;
/**
* 异常登记
*/
...
...
@@ -78,7 +79,7 @@ export default {
shipmentId
:
this
.
$attrs
.
shipmentObj
.
id
,
}).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
(()
=>
{
this
.
$emit
(
"
closeDialog
"
);
this
.
$emit
(
"
closeDialog
"
,
"
error
"
);
});
});
}
...
...
@@ -88,5 +89,32 @@ export default {
};
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
>
// 海运操作统一弹窗样式
.shippingSea-dialog
{
// 页面内元素弹窗form控件宽度设置
.el-form-item__content
{
>
div
:not
(
.el-input-number
)
{
width
:
100%
;
}
}
.operate-button
{
text-align
:
center
;
}
.two-element-formItem
{
display
:
flex
;
>
:last-child
{
width
:
100%
;
margin-left
:
10px
;
}
}
.two-element
{
.el-form-item__content
{
display
:
flex
;
>
:last-child
{
margin-left
:
10px
;
}
}
}
}
</
style
>
src/views/ecw/box/shippingDetail.vue
View file @
b094be9f
...
...
@@ -186,7 +186,6 @@ export default {
if
(
channelItem
.
channelId
==
shippingChannelId
)
{
return
channelItem
.
nameZh
;
}
return
"
/
"
;
}
};
},
...
...
src/views/ecw/box/shippingSea/nodePage/agent.vue
View file @
b094be9f
...
...
@@ -13,9 +13,9 @@
</
template
>
<
script
>
import
{
agentSet
,
serviceMsg
}
from
"
@/api/ecw/boxSea
"
;
import
{
agentSet
}
from
"
@/api/ecw/boxSea
"
;
import
supplierSelect
from
"
./common/supplierSelect.vue
"
;
import
{
formatStringNumber
}
from
"
../utils
"
;
import
{
formatStringNumber
,
serviceMsg
}
from
"
../utils
"
;
/**
* agent
*/
...
...
src/views/ecw/box/shippingSea/nodePage/arrival.vue
View file @
b094be9f
...
...
@@ -32,8 +32,8 @@
<
script
>
import
regError
from
"
../../regError
"
;
import
dayjs
from
"
dayjs
"
;
import
{
arrivalCreate
,
serviceMsg
}
from
"
@/api/ecw/boxSea
"
;
import
{
formatDateStr
}
from
"
../utils
"
;
import
{
arrivalCreate
}
from
"
@/api/ecw/boxSea
"
;
import
{
formatDateStr
,
serviceMsg
}
from
"
../utils
"
;
/**
* 到港
...
...
src/views/ecw/box/shippingSea/nodePage/barge.vue
View file @
b094be9f
...
...
@@ -35,9 +35,9 @@
</
template
>
<
script
>
import
{
bargeCreate
,
serviceMsg
}
from
"
@/api/ecw/boxSea
"
;
import
{
bargeCreate
}
from
"
@/api/ecw/boxSea
"
;
import
userSelect
from
"
./common/userSelect.vue
"
;
import
{
constantDict
,
formatDateStr
,
formatNumberString
}
from
"
../utils
"
;
import
{
constantDict
,
formatDateStr
,
formatNumberString
,
serviceMsg
}
from
"
../utils
"
;
/**
* 驳船
...
...
src/views/ecw/box/shippingSea/nodePage/blCopy.vue
View file @
b094be9f
...
...
@@ -14,9 +14,9 @@
</
template
>
<
script
>
import
{
ladingCopyCreate
,
serviceMsg
}
from
"
@/api/ecw/boxSea
"
;
import
{
ladingCopyCreate
}
from
"
@/api/ecw/boxSea
"
;
import
FileUpload
from
"
@/components/FileUpload
"
;
import
{
fileTypes
}
from
"
../utils
"
;
import
{
fileTypes
,
serviceMsg
}
from
"
../utils
"
;
/**
* 提单copy
...
...
src/views/ecw/box/shippingSea/nodePage/booking.vue
View file @
b094be9f
...
...
@@ -85,11 +85,11 @@
</
template
>
<
script
>
import
{
booking
,
serviceMsg
}
from
"
@/api/ecw/boxSea
"
;
import
{
booking
}
from
"
@/api/ecw/boxSea
"
;
import
supplierSelect
from
"
./common/supplierSelect.vue
"
;
import
dockSelect
from
"
./common/dockSelect.vue
"
;
import
userSelect
from
"
./common/userSelect.vue
"
;
import
{
formatStringNumber
,
formatDateStr
}
from
"
../utils
"
;
import
{
formatStringNumber
,
formatDateStr
,
serviceMsg
}
from
"
../utils
"
;
/**
* 订舱
*/
...
...
src/views/ecw/box/shippingSea/nodePage/cabinet/index.vue
View file @
b094be9f
...
...
@@ -37,8 +37,8 @@
<
script
>
import
startPacking
from
"
./startPacking.vue
"
;
import
{
cabinetCreate
,
serviceMsg
}
from
"
@/api/ecw/boxSea
"
;
import
{
formatDateStr
}
from
"
../../utils
"
;
import
{
cabinetCreate
}
from
"
@/api/ecw/boxSea
"
;
import
{
formatDateStr
,
serviceMsg
}
from
"
../../utils
"
;
import
ImageUpload
from
"
@/components/ImageUpload
"
;
/**
...
...
src/views/ecw/box/shippingSea/nodePage/cabinet/startPacking.vue
View file @
b094be9f
...
...
@@ -196,14 +196,15 @@ import { getCabinetPage } from "@/api/ecw/cabinet";
import
{
loadSecGoodsList
,
orderTagList
,
singleCreate
,
batchCreate
,
singleDelete
,
batchDelete
,
remove
,
serviceMsg
,
boxUpdate
,
approvalCreate
,
}
from
"
@/api/ecw/boxSea
"
;
import
{
getTotlContent
}
from
"
../../utils
"
;
import
{
getTotlContent
,
serviceMsg
}
from
"
../../utils
"
;
/**
* 开始装柜
...
...
@@ -354,12 +355,18 @@ export default {
this
.
handlerBatchCreate
(
"
batch
"
);
}
if
(
formName
===
"
correctionForm
"
)
{
this
.
handlerBatchDelete
({
this
.
handlerBatchDelete
(
{
orderNumCode
:
this
.
correctionObj
.
qrCode
,
});
},
"
single
"
);
}
if
(
formName
===
"
orderForm
"
)
{
this
.
handlerBatchDelete
({
orderNo
:
this
.
orderObj
.
orderNo
});
this
.
handlerBatchDelete
(
{
orderNo
:
this
.
orderObj
.
orderNo
},
"
batch
"
);
}
if
(
formName
===
"
modifyForm
"
)
{
this
.
modifyBoxUpdate
();
...
...
@@ -383,28 +390,41 @@ export default {
return
;
}
params
.
orderNumCode
=
this
.
qrCode
;
singleCreate
(
params
).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
(()
=>
{
this
.
getLoadSecGoodsList
();
});
});
}
else
{
params
.
orderNo
=
this
.
batchObj
.
qrCode
;
}
batchCreate
(
params
).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
(()
=>
{
this
.
getLoadSecGoodsList
();
});
});
}
},
/* 删除已装柜 */
handlerBatchDelete
(
params
)
{
handlerBatchDelete
(
params
,
type
)
{
params
=
{
shipmentId
:
this
.
shipmentObj
.
id
,
secId
:
this
.
tableData
.
id
,
...
params
,
};
if
(
type
===
"
single
"
)
{
singleDelete
(
params
).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
(()
=>
{
this
.
getLoadSecGoodsList
();
});
});
}
else
{
batchDelete
(
params
).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
(()
=>
{
this
.
getLoadSecGoodsList
();
});
});
}
},
/* 移出 */
moveOut
(
row
)
{
...
...
src/views/ecw/box/shippingSea/nodePage/cabinet/supplementOrder.vue
View file @
b094be9f
...
...
@@ -145,11 +145,10 @@ import {
preloadPage
,
createSection
,
deleteSection
,
serviceMsg
,
createGoods
,
remove
,
}
from
"
@/api/ecw/boxSea
"
;
import
{
formatDate
,
getTotlContent
}
from
"
../../utils
"
;
import
{
formatDate
,
getTotlContent
,
serviceMsg
}
from
"
../../utils
"
;
/**
* 补单
*/
...
...
src/views/ecw/box/shippingSea/nodePage/clrDocument.vue
View file @
b094be9f
...
...
@@ -65,12 +65,13 @@
</
template
>
<
script
>
import
{
clearanceDocCreate
,
serviceMsg
}
from
"
@/api/ecw/boxSea
"
;
import
{
clearanceDocCreate
}
from
"
@/api/ecw/boxSea
"
;
import
{
constantDict
,
formatDateStr
,
formatNumberString
,
fileTypes
,
serviceMsg
,
}
from
"
../utils
"
;
import
FileUpload
from
"
@/components/FileUpload
"
;
...
...
src/views/ecw/box/shippingSea/nodePage/cusClearance.vue
View file @
b094be9f
...
...
@@ -28,8 +28,8 @@
<
script
>
import
regError
from
"
../../regError
"
;
import
dayjs
from
"
dayjs
"
;
import
{
clearanceCreate
,
serviceMsg
}
from
"
@/api/ecw/boxSea
"
;
import
{
formatDateStr
}
from
"
../utils
"
;
import
{
clearanceCreate
}
from
"
@/api/ecw/boxSea
"
;
import
{
formatDateStr
,
serviceMsg
}
from
"
../utils
"
;
/**
* 清关
...
...
src/views/ecw/box/shippingSea/nodePage/cusDeclaration.vue
View file @
b094be9f
...
...
@@ -131,14 +131,13 @@
import
supplierSelect
from
"
./common/supplierSelect.vue
"
;
import
{
customsCreate
,
serviceMsg
,
extraCostList
,
extraCostOrder
,
extraCostCreate
,
extraCostUpdate
,
approvalCreate
,
}
from
"
@/api/ecw/boxSea
"
;
import
{
formatNumberString
,
formatDateStr
}
from
"
../utils
"
;
import
{
formatNumberString
,
formatDateStr
,
serviceMsg
}
from
"
../utils
"
;
import
ImageUpload
from
"
@/components/ImageUpload
"
;
/**
...
...
src/views/ecw/box/shippingSea/nodePage/departure.vue
View file @
b094be9f
...
...
@@ -31,9 +31,9 @@
<
script
>
import
regError
from
"
../../regError
"
;
import
{
shippingCreate
,
serviceMsg
}
from
"
@/api/ecw/boxSea
"
;
import
{
shippingCreate
}
from
"
@/api/ecw/boxSea
"
;
import
dayjs
from
"
dayjs
"
;
import
{
formatDateStr
}
from
"
../utils
"
;
import
{
formatDateStr
,
serviceMsg
}
from
"
../utils
"
;
/**
* 起运
...
...
src/views/ecw/box/shippingSea/nodePage/preinstall.vue
View file @
b094be9f
...
...
@@ -122,7 +122,11 @@
<el-table-column
type=
"selection"
align=
"center"
width=
"55"
fixed=
"left"
/>
<el-table-column
label=
"订单号"
align=
"center"
prop=
"orderNo"
width=
"120"
/>
<el-table-column
label=
"目的地"
align=
"center"
prop=
"destWarehouseName"
width=
"120"
/>
<el-table-column
label=
"入仓时间"
align=
"center"
prop=
"rucangTime"
width=
"120"
/>
<el-table-column
label=
"入仓时间"
align=
"center"
prop=
"rucangTime"
width=
"120"
>
<template
slot-scope=
"scope"
>
{{
formatDate
(
scope
.
row
.
rucangTime
)
}}
</
template
>
</el-table-column>
<el-table-column
label=
"品名"
align=
"center"
prop=
"prodTitleZh"
width=
"120"
/>
<el-table-column
label=
"箱数"
align=
"center"
prop=
"num"
/>
<el-table-column
label=
"体积/重量/重货比"
align=
"center"
width=
"140"
prop=
"volumeWeight"
>
...
...
@@ -233,7 +237,11 @@
<dict-tag
:type=
"DICT_TYPE.ECW_PACKAGE_TYPE"
:value=
"scope.row.unit"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"材质"
align=
"center"
prop=
"material"
/>
<el-table-column
label=
"材质"
align=
"center"
prop=
"material"
>
、
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.ECW_PRODUCT_MATERIAL"
:value=
"scope.row.material"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
<el-dropdown
trigger=
"click"
@
command=
"(command)=>handleGoods('singele',scope.row,command)"
>
...
...
@@ -274,13 +282,12 @@ import {
preloadPage
,
createSection
,
deleteSection
,
serviceMsg
,
createGoods
,
deleteGoods
,
approvalCreate
,
}
from
"
@/api/ecw/boxSea
"
;
import
userSelect
from
"
./common/userSelect.vue
"
;
import
{
formatDate
,
getTotlContent
}
from
"
../utils
"
;
import
{
formatDate
,
getTotlContent
,
serviceMsg
}
from
"
../utils
"
;
import
dayjs
from
"
dayjs
"
;
/**
...
...
src/views/ecw/box/shippingSea/nodePage/review.vue
View file @
b094be9f
...
...
@@ -13,7 +13,8 @@
</
template
>
<
script
>
import
{
approvalCreate
,
serviceMsg
}
from
"
@/api/ecw/boxSea
"
;
import
{
approvalCreate
}
from
"
@/api/ecw/boxSea
"
;
import
{
serviceMsg
}
from
"
../utils
"
;
/**
* 反审
...
...
src/views/ecw/box/shippingSea/nodePage/settlement.vue
View file @
b094be9f
...
...
@@ -18,8 +18,8 @@
</
template
>
<
script
>
import
{
settlementCreate
,
serviceMsg
}
from
"
@/api/ecw/boxSea
"
;
import
{
formatDateStr
}
from
"
../utils
"
;
import
{
settlementCreate
}
from
"
@/api/ecw/boxSea
"
;
import
{
formatDateStr
,
serviceMsg
}
from
"
../utils
"
;
/**
* 结算
*/
...
...
src/views/ecw/box/shippingSea/nodePage/ship.vue
View file @
b094be9f
...
...
@@ -20,8 +20,13 @@
</
template
>
<
script
>
import
{
shipConfigure
,
serviceMsg
}
from
"
@/api/ecw/boxSea
"
;
import
{
formatNumberString
,
formatDateStr
,
constantDict
}
from
"
../utils
"
;
import
{
shipConfigure
}
from
"
@/api/ecw/boxSea
"
;
import
{
formatNumberString
,
formatDateStr
,
constantDict
,
serviceMsg
,
}
from
"
../utils
"
;
/**
* 配船
*/
...
...
src/views/ecw/box/shippingSea/nodePage/subMaterial.vue
View file @
b094be9f
...
...
@@ -77,8 +77,8 @@ import dockSelect from "./common/dockSelect.vue";
import
userSelect
from
"
./common/userSelect.vue
"
;
import
{
getUnitList
}
from
"
@/api/ecw/unit
"
;
import
{
getCabinetPage
}
from
"
@/api/ecw/cabinet
"
;
import
{
billCreate
,
serviceMsg
}
from
"
@/api/ecw/boxSea
"
;
import
{
formatNumberString
,
constantDict
}
from
"
../utils
"
;
import
{
billCreate
}
from
"
@/api/ecw/boxSea
"
;
import
{
formatNumberString
,
constantDict
,
serviceMsg
}
from
"
../utils
"
;
/**
* 提单补料
...
...
src/views/ecw/box/shippingSea/nodePage/trailer.vue
View file @
b094be9f
...
...
@@ -37,12 +37,13 @@
</
template
>
<
script
>
import
{
trailer
,
serviceMsg
}
from
"
@/api/ecw/boxSea
"
;
import
{
trailer
}
from
"
@/api/ecw/boxSea
"
;
import
supplierSelect
from
"
./common/supplierSelect.vue
"
;
import
{
formatStringNumber
,
formatDateStr
,
formatNumberString
,
serviceMsg
,
}
from
"
../utils
"
;
/**
* 拖车
...
...
src/views/ecw/box/shippingSea/nodePage/unloading/index.vue
View file @
b094be9f
...
...
@@ -28,8 +28,8 @@
<
script
>
import
startUnloading
from
"
./startUnloading.vue
"
;
import
{
unloadCreate
,
serviceMsg
}
from
"
@/api/ecw/boxSea
"
;
import
{
formatDateStr
}
from
"
../../utils
"
;
import
{
unloadCreate
}
from
"
@/api/ecw/boxSea
"
;
import
{
formatDateStr
,
serviceMsg
}
from
"
../../utils
"
;
import
dockSelect
from
"
../common/dockSelect.vue
"
;
/**
...
...
src/views/ecw/box/shippingSea/nodePage/unloading/startUnloading.vue
View file @
b094be9f
...
...
@@ -94,8 +94,9 @@ import {
batchUnload
,
allUnload
,
approvalCreate
,
serviceMsg
,
}
from
"
@/api/ecw/boxSea
"
;
import
{
serviceMsg
}
from
"
../../utils
"
;
/**
* 开始卸柜
*/
...
...
src/views/ecw/box/shippingSea/nodePage/unloading/unloadingError.vue
View file @
b094be9f
...
...
@@ -27,7 +27,8 @@
</
template
>
<
script
>
import
{
createError
,
serviceMsg
}
from
"
@/api/ecw/boxSea
"
;
import
{
createError
}
from
"
@/api/ecw/boxSea
"
;
import
{
serviceMsg
}
from
"
../../utils
"
;
/**
* 卸柜异常
*/
...
...
src/views/ecw/box/shippingSea/utils.js
View file @
b094be9f
...
...
@@ -623,7 +623,7 @@ function getColmnMapping() {
key
:
"
remarks
"
,
},
{
title
:
"
数量
"
,
title
:
"
数量
(个)
"
,
key
:
"
packageNum
"
,
},
{
...
...
@@ -943,6 +943,27 @@ export const fileTypes = [
"jpeg",
];
/**
* 服务提示消息回调
*
* @export
* @param {*} result
* @param {*} _vue
* @return {*}
*/
function serviceMsg(result, _vue) {
return new Promise((resolve, reject) => {
const { code, msg } = result;
if (code === 0) {
_vue.$message.success("操作成功");
resolve();
} else {
_vue.$message.error(msg);
reject();
}
});
}
export {
getStatusName,
getColmnMapping,
...
...
@@ -954,4 +975,5 @@ export {
formatNumberString,
formatDate,
getTotlContent,
serviceMsg,
};
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