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
e42e604c
Commit
e42e604c
authored
Aug 20, 2022
by
dragondean@qq.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' of
http://gitlab.jdshangmen.com/jiedao-app/jiedao-app-operator
into dev
parents
bc6ca011
b094be9f
Changes
33
Hide whitespace changes
Inline
Side-by-side
Showing
33 changed files
with
1026 additions
and
514 deletions
+1026
-514
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
dict.js
src/utils/dict.js
+3
-2
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
index.vue
src/views/ecw/order/warehousing/index.vue
+36
-9
No files found.
src/api/ecw/box.js
View file @
e42e604c
...
...
@@ -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 @
e42e604c
...
...
@@ -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 @
e42e604c
...
...
@@ -49,7 +49,7 @@ a,
a
:focus
,
a
:hover
{
cursor
:
pointer
;
color
:
inherit
;
//
color: inherit;
text-decoration
:
none
;
}
...
...
src/utils/dict.js
View file @
e42e604c
...
...
@@ -164,8 +164,9 @@ export const DICT_TYPE = {
ORDER_COD_EXCEPTION_RESULT
:
'
order_cod_exception_result
'
,
//代收货款异常处理结果
ORDER_OTHER_EXCEPTION_RESULT
:
'
order_other_exception_result
'
,
//其它异常处理结果
ORDER_BULKY_CARGO_EXCEPTION_RESULT
:
'
order_bulky_cargo_exception_result
'
,
//泡货异常处理结果
NEED_KNOW_TYPE
:
'
need_know_type
'
,
//须知类型
NEED_KNOW_STATUS
:
'
need_know_status
'
,
//须知状态
NEED_KNOW_TYPE
:
'
need_know_type
'
,
//需知类型
NEED_KNOW_STATUS
:
'
need_know_status
'
,
//需知状态
MANUAL_EXCEPTION_TYPE
:
'
manual_exception_type
'
,
ECASH_INIT
:
'
ecash_init
'
,
//e-cash
...
...
src/views/ecw/box/costForm.vue
View file @
e42e604c
<
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 @
e42e604c
<
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 @
e42e604c
...
...
@@ -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,23 +83,23 @@
</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>
<el-table-column
label=
"日期"
align=
"center"
prop=
"createTime"
width=
"180"
>
<
template
slot-scope=
"scope"
>
<span>
{{
new
Date
(
scope
.
row
.
createTime
).
format
(
'
yyyy-MM-dd
'
)
}}
</span>
</
template
>
<
template
slot-scope=
"scope"
>
<span>
{{
new
Date
(
scope
.
row
.
createTime
).
format
(
'
yyyy-MM-dd
'
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
width=
"200px"
>
<
template
slot-scope=
"scope"
>
...
...
@@ -142,339 +133,224 @@
</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
"
,
components
:
{
costForm
,
regError
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
,
editForm
,
},
data
()
{
return
{
dateTypes
:
[
{
value
:
"
1
"
,
label
:
"
预装时间
"
},
{
value
:
"
2
"
,
label
:
"
装柜时间
"
},
{
value
:
"
3
"
,
label
:
"
起运时间
"
},
{
value
:
"
4
"
,
label
:
"
到港时间
"
},
{
value
:
"
5
"
,
label
:
"
清关时间
"
},
{
value
:
"
6
"
,
label
:
"
提货时间
"
},
],
// 遮罩层
loading
:
true
,
// 导出遮罩层
exportLoading
:
false
,
// 显示搜索条件
showSearch
:
true
,
// 总条数
total
:
0
,
// 出货列表
list
:
[],
// 弹出层标题
title
:
""
,
// 弹出类型
dialogType
:
""
,
// 当前行
currRow
:
{},
// 是否显示弹出层
open
:
false
,
dateRangeCreateTime
:
[],
// 查询参数
queryParams
:
{
pageNo
:
1
,
pageSize
:
10
,
},
cabinetList
:
[],
warehouseList
:
[],
transportTypes
:
[],
};
},
computed
:
{
exportWarehouseList
()
{
return
this
.
warehouseList
.
filter
(
(
item
)
=>
item
.
tradeType
==
"
2
"
||
item
.
type
==
"
3
"
);
},
data
()
{
return
{
dateTypes
:[
{
value
:
'
1
'
,
label
:
'
预装时间
'
},
{
value
:
'
2
'
,
label
:
'
装柜时间
'
},
{
value
:
'
3
'
,
label
:
'
起运时间
'
},
{
value
:
'
4
'
,
label
:
'
到港时间
'
},
{
value
:
'
5
'
,
label
:
'
清关时间
'
},
{
value
:
'
6
'
,
label
:
'
提货时间
'
},
],
// 遮罩层
loading
:
true
,
// 导出遮罩层
exportLoading
:
false
,
// 显示搜索条件
showSearch
:
true
,
// 总条数
total
:
0
,
// 出货列表
list
:
[],
// 弹出层标题
title
:
""
,
// 弹出类型
dialogType
:
""
,
// 当前行
currRow
:
{},
// 是否显示弹出层
open
:
false
,
dateRangeCreateTime
:
[],
// 查询参数
queryParams
:
{
pageNo
:
1
,
pageSize
:
10
,
id
:
null
,
selfNo
:
null
,
cubNo
:
null
,
cabinetId
:
null
,
boxStatus
:
null
,
startWarehouseId
:
null
,
destWarehouseId
:
null
,
transportType
:
null
,
},
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
"
}],
}
};
importWarehouseList
()
{
return
this
.
warehouseList
.
filter
(
(
item
)
=>
item
.
tradeType
==
"
1
"
||
item
.
type
==
"
3
"
);
},
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
'
)
},
getCabinetName
()
{
return
cabinetId
=>
{
for
(
let
index
in
this
.
cabinetList
)
{
let
cabinetItem
=
this
.
cabinetList
[
index
];
if
(
cabinetItem
.
id
==
cabinetId
)
{
return
cabinetItem
.
name
;
}
getCabinetName
()
{
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
.
cabinetList
=
response
.
data
.
list
;
},
created
()
{
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
();
},
methods
:
{
/** 查询列表 */
getList
()
{
this
.
loading
=
true
;
// 处理查询参数
let
params
=
{
...
this
.
queryParams
};
params
.
transportTypeList
=
[
"
1
"
,
"
2
"
];
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
"
createTime
"
);
// 执行查询
getboxPage
(
params
).
then
((
response
)
=>
{
this
.
list
=
response
.
data
.
list
;
this
.
total
=
response
.
data
.
total
;
this
.
loading
=
false
;
});
},
/** 搜索按钮操作 */
handleQuery
()
{
this
.
queryParams
.
pageNo
=
1
;
this
.
getList
();
},
methods
:
{
/** 查询列表 */
getList
()
{
this
.
loading
=
true
;
// 处理查询参数
let
params
=
{...
this
.
queryParams
};
params
.
transportTypeList
=
[
'
1
'
,
'
2
'
];
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
);
// 执行查询
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
;
this
.
getList
();
},
/** 重置按钮操作 */
resetQuery
()
{
this
.
dateRangeCreateTime
=
[];
this
.
resetForm
(
"
queryForm
"
);
this
.
handleQuery
();
},
/** 新增按钮操作 */
handleAdd
()
{
this
.
reset
();
/** 重置按钮操作 */
resetQuery
()
{
this
.
dateRangeCreateTime
=
[];
this
.
resetForm
(
"
queryForm
"
);
this
.
handleQuery
();
},
/** 新增按钮操作 */
handleAdd
()
{
this
.
open
=
true
;
this
.
title
=
"
添加出货
"
;
this
.
dialogType
=
"
add
"
;
},
/** 修改按钮操作 */
handleUpdate
(
row
)
{
const
id
=
row
.
id
;
getbox
(
id
).
then
((
response
)
=>
{
this
.
currRow
=
response
.
data
;
this
.
open
=
true
;
this
.
title
=
"
添加出货
"
;
this
.
dialogType
=
"
add
"
;
},
/** 修改按钮操作 */
handleUpdate
(
row
)
{
this
.
reset
();
const
id
=
row
.
id
;
getbox
(
id
).
then
(
response
=>
{
this
.
form
=
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
.
title
=
"
修改出货
"
;
this
.
dialogType
=
"
edit
"
;
});
},
/** 删除按钮操作 */
handleDelete
(
row
)
{
const
id
=
row
.
id
;
this
.
$modal
.
confirm
(
'
是否确认删除出货编号为"
'
+
id
+
'
"的数据项?
'
)
.
then
(
function
()
{
return
deletebox
(
id
);
}).
then
(()
=>
{
})
.
then
(()
=>
{
this
.
getList
();
this
.
$modal
.
msgSuccess
(
"
删除成功
"
);
}).
catch
(()
=>
{
});
},
/** 导出按钮操作 */
handleExport
()
{
// 处理查询参数
let
params
=
{...
this
.
queryParams
};
params
.
pageNo
=
undefined
;
params
.
pageSize
=
undefined
;
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
'
createTime
'
);
// 执行导出
this
.
$modal
.
confirm
(
'
是否确认导出所有出货数据项?
'
).
then
(()
=>
{
})
.
catch
(()
=>
{});
},
/** 导出按钮操作 */
handleExport
()
{
// 处理查询参数
let
params
=
{
...
this
.
queryParams
};
params
.
pageNo
=
undefined
;
params
.
pageSize
=
undefined
;
this
.
addBeginAndEndTime
(
params
,
this
.
dateRangeCreateTime
,
"
createTime
"
);
// 执行导出
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
(()
=>
{
});
},
closeDialog
()
{
this
.
open
=
false
;
},
/** 查看按钮操作 */
handleCommand
(
row
,
command
)
{
switch
(
command
)
{
case
'
sea
'
:
this
.
$router
.
push
(
'
/boxSea/shippingSea/
'
+
row
.
id
)
break
;
case
'
edit
'
:
this
.
handleUpdate
(
row
);
break
;
case
'
delete
'
:
this
.
handleDelete
(
row
);
break
;
case
'
cost
'
:
this
.
title
=
'
费用登记
'
this
.
dialogType
=
'
cost
'
;
this
.
open
=
true
;
this
.
currRow
=
row
;
break
;
case
'
error
'
:
this
.
title
=
'
异常登记
'
this
.
dialogType
=
'
error
'
;
this
.
open
=
true
;
this
.
currRow
=
row
;
break
;
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
;
})
.
catch
(()
=>
{});
},
/* 关闭弹窗 */
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
);
break
;
case
"
edit
"
:
this
.
handleUpdate
(
row
);
break
;
case
"
delete
"
:
this
.
handleDelete
(
row
);
break
;
case
"
cost
"
:
this
.
title
=
"
费用登记
"
;
this
.
dialogType
=
"
cost
"
;
this
.
open
=
true
;
this
.
currRow
=
row
;
break
;
case
"
error
"
:
this
.
title
=
"
异常登记
"
;
this
.
dialogType
=
"
error
"
;
this
.
open
=
true
;
this
.
currRow
=
row
;
break
;
case
"
detail
"
:
this
.
$router
.
push
(
"
/boxSea/query/
"
+
row
.
id
);
break
;
}
}
}
}
</
s
tyle
>
}
,
}
,
}
;
</
s
cript
>
src/views/ecw/box/query.vue
View file @
e42e604c
<
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=
"[]"
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>
<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>
</
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
{
display
:
flex
;
.box-weight
{
margin-left
:
10px
;
<
style
lang=
"scss"
>
.shipping-detail
{
.detail-pane
{
display
:
flex
;
align-items
:
center
;
margin-bottom
:
5px
;
.box-weight
{
margin-left
:
10px
;
}
.document-status
{
flex
:
1
;
justify-content
:
flex-end
;
display
:
flex
;
align-items
:
center
;
>
span
{
margin-right
:
10px
;
}
}
}
.document-status
{
flex
:
1
;
text-align
:
right
;
.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 @
e42e604c
<
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 @
e42e604c
...
...
@@ -186,7 +186,6 @@ export default {
if
(
channelItem
.
channelId
==
shippingChannelId
)
{
return
channelItem
.
nameZh
;
}
return
"
/
"
;
}
};
},
...
...
src/views/ecw/box/shippingSea/nodePage/agent.vue
View file @
e42e604c
...
...
@@ -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 @
e42e604c
...
...
@@ -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 @
e42e604c
...
...
@@ -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 @
e42e604c
...
...
@@ -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 @
e42e604c
...
...
@@ -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 @
e42e604c
...
...
@@ -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 @
e42e604c
...
...
@@ -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
({
orderNumCode
:
this
.
correctionObj
.
qrCode
,
});
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
();
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
,
};
batchDelete
(
params
).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
(()
=>
{
this
.
getLoadSecGoodsList
();
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 @
e42e604c
...
...
@@ -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 @
e42e604c
...
...
@@ -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 @
e42e604c
...
...
@@ -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 @
e42e604c
...
...
@@ -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 @
e42e604c
...
...
@@ -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 @
e42e604c
...
...
@@ -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 @
e42e604c
...
...
@@ -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 @
e42e604c
...
...
@@ -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 @
e42e604c
...
...
@@ -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 @
e42e604c
...
...
@@ -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 @
e42e604c
...
...
@@ -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 @
e42e604c
...
...
@@ -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 @
e42e604c
...
...
@@ -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 @
e42e604c
...
...
@@ -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 @
e42e604c
...
...
@@ -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,
};
src/views/ecw/order/warehousing/index.vue
View file @
e42e604c
...
...
@@ -87,7 +87,7 @@
</el-form-item>
<div
style=
"text-align: center;margin-top: 15px"
>
<el-button
type=
"primary"
>
转异
</el-button>
<el-button
@
click=
"escapeBol = true;"
type=
"primary"
>
转异
</el-button>
<el-button
type=
"primary"
@
click=
"finishVisible = true"
>
完成入仓
</el-button>
</div>
</el-form>
...
...
@@ -110,7 +110,23 @@
<el-button
type=
"primary"
@
click=
"handleSubmit()"
>
确 定
</el-button>
</div>
</el-dialog>
<el-dialog
:title=
"order.orderNo + '转异常单'"
center
:visible.sync=
"escapeBol"
>
<el-form
label-position=
"top"
label-width=
"200"
>
<el-form-item
label=
"原因类型"
>
<dict-selector
v-model=
"form.manualExceptionType"
form-type=
"checkbox"
:type=
"DICT_TYPE.MANUAL_EXCEPTION_TYPE"
multiple
></dict-selector>
</el-form-item>
<el-form-item
label=
"附件"
>
<image-upload
v-model=
"form.exceptionUrls"
></image-upload>
</el-form-item>
<el-form-item
label=
"详细信息"
>
<el-input
v-model=
"form.descZh"
type=
"textarea"
></el-input>
</el-form-item>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"handleSubmit"
>
转义完成并入仓
</el-button>
<el-button
@
click=
"escapeBol = false"
>
取消
</el-button>
</span>
</el-dialog>
<print-tag
v-if=
"isShowPrintTag"
:order-id=
"orderId"
@
close=
"isShowPrintTag = false"
></print-tag>
<print-warehouse-receipt
v-if=
"isShowPrint"
:order-id=
"orderId"
@
close=
"isShowPrint = false"
/>
...
...
@@ -132,7 +148,7 @@ import editDialog from '@/views/ecw/order/warehousing/components/editDialog'
import
{
DICT_TYPE
}
from
"
@/utils/dict
"
import
PrintTag
from
"
@/views/ecw/order/components/PrintTag
"
import
PrintWarehouseReceipt
from
"
@/views/ecw/order/components/PrintWarehouseReceipt
"
import
imageUpload
from
"
@/components/ImageUpload
"
;
export
default
{
name
:
"
Warehousing
"
,
...
...
@@ -141,7 +157,8 @@ export default {
WarehouseAreaDialog
,
editDialog
,
PrintTag
,
PrintWarehouseReceipt
PrintWarehouseReceipt
,
imageUpload
},
mounted
()
{
...
...
@@ -163,7 +180,10 @@ export default {
warehousingVisible
:
false
,
form
:
{
orderSpecialNeedReceivableReqVoList
:
[],
orderLocationCreateReqVOList
:
[]
orderLocationCreateReqVOList
:
[],
exceptionUrls
:[],
descZh
:
''
,
manualExceptionType
:
''
,
},
currencyList
:[],
order
:
{},
...
...
@@ -172,18 +192,26 @@ export default {
specialList
:
[],
warehousing
:
undefined
,
isShowPrintTag
:
false
,
isShowPrint
:
false
isShowPrint
:
false
,
escapeBol
:
false
,
}
},
methods
:
{
handleSubmit
()
{
orderWarehouseInFinish
(
{
let
p
=
{
orderSpecialNeedReceivableReqVoList
:
this
.
form
.
orderSpecialNeedReceivableReqVoList
,
"
orderLocationCreateReqVOList
"
:
this
.
form
.
orderLocationCreateReqVOList
,
"
orderId
"
:
this
.
order
.
orderId
}).
then
(
r
=>
{
}
if
(
this
.
escapeBol
){
p
.
exceptionUrls
=
this
.
form
.
exceptionUrls
.
split
(
'
,
'
);
p
.
descZh
=
this
.
form
.
descZh
;
p
.
manualExceptionType
=
this
.
form
.
manualExceptionType
}
orderWarehouseInFinish
(
p
).
then
(
r
=>
{
if
(
r
.
data
)
{
this
.
escapeBol
=
false
;
this
.
$confirm
(
'
该订单已成功入仓,是否打印?
'
,
'
货物已入仓
'
,
...
...
@@ -210,7 +238,6 @@ export default {
cancelButtonText
:
'
取消
'
,
type
:
'
warning
'
}).
then
(()
=>
{
console
.
log
(
item
)
rollbackApply
({
"
orderId
"
:
item
.
orderId
,
"
orderNo
"
:
item
.
orderNo
,
...
...
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