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
23b010d7
Commit
23b010d7
authored
Sep 24, 2022
by
zhoutong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
海空联运
parent
cceab489
Changes
14
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
868 additions
and
8 deletions
+868
-8
boxSeaAir.js
src/api/ecw/boxSeaAir.js
+45
-0
ecdg-end.png
src/assets/images/shipping/ecdg-end.png
+0
-0
ecdg-start.png
src/assets/images/shipping/ecdg-start.png
+0
-0
ecdg-wait.png
src/assets/images/shipping/ecdg-wait.png
+0
-0
ecqf-end.png
src/assets/images/shipping/ecqf-end.png
+0
-0
ecqf-start.png
src/assets/images/shipping/ecqf-start.png
+0
-0
ecqf-wait.png
src/assets/images/shipping/ecqf-wait.png
+0
-0
index.js
src/router/index.js
+22
-0
indexSeaAir.vue
src/views/ecw/box/indexSeaAir.vue
+12
-8
twoWayArrival.vue
src/views/ecw/box/shippingSea/nodePage/twoWayArrival.vue
+103
-0
twoWayTakeoff.vue
src/views/ecw/box/shippingSea/nodePage/twoWayTakeoff.vue
+103
-0
seaProcess.vue
src/views/ecw/box/shippingSea/seaProcess.vue
+4
-0
utils.js
src/views/ecw/box/shippingSea/utils.js
+409
-0
shippingSeaAir.vue
src/views/ecw/box/shippingSeaAir/shippingSeaAir.vue
+170
-0
No files found.
src/api/ecw/boxSeaAir.js
0 → 100644
View file @
23b010d7
import
request
from
"
@/utils/request
"
;
/**
* 起飞
*
* @export
* @param {*} data
* @return {*}
*/
export
function
takeoffCreate
(
data
)
{
if
(
data
.
id
)
{
return
request
({
url
:
"
/ecw/box-takeoff/update
"
,
method
:
"
put
"
,
data
,
});
}
return
request
({
url
:
"
/ecw/box-takeoff/create
"
,
method
:
"
post
"
,
data
,
});
}
/**
* 到港
*
* @export
* @param {*} data
* @return {*}
*/
export
function
arrivalCreate
(
data
)
{
if
(
data
.
id
)
{
return
request
({
url
:
"
/ecw/box-arrival/update
"
,
method
:
"
put
"
,
data
,
});
}
return
request
({
url
:
"
/ecw/box-arrival/create
"
,
method
:
"
post
"
,
data
,
});
}
\ No newline at end of file
src/assets/images/shipping/ecdg-end.png
0 → 100644
View file @
23b010d7
5.88 KB
src/assets/images/shipping/ecdg-start.png
0 → 100644
View file @
23b010d7
2.91 KB
src/assets/images/shipping/ecdg-wait.png
0 → 100644
View file @
23b010d7
2.83 KB
src/assets/images/shipping/ecqf-end.png
0 → 100644
View file @
23b010d7
5.56 KB
src/assets/images/shipping/ecqf-start.png
0 → 100644
View file @
23b010d7
2.61 KB
src/assets/images/shipping/ecqf-wait.png
0 → 100644
View file @
23b010d7
2.58 KB
src/router/index.js
View file @
23b010d7
...
@@ -406,6 +406,28 @@ export const constantRoutes = [
...
@@ -406,6 +406,28 @@ export const constantRoutes = [
}
}
]
]
},
},
{
path
:
'
/boxSeaAir
'
,
component
:
Layout
,
hidden
:
true
,
redirect
:
'
noredirect
'
,
children
:
[
{
path
:
'
query/:shipmentId(
\\
d+)
'
,
component
:
(
resolve
)
=>
import
(
'
@/views/ecw/box/query
'
),
props
:
true
,
name
:
'
shippingDetail
'
,
meta
:
{
title
:
'
出货详情
'
,
icon
:
''
,
activeMenu
:
'
/shipment/boxDetail
'
}
},
{
path
:
'
shippingSeaAir/:shipmentId(
\\
d+)
'
,
component
:
(
resolve
)
=>
import
(
'
@/views/ecw/box/shippingSeaAir/shippingSeaAir
'
),
props
:
true
,
name
:
'
shippingSeaAir
'
,
meta
:
{
title
:
'
海空联运出货操作
'
,
icon
:
''
,
activeMenu
:
'
/shipment/boxSeaAir
'
}
}
]
},
]
]
// 防止连续点击多次路由报错
// 防止连续点击多次路由报错
...
...
src/views/ecw/box/indexSeaAir.vue
View file @
23b010d7
...
@@ -90,14 +90,18 @@
...
@@ -90,14 +90,18 @@
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"方数(预装/已装)"
align=
"center"
prop=
"squareNumber"
/>
<el-table-column
label=
"方数(预装/已装)"
align=
"center"
prop=
"squareNumber"
>
<el-table-column
label=
"重量(预装/已装)"
align=
"center"
prop=
"weight"
/>
<
template
slot-scope=
"{row}"
>
{{
row
.
boxStatistics
.
volume
}}
/
{{
row
.
boxStatistics
.
loadVolume
}}
<el-table-column
label=
"状态"
align=
"center"
prop=
"boxStatus"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.BOX_SHIPMENT_STATUS"
:value=
"scope.row.boxStatus"
/>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"重量(预装/已装)"
align=
"center"
prop=
"weight"
>
<
template
slot-scope=
"{row}"
>
{{
row
.
boxStatistics
.
weight
}}
/
{{
row
.
boxStatistics
.
loadWeight
}}
</
template
>
</el-table-column>
<el-table-column
label=
"状态"
align=
"center"
prop=
"shipmentStatusText"
/>
<el-table-column
label=
"日期"
align=
"center"
prop=
"createTime"
width=
"180"
>
<el-table-column
label=
"日期"
align=
"center"
prop=
"createTime"
width=
"180"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
...
@@ -402,8 +406,8 @@
...
@@ -402,8 +406,8 @@
/** 查看按钮操作 */
/** 查看按钮操作 */
handleCommand
(
row
,
command
)
{
handleCommand
(
row
,
command
)
{
switch
(
command
)
{
switch
(
command
)
{
case
'
sea
'
:
case
'
sea
Air
'
:
this
.
$router
.
push
(
'
/box
/shippingSea
/
'
+
row
.
id
)
this
.
$router
.
push
(
'
/box
SeaAir/shippingSeaAir
/
'
+
row
.
id
)
break
;
break
;
case
'
edit
'
:
case
'
edit
'
:
...
...
src/views/ecw/box/shippingSea/nodePage/twoWayArrival.vue
0 → 100644
View file @
23b010d7
<
template
>
<div>
<el-form
ref=
"twoWayArrivalForm"
:rules=
"rules"
:model=
"twoWayArrivalObj"
label-width=
"120px"
>
<el-form-item
label=
"实际到港时间"
prop=
"apRealTime"
>
<el-date-picker
type=
"datetime"
placeholder=
"请选择日期"
v-model=
"twoWayArrivalObj.apRealTime"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
</el-form-item>
<el-form-item
label=
"确认到港时间"
prop=
"apConfirmTime"
>
<el-date-picker
type=
"datetime"
placeholder=
"请选择日期"
v-model=
"twoWayArrivalObj.apConfirmTime"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
</el-form-item>
<el-form-item
label=
"卸港时间"
prop=
"apUnloadPortTime"
>
<el-date-picker
type=
"datetime"
placeholder=
"请选择日期"
v-model=
"twoWayArrivalObj.apUnloadPortTime"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
</el-form-item>
</el-form>
<el-row
class=
"operate-button"
>
<el-button
type=
"primary"
@
click=
"onSubmit(1)"
>
保存
</el-button>
<el-button
type=
"success"
@
click=
"onSubmit(2)"
>
提交
</el-button>
<el-button
@
click=
"cancel"
>
关闭
</el-button>
<el-button
type=
"primary"
@
click=
"exceptionReg"
>
异常登记
</el-button>
</el-row>
<!-- 对话框 -->
<el-dialog
custom-class=
"shipping-dialog"
title=
"异常登记"
:visible.sync=
"dialogVisible"
width=
"700px"
:modal-append-to-body=
false
append-to-body
destroy-on-close
>
<regError
@
closeDialog=
"dialogVisible = false"
v-bind=
"$attrs"
/>
</el-dialog>
</div>
</
template
>
<
script
>
import
regError
from
"
../../regError
"
;
import
{
arrivalCreate
}
from
"
@/api/ecw/boxSeaAir
"
;
import
{
formatDateStr
,
serviceMsg
}
from
"
../utils
"
;
/**
* 起飞
*/
export
default
{
name
:
"
twoWayArrival
"
,
inheritAttrs
:
false
,
components
:
{
regError
,
},
data
()
{
return
{
// 清关对象
twoWayArrivalObj
:
{},
// 校验
rules
:
{
actHeadTime
:
[{
required
:
true
,
message
:
"
必填
"
,
trigger
:
"
blur
"
}],
estHeadTime
:
[{
required
:
true
,
message
:
"
必填
"
,
trigger
:
"
blur
"
}],
estSecondTime
:
[{
required
:
true
,
message
:
"
必填
"
,
trigger
:
"
blur
"
}],
},
// 弹窗配置
dialogVisible
:
false
,
// 提示消息
showMsg
:
false
,
};
},
created
()
{
const
voName
=
this
.
$attrs
.
currNode
.
voName
;
let
oldData
=
{
...
this
.
$attrs
.
shipmentObj
[
voName
]
};
oldData
=
formatDateStr
(
oldData
,
[
"
apConfirmTime
"
],
"
YYYY-MM-DD HH:mm:ss
"
);
oldData
=
formatDateStr
(
oldData
,
[
"
apRealTime
"
],
"
YYYY-MM-DD HH:mm:ss
"
);
oldData
=
formatDateStr
(
oldData
,
[
"
apUnloadPortTime
"
],
"
YYYY-MM-DD HH:mm:ss
"
);
this
.
twoWayArrivalObj
=
oldData
;
},
watch
:
{
},
methods
:
{
// 异常登记
exceptionReg
()
{
this
.
dialogVisible
=
true
;
},
/** 提交 */
onSubmit
(
operateType
)
{
this
.
$refs
[
"
twoWayArrivalForm
"
].
validate
((
valid
)
=>
{
if
(
valid
)
{
arrivalCreate
({
...
this
.
twoWayArrivalObj
,
shipmentId
:
this
.
$attrs
.
shipmentObj
.
id
,
operateType
,
}).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
(()
=>
{
this
.
cancel
(
"
submit
"
);
});
});
}
});
},
/** 取消 */
cancel
(
type
)
{
this
.
$emit
(
"
closeDialog
"
,
type
);
},
},
};
</
script
>
<
style
lang=
"scss"
scoped
>
.message-area
{
margin
:
0
;
color
:
red
;
}
</
style
>
src/views/ecw/box/shippingSea/nodePage/twoWayTakeoff.vue
0 → 100644
View file @
23b010d7
<
template
>
<div>
<el-form
ref=
"twoWayTakeoffForm"
:rules=
"rules"
:model=
"twoWayTakeoffObj"
label-width=
"120px"
>
<el-form-item
label=
"预计头程时间"
prop=
"estHeadTime"
>
<el-date-picker
type=
"datetime"
placeholder=
"请选择日期"
v-model=
"twoWayTakeoffObj.estHeadTime"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
</el-form-item>
<el-form-item
label=
"实际头程时间"
prop=
"actHeadTime"
>
<el-date-picker
type=
"datetime"
placeholder=
"请选择日期"
v-model=
"twoWayTakeoffObj.actHeadTime"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
</el-form-item>
<el-form-item
label=
"预计二程时间"
prop=
"estSecondTime"
>
<el-date-picker
type=
"datetime"
placeholder=
"请选择日期"
v-model=
"twoWayTakeoffObj.estSecondTime"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
</el-form-item>
</el-form>
<el-row
class=
"operate-button"
>
<el-button
type=
"primary"
@
click=
"onSubmit(1)"
>
保存
</el-button>
<el-button
type=
"success"
@
click=
"onSubmit(2)"
>
提交
</el-button>
<el-button
@
click=
"cancel"
>
关闭
</el-button>
<el-button
type=
"primary"
@
click=
"exceptionReg"
>
异常登记
</el-button>
</el-row>
<!-- 对话框 -->
<el-dialog
custom-class=
"shipping-dialog"
title=
"异常登记"
:visible.sync=
"dialogVisible"
width=
"700px"
:modal-append-to-body=
false
append-to-body
destroy-on-close
>
<regError
@
closeDialog=
"dialogVisible = false"
v-bind=
"$attrs"
/>
</el-dialog>
</div>
</
template
>
<
script
>
import
regError
from
"
../../regError
"
;
import
{
takeoffCreate
}
from
"
@/api/ecw/boxSeaAir
"
;
import
{
formatDateStr
,
serviceMsg
}
from
"
../utils
"
;
/**
* 起飞
*/
export
default
{
name
:
"
twoWayTakeoff
"
,
inheritAttrs
:
false
,
components
:
{
regError
,
},
data
()
{
return
{
// 清关对象
twoWayTakeoffObj
:
{},
// 校验
rules
:
{
actHeadTime
:
[{
required
:
true
,
message
:
"
必填
"
,
trigger
:
"
blur
"
}],
estHeadTime
:
[{
required
:
true
,
message
:
"
必填
"
,
trigger
:
"
blur
"
}],
estSecondTime
:
[{
required
:
true
,
message
:
"
必填
"
,
trigger
:
"
blur
"
}],
},
// 弹窗配置
dialogVisible
:
false
,
// 提示消息
showMsg
:
false
,
};
},
created
()
{
const
voName
=
this
.
$attrs
.
currNode
.
voName
;
let
oldData
=
{
...
this
.
$attrs
.
shipmentObj
[
voName
]
};
oldData
=
formatDateStr
(
oldData
,
[
"
actHeadTime
"
],
"
YYYY-MM-DD HH:mm:ss
"
);
oldData
=
formatDateStr
(
oldData
,
[
"
estHeadTime
"
],
"
YYYY-MM-DD HH:mm:ss
"
);
oldData
=
formatDateStr
(
oldData
,
[
"
estSecondTime
"
],
"
YYYY-MM-DD HH:mm:ss
"
);
this
.
twoWayTakeoffObj
=
oldData
;
},
watch
:
{
},
methods
:
{
// 异常登记
exceptionReg
()
{
this
.
dialogVisible
=
true
;
},
/** 提交 */
onSubmit
(
operateType
)
{
this
.
$refs
[
"
twoWayTakeoffForm
"
].
validate
((
valid
)
=>
{
if
(
valid
)
{
takeoffCreate
({
...
this
.
twoWayTakeoffObj
,
shipmentId
:
this
.
$attrs
.
shipmentObj
.
id
,
operateType
,
}).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
(()
=>
{
this
.
cancel
(
"
submit
"
);
});
});
}
});
},
/** 取消 */
cancel
(
type
)
{
this
.
$emit
(
"
closeDialog
"
,
type
);
},
},
};
</
script
>
<
style
lang=
"scss"
scoped
>
.message-area
{
margin
:
0
;
color
:
red
;
}
</
style
>
src/views/ecw/box/shippingSea/seaProcess.vue
View file @
23b010d7
...
@@ -40,6 +40,8 @@ import blCopyWidget from "./nodePage/blCopy.vue";
...
@@ -40,6 +40,8 @@ import blCopyWidget from "./nodePage/blCopy.vue";
import
clrDocumentWidget
from
"
./nodePage/clrDocument.vue
"
;
import
clrDocumentWidget
from
"
./nodePage/clrDocument.vue
"
;
import
arrivalWidget
from
"
./nodePage/arrival.vue
"
;
import
arrivalWidget
from
"
./nodePage/arrival.vue
"
;
import
cusClearanceWidget
from
"
./nodePage/cusClearance.vue
"
;
import
cusClearanceWidget
from
"
./nodePage/cusClearance.vue
"
;
import
twoWayTakeoffWidget
from
"
./nodePage/twoWayTakeoff.vue
"
;
import
twoWayArrivalWidget
from
"
./nodePage/twoWayArrival.vue
"
;
import
unloadingWidget
from
"
./nodePage/unloading/index.vue
"
;
import
unloadingWidget
from
"
./nodePage/unloading/index.vue
"
;
import
settlementWidget
from
"
./nodePage/settlement.vue
"
;
import
settlementWidget
from
"
./nodePage/settlement.vue
"
;
import
reviewWidget
from
"
./nodePage/review.vue
"
;
import
reviewWidget
from
"
./nodePage/review.vue
"
;
...
@@ -66,6 +68,8 @@ export default {
...
@@ -66,6 +68,8 @@ export default {
clrDocumentWidget
,
clrDocumentWidget
,
arrivalWidget
,
arrivalWidget
,
cusClearanceWidget
,
cusClearanceWidget
,
twoWayTakeoffWidget
,
twoWayArrivalWidget
,
unloadingWidget
,
unloadingWidget
,
settlementWidget
,
settlementWidget
,
reviewWidget
,
reviewWidget
,
...
...
src/views/ecw/box/shippingSea/utils.js
View file @
23b010d7
...
@@ -437,6 +437,414 @@ function seaBaseData() {
...
@@ -437,6 +437,414 @@ function seaBaseData() {
];
];
}
}
/**
* 海空联运流程
*
* @return {*}
*/
function
seaAirBaseData
()
{
return
[
[
{
title
:
"
订舱
"
,
imgSrc
:
{
start
:
require
(
"
@/assets/images/shipping/dc-start.png
"
),
end
:
require
(
"
@/assets/images/shipping/dc-end.png
"
),
},
type
:
"
booking
"
,
// 类型
dataKey
:
"
1
"
,
// 字典数据键值
/**
* 订舱状态:11、未订舱;12、已订舱
*/
voName
:
"
bookSeaInfo
"
,
// 订舱对象vo
keyName
:
"
bkStatus
"
,
status
:
{
start
:
[
11
],
wait
:
[],
end
:
[
12
],
},
},
],
[
{
title
:
"
排单
"
,
imgSrc
:
{
start
:
require
(
"
@/assets/images/shipping/yz-start.png
"
),
wait
:
require
(
"
@/assets/images/shipping/yz-wait.png
"
),
end
:
require
(
"
@/assets/images/shipping/yz-end.png
"
),
},
type
:
"
preinstall
"
,
dataKey
:
"
2
"
,
// 字典数据键值
/**
* 预装状态:21、未预装;22、预装中;23、预装审核中;24、预装审核失败;25、预装审核成功
*/
voName
:
"
preInstallInfo
"
,
keyName
:
"
prStatus
"
,
status
:
{
start
:
[
21
],
wait
:
[
22
,
23
,
24
],
end
:
[
25
],
},
},
{
title
:
"
AGENT
"
,
imgSrc
:
{
start
:
require
(
"
@/assets/images/shipping/agent-start.png
"
),
wait
:
require
(
"
@/assets/images/shipping/agent-wait.png
"
),
end
:
require
(
"
@/assets/images/shipping/agent-end.png
"
),
},
type
:
"
agent
"
,
voName
:
"
agentInfo
"
,
currStatus
:
"
start
"
,
},
],
[
{
title
:
"
理货
"
,
imgSrc
:
{
start
:
require
(
"
@/assets/images/shipping/lh-start.png
"
),
wait
:
require
(
"
@/assets/images/shipping/lh-wait.png
"
),
end
:
require
(
"
@/assets/images/shipping/lh-end.png
"
),
},
type
:
"
tally
"
,
dataKey
:
"
16
"
,
// 字典数据键值
/**
* 理货状态:2111、未理货;2112、已理货
*/
voName
:
"
tallyInfo
"
,
keyName
:
"
tyStatus
"
,
status
:
{
start
:
[
2111
],
wait
:
[],
end
:
[
2112
],
},
},
{
title
:
"
拖车
"
,
imgSrc
:
{
start
:
require
(
"
@/assets/images/shipping/tc-start.png
"
),
wait
:
require
(
"
@/assets/images/shipping/tc-wait.png
"
),
end
:
require
(
"
@/assets/images/shipping/tc-end.png
"
),
},
type
:
"
trailer
"
,
dataKey
:
"
3
"
,
// 字典数据键值
/**
* 拖车状态:31、未派车;32、已派车
*/
voName
:
"
trailerInfo
"
,
keyName
:
"
tlStatus
"
,
status
:
{
start
:
[
31
],
wait
:
[],
end
:
[
32
],
},
},
],
[
{
title
:
"
装柜
"
,
imgSrc
:
{
start
:
require
(
"
@/assets/images/shipping/zg-start.png
"
),
wait
:
require
(
"
@/assets/images/shipping/zg-wait.png
"
),
end
:
require
(
"
@/assets/images/shipping/zg-end.png
"
),
},
type
:
"
cabinet
"
,
dataKey
:
"
4
"
,
// 字典数据键值
/**
* 装柜状态:41、未装柜;42、装柜中;43、已装柜、待封柜;44、封柜审核中;45、封柜审核失败;46、封柜审核成功;47、已封柜,待出仓
*/
voName
:
"
cabinetInfo
"
,
keyName
:
"
ldStatus
"
,
status
:
{
start
:
[
41
],
wait
:
[
42
,
43
,
44
,
45
,
46
],
end
:
[
47
],
},
},
],
[
{
title
:
"
报关
"
,
imgSrc
:
{
start
:
require
(
"
@/assets/images/shipping/bg-start.png
"
),
wait
:
require
(
"
@/assets/images/shipping/bg-wait.png
"
),
end
:
require
(
"
@/assets/images/shipping/bg-end.png
"
),
},
type
:
"
cusDeclaration
"
,
dataKey
:
"
5
"
,
// 字典数据键值
/**
*报关状态:51、未报关;52、报关中;53、已报关
*/
voName
:
"
customsInfo
"
,
keyName
:
"
dcStatus
"
,
status
:
{
start
:
[
51
],
wait
:
[
52
],
end
:
[
53
],
},
},
{
title
:
"
配船
"
,
imgSrc
:
{
start
:
require
(
"
@/assets/images/shipping/pc-start.png
"
),
wait
:
require
(
"
@/assets/images/shipping/pc-wait.png
"
),
end
:
require
(
"
@/assets/images/shipping/pc-end.png
"
),
},
type
:
"
ship
"
,
dataKey
:
"
6
"
,
// 字典数据键值
/**
* 配船状态:61、未配船;62、已配船
*/
voName
:
"
shipConfigInfo
"
,
keyName
:
"
saStatus
"
,
status
:
{
start
:
[
61
],
wait
:
[],
end
:
[
62
],
},
},
{
title
:
"
提单补料
"
,
imgSrc
:
{
start
:
require
(
"
@/assets/images/shipping/tdcl-start.png
"
),
wait
:
require
(
"
@/assets/images/shipping/tdcl-wait.png
"
),
end
:
require
(
"
@/assets/images/shipping/tdcl-end.png
"
),
},
type
:
"
subMaterial
"
,
dataKey
:
"
7
"
,
// 字典数据键值
/**
* 提单补料状态:71、未提单补料;72、已提单补料
*/
voName
:
"
ladingBillInfo
"
,
keyName
:
"
blStatus
"
,
status
:
{
start
:
[
71
],
wait
:
[],
end
:
[
72
],
},
},
],
[
{
title
:
"
驳船
"
,
imgSrc
:
{
start
:
require
(
"
@/assets/images/shipping/bc-start.png
"
),
wait
:
require
(
"
@/assets/images/shipping/bc-wait.png
"
),
end
:
require
(
"
@/assets/images/shipping/bc-end.png
"
),
},
type
:
"
barge
"
,
dataKey
:
"
8
"
,
// 字典数据键值
/**
* 驳船状态:81、未驳船;82、已驳船
*/
voName
:
"
bargeInfo
"
,
keyName
:
"
bgStatus
"
,
status
:
{
start
:
[
81
],
wait
:
[],
end
:
[
82
],
},
},
],
[
{
title
:
"
起运
"
,
imgSrc
:
{
start
:
require
(
"
@/assets/images/shipping/qy-start.png
"
),
wait
:
require
(
"
@/assets/images/shipping/qy-wait.png
"
),
end
:
require
(
"
@/assets/images/shipping/qy-end.png
"
),
},
type
:
"
departure
"
,
dataKey
:
"
9
"
,
// 字典数据键值
/**
* 起运状态:91、未起运;92、已起运
*/
voName
:
"
shippingInfo
"
,
keyName
:
"
dtStatus
"
,
status
:
{
start
:
[
91
],
wait
:
[],
end
:
[
92
],
},
},
],
[
{
title
:
"
提单Copy
"
,
imgSrc
:
{
start
:
require
(
"
@/assets/images/shipping/tdcopy-start.png
"
),
wait
:
require
(
"
@/assets/images/shipping/tdcopy-wait.png
"
),
end
:
require
(
"
@/assets/images/shipping/tdcopy-end.png
"
),
},
type
:
"
blCopy
"
,
dataKey
:
"
10
"
,
// 字典数据键值
/**
* 提单COPY状态:101、未上传;102、已上传
*/
voName
:
"
ladingCopyInfo
"
,
keyName
:
"
cpStatus
"
,
status
:
{
start
:
[
101
],
wait
:
[],
end
:
[
102
],
},
},
{
type
:
"
clrDocument
"
,
imgSrc
:
{
start
:
require
(
"
@/assets/images/shipping/qg-start.png
"
),
wait
:
require
(
"
@/assets/images/shipping/qg-wait.png
"
),
end
:
require
(
"
@/assets/images/shipping/qg-end.png
"
),
},
title
:
"
清关文件
"
,
dataKey
:
"
11
"
,
// 字典数据键值
/**
* 清关文件状态:111、未清关文件;112、已清关文件
*/
voName
:
"
clearanceDocInfo
"
,
keyName
:
"
cdStatus
"
,
status
:
{
start
:
[
111
],
wait
:
[],
end
:
[
112
],
},
},
],
[
{
title
:
"
到港
"
,
imgSrc
:
{
start
:
require
(
"
@/assets/images/shipping/dg-start.png
"
),
wait
:
require
(
"
@/assets/images/shipping/dg-wait.png
"
),
end
:
require
(
"
@/assets/images/shipping/dg-end.png
"
),
},
type
:
"
arrival
"
,
dataKey
:
"
12
"
,
// 字典数据键值
/**
* 到港状态:121、未到港;112、已到港
*/
voName
:
"
arrivalInfo
"
,
keyName
:
"
apStatus
"
,
status
:
{
start
:
[
121
],
wait
:
[],
end
:
[
122
],
},
},
],
[
{
title
:
"
清关
"
,
imgSrc
:
{
start
:
require
(
"
@/assets/images/shipping/qg-start.png
"
),
wait
:
require
(
"
@/assets/images/shipping/qg-wait.png
"
),
end
:
require
(
"
@/assets/images/shipping/qg-end.png
"
),
},
type
:
"
cusClearance
"
,
dataKey
:
"
13
"
,
// 字典数据键值
/**
* 清关状态:131、未清关;132、已清关
*/
voName
:
"
clearanceInfo
"
,
keyName
:
"
clStatus
"
,
status
:
{
start
:
[
131
],
wait
:
[],
end
:
[
132
],
},
},
],
[
{
title
:
"
二程起飞
"
,
imgSrc
:
{
start
:
require
(
"
@/assets/images/shipping/ecqf-start.png
"
),
wait
:
require
(
"
@/assets/images/shipping/ecqf-wait.png
"
),
end
:
require
(
"
@/assets/images/shipping/ecqf-end.png
"
),
},
type
:
"
twoWayTakeoff
"
,
dataKey
:
"
14
"
,
// 字典数据键值
/**
* 起飞状态:141、未起飞;142、已起飞
*/
voName
:
"
takeOffInfo
"
,
keyName
:
"
stkStatus
"
,
status
:
{
start
:
[
141
],
wait
:
[],
end
:
[
142
],
},
},
],
[
{
title
:
"
二程到港
"
,
imgSrc
:
{
start
:
require
(
"
@/assets/images/shipping/ecdg-start.png
"
),
wait
:
require
(
"
@/assets/images/shipping/ecdg-wait.png
"
),
end
:
require
(
"
@/assets/images/shipping/ecdg-end.png
"
),
},
type
:
"
twoWayArrival
"
,
dataKey
:
"
15
"
,
// 字典数据键值
/**
* 清关状态:131、未清关;132、已清关
*/
voName
:
"
arrivalInfo
"
,
keyName
:
"
sapStatus
"
,
status
:
{
start
:
[
151
],
wait
:
[],
end
:
[
152
],
},
},
],
[
{
title
:
"
卸柜
"
,
imgSrc
:
{
start
:
require
(
"
@/assets/images/shipping/xg-start.png
"
),
wait
:
require
(
"
@/assets/images/shipping/xg-wait.png
"
),
end
:
require
(
"
@/assets/images/shipping/xg-end.png
"
),
},
type
:
"
unloading
"
,
dataKey
:
"
14
"
,
// 字典数据键值
/**
* 卸柜状态:181、未卸柜;182、卸柜中;183、卸柜审核中;184、卸柜审核失败;185、卸柜审核成功;186、已卸柜
*/
voName
:
"
cabinetUnloadInfo
"
,
keyName
:
"
ulStatus
"
,
status
:
{
start
:
[
181
],
wait
:
[
182
,
183
,
184
,
185
],
end
:
[
186
],
},
},
],
[
{
title
:
"
结算
"
,
imgSrc
:
{
start
:
require
(
"
@/assets/images/shipping/js-start.png
"
),
wait
:
require
(
"
@/assets/images/shipping/js-wait.png
"
),
end
:
require
(
"
@/assets/images/shipping/js-end.png
"
),
},
type
:
"
settlement
"
,
dataKey
:
"
15
"
,
// 字典数据键值
/**
* 结算状态:191、未结算;192、结算中;193、已结算
*/
voName
:
"
settlementInfo
"
,
keyName
:
"
slStatus
"
,
status
:
{
start
:
[
191
],
wait
:
[
192
],
end
:
[
193
],
},
},
],
];
}
/**
/**
* 详情显示列
* 详情显示列
*
*
...
@@ -1047,6 +1455,7 @@ export {
...
@@ -1047,6 +1455,7 @@ export {
getColmnMapping,
getColmnMapping,
getSeaStatus,
getSeaStatus,
seaBaseData,
seaBaseData,
seaAirBaseData,
constantDict,
constantDict,
formatStringNumber,
formatStringNumber,
formatDateStr,
formatDateStr,
...
...
src/views/ecw/box/shippingSeaAir/shippingSeaAir.vue
0 → 100644
View file @
23b010d7
<
template
>
<div>
<el-row
type=
"flex"
style=
"margin-top: 15px; margin-bottom: 15px"
justify=
"center"
>
<el-col
:xs=
"24"
:sm=
"24"
:md=
"24"
:lg=
"24"
:xl=
"19"
>
<div
style=
"display: flex; justify-content: space-between;align-items: flex-end;"
>
<h2>
海空联运出货操作
</h2>
</div>
<!-- 信息 -->
<el-card
style=
"margin-top: 15px"
>
<el-descriptions
:column=
"5"
border
>
<el-descriptions-item
label=
"自编号"
>
{{
shipmentObj
.
selfNo
}}
</el-descriptions-item>
<el-descriptions-item
label=
"出货渠道"
>
{{
channelName
(
shipmentObj
.
shippingChannelId
)
}}
</el-descriptions-item>
<el-descriptions-item
label=
"始发地"
>
{{
importCityName
(
shipmentObj
.
startWarehouseId
)
}}
</el-descriptions-item>
<el-descriptions-item
label=
"目的地"
>
{{
importCityName
(
shipmentObj
.
destWarehouseId
)
}}
</el-descriptions-item>
<el-descriptions-item
label=
"状态"
>
{{
statusLabel
}}
</el-descriptions-item>
</el-descriptions>
</el-card>
<!-- 海运流程图 -->
<seaProcess
:seaBaseData=
"seaAirBaseData"
:shipmentObj=
"shipmentObj"
:allSupplier=
"allSupplier"
:allDocks=
"allDocks"
:allUsers=
"allUsers"
:warehouseList=
"warehouseList"
@
getBoxInfo=
"getBoxInfo"
/>
<!-- 海运步骤图 -->
<seaStepDetail
:seaBaseData=
"seaAirBaseData"
:shipmentObj=
"shipmentObj"
:allSupplier=
"allSupplier"
:allDocks=
"allDocks"
:allUsers=
"allUsers"
:warehouseList=
"warehouseList"
/>
</el-col>
</el-row>
</div>
</
template
>
<
script
>
import
seaProcess
from
"
../shippingSea/seaProcess.vue
"
;
import
seaStepDetail
from
"
../shippingSea/seaStepDetail.vue
"
;
import
{
getbox
}
from
"
@/api/ecw/box
"
;
import
{
getWarehouseList
}
from
"
@/api/ecw/warehouse
"
;
import
{
getSupplierPage
}
from
"
@/api/ecw/supplier
"
;
import
{
getChannelList
}
from
'
@/api/ecw/channel
'
;
import
{
getDockPage
}
from
"
@/api/ecw/dock
"
;
import
{
listUser
}
from
"
@/api/system/user
"
;
import
{
getSeaStatus
,
getStatusName
,
seaAirBaseData
}
from
"
../shippingSea/utils
"
;
import
{
arrryToKeyedObjectBy
}
from
'
@/utils/index
'
/**
* 海运操作主页面
*/
export
default
{
name
:
"
shippingSea
"
,
components
:
{
seaProcess
,
seaStepDetail
,
},
props
:
{
shipmentId
:
String
,
},
data
()
{
return
{
shipmentObj
:
{},
warehouseList
:
[],
// 供应商
allSupplier
:
[],
// 码头
allDocks
:
[],
// 用户
allUsers
:
[],
// 流程图节点
seaAirBaseData
:
seaAirBaseData
(),
// 状态
statusLabel
:
""
,
channelList
:[]
,
// 渠道
};
},
computed
:
{
// 渠道用id做键值
keyedChannel
(){
return
arrryToKeyedObjectBy
(
this
.
channelList
,
'
channelId
'
)
},
// 根据渠道id获取渠道名
channelName
(){
return
id
=>
{
return
this
.
keyedChannel
[
id
]
?
this
.
keyedChannel
[
id
].
nameZh
:
null
}
},
},
created
()
{
this
.
getBoxInfo
();
// 仓库
getWarehouseList
().
then
((
r
)
=>
{
this
.
warehouseList
=
r
.
data
;
});
// 供应商
getSupplierPage
({
pageNo
:
"
1
"
,
pageSize
:
"
10000
"
}).
then
((
res
)
=>
{
const
{
data
}
=
res
;
this
.
allSupplier
=
data
.
list
.
map
((
item
)
=>
{
if
(
item
.
companyType
)
{
item
.
companyTypes
=
item
.
companyType
.
split
(
"
,
"
);
}
return
item
;
});
});
// 码头
getDockPage
({
pageNo
:
"
1
"
,
pageSize
:
"
10000
"
}).
then
((
res
)
=>
{
const
{
data
}
=
res
;
this
.
allDocks
=
data
.
list
;
});
// 用户
listUser
({
pageNo
:
"
1
"
,
pageSize
:
"
10000
"
}).
then
((
res
)
=>
{
const
{
data
}
=
res
;
this
.
allUsers
=
data
.
list
??
[];
});
getChannelList
().
then
(
res
=>
this
.
channelList
=
res
.
data
)
},
methods
:
{
/* 获取仓库 */
importCityName
(
id
)
{
var
arr
=
this
.
warehouseList
.
filter
((
item
)
=>
item
.
id
==
id
);
return
arr
.
length
>
0
?
arr
[
0
].
titleZh
:
"
无
"
;
},
// 出货
getBoxInfo
()
{
getbox
(
this
.
shipmentId
).
then
((
res
)
=>
{
const
{
data
}
=
res
;
this
.
shipmentObj
=
data
??
{};
});
},
},
watch
:
{
/* 监听发货对象 */
shipmentObj
(
val
)
{
this
.
statusLabel
=
getStatusName
(
getSeaStatus
(
val
));
},
},
};
</
script
>
<
style
lang=
"scss"
>
// 海运操作统一弹窗样式
.shipping-dialog
{
.el-dialog__body
{
height
:
calc
(
100%
-
54px
);
>
:first-child
{
height
:
100%
;
}
}
// 页面内元素弹窗form控件宽度设置
.el-form-item__content
{
>
div
:not
(
.el-input-number
)
{
width
:
100%
;
}
}
.operate-button
{
padding-top
:
10px
;
text-align
:
center
;
}
.two-element
{
.el-form-item__content
{
display
:
flex
;
>
:last-child
{
margin-left
:
10px
;
}
}
}
}
</
style
>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment