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
b9d19d8c
Commit
b9d19d8c
authored
Aug 06, 2022
by
dragondean@qq.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
订单控货ui
parent
b007a325
Changes
17
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
1105 additions
and
59 deletions
+1105
-59
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
+1
-1
config.js
src/components/generator/config.js
+0
-26
dict.js
src/utils/dict.js
+2
-0
edit.vue
src/views/ecw/coupon/edit.vue
+3
-3
index.vue
src/views/ecw/coupon/index.vue
+6
-1
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
edit.vue
src/views/ecw/order/edit.vue
+15
-13
edit.vue
src/views/ecw/productPrice/edit.vue
+25
-14
index.vue
src/views/system/dict/index.vue
+1
-1
No files found.
src/components/CustomerContactsSelector/index.vue
0 → 100644
View file @
b9d19d8c
<
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 @
b9d19d8c
<
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
View file @
b9d19d8c
...
...
@@ -11,7 +11,7 @@
/>
<el-form
label-position=
"left"
label-width=
"100px"
>
<el-form-item
label=
"抄送"
>
<el-select
v-model=
"valueSync"
multiple
placeholder=
"请选择抄送人"
>
<el-select
v-model=
"valueSync"
multiple
placeholder=
"请选择抄送人"
style=
"width:100%"
>
<el-option
v-for=
"item in users"
:key=
"item.id"
...
...
src/components/generator/config.js
View file @
b9d19d8c
...
...
@@ -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 @
b9d19d8c
...
...
@@ -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/ecw/coupon/edit.vue
View file @
b9d19d8c
...
...
@@ -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=
"适用线路类型"
...
...
@@ -249,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
'
...
...
@@ -257,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
{
// 遮罩层
...
...
src/views/ecw/coupon/index.vue
View file @
b9d19d8c
...
...
@@ -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/order/cargoControl.vue
0 → 100644
View file @
b9d19d8c
This diff is collapsed.
Click to expand it.
src/views/ecw/order/cargoControlDetail.vue
0 → 100644
View file @
b9d19d8c
<
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 @
b9d19d8c
<
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 @
b9d19d8c
<
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 @
b9d19d8c
<
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 @
b9d19d8c
<
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 @
b9d19d8c
<
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/edit.vue
View file @
b9d19d8c
...
...
@@ -246,7 +246,7 @@
</el-descriptions>
<div
class=
"card-title"
style=
"padding:20px 0;"
>
优惠信息
</div>
<el-row
v-for=
"(item, index) in couponTypeList"
: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=
"请选择优惠"
v-model=
"selectedCoupons[item.value]"
:data-type=
"item.value"
clearable
>
...
...
@@ -255,7 +255,7 @@
</
template
>
</el-select>
</el-col>
<el-col
:span=
"2"
v-if=
"getCoupon(selectedCoupons[item.value])"
>
-
// TODO
美元
</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
>
...
...
@@ -324,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
>
...
...
@@ -407,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
:[],
// 商品信息
...
...
@@ -576,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
){
...
...
@@ -708,7 +710,7 @@ export default {
// 修改的提交
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
,
couponIds
:
coupons
.
join
(
"
,
"
)
...
...
@@ -726,7 +728,7 @@ export default {
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/productPrice/edit.vue
View file @
b9d19d8c
...
...
@@ -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
{
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
)
}
/* // 指定产品
else if (this.$route.query.product_id) {
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
{
this
.
productDisabled
=
false
getProductTypeList
().
then
(
res
=>
this
.
productTypeList
=
res
.
data
)
}) */
}
}
/* // 指定产品
else
} */
getCurrencyList
().
then
(
res
=>
this
.
currencyList
=
res
.
data
)
getUnitList
().
then
(
res
=>
this
.
unitList
=
res
.
data
)
...
...
src/views/system/dict/index.vue
View file @
b9d19d8c
...
...
@@ -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