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
d18207b2
Commit
d18207b2
authored
Aug 06, 2022
by
huyf
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/dev' into dev
parents
37c62cdf
56c0092b
Changes
45
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
45 changed files
with
1916 additions
and
574 deletions
+1916
-574
boxSea.js
src/api/ecw/boxSea.js
+19
-0
index.vue
src/components/CustomerContactSelector/index.vue
+10
-2
index.vue
src/components/CustomerContactsSelector/index.vue
+124
-0
index.vue
src/components/SupplierSelector/index.vue
+67
-0
index.vue
src/components/WorkFlow/index.vue
+84
-0
config.js
src/components/generator/config.js
+0
-26
dict.js
src/utils/dict.js
+2
-0
copy.vue
src/views/bpm/task/copy.vue
+2
-4
arrival.vue
src/views/ecw/box/shippingSea/nodePage/arrival.vue
+11
-8
blCopy.vue
src/views/ecw/box/shippingSea/nodePage/blCopy.vue
+7
-4
booking.vue
src/views/ecw/box/shippingSea/nodePage/booking.vue
+17
-11
index.vue
src/views/ecw/box/shippingSea/nodePage/cabinet/index.vue
+21
-10
startPacking.vue
...ews/ecw/box/shippingSea/nodePage/cabinet/startPacking.vue
+147
-47
clrDocument.vue
src/views/ecw/box/shippingSea/nodePage/clrDocument.vue
+14
-10
cusClearance.vue
src/views/ecw/box/shippingSea/nodePage/cusClearance.vue
+2
-1
cusDeclaration.vue
src/views/ecw/box/shippingSea/nodePage/cusDeclaration.vue
+4
-4
departure.vue
src/views/ecw/box/shippingSea/nodePage/departure.vue
+2
-1
preinstallReview.vue
src/views/ecw/box/shippingSea/nodePage/preinstallReview.vue
+3
-3
ship.vue
src/views/ecw/box/shippingSea/nodePage/ship.vue
+1
-1
subMaterial.vue
src/views/ecw/box/shippingSea/nodePage/subMaterial.vue
+5
-13
index.vue
src/views/ecw/box/shippingSea/nodePage/unloading/index.vue
+2
-2
seaStepDetail.vue
src/views/ecw/box/shippingSea/seaStepDetail.vue
+10
-9
shippingSea.vue
src/views/ecw/box/shippingSea/shippingSea.vue
+1
-1
utils.js
src/views/ecw/box/shippingSea/utils.js
+318
-305
edit.vue
src/views/ecw/coupon/edit.vue
+7
-6
index.vue
src/views/ecw/coupon/index.vue
+6
-1
edit.vue
src/views/ecw/customer/edit.vue
+21
-4
addAssociatedOrder.vue
src/views/ecw/order/addAssociatedOrder.vue
+7
-1
associatedOrder.vue
src/views/ecw/order/associatedOrder.vue
+3
-3
batchSingleApplication.vue
src/views/ecw/order/batchSingleApplication.vue
+15
-17
cargoControl.vue
src/views/ecw/order/cargoControl.vue
+267
-0
cargoControlDetail.vue
src/views/ecw/order/cargoControlDetail.vue
+148
-0
CargoControlEdit.vue
src/views/ecw/order/components/CargoControlEdit.vue
+113
-0
Release.vue
src/views/ecw/order/components/Release.vue
+148
-0
ReleaseAgreement.vue
src/views/ecw/order/components/ReleaseAgreement.vue
+21
-0
Transfer.vue
src/views/ecw/order/components/Transfer.vue
+82
-0
TransferAgreement.vue
src/views/ecw/order/components/TransferAgreement.vue
+82
-0
detail.vue
src/views/ecw/order/detail.vue
+7
-7
edit.vue
src/views/ecw/order/edit.vue
+63
-34
feeApplication.vue
src/views/ecw/order/feeApplication.vue
+8
-12
withdrawal.vue
src/views/ecw/order/withdrawal.vue
+7
-5
edit.vue
src/views/ecw/productPrice/edit.vue
+25
-14
index.vue
src/views/ecw/productType/index.vue
+3
-3
index.vue
src/views/index.vue
+9
-4
index.vue
src/views/system/dict/index.vue
+1
-1
No files found.
src/api/ecw/boxSea.js
View file @
d18207b2
...
...
@@ -426,6 +426,25 @@ export function createGoods(data) {
/***************************** 预装 end **********************************/
/***************************** 装柜 start **********************************/
/**
* 获得装柜部分列表
*
* @export
* @param {*} params
* @return {*}
*/
export
function
loadSecGoodsList
(
params
)
{
return
request
({
url
:
"
/ecw/box-preload-goods/loadSecGoodsList
"
,
method
:
"
get
"
,
params
,
});
}
/***************************** 装柜 end **********************************/
/**
* 服务提示消息回调
*
...
...
src/components/CustomerContactSelector/index.vue
View file @
d18207b2
...
...
@@ -11,7 +11,7 @@
<el-option
v-for=
"(item, index) in list"
:key=
"item.id"
:label=
"`$
{item.contactsName}
(${item.customerName})
`"
:label=
"`$
{item.contactsName}`"
:value="index">
</el-option>
</el-select>
...
...
@@ -50,7 +50,15 @@ export default {
let
index
=
this
.
list
.
findIndex
(
item
=>
item
.
customerContactsId
==
this
.
value
)
if
(
index
<
0
){
getCustomerContacts
(
this
.
value
).
then
(
res
=>
{
this
.
list
.
unshift
(
res
.
data
)
this
.
list
.
unshift
({
contactsName
:
res
.
data
.
name
,
customerName
:
res
.
data
.
customerName
,
customerContactsId
:
res
.
data
.
id
,
customerId
:
res
.
data
.
customerId
,
phoneNew
:
res
.
data
.
phoneNew
,
email
:
res
.
data
.
email
})
this
.
index
=
0
})
}
...
...
src/components/CustomerContactsSelector/index.vue
0 → 100644
View file @
d18207b2
<
template
>
<el-row
class=
""
:gutter=
"10"
>
<el-col
:span=
"10"
>
<el-card>
<div
slot=
"header"
class=
"header"
>
<el-input
v-model=
"queryParams.searchKey"
placeholder=
"用户名/手机/邮箱"
style=
"width:200px"
/>
<!--
<dict-selector
:type=
"DICT_TYPE.USER_TYPE"
v-model=
"queryParams.customerType"
style=
"width:100px"
/>
-->
<el-button
type=
"primary"
@
click=
"reLoad"
>
搜索
</el-button>
</div>
<div
class=
"list"
>
<div
class=
"item"
v-for=
"item in list"
:key=
"item.customerContactsId"
>
<el-link
class=
"el-icon-plus"
@
click=
"choose(item)"
:disabled=
"selectedIds.indexOf(item.customerContactsId) > -1"
/>
{{
item
.
customerName
}}
-
{{
item
.
contactsName
}}
(
{{
item
.
areaCode
}}
{{
item
.
phoneNew
}}
)
</div>
</div>
</el-card>
</el-col>
<el-col
:span=
"10"
>
<el-card>
<div
slot=
"header"
class=
"header"
>
已选客户
</div>
<div
class=
"list"
>
<div
class=
"item"
v-for=
"item in choosedList"
:key=
"item.customerContactsId"
>
<el-link
class=
"el-icon-delete"
@
click=
"remove(item)"
/>
{{
item
.
customerName
}}
-
{{
item
.
contactsName
}}
(
{{
item
.
areaCode
}}
{{
item
.
phoneNew
}}
)
</div>
</div>
</el-card>
</el-col>
</el-row>
</
template
>
<
script
>
import
{
getCustomerContactsSelect
,
getCustomerContacts
}
from
'
@/api/ecw/customerContacts
'
export
default
{
props
:{
value
:
{
type
:
Array
,
default
:
()
=>
{
return
[]
}
}
},
data
(){
return
{
list
:[],
queryParams
:{
page
:
1
,
searchKey
:
null
,
// level: null
},
choosedList
:[]
}
},
computed
:{
selectedIds
(){
let
arr
=
[]
this
.
choosedList
.
forEach
(
item
=>
{
arr
.
push
(
item
.
customerContactsId
)
})
return
arr
}
},
watch
:{
selectedIds
(
val
){
this
.
$emit
(
'
input
'
,
val
)
},
value
(
val
){
if
(
Array
.
from
(
new
Set
(
val
)).
sort
().
join
(
'
,
'
)
!=
Array
.
from
(
new
Set
(
this
.
selectedIds
)).
sort
().
join
(
'
,
'
)){
this
.
getChoosedList
()
}
}
},
created
(){
/* if(this.value && this.value.length){
this.getChoosedList()
} */
this
.
reLoad
()
},
methods
:{
getChoosedList
(){
if
(
!
this
.
value
||
!
this
.
value
.
length
){
return
}
getCustomerContactsSelect
({
ids
:
this
.
value
.
join
(
'
,
'
)})
.
then
(
res
=>
{
this
.
$set
(
this
,
'
choosedList
'
,
res
.
data
)
})
},
reLoad
(){
this
.
queryParams
.
page
=
1
this
.
list
=
[]
this
.
getList
()
},
getList
(){
getCustomerContactsSelect
(
this
.
queryParams
).
then
(
res
=>
{
this
.
list
=
res
.
data
})
},
choose
(
item
){
this
.
choosedList
.
push
(
item
)
},
remove
(
item
){
this
.
choosedList
.
forEach
((
item
,
index
)
=>
{
if
(
item
.
customerContactsId
==
item
.
customerContactsId
)
this
.
choosedList
.
splice
(
index
,
1
)
})
}
}
}
</
script
>
<
style
scoped
lang=
"scss"
>
.header
{
>
div
{
margin-right
:
5px
;
}
}
.list
{
height
:
200px
;
border
:
1px
solid
#ccc
;
overflow-y
:
auto
;
overflow-x
:
hidden
;
padding
:
0
10px
;
}
</
style
>
\ No newline at end of file
src/components/SupplierSelector/index.vue
0 → 100644
View file @
d18207b2
<
template
>
<el-select
v-model=
"index"
filterable
clearable
remote
reserve-keyword
placeholder=
"请输入关键词"
:remote-method=
"remoteMethod"
:loading=
"loading"
>
<el-option
v-for=
"(item, index) in list"
:key=
"item.id"
:label=
"`$
{item.name}(${item.number})`"
:value="index">
</el-option>
</el-select>
</
template
>
<
script
>
import
{
getSupplier
,
getSupplierPage
}
from
'
@/api/ecw/supplier
'
// TODO 接口暂不支持关键词搜索,待接口支持后完善
export
default
{
props
:{
productType
:
[
String
,
Number
],
value
:
[
String
,
Number
]
},
data
(){
return
{
index
:
null
,
list
:[],
loading
:
false
}
},
watch
:{
index
(
val
){
this
.
$emit
(
'
input
'
,
val
!==
null
?
this
.
list
[
val
].
id
:
null
)
this
.
$emit
(
'
change
'
,
val
!==
null
?
this
.
list
[
val
]:
null
)
},
value
(
val
){
this
.
init
()
}
},
created
(){
this
.
init
()
},
methods
:{
init
(){
if
(
!
this
.
value
)
return
let
index
=
this
.
list
.
findIndex
(
item
=>
item
.
id
==
this
.
value
)
if
(
index
<
0
){
getSupplier
(
this
.
value
).
then
(
res
=>
{
this
.
list
.
unshift
(
res
.
data
)
this
.
index
=
0
})
}
},
remoteMethod
(
keyword
){
let
params
=
{}
params
.
searchKey
=
keyword
this
.
loading
=
true
getSupplierPage
(
params
)
.
then
(
res
=>
this
.
list
=
res
.
data
)
.
finally
(()
=>
this
.
loading
=
false
)
}
}
}
</
script
>
\ No newline at end of file
src/components/WorkFlow/index.vue
0 → 100644
View file @
d18207b2
<
template
>
<div>
<my-process-viewer
ref=
"processViewer"
:value=
"bpmnXML"
:prefix=
"prefix"
:activityData=
"activityData"
:processInstanceData=
"processInstanceData"
:taskData=
"taskData"
style=
"height:500px; margin-bottom:10px"
/>
<el-form
label-position=
"left"
label-width=
"100px"
>
<el-form-item
label=
"抄送"
>
<el-select
v-model=
"valueSync"
multiple
placeholder=
"请选择抄送人"
style=
"width:100%"
>
<el-option
v-for=
"item in users"
:key=
"item.id"
:label=
"item.nickname"
:value=
"item.id"
>
</el-option>
</el-select>
</el-form-item>
</el-form>
</div>
</
template
>
<
script
>
import
{
getProcessDefinitionBpmnXMLByKey
}
from
"
@/api/bpm/definition
"
import
{
listSimpleUsers
}
from
'
@/api/system/user
'
export
default
{
props
:{
xmlkey
:
String
,
// 流程标识
value
:
Array
,
prefix
:
{
// 使用哪个引擎
type
:
String
,
default
:
"
camunda
"
,
},
activityData
:
{
// 活动的数据。传递时,可高亮流程
type
:
Array
,
default
:
()
=>
[],
},
processInstanceData
:
{
// 流程实例的数据。传递时,可展示流程发起人等信息
type
:
Object
,
},
taskData
:
{
// 任务实例的数据。传递时,可展示 UserTask 审核相关的信息
type
:
Array
,
default
:
()
=>
[],
}
},
data
(){
return
{
valueSync
:
[],
bpmnXML
:
null
,
users
:
[],
selectedUserIds
:[]
}
},
watch
:{
value
(){
this
.
valueSync
=
this
.
value
||
[]
},
valueSync
(
val
){
this
.
$emit
(
'
input
'
,
val
)
},
},
created
(){
if
(
this
.
value
){
this
.
valueSync
=
this
.
value
}
listSimpleUsers
().
then
(
res
=>
{
this
.
users
=
res
.
data
})
this
.
loadData
()
},
methods
:{
loadData
(){
getProcessDefinitionBpmnXMLByKey
(
this
.
xmlkey
).
then
(
response
=>
{
this
.
bpmnXML
=
response
.
data
})
}
}
}
</
script
>
\ No newline at end of file
src/components/generator/config.js
View file @
d18207b2
...
...
@@ -14,32 +14,6 @@ export const formConf = {
// 输入型组件 【左面板】
export
const
inputComponents
=
[
{
// 组件的自定义配置
__config__
:
{
label
:
'
表格输入
'
,
labelWidth
:
null
,
showLabel
:
true
,
changeTag
:
true
,
tag
:
'
table-form
'
,
tagIcon
:
'
input
'
,
defaultValue
:
[],
required
:
false
,
layout
:
'
colFormItem
'
,
span
:
24
,
document
:
'
https://element.eleme.cn/#/zh-CN/component/input
'
,
// 正则校验规则
regList
:
[]
},
// 组件的插槽属性
__slot__
:
{
prepend
:
''
,
append
:
''
},
// 其余的为可直接写在组件标签上的属性
title
:
'
表格标题
'
,
style
:
{
width
:
'
100%
'
},
},
{
// 组件的自定义配置
__config__
:
{
...
...
src/utils/dict.js
View file @
d18207b2
...
...
@@ -101,6 +101,8 @@ export const DICT_TYPE = {
ECW_HARVEST_METHOD
:
'
harvest_method
'
,
// 收货方式
ECW_PAY_ADVANCE
:
'
pay_advance
'
,
// 是否预付
ECW_BEGINTIME_TYPE_ENDTIME
:
'
begintime_type_endtime
'
,
// 时间筛选字段(订单)
ECW_CUSTOM_DRAWEE
:
'
custom_drawee
'
,
// 自定义付款人费用类型
ECW_IS_DRAFT
:
'
is_draft
'
,
// 草稿发布状态
//--------ecw---------
CUSTOMER_STATUS
:
'
customer_status
'
,
CUSTOMER_SOURCE
:
'
customer_source
'
,
...
...
src/views/bpm/task/copy.vue
View file @
d18207b2
<
template
>
<div
class=
"app-container"
>
<doc-alert
title=
"工作流"
url=
"https://doc.iocoder.cn/bpm"
/>
<!-- 搜索工作栏 -->
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
v-show=
"showSearch"
label-width=
"68px"
>
<el-form-item
label=
"流程名"
prop=
"processName"
>
...
...
@@ -20,8 +18,8 @@
<!-- 列表 -->
<el-table
v-loading=
"loading"
:data=
"list"
>
<el-table-column
label=
"任务编号"
align=
"center"
prop=
"taskId"
width=
"320"
/>
<el-table-column
label=
"
任务名称
"
align=
"center"
prop=
"title"
/>
<el-table-column
label=
"
所属流程
"
align=
"center"
prop=
"processName"
/>
<el-table-column
label=
"
流程分类
"
align=
"center"
prop=
"title"
/>
<el-table-column
label=
"
流程名称
"
align=
"center"
prop=
"processName"
/>
<el-table-column
label=
"流程发起人"
align=
"center"
prop=
"originatorName"
/>
<el-table-column
label=
"创建时间"
align=
"center"
prop=
"createTime"
width=
"180"
>
<template
slot-scope=
"scope"
>
...
...
src/views/ecw/box/shippingSea/nodePage/arrival.vue
View file @
d18207b2
...
...
@@ -61,11 +61,12 @@ export default {
created
()
{
const
voName
=
this
.
$attrs
.
currNode
.
voName
;
let
oldData
=
{
...
this
.
$attrs
.
shipmentObj
[
voName
]
};
oldData
=
formatDateStr
(
oldData
,
[
"
apRealTime
"
,
"
apConfirmTime
"
,
"
apUnloadPortTime
"
,
]);
oldData
=
formatDateStr
(
oldData
,
[
"
apRealTime
"
,
"
apConfirmTime
"
],
"
YYYY-MM-DD HH:mm:ss
"
);
oldData
=
formatDateStr
(
oldData
,
[
"
apUnloadPortTime
"
]);
this
.
arrivalObj
=
oldData
;
},
watch
:
{
...
...
@@ -77,9 +78,11 @@ export default {
methods
:
{
// 获取预计到港时间
getExpectedTime
()
{
return
dayjs
(
this
.
$attrs
.
shipmentObj
.
shippingInfo
.
dtEstArrivalTime
).
format
(
"
YYYY-MM-DD
"
);
const
{
shippingInfo
}
=
this
.
$attrs
.
shipmentObj
;
if
(
shippingInfo
)
{
return
dayjs
(
shippingInfo
.
dtEstArrivalTime
).
format
(
"
YYYY-MM-DD
"
);
}
return
null
;
},
// 时间比较
compareDate
(
expectedTime
,
apConfirmTime
)
{
...
...
src/views/ecw/box/shippingSea/nodePage/blCopy.vue
View file @
d18207b2
...
...
@@ -2,9 +2,7 @@
<div>
<el-form
ref=
"blCopyForm"
:model=
"blCopyObj"
label-width=
"120px"
>
<el-form-item
label=
"提单Copy"
>
<el-upload
action=
""
:file-list=
"blCopyObj.copyUrl"
>
<el-button
size=
"small"
type=
"primary"
>
选择文件
</el-button>
</el-upload>
<FileUpload
:limit=
"1"
:isShowTip=
false
v-model=
"blCopyObj.copyUrl"
:fileType=
"fileType"
/>
</el-form-item>
</el-form>
<el-row
class=
"operate-button"
>
...
...
@@ -17,23 +15,28 @@
<
script
>
import
{
ladingCopyCreate
,
serviceMsg
}
from
"
@/api/ecw/boxSea
"
;
import
FileUpload
from
"
@/components/FileUpload
"
;
import
{
fileTypes
}
from
"
../utils
"
;
/**
* 提单copy
*/
export
default
{
name
:
"
blCopy
"
,
inheritAttrs
:
false
,
components
:
{
FileUpload
},
data
()
{
return
{
// 提单copy对象
blCopyObj
:
{},
// 文件格式
fileType
:
fileTypes
,
};
},
created
()
{
const
voName
=
this
.
$attrs
.
currNode
.
voName
;
let
oldData
=
{
...
this
.
$attrs
.
shipmentObj
[
voName
]
};
this
.
blCopyObj
=
oldData
;
this
.
blCopyObj
.
copyUrl
=
[];
},
methods
:
{
/** 提交 */
...
...
src/views/ecw/box/shippingSea/nodePage/booking.vue
View file @
d18207b2
...
...
@@ -8,16 +8,16 @@
<supplierSelect
v-model=
"bookingObj.shipCompanyType"
:companyType=
"'9'"
placeholder=
"请选择船公司类型"
:allSupplier=
"this.$attrs.allSupplier"
/>
</el-form-item>
<el-form-item
label=
"驳船港"
>
<dockSelect
v-model=
"bookingObj.bargePort"
placeholder=
"请选择驳船港"
:allDocks=
"this.$attrs.allDocks"
/>
<dockSelect
v-model=
"bookingObj.bargePort
Id
"
placeholder=
"请选择驳船港"
:allDocks=
"this.$attrs.allDocks"
/>
</el-form-item>
<el-form-item
label=
"大船港"
>
<dockSelect
v-model=
"bookingObj.bigPort"
placeholder=
"请选择大船港"
:allDocks=
"this.$attrs.allDocks"
/>
<dockSelect
v-model=
"bookingObj.bigPort
Id
"
placeholder=
"请选择大船港"
:allDocks=
"this.$attrs.allDocks"
/>
</el-form-item>
<el-form-item
label=
"目的港"
>
<dockSelect
v-model=
"bookingObj.destPort"
placeholder=
"请选择目的港"
:allDocks=
"this.$attrs.allDocks"
/>
<dockSelect
v-model=
"bookingObj.destPort
Id
"
placeholder=
"请选择目的港"
:allDocks=
"this.$attrs.allDocks"
/>
</el-form-item>
<el-form-item
label=
"订舱公司"
>
<supplierSelect
v-model=
"bookingObj.spaceCompany"
:companyType=
"'1'"
placeholder=
"请选择订舱公司"
:allSupplier=
"this.$attrs.allSupplier"
/>
<supplierSelect
v-model=
"bookingObj.spaceCompany
Id
"
:companyType=
"'1'"
placeholder=
"请选择订舱公司"
:allSupplier=
"this.$attrs.allSupplier"
/>
</el-form-item>
<el-form-item
label=
"预计驳船时间"
prop=
"bargeTime"
>
<el-date-picker
type=
"date"
placeholder=
"请选择日期"
value-format=
"yyyy-MM-dd"
v-model=
"bookingObj.bargeTime"
></el-date-picker>
...
...
@@ -31,7 +31,7 @@
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"通知人"
label-width=
"80px"
>
<userSelect
v-model=
"bookingObj.
feedTimePerson1
"
placeholder=
"请选择通知人"
:allUsers=
"this.$attrs.allUsers"
/>
<userSelect
v-model=
"bookingObj.
sailNotifyUser
"
placeholder=
"请选择通知人"
:allUsers=
"this.$attrs.allUsers"
/>
</el-form-item>
</el-col>
</el-row>
...
...
@@ -39,12 +39,12 @@
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"预计提单补料时间"
>
<el-date-picker
type=
"date"
placeholder=
"请选择日期"
value-format=
"yyyy-MM-dd"
v-model=
"bookingObj.
feed
Time"
></el-date-picker>
<el-date-picker
type=
"date"
placeholder=
"请选择日期"
value-format=
"yyyy-MM-dd"
v-model=
"bookingObj.
ladingBill
Time"
></el-date-picker>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"通知人"
label-width=
"80px"
>
<userSelect
v-model=
"bookingObj.
feedTimePerson2
"
placeholder=
"请选择通知人"
:allUsers=
"this.$attrs.allUsers"
/>
<userSelect
v-model=
"bookingObj.
ladingBillNotifyUser
"
placeholder=
"请选择通知人"
:allUsers=
"this.$attrs.allUsers"
/>
</el-form-item>
</el-col>
</el-row>
...
...
@@ -52,12 +52,12 @@
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"预计报关时间"
>
<el-date-picker
type=
"date"
placeholder=
"请选择日期"
value-format=
"yyyy-MM-dd"
v-model=
"bookingObj.
declaration
Time"
></el-date-picker>
<el-date-picker
type=
"date"
placeholder=
"请选择日期"
value-format=
"yyyy-MM-dd"
v-model=
"bookingObj.
customs
Time"
></el-date-picker>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"通知人"
label-width=
"80px"
>
<userSelect
v-model=
"bookingObj.
feedTimePerson3
"
placeholder=
"请选择通知人"
:allUsers=
"this.$attrs.allUsers"
/>
<userSelect
v-model=
"bookingObj.
customsNotifyUser
"
placeholder=
"请选择通知人"
:allUsers=
"this.$attrs.allUsers"
/>
</el-form-item>
</el-col>
</el-row>
...
...
@@ -70,7 +70,7 @@
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"通知人"
label-width=
"80px"
>
<userSelect
v-model=
"bookingObj.
feedTimePerson4
"
placeholder=
"请选择通知人"
:allUsers=
"this.$attrs.allUsers"
/>
<userSelect
v-model=
"bookingObj.
cutOffNotifyUser
"
placeholder=
"请选择通知人"
:allUsers=
"this.$attrs.allUsers"
/>
</el-form-item>
</el-col>
</el-row>
...
...
@@ -119,7 +119,13 @@ export default {
const
voName
=
this
.
$attrs
.
currNode
.
voName
;
let
oldData
=
{
...
this
.
shipmentObj
[
voName
]
};
oldData
=
formatStringNumber
(
oldData
,
[
"
shipCompanyType
"
,
"
spaceCompany
"
]);
oldData
=
formatDateStr
(
oldData
,
[
"
sailTime
"
,
"
bargeTime
"
]);
oldData
=
formatDateStr
(
oldData
,
[
"
sailTime
"
,
"
bargeTime
"
,
"
ladingBillTime
"
,
"
customsTime
"
,
"
cutOffTime
"
,
]);
this
.
bookingObj
=
oldData
;
},
methods
:
{
...
...
src/views/ecw/box/shippingSea/nodePage/cabinet/index.vue
View file @
d18207b2
...
...
@@ -16,15 +16,13 @@
<el-date-picker
type=
"date"
placeholder=
"请选择日期"
v-model=
"cabinetObj.ldOutWarehouseTime"
value-format=
"yyyy-MM-dd"
></el-date-picker>
</el-form-item>
<el-form-item
label=
"装柜图片"
>
<el-upload
action=
""
:limit=
"1"
:file-list=
"cabinetObj.ldPictures"
>
<el-button
size=
"small"
type=
"primary"
>
选择文件
</el-button>
</el-upload>
<ImageUpload
:limit=
"1"
:isShowTip=
false
v-model=
"cabinetObj.ldPictures"
/>
</el-form-item>
</el-form>
<!-- 开始装柜 -->
<el-dialog
title=
"开始装柜"
:visible.sync=
"dialogVisible"
fullscreen
:modal-append-to-body=
false
append-to-body
destroy-on-close
>
<startPacking
/>
<el-dialog
title=
"开始装柜"
:visible.sync=
"dialogVisible"
fullscreen
:modal-append-to-body=
false
append-to-body
>
<startPacking
v-bind=
"$attrs"
v-if=
"dialogVisible"
/>
</el-dialog>
<!-- 操作 -->
...
...
@@ -39,8 +37,9 @@
<
script
>
import
startPacking
from
"
./startPacking.vue
"
;
import
{
cabinetCreate
,
serviceMsg
}
from
"
@/api/ecw/boxSea
"
;
import
{
cabinetCreate
,
serviceMsg
,
approvalCreate
}
from
"
@/api/ecw/boxSea
"
;
import
{
formatDateStr
}
from
"
../../utils
"
;
import
ImageUpload
from
"
@/components/ImageUpload
"
;
/**
* 装柜
...
...
@@ -48,7 +47,7 @@ import { formatDateStr } from "../../utils";
export
default
{
name
:
"
cabinet
"
,
inheritAttrs
:
false
,
components
:
{
startPacking
},
components
:
{
startPacking
,
ImageUpload
},
data
()
{
return
{
// 弹窗
...
...
@@ -81,9 +80,21 @@ export default {
...
this
.
cabinetObj
,
operateType
,
}).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
(()
=>
{
this
.
cancel
(
"
submit
"
);
});
if
(
operateType
===
2
)
{
approvalCreate
({
shipmentId
:
this
.
$attrs
.
shipmentObj
.
id
,
approvalStatus
:
0
,
approvalType
:
2
,
}).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
(()
=>
{
this
.
cancel
(
"
submit
"
);
});
});
}
else
{
serviceMsg
(
res
,
this
).
then
(()
=>
{
this
.
cancel
(
"
submit
"
);
});
}
});
}
});
...
...
src/views/ecw/box/shippingSea/nodePage/cabinet/startPacking.vue
View file @
d18207b2
...
...
@@ -4,25 +4,27 @@
<el-row
class=
"content-area"
>
<!-- 左侧 -->
<el-col
:span=
"
6
"
class=
"left-area"
>
<el-row
v-for=
"item in
testData"
:key=
"item.key"
class=
"title-info
"
>
<div>
<el-col
:span=
"
4
"
class=
"left-area"
>
<el-row
v-for=
"item in
listData"
:key=
"item.id"
class=
"title-info"
:class=
"item.id === tableData.id ? 'selected' : ''
"
>
<div
@
click=
"partClick(item)"
>
<p>
{{
item
.
title
}}
</p>
</div>
<div>
<p>
111
</p>
<p>
111
</p>
<p>
111
</p>
<template
v-if=
"item.secStatistics"
>
<p>
{{
item
.
secStatistics
.
num
}}
箱
</p>
<p>
{{
item
.
secStatistics
.
volume
}}
m³
</p>
<p>
{{
item
.
secStatistics
.
weight
}}
Kg
</p>
</
template
>
</div>
</el-row>
</el-col>
<!-- 右侧 -->
<el-col
:span=
"
18
"
class=
"right-area"
>
<el-col
:span=
"
20
"
class=
"right-area"
>
<!-- 操作 -->
<el-row
class=
"table-title"
>
<div>
当前装柜:
第一部分
</div>
<div>
当前装柜:
{{tableData.title}}
</div>
<div>
<el-input
v-model=
"qrCode"
placeholder=
"请输入二维码/条码编号"
></el-input>
<el-button
type=
"primary"
>
确定
</el-button>
...
...
@@ -33,19 +35,48 @@
</el-row>
<!-- 表格 -->
<el-row>
<el-table
v-loading=
"loading"
:data=
"listData"
>
<el-table-column
label=
"序号"
type=
"index"
width=
"50"
/>
<el-table-column
label=
"订单号"
align=
"center"
prop=
"selfNo"
>
<el-row
class=
"table-content"
>
<el-table
v-loading=
"loading"
:data=
"tableData.sectionOrderList"
>
<el-table-column
label=
"序号"
type=
"index"
align=
"center"
width=
"50"
/>
<el-table-column
label=
"订单号"
align=
"center"
prop=
"orderId"
>
<
template
slot-scope=
"scope"
>
<a
href=
"javascript:void(0);"
class=
"order-href"
@
click=
"orderClick(scope.row)"
>
{{
scope
.
row
.
orderId
}}
</a>
</
template
>
</el-table-column>
<el-table-column
label=
"货物信息"
align=
"center"
prop=
"goodsList"
>
<
template
slot-scope=
"scope"
>
<section
class=
"table-goodList"
>
<div
v-for=
"item in scope.row.goodsList"
:key=
"item.orderId"
class=
"goodList-div"
>
<p>
品名:
{{
item
.
prodTitleZh
}}
</p>
<p>
品牌:【
<dict-tag
:type=
"DICT_TYPE.PRODUCT_RECORD_ATTRIBUTE"
:value=
"item.productRecord"
/>
】
</p>
<p>
其他:
<span>
{{
item
.
num
}}
箱
</span><span>
{{
item
.
volume
}}
m³
</span><span>
{{
item
.
weight
}}
Kg
</span></p>
</div>
</section>
</
template
>
</el-table-column>
<el-table-column
label=
"计划箱数"
align=
"center"
prop=
"num"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
num
}}
箱
</
template
>
</el-table-column>
<el-table-column
label=
"实装箱数"
align=
"center"
prop=
"installNum"
>
<
template
slot-scope=
"scope"
>
<a
href=
"javascript:void(0);"
class=
"order-href"
@
click=
"orderClick(scope.row)"
>
{{
scope
.
row
.
selfNo
}}
</a>
{{
scope
.
row
.
installNum
}}
箱
</
template
>
</el-table-column>
<el-table-column
label=
"体积"
align=
"center"
prop=
"volume"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
volume
}}
m³
</
template
>
</el-table-column>
<el-table-column
label=
"重量"
align=
"center"
prop=
"weight"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
weight
}}
Kg
</
template
>
</el-table-column>
<el-table-column
label=
"货物信息"
align=
"center"
prop=
"cubNo"
/>
<el-table-column
label=
"计划箱数"
align=
"center"
prop=
"cabinetId"
/>
<el-table-column
label=
"实装箱数"
align=
"center"
prop=
"transportType"
/>
<el-table-column
label=
"体积"
align=
"center"
prop=
"squareNumber"
/>
<el-table-column
label=
"重量"
align=
"center"
prop=
"weight"
/>
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
<el-button
type=
"primary"
size=
"small"
>
移出
</el-button>
...
...
@@ -61,9 +92,8 @@
<!-- 统计 -->
<el-row>
<el-col
:span=
"6"
class=
"totle-info"
>
<div>
<p>
总计:
</p>
<p>
111
</p>
<div
class=
"count-info"
>
<p>
总计:
<span>
{{sumData.count.num}}箱
</span><span>
{{sumData.count.volume}}m³
</span><span>
{{sumData.count.weight}}Kg
</span></p>
</div>
<div>
<p>
容量:
</p>
...
...
@@ -159,43 +189,32 @@
<
script
>
import
supplementOrder
from
"
./supplementOrder.vue
"
;
import
{
loadSecGoodsList
}
from
"
@/api/ecw/boxSea
"
;
/**
* 开始装柜
*/
export
default
{
name
:
"
startPacking
"
,
inheritAttrs
:
false
,
components
:
{
supplementOrder
,
},
props
:
{
shipmentObj
:
Object
,
},
data
()
{
return
{
// laoding
loading
:
false
,
// 二维码/条码编号
qrCode
:
""
,
// 表格数据
listData
:
[
{
selfNo
:
"
111aaa
"
,
cubNo
:
"
11111111111111111111111111
"
,
},
{
selfNo
:
"
111aaa
"
,
cubNo
:
"
11111111111111111111111111
"
,
},
],
// 左侧数据
testData
:
[
{
key
:
1
,
title
:
"
第一部分
"
,
},
{
key
:
2
,
title
:
"
第二部分
"
,
},
],
listData
:
[],
// 表格数据
tableData
:
{},
// 统计数据
sumData
:
{
count
:
{
num
:
0
,
volume
:
0
,
weight
:
0
},
},
// 弹窗配置
dialogConfig
:
{
title
:
""
,
...
...
@@ -204,6 +223,8 @@ export default {
type
:
""
,
fullscreen
:
false
,
},
// 二维码/条码编号
qrCode
:
""
,
// 批量输入
batchObj
:
{},
// 批量纠错(订单号)
...
...
@@ -222,7 +243,25 @@ export default {
},
};
},
created
()
{
this
.
getLoadSecGoodsList
();
},
methods
:
{
/* 装柜部分列表 */
getLoadSecGoodsList
()
{
loadSecGoodsList
({
shipmentId
:
this
.
shipmentObj
.
id
}).
then
((
res
)
=>
{
const
{
data
=
[]
}
=
res
;
this
.
listData
=
data
.
map
((
item
,
index
)
=>
{
return
{
...
item
,
title
:
`第
${
++
index
}
部分`
,
};
});
if
(
this
.
listData
.
length
)
{
this
.
tableData
=
this
.
listData
[
0
];
}
});
},
/** 点击事件统一入口 */
handlerClick
(
type
,
title
)
{
this
.
shwoDialog
({
type
,
title
});
...
...
@@ -261,12 +300,41 @@ export default {
}
});
},
/* 部分点击 */
partClick
(
item
)
{
console
.
log
(
item
);
this
.
tableData
=
item
;
},
},
watch
:
{
listData
(
val
)
{
let
count
=
{
num
:
0
,
volume
:
0
,
weight
:
0
};
if
(
Array
.
isArray
(
val
))
{
val
.
forEach
((
item
)
=>
{
const
{
secStatistics
}
=
item
;
if
(
secStatistics
)
{
if
(
!
Number
.
isNaN
(
Number
(
secStatistics
.
num
)))
{
count
.
num
=
count
.
num
+
Number
(
secStatistics
.
num
);
}
if
(
!
Number
.
isNaN
(
Number
(
secStatistics
.
volume
)))
{
count
.
volume
=
count
.
volume
+
Number
(
secStatistics
.
volume
);
}
if
(
!
Number
.
isNaN
(
Number
(
secStatistics
.
weight
)))
{
count
.
weight
=
count
.
weight
+
Number
(
secStatistics
.
weight
);
}
}
});
}
this
.
$set
(
this
.
sumData
,
"
count
"
,
count
);
},
},
};
</
script
>
<
style
lang=
"scss"
scoped
>
.startPacking
{
display
:
flex
;
flex-direction
:
column
;
p
{
margin
:
0
;
}
...
...
@@ -276,7 +344,15 @@ export default {
border-right
:
3px
solid
#e6ebf5
;
padding-right
:
10px
;
.title-info
{
height
:
100px
;
height
:
80px
;
&
.selected
{
>
div
:first-child
{
background-color
:
#4f9cdd
;
color
:
#fff
;
}
}
>
div
:first-child
{
font-size
:
16px
;
background-color
:
#f2f2f2
;
...
...
@@ -309,8 +385,27 @@ export default {
}
}
}
.order-href
{
color
:
#4f9cdd
;
.table-content
{
.table-goodList
{
.goodList-div
{
border-bottom
:
1px
solid
#e6ebf5
;
>
p
{
text-align
:
left
;
}
>
p
:last-child
{
>
span
{
margin-right
:
5px
;
}
}
}
>
div
:last-child
{
border-bottom
:
none
;
}
}
.el-table
{
color
:
red
;
}
}
}
}
...
...
@@ -321,6 +416,11 @@ export default {
display
:
flex
;
margin-bottom
:
5px
;
}
.count-info
{
>
p
>
span
{
margin-right
:
5px
;
}
}
}
.button-area
{
text-align
:
center
;
...
...
src/views/ecw/box/shippingSea/nodePage/clrDocument.vue
View file @
d18207b2
...
...
@@ -28,9 +28,7 @@
</el-col>
</el-row>
<el-form-item
label=
"电放凭证附件"
>
<el-upload
action=
""
:file-list=
"cDocObj.cdElectricVoucher"
>
<el-button
size=
"small"
type=
"primary"
>
选择文件
</el-button>
</el-upload>
<FileUpload
:limit=
"1"
:isShowTip=
false
v-model=
"cDocObj.cdElectricVoucher"
:fileType=
"fileType"
/>
</el-form-item>
<el-form-item
label=
"agent list"
>
...
...
@@ -42,9 +40,7 @@
<el-date-picker
type=
"date"
placeholder=
"请选择日期"
v-model=
"cDocObj.cdAgentlistTime"
value-format=
"yyyy-MM-dd"
></el-date-picker>
</el-form-item>
<el-form-item>
<el-upload
action=
""
:file-list=
"cDocObj.cdAgentlistFile"
>
<el-button
size=
"small"
type=
"primary"
>
选择文件
</el-button>
</el-upload>
<FileUpload
:limit=
"1"
:isShowTip=
false
v-model=
"cDocObj.cdAgentlistFile"
:fileType=
"fileType"
/>
</el-form-item>
<el-form-item
label=
"soncap"
>
...
...
@@ -56,9 +52,7 @@
<el-date-picker
type=
"date"
placeholder=
"请选择日期"
v-model=
"cDocObj.cdSoncapTime"
value-format=
"yyyy-MM-dd"
></el-date-picker>
</el-form-item>
<el-form-item>
<el-upload
action=
""
:file-list=
"cDocObj.cdSoncapFile"
>
<el-button
size=
"small"
type=
"primary"
>
选择文件
</el-button>
</el-upload>
<FileUpload
:limit=
"1"
:isShowTip=
false
v-model=
"cDocObj.cdSoncapFile"
:fileType=
"fileType"
/>
</el-form-item>
</el-form>
...
...
@@ -72,13 +66,21 @@
<
script
>
import
{
clearanceDocCreate
,
serviceMsg
}
from
"
@/api/ecw/boxSea
"
;
import
{
constantDict
,
formatDateStr
,
formatNumberString
}
from
"
../utils
"
;
import
{
constantDict
,
formatDateStr
,
formatNumberString
,
fileTypes
,
}
from
"
../utils
"
;
import
FileUpload
from
"
@/components/FileUpload
"
;
/**
* 清关文件
*/
export
default
{
name
:
"
clrDocument
"
,
inheritAttrs
:
false
,
components
:
{
FileUpload
},
data
()
{
return
{
// 清关文件对象
...
...
@@ -87,6 +89,8 @@ export default {
method
:
constantDict
.
billingMethod
,
// 选项
status
:
constantDict
.
isFile
,
// 文件类型
fileType
:
fileTypes
,
};
},
created
()
{
...
...
src/views/ecw/box/shippingSea/nodePage/cusClearance.vue
View file @
d18207b2
...
...
@@ -58,7 +58,8 @@ export default {
created
()
{
const
voName
=
this
.
$attrs
.
currNode
.
voName
;
let
oldData
=
{
...
this
.
$attrs
.
shipmentObj
[
voName
]
};
oldData
=
formatDateStr
(
oldData
,
[
"
clEstTime
"
,
"
clClearTime
"
]);
oldData
=
formatDateStr
(
oldData
,
[
"
clEstTime
"
]);
oldData
=
formatDateStr
(
oldData
,
[
"
clClearTime
"
],
"
YYYY-MM-DD HH:mm:ss
"
);
this
.
cusClearanceObj
=
oldData
;
},
watch
:
{
...
...
src/views/ecw/box/shippingSea/nodePage/cusDeclaration.vue
View file @
d18207b2
...
...
@@ -46,9 +46,7 @@
<el-date-picker
type=
"date"
placeholder=
"请选择日期"
v-model=
"cusDeclarationObj.dcCheckTime"
value-format=
"yyyy-MM-dd"
></el-date-picker>
</el-form-item>
<el-form-item
label=
"查验前图片"
>
<el-upload
action=
""
:limit=
"1"
:file-list=
"cusDeclarationObj.dcCheckPreImg"
>
<el-button
size=
"small"
type=
"primary"
>
选择文件
</el-button>
</el-upload>
<ImageUpload
:limit=
"1"
:isShowTip=
false
v-model=
"cusDeclarationObj.dcCheckPreImg"
/>
</el-form-item>
<el-form-item
label=
"新封条"
>
<el-input
v-model=
"cusDeclarationObj.dcStripSeal"
placeholder=
"请输入新封条"
clearable
/>
...
...
@@ -133,13 +131,15 @@
import
supplierSelect
from
"
./common/supplierSelect.vue
"
;
import
{
customsCreate
,
serviceMsg
}
from
"
@/api/ecw/boxSea
"
;
import
{
formatNumberString
,
formatDateStr
}
from
"
../utils
"
;
import
ImageUpload
from
"
@/components/ImageUpload
"
;
/**
* 报关
*/
export
default
{
name
:
"
cusDeclaration
"
,
inheritAttrs
:
false
,
components
:
{
supplierSelect
},
components
:
{
supplierSelect
,
ImageUpload
},
data
()
{
return
{
// 报关对象
...
...
src/views/ecw/box/shippingSea/nodePage/departure.vue
View file @
d18207b2
...
...
@@ -61,7 +61,8 @@ export default {
created
()
{
const
voName
=
this
.
$attrs
.
currNode
.
voName
;
let
oldData
=
{
...
this
.
$attrs
.
shipmentObj
[
voName
]
};
oldData
=
formatDateStr
(
oldData
,
[
"
dtRealShipTime
"
,
"
dtEstArrivalTime
"
]);
oldData
=
formatDateStr
(
oldData
,
[
"
dtRealShipTime
"
],
"
YYYY-MM-DD HH:mm:ss
"
);
oldData
=
formatDateStr
(
oldData
,
[
"
dtEstArrivalTime
"
]);
this
.
departureObj
=
oldData
;
},
watch
:
{
...
...
src/views/ecw/box/shippingSea/nodePage/preinstallReview.vue
View file @
d18207b2
...
...
@@ -2,7 +2,7 @@
<div>
<el-form
ref=
"reviewForm"
:model=
"reviewObj"
label-width=
"120px"
>
<el-form-item
label=
"申请理由"
>
<el-input
v-model=
"reviewObj.
remark
"
type=
"textarea"
rows=
"2"
placeholder=
"请输入申请理由"
></el-input>
<el-input
v-model=
"reviewObj.
applyReason
"
type=
"textarea"
rows=
"2"
placeholder=
"请输入申请理由"
></el-input>
</el-form-item>
</el-form>
<el-row
class=
"operate-button"
>
...
...
@@ -13,7 +13,7 @@
</
template
>
<
script
>
import
{
approvalCreate
}
from
"
@/api/ecw/boxSea
"
;
import
{
approvalCreate
,
serviceMsg
}
from
"
@/api/ecw/boxSea
"
;
/**
* 预装反审
...
...
@@ -36,7 +36,7 @@ export default {
shipmentId
:
this
.
$attrs
.
shipmentObj
.
id
,
...
this
.
reviewObj
,
approvalStatus
:
-
1
,
approvalType
:
1
,
approvalType
:
4
,
}).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
(()
=>
{
this
.
cancel
(
"
submit
"
);
...
...
src/views/ecw/box/shippingSea/nodePage/ship.vue
View file @
d18207b2
...
...
@@ -7,7 +7,7 @@
</el-radio-group>
</el-form-item>
<el-form-item
label=
"配船时间"
v-show=
"shipObj.saExmtStatus === '2'"
>
<el-date-picker
type=
"date"
placeholder=
"请选择日期"
v-model=
"shipObj.
ship
Time"
value-format=
"yyyy-MM-dd"
></el-date-picker>
<el-date-picker
type=
"date"
placeholder=
"请选择日期"
v-model=
"shipObj.
config
Time"
value-format=
"yyyy-MM-dd"
></el-date-picker>
</el-form-item>
</el-form>
...
...
src/views/ecw/box/shippingSea/nodePage/subMaterial.vue
View file @
d18207b2
...
...
@@ -33,8 +33,8 @@
<el-input
v-model=
"subMaterialObj.markNo"
></el-input>
</el-form-item>
<el-form-item
label=
"包装数量与单位"
class=
"two-element"
>
<el-input
v-model=
"subMaterialObj.
quantity
"
placeholder=
"请输入包装数量"
></el-input>
<el-select
v-model=
"subMaterialObj.
u
nit"
placeholder=
"请选择单位"
>
<el-input
v-model=
"subMaterialObj.
packageNum
"
placeholder=
"请输入包装数量"
></el-input>
<el-select
v-model=
"subMaterialObj.
packageU
nit"
placeholder=
"请选择单位"
>
<el-option
v-for=
"unit in units"
:key=
"unit.id"
:value=
"unit.fuhao"
>
{{
unit
.
titleZh
}}
</el-option>
</el-select>
</el-form-item>
...
...
@@ -42,7 +42,7 @@
<el-input
v-model=
"subMaterialObj.kgs"
placeholder=
"请输入毛重(KGS)"
></el-input>
</el-form-item>
<el-form-item
label=
"立方数(CBM)"
>
<el-input
v-model=
"subMaterialObj.
mesaurement
"
placeholder=
"请输入立方数(CBM)"
></el-input>
<el-input
v-model=
"subMaterialObj.
cbm
"
placeholder=
"请输入立方数(CBM)"
></el-input>
</el-form-item>
<el-form-item
label=
"货物描述"
>
<el-input
v-model=
"subMaterialObj.goodsDesc"
placeholder=
"请输入货物描述"
></el-input>
...
...
@@ -97,16 +97,7 @@ export default {
markNo
:
"
N/M
"
,
},
// 出单方式
method
:
[
{
value
:
"
1
"
,
label
:
"
正本
"
,
},
{
value
:
"
2
"
,
label
:
"
电放
"
,
},
],
method
:
constantDict
.
billingMethod
,
// 单位
units
:
[],
// 柜型
...
...
@@ -132,6 +123,7 @@ export default {
const
voName
=
this
.
$attrs
.
currNode
.
voName
;
let
oldData
=
{
...
this
.
shipmentObj
[
voName
]
};
oldData
=
formatNumberString
(
oldData
,
[
"
issueType
"
]);
this
.
subMaterialObj
=
oldData
;
},
methods
:
{
...
...
src/views/ecw/box/shippingSea/nodePage/unloading/index.vue
View file @
d18207b2
...
...
@@ -8,13 +8,13 @@
<el-date-picker
type=
"date"
placeholder=
"请选择日期"
v-model=
"unloadingObj.ulWarehouseTime"
value-format=
"yyyy-MM-dd"
></el-date-picker>
</el-form-item>
<el-form-item
label=
"卸柜时间"
>
<el-date-picker
type=
"date
time"
placeholder=
"请选择日期"
v-model=
"unloadingObj.ulBoxTime"
value-format=
"yyyy-MM-dd HH:mm:ss
"
></el-date-picker>
<el-date-picker
type=
"date
"
placeholder=
"请选择日期"
v-model=
"unloadingObj.ulBoxTime"
value-format=
"yyyy-MM-dd
"
></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
type=
"success"
@
click=
"onSubmit(2)"
>
提交
</el-button>
<el-button
@
click=
"cancel"
>
关闭
</el-button>
<el-button
type=
"danger"
@
click=
"startUnloading"
>
开始卸柜
</el-button>
</el-row>
...
...
src/views/ecw/box/shippingSea/seaStepDetail.vue
View file @
d18207b2
...
...
@@ -238,11 +238,11 @@ export default {
},
{
title
:
"
数量
"
,
key
:
""
,
key
:
"
packageNum
"
,
},
{
title
:
"
体积
"
,
key
:
""
,
key
:
"
cbm
"
,
},
{
title
:
"
业务员
"
,
...
...
@@ -264,7 +264,7 @@ export default {
{
title
:
"
实际开船时间
"
,
key
:
"
dtRealShipTime
"
,
type
:
"
date
"
,
type
:
"
date
time
"
,
},
{
title
:
"
预计到港时间
"
,
...
...
@@ -306,12 +306,12 @@ export default {
{
title
:
"
实际到港时间
"
,
key
:
"
apRealTime
"
,
type
:
"
date
"
,
type
:
"
date
time
"
,
},
{
title
:
"
确认到港
"
,
key
:
"
apConfirmTime
"
,
type
:
"
date
"
,
type
:
"
date
time
"
,
},
{
title
:
"
卸港时间
"
,
...
...
@@ -332,7 +332,7 @@ export default {
{
title
:
"
清关时间
"
,
key
:
"
clClearTime
"
,
type
:
"
date
"
,
type
:
"
date
time
"
,
},
{
title
:
"
业务员
"
,
...
...
@@ -383,6 +383,9 @@ export default {
case
"
date
"
:
val
=
dayjs
(
val
).
format
(
"
YYYY-MM-DD
"
);
break
;
case
"
datetime
"
:
val
=
dayjs
(
val
).
format
(
"
YYYY-MM-DD HH:mm:ss
"
);
break
;
case
"
supplier
"
:
val
=
this
.
getSupplier
(
Number
(
val
));
break
;
...
...
@@ -441,9 +444,7 @@ export default {
flex-direction
:
column
;
flex-wrap
:
wrap
;
align-content
:
flex-start
;
// width: 100%;
height
:
500px
;
height
:
550px
;
p
{
margin
:
0
;
...
...
src/views/ecw/box/shippingSea/shippingSea.vue
View file @
d18207b2
...
...
@@ -68,7 +68,7 @@ export default {
// 用户
allUsers
:
[],
// 流程图节点
seaBaseData
:
seaBaseData
,
seaBaseData
:
seaBaseData
()
,
// 状态
statusLabel
:
""
,
};
...
...
src/views/ecw/box/shippingSea/utils.js
View file @
d18207b2
This diff is collapsed.
Click to expand it.
src/views/ecw/coupon/edit.vue
View file @
d18207b2
...
...
@@ -172,7 +172,7 @@
>
<dict-selector
v-if=
"form.type != 1"
:type=
"DICT_TYPE.ECW_SUITABLE_USER_TYPE"
v-model=
"form.suitableUserType"
defaultable
/>
<dict-selector
form-type=
"radio"
v-else
:type=
"DICT_TYPE.ECW_SUITABLE_USER_TYPE"
:filter=
"item => item.colorType == 'danger'"
v-model=
"form.suitableUserType"
defaultable
/>
<customers-selector
v-if=
"showCustomerSelector"
v-model=
"form.customerIds"
style=
"margin-top:5px"
/>
<customer
-contact
s-selector
v-if=
"showCustomerSelector"
v-model=
"form.customerIds"
style=
"margin-top:5px"
/>
</el-form-item>
<el-form-item
label=
"适用线路类型"
...
...
@@ -229,7 +229,8 @@
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
@
click=
"submitForm"
>
确 定
</el-button>
<el-button
type=
"primary"
@
click=
"submitForm(0)"
>
保 存
</el-button>
<el-button
type=
"primary"
@
click=
"submitForm(1)"
>
发 布
</el-button>
<el-button
@
click=
"$router.back()"
>
返 回
</el-button>
<el-button
type=
"default"
@
click=
"reset"
>
重 置
</el-button>
</el-form-item>
...
...
@@ -248,7 +249,7 @@ import {
exportCouponExcel
,
getCouponSelect
}
from
"
@/api/ecw/coupon
"
;
import
Customer
sSelector
from
'
@/components/Customer
sSelector
'
import
Customer
ContactsSelector
from
'
@/components/CustomerContact
sSelector
'
import
{
getDictData
}
from
'
@/utils/dict
'
import
RoutersSelector
from
'
@/components/RoutersSelector
'
import
ProductsSelector
from
'
@/components/ProductsSelector
'
...
...
@@ -256,7 +257,7 @@ import Editor from '@/components/Editor'
import
Selector
from
'
@/components/Selector/index
'
export
default
{
name
:
"
CouponEdit
"
,
components
:
{
CustomersSelector
,
RoutersSelector
,
ProductsSelector
,
Editor
,
Selector
},
components
:
{
Customer
Contact
sSelector
,
RoutersSelector
,
ProductsSelector
,
Editor
,
Selector
},
data
()
{
return
{
// 遮罩层
...
...
@@ -419,7 +420,7 @@ export default {
},
/** 提交按钮 */
submitForm
()
{
submitForm
(
status
=
0
)
{
this
.
$refs
[
"
form
"
].
validate
((
valid
)
=>
{
if
(
!
valid
)
{
return
;
...
...
@@ -431,7 +432,7 @@ export default {
// 开始时间必填
if
(
!
data
.
startTime
)
data
.
startTime
=
'
2022-01-01 00:00:00
'
// status必填
data
.
status
=
0
data
.
status
=
status
data
.
couponIds
=
this
.
couponIds
.
join
(
'
,
'
)
// 费用类型 1 运输费 2 清关费 3 总费用(优惠卷专用)
...
...
src/views/ecw/coupon/index.vue
View file @
d18207b2
...
...
@@ -154,9 +154,14 @@
<span>
{{
parseTime
(
scope
.
row
.
createTime
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"状态"
align=
"center"
prop=
"createTime"
width=
"180"
>
<
template
slot-scope=
"{row}"
>
<dict-tag
:type=
"DICT_TYPE.ECW_IS_DRAFT"
:value=
"row.status"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"handleUpdate(scope.row)"
<el-button
v-if=
"scope.row.status != 1"
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"handleUpdate(scope.row)"
v-hasPermi=
"['ecw:coupon:update']"
>
修改
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-delete"
@
click=
"handleDelete(scope.row)"
v-hasPermi=
"['ecw:coupon:delete']"
>
删除
</el-button>
...
...
src/views/ecw/customer/edit.vue
View file @
d18207b2
<
template
>
<
template
xmlns=
""
>
<div>
<el-row
type=
"flex"
style=
"margin-top: 15px;margin-bottom: 15px"
justify=
"center"
>
...
...
@@ -264,6 +264,11 @@
prop=
""
label=
"关联账号"
>
<
template
v-slot =
"{row}"
>
<el-select
v-model=
"row.userid"
@
change=
"selectBD"
>
<el-option
v-for=
"(item,index) in memberList"
:value=
"item.id"
:key=
"item.id"
:label=
"item.nickname + '(' + item.mobile + ')'"
></el-option>
</el-select>
</
template
>
</el-table-column>
<el-table-column
prop=
"social"
...
...
@@ -370,7 +375,7 @@
<
script
>
import
{
getDictDatas
,
DICT_TYPE
}
from
'
@/utils/dict
'
;
import
upload
from
'
@/components/ImageUpload
'
import
{
createCustomer
,
getCustomer
,
updateCustomer
,
}
from
'
@/api/ecw/customer
'
import
{
createCustomer
,
getCustomer
,
updateCustomer
,
userMemberUserList
,
}
from
'
@/api/ecw/customer
'
import
{
getNodeList
}
from
"
@/api/ecw/node
"
import
{
getProductTypeList
}
from
'
@/api/ecw/productType
'
import
{
getProductList
}
from
'
@/api/ecw/product
'
...
...
@@ -382,6 +387,7 @@ import {listServiceUser} from "@/api/system/user"
import
{
getZhongPaoPage
}
from
'
@/api/ecw/zhongPao
'
import
{
getCustomerContactsListByCustomer
}
from
'
@/api/ecw/customerContacts
'
import
{
getCountryListAll
}
from
'
@/api/ecw/country
'
import
Template
from
"
@/views/cms/template
"
;
export
default
{
name
:
"
edit
"
,
...
...
@@ -389,6 +395,7 @@ export default {
customerId
:
String
},
components
:
{
Template
,
upload
,
CustomerLineTable
},
...
...
@@ -426,6 +433,9 @@ export default {
getCountryListAll
().
then
(
r
=>
{
this
.
countryList
=
r
.
data
})
userMemberUserList
().
then
(
r
=>
{
this
.
memberList
=
r
.
data
})
this
.
getZhongPao
()
},
...
...
@@ -464,10 +474,14 @@ export default {
zhongLines
:
[],
// 重货线路
paoLines
:
[],
// 泡货线路
memberList
:[],
//会员列表
}
},
methods
:
{
selectBD
(){
this
.
$forceUpdate
();
},
/** 取消按钮 */
cancel
()
{
this
.
open
=
false
;
...
...
@@ -479,6 +493,9 @@ export default {
if
(
!
valid
)
{
return
;
}
this
.
form
.
customerContacts
.
forEach
(
e
=>
{
e
.
userid
=
e
.
userid
.
join
(
'
,
'
)
})
// 修改的提交
if
(
this
.
form
.
id
!=
null
)
{
this
.
form
.
customerContacts
.
forEach
(
e
=>
{
...
...
@@ -572,7 +589,7 @@ export default {
"
position
"
:
""
,
"
social
"
:
undefined
,
"
socialNumber
"
:
""
,
// "userid": 0
,
"
userid
"
:
[]
,
// "username": ""
})
},
...
...
@@ -592,7 +609,7 @@ export default {
computed
:
{
productListFilter
(){
return
this
.
productList
.
filter
((
p
)
=>
p
.
typeId
===
this
.
form
.
productType
)
}
}
,
},
watch
:
{
zhongLines
()
{
...
...
src/views/ecw/order/addAssociatedOrder.vue
View file @
d18207b2
...
...
@@ -25,7 +25,13 @@
<el-table-column
label=
"订单号"
prop=
"orderNo"
></el-table-column>
<el-table-column
label=
"唛头"
prop=
"marks"
></el-table-column>
<el-table-column
label=
"货物数据"
>
<template
v-slot=
"
{row}">
<div
v-if=
"row.costVO"
>
箱数:
{{
row
.
costVO
.
totalNum
}}
{{
row
.
costVO
.
totalVolume
}}
m³
{{
row
.
costVO
.
totalWeight
}}
kg
</div>
</
template
>
</el-table-column>
<el-table-column
label=
"入仓时间"
prop=
"rucangTime"
></el-table-column>
<el-table-column
label=
"状态"
>
...
...
src/views/ecw/order/associatedOrder.vue
View file @
d18207b2
...
...
@@ -32,13 +32,13 @@
width=
"55"
>
</el-table-column>
<el-table-column
type=
"index"
label=
"序号"
></el-table-column>
<el-table-column
label=
"订单号"
prop=
"orderNo"
></el-table-column>
<el-table-column
label=
"订单号"
prop=
"order
BackVO.order
No"
></el-table-column>
<el-table-column
label=
"唛头"
prop=
"marks"
></el-table-column>
<el-table-column
label=
"货物数据"
></el-table-column>
<el-table-column
label=
"入仓时间"
prop=
"remarks"
></el-table-column>
<el-table-column
label=
"入仓时间"
></el-table-column>
<el-table-column
label=
"状态"
prop=
"status"
>
<template
v-slot:default=
"scope"
>
<dict-tag
:value=
"scope.row.status"
:type=
"DICT_TYPE.ORDER_STATUS"
></dict-tag>
<dict-tag
:value=
"scope.row.
orderBackVO.
status"
:type=
"DICT_TYPE.ORDER_STATUS"
></dict-tag>
</
template
>
</el-table-column>
<el-table-column
label=
"操作人"
></el-table-column>
...
...
src/views/ecw/order/batchSingleApplication.vue
View file @
d18207b2
...
...
@@ -10,7 +10,13 @@
</
template
>
</el-table-column>
<el-table-column
label=
"下单统计"
>
<
template
v-slot=
"{row}"
>
<div
v-if=
"row.costVO"
>
箱数:
{{
row
.
costVO
.
totalNum
}}
{{
row
.
costVO
.
totalVolume
}}
m³
{{
row
.
costVO
.
totalWeight
}}
kg
</div>
</
template
>
</el-table-column>
<el-table-column
label=
"入仓统计"
width=
"150"
>
<
template
v-slot=
"{row}"
>
...
...
@@ -30,7 +36,7 @@
<el-table-column
label=
"出货渠道"
>
</el-table-column>
<el-table-column
label=
"始发仓"
prop=
"startWarehouseName"
></el-table-column
>
<!-- <el-table-column label="始发仓" prop="startWarehouseName"></el-table-column>--
>
<el-table-column
label=
"目的地"
prop=
"objectiveName"
></el-table-column>
<el-table-column
label=
"发货人"
>
<
template
v-slot=
"{row}"
>
...
...
@@ -68,13 +74,8 @@
审批流程
</h1>
<div
style=
"padding: 20px"
>
<
my-process-viewer
key=
"designer"
v-model=
"bpmnXML"
v-bind=
"bpmnControlForm"
/>
<
work-flow
xmlkey=
"warehouse_transfer"
v-model=
"params.copyUserId"
/>
</div>
<div
style=
"height: 100px"
></div>
<!-- <el-form label-width="200px">-->
<!-- <el-form-item label="抄送"></el-form-item>-->
<!-- <el-form-item label="抄送人"></el-form-item>-->
<!-- </el-form>-->
<div
style=
"text-align: center"
>
<el-button
style=
"margin-right: 50px"
@
click=
"submit"
:disabled=
"isSubmit"
>
提交申请
</el-button>
<el-button
@
click=
"$router.push('/order/order')"
>
取消
</el-button>
...
...
@@ -93,22 +94,21 @@ import {
import
{
getProcessDefinitionBpmnXMLByKey
}
from
"
@/api/bpm/definition
"
;
import
warehouseDetails
from
"
@/views/ecw/order/components/warehouseDetails
"
;
import
{
getOrderPage
}
from
"
@/api/ecw/order
"
;
import
workFlow
from
"
@/components/WorkFlow
"
;
export
default
{
name
:
"
batchSingleApplication
"
,
props
:{
orderList
:
String
,
},
components
:{
warehouseDetails
warehouseDetails
,
workFlow
},
created
()
{
getOrderPage
({
orderIdList
:
this
.
orderList
}).
then
(
r
=>
{
this
.
list
=
r
.
data
.
list
warehouseAdjustmentList
({
id
:
this
.
list
[
0
].
startWarehouseId
}).
then
(
r
=>
this
.
availableWarehouse
=
r
.
data
)
})
getProcessDefinitionBpmnXMLByKey
(
"
warehouse_transfer
"
).
then
(
response
=>
{
this
.
bpmnXML
=
response
.
data
})
},
computed
:{
isSubmit
(){
...
...
@@ -125,6 +125,7 @@ export default {
data
(){
return
{
list
:[],
selectedUsers
:[],
availableWarehouse
:[],
DICT_TYPE
,
departureWarehouse
:
undefined
,
...
...
@@ -132,11 +133,8 @@ export default {
params
:{
orderIds
:
undefined
,
warehouseInId
:
undefined
,
warehouseOutId
:
undefined
},
bpmnXML
:
null
,
bpmnControlForm
:
{
prefix
:
"
activiti
"
warehouseOutId
:
undefined
,
copyUserId
:[],
},
}
},
...
...
src/views/ecw/order/cargoControl.vue
0 → 100644
View file @
d18207b2
This diff is collapsed.
Click to expand it.
src/views/ecw/order/cargoControlDetail.vue
0 → 100644
View file @
d18207b2
<
template
>
<div
class=
"app-container"
>
<div
class=
"title"
>
控货订单
</div>
<el-form
ref=
"elForm"
:model=
"formData"
:rules=
"rules"
size=
"small"
label-width=
"100px"
>
<el-row>
<el-col
:span=
"6"
>
<el-form-item
label=
"订单号"
prop=
"field101"
>
111
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"总控货数"
prop=
"field104"
>
111
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"体积"
prop=
"field103"
>
111 m³
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"重量"
prop=
"field102"
>
111 kg
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"可放货箱数"
prop=
"field105"
>
111
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"已放货箱数"
prop=
"field106"
>
111
</el-form-item>
</el-col>
</el-row>
</el-form>
<div
class=
"title"
>
放货详情
</div>
<el-table
:data=
"[1]"
border
>
<el-table-column
label=
"序号"
width=
"50px"
>
</el-table-column>
<el-table-column
label=
"收货人"
>
1
</el-table-column>
<el-table-column
label=
"控货箱数"
>
1
</el-table-column>
<el-table-column
label=
"放货箱数"
>
1
</el-table-column>
<el-table-column
label=
"体积(m³)"
>
1
</el-table-column>
<el-table-column
label=
"提单号"
>
1
</el-table-column>
<el-table-column
label=
"备注"
>
1
</el-table-column>
<el-table-column
label=
"操作人"
>
1
</el-table-column>
<el-table-column
label=
"日期"
>
1
</el-table-column>
<el-table-column
label=
"状态"
>
1
</el-table-column>
<el-table-column
label=
"操作"
width=
"300px"
>
<template
slot-scope=
"
{row}">
<el-button
type=
"primary"
size=
"mini"
@
click=
"showEdit=true"
>
修改
</el-button>
<el-button
type=
"danger"
size=
"mini"
>
取消
</el-button>
<el-button
type=
"success"
size=
"mini"
@
click=
"review"
>
放货复核
</el-button>
</
template
>
</el-table-column>
</el-table>
<div
class=
"title"
>
历史放货记录
</div>
<el-table
:data=
"[1]"
border
>
<el-table-column
label=
"序号"
width=
"50px"
>
</el-table-column>
<el-table-column
label=
"操作"
>
<el-input
v-model=
"formData.field110"
placeholder=
"请输入收货人邮箱"
clearable
></el-input>
</el-table-column>
<el-table-column
label=
"申请原因"
>
<el-input
v-model=
"formData.field110"
placeholder=
"请输入收货人邮箱"
clearable
></el-input>
</el-table-column>
<el-table-column
label=
"附件"
>
<el-input
v-model=
"formData.field110"
placeholder=
"请输入收货人邮箱"
clearable
></el-input>
</el-table-column>
<el-table-column
label=
"申请时间"
>
<el-input
v-model=
"formData.field110"
placeholder=
"请输入收货人邮箱"
clearable
></el-input>
</el-table-column>
<el-table-column
label=
"申请人"
>
<el-input
v-model=
"formData.field110"
placeholder=
"请输入收货人邮箱"
clearable
></el-input>
</el-table-column>
<el-table-column
label=
"审批时间"
>
<el-input
v-model=
"formData.field110"
placeholder=
"请输入收货人邮箱"
clearable
></el-input>
</el-table-column>
<el-table-column
label=
"审批人"
>
<el-input
v-model=
"formData.field110"
placeholder=
"请输入收货人邮箱"
clearable
></el-input>
</el-table-column>
<el-table-column
label=
"备注"
>
<el-input
v-model=
"formData.field110"
placeholder=
"请输入收货人邮箱"
clearable
></el-input>
</el-table-column>
</el-table>
<edit
v-if=
"showEdit"
@
close=
"showEdit=false"
/>
</div>
</template>
<
script
>
import
edit
from
'
./components/CargoControlEdit.vue
'
export
default
{
components
:
{
edit
},
data
(){
return
{
showEdit
:
false
,
formData
:{}
}
},
methods
:{
review
(){
this
.
$confirm
(
'
已核实放货信息,确认放货?
'
)
.
then
(
res
=>
{
this
.
$alert
(
'
// TODO
'
)
})
}
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.title
{
font-size
:
16px
;
margin
:
20px
0
;
display
:flex
;
align-items
:center
;
&
:before
{
content
:
''
;
width
:
5px
;
height
:
15px
;
background
:
#666
;
margin-right
:
10px
;
}
}
</
style
>
\ No newline at end of file
src/views/ecw/order/components/CargoControlEdit.vue
0 → 100644
View file @
d18207b2
<
template
>
<el-dialog
:title=
"title"
visible
:before-close=
"closeDialog"
:close-on-click-modal=
"false"
>
<el-form
v-if=
"agreement"
ref=
"elForm"
:model=
"formData"
size=
"small"
label-width=
"100px"
>
<el-form-item
label=
"订单号"
prop=
"field101"
>
111
</el-form-item>
<el-row>
<el-col
:span=
"12"
>
<el-form-item
label=
"收货人"
prop=
"field104"
>
111
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"收货人电话"
prop=
"field103"
>
111
</el-form-item>
</el-col>
</el-row>
<el-form-item
label=
"总控货箱数"
prop=
"field105"
>
111
</el-form-item>
<el-form-item
label=
"原放货箱数"
prop=
"field106"
>
111
</el-form-item>
<el-form-item
label=
"现放货箱数"
prop=
"field106"
>
<el-input
v-model=
"formData.cnt"
placeholder=
""
></el-input>
</el-form-item>
<el-form-item
label=
"备注"
prop=
"field106"
>
<el-input
v-model=
"formData.cnt"
placeholder=
""
></el-input>
</el-form-item>
<el-form-item
label=
"控货手机号"
prop=
"field106"
>
13000000000
</el-form-item>
<el-form-item
label=
"手机验证码"
prop=
"field106"
>
<el-input
v-model=
"formData.cnt"
placeholder=
""
style=
"width: 100px; margin-right:10px"
></el-input>
<el-button
type=
"default"
>
获取验证码
</el-button>
</el-form-item>
<div
class=
"title"
>
审批流程
</div>
<work-flow
bmpkey=
"free_apple"
/>
<el-form-item
label=
""
>
<el-button
type=
"primary"
@
click=
"$alert('// TODO')"
>
提交申请
</el-button>
<el-button
@
click=
"closeDialog"
>
关闭
</el-button>
</el-form-item>
</el-form>
<div
v-else
>
<release-agreement
/>
<div
style=
"margin-top:30px"
>
<el-button
type=
"primary"
@
click=
"agreement=true"
>
我同意
</el-button>
<el-button
@
click=
"closeDialog"
>
关闭
</el-button>
</div>
</div>
</el-dialog>
</
template
>
<
script
>
import
releaseAgreement
from
"
./releaseAgreement
"
import
WorkFlow
from
'
@/components/WorkFlow
'
export
default
{
props
:{
orderId
:
[
String
,
Number
]
},
components
:
{
releaseAgreement
,
WorkFlow
},
data
(){
return
{
show
:
false
,
detail
:
null
,
formData
:{},
agreement
:
false
,
// 是否同意协议
}
},
computed
:{
title
(){
let
t
=
'
放货修改
'
return
t
}
},
created
(){
this
.
show
=
true
this
.
loadData
()
},
methods
:{
loadData
(){
},
closeDialog
(){
this
.
show
=
false
this
.
$emit
(
'
close
'
);
},
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.title
{
font-size
:
16px
;
margin
:
20px
0
;
display
:flex
;
align-items
:center
;
&
:before
{
content
:
''
;
width
:
5px
;
height
:
15px
;
background
:
#666
;
margin-right
:
10px
;
}
}
</
style
>
\ No newline at end of file
src/views/ecw/order/components/Release.vue
0 → 100644
View file @
d18207b2
<
template
>
<el-dialog
:title=
"title"
visible
:before-close=
"closeDialog"
:close-on-click-modal=
"false"
>
<el-form
v-if=
"agreement"
ref=
"elForm"
:model=
"formData"
:rules=
"rules"
size=
"small"
label-width=
"100px"
>
<el-row>
<el-col
:span=
"6"
>
<el-form-item
label=
"订单号"
prop=
"field101"
>
111
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"总箱数"
prop=
"field104"
>
111
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"体积"
prop=
"field103"
>
111
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"重量"
prop=
"field102"
>
111
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"总控货箱数"
prop=
"field105"
>
111
</el-form-item>
</el-col>
<el-col
:span=
"6"
>
<el-form-item
label=
"剩余放货箱数"
prop=
"field106"
>
111
</el-form-item>
</el-col>
</el-row>
<div
class=
"title"
>
请填写放货信息
</div>
<el-row>
<el-col
:span=
"8"
>
<el-form-item
label=
"收货人"
prop=
"field108"
>
<el-input
v-model=
"formData.field108"
placeholder=
"请输入收货人"
clearable
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"收货人电话"
prop=
"field109"
>
<el-input
v-model=
"formData.field109"
placeholder=
"请输入收货人电话"
clearable
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"8"
>
<el-form-item
label=
"收货人邮箱"
prop=
"field110"
>
<el-input
v-model=
"formData.field110"
placeholder=
"请输入收货人邮箱"
clearable
></el-input>
</el-form-item>
</el-col>
</el-row>
<el-table
:data=
"[1]"
border
>
<el-table-column
label=
"控货箱数"
>
</el-table-column>
<el-table-column
label=
"放货箱数"
>
<el-input
v-model=
"formData.field110"
placeholder=
"请输入收货人邮箱"
clearable
></el-input>
</el-table-column>
<el-table-column
label=
"体积(m³)"
>
<el-input
v-model=
"formData.field110"
placeholder=
"请输入收货人邮箱"
clearable
></el-input>
</el-table-column>
<el-table-column
label=
"重量(kg)"
>
<el-input
v-model=
"formData.field110"
placeholder=
"请输入收货人邮箱"
clearable
></el-input>
</el-table-column>
<el-table-column
label=
"备注"
>
<el-input
v-model=
"formData.field110"
placeholder=
"请输入收货人邮箱"
clearable
></el-input>
</el-table-column>
</el-table>
<el-form-item
label=
"控货手机号"
prop=
"field117"
style=
"margin-top:20px"
>
<el-input
v-model=
"formData.field117"
placeholder=
"请输入控货手机号"
clearable
>
</el-input>
</el-form-item>
<el-form-item
label=
"手机验证码"
prop=
"field118"
>
<el-input
v-model=
"formData.field118"
placeholder=
"请输入手机验证码"
clearable
style=
"width:200px; margin-right:10px"
></el-input>
<el-button
type=
"success"
>
获取验证码
</el-button>
</el-form-item>
<el-form-item
label=
""
prop=
"field117"
style=
"margin-top:20px"
>
<el-button
type=
"success"
>
确认放货
</el-button>
<el-button
type=
"default"
@
click=
"closeDialog"
>
关闭
</el-button>
</el-form-item>
</el-form>
<div
v-else
>
<release-agreement
/>
<div
style=
"margin-top:30px"
>
<el-button
type=
"primary"
@
click=
"agreement=true"
>
我同意
</el-button>
<el-button
@
click=
"closeDialog"
>
关闭
</el-button>
</div>
</div>
</el-dialog>
</
template
>
<
script
>
import
ReleaseAgreement
from
"
./ReleaseAgreement
"
export
default
{
props
:{
orderId
:
[
String
,
Number
]
},
components
:
{
ReleaseAgreement
},
data
(){
return
{
show
:
false
,
detail
:
null
,
formData
:{},
agreement
:
false
,
// 是否同意协议
}
},
computed
:{
title
(){
let
t
=
'
控货权转移
'
if
(
this
.
detail
){
t
+=
'
-
'
+
this
.
detail
.
orderNo
}
return
t
}
},
created
(){
this
.
show
=
true
this
.
loadData
()
},
methods
:{
loadData
(){
},
closeDialog
(){
this
.
show
=
false
this
.
$emit
(
'
close
'
);
},
}
}
</
script
>
<
style
lang=
"scss"
scoped
>
.title
{
font-size
:
16px
;
margin
:
20px
0
;
display
:flex
;
align-items
:center
;
&
:before
{
content
:
''
;
width
:
5px
;
height
:
15px
;
background
:
#666
;
margin-right
:
10px
;
}
}
</
style
>
\ No newline at end of file
src/views/ecw/order/components/ReleaseAgreement.vue
0 → 100644
View file @
d18207b2
<
template
>
<div>
<h2>
《捷道控放货须知》
</h2>
<pre>
请您仔细阅读我们的控货须知,如果您对此须知中有任何部分存在疑问,请联系我司售前客服,如您已下单表示您已清楚我司控放货流程及风险。
1. 关于控货与放货
1.1控货是指由发货人与我司约定在货物的国际运输过程中,我司作为第三方对该货物进行临时控制;非经发货人按约定程序授权,我司不解除对该货物的控制的行为;
1.2您在订舱时选择控货选项,在货物入仓后,系统将会自动生成入仓号,表示货物已经控货成功;
1.3同一入仓号所属的货物只能控货一次,若出现分批次放货的情形,则最多不得超过3次,且每次只能有一个提货人;
1.4货物运抵目的地之后捷道公司会对货物进行临时控制。一经向系统申请放货并获得系统确认,则表明我司已获得您的授权,我司将根据约定向提货单持有人放货;
1.5您应在货物抵达目的地后30个自然日内通知捷道公司放货。尼日利亚:超过30日的,您应向捷道公司支付相应的仓储费尼;超过30天每天收取20naira/CBM ,超过60天每天40naira/CBM ,超过90天每天60naira/CBM;加纳:超过15日,需支付每天$1/CBM,超过180个自然日捷道公司有权根据依照相关法律规定处理该临时控制的货物;
1.6放货方式:A:登陆我司后台www.groupage.cn点击放货,通过账号原始绑定手机获取验证码进行放货;B:联系我司客服进行放货,联系电话4009009962,上班时间周一至周六 9:00-18:00。
2. 免责声明
2.1接受控货并不表明捷道公司对您货物所有权瑕疵进行担保;
2.2捷道公司经授权放货不代表同意对买卖双方的货款结算进行担保;
2.3若系统后台注册信息与实际信息不一致,如绑定手机号码需要更改,请自行登录系统后台操作,我司不提供任何注册信息主动变更服务,因注册信息与实际不一致而造成的损失,由您自行承担。
</pre>
</div>
</
template
>
\ No newline at end of file
src/views/ecw/order/components/Transfer.vue
0 → 100644
View file @
d18207b2
<
template
>
<el-dialog
:title=
"title"
visible
:before-close=
"closeDialog"
>
<div
class=
""
v-if=
"agreement"
>
<el-form
ref=
"form"
:model=
"form"
label-position=
"left"
label-width=
"120px"
>
<el-form-item
v-if=
"detail"
label=
"原控货人"
>
<el-input
v-model=
"detail.orderNo"
readonly
></el-input>
</el-form-item>
<el-form-item
label=
"原控货手机号"
prop=
"start"
required
>
<el-input
v-model.number=
"form.start"
type=
"number"
></el-input>
</el-form-item>
<el-form-item
label=
"新控货人"
prop=
"end"
required
>
<el-input
v-model.number=
"form.end"
type=
"number"
:max=
"detail ? detail.num : 1"
></el-input>
</el-form-item>
<el-form-item
label=
"新控货手机号"
prop=
"start"
required
>
<el-input
v-model.number=
"form.start"
type=
"number"
>
<el-select
slot=
"prepend"
v-model=
"form.areaCode"
placeholder=
""
>
<el-option
:label=
"1"
:value=
"1"
></el-option>
</el-select>
</el-input>
</el-form-item>
<el-form-item
label=
"新控货人邮箱"
prop=
"end"
required
>
<el-input
v-model.number=
"form.end"
type=
"number"
:max=
"detail ? detail.num : 1"
></el-input>
</el-form-item>
<el-form-item
label=
"手机验证码"
prop=
"end"
required
>
<el-input
v-model.number=
"form.end"
type=
"number"
>
<span
slot=
"append"
>
获取验证码
</span>
</el-input>
</el-form-item>
<el-form-item
label=
""
>
<el-button
type=
"primary"
@
click=
"showPreview"
>
确定转移
</el-button>
</el-form-item>
</el-form>
</div>
<div
v-else
>
<transfer-agreement
/>
<div
style=
"margin-top:30px"
>
<el-button
type=
"primary"
@
click=
"agreement=true"
>
我同意
</el-button>
<el-button
@
click=
"closeDialog"
>
关闭
</el-button>
</div>
</div>
</el-dialog>
</
template
>
<
script
>
import
TransferAgreement
from
"
./TransferAgreement
"
export
default
{
props
:{
orderId
:
[
String
,
Number
]
},
components
:
{
TransferAgreement
},
data
(){
return
{
show
:
false
,
detail
:
null
,
form
:{},
agreement
:
false
,
// 是否同意协议
}
},
computed
:{
title
(){
let
t
=
'
控货权转移
'
if
(
this
.
detail
){
t
+=
'
-
'
+
this
.
detail
.
orderNo
}
return
t
}
},
created
(){
this
.
show
=
true
this
.
loadData
()
},
methods
:{
loadData
(){
},
closeDialog
(){
this
.
show
=
false
this
.
$emit
(
'
close
'
);
},
}
}
</
script
>
\ No newline at end of file
src/views/ecw/order/components/TransferAgreement.vue
0 → 100644
View file @
d18207b2
<
template
>
<pre>
控货权转移须知
《控货权转移须知》
为了切实加强施工现场安全生产管理,依照《中华人民共和国安全生产法》、《中华人民共和国建筑法》、《中华人民共和国合同法》以及《建设工程安全生产管理条例》建设部《施工现场临时用电安全技术规范》(JGJ46-88)、《建筑施工安全检查标准》(JGJ59-99),双方本着平等、自愿的原则,签订本协议书。甲方和乙方均严格遵守本协议书规定的权力、责任和义务,确保施工现场的安全生产和施工现场临时用电的安全。
一、甲方的权利、责任和义务:
1、贯彻落实国家有关施工现场安全生产、文明施工的法规和管理规定,对乙方施工现场和区域进行全面的安全生产管理和监督检查并对施工现场临时用电进行安全检查与指导。
2、及时纠正乙方施工人员违章指挥和违章作业行为,并按照有关规定予以查处。对乙方施工区域内的重大安全事故隐患,应开具隐患通知单。
3、要求乙方提供施工现场《生产安全事故应急救援预案》。
4、建立健全施工现场各项安全生产管理制度。
5、对乙方的安全生产培训、劳动保护用品的使用和危险预知工作提出指导意见,并监督落实情况。
6、对乙方提出的安全生产要求积极提供帮助。
7、向乙方提供电源时,应与乙方办理交接验收手续。
8、按照有关临时用电标准对乙方的临时用电设备设施进行监督和检查。发现乙方在临时用电中存在隐患必须责成乙方以整改。并监督整改落实情况。
9、对乙方特种作业人员的名单、操作证复印件及培训记录进行存档备案。
二、乙方的权利、责任和义务:
1、遵守国家有关施工现场安全生产的法规和管理制度,建立健全安全生产责任制和安全生产管理制度。严格执行国家施工现场临时用电及机械设备使用有关技术规范和安全操作规程,对施工区域内自行管辖的临时用电负全面管理责任。
2、服从甲方安全生产管理。
3、乙方必须为施工作业人员参加人身意外保险。
4、乙方造成生产安全事故,导致人员伤亡时,由乙方承担事故责任和经济责任。
5、未经安全生产教育培训和无证人员,不得上岗作业。
三、协议内容:
(一)登高上架要求
1、施工采用的脚手架、安全网必须由专业人员搭设,由项目经理(工地负责人)组织技术部、安全部门的有关人员验收合格后,方可投入使用,应按类别逐项查验,并应有验收记录。
2、高空作业时,严禁立体交叉作业。水平作业时,各工位间必须有一定的距离,作业人员必须配备相应劳动保护用品如安全帽、安全带、防护眼镜、防护手套、防护工作服等,并应正确使用,施工作业现场周边设置相关安全标志牌,并设专人巡查。
3、进入施工现场的人员必须佩带安全帽。凡在2m以上高处作业人员,必须正确使用安全带,安全带应高挂低用。
4、工程施工前,除工程技术人员对施工作业人员进行书面安全技术交底,并履行签字手续外,必须各施工班组长向施工人员进行班组交底及履行签字手续。
5、特殊工程施工项目如;电气、易燃、易爆容器、管道等,必须持有效证件及上岗证的专业人员操作。
6、拆除施工现场,必须设有临时急救人员及药品或设立临时救助站。
7、严禁在工作前和工作中饮酒,不许穿高跟鞋、硬底鞋、拖鞋,应穿防滑鞋。
8、进入施工现场须服从领导和安检人员的指挥,遵守劳动纪律、严守岗位、不串岗,作业时思想要集中。
9、严禁随意拆除或损坏防护栏杆、拉杆、安全网、跳板、脚手板、支撑等防护设施。
10、面砖搬运、安装时应注意安全,防止因面砖翻倒而受伤。
11、各种材料加工时注意操作安全及施工用电,不得随便乱接乱拉电线。
12、施工现场各周边洞口,必须有符合安全规范要求的安全防护,若因施工作业场地要求而拆除的,操作完成后,立即恢复。
13、脚手架上禁止有探头板、飞跳板,脚手架上应满铺脚手板,脚手架上禁止堆放砂浆、砖块、面砖等物料。
14、不准从正在起吊、运吊中的物件下通过,以防突然事件,不准从高处往下跑、跳;不准在没有防护的外墙和外悬挑板等建筑物上行走;不准站在小推车等不稳定的物件上操作;不得攀登起重臂、绳索、脚手架、井字架和随同运料的吊盘和吊篮及吊装物上下;井架吊篮禁止乘人。
15、作业中不得往下投掷物件、碎砖、灰渣等,清理物料时应设溜槽或使用垃圾桶;手持工具和零星物料应随时放在工具袋中。
16、年龄未满18周岁者,患有心脏病、贫血、高血压、低血压、癫痫病及其他不适于高空作业的病症者严禁从事外墙施工作业。
17、遇到雷雨、大风等天气外墙施工应暂停作业。
18、手持电动工具使用前应进行检查,空载试验运转正常合格后方可使用,转移工作点应切断电源,潮湿场所严禁使用手持式电动工具。
19、作业前必须认真检
</pre>
</
template
>
\ No newline at end of file
src/views/ecw/order/detail.vue
View file @
d18207b2
<
template
>
<div
class=
"app-container"
>
<div
class=
"app-container"
v-if=
"order"
>
<el-card
class=
"card"
>
<div
slot=
"header"
class=
"card-title"
>
订单编号:
{{
order
.
orderNo
}}
<template
v-if=
"order.containerNumber"
>
-
{{
order
.
containerNumber
}}
</
template
>
</div>
<el-row
:gutter=
"20"
>
<el-col
:span=
"12"
>
<el-descriptions
class=
"margin-top"
border
title=
"发货人"
:column=
"1"
labelStyle=
"width:150px
"
>
<el-col
:span=
"12"
v-if=
"order.consignorVO"
>
<el-descriptions
class=
"margin-top"
border
title=
"发货人"
:column=
"1"
:labelStyle=
"{width:'150px'}
"
>
<el-descriptions-item
label=
"发货人"
>
{{order.consignorVO.name}}
</el-descriptions-item>
<el-descriptions-item
label=
"发货人电话"
>
{{order.consignorVO.phone}}
</el-descriptions-item>
<el-descriptions-item
label=
"发货人邮箱"
>
{{order.consignorVO.email}}
</el-descriptions-item>
...
...
@@ -16,8 +16,8 @@
</el-descriptions-item>
</el-descriptions>
</el-col>
<el-col
:span=
"12"
>
<el-descriptions
class=
"margin-top"
border
title=
"收货人"
:column=
"1"
labelStyle=
"width:150px
"
>
<el-col
:span=
"12"
v-if=
"order.consigneeVO"
>
<el-descriptions
class=
"margin-top"
border
title=
"收货人"
:column=
"1"
:labelStyle=
"{width:'150px'}
"
>
<el-descriptions-item
label=
"收货人"
>
{{order.consigneeVO.name}}
</el-descriptions-item>
<el-descriptions-item
label=
"收货人电话"
>
{{order.consigneeVO.phone}}
</el-descriptions-item>
<el-descriptions-item
label=
"收货人邮箱"
>
{{order.consigneeVO.email}}
</el-descriptions-item>
...
...
@@ -99,7 +99,7 @@
</el-tab-pane>
<el-tab-pane
label=
"订单动态"
name=
"second"
>
<el-timeline
v-if=
"order.orderTimeVOList && order.orderTimeVOList.length"
:reverse=
"true"
>
<el-timeline-item
v-for=
"(activity, index) in order
TimeVOList
.orderTimeVOList"
:key=
"index"
:timestamp=
"activity.timestamp"
>
<el-timeline-item
v-for=
"(activity, index) in order.orderTimeVOList"
:key=
"index"
:timestamp=
"activity.timestamp"
>
{{ activity.titleZh }}
</el-timeline-item>
</el-timeline>
...
...
@@ -141,7 +141,7 @@ export default {
return
{
// 遮罩层
loading
:
false
,
order
:
{}
,
order
:
null
,
activeName
:
'
first
'
,
orderId
:
17
,
tableData
:
[],
...
...
src/views/ecw/order/edit.vue
View file @
d18207b2
...
...
@@ -246,21 +246,24 @@
</el-descriptions>
<div
class=
"card-title"
style=
"padding:20px 0;"
>
优惠信息
</div>
<el-row
v-for=
"(item, index) in
getDictDatas(DICT_TYPE.ECW_COUPON_TYPE)"
:key=
"item.value
"
>
<el-row
v-for=
"(item, index) in
couponTypeList"
:key=
"item.value"
:gutter=
"10
"
>
<el-col
:span=
"2"
>
{{index+1}}.{{item.label}}
</el-col>
<el-col
:span=
"4"
>
<!-- <el-select placeholder="">
</el-select> -->
<el-select
placeholder=
"请选择优惠"
v-model=
"selectedCoupons[item.value]"
:data-type=
"item.value"
clearable
>
<
template
v-for=
"coupon in couponList"
>
<el-option
v-if=
"coupon.type == +item.value"
:key=
"coupon.couponId"
:label=
"coupon.titleZh"
:value=
"coupon.couponId"
></el-option>
</
template
>
</el-select>
</el-col>
<el-col
:span=
"2"
>
-10
美元
</el-col>
<el-col
:span=
"5"
>
有效期:永久有效
</el-col>
<el-col
:span=
"2"
v-if=
"getCoupon(selectedCoupons[item.value])"
>
-{{getCoupon(selectedCoupons[item.value]).reduceAmount}}
美元
</el-col>
<el-col
:span=
"5"
v-if=
"getCoupon(selectedCoupons[item.value])"
>
有效期:{{getCoupon(selectedCoupons[item.value]).endTime || '永久有效'}}
</el-col>
</el-row>
<el-descriptions
:column=
"1"
border
>
<el-descriptions-item
label=
"优惠合计"
>
1233.1
美元
{{discount}}
美元
</el-descriptions-item>
<el-descriptions-item
label=
"预计费用"
>
// TODO
</el-descriptions-item>
</el-descriptions>
</el-card>
...
...
@@ -321,8 +324,8 @@
<dict-selector
:type=
"DICT_TYPE.DRAWEE"
v-model=
"form.drawee"
defaultable
form-type=
"radio"
/>
</el-descriptions-item>
<el-descriptions-item
v-if=
"form.drawee==3"
label=
"费用类型"
:span=
"2"
>
<
template
v-for=
"(item,index) in customDrawee
VO
List"
v-key=
"index"
>
<el-form-item
:label=
"item.
name
"
:key=
"index"
>
<
template
v-for=
"(item,index) in customDraweeList"
v-key=
"index"
>
<el-form-item
:label=
"item.
label
"
:key=
"index"
>
<dict-selector
:type=
"DICT_TYPE.DRAWEE"
:filter=
"(e) => e.value == '1' || e.value == '2'"
v-model=
"item.value"
form-type=
"radio"
/>
</el-form-item>
</
template
>
...
...
@@ -372,7 +375,7 @@
</el-card>
<el-form-item
label=
""
>
<el-form-item
label=
""
style=
"margin: 30px 0"
>
<el-button
type=
"primary"
@
click=
"submitForm(0)"
>
保 存
</el-button>
<!--草稿-->
<el-button
type=
"primary"
@
click=
"submitForm(2)"
>
新建
</el-button>
<!--待入仓-->
<el-button
@
click=
"$router.back()"
>
返回
</el-button>
...
...
@@ -382,7 +385,7 @@
</template>
<
script
>
import
{
createOrder
,
updateOrder
,
getOrder
,
getProductFeeList
}
from
"
@/api/ecw/order
"
;
import
{
createOrder
,
updateOrder
,
getOrder
,
getProductFeeList
,
getOrderDetail
}
from
"
@/api/ecw/order
"
;
import
ProductSelector
from
'
@/components/ProductSelector
'
import
{
getProductAttrList
}
from
'
@/api/ecw/productAttr
'
import
{
getChannelList
}
from
'
@/api/ecw/channel
'
...
...
@@ -404,13 +407,8 @@ export default {
},
data
()
{
return
{
customDraweeVOList
:
[
{
name
:
'
运费
'
,
value
:
undefined
},
{
name
:
'
清关费
'
,
value
:
undefined
},
{
name
:
'
其他费用
'
,
value
:
undefined
},
{
name
:
'
报关费
'
,
value
:
undefined
}
],
draweeList
:
[],
customDraweeList
:
[],
// draweeList: [],
// 遮罩层
loading
:
true
,
productList
:[],
// 商品信息
...
...
@@ -421,12 +419,14 @@ export default {
treeList
:
[],
consignorContact
:
{},
// 发货联系人
consigneeContact
:{},
// 收货联系人
consignee
:
null
,
consignor
:
null
,
/*
consignee: null,
consignor: null,
*/
transportList
:
[],
currencyList
:[],
unitList
:[],
couponList
:
[],
couponTypeList
:
[],
selectedCoupons
:
{},
fee
:
{},
// 费用
// 表单参数
form
:
{
...
...
@@ -472,6 +472,13 @@ export default {
transport
(){
return
this
.
transportList
.
find
(
item
=>
item
.
value
==
this
.
form
.
transportId
)
},
// 根据id获取优惠券
getCoupon
(){
return
couponId
=>
{
if
(
!
couponId
)
return
null
return
this
.
couponList
.
find
(
item
=>
item
.
couponId
==
couponId
)
}
},
currentcyMap
(){
let
map
=
{}
this
.
currencyList
.
forEach
(
item
=>
{
...
...
@@ -501,6 +508,10 @@ export default {
})
return
sum
},
// 总优惠金额
discount
(){
return
0
}
},
watch
:{
...
...
@@ -515,14 +526,14 @@ export default {
'
form.transportId
'
(){
this
.
getOpenedRouterList
},
// 发货联系人发生变化获取发货客户
/
* /
/ 发货联系人发生变化获取发货客户
consignorContact(){
this.getConsignor()
},
// 收货联系人发生变化获取收货客户
consigneeContact(){
this.getConsignee()
},
},
*/
productList
:{
deep
:
true
,
handler
(){
...
...
@@ -537,12 +548,20 @@ export default {
}
},
created
()
{
this
.
couponTypeList
=
this
.
getDictDatas
(
this
.
DICT_TYPE
.
ECW_COUPON_TYPE
)
this
.
couponTypeList
.
forEach
(
item
=>
{
this
.
$set
(
this
.
selectedCoupons
,
item
.
value
,
null
)
})
if
(
this
.
$route
.
query
.
id
){
getOrder
(
this
.
$route
.
query
.
id
).
then
(
res
=>
{
getOrder
Detail
(
this
.
$route
.
query
.
id
).
then
(
res
=>
{
this
.
form
=
res
.
data
this
.
form
.
consignorContactsId
=
res
.
data
.
consignorVO
.
customerContactsId
this
.
form
.
consigneeContactsId
=
res
.
data
.
consigneeVO
.
customerContactsId
/* this.form.consignorContactsId = res.data.consignorVO.customerContactsId
this.form.consigneeContactsId = res.data.consigneeVO.customerContactsId */
this
.
form
.
deliveryDate
=
res
.
data
.
consigneeVO
.
deliveryDate
this
.
form
.
orderItemVOList
.
forEach
(
item
=>
{
item
.
prodAttrArr
=
item
.
prodAttrIds
.
split
(
'
,
'
).
filter
(
item
=>
item
!=
''
)
this
.
addProduct
(
Object
.
assign
({},
item
))
})
})
}
else
this
.
addProduct
()
...
...
@@ -552,6 +571,13 @@ export default {
getCurrencyList
().
then
(
res
=>
this
.
currencyList
=
res
.
data
)
getUnitList
().
then
(
res
=>
this
.
unitList
=
res
.
data
)
this
.
transportList
=
this
.
getDictDatas
(
this
.
DICT_TYPE
.
ECW_TRANSPORT_TYPE
)
this
.
getDictDatas
(
this
.
DICT_TYPE
.
ECW_CUSTOM_DRAWEE
).
forEach
(
item
=>
{
this
.
customDraweeList
.
push
({
label
:
item
.
label
,
// 显示文字
name
:
item
.
value
,
// key值
value
:
2
// 1 发货人,2收货人,默认收货人,可修改
})
})
},
methods
:
{
onProductChange
(
row
,
product
){
...
...
@@ -562,7 +588,7 @@ export default {
onAreaChange
(
type
,
val
){
this
.
$set
(
this
.
form
,
type
,
val
)
},
// 获取发货人
/
* /
/ 获取发货人
getConsignor(){
if(!this.consignorContact){
this.consignor = null
...
...
@@ -579,7 +605,7 @@ export default {
getCustomer(this.consigneeContact.customerId).then(res => {
this.consignee = res.data
})
},
},
*/
onProductAttrChange
(
row
,
attr
){
console
.
log
(
attr
)
this
.
calculationPrice
(
row
)
...
...
@@ -680,12 +706,14 @@ export default {
item
.
channelIds
=
Array
.
from
(
item
.
channelIdSet
).
join
(
'
,
'
)
}
})
let
coupons
=
Object
.
values
(
this
.
selectedCoupons
).
filter
(
item
=>
!!
item
)
// 修改的提交
if
(
this
.
form
.
orderNo
!=
null
)
{
let
data
=
Object
.
assign
({},
this
.
form
,
{
customDraweeVOList
:
this
.
customDrawee
VO
List
,
customDraweeVOList
:
this
.
customDraweeList
,
// transportUpdateReqVOList: this.transportList.filter(item => item._enabled),
orderItemVOList
:
this
.
productList
orderItemVOList
:
this
.
productList
,
couponIds
:
coupons
.
join
(
"
,
"
)
})
updateOrder
(
data
).
then
(
response
=>
{
this
.
$modal
.
msgSuccess
(
"
修改成功
"
);
...
...
@@ -694,12 +722,13 @@ export default {
return
;
}
let
data
=
Object
.
assign
({
consigneeId
:
this
.
consignee
.
id
,
consignorId
:
this
.
consignor
.
id
,
customerId
:
this
.
consignor
.
id
,
consigneeId
:
this
.
consigneeContact
.
customerId
,
consignorId
:
this
.
consignorContact
.
customerId
,
customerId
:
this
.
consignorContact
.
customerId
,
couponIds
:
coupons
.
join
(
"
,
"
),
status
:
type
},
this
.
form
,
{
customDraweeVOList
:
this
.
customDrawee
VO
List
,
customDraweeVOList
:
this
.
customDraweeList
,
// transportUpdateReqVOList: this.transportList.filter(item => item._enabled),
orderItemVOList
:
this
.
productList
})
...
...
src/views/ecw/order/feeApplication.vue
View file @
d18207b2
...
...
@@ -60,7 +60,7 @@
<el-button>
取消
</el-button>
</div>
<div
style=
"padding: 20px"
>
<
my-process-viewer
key=
"designer"
v-model=
"bpmnXML"
v-bind=
"bpmnControlForm"
/>
<
work-flow
xmlkey=
"free_apply"
v-model=
"selectedUsers"
/>
</div>
</div>
</template>
...
...
@@ -69,10 +69,10 @@
import
{
getOrder
,
feeApplicationCreate
,
ApplicationListByOrderId
,
applicationUpdate
}
from
"
@/api/ecw/order
"
;
import
{
getDictDatas
,
DICT_TYPE
}
from
'
@/utils/dict
'
;
import
Template
from
"
@/views/cms/template
"
;
import
{
getProcessDefinitionBpmnXMLByKey
}
from
"
@/api/bpm/definition
"
;
import
workFlow
from
"
@/components/WorkFlow
"
;
export
default
{
name
:
"
feeApplication
"
,
components
:
{
Template
},
components
:
{
Template
,
workFlow
},
props
:{
orderId
:[
Number
,
String
],
},
...
...
@@ -85,10 +85,7 @@ export default {
STATUS
:{},
isModify
:[],
isModifyIf
:
false
,
bpmnXML
:
null
,
bpmnControlForm
:
{
prefix
:
"
activiti
"
},
selectedUsers
:[]
}
},
created
()
{
...
...
@@ -100,10 +97,8 @@ export default {
this
.
getOrderList
()
this
.
getDictDatas
(
this
.
DICT_TYPE
.
AUDIT_STATUS
).
forEach
(
e
=>
{
this
.
STATUS
[
e
.
value
]
=
e
.
label
}),
getProcessDefinitionBpmnXMLByKey
(
"
free_apply
"
).
then
(
response
=>
{
this
.
bpmnXML
=
response
.
data
})
})
},
computed
:{
forbidden
(){
...
...
@@ -142,10 +137,11 @@ export default {
})
}
else
{
if
(
this
.
list
[
this
.
list
.
length
-
1
].
status
===
0
){
feeApplicationCreate
(
{...
this
.
list
[
this
.
list
.
length
-
1
],
status
:
1
}).
then
(
r
=>
{
feeApplicationCreate
(
{...
this
.
list
[
this
.
list
.
length
-
1
],
status
:
1
,
copyUserId
:
this
.
selectedUsers
.
join
(
'
,
'
)
}).
then
(
r
=>
{
if
(
r
.
code
===
0
){
this
.
getOrderList
();
this
.
$message
.
success
(
'
添加成功
'
);
this
.
selectedUsers
=
[];
}
})
}
...
...
src/views/ecw/order/withdrawal.vue
View file @
d18207b2
...
...
@@ -10,7 +10,7 @@
<el-divider></el-divider>
<h2>
审批流程
</h2>
<div
style=
"padding: 20px"
>
<
my-process-viewer
key=
"designer"
v-model=
"bpmnXML"
v-bind=
"bpmnControlForm"
/>
<
work-flow
xmlkey=
"retired_warehouse"
v-model=
"params.copyUserId"
/>
</div>
<div>
<el-button
@
click=
"submit"
type=
"primary"
style=
"margin-right: 20px;"
>
确定退仓
</el-button>
...
...
@@ -23,12 +23,16 @@
import
{
getOrder
}
from
"
@/api/ecw/order
"
;
import
{
orderWarehouseInDelete
}
from
"
@/api/ecw/batchSingleApplication
"
;
import
{
getProcessDefinitionBpmnXMLByKey
}
from
"
@/api/bpm/definition
"
;
import
workFlow
from
"
@/components/WorkFlow
"
;
export
default
{
name
:
"
withdrawal
"
,
props
:{
orderId
:
String
},
components
:{
workFlow
},
data
(){
return
{
orderDetails
:{},
...
...
@@ -40,14 +44,12 @@ export default {
orderId
:
undefined
,
orderNo
:
undefined
,
reason
:
''
,
}
copyUserId
:[]
},
}
},
created
()
{
getOrder
(
this
.
orderId
).
then
(
r
=>
this
.
orderDetails
=
r
.
data
);
getProcessDefinitionBpmnXMLByKey
(
"
retired_warehouse
"
).
then
(
response
=>
{
this
.
bpmnXML
=
response
.
data
})
},
methods
:{
submit
(){
...
...
src/views/ecw/productPrice/edit.vue
View file @
d18207b2
...
...
@@ -191,14 +191,14 @@ export default {
transportPrice
:
[{
required
:
true
,
message
:
"
海运费不能为空
"
,
trigger
:
"
blur
"
}],
clearancePrice
:
[{
required
:
true
,
message
:
"
清关费不能为空
"
,
trigger
:
"
blur
"
}],
advanceStatus
:
[{
required
:
true
,
message
:
"
是否预付不能为空
"
,
trigger
:
"
blur
"
}],
containerLocation
:
[{
required
:
true
,
message
:
"
货柜位置不能为空
"
,
trigger
:
"
blur
"
}],
square
:
[{
required
:
true
,
message
:
"
方数不能为空
"
,
trigger
:
"
blur
"
}],
//
containerLocation: [{ required: true, message: "货柜位置不能为空", trigger: "blur" }],
//
square: [{ required: true, message: "方数不能为空", trigger: "blur" }],
// zhongLinjie:[{ required: true, message: "默认重货标准不能为空", trigger: "blur" }],
// paoLinjie:[{ required: true, message: "默认泡货标准不能为空", trigger: "blur" }],
needBook
:
[{
required
:
true
,
message
:
"
预约入仓不能为空
"
,
trigger
:
"
blur
"
}],
},
product
:
null
,
productType
:
null
,
/* productType: null, */
currencyList
:
[],
unitList
:
[],
productTypeList
:
[],
...
...
@@ -219,11 +219,11 @@ export default {
this
.
form
.
lineChannelList
=
[]
}
},
product
()
{
/*
product() {
getProductType(this.product.typeId).then(res => {
this.productType = res.data
})
},
},
*/
form
(
val
)
{
if
(
!
val
)
return
// 特殊需求回显
...
...
@@ -265,18 +265,29 @@ export default {
}
this
.
lineList
=
res
.
data
})
}
/* // 指定产品
else if (this.$route.query.product_id) {
getProduct(this.$route.query.product_id).then(res => {
this.product = res.data
})
} */
// 获取类型列表
else
{
}
else
{
this
.
productDisabled
=
false
// 获取类型列表
getProductTypeList
().
then
(
res
=>
this
.
productTypeList
=
res
.
data
)
if
(
this
.
$route
.
query
.
product_type
)
{
this
.
$set
(
this
.
form
,
'
productType
'
,
+
this
.
$route
.
query
.
product_type
)
}
if
(
this
.
$route
.
query
.
product_id
)
{
this
.
$set
(
this
.
form
,
'
productId
'
,
+
this
.
$route
.
query
.
product_id
)
/*
getProduct(this.$route.query.product_id).then(res => {
this.product = res.data
}) */
}
}
/* // 指定产品
else
} */
getCurrencyList
().
then
(
res
=>
this
.
currencyList
=
res
.
data
)
getUnitList
().
then
(
res
=>
this
.
unitList
=
res
.
data
)
...
...
src/views/ecw/productType/index.vue
View file @
d18207b2
...
...
@@ -6,7 +6,7 @@
<el-form-item
label=
"关键字"
prop=
"titleZh"
>
<el-input
v-model=
"queryParams.titleZh"
placeholder=
"请输入关键字"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</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>
...
...
@@ -19,7 +19,7 @@
<el-button
type=
"primary"
plain
icon=
"el-icon-plus"
size=
"mini"
@
click=
"handleAdd"
v-hasPermi=
"['ecw:product-type:create']"
>
新增
</el-button>
</el-col>
<right-toolbar
:showSearch.sync=
"showSearch"
@
queryTable=
"getList"
></right-toolbar>
</el-row>
...
...
@@ -41,7 +41,7 @@
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
<el-button
size=
"mini"
type=
"text"
@
click=
"typeProductList(scope.row)"
v-hasPermi=
"['ecw:product:query']"
>
产
品列表
</el-button>
v-hasPermi=
"['ecw:product:query']"
>
商
品列表
</el-button>
<el-button
size=
"mini"
type=
"text"
icon=
"el-icon-edit"
@
click=
"handleUpdate(scope.row)"
v-hasPermi=
"['ecw:product-type:update']"
>
修改
</el-button>
...
...
src/views/index.vue
View file @
d18207b2
...
...
@@ -10,7 +10,11 @@
<el-row>
<ueditor
/>
</el-row>
<el-card
style=
"margin:20px 0"
>
<div
slot=
"header"
>
测试审批抄送
</div>
<work-flow
xmlkey=
"free_apply"
v-model=
"selectedUsers"
/>
<div>
选择的用户:
{{
selectedUsers
}}
</div>
</el-card>
<el-row>
<my-process-viewer
key=
"designer"
v-model=
"bpmnXML"
v-bind=
"bpmnControlForm"
/>
</el-row>
...
...
@@ -49,7 +53,7 @@ import Ueditor from '@/components/Ueditor'
import
{
getProcessDefinitionBpmnXMLByKey
}
from
"
@/api/bpm/definition
"
;
import
WorkFlow
from
'
@/components/WorkFlow
'
const
lineChartData
=
{
newVisitis
:
{
expectedData
:
[
100
,
120
,
161
,
134
,
105
,
160
,
165
],
...
...
@@ -77,12 +81,13 @@ export default {
RaddarChart
,
PieChart
,
BarChart
,
Ueditor
Ueditor
,
WorkFlow
},
data
()
{
return
{
lineChartData
:
lineChartData
.
newVisitis
,
selectedUsers
:[],
// BPMN 数据
bpmnXML
:
null
,
bpmnControlForm
:
{
...
...
src/views/system/dict/index.vue
View file @
d18207b2
...
...
@@ -69,7 +69,7 @@
@
pagination=
"getList"
/>
<!-- 添加或修改参数配置对话框 -->
<el-dialog
:title=
"title"
:visible.sync=
"open"
width=
"500px"
append-to-body
>
<el-dialog
:title=
"title"
:visible.sync=
"open"
width=
"500px"
append-to-body
:close-on-click-modal=
"false"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"80px"
>
<el-form-item
label=
"字典名称"
prop=
"name"
>
<el-input
v-model=
"form.name"
placeholder=
"请输入字典名称"
/>
...
...
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