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
c0153bfa
Commit
c0153bfa
authored
Sep 15, 2022
by
我在何方
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' of
http://gitlab.jdshangmen.com/jiedao-app/jiedao-app-operator
into dev
parents
fb29057f
02e91d10
Changes
21
Show whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
1055 additions
and
642 deletions
+1055
-642
index.vue
src/components/ChooseContactDialog/index.vue
+1
-1
index.vue
src/components/CustomerContactSelector/index.vue
+8
-24
index.vue
src/components/DictSelector/index.vue
+3
-2
index.vue
src/components/ProductSelector/index.vue
+5
-11
index.vue
src/components/QuickCreateCustomer/index.vue
+10
-9
index.vue
src/components/SupplierSelector/index.vue
+10
-7
startPacking.vue
...ews/ecw/box/shippingSea/nodePage/cabinet/startPacking.vue
+7
-1
cusDeclaration.vue
src/views/ecw/box/shippingSea/nodePage/cusDeclaration.vue
+126
-37
preinstall.vue
src/views/ecw/box/shippingSea/nodePage/preinstall.vue
+13
-2
startUnloading.vue
...ecw/box/shippingSea/nodePage/unloading/startUnloading.vue
+8
-3
seaProcess.vue
src/views/ecw/box/shippingSea/seaProcess.vue
+20
-3
utils.js
src/views/ecw/box/shippingSea/utils.js
+13
-0
edit.vue
src/views/ecw/coupon/edit.vue
+33
-5
edit.vue
src/views/ecw/offer/edit.vue
+338
-315
Transfer.vue
src/views/ecw/order/components/Transfer.vue
+4
-3
detail.vue
src/views/ecw/order/detail.vue
+6
-2
edit.vue
src/views/ecw/order/edit.vue
+90
-84
editDialog.vue
src/views/ecw/order/warehousing/components/editDialog.vue
+317
-121
edit.vue
src/views/ecw/supplier/edit.vue
+11
-5
index.vue
src/views/index.vue
+2
-1
index.vue
src/views/system/notice/index.vue
+30
-6
No files found.
src/components/ChooseContactDialog/index.vue
View file @
c0153bfa
<
template
>
<
template
>
<el-dialog
title=
"选择联系人"
visible
:before-close=
"closeDialog"
:close-on-click-modal=
"false"
>
<el-dialog
title=
"选择联系人"
visible
:before-close=
"closeDialog"
:close-on-click-modal=
"false"
>
<div
class=
"header mb-10"
>
<div
class=
"header mb-10
flex-center
"
>
<div
class=
"flex-center"
>
关键字:
</div>
<div
class=
"flex-center"
>
关键字:
</div>
<el-input
v-model=
"form.searchKey"
placeholder=
""
class=
"w-200"
></el-input>
<el-input
v-model=
"form.searchKey"
placeholder=
""
class=
"w-200"
></el-input>
<el-button
type=
"primary"
class=
"ml-10"
@
click=
"handleQuery"
>
搜索
</el-button>
<el-button
type=
"primary"
class=
"ml-10"
@
click=
"handleQuery"
>
搜索
</el-button>
...
...
src/components/CustomerContactSelector/index.vue
View file @
c0153bfa
...
@@ -16,7 +16,7 @@
...
@@ -16,7 +16,7 @@
:value="index">
:value="index">
</el-option>
</el-option>
</el-select>
</el-select>
<
el-button
v-if=
"quickable"
type=
"text"
@
click=
"showQuickCreate=true"
class=
"ml-10"
>
{{
$t
(
'
快速新建
'
)
}}
</el-button
>
<
!--
<el-button
v-if=
"quickable"
type=
"text"
@
click=
"showQuickCreate=true"
class=
"ml-10"
>
{{
$t
(
'
快速新建
'
)
}}
</el-button>
--
>
<!--
<quick-create
v-if=
"showQuickCreate"
@
success=
"onQuickCreateSuccess"
@
close=
"showQuickCreate=false"
:default=
"
{type}">
</quick-create>
-->
<!--
<quick-create
v-if=
"showQuickCreate"
@
success=
"onQuickCreateSuccess"
@
close=
"showQuickCreate=false"
:default=
"
{type}">
</quick-create>
-->
</div>
</div>
...
@@ -33,7 +33,7 @@ export default {
...
@@ -33,7 +33,7 @@ export default {
type
:
Boolean
,
type
:
Boolean
,
default
:
true
default
:
true
},
},
type
:
[
String
,
Number
]
,
// 客户类别,新建时指定默认类别,也可以根据需要筛选联系人所属的客户类别
type
:
String
,
// 客户类别,新建时指定默认类别,也可以根据需要筛选联系人所属的客户类别
},
},
data
(){
data
(){
return
{
return
{
...
@@ -78,19 +78,10 @@ export default {
...
@@ -78,19 +78,10 @@ export default {
const
QuickCreateComp
=
Vue
.
extend
(
QuickCreateCustomer
)
const
QuickCreateComp
=
Vue
.
extend
(
QuickCreateCustomer
)
const
dialog
=
new
QuickCreateComp
({
const
dialog
=
new
QuickCreateComp
({
propsData
:{
propsData
:{
default
:
{
type
:
this
.
type
}
type
:
this
.
type
},
},
})
})
/* dialog.$on = () => {
return {
success: this.onQuickCreateSuccess,
close: () => {
console.log('关闭拉')
this.showQuickCreate = false
}
}
} */
dialog
.
$on
(
'
close
'
,
()
=>
{
dialog
.
$on
(
'
close
'
,
()
=>
{
console
.
log
(
'
关闭拉
'
)
console
.
log
(
'
关闭拉
'
)
this
.
showQuickCreate
=
false
this
.
showQuickCreate
=
false
...
@@ -104,17 +95,8 @@ export default {
...
@@ -104,17 +95,8 @@ export default {
dialog
.
$mount
()
dialog
.
$mount
()
console
.
log
({
dialog
,
parent
:
this
})
window
.
dialogComp
=
dialog
window
.
dialogComp
=
dialog
document
.
body
.
append
(
dialog
.
$el
)
document
.
body
.
append
(
dialog
.
$el
)
/* dialog.remove = () => {
console.log('关闭拉11')
document.body.removeChild(dialog.$el)
} */
}
}
},
},
created
(){
created
(){
...
@@ -145,9 +127,11 @@ export default {
...
@@ -145,9 +127,11 @@ export default {
.
then
(
res
=>
this
.
list
=
res
.
data
)
.
then
(
res
=>
this
.
list
=
res
.
data
)
.
finally
(()
=>
this
.
loading
=
false
)
.
finally
(()
=>
this
.
loading
=
false
)
},
},
onQuickCreateSuccess
(
id
){
onQuickCreateSuccess
(
data
){
this
.
showQuickCreate
=
false
this
.
showQuickCreate
=
false
getCustomerContactsListByCustomer
({
customerId
:
id
}).
then
(
res
=>
{
this
.
list
.
unshift
(
data
)
this
.
index
=
0
/* getCustomerContactsListByCustomer({customerId: id}).then(res => {
if(!res.data || !res.data.length){
if(!res.data || !res.data.length){
return this.$message.error(this.$t('联系人信息获取失败'))
return this.$message.error(this.$t('联系人信息获取失败'))
}
}
...
@@ -155,7 +139,7 @@ export default {
...
@@ -155,7 +139,7 @@ export default {
data.contactsName = data.name // 字段名跟getCustomerContactsSelect对齐
data.contactsName = data.name // 字段名跟getCustomerContactsSelect对齐
this.list.unshift(data)
this.list.unshift(data)
this.index = 0
this.index = 0
})
})
*/
}
}
}
}
}
}
...
...
src/components/DictSelector/index.vue
View file @
c0153bfa
<
template
>
<
template
>
<div
class=
"dict-selector"
>
<div
class=
"dict-selector"
>
<el-select
v-if=
"formType == 'select'"
v-model=
"valueSync"
:placeholder=
"placeholder"
clearable
:multiple=
"multiple"
:disabled=
"disabled"
@
change=
"val => $emit('change', val)"
>
<el-select
v-if=
"formType == 'select'"
v-model=
"valueSync"
:placeholder=
"placeholder"
:clearable=
"clearable"
:multiple=
"multiple"
:disabled=
"disabled"
@
change=
"val => $emit('change', val)"
>
<el-option
v-for=
"dict in formattedList"
<el-option
v-for=
"dict in formattedList"
:key=
"dict.value"
:label=
"$l(dict, 'label')"
:value=
"dict.value"
/>
:key=
"dict.value"
:label=
"$l(dict, 'label')"
:value=
"dict.value"
/>
</el-select>
</el-select>
...
@@ -52,7 +52,8 @@ export default {
...
@@ -52,7 +52,8 @@ export default {
filter
:
{
filter
:
{
type
:
Function
,
type
:
Function
,
default
:
()
=>
true
default
:
()
=>
true
}
},
clearable
:
Boolean
},
},
data
(){
data
(){
return
{
return
{
...
...
src/components/ProductSelector/index.vue
View file @
c0153bfa
...
@@ -41,7 +41,6 @@ export default {
...
@@ -41,7 +41,6 @@ export default {
},
},
watch
:{
watch
:{
index
(
val
){
index
(
val
){
let
productId
=
val
!==
''
&&
val
!==
null
?
this
.
list
[
val
].
id
:
null
let
productId
=
val
!==
''
&&
val
!==
null
?
this
.
list
[
val
].
id
:
null
console
.
log
(
'
index val
'
,
val
,
productId
)
console
.
log
(
'
index val
'
,
val
,
productId
)
this
.
$emit
(
'
input
'
,
productId
)
this
.
$emit
(
'
input
'
,
productId
)
...
@@ -50,15 +49,7 @@ export default {
...
@@ -50,15 +49,7 @@ export default {
},
},
value
(
val
){
value
(
val
){
console
.
log
(
'
初始化内容
'
,
val
)
console
.
log
(
'
初始化内容
'
,
val
)
/* let index = this.list.findIndex(item => item.id == val)
if(index < 0){
getProduct(val).then(res => {
this.list.unshift(res.data)
this.index = 0
})
} */
this
.
init
()
this
.
init
()
}
}
},
},
created
(){
created
(){
...
@@ -67,14 +58,17 @@ export default {
...
@@ -67,14 +58,17 @@ export default {
},
},
methods
:{
methods
:{
init
(){
init
(){
if
(
!
this
.
value
)
return
null
if
(
!
this
.
value
){
this
.
index
=
null
return
}
let
index
=
this
.
list
.
findIndex
(
item
=>
item
.
id
==
this
.
value
)
let
index
=
this
.
list
.
findIndex
(
item
=>
item
.
id
==
this
.
value
)
if
(
index
<
0
){
if
(
index
<
0
){
getProduct
(
this
.
value
).
then
(
res
=>
{
getProduct
(
this
.
value
).
then
(
res
=>
{
this
.
list
.
unshift
(
res
.
data
)
this
.
list
.
unshift
(
res
.
data
)
this
.
index
=
0
this
.
index
=
0
})
})
}
}
else
this
.
index
=
index
},
},
remoteMethod
(
keyword
){
remoteMethod
(
keyword
){
let
params
=
{
let
params
=
{
...
...
src/components/QuickCreateCustomer/index.vue
View file @
c0153bfa
...
@@ -73,14 +73,15 @@ export default {
...
@@ -73,14 +73,15 @@ export default {
},
},
// 表单校验
// 表单校验
rules
:
{
rules
:
{
name
:
[{
required
:
true
,
message
:
"
客户名称不能为空
"
,
trigger
:
"
blur
"
}],
name
:
[{
required
:
true
,
message
:
this
.
$t
(
"
客户名称不能为空
"
),
trigger
:
"
blur
"
}],
'
customerContacts.0.phoneNew
'
:
[{
required
:
true
,
message
:
"
手机号不能为空
"
,
trigger
:
"
blur
"
}],
'
customerContacts.0.phoneNew
'
:
[{
required
:
true
,
message
:
this
.
$t
(
"
手机号不能为空
"
),
trigger
:
"
blur
"
}],
type
:
[{
required
:
true
,
message
:
"
客户类别不能为空
"
,
trigger
:
"
blur
"
}],
'
customerContacts.0.name
'
:
[{
required
:
true
,
message
:
this
.
$t
(
"
联系人不能为空
"
),
trigger
:
"
blur
"
}],
createTime
:
[{
required
:
true
,
message
:
"
创建时间不能为空
"
,
trigger
:
"
blur
"
}],
type
:
[{
required
:
true
,
message
:
this
.
$t
(
"
客户类别不能为空
"
),
trigger
:
"
blur
"
}],
source
:
[{
required
:
true
,
message
:
"
客户来源不能为空
"
,
trigger
:
"
blur
"
}],
createTime
:
[{
required
:
true
,
message
:
this
.
$t
(
"
创建时间不能为空
"
),
trigger
:
"
blur
"
}],
customerService
:
[{
required
:
true
,
message
:
"
客户经理不能为空
"
,
trigger
:
"
blur
"
}],
source
:
[{
required
:
true
,
message
:
this
.
$t
(
"
客户来源不能为空
"
),
trigger
:
"
blur
"
}],
status
:
[{
required
:
true
,
message
:
"
客户状态不能为空
"
,
trigger
:
"
blur
"
}],
customerService
:
[{
required
:
true
,
message
:
this
.
$t
(
"
客户经理不能为空
"
),
trigger
:
"
blur
"
}],
founder
:
[{
required
:
true
,
message
:
"
创建人不能为空
"
,
trigger
:
"
blur
"
}],
status
:
[{
required
:
true
,
message
:
this
.
$t
(
"
客户状态不能为空
"
),
trigger
:
"
blur
"
}],
founder
:
[{
required
:
true
,
message
:
this
.
$t
(
"
创建人不能为空
"
),
trigger
:
"
blur
"
}],
},
},
serviceUserList
:
[],
serviceUserList
:
[],
countryList
:
[],
countryList
:
[],
...
@@ -121,7 +122,7 @@ export default {
...
@@ -121,7 +122,7 @@ export default {
// 添加的提交
// 添加的提交
createCustomer
(
this
.
form
).
then
(
res
=>
{
createCustomer
(
this
.
form
).
then
(
res
=>
{
this
.
$modal
.
msgSuccess
(
"
新增成功
"
);
this
.
$modal
.
msgSuccess
(
"
新增成功
"
);
return
getCustomerContactsSelect
({
ids
:
res
.
data
})
return
getCustomerContactsSelect
({
customerId
:
res
.
data
})
}).
then
(
res
=>
{
}).
then
(
res
=>
{
this
.
$emit
(
'
success
'
,
res
.
data
[
0
])
this
.
$emit
(
'
success
'
,
res
.
data
[
0
])
})
})
...
...
src/components/SupplierSelector/index.vue
View file @
c0153bfa
...
@@ -11,17 +11,17 @@
...
@@ -11,17 +11,17 @@
<el-option
<el-option
v-for=
"(item, index) in list"
v-for=
"(item, index) in list"
:key=
"item.id"
:key=
"item.id"
:label=
"
`$
{item.name}(${item.number})`
"
:label=
"
$l(item, 'company') + '('+item.companyCode+')'
"
:value=
"index"
>
:value=
"index"
>
</el-option>
</el-option>
</el-select>
</el-select>
</
template
>
</
template
>
<
script
>
<
script
>
import
{
getSupplier
,
getSupplierPage
}
from
'
@/api/ecw/supplier
'
import
{
getSupplier
,
getSupplierPage
}
from
'
@/api/ecw/supplier
'
// TODO 接口暂不支持关键词搜索,待接口支持后完善
export
default
{
export
default
{
props
:{
props
:{
product
Type
:
[
String
,
Number
],
company
Type
:
[
String
,
Number
],
value
:
[
String
,
Number
]
value
:
[
String
,
Number
]
},
},
data
(){
data
(){
...
@@ -41,6 +41,7 @@ export default {
...
@@ -41,6 +41,7 @@ export default {
}
}
},
},
created
(){
created
(){
this
.
remoteMethod
(
''
)
this
.
init
()
this
.
init
()
},
},
methods
:{
methods
:{
...
@@ -52,14 +53,16 @@ export default {
...
@@ -52,14 +53,16 @@ export default {
this
.
list
.
unshift
(
res
.
data
)
this
.
list
.
unshift
(
res
.
data
)
this
.
index
=
0
this
.
index
=
0
})
})
}
}
else
this
.
index
=
index
},
},
remoteMethod
(
keyword
){
remoteMethod
(
keyword
){
let
params
=
{}
let
params
=
{
params
.
searchKey
=
keyword
pageSize
:
100
}
params
.
keyword
=
keyword
this
.
loading
=
true
this
.
loading
=
true
getSupplierPage
(
params
)
getSupplierPage
(
params
)
.
then
(
res
=>
this
.
list
=
res
.
data
)
.
then
(
res
=>
this
.
list
=
res
.
data
.
list
)
.
finally
(()
=>
this
.
loading
=
false
)
.
finally
(()
=>
this
.
loading
=
false
)
}
}
}
}
...
...
src/views/ecw/box/shippingSea/nodePage/cabinet/startPacking.vue
View file @
c0153bfa
...
@@ -117,7 +117,7 @@
...
@@ -117,7 +117,7 @@
<el-button
type=
"primary"
@
click=
"handlerClick('modifyCabinet','修改柜信息')"
>
修改柜信息
</el-button>
<el-button
type=
"primary"
@
click=
"handlerClick('modifyCabinet','修改柜信息')"
>
修改柜信息
</el-button>
</div>
</div>
<div
v-if=
"isUnderReview"
>
<div
v-if=
"isUnderReview"
>
<el-button
type=
"primary"
:disabled=
true
>
封柜审核中
</el-button>
<el-button
type=
"primary"
@
click=
"jumpReviewDetail"
>
封柜审核中
</el-button>
<el-button
plain
type=
"primary"
@
click=
"canclAudit"
>
取消审核
</el-button>
<el-button
plain
type=
"primary"
@
click=
"canclAudit"
>
取消审核
</el-button>
<el-button
plain
type=
"primary"
@
click=
"$emit('closeDialog')"
>
返回
</el-button>
<el-button
plain
type=
"primary"
@
click=
"$emit('closeDialog')"
>
返回
</el-button>
</div>
</div>
...
@@ -220,6 +220,7 @@ import {
...
@@ -220,6 +220,7 @@ import {
serviceMsg
,
serviceMsg
,
getCapacity
,
getCapacity
,
sumStatistics
,
sumStatistics
,
toReviewDetail
,
}
from
"
../../utils
"
;
}
from
"
../../utils
"
;
import
splitOrder
from
"
./splitOrder.vue
"
;
import
splitOrder
from
"
./splitOrder.vue
"
;
import
WorkFlow
from
"
@/components/WorkFlow
"
;
import
WorkFlow
from
"
@/components/WorkFlow
"
;
...
@@ -519,6 +520,11 @@ export default {
...
@@ -519,6 +520,11 @@ export default {
});
});
});
});
},
},
jumpReviewDetail
()
{
const
{
cabinetApprovalInfo
}
=
this
.
shipmentObj
;
toReviewDetail
.
apply
(
this
,
[
cabinetApprovalInfo
.
bpmProcessId
]);
this
.
$emit
(
"
closeDialog
"
,
"
close
"
);
},
},
},
computed
:
{
computed
:
{
/* 是否审核中 */
/* 是否审核中 */
...
...
src/views/ecw/box/shippingSea/nodePage/cusDeclaration.vue
View file @
c0153bfa
...
@@ -30,7 +30,7 @@
...
@@ -30,7 +30,7 @@
<el-date-picker
type=
"datetime"
placeholder=
"请选择日期"
v-model=
"cusDeclarationObj.dcCutOffTime"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
<el-date-picker
type=
"datetime"
placeholder=
"请选择日期"
v-model=
"cusDeclarationObj.dcCutOffTime"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
</el-form-item>
</el-form-item>
<el-form-item
label=
"状态"
prop=
"dcCustomsStatus"
>
<el-form-item
label=
"状态"
prop=
"dcCustomsStatus"
>
<el-radio-group
v-model=
"cusDeclarationObj.dcCustomsStatus"
>
<el-radio-group
v-model=
"cusDeclarationObj.dcCustomsStatus"
:disabled=
"inReview"
>
<el-radio
v-for=
"item in this.getDictDatas(DICT_TYPE.BOX_SHIPPING_DCCUSTOMS_STATUS)"
:key=
"item.value"
:label=
"item.value"
>
{{item.label}}
</el-radio>
<el-radio
v-for=
"item in this.getDictDatas(DICT_TYPE.BOX_SHIPPING_DCCUSTOMS_STATUS)"
:key=
"item.value"
:label=
"item.value"
>
{{item.label}}
</el-radio>
</el-radio-group>
</el-radio-group>
</el-form-item>
</el-form-item>
...
@@ -38,7 +38,7 @@
...
@@ -38,7 +38,7 @@
<!-- 查验 -->
<!-- 查验 -->
<div
v-show=
"cusDeclarationObj.dcCustomsStatus === '3'"
>
<div
v-show=
"cusDeclarationObj.dcCustomsStatus === '3'"
>
<el-form-item
label=
"查验"
>
<el-form-item
label=
"查验"
>
<el-radio-group
v-model=
"cusDeclarationObj.dcCheckStatus"
>
<el-radio-group
v-model=
"cusDeclarationObj.dcCheckStatus"
:disabled=
"inReview"
>
<el-radio
v-for=
"item in this.getDictDatas(DICT_TYPE.BOX_SHIPPING_CHECK_STATUS)"
:key=
"item.value"
:label=
"item.value"
>
{{item.label}}
</el-radio>
<el-radio
v-for=
"item in this.getDictDatas(DICT_TYPE.BOX_SHIPPING_CHECK_STATUS)"
:key=
"item.value"
:label=
"item.value"
>
{{item.label}}
</el-radio>
</el-radio-group>
</el-radio-group>
</el-form-item>
</el-form-item>
...
@@ -70,9 +70,13 @@
...
@@ -70,9 +70,13 @@
</el-form-item>
</el-form-item>
</el-form>
</el-form>
<el-row
class=
"operate-button"
v-if=
"inReview"
>
<el-button
type=
"primary"
@
click=
"jumpReviewDetail"
>
{{cusDeclarationObj.dcCheckStatus === '1' ? '部分退场审核中' : '全部退场审核中'}}
</el-button>
<el-button
type=
"primary"
plain
@
click=
"canclAudit"
>
{{cusDeclarationObj.dcCheckStatus === '1' ? '取消部分退场审核' : '取消全部退场审核'}}
</el-button>
</el-row>
<el-row
class=
"operate-button"
>
<el-row
class=
"operate-button"
>
<el-button
type=
"primary"
@
click=
"onSubmit(1)"
>
保存
</el-button>
<el-button
type=
"primary"
@
click=
"onSubmit(1)"
>
保存
</el-button>
<el-button
type=
"success"
@
click=
"onSubmit(2)"
>
提交
</el-button>
<el-button
type=
"success"
v-if=
"!inReview"
@
click=
"onSubmit(2)"
>
提交
</el-button>
<el-button
@
click=
"cancel"
>
关闭
</el-button>
<el-button
@
click=
"cancel"
>
关闭
</el-button>
<el-button
type=
"primary"
@
click=
"extraCost"
v-show=
"cusDeclarationObj.dcCustomsStatus === '2' || cusDeclarationObj.dcCustomsStatus === '3'"
>
额外费用
</el-button>
<el-button
type=
"primary"
@
click=
"extraCost"
v-show=
"cusDeclarationObj.dcCustomsStatus === '2' || cusDeclarationObj.dcCustomsStatus === '3'"
>
额外费用
</el-button>
</el-row>
</el-row>
...
@@ -141,7 +145,12 @@ import {
...
@@ -141,7 +145,12 @@ import {
extraCostUpdate
,
extraCostUpdate
,
approvalCreate
,
approvalCreate
,
}
from
"
@/api/ecw/boxSea
"
;
}
from
"
@/api/ecw/boxSea
"
;
import
{
formatNumberString
,
formatDateStr
,
serviceMsg
}
from
"
../utils
"
;
import
{
formatNumberString
,
formatDateStr
,
serviceMsg
,
toReviewDetail
,
}
from
"
../utils
"
;
import
ImageUpload
from
"
@/components/ImageUpload
"
;
import
ImageUpload
from
"
@/components/ImageUpload
"
;
/**
/**
...
@@ -151,6 +160,9 @@ export default {
...
@@ -151,6 +160,9 @@ export default {
name
:
"
cusDeclaration
"
,
name
:
"
cusDeclaration
"
,
inheritAttrs
:
false
,
inheritAttrs
:
false
,
components
:
{
supplierSelect
,
ImageUpload
},
components
:
{
supplierSelect
,
ImageUpload
},
props
:
{
shipmentObj
:
Object
,
},
data
()
{
data
()
{
return
{
return
{
// 报关对象
// 报关对象
...
@@ -160,7 +172,9 @@ export default {
...
@@ -160,7 +172,9 @@ export default {
dcBoxWgt
:
[{
required
:
true
,
message
:
"
必填
"
,
trigger
:
"
change
"
}],
dcBoxWgt
:
[{
required
:
true
,
message
:
"
必填
"
,
trigger
:
"
change
"
}],
dcGoodsWgt
:
[{
required
:
true
,
message
:
"
必填
"
,
trigger
:
"
change
"
}],
dcGoodsWgt
:
[{
required
:
true
,
message
:
"
必填
"
,
trigger
:
"
change
"
}],
dcCustomsType
:
[{
required
:
true
,
message
:
"
必填
"
,
trigger
:
"
change
"
}],
dcCustomsType
:
[{
required
:
true
,
message
:
"
必填
"
,
trigger
:
"
change
"
}],
dcCustomsStatus
:
[{
required
:
true
,
message
:
"
必填
"
,
trigger
:
"
change
"
}],
dcCustomsStatus
:
[
{
required
:
true
,
message
:
"
必填
"
,
trigger
:
"
change
"
},
],
},
},
// 弹窗配置
// 弹窗配置
dialogConfig
:
{
dialogConfig
:
{
...
@@ -173,14 +187,16 @@ export default {
...
@@ -173,14 +187,16 @@ export default {
costOrderList
:
[],
costOrderList
:
[],
// 额外费用列表
// 额外费用列表
costList
:
[],
costList
:
[],
// 是否审核中
inReview
:
false
,
};
};
},
},
created
()
{
created
()
{
const
{
currNode
,
shipmentObj
}
=
this
.
$attrs
;
const
{
currNode
}
=
this
.
$attrs
;
const
{
voName
}
=
currNode
;
const
{
voName
}
=
currNode
;
let
oldData
=
{
let
oldData
=
{
...
shipmentObj
[
voName
],
...
this
.
shipmentObj
[
voName
],
documentInfo
:
shipmentObj
.
documentInfo
?.
split
(
"
,
"
)
??
[],
documentInfo
:
this
.
shipmentObj
.
documentInfo
?.
split
(
"
,
"
)
??
[],
};
};
oldData
=
formatDateStr
(
oldData
,
[
oldData
=
formatDateStr
(
oldData
,
[
"
dcCutOffTime
"
,
"
dcCutOffTime
"
,
...
@@ -199,36 +215,73 @@ export default {
...
@@ -199,36 +215,73 @@ export default {
const
newList
=
Array
.
from
(
new
Set
(
documentInfo
));
const
newList
=
Array
.
from
(
new
Set
(
documentInfo
));
return
newList
.
length
>
2
?
"
混合报关
"
:
"
VGM声明
"
;
return
newList
.
length
>
2
?
"
混合报关
"
:
"
VGM声明
"
;
},
},
submitCustomsCreate
(
operateType
)
{
customsCreate
({
...
this
.
cusDeclarationObj
,
shipmentId
:
this
.
shipmentObj
.
id
,
operateType
,
}).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
(()
=>
{
this
.
cancel
(
"
submit
"
);
});
});
},
/** 提交 */
/** 提交 */
onSubmit
(
operateType
)
{
onSubmit
(
operateType
)
{
this
.
$refs
[
"
cusDeclarationForm
"
].
validate
((
valid
)
=>
{
this
.
$refs
[
"
cusDeclarationForm
"
].
validate
((
valid
)
=>
{
if
(
valid
)
{
if
(
valid
)
{
if
(
operateType
===
1
)
{
this
.
submitCustomsCreate
(
operateType
);
return
;
// 保存
}
// 提交
const
{
dcCustomsStatus
,
dcCheckStatus
}
=
this
.
cusDeclarationObj
;
// 1.状态 报关中/放行 直接提交
if
(
dcCustomsStatus
!==
"
3
"
)
{
this
.
submitCustomsCreate
(
operateType
);
return
;
}
// 2.查验状态,空 直接提交
if
(
!
dcCheckStatus
)
{
this
.
submitCustomsCreate
(
operateType
);
return
;
}
// 3.查验状态,查验后放行 直接提交
if
(
dcCheckStatus
===
"
3
"
)
{
const
{
checkExamineStatus
}
=
this
.
shipmentObj
;
// 没有退场审核中的状态
if
(
checkExamineStatus
!==
1
)
{
this
.
submitCustomsCreate
(
operateType
);
return
;
}
}
// 4.查验状态,退场/部分退场 提示
if
([
"
1
"
,
"
2
"
].
includes
(
dcCheckStatus
))
{
const
{
checkExamineStatus
}
=
this
.
shipmentObj
;
// 退场审核状态,1-审核中,2-审核成功,3-审核失败,4-取消
if
([
0
,
3
,
4
].
includes
(
checkExamineStatus
))
{
this
.
$modal
.
confirm
(
`您确认提交
${
dcCheckStatus
===
"
1
"
?
"
全部退场
"
:
"
部分退场
"
}
审核吗?`
)
.
then
(()
=>
{
customsCreate
({
customsCreate
({
...
this
.
cusDeclarationObj
,
...
this
.
cusDeclarationObj
,
shipmentId
:
this
.
$attr
s
.
shipmentObj
.
id
,
shipmentId
:
thi
s
.
shipmentObj
.
id
,
operateType
,
operateType
,
}).
then
((
res
)
=>
{
// 查验
const
{
dcCustomsStatus
,
dcCheckStatus
}
=
this
.
cusDeclarationObj
;
if
(
dcCustomsStatus
===
"
3
"
)
{
// 退场/部分退场
if
([
"
1
"
,
"
2
"
].
includes
(
dcCheckStatus
))
{
approvalCreate
({
approvalStatus
:
0
,
approvalType
:
dcCheckStatus
===
"
1
"
?
5
:
6
,
// 5报关全退,6报关部分退
shipmentId
:
this
.
$attrs
.
shipmentObj
.
id
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
(()
=>
{
serviceMsg
(
res
,
this
).
then
(()
=>
{
this
.
cancel
(
"
submit
"
);
// 触发外层重新查询出货信息
this
.
$emit
(
"
getBoxInfo
"
);
});
});
});
});
})
.
catch
(()
=>
{});
}
}
}
else
{
serviceMsg
(
res
,
this
).
then
(()
=>
{
this
.
cancel
(
"
submit
"
);
});
}
}
});
}
}
});
});
},
},
...
@@ -239,7 +292,7 @@ export default {
...
@@ -239,7 +292,7 @@ export default {
return
;
return
;
}
}
extraCostOrder
({
extraCostOrder
({
shipmentId
:
this
.
$attrs
.
shipmentObj
.
id
,
shipmentId
:
this
.
shipmentObj
.
id
,
orderNo
:
this
.
orderNo
,
orderNo
:
this
.
orderNo
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
this
.
costOrderList
=
[
this
.
costOrderList
=
[
...
@@ -254,7 +307,7 @@ export default {
...
@@ -254,7 +307,7 @@ export default {
/* 查询额外费用订单 */
/* 查询额外费用订单 */
searchCostList
(
orderId
)
{
searchCostList
(
orderId
)
{
extraCostList
({
extraCostList
({
shipmentId
:
this
.
$attrs
.
shipmentObj
.
id
,
shipmentId
:
this
.
shipmentObj
.
id
,
orderId
:
orderId
,
orderId
:
orderId
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
this
.
costList
=
res
.
data
.
map
((
item
)
=>
{
this
.
costList
=
res
.
data
.
map
((
item
)
=>
{
...
@@ -272,7 +325,7 @@ export default {
...
@@ -272,7 +325,7 @@ export default {
fee
:
row
.
fee
,
fee
:
row
.
fee
,
orderId
:
row
.
orderId
,
orderId
:
row
.
orderId
,
orderNo
:
row
.
orderNo
,
orderNo
:
row
.
orderNo
,
shipmentId
:
this
.
$attrs
.
shipmentObj
.
id
,
shipmentId
:
this
.
shipmentObj
.
id
,
}).
then
((
res
)
=>
{
}).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
(()
=>
{
serviceMsg
(
res
,
this
).
then
(()
=>
{
this
.
searchCostList
(
row
.
orderId
);
this
.
searchCostList
(
row
.
orderId
);
...
@@ -321,12 +374,15 @@ export default {
...
@@ -321,12 +374,15 @@ export default {
},
},
// 额外费用
// 额外费用
extraCost
()
{
extraCost
()
{
const
{
shipmentObj
}
=
this
.
$attrs
;
// 清空额外费用
// 清空额外费用
this
.
orderNo
=
""
;
this
.
orderNo
=
""
;
this
.
costOrderList
=
[];
this
.
costOrderList
=
[];
this
.
costList
=
[];
this
.
costList
=
[];
this
.
$set
(
this
.
dialogConfig
,
"
title
"
,
`
${
shipmentObj
.
selfNo
}
报关费用`
);
this
.
$set
(
this
.
dialogConfig
,
"
title
"
,
`
${
this
.
shipmentObj
.
selfNo
}
报关费用`
);
this
.
$set
(
this
.
dialogConfig
,
"
dialogVisible
"
,
true
);
this
.
$set
(
this
.
dialogConfig
,
"
dialogVisible
"
,
true
);
},
},
// 计算VGM重量
// 计算VGM重量
...
@@ -345,6 +401,27 @@ export default {
...
@@ -345,6 +401,27 @@ export default {
dcBoxWgtTmp
+
dcGoodsWgtTmp
dcBoxWgtTmp
+
dcGoodsWgtTmp
);
);
},
},
// 审核详情
jumpReviewDetail
()
{
const
{
customsApprovalInfo
}
=
this
.
shipmentObj
;
toReviewDetail
.
apply
(
this
,
[
customsApprovalInfo
.
bpmProcessId
]);
this
.
cancel
(
"
close
"
);
},
/* 取消审核 */
canclAudit
()
{
const
{
currNode
,
shipmentObj
}
=
this
.
$attrs
;
const
{
voName
}
=
currNode
;
approvalCancel
({
applyReason
:
"
取消审核
"
,
id
:
shipmentObj
[
voName
].
id
,
shipmentId
:
shipmentObj
.
id
,
}).
then
((
res
)
=>
{
serviceMsg
(
res
,
this
).
then
(()
=>
{
// 触发外层重新查询出货信息
this
.
$emit
(
"
getBoxInfo
"
);
});
});
},
},
},
watch
:
{
watch
:
{
"
cusDeclarationObj.dcBoxWgt
"
(
dcBoxWgt
)
{
"
cusDeclarationObj.dcBoxWgt
"
(
dcBoxWgt
)
{
...
@@ -358,6 +435,18 @@ export default {
...
@@ -358,6 +435,18 @@ export default {
this
.
$set
(
this
.
cusDeclarationObj
,
"
dcCheckStatus
"
,
""
);
this
.
$set
(
this
.
cusDeclarationObj
,
"
dcCheckStatus
"
,
""
);
}
}
},
},
shipmentObj
:
{
deep
:
true
,
immediate
:
true
,
handler
:
function
(
val
)
{
// 监听查验状态变化
let
{
checkExamineStatus
}
=
val
;
if
(
checkExamineStatus
===
1
)
{
// 按钮变成审核中
this
.
inReview
=
true
;
}
},
},
},
},
};
};
</
script
>
</
script
>
...
...
src/views/ecw/box/shippingSea/nodePage/preinstall.vue
View file @
c0153bfa
...
@@ -277,7 +277,7 @@
...
@@ -277,7 +277,7 @@
<work-flow
xmlkey=
"shipment_preassemble"
v-model=
"selectedUsers"
></work-flow>
<work-flow
xmlkey=
"shipment_preassemble"
v-model=
"selectedUsers"
></work-flow>
</div>
</div>
<div
v-show=
"isAudit"
>
<div
v-show=
"isAudit"
>
<el-button
type=
"primary"
:disabled=
true
>
审核中
</el-button>
<el-button
type=
"primary"
@
click=
"jumpReviewDetail"
>
审核中
</el-button>
<el-button
plain
type=
"primary"
@
click=
"canclAudit"
>
取消审核
</el-button>
<el-button
plain
type=
"primary"
@
click=
"canclAudit"
>
取消审核
</el-button>
<el-button
plain
type=
"primary"
@
click=
"closeDialog"
>
返回
</el-button>
<el-button
plain
type=
"primary"
@
click=
"closeDialog"
>
返回
</el-button>
</div>
</div>
...
@@ -302,7 +302,13 @@ import {
...
@@ -302,7 +302,13 @@ import {
approvalCancel
,
approvalCancel
,
}
from
"
@/api/ecw/boxSea
"
;
}
from
"
@/api/ecw/boxSea
"
;
import
userSelect
from
"
./common/userSelect.vue
"
;
import
userSelect
from
"
./common/userSelect.vue
"
;
import
{
formatDate
,
getTotlContent
,
serviceMsg
,
getCapacity
}
from
"
../utils
"
;
import
{
formatDate
,
getTotlContent
,
serviceMsg
,
getCapacity
,
toReviewDetail
,
}
from
"
../utils
"
;
import
dayjs
from
"
dayjs
"
;
import
dayjs
from
"
dayjs
"
;
import
WorkFlow
from
"
@/components/WorkFlow
"
;
import
WorkFlow
from
"
@/components/WorkFlow
"
;
...
@@ -613,6 +619,11 @@ export default {
...
@@ -613,6 +619,11 @@ export default {
});
});
});
});
},
},
jumpReviewDetail
()
{
const
{
currNode
,
shipmentObj
}
=
this
.
$attrs
;
toReviewDetail
.
apply
(
this
,
[
shipmentObj
[
currNode
.
voName
].
bpmProcessId
]);
this
.
$emit
(
"
closeDialog
"
);
},
},
},
};
};
</
script
>
</
script
>
...
...
src/views/ecw/box/shippingSea/nodePage/unloading/startUnloading.vue
View file @
c0153bfa
...
@@ -56,7 +56,7 @@
...
@@ -56,7 +56,7 @@
</el-table-column>
</el-table-column>
<el-table-column
label=
"异常状态"
align=
"center"
prop=
""
>
<el-table-column
label=
"异常状态"
align=
"center"
prop=
""
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-button
type=
"text"
size=
"small"
@
click=
"handleError(scope.row)"
icon=
"el-icon-edit"
>
{{
getOrderError
(
scope
.
row
,
'
errorStatus
'
)
}}
</el-button>
<el-button
v-if=
"scope.row.exceptionList"
type=
"text"
size=
"small"
@
click=
"handleError(scope.row)"
icon=
"el-icon-edit"
>
{{
getOrderError
(
scope
.
row
,
'
errorStatus
'
)
}}
</el-button>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"异常类型"
align=
"center"
prop=
""
>
<el-table-column
label=
"异常类型"
align=
"center"
prop=
""
>
...
@@ -100,7 +100,7 @@
...
@@ -100,7 +100,7 @@
<el-button
plain
type=
"primary"
@
click=
"$emit('closeStart')"
>
返回
</el-button>
<el-button
plain
type=
"primary"
@
click=
"$emit('closeStart')"
>
返回
</el-button>
</div>
</div>
<div
v-if=
"isUnderReview"
>
<div
v-if=
"isUnderReview"
>
<el-button
type=
"primary"
:disabled=
true
>
卸柜审核中
</el-button>
<el-button
type=
"primary"
@
click=
"jumpReviewDetail"
>
卸柜审核中
</el-button>
<el-button
plain
type=
"primary"
@
click=
"canclAudit"
>
取消审核
</el-button>
<el-button
plain
type=
"primary"
@
click=
"canclAudit"
>
取消审核
</el-button>
<el-button
plain
type=
"primary"
@
click=
"$emit('closeStart')"
>
返回
</el-button>
<el-button
plain
type=
"primary"
@
click=
"$emit('closeStart')"
>
返回
</el-button>
</div>
</div>
...
@@ -123,7 +123,7 @@ import {
...
@@ -123,7 +123,7 @@ import {
approvalCancel
,
approvalCancel
,
getSectionList
,
getSectionList
,
}
from
"
@/api/ecw/boxSea
"
;
}
from
"
@/api/ecw/boxSea
"
;
import
{
serviceMsg
,
getTotlContent
}
from
"
../../utils
"
;
import
{
serviceMsg
,
getTotlContent
,
toReviewDetail
}
from
"
../../utils
"
;
import
WorkFlow
from
"
@/components/WorkFlow
"
;
import
WorkFlow
from
"
@/components/WorkFlow
"
;
/**
/**
...
@@ -302,6 +302,11 @@ export default {
...
@@ -302,6 +302,11 @@ export default {
path
:
`/order/pending?id=
${
row
.
orderId
}
`
,
path
:
`/order/pending?id=
${
row
.
orderId
}
`
,
});
});
},
},
jumpReviewDetail
()
{
const
{
cabinetUnloadApprovalInfo
}
=
this
.
$attrs
.
shipmentObj
;
toReviewDetail
.
apply
(
this
,
[
cabinetUnloadApprovalInfo
.
bpmProcessId
]);
this
.
$emit
(
"
closeStart
"
,
"
close
"
);
},
},
},
computed
:
{
computed
:
{
/* 是否审核中 */
/* 是否审核中 */
...
...
src/views/ecw/box/shippingSea/seaProcess.vue
View file @
c0153bfa
...
@@ -20,7 +20,7 @@
...
@@ -20,7 +20,7 @@
<!-- 弹窗 -->
<!-- 弹窗 -->
<el-dialog
custom-class=
"shipping-dialog"
:title=
"dialogConfig.title"
:visible.sync=
"dialogConfig.dialogVisible"
:width=
"dialogConfig.width"
:fullscreen=
"dialogConfig.fullscreen"
:close-on-click-modal=
false
:modal-append-to-body=
false
append-to-body
>
<el-dialog
custom-class=
"shipping-dialog"
:title=
"dialogConfig.title"
:visible.sync=
"dialogConfig.dialogVisible"
:width=
"dialogConfig.width"
:fullscreen=
"dialogConfig.fullscreen"
:close-on-click-modal=
false
:modal-append-to-body=
false
append-to-body
>
<component
v-bind:is=
"currentComponent"
v-if=
"dialogConfig.dialogVisible"
@
closeDialog=
"closeDialog"
v-bind=
"$attrs"
:shipmentObj=
"shipmentObj"
:currNode=
"currNode"
></component>
<component
v-bind:is=
"currentComponent"
v-if=
"dialogConfig.dialogVisible"
@
closeDialog=
"closeDialog"
v-bind=
"$attrs"
v-on=
"$listeners"
:shipmentObj=
"shipmentObj"
:currNode=
"currNode"
></component>
</el-dialog>
</el-dialog>
</div>
</div>
</
template
>
</
template
>
...
@@ -178,7 +178,8 @@ export default {
...
@@ -178,7 +178,8 @@ export default {
watch
:
{
watch
:
{
/* 监听发货对象 */
/* 监听发货对象 */
shipmentObj
(
val
)
{
shipmentObj
(
val
)
{
let
newNodes
=
[];
let
newNodes
=
[],
finish
=
0
;
// 迭代每个节点
// 迭代每个节点
for
(
let
i
=
0
;
i
<
this
.
seaBaseData
.
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
this
.
seaBaseData
.
length
;
i
++
)
{
const
nodes
=
this
.
seaBaseData
[
i
];
const
nodes
=
this
.
seaBaseData
[
i
];
...
@@ -187,6 +188,7 @@ export default {
...
@@ -187,6 +188,7 @@ export default {
const
node
=
nodes
[
j
];
const
node
=
nodes
[
j
];
const
{
keyName
,
voName
,
status
,
type
}
=
node
;
const
{
keyName
,
voName
,
status
,
type
}
=
node
;
// agent
if
(
!
keyName
&&
type
===
"
agent
"
)
{
if
(
!
keyName
&&
type
===
"
agent
"
)
{
if
(
val
[
voName
])
{
if
(
val
[
voName
])
{
// 已完成agent节点
// 已完成agent节点
...
@@ -212,6 +214,20 @@ export default {
...
@@ -212,6 +214,20 @@ export default {
if
(
end
.
includes
(
val
[
keyName
]))
{
if
(
end
.
includes
(
val
[
keyName
]))
{
node
.
currStatus
=
"
end
"
;
node
.
currStatus
=
"
end
"
;
// 报关
if
(
type
===
"
cusDeclaration
"
)
{
const
{
dcCustomsStatus
,
dcCheckStatus
}
=
val
;
// 查验状态并且是退场/部分退场
if
(
dcCustomsStatus
===
3
&&
[
1
,
2
].
includes
(
dcCheckStatus
))
{
// 只有审核通过并且已处理才算完成
if
(
val
.
checkExamineStatus
===
2
&&
val
.
checkDealStatus
===
1
)
{
// 已完成节点个数
++
nodeIndex
;
}
else
{
continue
;
}
}
}
// 已完成节点个数
// 已完成节点个数
++
nodeIndex
;
++
nodeIndex
;
}
}
...
@@ -219,10 +235,11 @@ export default {
...
@@ -219,10 +235,11 @@ export default {
// 如果相等标识该步骤已完成
// 如果相等标识该步骤已完成
if
(
nodeIndex
===
nodes
.
length
)
{
if
(
nodeIndex
===
nodes
.
length
)
{
// 加1表示为已完成步骤后一步
// 加1表示为已完成步骤后一步
this
.
currIndex
=
i
+
1
;
finish
=
finish
+
1
;
}
}
newNodes
.
push
(
nodes
);
newNodes
.
push
(
nodes
);
}
}
this
.
currIndex
=
finish
;
this
.
processData
=
newNodes
;
this
.
processData
=
newNodes
;
},
},
},
},
...
...
src/views/ecw/box/shippingSea/utils.js
View file @
c0153bfa
...
@@ -1030,6 +1030,18 @@ function serviceMsg(result, _vue) {
...
@@ -1030,6 +1030,18 @@ function serviceMsg(result, _vue) {
});
});
}
}
/**
* 跳转审核详情
*
* @param {*} bpmProcessId
*/
function toReviewDetail(bpmProcessId) {
this.$router.push({
path: "/bpm/process-instance/detail",
query: { id: bpmProcessId },
});
}
export {
export {
getStatusName,
getStatusName,
getColmnMapping,
getColmnMapping,
...
@@ -1044,4 +1056,5 @@ export {
...
@@ -1044,4 +1056,5 @@ export {
getCapacity,
getCapacity,
sumStatistics,
sumStatistics,
serviceMsg,
serviceMsg,
toReviewDetail,
};
};
src/views/ecw/coupon/edit.vue
View file @
c0153bfa
...
@@ -60,8 +60,8 @@
...
@@ -60,8 +60,8 @@
<!--
<el-select
v-model=
"item.fullCurrencyId"
style=
"width:100px"
>
<!--
<el-select
v-model=
"item.fullCurrencyId"
style=
"width:100px"
>
<el-option
v-for=
"item in currencyList"
:key=
"item.id"
:label=
"item.titleZh"
:value=
"item.id"
/>
<el-option
v-for=
"item in currencyList"
:key=
"item.id"
:label=
"item.titleZh"
:value=
"item.id"
/>
</el-select>
-->
</el-select>
-->
<selector
v-if=
"[
2,
4,5].indexOf(form.type) > -1"
v-model=
"item.fullCurrencyId"
:options=
"currencyList"
label-field=
"titleZh"
value-field=
"id"
defaultable
style=
"width:100px"
/>
<selector
v-if=
"[4,5].indexOf(form.type) > -1"
v-model=
"item.fullCurrencyId"
:options=
"currencyList"
label-field=
"titleZh"
value-field=
"id"
defaultable
style=
"width:100px"
/>
<selector
v-if=
"form.type ==
3"
v-model=
"item.prodUnit"
:options=
"unitList"
label-field=
"titleZh"
value-field=
"id
"
defaultable
style=
"width:100px"
/>
<selector
v-if=
"form.type ==
2"
v-model=
"item.combUnit"
:options=
"combUnitList"
label-field=
"label"
value-field=
"value
"
defaultable
style=
"width:100px"
/>
<span
v-if=
"[2].indexOf(form.type) > -1"
>
减
</span>
<span
v-if=
"[2].indexOf(form.type) > -1"
>
减
</span>
<span
v-if=
"[4].indexOf(form.type) > -1"
>
折扣率
</span>
<span
v-if=
"[4].indexOf(form.type) > -1"
>
折扣率
</span>
...
@@ -267,7 +267,12 @@ export default {
...
@@ -267,7 +267,12 @@ export default {
status
:
1
,
status
:
1
,
},
},
// 表单校验
// 表单校验
rules
:
{},
rules
:
{
isCargoControl
:
[{
required
:
true
,
message
:
'
请选择是否控货
'
}],
brand
:
[{
required
:
true
,
message
:
'
请选择品牌
'
}],
orderAttr
:
[{
required
:
true
,
message
:
'
请选择订单属性
'
}],
documentDeclaration
:
[{
required
:
true
,
message
:
'
请选择单证报关
'
}]
},
currencyList
:[],
currencyList
:[],
/* clearanceFeeList:[{},{}],
/* clearanceFeeList:[{},{}],
freightFeeList:[{},{}],
freightFeeList:[{},{}],
...
@@ -317,12 +322,29 @@ export default {
...
@@ -317,12 +322,29 @@ export default {
})
})
}
}
return
costType
return
costType
},
// 满减组合单位列表
combUnitList
(){
let
arr
=
[]
this
.
currencyList
.
forEach
(
item
=>
{
arr
.
push
({
label
:
this
.
$l
(
item
,
'
title
'
),
value
:
'
fullCurrencyId_
'
+
item
.
id
})
})
this
.
unitList
.
forEach
(
item
=>
{
arr
.
push
({
label
:
this
.
$l
(
item
,
'
title
'
),
value
:
'
prodUnit_
'
+
item
.
id
})
})
return
arr
}
}
},
},
watch
:{
watch
:{
'
form.type
'
(
val
){
'
form.type
'
(
val
){
// 方数满减3和特价6需要单位
// 方数满减3和特价6需要单位
if
((
val
==
3
||
val
==
6
)
&&
!
this
.
unitList
.
length
){
if
((
val
==
3
||
val
==
6
||
val
==
2
)
&&
!
this
.
unitList
.
length
){
this
.
getUnitList
()
this
.
getUnitList
()
}
}
...
@@ -429,7 +451,13 @@ export default {
...
@@ -429,7 +451,13 @@ export default {
return
this
.
$message
(
'
暂无费用设置
'
)
return
this
.
$message
(
'
暂无费用设置
'
)
}
}
// 非有优惠券需要把运费和清关费一起提交
// 非有优惠券需要把运费和清关费一起提交
let
discountDetailedVOs
=
this
.
costType
==
3
?
this
.
fee
[
3
]
:
this
.
fee
[
1
].
concat
(
this
.
fee
[
2
])
let
discountDetailedVOs
=
this
.
costType
==
3
?
this
.
fee
[
3
]
:
this
.
fee
[
1
].
concat
(
this
.
fee
[
2
]).
filter
(
item
=>
item
.
netReceiptsAmount
||
item
.
fullAmount
)
discountDetailedVOs
.
map
(
item
=>
{
if
(
item
.
combUnit
){
let
tmp
=
item
.
combUnit
.
split
(
'
_
'
)
item
[
tmp
[
0
]]
=
tmp
[
1
]
}
})
let
data
=
Object
.
assign
({},
this
.
form
,
{
discountDetailedVOs
})
let
data
=
Object
.
assign
({},
this
.
form
,
{
discountDetailedVOs
})
// 开始时间必填
// 开始时间必填
if
(
!
data
.
startTime
)
data
.
startTime
=
'
2022-01-01 00:00:00
'
if
(
!
data
.
startTime
)
data
.
startTime
=
'
2022-01-01 00:00:00
'
...
...
src/views/ecw/offer/edit.vue
View file @
c0153bfa
<
template
>
<
template
>
<div
class=
"app-container"
>
<div
class=
"app-container"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
inline
>
<el-card>
<el-card>
<div
slot=
"header"
class=
"card-title"
>
{{
$t
(
'
新建报价单
'
)
}}
</div>
<div
slot=
"header"
class=
"card-title"
>
{{
$t
(
'
新建报价单
'
)
}}
</div>
<el-form-item
:label=
"$t('所属人')"
>
<el-form-item
:label=
"$t('所属人')"
>
...
@@ -10,22 +10,59 @@
...
@@ -10,22 +10,59 @@
<el-radio
label=
"2"
>
{{
$t
(
'
收件人
'
)
}}
</el-radio>
<el-radio
label=
"2"
>
{{
$t
(
'
收件人
'
)
}}
</el-radio>
</el-radio-group>
</el-radio-group>
</el-form-item>
</el-form-item>
<el-form-item
:label=
"$t('订单类型')"
style=
"margin-bottom: 0"
>
<br/>
<el-form-item
:label=
"$t('订单类型')"
>
<el-checkbox-group
v-model=
"form.type"
>
<el-checkbox-group
v-model=
"form.type"
>
<el-checkbox
label=
"1"
>
{{
$t
(
'
集运服务
'
)
}}
</el-checkbox>
<el-checkbox
label=
"1"
>
{{
$t
(
'
集运服务
'
)
}}
</el-checkbox>
<
!--
<el-checkbox
label=
"2"
>
海外仓
</el-checkbox>
--
>
<
el-checkbox
label=
"2"
>
{{
$t
(
'
海外仓
'
)
}}
</el-checkbox
>
</el-checkbox-group>
</el-checkbox-group>
</el-form-item>
</el-form-item>
<el-descriptions
:column=
"3"
border
>
<div
class=
"form-section"
>
<el-form-item
:label=
"$t('发货人')"
prop=
"consignorId"
>
<div
class=
"contact"
>
<el-input
v-model=
"form.consignorName"
placeholder=
"选择或新建"
disabled
/>
<img
src=
"@/assets/images/phonebook.png"
class=
"phonebook"
@
click=
"contactChooseType='consignor'"
/>
<img
src=
"@/assets/images/new_customer.png"
class=
"phonebook"
@
click=
"quickCreateType='1'"
/>
</div>
</el-form-item>
<el-form-item
:label=
"$t('发货人电话')"
prop=
"consignorPhone"
>
<!--
<area-code-selector
v-model=
"form.consignorCountryCode"
class=
"w-200 mr-10"
disabled
/>
-->
<el-input
:value=
"`$
{form.consignorCountryCode || ''} ${form.consignorPhone || ''}`" class="w-200" disabled />
</el-form-item>
<el-form-item
:label=
"$t('发货人公司')"
prop=
"consignorCompany"
>
<el-input
v-model=
"form.consignorCompany"
disabled
/>
</el-form-item>
<el-form-item
label=
"Email"
prop=
"consignorEmail"
>
<el-input
v-model=
"form.consignorEmail"
disabled
/>
</el-form-item>
</div>
<div
class=
"form-section"
>
<el-form-item
:label=
"$t('收货人')"
prop=
"consigneeId"
>
<div
class=
"contact"
>
<el-input
v-model=
"form.consigneeName"
placeholder=
"请选择或新建"
:disabled=
"true"
/>
<img
src=
"@/assets/images/phonebook.png"
class=
"phonebook"
@
click=
"contactChooseType='consignee'"
/>
<img
src=
"@/assets/images/new_customer.png"
class=
"phonebook"
@
click=
"quickCreateType='2'"
/>
</div>
</el-form-item>
<el-form-item
:label=
"$t('收货人电话')"
prop=
"consigneePhone"
>
<!--
<area-code-selector
v-model=
"form.consigneeCountryCode"
class=
"w-200 mr-10"
disabled
/>
-->
<el-input
:value=
"`$
{form.consigneeCountryCode || ''} ${form.consigneePhone || ''}`" class="w-200" disabled/>
</el-form-item>
<el-form-item
:label=
"$t('收货人公司')"
prop=
"consigneeCompany"
>
<el-input
v-model=
"form.consigneeCompany"
:disabled=
"true"
/>
</el-form-item>
<el-form-item
label=
"Email"
prop=
"consigneeEmail"
>
<el-input
v-model=
"form.consigneeEmail"
:disabled=
"true"
/>
</el-form-item>
</div>
<!--
<el-descriptions
:column=
"3"
border
>
<el-descriptions-item
:label=
"$t('*发货人')"
:labelStyle=
"labelStyle"
>
<el-descriptions-item
:label=
"$t('*发货人')"
:labelStyle=
"labelStyle"
>
<el-form-item
label=
""
label-width=
"0"
style=
"margin-bottom: 0"
prop=
"consignorId"
required
:error=
"$t('发货人不能为空')"
>
<el-form-item
label=
""
label-width=
"0"
style=
"margin-bottom: 0"
prop=
"consignorId"
required
:error=
"$t('发货人不能为空')"
>
<customer-contact-selector
v-model=
"form.consignorId"
@
change=
"consignor = $event"
/>
<customer-contact-selector
v-model=
"form.consignorId"
@
change=
"consignor = $event"
type=
"1"
/>
</el-form-item>
</el-form-item>
</el-descriptions-item>
</el-descriptions-item>
<!--
<el-descriptions-item
label=
"发货人"
:labelStyle=
"labelStyle"
>
{{
consignor
.
contactsName
||
'
无
'
}}
</el-descriptions-item>
-->
<el-descriptions-item
:label=
"$t('手机号')"
:labelStyle=
"labelStyle"
>
<el-descriptions-item
:label=
"$t('手机号')"
:labelStyle=
"labelStyle"
>
{{
consignor
.
areaCode
}}
{{
consignor
.
phoneNew
||
this
.
$t
(
'
无
'
)
}}
{{
consignor
.
areaCode
}}
{{
consignor
.
phoneNew
||
this
.
$t
(
'
无
'
)
}}
</el-descriptions-item>
</el-descriptions-item>
...
@@ -34,24 +71,15 @@
...
@@ -34,24 +71,15 @@
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label=
"Email"
:labelStyle=
"labelStyle"
>
<el-descriptions-item
label=
"Email"
:labelStyle=
"labelStyle"
>
{{
consignor
.
email
||
this
.
$t
(
'
无
'
)
}}
{{
consignor
.
email
||
this
.
$t
(
'
无
'
)
}}
</el-descriptions-item>
<!--
<el-descriptions-item
label=
"社交软件"
>
{{
consignor
.
social
}}
{{
consignor
.
socialNumber
}}
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label=
"联系地址"
>
{{
consignor
.
address
||
'
无
'
}}
</el-descriptions-item>
-->
</el-descriptions>
</el-descriptions>
<el-descriptions
:column=
"3"
border
>
<el-descriptions
:column=
"3"
border
>
<el-descriptions-item
:label=
"$t('收货人')"
:labelStyle=
"labelStyle"
>
<el-descriptions-item
:label=
"$t('收货人')"
:labelStyle=
"labelStyle"
>
<el-form-item
label=
""
label-width=
"0"
style=
"margin-bottom: 0"
prop=
"consigneeId"
required
:error=
"$t('收货人不能为空')"
>
<el-form-item
label=
""
label-width=
"0"
style=
"margin-bottom: 0"
prop=
"consigneeId"
required
:error=
"$t('收货人不能为空')"
>
<customer-contact-selector
v-model=
"form.consigneeId"
@
change=
"consignee = $event"
/>
<customer-contact-selector
v-model=
"form.consigneeId"
@
change=
"consignee = $event"
type=
"2"
/>
</el-form-item>
</el-form-item>
</el-descriptions-item>
</el-descriptions-item>
<!--
<el-descriptions-item
label=
"收货人"
:labelStyle=
"labelStyle"
>
{{
consignee
.
contactsName
||
'
无
'
}}
</el-descriptions-item>
-->
<el-descriptions-item
:label=
"$t('手机号')"
:labelStyle=
"labelStyle"
>
<el-descriptions-item
:label=
"$t('手机号')"
:labelStyle=
"labelStyle"
>
{{
consignee
.
areaCode
}}
{{
consignee
.
phoneNew
}}
{{
consignee
.
areaCode
}}
{{
consignee
.
phoneNew
}}
</el-descriptions-item>
</el-descriptions-item>
...
@@ -60,23 +88,14 @@
...
@@ -60,23 +88,14 @@
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label=
"Email"
:labelStyle=
"labelStyle"
>
<el-descriptions-item
label=
"Email"
:labelStyle=
"labelStyle"
>
{{
consignee
.
email
||
this
.
$t
(
'
无
'
)
}}
{{
consignee
.
email
||
this
.
$t
(
'
无
'
)
}}
</el-descriptions-item>
<!--
<el-descriptions-item
label=
"社交软件"
>
{{
consignee
.
social
}}
{{
consignee
.
socialNumber
}}
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label=
"联系地址"
>
</el-descriptions>
-->
{{
consignee
.
address
||
'
无
'
}}
// TODO
</el-descriptions-item>
-->
</el-descriptions>
<el-descriptions
:column=
"2"
border
>
<div
class=
"form-section"
>
<el-descriptions-item
:label=
"$t('运输方式')"
:labelStyle=
"labelStyle"
>
<el-form-item
:label=
"$t('运输方式')"
prop=
"transportId"
>
<el-form-item
label=
""
label-width=
"0"
style=
"margin-bottom: 0"
prop=
"transportId"
required
:error=
"$t('请选择运输方式')"
>
<dict-selector
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
v-model=
"form.transportId"
@
input=
"calculationPrice"
/>
<dict-selector
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
v-model=
"form.transportId"
@
input=
"calculationPrice"
/>
</el-form-item>
</el-form-item>
</el-descriptions-item>
<el-form-item
:label=
"$t('出货渠道')"
v-if=
"getDictData(DICT_TYPE.ECW_TRANSPORT_TYPE, form.transportId).cssClass == 'channel'"
prop=
"channelId"
>
<el-descriptions-item
:label=
"$t('出货渠道')"
v-if=
"getDictData(DICT_TYPE.ECW_TRANSPORT_TYPE, form.transportId).cssClass == 'channel'"
:labelStyle=
"labelStyle"
>
<el-form-item
label=
""
label-width=
"0"
style=
"margin-bottom: 0"
prop=
"channelId"
:required=
"getDictData(DICT_TYPE.ECW_TRANSPORT_TYPE, form.transportId).cssClass == 'channel'"
:error=
"$t('请选择出货渠道')"
>
<selector
<selector
:disabled=
"getDictData(DICT_TYPE.ECW_TRANSPORT_TYPE, form.transportId).cssClass != 'channel'"
:disabled=
"getDictData(DICT_TYPE.ECW_TRANSPORT_TYPE, form.transportId).cssClass != 'channel'"
v-model=
"form.channelId"
v-model=
"form.channelId"
...
@@ -86,38 +105,31 @@
...
@@ -86,38 +105,31 @@
@
input=
"calculationPrice"
@
input=
"calculationPrice"
></selector>
></selector>
</el-form-item>
</el-form-item>
</el-descriptions-item>
</div>
</el-descriptions>
<el-descriptions
:column=
"2"
border
>
<div
class=
"form-section"
>
<el-descriptions-item
:label=
"$t('始发城市')"
:labelStyle=
"labelStyle"
>
<el-form-item
:label=
"$t('始发城市')"
prop=
"departureId"
>
<el-form-item
label=
""
label-width=
"0"
style=
"margin-bottom: 0"
prop=
"departureId"
required
:error=
"$t('始发地必选')"
>
<el-select
v-model=
"form.departureId"
:placeholder=
"$t('请选择始发地')"
>
<el-select
v-model=
"form.departureId"
:placeholder=
"$t('请选择始发地')"
>
<el-option
v-for=
"item in expoerCityList"
:label=
"item.titleZh
"
:value=
"item.id"
:key=
"item.id"
></el-option>
<el-option
v-for=
"item in exportCityList"
:label=
"$l(item, 'title')
"
:value=
"item.id"
:key=
"item.id"
></el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
</el-descriptions-item>
<el-form-item
:label=
"$t('目的城市')"
prop=
"objectiveId"
>
<el-descriptions-item
:label=
"$t('目的城市')"
:labelStyle=
"labelStyle"
>
<el-select
v-model=
"form.objectiveId"
:placeholder=
"$t('请选择目的地')"
>
<el-form-item
label=
""
label-width=
"0"
style=
"margin-bottom: 0"
prop=
"objectiveId"
required
:error=
"$t('目的城市必选')"
>
<el-option
v-for=
"item in importCityList"
:label=
"$l(item, 'title')"
:value=
"item.id"
:key=
"item.id"
></el-option>
<el-select
v-model=
"form.objectiveId"
:placeholder=
"$t('请选择始发地')"
>
<el-option
v-for=
"item in importCityList"
:label=
"item.titleZh"
:value=
"item.id"
:key=
"item.id"
></el-option>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
</el-descriptions-item>
</div>
<el-descriptions-item
:label=
"$t('请选择线路')"
:span=
"2"
:labelStyle=
"labelStyle"
>
<div
class=
"form-section"
>
<el-row
:gutter=
"10"
>
<el-form-item
:label=
"$t('选择线路')"
prop=
"lineId"
>
<el-col
:span=
"12"
>
<!--
<el-input
:value=
"getRouterNameById(form.lineId)"
readonly
:placeholder=
"$t('请在右侧选择线路')"
></el-input>
-->
<el-input
:value=
"getRouterNameById(form.lineId)"
readonly
:placeholder=
"$t('请在右侧选择线路')"
></el-input>
<el-input
:value=
"selectedRouter ? $l(selectedRouter, 'startTitle') + ' > ' + $l(selectedRouter, 'destTitle') : ''"
disabled
:placeholder=
"$t('请在右侧选择线路')"
></el-input>
</el-col>
</el-form-item>
<el-col
:span=
"12"
>
<select
size=
"5"
v-model=
"form.lineId"
style=
"min-width: 300px; border:1px solid #DCDFE6; border-radius:4px"
>
<select
size=
"5"
v-model=
"form.lineId"
style=
"min-width: 300px"
@
change=
"calculationPrice"
>
<template
v-for=
"item in routerList"
>
<template
v-for=
"item in routerList"
>
<option
:value=
"item.id"
:key=
"item.id"
>
{{
item
.
startTitleZh
}}
>>
{{
item
.
destTitleZh
}}
</option>
<option
:value=
"item.id"
:key=
"item.id"
>
{{
$l
(
item
,
'
startTitle
'
)
}}
>>
{{
$l
(
item
,
'
destTitle
'
)
}}
</option>
</
template
>
</
template
>
</select>
</select>
</el-col>
</div>
</el-row>
</el-descriptions-item>
</el-descriptions>
</el-card>
</el-card>
<el-card
class=
"mt-10"
>
<el-card
class=
"mt-10"
>
<div
slot=
"header"
class=
"card-title"
>
<div
slot=
"header"
class=
"card-title"
>
...
@@ -146,13 +158,6 @@
...
@@ -146,13 +158,6 @@
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<!-- <el-table-column :label="$t('商品类型')" width="160px">
<template slot-scope="{row}">
<selector disabled v-model="row.goodsType" :options="productAttrList" label-field="attrName" value-field="id" @input="calculationPrice"></selector>
</template>
</el-table-column> -->
<el-table-column
:label=
"$t('件数')"
width=
"90px"
>
<el-table-column
:label=
"$t('件数')"
width=
"90px"
>
<
template
slot-scope=
"{row}"
>
<
template
slot-scope=
"{row}"
>
<el-input
v-model.number=
"row.num"
@
input=
"calculationPrice"
/>
<el-input
v-model.number=
"row.num"
@
input=
"calculationPrice"
/>
...
@@ -168,11 +173,6 @@
...
@@ -168,11 +173,6 @@
<el-input
v-model.number=
"row.quantity"
@
input=
"calculationPrice"
/>
<el-input
v-model.number=
"row.quantity"
@
input=
"calculationPrice"
/>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<!-- <el-table-column :label="$t('箱规') + '(m)'" width="120px">
<template slot-scope="{row}">
<el-input v-model="row.boxGauge" @input="calcVolume(row);calculationPrice()" />
</template>
</el-table-column> -->
<el-table-column
:label=
"$t('总体积') + '(m³)'"
width=
"100px"
>
<el-table-column
:label=
"$t('总体积') + '(m³)'"
width=
"100px"
>
<
template
slot-scope=
"{row}"
>
<
template
slot-scope=
"{row}"
>
<el-input
v-model=
"row.volume"
@
input=
"calculationPrice"
/>
<el-input
v-model=
"row.volume"
@
input=
"calculationPrice"
/>
...
@@ -229,51 +229,36 @@
...
@@ -229,51 +229,36 @@
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('快递单号')"
width=
"100px"
>
<el-table-column
:label=
"$t('快递单号')"
width=
"100px"
>
<
template
slot-scope=
"{row}"
>
<
template
slot-scope=
"{row}"
>
<el-input
v-model=
"row.expressNo"
placeholder=
"
缺少字段
"
/>
<el-input
v-model=
"row.expressNo"
placeholder=
""
/>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('操作')"
width=
"180px"
fixed=
"right"
>
<el-table-column
:label=
"$t('操作')"
width=
"180px"
fixed=
"right"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-button
size=
"mini"
type=
"danger"
@
click=
"delProduct(scope.$index)"
>
{{
$t
(
'
删除
'
)
}}
</el-button>
<el-button
size=
"mini"
type=
"danger"
@
click=
"delProduct(scope.$index)"
>
{{
$t
(
'
删除
'
)
}}
</el-button>
<!--
<el-button
size=
"mini"
type=
"primary"
@
click=
"showMorePrice($index)"
>
{{
$t
(
'
更多报价
'
)
}}
</el-button>
-->
</
template
>
</
template
>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
<!--
<!--
</el-card>
</el-card>
<el-card class="mt-10"> -->
<el-card class="mt-10"> -->
<div
class=
"card-title"
style=
"padding:20px 0;"
>
{{$t('
费用小
计')}}
</div>
<div
class=
"card-title"
style=
"padding:20px 0;"
>
{{$t('
合
计')}}
</div>
<el-descriptions
:column=
"4"
border
>
<el-descriptions
:column=
"4"
border
>
<el-descriptions-item
:label=
"$t('总件数')"
>
<el-descriptions-item
:label=
"$t('总件数')"
>
{{sum.totalNum || 0}}
{{sum.totalNum || 0}}
</el-descriptions-item>
</el-descriptions-item>
<
!-- <
el-descriptions-item label="总体积">
<el-descriptions-item
label=
"总体积"
>
{{sum.totalVolume || 0}}m³
{{sum.totalVolume || 0}}m³
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label=
"总重量"
>
<el-descriptions-item
label=
"总重量"
>
{{sum.totalWeight || 0}}kg
{{sum.totalWeight || 0}}kg
</el-descriptions-item> -->
<el-descriptions-item
:label=
"$t('总货值')"
>
{{sum.totalWorth || 0}}{{$t('人民币')}}
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('保价费')
"
>
<el-descriptions-item
label=
"总数量
"
>
{{
fee.insuranceFee || 0}}{{$t('人民币')
}}
{{
sum.totalQuatity || 0
}}
</el-descriptions-item>
</el-descriptions-item>
<!-- <el-descriptions-item label="总运费">
<div>{{fee.seaNGN || 0}}泰拉</div>
<el-descriptions-item
:label=
"$t('总货值') + '(RMB)'"
>
<div>{{fee.seaRMB || 0}}人民币</div>
{{sum.totalWorth || 0}}{{$t('元')}}
<div>{{fee.seaUSD || 0}}美元</div>
</el-descriptions-item>
<el-descriptions-item label="总清关费">
<div>{{fee.clearanceNGN || 0}}泰拉</div>
<div>{{fee.clearanceRMB || 0}}人民币</div>
<div>{{fee.clearanceUSD || 0}}美元</div>
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item label="预计费用">
<div>{{fee.seaNGN + fee.clearanceNGN}}泰拉</div>
<div>{{fee.seaRMB + fee.clearanceRMB + fee.insuranceFee }}人民币</div>
<div>{{fee.seaUSD + fee.clearanceUSD}}美元</div>
</el-descriptions-item> -->
</el-descriptions>
</el-descriptions>
</el-card>
</el-card>
...
@@ -282,139 +267,152 @@
...
@@ -282,139 +267,152 @@
<el-descriptions
:column=
"5"
border
>
<el-descriptions
:column=
"5"
border
>
<el-descriptions-item
:label=
"$t('保价费')"
>
<el-descriptions-item
:label=
"$t('保价费')"
>
{{fee.insuranceFee || 0}} {{$t('
人民币
')}}
{{fee.insuranceFee || 0}} {{$t('
美元
')}}
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('总运费')"
>
<el-descriptions-item
:label=
"$t('总运费')"
>
<
div>
{{fee.seaNGN || 0}}{{$t('奈拉')}}
</div
>
<
template
v-for=
"item in clearanceFeeList"
>
<div>
{{fee.seaRMB || 0}}{{$t('人民币')
}}
</div>
<div
:key=
"item.currencyId"
>
{{
item
.
amount
||
0
}}{{
currentcyMap
[
item
.
currencyId
]
}}
</div>
<
div>
{{fee.seaUSD || 0}}{{$t('美元')}}
</div
>
<
/
template
>
</el-descriptions-item>
</el-descriptions-item>
<!--代收货款,只有非控货订单、并且线路开通了代收货款后,才显示是否代收货款选项-->
<!--代收货款,只有非控货订单、并且线路开通了代收货款后,才显示是否代收货款选项-->
<el-descriptions-item
:label=
"$t('总清关费')"
>
<el-descriptions-item
:label=
"$t('总清关费')"
>
<
div>
{{fee.clearanceNGN || 0}}{{$t('奈拉')}}
</div
>
<
template
v-for=
"item in freightFeeList"
>
<div>
{{fee.clearanceRMB || 0}}{{$t('人民币')
}}
</div>
<div
:key=
"item.currencyId"
>
{{
item
.
amount
||
0
}}{{
currentcyMap
[
item
.
currencyId
]
}}
</div>
<
div>
{{fee.clearanceUSD || 0}}{{$t('美元')}}
</div
>
<
/
template
>
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('其他费用')"
>
<el-descriptions-item
:label=
"$t('其他费用')"
>
<el-input
v-model=
"form.otherFee"
placeholder=
""
class=
"w-100 mr-10"
></el-input>
<el-input
v-model=
"form.otherFee"
placeholder=
""
class=
"w-100 mr-10"
></el-input>
<selector
v-model=
"form.otherFeeCurrencyId"
:options=
"currencyList"
label-field=
"titleZh"
value-field=
"id"
defaultable
class=
"w-100"
/>
<selector
v-model=
"form.otherFeeCurrencyId"
:options=
"currencyList"
label-field=
"titleZh"
value-field=
"id"
defaultable
class=
"w-100"
/>
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('原价')"
:span=
"2"
>
<el-descriptions-item
:label=
"$t('原价')"
:span=
"2"
>
<!--TODO 缺少字段-->
<
template
v-for=
"item in originalFeeList"
>
<div>
{{fee.clearanceNGN || 0}}{{$t('奈拉')}}
</div>
<div
:key=
"item.currencyId"
>
{{
item
.
amount
||
0
}}{{
currentcyMap
[
item
.
currencyId
]
}}
</div>
<div>
{{fee.clearanceRMB || 0}}{{$t('人民币')}}
</div>
</
template
>
<div>
{{fee.clearanceUSD || 0}}{{$t('美元')}}
</div>
</el-descriptions-item>
</el-descriptions-item>
</el-descriptions>
</el-descriptions>
<div
class=
"card-title"
style=
"padding:20px 0;"
>
{{$t('优惠信息')}}
</div>
<div
class=
"card-title"
style=
"padding:20px 0;"
>
{{$t('优惠信息')}}
</div>
<div
v-for=
"(item, index) in couponList"
:key=
"index"
style=
"display:flex;align-items:center"
>
<el-table
:data=
"couponList"
:show-header=
"false"
>
<div
class=
"w-150"
>
<el-table-column
label=
""
>
{{index+1}}.
<
template
slot-scope=
"scope"
>
{{productNames[item.prodId] || $t('未知')}}
{{
scope
.
$index
+
1
}}
.
</div>
{{
$l
(
productNames
[
scope
.
row
.
prodId
],
'
title
'
)
||
$t
(
'
未知
'
)
}}
<div
class=
"w-100"
>
<dict-tag
:type=
"DICT_TYPE.ECW_COUPON_TYPE"
:value=
"item.type"
/>
</div>
<div
style=
"display:flex; align-items:center"
>
<el-select
:placeholder=
"$t('请选择优惠')"
v-model=
"item.selectedIndex"
:data-type=
"item.value"
clearable
class=
"w-300"
>
<
template
v-for=
"(coupon, couponIndex) in item.options"
>
<el-option
:key=
"coupon.couponId"
:label=
"coupon.titleZh"
:value=
"couponIndex"
></el-option>
</
template
>
</
template
>
</el-select>
</el-table-column>
<
template
v-if=
"item.selectedIndex !== null"
>
<el-table-column
label=
""
>
<div
class=
"w-100 ml-20"
>
<
template
slot-scope=
"{row}"
>
-
{{
item
.
options
[
item
.
selectedIndex
].
reduceAmount
}}
<dict-tag
:type=
"DICT_TYPE.ECW_COUPON_TYPE"
:value=
"row.type"
/>
{{
currentcyMap
[
item
.
options
[
item
.
selectedIndex
].
reduceCurrencyId
]
}}
</div>
<div
class=
"ml-20"
>
{{
$t
(
'
有效期
'
)
}}
:
{{
item
.
options
[
item
.
selectedIndex
].
endTime
||
$t
(
'
永久有效
'
)
}}
</div>
</
template
>
</
template
>
</div>
</el-table-column>
</div>
<el-table-column
label=
""
>
<
template
slot-scope=
"{row}"
>
{{
$l
(
row
,
'
title
'
)
}}
</
template
>
</el-table-column>
<el-table-column
label=
""
>
<
template
slot-scope=
"{row}"
>
-
{{
row
.
reduceAmount
}}
{{
currentcyMap
[
row
.
reduceCurrencyId
]
}}
</
template
>
</el-table-column>
<el-table-column
label=
""
>
<
template
slot-scope=
"{row}"
>
{{
$t
(
'
有效期至
'
)
}}
:
{{
row
.
endTime
?
row
.
endTime
:
$t
(
'
永久有效
'
)
}}
</
template
>
</el-table-column>
</el-table>
<el-descriptions
:column=
"1"
class=
"mt-20"
>
<el-descriptions
:column=
"1"
class=
"mt-20"
>
<el-descriptions-item
:label=
"$t('优惠
合计')
"
>
<el-descriptions-item
:label=
"$t('优惠
费用')"
v-if=
"couponTotalAmountList && couponTotalAmountList.length
"
>
<div
v-for=
"(
discount, discountIndex) in discountArr
"
:key=
"discountIndex"
>
<div
v-for=
"(
item, discountIndex) in couponTotalAmountList
"
:key=
"discountIndex"
>
{{
discount.reduceAmount}} {{currentcyMap[discount.reduceC
urrencyId]}}
{{
item.totalAmount}} {{currentcyMap[item.c
urrencyId]}}
</div>
</div>
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('预计费用')"
>
<el-descriptions-item
:label=
"$t('预计费用')"
>
// TODO
<
template
v-for=
"item in estimatedCosts"
>
<div
:key=
"item.currencyId"
>
{{
item
.
amount
||
0
}}{{
currentcyMap
[
item
.
currencyId
]
}}
</div>
</
template
>
</el-descriptions-item>
</el-descriptions-item>
</el-descriptions>
</el-descriptions>
</el-card>
</el-card>
<el-card
class=
"mt-10"
>
<el-card
class=
"mt-10"
>
<div
class=
"card-title"
slot=
"header"
>
{{$t('通用')}}
</div>
<div
class=
"card-title"
slot=
"header"
>
{{$t('通用')}}
</div>
<div
class=
"form-section"
>
<el-descriptions
:column=
"2"
border
>
<el-form-item
:label=
"$t('唛头')"
prop=
"marks"
>
<el-descriptions-item
:label=
"$t('唛头')"
>
<el-input
v-model=
"form.marks"
placeholder=
""
></el-input>
<el-input
v-model=
"form.marks"
placeholder=
""
></el-input>
</el-descriptions-item>
</el-form-item>
<el-descriptions-item
:label=
"$t('报关方式')"
>
</div>
<div
class=
"form-section"
>
<el-form-item
:label=
"$t('报关方式')"
prop=
"customsType"
>
<dict-selector
:type=
"DICT_TYPE.ECW_CUSTOMS_TYPE"
v-model=
"form.customsType"
form-type=
"radio"
defaultable
/>
<dict-selector
:type=
"DICT_TYPE.ECW_CUSTOMS_TYPE"
v-model=
"form.customsType"
form-type=
"radio"
defaultable
/>
</el-descriptions-item>
</el-form-item>
<el-descriptions-item
:label=
"$t('预计结束时间')"
>
</div>
<div
class=
"form-section"
>
<el-form-item
:label=
"$t('预计结束时间')"
prop=
"stopTime"
>
<el-date-picker
v-model=
"form.stopTime"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
<el-date-picker
v-model=
"form.stopTime"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
</el-
descriptions
-item>
</el-
form
-item>
<el-
descriptions-item
:label=
"$t('是否控货')
"
>
<el-
form-item
:label=
"$t('是否控货')"
prop=
"control
"
>
<dict-selector
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
formatter=
"bool"
v-model=
"form.control"
form-type=
"radio"
defaultable
/>
<dict-selector
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
formatter=
"bool"
v-model=
"form.control"
form-type=
"radio"
defaultable
/>
</el-descriptions-item>
</el-form-item>
<el-descriptions-item
:label=
"$t('竞争对手')"
>
</div>
<div
class=
"form-section"
>
<el-form-item
:label=
"$t('竞争对手')"
prop=
"competitor"
>
<el-input
v-model=
"form.competitor"
placeholder=
""
></el-input>
<el-input
v-model=
"form.competitor"
placeholder=
""
></el-input>
</el-
descriptions
-item>
</el-
form
-item>
<el-
descriptions-item
:label=
"$t('重要程度')
"
>
<el-
form-item
:label=
"$t('重要程度')"
prop=
"importance
"
>
<el-rate
v-model=
"form.importance"
></el-rate>
<el-rate
v-model=
"form.importance"
></el-rate>
</el-descriptions-item>
</el-form-item>
<el-descriptions-item
:label=
"$t('价格有效时间')"
>
</div>
<div
class=
"form-section"
>
<el-form-item
:label=
"$t('价格有效时间')"
prop=
"startTime"
>
<el-date-picker
v-model=
"form.startTime"
placeholder=
""
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
<el-date-picker
v-model=
"form.startTime"
placeholder=
""
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
-
</el-form-item>
<el-form-item
label=
""
prop=
"endTime"
>
<el-date-picker
v-model=
"form.endTime"
placeholder=
""
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
<el-date-picker
v-model=
"form.endTime"
placeholder=
""
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
</el-descriptions-item>
</el-form-item>
<el-descriptions-item
:label=
"$t('交货方式')"
>
</div>
<div
class=
"form-section"
>
<el-form-item
:label=
"$t('交货方式')"
>
<!--
<!--
接口要求数据为整数,所以增加trade_type类型的字典,用1234代码以下不同类型
接口要求数据为整数,所以增加trade_type类型的字典,用1234代码以下不同类型
FOB(离岸价),CIF(到岸价),CNF(成本加运费),EXW(出厂价)
FOB(离岸价),CIF(到岸价),CNF(成本加运费),EXW(出厂价)
-->
-->
<dict-selector
:type=
"DICT_TYPE.ECW_TRADE_TYPE"
fomtter=
"number"
v-model=
"form.tradeType"
/>
<dict-selector
:type=
"DICT_TYPE.ECW_TRADE_TYPE"
fomtter=
"number"
v-model=
"form.tradeType"
/>
<el-input
v-model=
"form.tradeAdress"
placeholder=
""
></el-input>
</el-descriptions-item>
<!-- <el-descriptions-item label="总运费" :span="2">
</el-descriptions-item>
<el-descriptions-item label="总清关费" :span="2">
</el-descriptions-item>
</el-form-item>
<el-descriptions-item label="总价格" :span="2">
<el-form-item
:label=
"$t('交货地址')"
>
<el-input
v-model=
"form.tradeAdress"
placeholder=
"港口或地点"
></el-input>
</el-descriptions-item> -->
</el-form-item>
<!-- <el-descriptions-item label="佣金类型" :span="2">
</div>
<dict-selector :type="DICT_TYPE.COMMISSION_TYPE" form-type="radio" fomtter="number" v-model="form.commissionType" defaultable />
<div
class=
"form-section"
>
</el-descriptions-item> -->
<el-form-item
:label=
"$t('备注')"
:span=
"2"
>
<el-descriptions-item
:label=
"$t('备注')"
:span=
"2"
>
<el-input
v-model=
"form.remarks"
type=
"textarea"
placeholder=
""
style=
"width:500px; height: 100px"
></el-input>
<el-input
v-model=
"form.remarks"
type=
"textarea"
placeholder=
""
></el-input>
</el-form-item>
</el-descriptions-item>
</div>
</el-descriptions>
</el-card>
</el-card>
<el-card
class=
"mt-10"
v-if=
"transport"
>
<el-card
class=
"mt-10"
v-if=
"transport"
>
<div
class=
"card-title"
slot=
"header"
>
{{transport.label}}
</div>
<div
class=
"card-title"
slot=
"header"
>
{{transport.label}}
</div>
<el-form-item
:label=
"$t('快递单号')"
>
<
!-- <
el-form-item :label="$t('快递单号')">
<el-input v-model="form.number" :placeholder="$t('请输入购买商品的快递单号')"></el-input>
<el-input v-model="form.number" :placeholder="$t('请输入购买商品的快递单号')"></el-input>
</el-form-item>
</el-form-item>
-->
<el-form-item
:label=
"$t('是否双清')"
v-if=
"[2,3,4].indexOf(+form.transportId) > -1"
>
<el-form-item
:label=
"$t('是否双清')"
v-if=
"[2,3,4].indexOf(+form.transportId) > -1"
>
<dict-selector
v-model=
"form.doubleClear"
form-type=
"radio"
:type=
"DICT_TYPE.ECW_DOUBLE_CLEAR"
/>
<dict-selector
v-model=
"form.doubleClear"
form-type=
"radio"
:type=
"DICT_TYPE.ECW_DOUBLE_CLEAR"
/>
</el-form-item>
</el-form-item>
<el-form-item
:label=
"$t('航空公司')"
v-if=
"[3,4].indexOf(+form.transportId) > -1"
>
<el-form-item
:label=
"$t('航空公司')"
v-if=
"[3,4].indexOf(+form.transportId) > -1"
>
<!--待查询备选数据-->
<!--待查询备选数据-->
<el-select
placeholder=
""
v-model=
"form.airlineCompany"
>
<!-- <el-select placeholder="" v-model="form.airlineCompany">
</el-select>
</el-select> -->
<supplier-selector
v-model=
"form.airlineCompany"
companyType=
"10"
/>
</el-form-item>
</el-form-item>
<el-form-item
:label=
"$t('船公司')"
v-if=
"[2].indexOf(+form.transportId) > -1"
>
<el-form-item
:label=
"$t('船公司')"
v-if=
"[2].indexOf(+form.transportId) > -1"
>
<el-select
placeholder=
""
v-model=
"form.shippingCompany"
>
<!-- <el-select placeholder="" v-model="form.shippingCompany">
</el-select>
</el-select> -->
<supplier-selector
v-model=
"form.shippingCompany"
companyType=
"9"
/>
</el-form-item>
</el-form-item>
<el-form-item
:label=
"$t('清关证书')"
v-if=
"[2,3,4].indexOf(+form.transportId) > -1"
>
<el-form-item
:label=
"$t('清关证书')"
v-if=
"[2,3,4].indexOf(+form.transportId) > -1"
>
...
@@ -430,53 +428,55 @@
...
@@ -430,53 +428,55 @@
<dict-selector
v-model=
"form.isSingleTicketTransport"
form-type=
"radio"
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
fomatter=
"bool"
/>
<dict-selector
v-model=
"form.isSingleTicketTransport"
form-type=
"radio"
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
fomatter=
"bool"
/>
<span
style=
"margin-left:10px"
>
{{$t('注:若只有一件,货到仓库立即发,选“是”,多件需仓库集运待发,选“否”')}}
</span>
<span
style=
"margin-left:10px"
>
{{$t('注:若只有一件,货到仓库立即发,选“是”,多件需仓库集运待发,选“否”')}}
</span>
</el-form-item>
</el-form-item>
<br/>
<el-form-item
:label=
"$t('特殊要求')"
>
<el-form-item
:label=
"$t('特殊要求')"
>
<dict-selector
v-model=
"form.packageType"
form-type=
"checkbox"
:type=
"DICT_TYPE.ORDER_SPECIAL_NEEDS"
multiple
/>
<dict-selector
v-model=
"form.packageType"
form-type=
"checkbox"
:type=
"DICT_TYPE.ORDER_SPECIAL_NEEDS"
multiple
/>
</el-form-item>
</el-form-item>
<br/>
<el-form-item
:label=
"$t('特殊要求备注')"
>
<el-form-item
:label=
"$t('特殊要求备注')"
>
<el-input
v-model=
"form.packageRemarks"
></el-input>
<el-input
v-model=
"form.packageRemarks"
></el-input>
</el-form-item>
</el-form-item>
</el-card>
</el-card>
<el-form-item
label=
""
>
<el-form-item
label=
""
class=
"mt-20"
>
<el-button
type=
"primary"
@
click=
"submitForm"
>
{{$t('确定')}}
</el-button>
<el-button
type=
"primary"
@
click=
"submitForm"
>
{{$t('确定')}}
</el-button>
<el-button
@
click=
"$store.dispatch('tagsView/delCurrentView')"
>
{{$t('取消')}}
</el-button>
<el-button
@
click=
"$store.dispatch('tagsView/delCurrentView')"
>
{{$t('取消')}}
</el-button>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
<choose-contact-dialog
v-if=
"!!contactChooseType"
@
choose=
"onContactChoose"
@
close=
"contactChooseType=null"
/>
<quick-create-customer
v-if=
"quickCreateType"
:type=
"quickCreateType"
@
success=
"onContactChoose"
@
close=
"quickCreateType=null"
/>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
import
{
createOffer
,
updateOffer
,
getOffer
,
getProductFeeList
,
getProductFee
}
from
"
@/api/ecw/offer
"
;
import
{
createOffer
,
updateOffer
,
getOffer
}
from
"
@/api/ecw/offer
"
;
import
ProductSelector
from
'
@/components/ProductSelector
'
import
ProductSelector
from
'
@/components/ProductSelector
'
import
{
getProductAttrList
}
from
'
@/api/ecw/productAttr
'
import
{
getProductAttrList
}
from
'
@/api/ecw/productAttr
'
import
{
getChannelList
}
from
'
@/api/ecw/channel
'
import
{
getChannelList
}
from
'
@/api/ecw/channel
'
import
Selector
from
'
@/components/Selector
'
import
Selector
from
'
@/components/Selector
'
import
CustomerContactSelector
from
'
@/components/CustomerContactSelector
'
import
{
openedRouterList
as
getOpenedRouterList
}
from
'
@/api/ecw/warehouse
'
import
{
openedRouterList
as
getOpenedRouterList
}
from
'
@/api/ecw/warehouse
'
import
{
getTradeCityList
}
from
'
@/api/ecw/region
'
import
{
getTradeCityList
}
from
'
@/api/ecw/region
'
import
{
getDictData
}
from
'
@/utils/dict
'
import
{
getDictData
}
from
'
@/utils/dict
'
import
{
getCurrencyList
}
from
'
@/api/ecw/currency
'
import
{
getCurrencyList
}
from
'
@/api/ecw/currency
'
import
{
getUnitList
}
from
'
@/api/ecw/unit
'
import
{
getUnitList
}
from
'
@/api/ecw/unit
'
import
{
calculationPrice
}
from
'
@/api/ecw/product
'
import
{
calculationPrice
}
from
'
@/api/ecw/product
'
import
{
getCustomerAvailableCouponList
}
from
'
@/api/ecw/coupon
'
import
SupplierSelector
from
'
@/components/SupplierSelector
'
import
ChooseContactDialog
from
'
@/components/ChooseContactDialog
'
import
QuickCreateCustomer
from
'
@/components/QuickCreateCustomer
'
import
{
getCustomerContactsSelect
}
from
'
@/api/ecw/customerContacts
'
export
default
{
export
default
{
name
:
"
OfferEdit
"
,
name
:
"
OfferEdit
"
,
components
:
{
components
:
{
ProductSelector
,
Selector
,
CustomerContactSelecto
r
ProductSelector
,
Selector
,
SupplierSelector
,
ChooseContactDialog
,
QuickCreateCustome
r
},
},
data
()
{
data
()
{
return
{
return
{
// 遮罩层
// 遮罩层
loading
:
true
,
loading
:
true
,
// 是否显示弹出层
/* dateRangeStopTime: [],
dateRangeStartTime: [],
dateRangeEndTime: [],
dateRangeCreateTime: [], */
productList
:[],
// 商品信息
productList
:[],
// 商品信息
productAttrList
:[],
// 商品属性
productAttrList
:[],
// 商品属性
channelList
:
[],
// 出货取到
channelList
:
[],
// 出货取到
...
@@ -487,7 +487,7 @@ export default {
...
@@ -487,7 +487,7 @@ export default {
transportList
:
[],
transportList
:
[],
currencyList
:[],
currencyList
:[],
unitList
:[],
unitList
:[],
couponList
:
[{
"
selectedIndex
"
:
null
,
"
options
"
:[{
"
couponId
"
:
74
,
"
titleZh
"
:
"
2-1,5-2
"
,
"
titleEn
"
:
"
2-1,5-2
"
,
"
type
"
:
2
,
"
cashCondition
"
:
0
,
"
reduceAmount
"
:
3
,
"
reduceCurrencyId
"
:
1
,
"
startTime
"
:
"
2022-01-01 00:00:00
"
,
"
afterReceiveDays
"
:
0
,
"
costType
"
:
2
,
"
discountDetailed
"
:
"
[{
\"
type
\"
: 1,
\"
fullAmount
\"
: 2,
\"
reduceAmount
\"
: 1,
\"
fullCurrencyId
\"
: 1,
\"
reduceCurrencyId
\"
: 1}, {
\"
type
\"
: 1,
\"
fullAmount
\"
: 5,
\"
reduceAmount
\"
: 2,
\"
fullCurrencyId
\"
: 1,
\"
reduceCurrencyId
\"
: 1}, {
\"
type
\"
: 2,
\"
fullAmount
\"
: 2,
\"
reduceAmount
\"
: 1,
\"
fullCurrencyId
\"
: 1,
\"
reduceCurrencyId
\"
: 1}, {
\"
type
\"
: 2,
\"
fullAmount
\"
: 6,
\"
reduceAmount
\"
: 3,
\"
fullCurrencyId
\"
: 1,
\"
reduceCurrencyId
\"
: 1}]
"
,
"
discountDetailedVOList
"
:[{
"
type
"
:
1
,
"
fullAmount
"
:
2
,
"
fullCurrencyId
"
:
1
,
"
reduceAmount
"
:
1
,
"
reduceCurrencyId
"
:
1
},{
"
type
"
:
1
,
"
fullAmount
"
:
5
,
"
fullCurrencyId
"
:
1
,
"
reduceAmount
"
:
2
,
"
reduceCurrencyId
"
:
1
},{
"
type
"
:
2
,
"
fullAmount
"
:
2
,
"
fullCurrencyId
"
:
1
,
"
reduceAmount
"
:
1
,
"
reduceCurrencyId
"
:
1
},{
"
type
"
:
2
,
"
fullAmount
"
:
6
,
"
fullCurrencyId
"
:
1
,
"
reduceAmount
"
:
3
,
"
reduceCurrencyId
"
:
1
}],
"
isSimilarSuperposition
"
:
false
,
"
couponIds
"
:
""
,
"
suitableUserType
"
:
0
,
"
suitableLineType
"
:
0
,
"
suitableProdType
"
:
0
,
"
limitNum
"
:
1
,
"
overdueStatus
"
:
true
,
"
putonStatus
"
:
1
,
"
getWay
"
:
1
,
"
orderAttr
"
:
"
1,2,3
"
,
"
isSiteContent
"
:
false
,
"
brand
"
:
"
0,1
"
,
"
isCargoControl
"
:
"
1,0
"
,
"
documentDeclaration
"
:
"
1,2,3
"
,
"
status
"
:
1
,
"
prodList
"
:[],
"
isDefault
"
:
false
},{
"
couponId
"
:
73
,
"
titleZh
"
:
"
3-2,2-1
"
,
"
titleEn
"
:
"
3-2,2-1
"
,
"
type
"
:
2
,
"
cashCondition
"
:
0
,
"
reduceAmount
"
:
2
,
"
reduceCurrencyId
"
:
1
,
"
startTime
"
:
"
2022-01-01 00:00:00
"
,
"
afterReceiveDays
"
:
0
,
"
costType
"
:
1
,
"
discountDetailed
"
:
"
[{
\"
type
\"
: 1,
\"
fullAmount
\"
: 2,
\"
reduceAmount
\"
: 1,
\"
fullCurrencyId
\"
: 1,
\"
reduceCurrencyId
\"
: 1}, {
\"
type
\"
: 1,
\"
fullAmount
\"
: 3,
\"
reduceAmount
\"
: 2,
\"
fullCurrencyId
\"
: 1,
\"
reduceCurrencyId
\"
: 1}, {
\"
type
\"
: 2,
\"
fullAmount
\"
: 2,
\"
reduceAmount
\"
: 1,
\"
fullCurrencyId
\"
: 1,
\"
reduceCurrencyId
\"
: 1}, {
\"
type
\"
: 2,
\"
fullAmount
\"
: 3,
\"
reduceAmount
\"
: 2,
\"
fullCurrencyId
\"
: 1,
\"
reduceCurrencyId
\"
: 1}]
"
,
"
discountDetailedVOList
"
:[{
"
type
"
:
1
,
"
fullAmount
"
:
2
,
"
fullCurrencyId
"
:
1
,
"
reduceAmount
"
:
1
,
"
reduceCurrencyId
"
:
1
},{
"
type
"
:
1
,
"
fullAmount
"
:
3
,
"
fullCurrencyId
"
:
1
,
"
reduceAmount
"
:
2
,
"
reduceCurrencyId
"
:
1
},{
"
type
"
:
2
,
"
fullAmount
"
:
2
,
"
fullCurrencyId
"
:
1
,
"
reduceAmount
"
:
1
,
"
reduceCurrencyId
"
:
1
},{
"
type
"
:
2
,
"
fullAmount
"
:
3
,
"
fullCurrencyId
"
:
1
,
"
reduceAmount
"
:
2
,
"
reduceCurrencyId
"
:
1
}],
"
isSimilarSuperposition
"
:
false
,
"
couponIds
"
:
""
,
"
suitableUserType
"
:
0
,
"
suitableLineType
"
:
0
,
"
suitableProdType
"
:
0
,
"
limitNum
"
:
1
,
"
overdueStatus
"
:
true
,
"
putonStatus
"
:
1
,
"
getWay
"
:
1
,
"
orderAttr
"
:
"
1,2,3
"
,
"
isSiteContent
"
:
false
,
"
brand
"
:
"
0,1
"
,
"
isCargoControl
"
:
"
0,1
"
,
"
documentDeclaration
"
:
"
1,2,3
"
,
"
status
"
:
1
,
"
prodList
"
:[],
"
isDefault
"
:
false
},{
"
couponId
"
:
71
,
"
titleZh
"
:
"
金额满2减1
"
,
"
titleEn
"
:
"
金额满2减1
"
,
"
type
"
:
2
,
"
cashCondition
"
:
0
,
"
reduceAmount
"
:
5
,
"
reduceCurrencyId
"
:
1
,
"
startTime
"
:
"
2022-01-01 00:00:00
"
,
"
afterReceiveDays
"
:
0
,
"
costType
"
:
1
,
"
discountDetailed
"
:
"
[{
\"
type
\"
: 1,
\"
fullAmount
\"
: 2,
\"
reduceAmount
\"
: 1,
\"
fullCurrencyId
\"
: 1,
\"
reduceCurrencyId
\"
: 1}, {
\"
type
\"
: 1,
\"
fullAmount
\"
: 10,
\"
reduceAmount
\"
: 5,
\"
fullCurrencyId
\"
: 1,
\"
reduceCurrencyId
\"
: 1}]
"
,
"
discountDetailedVOList
"
:[{
"
type
"
:
1
,
"
fullAmount
"
:
2
,
"
fullCurrencyId
"
:
1
,
"
reduceAmount
"
:
1
,
"
reduceCurrencyId
"
:
1
},{
"
type
"
:
1
,
"
fullAmount
"
:
10
,
"
fullCurrencyId
"
:
1
,
"
reduceAmount
"
:
5
,
"
reduceCurrencyId
"
:
1
}],
"
isSimilarSuperposition
"
:
true
,
"
couponIds
"
:
""
,
"
suitableUserType
"
:
0
,
"
suitableLineType
"
:
0
,
"
suitableProdType
"
:
0
,
"
limitNum
"
:
1
,
"
overdueStatus
"
:
true
,
"
putonStatus
"
:
1
,
"
getWay
"
:
1
,
"
orderAttr
"
:
"
1,2,3
"
,
"
isSiteContent
"
:
false
,
"
brand
"
:
"
0,1
"
,
"
isCargoControl
"
:
"
1,0
"
,
"
documentDeclaration
"
:
"
1,2,3
"
,
"
status
"
:
1
,
"
prodList
"
:[],
"
isDefault
"
:
false
}],
"
prodId
"
:
22
,
"
type
"
:
2
}
],
// couponList: [
],
fee
:
{},
// 费用
fee
:
{},
// 费用
// 表单参数
// 表单参数
form
:
{
form
:
{
...
@@ -497,17 +497,26 @@ export default {
...
@@ -497,17 +497,26 @@ export default {
},
},
// 表单校验
// 表单校验
rules
:
{
rules
:
{
/* number: [{ required: true, message: "报价单号不能为空", trigger: "blur" }],
lineId
:
[{
required
:
true
,
message
:
"
请选择线路
"
}],
consignorId: [{ required: true, message: "客户id,发货人不能为空", trigger: "blur" }],
consignorId
:
[{
required
:
true
,
message
:
"
发货人不能为空
"
,}],
consigneeId: [{ required: true, message: "收货人id不能为空", trigger: "blur" }],
consigneeId
:
[{
required
:
true
,
message
:
"
收货人不能为空
"
}],
sendstatus: [{ required: true, message: "站内信状态,0未发送,1已发送不能为空", trigger: "blur" }], */
startTime
:
[{
required
:
true
,
message
:
"
有效期开始时间不能为空
"
}],
endTime
:
[{
required
:
true
,
message
:
"
有效期结束时间不能为空
"
}],
transportId
:
[{
required
:
true
,
message
:
"
选择运输方式
"
}],
channelId
:
[{
required
:
true
,
message
:
"
选择出货渠道
"
}],
/*sendstatus: [{ required: true, message: "站内信状态,0未发送,1已发送不能为空", trigger: "blur" }], */
},
},
labelStyle
:
'
width:120px
'
,
labelStyle
:
'
width:120px
'
,
productNames
:
{}
// 品名id和名称对应关系
productNames
:
{},
// 品名id和名称对应关系
couponAvailableGroupDtoList
:
[],
// 可用优惠
couponTotalAmountList
:
[],
// 优惠总额
contactChooseType
:
null
,
// 联系人选择对象consignor(发货人) 或者 consignee(收货人)
quickCreateType
:
null
,
// 快速新建客户类型,1发货人,2收货人
getOpenedRouterListHandler
:
undefined
};
};
},
},
computed
:{
computed
:{
expo
er
CityList
(){
expo
rt
CityList
(){
return
this
.
tradeCityList
.
filter
(
item
=>
item
.
type
==
2
)
return
this
.
tradeCityList
.
filter
(
item
=>
item
.
type
==
2
)
},
},
importCityList
(){
importCityList
(){
...
@@ -573,28 +582,67 @@ export default {
...
@@ -573,28 +582,67 @@ export default {
return
sum
return
sum
},
},
// 总有优惠金额
// 总有优惠金额
discount
(){
couponList
(){
let
discount
=
{
let
arr
=
[]
// curreny: amount
this
.
couponAvailableGroupDtoList
.
forEach
(
item
=>
{
}
if
(
item
.
couponAvailableDtoList
&&
item
.
couponAvailableDtoList
.
length
){
this
.
couponList
.
forEach
(
item
=>
{
// 只取第一个
if
(
item
.
selectedIndex
!==
null
){
let
it
=
item
.
couponAvailableDtoList
[
0
]
let
selected
=
item
.
options
[
item
.
selectedIndex
]
arr
.
push
({
if
(
!
discount
[
selected
.
reduceCurrencyId
])
discount
[
selected
.
reduceCurrencyId
]
=
0
prodId
:
item
.
prodId
,
discount
[
selected
.
reduceCurrencyId
]
+=
selected
.
reduceAmount
type
:
it
.
type
,
titleZh
:
it
.
titleZh
,
titleEn
:
it
.
titleEn
,
endTime
:
it
.
endTime
,
reduceAmount
:
it
.
reduceAmount
,
reduceCurrencyId
:
it
.
reduceCurrencyId
})
}
}
})
})
return
discount
return
arr
},
},
discountArr
(){
// 计算返回的费用清单
let
discount
=
[]
feeDtoList
(){
for
(
let
currency
in
this
.
discount
){
return
this
.
fee
.
feeDtoList
||
[]
discount
.
push
({
},
reduceAmount
:
this
.
discount
[
currency
],
// 清关费
reduceCurrencyId
:
currency
clearanceFeeList
(){
return
this
.
feeDtoList
.
filter
(
item
=>
item
.
feeType
==
2
)
},
// 运费
freightFeeList
(){
return
this
.
feeDtoList
.
filter
(
item
=>
item
.
feeType
==
1
)
},
// 原价(清关费 + 运费)
originalFeeList
(){
let
arr
=
[]
this
.
clearanceFeeList
.
forEach
(
item
=>
{
let
it
=
{...
item
}
let
freight
=
this
.
freightFeeList
.
find
(
fee
=>
fee
.
currencyId
==
item
.
currencyId
)
if
(
freight
){
it
.
amount
+=
freight
.
amount
}
arr
.
push
(
it
)
})
})
}
return
arr
return
discount
},
// 预计费用(原价 - 优惠金额)
estimatedCosts
(){
let
arr
=
[]
this
.
originalFeeList
.
forEach
(
item
=>
{
let
it
=
{...
item
}
let
coupon
=
this
.
couponList
.
find
(
coupon
=>
coupon
.
reduceCurrencyId
==
item
.
currencyId
)
if
(
coupon
){
it
.
amount
-=
coupon
.
reduceAmount
}
arr
.
push
(
it
)
})
return
arr
},
// 路线开通的服务
routeOtherServices
(){
if
(
!
this
.
selectedRouter
||
!
this
.
selectedRouter
.
otherService
)
return
[]
return
this
.
selectedRouter
.
otherService
.
split
(
'
,
'
)
}
}
/* productKeyd(){
/* productKeyd(){
return arrryToKeyedObjectBy(this.productList, 'prodId')
return arrryToKeyedObjectBy(this.productList, 'prodId')
...
@@ -617,12 +665,18 @@ export default {
...
@@ -617,12 +665,18 @@ export default {
},
},
'
form.lineId
'
(
lineId
){
'
form.lineId
'
(
lineId
){
let
router
=
this
.
routerList
.
find
(
item
=>
item
.
id
==
lineId
)
let
router
=
this
.
routerList
.
find
(
item
=>
item
.
id
==
lineId
)
if
(
!
router
)
return
this
.
$set
(
this
.
form
,
'
departureId
'
,
router
.
startCityId
)
this
.
$set
(
this
.
form
,
'
departureId
'
,
router
.
startCityId
)
this
.
$set
(
this
.
form
,
'
objectiveId
'
,
router
.
destCityId
)
this
.
$set
(
this
.
form
,
'
objectiveId
'
,
router
.
destCityId
)
// TODO 还需要回填渠道信息,暂时缺少渠道ID
},
},
fee
(){
// 选择的路线变化后,需要判断是否开通了对应的服务,如果没开通需要取消对应的服务选择
this
.
getCoupons
()
selectedRouter
(
val
){
if
(
!
val
)
return
[
'
1
'
,
'
4
'
].
forEach
(
service
=>
{
if
(
this
.
routeOtherServices
.
indexOf
(
service
)
<
0
&&
this
.
form
.
type
.
indexOf
(
service
)
>
-
1
){
this
.
form
.
type
.
splice
(
this
.
form
.
type
.
findIndex
(
item
=>
item
==
service
),
1
)
}
})
}
}
},
},
created
()
{
created
()
{
...
@@ -635,7 +689,10 @@ export default {
...
@@ -635,7 +689,10 @@ export default {
if
(
this
.
$route
.
query
.
id
){
if
(
this
.
$route
.
query
.
id
){
getOffer
(
this
.
$route
.
query
.
id
).
then
(
res
=>
{
getOffer
(
this
.
$route
.
query
.
id
).
then
(
res
=>
{
this
.
$set
(
this
,
'
form
'
,
res
.
data
)
let
formData
=
res
.
data
formData
.
type
=
formData
.
type
?
formData
.
type
.
split
(
'
,
'
).
filter
(
item
=>
item
!=
''
)
:
[]
this
.
$set
(
this
,
'
form
'
,
formData
)
if
(
res
.
data
.
offerProdRespVOList
){
if
(
res
.
data
.
offerProdRespVOList
){
res
.
data
.
offerProdRespVOList
.
forEach
(
item
=>
{
res
.
data
.
offerProdRespVOList
.
forEach
(
item
=>
{
this
.
addProduct
({
this
.
addProduct
({
...
@@ -655,12 +712,19 @@ export default {
...
@@ -655,12 +712,19 @@ export default {
})
})
})
})
}
}
console
.
log
(
'
res.data.transportRespVOList
'
,
res
.
data
.
transportRespVOList
)
res
.
data
.
transportRespVOList
.
forEach
(
item
=>
{
// 接口只返回了发货人和收货人ID,还需要调用接口获取详细信息回显
getCustomerContactsSelect
({
ids
:
[
res
.
data
.
consigneeId
,
res
.
data
.
consignorId
].
join
(
'
,
'
)}).
then
(({
data
})
=>
{
this
.
contactChooseType
=
'
consignee
'
this
.
onContactChoose
(
data
.
find
(
item
=>
item
.
customerContactsId
==
res
.
data
.
consigneeId
))
this
.
contactChooseType
=
'
consignor
'
this
.
onContactChoose
(
data
.
find
(
item
=>
item
.
customerContactsId
==
res
.
data
.
consignorId
))
})
/* res.data.transportRespVOList.forEach(item => {
let transport = this.transportList.find(t => t.transportId == item.transportId)
let transport = this.transportList.find(t => t.transportId == item.transportId)
console.log(item.transportId, transport)
console.log(item.transportId, transport)
Object.assign(transport, item, {_enabled: true})
Object.assign(transport, item, {_enabled: true})
})
})
*/
/* this.$nextTick(() => {
/* this.$nextTick(() => {
this.updateEnabledTransports()
this.updateEnabledTransports()
}) */
}) */
...
@@ -668,11 +732,22 @@ export default {
...
@@ -668,11 +732,22 @@ export default {
}
//else this.addProduct()
}
//else this.addProduct()
},
},
methods
:
{
methods
:
{
/* onTransportChange(row, val){
onContactChoose
(
contact
){
this.getProductFee(row)
console
.
log
(
'
选择联系人
'
,
contact
)
if(this.getDictData(this.DICT_TYPE.ECW_TRANSPORT_TYPE, val).cssClass != 'channel') row.channelId = null
if
(
!
this
.
contactChooseType
&&
!
this
.
quickCreateType
)
return
this.updateEnabledTransports()
if
(
!
this
.
contactChooseType
&&
this
.
quickCreateType
){
}, */
this
.
contactChooseType
=
this
.
quickCreateType
==
1
?
'
consignor
'
:
'
consignee
'
}
this
.
$set
(
this
.
form
,
this
.
contactChooseType
+
'
Company
'
,
contact
.
company
)
this
.
$set
(
this
.
form
,
this
.
contactChooseType
+
'
Id
'
,
contact
.
customerContactsId
)
this
.
$set
(
this
.
form
,
this
.
contactChooseType
+
'
CountryCode
'
,
contact
.
areaCode
)
this
.
$set
(
this
.
form
,
this
.
contactChooseType
+
'
Email
'
,
contact
.
email
)
// this.$set(this.form, this.contactChooseType + 'Id', contact.customerId)
this
.
$set
(
this
.
form
,
this
.
contactChooseType
+
'
Name
'
,
contact
.
contactsName
)
this
.
$set
(
this
.
form
,
this
.
contactChooseType
+
'
Phone
'
,
contact
.
phoneNew
)
this
.
contactChooseType
=
null
this
.
quickCreateType
=
null
},
/* onProductChange(row, product){
/* onProductChange(row, product){
row.goodsType = product.typeId;
row.goodsType = product.typeId;
// 保存商品id和品名,用于优惠信息显示
// 保存商品id和品名,用于优惠信息显示
...
@@ -683,6 +758,11 @@ export default {
...
@@ -683,6 +758,11 @@ export default {
console
.
log
(
product
)
console
.
log
(
product
)
row
.
goodsType
=
product
?
product
.
typeId
:
null
row
.
goodsType
=
product
?
product
.
typeId
:
null
row
.
prodAttrArr
=
!
product
?
[]
:
product
.
attrId
.
split
(
'
,
'
).
filter
(
item
=>
item
!==
''
).
map
(
item
=>
+
item
)
row
.
prodAttrArr
=
!
product
?
[]
:
product
.
attrId
.
split
(
'
,
'
).
filter
(
item
=>
item
!==
''
).
map
(
item
=>
+
item
)
this
.
$set
(
this
.
productNames
,
product
.
id
,
{
titleZh
:
product
.
titleZh
,
titleEn
:
product
.
titleEn
})
this
.
calculationPrice
()
},
},
onLineChange
(
row
){
onLineChange
(
row
){
this
.
calculationPrice
()
this
.
calculationPrice
()
...
@@ -694,51 +774,15 @@ export default {
...
@@ -694,51 +774,15 @@ export default {
onProductAttrChange
(
row
,
attr
){
onProductAttrChange
(
row
,
attr
){
this
.
calculationPrice
()
this
.
calculationPrice
()
},
},
// 更新运输方式
/* updateEnabledTransports(){
let enabled = {}
this.productList.forEach(prod => {
if(prod.transportId){
if(!enabled[prod.transportId]){
enabled[prod.transportId] = {
// transportId: prod.transportId,
lineIdSet: new Set(),
channelIdSet: new Set(),
routers:[]
}
}
if(prod.lineId){
enabled[prod.transportId].lineIdSet.add(prod.lineId)
}
if(prod.channelId){
enabled[prod.transportId].channelIdSet.add(prod.channelId)
}
if(prod.lineId && enabled[prod.transportId].routers.findIndex(item => { item.lineId == prod.lineId && item.channelId == prod.channelId }) < 0){
enabled[prod.transportId].routers.push({
lineId: prod.lineId,
channelId: prod.channelId
})
}
}
})
console.log(JSON.stringify(enabled))
let enabledTransportIds = Object.keys(enabled).map(item => +item)
this.transportList.forEach(transport => {
this.$set(transport, '_enabled', enabledTransportIds.indexOf(transport.transportId) > -1 && enabled[transport.transportId].routers.length)
if(transport._enabled){
Object.assign(transport, enabled[transport.transportId])
}
})
}, */
addProduct
(
data
){
addProduct
(
data
){
if
(
!
data
&&
!
this
.
form
.
lineId
){
if
(
!
data
&&
!
this
.
form
.
lineId
){
return
this
.
$message
.
error
(
this
.
$t
(
'
请先选择路线
'
))
return
this
.
$message
.
error
(
this
.
$t
(
'
请先选择路线
'
))
}
}
console
.
log
(
'
addProduct
'
,
JSON
.
stringify
(
data
))
this
.
productList
.
push
(
data
||
{
prodAttrArr
:[]})
this
.
productList
.
push
(
data
||
{
prodAttrArr
:[]})
},
},
// 计算商品运费
// 计算商品运费
getProductFee
(
row
){
/*
getProductFee(row){
if(!row.prodId || !row.transportId || !row.lineId || !row.num || !row.weight)return false
if(!row.prodId || !row.transportId || !row.lineId || !row.num || !row.weight)return false
if(row.prodAttrArr){
if(row.prodAttrArr){
row.prodAttrIds = row.prodAttrArr.join(',')
row.prodAttrIds = row.prodAttrArr.join(',')
...
@@ -746,7 +790,7 @@ export default {
...
@@ -746,7 +790,7 @@ export default {
getProductFeeList(row).then(res => {
getProductFeeList(row).then(res => {
this.$set(row, 'fee', res.data[0] || {})
this.$set(row, 'fee', res.data[0] || {})
})
})
},
},
*/
// 获取路线
// 获取路线
getOpenedRouterList
(){
getOpenedRouterList
(){
let
params
=
{}
let
params
=
{}
...
@@ -780,39 +824,6 @@ export default {
...
@@ -780,39 +824,6 @@ export default {
this
.
productList
.
splice
(
index
,
1
)
this
.
productList
.
splice
(
index
,
1
)
})
})
},
},
getCoupons
(){
console
.
log
(
'
getCoupons
'
)
// if(!this.form.consigneeContactsId || !this.form.consignorContactsId) return false
let
data
=
Object
.
assign
({},
this
.
form
,
{
prodConditionParamList
:
this
.
productList
,
consigneeCustomerContactsId
:
this
.
form
.
consigneeId
,
consignorCustomerContactsId
:
this
.
form
.
consignorId
})
getCustomerAvailableCouponList
(
data
)
.
then
(
res
=>
{
// 对优惠信息按照商品 + 类型 分组展示
let
list
=
{}
res
.
data
.
couponAvailableGroupDtoList
.
forEach
(
item
=>
{
item
.
couponAvailableDtoList
.
forEach
(
coupon
=>
{
let
key
=
item
.
prodId
+
'
_
'
+
coupon
.
type
if
(
!
list
[
key
]){
list
[
key
]
=
{
selectedIndex
:
null
,
options
:
[],
prodId
:
item
.
prodId
,
type
:
coupon
.
type
}
}
list
[
key
].
options
.
push
(
coupon
)
})
})
this
.
couponList
=
Object
.
values
(
list
)
})
},
// 显示更多报价
showMorePrice
(
index
){
console
.
log
(
'
显示更多报价
'
,
index
)
},
/** 提交按钮 */
/** 提交按钮 */
submitForm
()
{
submitForm
()
{
this
.
$refs
[
"
form
"
].
validate
(
valid
=>
{
this
.
$refs
[
"
form
"
].
validate
(
valid
=>
{
...
@@ -887,11 +898,13 @@ export default {
...
@@ -887,11 +898,13 @@ export default {
customsType
:
this
.
form
.
customsType
,
customsType
:
this
.
form
.
customsType
,
isCargoControl
:
this
.
form
.
control
,
isCargoControl
:
this
.
form
.
control
,
orderType
:
this
.
form
.
orderType
,
orderType
:
this
.
form
.
orderType
,
}).
then
(
res
=>
{
}).
then
(
res
=>
{
this
.
$set
(
this
,
'
fee
'
,
res
.
data
.
costDto
)
this
.
$set
(
this
,
'
fee
'
,
res
.
data
.
costDto
)
this
.
$set
(
this
,
'
couponTotalAmountList
'
,
res
.
data
.
availableDto
.
couponTotalAmountList
)
this
.
$set
(
this
,
'
couponAvailableGroupDtoList
'
,
res
.
data
.
availableDto
.
couponAvailableGroupDtoList
)
this
.
productList
.
map
((
item
,
index
)
=>
{
this
.
productList
.
map
((
item
,
index
)
=>
{
this
.
$set
(
item
,
'
fee
'
,
res
.
data
.
prodCostDtoList
[
index
])
this
.
$set
(
item
,
'
fee
'
,
res
.
data
.
prodCostDtoList
[
index
]
||
null
)
})
})
}).
finally
(()
=>
{
}).
finally
(()
=>
{
this
.
calculating
=
false
this
.
calculating
=
false
...
@@ -908,7 +921,17 @@ export default {
...
@@ -908,7 +921,17 @@ export default {
flex
:
1
;
flex
:
1
;
}
}
}
}
.mt-10
{
.form-section
{
margin-top
:
10px
;
.contact
{
display
:
flex
;
align-items
:
center
;
img
.phonebook
{
width
:
30px
;
height
:
30px
;
margin-left
:
10px
;
cursor
:
pointer
;
}
}
}
}
</
style
>
</
style
>
\ No newline at end of file
src/views/ecw/order/components/Transfer.vue
View file @
c0153bfa
...
@@ -3,10 +3,10 @@
...
@@ -3,10 +3,10 @@
<div
class=
""
v-if=
"agreement"
>
<div
class=
""
v-if=
"agreement"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-position=
"left"
label-width=
"120px"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-position=
"left"
label-width=
"120px"
>
<el-form-item
:label=
"$t('原控货人')"
>
<el-form-item
:label=
"$t('原控货人')"
>
<el-input
v-model=
"cargoControlName"
readonly
></el-input>
<el-input
v-model=
"cargoControlName"
disabled
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
:label=
"$t('原控货手机号')"
>
<el-form-item
:label=
"$t('原控货手机号')"
>
<el-input
v-model=
"cargoControlPhone"
readonly
></el-input>
<el-input
:value=
"cargoControlPhone"
disabled
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
:label=
"$t('新控货人')"
prop=
"name"
>
<el-form-item
:label=
"$t('新控货人')"
prop=
"name"
>
...
@@ -49,7 +49,8 @@ export default {
...
@@ -49,7 +49,8 @@ export default {
orderId
:
[
String
,
Number
],
orderId
:
[
String
,
Number
],
cargoControlName
:
String
,
cargoControlName
:
String
,
cargoControlPhone
:
String
,
cargoControlPhone
:
String
,
orderNo
:
String
orderNo
:
String
,
},
},
components
:
{
SendSmsCode
,
NeedKnow
,
AreaCodeSelector
},
components
:
{
SendSmsCode
,
NeedKnow
,
AreaCodeSelector
},
data
(){
data
(){
...
...
src/views/ecw/order/detail.vue
View file @
c0153bfa
...
@@ -9,7 +9,9 @@
...
@@ -9,7 +9,9 @@
<el-col
:span=
"8"
v-if=
"order.consignorVO"
>
<el-col
:span=
"8"
v-if=
"order.consignorVO"
>
<el-descriptions
class=
"margin-top"
border
:title=
"$t('发货人')"
:column=
"1"
:labelStyle=
"{width:'150px'}"
>
<el-descriptions
class=
"margin-top"
border
:title=
"$t('发货人')"
:column=
"1"
:labelStyle=
"{width:'150px'}"
>
<el-descriptions-item
:label=
"$t('发货人')"
>
{{order.consignorVO.name}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('发货人')"
>
{{order.consignorVO.name}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('发货人电话')"
>
{{order.consignorVO.phone}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('发货人电话')"
>
{{order.consignorVO.countryCode}} {{order.consignorVO.phone}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('发货人邮箱')"
>
{{order.consignorVO.email}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('发货人邮箱')"
>
{{order.consignorVO.email}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('发货人公司名称')"
>
<el-descriptions-item
:label=
"$t('发货人公司名称')"
>
{{order.consignorVO.company}}
{{order.consignorVO.company}}
...
@@ -19,7 +21,9 @@
...
@@ -19,7 +21,9 @@
<el-col
:span=
"16"
v-if=
"order.consigneeVO"
>
<el-col
:span=
"16"
v-if=
"order.consigneeVO"
>
<el-descriptions
class=
"margin-top"
border
:title=
"$t('收货人')"
:column=
"2"
:labelStyle=
"{width:'150px'}"
>
<el-descriptions
class=
"margin-top"
border
:title=
"$t('收货人')"
:column=
"2"
:labelStyle=
"{width:'150px'}"
>
<el-descriptions-item
:label=
"$t('收货人')"
>
{{order.consigneeVO.name}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('收货人')"
>
{{order.consigneeVO.name}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('收货人电话')"
>
{{order.consigneeVO.phone}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('收货人电话')"
>
{{order.consigneeVO.countryCode}} {{order.consigneeVO.phone}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('收货人邮箱')"
>
{{order.consigneeVO.email}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('收货人邮箱')"
>
{{order.consigneeVO.email}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('收货人公司名称')"
>
<el-descriptions-item
:label=
"$t('收货人公司名称')"
>
{{order.consigneeVO.company}}
{{order.consigneeVO.company}}
...
...
src/views/ecw/order/edit.vue
View file @
c0153bfa
...
@@ -87,7 +87,7 @@
...
@@ -87,7 +87,7 @@
<dict-selector
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
v-model=
"form.transportId"
:disabled=
"form.status !== 0"
/>
<dict-selector
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
v-model=
"form.transportId"
:disabled=
"form.status !== 0"
/>
</el-form-item>
</el-form-item>
<el-form-item
:label=
"$t('出货渠道')"
prop=
"channelId"
required
v-if=
"getDictData(DICT_TYPE.ECW_TRANSPORT_TYPE, form.transportId).cssClass == 'channel'"
:error=
"$t('请选择出货渠道')
"
>
<el-form-item
:label=
"$t('出货渠道')"
prop=
"channelId"
v-if=
"getDictData(DICT_TYPE.ECW_TRANSPORT_TYPE, form.transportId).cssClass == 'channel'
"
>
<selector
<selector
:disabled=
"form.status !== 0 || getDictData(DICT_TYPE.ECW_TRANSPORT_TYPE, form.transportId).cssClass != 'channel'"
:disabled=
"form.status !== 0 || getDictData(DICT_TYPE.ECW_TRANSPORT_TYPE, form.transportId).cssClass != 'channel'"
v-model=
"form.channelId"
v-model=
"form.channelId"
...
@@ -119,25 +119,6 @@
...
@@ -119,25 +119,6 @@
</
template
>
</
template
>
</select>
</select>
</div>
</div>
<!-- <el-descriptions :column="3" border>
<el-descriptions-item :label="$t('运输方式')" :labelStyle="labelStyle">
</el-descriptions-item>
<el-descriptions-item :label="$t('出货渠道')" v-if="getDictData(DICT_TYPE.ECW_TRANSPORT_TYPE, form.transportId).cssClass == 'channel'" :labelStyle="labelStyle">
</el-descriptions-item>
</el-descriptions>
<el-descriptions :column="2" border>
<el-descriptions-item :label="$t('始发城市')" :labelStyle="labelStyle">
</el-descriptions-item>
<el-descriptions-item :label="$t('目的城市')" :labelStyle="labelStyle">
</el-descriptions-item>
<el-descriptions-item :label="$t('请选择线路')" :span="2" :labelStyle="labelStyle">
</el-descriptions-item>
</el-descriptions> -->
</el-card>
</el-card>
<el-card
class=
"mt-10"
>
<el-card
class=
"mt-10"
>
<div
slot=
"header"
class=
"card-title"
>
<div
slot=
"header"
class=
"card-title"
>
...
@@ -255,7 +236,7 @@
...
@@ -255,7 +236,7 @@
</el-table-column>
</el-table-column>
<el-table-column
:label=
"$t('快递单号')"
width=
"100px"
>
<el-table-column
:label=
"$t('快递单号')"
width=
"100px"
>
<
template
slot-scope=
"{row}"
>
<
template
slot-scope=
"{row}"
>
<el-input
v-model=
"row.expressNo"
placeholder=
"
缺少字段
"
/>
<el-input
v-model=
"row.expressNo"
placeholder=
""
/>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
...
@@ -344,46 +325,47 @@
...
@@ -344,46 +325,47 @@
<el-card
class=
"mt-10"
>
<el-card
class=
"mt-10"
>
<div
class=
"card-title"
slot=
"header"
>
{{$t('通用')}}
</div>
<div
class=
"card-title"
slot=
"header"
>
{{$t('通用')}}
</div>
<div
class=
"form-section"
>
<el-descriptions
:column=
"2"
border
>
<el-form-item
label=
"唛头"
prop=
"marks"
>
<el-descriptions-item
:label=
"$t('唛头')"
>
<el-form-item
label=
""
prop=
"marks"
label-width=
"0"
style=
"margin-bottom: 0"
>
<el-input
v-model=
"form.marks"
placeholder=
""
></el-input>
<el-input
v-model=
"form.marks"
placeholder=
""
></el-input>
</el-form-item>
</el-form-item>
</el-descriptions-item>
<el-form-item
label=
"是否控货"
prop=
"marks"
class=
"ml-20"
>
<el-descriptions-item
:label=
"$t('是否控货')"
>
<dict-selector
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
formatter=
"bool"
v-model=
"form.isCargoControl"
form-type=
"radio"
/>
<dict-selector
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
formatter=
"bool"
v-model=
"form.isCargoControl"
form-type=
"radio"
/>
</el-
descriptions
-item>
</el-
form
-item>
</div>
<!--代收货款,只有非控货订单、并且线路开通了代收货款后,才显示是否代收货款选项--
>
<div
class=
"form-section"
v-if=
"collectionProxy"
>
<el-
descriptions-item
:label=
"$t('是否代收货款')"
v-if=
"collectionProxy
"
>
<el-
form-item
:label=
"$t('是否代收货款')"
prop=
"isCollection
"
>
<dict-selector
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
formatter=
"bool"
v-model=
"form.isCollection"
form-type=
"radio"
/>
<dict-selector
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
formatter=
"bool"
v-model=
"form.isCollection"
form-type=
"radio"
/>
</el-descriptions-item>
</el-form-item>
<el-descriptions-item
:label=
"$t('代收货款金额')"
v-if=
"collectionProxy"
>
<!--代收货款,只有非控货订单、并且线路开通了代收货款后,才显示是否代收货款选项-->
<el-form-item
:label=
"$t('代收货款金额')"
v-if=
"collectionProxy && form.isCollection"
prop=
"collectionProxy"
class=
"ml-20"
>
<el-input
v-model=
"form.collectionProxy"
placeholder=
""
class=
"w-200 mr-10"
></el-input>
<el-input
v-model=
"form.collectionProxy"
placeholder=
""
class=
"w-200 mr-10"
></el-input>
<selector
v-model=
"form.collectionProxyCurrency"
:options=
"currencyList"
label-field=
"titleZh"
value-field=
"id"
defaultable
class=
"w-100"
/>
<selector
v-model=
"form.collectionProxyCurrency"
:options=
"currencyList"
label-field=
"titleZh"
value-field=
"id"
defaultable
class=
"w-100"
/>
</el-descriptions-item>
</el-form-item>
</div>
<el-descriptions-item
:label=
"$t('单证报关')"
:span=
"2"
>
<div
class=
"form-section"
>
<el-form-item
:label=
"$t('单证报关')"
:span=
"2"
prop=
"customsType"
>
<dict-selector
:type=
"DICT_TYPE.ECW_CUSTOMS_TYPE"
v-model=
"form.customsType"
form-type=
"radio"
defaultable
/>
<dict-selector
:type=
"DICT_TYPE.ECW_CUSTOMS_TYPE"
v-model=
"form.customsType"
form-type=
"radio"
defaultable
/>
</el-descriptions-item>
</el-form-item>
<el-descriptions-item
:label=
"$t('出单方式')"
>
</div>
<div>
<el-form-item
:label=
"$t('出单方式')"
prop=
"issuingMethod"
>
<dict-selector
:type=
"DICT_TYPE.ECW_SUING_METHOD"
v-model=
"form.issuingMethod"
form-type=
"radio"
defaultable
/>
<dict-selector
:type=
"DICT_TYPE.ECW_SUING_METHOD"
v-model=
"form.issuingMethod"
form-type=
"radio"
defaultable
/>
</el-descriptions-item>
</el-form-item>
<el-descriptions-item
:label=
"$t('送货日期')"
>
<el-form-item
:label=
"$t('送货日期')"
prop=
"deliveryDate"
class=
"ml-20"
>
<el-form-item
label=
""
label-width=
"0"
style=
"margin-bottom: 0"
prop=
"deliveryDate"
>
<el-date-picker
v-model=
"form.deliveryDate"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
<el-date-picker
v-model=
"form.deliveryDate"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
</el-form-item>
</el-form-item>
</el-descriptions-item>
</div>
<div>
<el-form-item
:label=
"$t('入仓类型')"
prop=
"warehouseType"
>
<el-descriptions-item
:label=
"$t('入仓类型')"
>
<dict-selector
:type=
"DICT_TYPE.ECW_WAREHOUSING_TYPE"
v-model=
"form.warehouseType"
defaultable
/>
<dict-selector
:type=
"DICT_TYPE.ECW_WAREHOUSING_TYPE"
v-model=
"form.warehouseType"
defaultable
/>
</el-
descriptions
-item>
</el-
form
-item>
<el-
descriptions-item
:label=
"$t('收货方式')
"
>
<el-
form-item
:label=
"$t('收货方式')"
prop=
"harvestMethod"
class=
"ml-20
"
>
<dict-selector
:type=
"DICT_TYPE.ECW_HARVEST_METHOD"
v-model=
"form.harvestMethod"
:filter=
"item => item.value == 1 || homeDeliveryService"
defaultable
/>
<dict-selector
:type=
"DICT_TYPE.ECW_HARVEST_METHOD"
v-model=
"form.harvestMethod"
:filter=
"item => item.value == 1 || homeDeliveryService"
defaultable
/>
</el-descriptions-item>
</el-form-item>
<el-descriptions-item
:label=
"$t('收货地区')"
:span=
"2"
v-if=
"homeDeliveryService"
>
</div>
<div
v-if=
"homeDeliveryService && form.harvestMethod == 2"
>
<el-form-item
:label=
"$t('收货地区')"
>
<area-selector
<area-selector
:country=
"form.consigneeVO ? form.consigneeVO.country : undefined"
:country=
"form.consigneeVO ? form.consigneeVO.country : undefined"
:province=
"form.consigneeVO ? form.consigneeVO.province : undefined"
:province=
"form.consigneeVO ? form.consigneeVO.province : undefined"
...
@@ -392,24 +374,24 @@
...
@@ -392,24 +374,24 @@
@
provinceChange=
"onAreaChange('province', $event)"
@
provinceChange=
"onAreaChange('province', $event)"
@
cityChange=
"onAreaChange('city', $event)"
@
cityChange=
"onAreaChange('city', $event)"
></area-selector>
></area-selector>
</el-descriptions-item>
</el-form-item>
<el-descriptions-item
:label=
"$t('收货详细地址')"
:span=
"2"
v-if=
"homeDeliveryService"
>
<el-form-item
:label=
"$t('收货详细地址')"
prop=
"consigneeAddress"
>
<el-form-item
label=
""
label-width=
"0"
style=
"margin-bottom: 0"
prop=
"consigneeAddress"
>
<el-input
v-model=
"form.consigneeAddress"
placeholder=
""
></el-input>
<el-input
v-model=
"form.consigneeAddress"
placeholder=
""
></el-input>
</el-form-item>
</el-form-item>
</el-descriptions-item
>
</div
>
<div>
<el-
descriptions-item
:label=
"$t('付款人')"
:span=
"2
"
>
<el-
form-item
:label=
"$t('付款人')"
prop=
"drawee
"
>
<dict-selector
:type=
"DICT_TYPE.DRAWEE"
v-model=
"form.drawee"
defaultable
form-type=
"radio"
/>
<dict-selector
:type=
"DICT_TYPE.DRAWEE"
v-model=
"form.drawee"
defaultable
form-type=
"radio"
/>
</el-descriptions-item>
<el-table
:data=
"customDraweeList"
v-if=
"form.drawee==3"
>
<el-descriptions-item
v-if=
"form.drawee==3"
:label=
"$t('费用类型')"
:span=
"2"
>
<el-table-column
label=
"费用类型"
prop=
"label"
width=
"200px"
></el-table-column>
<
template
v-for=
"(item,index) in customDraweeList"
v-key=
"index"
>
<el-table-column
label=
"付款人"
width=
"300px"
>
<el-form-item
:label=
"item.label"
:key=
"index"
>
<
template
slot-scope=
"{row}"
>
<dict-selector
:type=
"DICT_TYPE.DRAWEE"
:filter=
"(e) => e.value == '1' || e.value == '2'"
v-model=
"item.value"
form-type=
"radio"
/>
<dict-selector
:type=
"DICT_TYPE.DRAWEE"
:filter=
"(e) => e.value == '1' || e.value == '2'"
v-model=
"row.value"
form-type=
"radio"
/>
</el-form-item>
</
template
>
</
template
>
</el-descriptions-item>
</el-table-column>
</el-descriptions>
</el-table>
</el-form-item>
</div>
</el-card>
</el-card>
<el-card
class=
"mt-10"
v-if=
"transport"
>
<el-card
class=
"mt-10"
v-if=
"transport"
>
...
@@ -419,6 +401,7 @@
...
@@ -419,6 +401,7 @@
<el-button
type=
"primary"
slot=
"append"
@
click=
"getOrderCourierNumber"
>
{{$t('生成单号')}}
</el-button>
<el-button
type=
"primary"
slot=
"append"
@
click=
"getOrderCourierNumber"
>
{{$t('生成单号')}}
</el-button>
</el-input>
</el-input>
</el-form-item>
</el-form-item>
<br/>
<el-form-item
:label=
"$t('是否双清')"
v-if=
"[2,3,4].indexOf(+form.transportId) > -1"
>
<el-form-item
:label=
"$t('是否双清')"
v-if=
"[2,3,4].indexOf(+form.transportId) > -1"
>
<dict-selector
v-model=
"form.doubleClear"
form-type=
"radio"
:type=
"DICT_TYPE.ECW_DOUBLE_CLEAR"
/>
<dict-selector
v-model=
"form.doubleClear"
form-type=
"radio"
:type=
"DICT_TYPE.ECW_DOUBLE_CLEAR"
/>
</el-form-item>
</el-form-item>
...
@@ -442,14 +425,17 @@
...
@@ -442,14 +425,17 @@
<el-form-item
label=
"是否拆包"
v-if=
"[3,4].indexOf(+form.transportId) > -1"
>
<el-form-item
label=
"是否拆包"
v-if=
"[3,4].indexOf(+form.transportId) > -1"
>
<dict-selector
v-model=
"form.isUnpack"
form-type=
"radio"
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
fomatter=
"bool"
/>
<dict-selector
v-model=
"form.isUnpack"
form-type=
"radio"
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
fomatter=
"bool"
/>
</el-form-item>
</el-form-item>
<div
class=
"form-section"
>
<el-form-item
:label=
"$t('单票立刻转运')"
v-if=
"[3,4].indexOf(+form.transportId) > -1"
>
<el-form-item
:label=
"$t('单票立刻转运')"
v-if=
"[3,4].indexOf(+form.transportId) > -1"
>
<dict-selector
v-model=
"form.isSingleTicketTransport"
form-type=
"radio"
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
fomatter=
"bool"
/>
<dict-selector
v-model=
"form.isSingleTicketTransport"
form-type=
"radio"
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
fomatter=
"bool"
/>
<span
style=
"margin-left:10px"
>
{{$t('注:若只有一件,货到仓库立即发,选“是”,多件需仓库集运待发,选“否”')}}
</span>
<span
style=
"margin-left:10px"
>
{{$t('注:若只有一件,货到仓库立即发,选“是”,多件需仓库集运待发,选“否”')}}
</span>
</el-form-item>
</el-form-item>
</div>
<div
class=
"form-section"
>
<el-form-item
:label=
"$t('特殊要求')"
>
<el-form-item
:label=
"$t('特殊要求')"
>
<dict-selector
v-model=
"form.packageType"
form-type=
"checkbox"
:type=
"DICT_TYPE.ORDER_SPECIAL_NEEDS"
multiple
/>
<dict-selector
v-model=
"form.packageType"
form-type=
"checkbox"
:type=
"DICT_TYPE.ORDER_SPECIAL_NEEDS"
multiple
/>
</el-form-item>
</el-form-item>
</div>
<el-form-item
:label=
"$t('特殊要求备注')"
>
<el-form-item
:label=
"$t('特殊要求备注')"
>
<el-input
v-model=
"form.packageRemarks"
></el-input>
<el-input
v-model=
"form.packageRemarks"
></el-input>
</el-form-item>
</el-form-item>
...
@@ -459,7 +445,7 @@
...
@@ -459,7 +445,7 @@
<el-form-item
label=
""
style=
"margin: 30px 0"
>
<el-form-item
label=
""
style=
"margin: 30px 0"
>
<el-button
type=
"primary"
@
click=
"submitForm(0)"
>
{{$t('保存')}}
</el-button>
<!--草稿-->
<el-button
type=
"primary"
@
click=
"submitForm(0)"
>
{{$t('保存')}}
</el-button>
<!--草稿-->
<el-button
type=
"primary"
@
click=
"submitForm(2)"
>
{{$t('新建')}}
</el-button>
<!--待入仓-->
<el-button
type=
"primary"
@
click=
"submitForm(2)"
>
{{$t('新建')}}
</el-button>
<!--待入仓-->
<el-button
@
click=
"$
router.back(
)"
>
{{$t('返回')}}
</el-button>
<el-button
@
click=
"$
store.dispatch('tagsView/delCurrentView'
)"
>
{{$t('返回')}}
</el-button>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
...
@@ -514,7 +500,7 @@ import {getTradeCityList} from '@/api/ecw/region'
...
@@ -514,7 +500,7 @@ import {getTradeCityList} from '@/api/ecw/region'
import
{
getDictData
,
getDictDatas
}
from
'
@/utils/dict
'
import
{
getDictData
,
getDictDatas
}
from
'
@/utils/dict
'
import
{
getCurrencyList
}
from
'
@/api/ecw/currency
'
import
{
getCurrencyList
}
from
'
@/api/ecw/currency
'
import
{
getUnitList
}
from
'
@/api/ecw/unit
'
import
{
getUnitList
}
from
'
@/api/ecw/unit
'
import
{
getCustomer
}
from
'
@/api/ecw/customer
'
;
import
{
getCustomer
ContactsListByCustomer
}
from
'
@/api/ecw/customerContacts
'
;
import
AreaSelector
from
'
@/components/AreaSelector
'
import
AreaSelector
from
'
@/components/AreaSelector
'
import
{
calculationPrice
}
from
'
@/api/ecw/product
'
import
{
calculationPrice
}
from
'
@/api/ecw/product
'
import
{
getCustomerAvailableCouponList
}
from
'
@/api/ecw/coupon
'
import
{
getCustomerAvailableCouponList
}
from
'
@/api/ecw/coupon
'
...
@@ -745,12 +731,27 @@ export default {
...
@@ -745,12 +731,27 @@ export default {
this
.
form
=
res
.
data
this
.
form
=
res
.
data
/* this.form.consignorContactsId = res.data.consignorVO.customerContactsId
/* this.form.consignorContactsId = res.data.consignorVO.customerContactsId
this.form.consigneeContactsId = res.data.consigneeVO.customerContactsId */
this.form.consigneeContactsId = res.data.consigneeVO.customerContactsId */
this
.
form
.
deliveryDate
=
res
.
data
.
consigneeVO
.
deliveryDate
this
.
form
.
orderItemVOList
.
forEach
(
item
=>
{
this
.
form
.
orderItemVOList
.
forEach
(
item
=>
{
item
.
prodAttrArr
=
item
.
prodAttrIds
.
split
(
'
,
'
).
filter
(
item
=>
item
!=
''
)
item
.
prodAttrArr
=
item
.
prodAttrIds
.
split
(
'
,
'
).
filter
(
item
=>
item
!=
''
)
this
.
addProduct
(
Object
.
assign
({},
item
))
this
.
addProduct
(
Object
.
assign
({},
item
))
})
})
this
.
form
.
type
=
this
.
form
.
type
?
this
.
form
.
type
.
split
(
'
,
'
).
filter
(
item
=>
item
!=
''
)
:
[]
this
.
form
.
type
=
this
.
form
.
type
?
this
.
form
.
type
.
split
(
'
,
'
).
filter
(
item
=>
item
!=
''
)
:
[]
this
.
$set
(
this
.
form
,
'
consignorCompany
'
,
res
.
data
.
consignorVO
.
company
)
this
.
$set
(
this
.
form
,
'
consignorContactsId
'
,
res
.
data
.
consignorVO
.
customerContactsId
)
this
.
$set
(
this
.
form
,
'
consignorCountryCode
'
,
res
.
data
.
consignorVO
.
countryCode
)
this
.
$set
(
this
.
form
,
'
consignorEmail
'
,
res
.
data
.
consignorVO
.
email
)
this
.
$set
(
this
.
form
,
'
consignorId
'
,
res
.
data
.
consignorVO
.
customerId
)
this
.
$set
(
this
.
form
,
'
consignorName
'
,
res
.
data
.
consignorVO
.
name
)
this
.
$set
(
this
.
form
,
'
consignorPhone
'
,
res
.
data
.
consignorVO
.
phone
)
this
.
$set
(
this
.
form
,
'
consigneeCompany
'
,
res
.
data
.
consigneeVO
.
company
)
this
.
$set
(
this
.
form
,
'
consigneeContactsId
'
,
res
.
data
.
consigneeVO
.
customerContactsId
)
this
.
$set
(
this
.
form
,
'
consigneeCountryCode
'
,
res
.
data
.
consigneeVO
.
countryCode
)
this
.
$set
(
this
.
form
,
'
consigneeEmail
'
,
res
.
data
.
consigneeVO
.
email
)
this
.
$set
(
this
.
form
,
'
consigneeId
'
,
res
.
data
.
consigneeVO
.
customerId
)
this
.
$set
(
this
.
form
,
'
consigneeName
'
,
res
.
data
.
consigneeVO
.
name
)
this
.
$set
(
this
.
form
,
'
consigneePhone
'
,
res
.
data
.
consigneeVO
.
phone
)
})
})
}
else
this
.
addProduct
()
}
else
this
.
addProduct
()
...
@@ -769,6 +770,11 @@ export default {
...
@@ -769,6 +770,11 @@ export default {
})
})
},
},
methods
:
{
methods
:
{
/* onCustomerCreate(customer){
getCustomerContactsListByCustomer({customerId: customer.customerId}).then(res => {
this.onContactChoose(res.data[0])
})
}, */
onContactChoose
(
contact
){
onContactChoose
(
contact
){
console
.
log
(
'
选择联系人
'
,
contact
)
console
.
log
(
'
选择联系人
'
,
contact
)
if
(
!
this
.
contactChooseType
&&
!
this
.
quickCreateType
)
return
if
(
!
this
.
contactChooseType
&&
!
this
.
quickCreateType
)
return
...
@@ -940,7 +946,7 @@ export default {
...
@@ -940,7 +946,7 @@ export default {
},
},
/** 提交按钮 */
/** 提交按钮 */
// type 在新建的时候表示状态,0草稿,2带入仓
// type 在新建的时候表示状态,0草稿,2带入仓
submitForm
(
t
ype
)
{
submitForm
(
submitT
ype
)
{
this
.
$refs
[
"
form
"
].
validate
(
valid
=>
{
this
.
$refs
[
"
form
"
].
validate
(
valid
=>
{
if
(
!
valid
)
{
if
(
!
valid
)
{
return
;
return
;
...
@@ -976,11 +982,11 @@ export default {
...
@@ -976,11 +982,11 @@ export default {
consignorId
:
this
.
consignorContact
.
customerId
,
consignorId
:
this
.
consignorContact
.
customerId
,
customerId
:
this
.
consignorContact
.
customerId
,
customerId
:
this
.
consignorContact
.
customerId
,
couponIds
:
coupons
.
join
(
"
,
"
),
couponIds
:
coupons
.
join
(
"
,
"
),
status
:
type
},
this
.
form
,
{
},
this
.
form
,
{
customDraweeVOList
:
this
.
customDraweeList
,
customDraweeVOList
:
this
.
customDraweeList
,
// transportUpdateReqVOList: this.transportList.filter(item => item._enabled),
// transportUpdateReqVOList: this.transportList.filter(item => item._enabled),
orderItemVOList
:
this
.
productList
orderItemVOList
:
this
.
productList
,
status
:
submitType
})
})
data
.
type
=
data
.
type
.
join
(
'
,
'
)
data
.
type
=
data
.
type
.
join
(
'
,
'
)
// 添加的提交
// 添加的提交
...
...
src/views/ecw/order/warehousing/components/editDialog.vue
View file @
c0153bfa
<
template
>
<
template
>
<div>
<div>
<el-dialog
<el-dialog
title=
"入仓-货物入仓"
title=
"入仓-货物入仓"
:visible.sync=
"opened"
:visible.sync=
"opened"
width=
"960px"
width=
"960px"
>
>
<el-tabs
v-model=
"activeName"
type=
"card"
@
tab-click=
"handleTabs"
>
<el-tab-pane
label=
"货物入仓"
name=
"first"
>
<el-descriptions
border
:column=
"2"
>
<el-descriptions
border
:column=
"2"
>
<el-descriptions-item
label=
"中文品名"
>
{{
warehousing
.
prodTitleZh
}}
</el-descriptions-item>
<el-descriptions-item
label=
"中文品名"
>
{{
warehousing
.
prodTitleZh
}}
</el-descriptions-item>
<el-descriptions-item
label=
"英文品名"
>
{{
warehousing
.
prodTitleEn
}}
</el-descriptions-item>
<el-descriptions-item
label=
"英文品名"
>
{{
warehousing
.
prodTitleEn
}}
</el-descriptions-item>
...
@@ -110,7 +111,115 @@
...
@@ -110,7 +111,115 @@
</el-table-column>
</el-table-column>
</el-table>
</el-table>
</el-card>
</el-card>
</el-tab-pane>
<el-tab-pane
label=
"添加新品名"
name=
"second"
>
<el-descriptions
border
:column=
"2"
>
<el-descriptions-item
label=
"中文品名"
>
<product-selector
v-model=
"form1.prodId"
@
change=
"onProductChange"
/>
</el-descriptions-item>
<el-descriptions-item
label=
"英文品名"
>
<product-selector
lang=
"En"
v-model=
"form1.prodId"
@
change=
"onProductChange"
/>
</el-descriptions-item>
<el-descriptions-item
label=
"品牌"
>
<el-select
v-model=
"form1.brand"
placeholder=
"可修改"
filterable
@
change=
"handleBrandChange"
allow-create
>
<el-option
v-for=
"item in brandList"
:key=
"item.id"
:label=
"item.titleZh"
:value=
"item.id"
>
</el-option>
</el-select>
</el-descriptions-item>
<el-descriptions-item
label=
"是否备案"
>
{{ isBeian1 }}
</el-descriptions-item>
<el-descriptions-item
label=
"收费模式"
>
{{ feeType1 }}
</el-descriptions-item>
<el-descriptions-item
label=
"填单参数"
>
非填单货物
</el-descriptions-item>
</el-descriptions>
<el-form
ref=
"form"
:model=
"form"
label-width=
"80px"
style=
"margin-top: 20px"
>
<el-form-item
label=
"材质"
>
<dict-selector
:type=
"DICT_TYPE.ECW_PRODUCT_MATERIAL"
v-model=
"form1.material"
></dict-selector>
</el-form-item>
<el-form-item
label=
"入仓时间"
>
<el-date-picker
v-model=
"form1.inTime"
type=
"datetime"
placeholder=
"请选择入仓时间"
value-format=
"yyyy-MM-dd HH:mm:ss"
></el-date-picker>
</el-form-item>
</el-form>
<el-card
class=
"box-card"
>
<div
slot=
"header"
class=
"clearfix"
>
<span>
入仓记录
</span>
<el-button
style=
"float: right;margin-left: 15px"
size=
"mini"
type=
"primary"
icon=
"el-icon-minus"
circle
@
click=
"handleDelete(1)"
></el-button>
<el-button
style=
"float: right"
size=
"mini"
type=
"primary"
icon=
"el-icon-plus"
circle
@
click=
"handleAdd(1)"
></el-button>
</div>
<el-table
:data=
"tableData1"
style=
"width: 100%"
>
<el-table-column
label=
"箱数"
>
<
template
v-slot=
"{r,c,$index}"
>
<span
v-if=
"tableData1[$index].id"
>
{{
tableData1
[
$index
].
cartonsNum
}}
</span>
<el-input
v-else
v-model=
"tableData1[$index].cartonsNum"
placeholder=
""
></el-input>
<span>
{{
getDictDataLabel
(
DICT_TYPE
.
ECW_PACKAGE_TYPE
,
tableData1
[
$index
].
unit
)
}}
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"包装类型"
>
<
template
v-slot=
"{r,c,$index}"
>
<span
v-if=
"tableData1[$index].id"
>
{{
getDictDataLabel
(
DICT_TYPE
.
ECW_PACKAGE_TYPE
,
tableData1
[
$index
].
unit
)
}}
</span>
<dict-selector
v-else
:type=
"DICT_TYPE.ECW_PACKAGE_TYPE"
v-model=
"tableData1[$index].unit"
></dict-selector>
</
template
>
</el-table-column>
<el-table-column
label=
"长(cm)"
>
<
template
v-slot=
"{r,c,$index}"
>
<span
v-if=
"tableData1[$index].id"
>
{{
tableData1
[
$index
].
boxGauge
?
tableData1
[
$index
].
boxGauge
.
split
(
'
*
'
)[
0
]
:
''
}}
</span>
<el-input
v-else
v-model.number=
"tableData1[$index].boxGauge1"
placeholder=
""
@
blur=
"handleVolume($index, 1)"
></el-input>
</
template
>
</el-table-column>
<el-table-column
label=
"宽(cm)"
>
<
template
v-slot=
"{r,c,$index}"
>
<span
v-if=
"tableData1[$index].id"
>
{{
tableData1
[
$index
].
boxGauge
?
tableData1
[
$index
].
boxGauge
.
split
(
'
*
'
)[
1
]
:
''
}}
</span>
<el-input
v-else
v-model.number=
"tableData1[$index].boxGauge2"
placeholder=
""
@
blur=
"handleVolume($index, 1)"
></el-input>
</
template
>
</el-table-column>
<el-table-column
label=
"高(cm)"
>
<
template
v-slot=
"{r,c,$index}"
>
<span
v-if=
"tableData1[$index].id"
>
{{
tableData1
[
$index
].
boxGauge
?
tableData1
[
$index
].
boxGauge
.
split
(
'
*
'
)[
2
]
:
''
}}
</span>
<el-input
v-else
v-model.number=
"tableData1[$index].boxGauge3"
placeholder=
""
@
blur=
"handleVolume($index, 1)"
></el-input>
</
template
>
</el-table-column>
<el-table-column
label=
"体积(m³)"
>
<
template
v-slot=
"{r,c,$index}"
>
<span
v-if=
"tableData1[$index].id"
>
{{
tableData1
[
$index
].
volume
}}
</span>
<el-input
v-else
v-model.number=
"tableData1[$index].volume"
placeholder=
""
></el-input>
</
template
>
</el-table-column>
<el-table-column
label=
"重量(Kg)"
>
<
template
v-slot=
"{r,c,$index}"
>
<span
v-if=
"tableData1[$index].id"
>
{{
tableData1
[
$index
].
weight
}}
</span>
<el-input
v-else
v-model.number=
"tableData1[$index].weight"
placeholder=
""
></el-input>
</
template
>
</el-table-column>
<el-table-column
label=
"数量"
width=
"130px"
>
<
template
v-slot=
"{r,c,$index}"
>
<span
v-if=
"tableData1[$index].id"
>
{{
tableData1
[
$index
].
quantityAll
}}
</span>
<el-input
v-else
v-model.number=
"tableData1[$index].quantityAll"
placeholder=
""
>
<template
slot=
"append"
>
个
</
template
>
</el-input>
</template>
</el-table-column>
<el-table-column
label=
"快递单号"
>
<
template
v-slot=
"{r,c,$index}"
>
<span
v-if=
"tableData1[$index].id"
>
{{
tableData1
[
$index
].
expressNo
}}
</span>
<el-input
v-else
v-model=
"tableData1[$index].expressNo"
placeholder=
""
></el-input>
</
template
>
</el-table-column>
</el-table>
</el-card>
</el-tab-pane>
</el-tabs>
<div
v-if=
"edit"
>
<div
v-if=
"edit"
>
<h2>
审批流程
</h2>
<h2>
审批流程
</h2>
...
@@ -133,13 +242,15 @@ import { orderWarehouseIn, orderWarehouseInUpdateApply } from '@/api/ecw/order'
...
@@ -133,13 +242,15 @@ import { orderWarehouseIn, orderWarehouseInUpdateApply } from '@/api/ecw/order'
import
{
getFeeTypeByCustomerProduct
,
getProductBrankPage
}
from
'
@/api/ecw/productBrank
'
import
{
getFeeTypeByCustomerProduct
,
getProductBrankPage
}
from
'
@/api/ecw/productBrank
'
import
WorkFlow
from
"
@/components/WorkFlow
"
import
WorkFlow
from
"
@/components/WorkFlow
"
import
elSelect
from
'
@/components/render/slots/el-select
'
import
elSelect
from
'
@/components/render/slots/el-select
'
import
ProductSelector
from
"
@/components/ProductSelector
"
export
default
{
export
default
{
name
:
'
editDialog
'
,
name
:
'
editDialog
'
,
components
:
{
components
:
{
dictSelector
,
dictSelector
,
WorkFlow
WorkFlow
,
ProductSelector
},
},
props
:
{
props
:
{
...
@@ -216,9 +327,29 @@ export default {
...
@@ -216,9 +327,29 @@ export default {
feeType
:
0
,
feeType
:
0
,
recordMode
:
undefined
recordMode
:
undefined
},
},
form1
:
{
"
brand
"
:
""
,
"
brandType
"
:
0
,
"
inTime
"
:
""
,
"
material
"
:
""
,
"
orderId
"
:
0
,
"
orderItemId
"
:
0
,
"
orderNo
"
:
""
,
"
orderWarehouseInItemDoList
"
:
[],
"
prodAttrIds
"
:
""
,
"
prodId
"
:
0
,
"
prodTitleEn
"
:
""
,
"
prodTitleZh
"
:
""
,
"
prodType
"
:
0
,
"
type
"
:
1
,
feeType
:
0
,
recordMode
:
undefined
},
// orderItem: {},
// orderItem: {},
selectedUsers
:
undefined
selectedUsers
:
undefined
,
activeName
:
'
first
'
};
};
},
},
...
@@ -241,10 +372,23 @@ export default {
...
@@ -241,10 +372,23 @@ export default {
}
else
{
}
else
{
this
.
$emit
(
'
update:visible
'
,
false
)
this
.
$emit
(
'
update:visible
'
,
false
)
}
}
},
warehousing
(
newVal
,
oldVal
){
if
(
newVal
.
orderItemId
!==
oldVal
.
orderItemId
){
this
.
form
.
orderWarehouseInItemDoList
=
[]
this
.
form1
.
orderWarehouseInItemDoList
=
[]
this
.
activeName
=
'
first
'
}
}
}
},
},
methods
:
{
methods
:
{
onProductChange
(
product
){
console
.
log
(
product
)
this
.
form1
.
prodTitleZh
=
product
.
titleZh
this
.
form1
.
prodTitleEn
=
product
.
titleEn
},
handleTabs
(){},
handleBrandChange
(
v
){
handleBrandChange
(
v
){
getFeeTypeByCustomerProduct
({
getFeeTypeByCustomerProduct
({
brandId
:
parseInt
(
v
),
brandId
:
parseInt
(
v
),
...
@@ -252,17 +396,17 @@ export default {
...
@@ -252,17 +396,17 @@ export default {
customerId
:
this
.
customerId
customerId
:
this
.
customerId
}).
then
(
r
=>
{
}).
then
(
r
=>
{
if
(
r
.
code
===
0
){
if
(
r
.
code
===
0
){
this
.
form
.
feeType
=
parseInt
(
r
.
data
.
feeType
)
(
this
.
activeName
===
"
first
"
?
this
.
form
:
this
.
form1
).
feeType
=
parseInt
(
r
.
data
.
feeType
);
this
.
form
.
recordMode
=
parseInt
(
r
.
data
.
recordMode
)
(
this
.
activeName
===
"
first
"
?
this
.
form
:
this
.
form1
)
.
recordMode
=
parseInt
(
r
.
data
.
recordMode
)
}
}
})
})
},
},
handleVolume
(
index
){
handleVolume
(
index
,
val
){
const
{
boxGauge1
,
boxGauge2
,
boxGauge3
}
=
this
.
tableData
[
index
]
const
{
boxGauge1
,
boxGauge2
,
boxGauge3
}
=
(
val
===
1
?
this
.
tableData1
:
this
.
tableData
)
[
index
]
if
(
boxGauge1
&&
boxGauge2
&&
boxGauge3
)
{
if
(
boxGauge1
&&
boxGauge2
&&
boxGauge3
)
{
this
.
tableData
[
index
].
volume
=
((
boxGauge1
*
boxGauge2
*
boxGauge3
)
/
1000000
).
toFixed
(
2
)
(
val
===
1
?
this
.
tableData1
:
this
.
tableData
)
[
index
].
volume
=
((
boxGauge1
*
boxGauge2
*
boxGauge3
)
/
1000000
).
toFixed
(
2
)
}
else
{
}
else
{
this
.
tableData
[
index
].
volume
=
0
(
val
===
1
?
this
.
tableData1
:
this
.
tableData
)
[
index
].
volume
=
0
}
}
},
},
handleSubmit
()
{
handleSubmit
()
{
...
@@ -275,7 +419,29 @@ export default {
...
@@ -275,7 +419,29 @@ export default {
}
}
})
})
]
]
if
(
this
.
edit
)
if
(
this
.
activeName
!==
"
first
"
){
return
orderWarehouseIn
({
...
this
.
form1
,
brandType
:
this
.
form1
.
brand
?
1
:
0
,
orderId
:
this
.
warehousing
.
orderId
,
orderItemId
:
undefined
,
orderNo
:
this
.
warehousing
.
orderNo
,
orderWarehouseInItemDoList
:
this
.
form1
.
orderWarehouseInItemDoList
.
map
(
e
=>
{
return
{
...
e
,
boxGauge
:
e
.
boxGauge1
+
'
*
'
+
e
.
boxGauge2
+
'
*
'
+
e
.
boxGauge3
}
})
}).
then
(
r
=>
{
if
(
r
.
data
){
this
.
$message
.
success
(
'
新增入仓成功
'
)
this
.
handleClose
()
}
else
{
this
.
$message
.
success
(
'
新增入仓失败
'
)
}
})
}
else
if
(
this
.
edit
)
return
orderWarehouseInUpdateApply
({
return
orderWarehouseInUpdateApply
({
...
this
.
form
,
...
this
.
form
,
brandType
:
this
.
form
.
brand
?
1
:
0
,
brandType
:
this
.
form
.
brand
?
1
:
0
,
...
@@ -313,18 +479,26 @@ export default {
...
@@ -313,18 +479,26 @@ export default {
this
.
form
.
orderWarehouseInItemDoList
=
[]
this
.
form
.
orderWarehouseInItemDoList
=
[]
this
.
opened
=
false
this
.
opened
=
false
},
},
handleDelete
()
{
handleDelete
(
val
)
{
this
.
form
.
orderWarehouseInItemDoList
.
pop
()
(
val
===
1
?
this
.
form1
:
this
.
form
)
.
orderWarehouseInItemDoList
.
pop
()
},
},
handleAdd
()
{
handleAdd
(
val
)
{
this
.
form
.
orderWarehouseInItemDoList
.
push
({
let
cartonsNum
=
''
;
if
(
val
!==
1
)
{
let
hasCartonsNum
=
0
this
.
tableData
.
forEach
(
e
=>
{
hasCartonsNum
+=
e
.
cartonsNum
})
cartonsNum
=
this
.
warehousing
.
num
-
hasCartonsNum
}
(
val
===
1
?
this
.
form1
:
this
.
form
).
orderWarehouseInItemDoList
.
push
({
"
boxGauge1
"
:
""
,
"
boxGauge1
"
:
""
,
"
boxGauge2
"
:
""
,
"
boxGauge2
"
:
""
,
"
boxGauge3
"
:
""
,
"
boxGauge3
"
:
""
,
"
cartonsNum
"
:
""
,
"
cartonsNum
"
:
cartonsNum
>
0
?
cartonsNum
:
''
,
"
expressNo
"
:
""
,
"
expressNo
"
:
""
,
"
quantityAll
"
:
""
,
"
quantityAll
"
:
""
,
"
unit
"
:
""
,
"
unit
"
:
"
package
"
,
"
volume
"
:
''
,
"
volume
"
:
''
,
"
weight
"
:
''
"
weight
"
:
''
})
})
...
@@ -335,9 +509,15 @@ export default {
...
@@ -335,9 +509,15 @@ export default {
brandObject
(){
brandObject
(){
return
this
.
brandList
.
find
(
e
=>
e
.
id
===
this
.
form
.
brand
)
||
''
return
this
.
brandList
.
find
(
e
=>
e
.
id
===
this
.
form
.
brand
)
||
''
},
},
brandObject1
(){
return
this
.
brandList
.
find
(
e
=>
e
.
id
===
this
.
form1
.
brand
)
||
''
},
tableData
()
{
tableData
()
{
return
[...
this
.
warehousing
.
orderWarehouseInBackItemDoList
,
...
this
.
form
.
orderWarehouseInItemDoList
]
return
[...
this
.
warehousing
.
orderWarehouseInBackItemDoList
,
...
this
.
form
.
orderWarehouseInItemDoList
]
},
},
tableData1
()
{
return
this
.
form1
.
orderWarehouseInItemDoList
},
isBeian
(){
isBeian
(){
if
(
this
.
form
.
recordMode
!==
undefined
){
if
(
this
.
form
.
recordMode
!==
undefined
){
return
[
'
无备案
'
,
'
有备案
'
,
'
中性
'
][
this
.
form
.
recordMode
]
return
[
'
无备案
'
,
'
有备案
'
,
'
中性
'
][
this
.
form
.
recordMode
]
...
@@ -348,18 +528,34 @@ export default {
...
@@ -348,18 +528,34 @@ export default {
return
''
return
''
}
}
},
},
isBeian1
(){
if
(
this
.
form1
.
recordMode
!==
undefined
){
return
[
'
无备案
'
,
'
有备案
'
,
'
中性
'
][
this
.
form1
.
recordMode
]
}
if
(
this
.
brandObject1
.
filing
){
return
[
'
无备案
'
,
'
有备案
'
,
'
中性
'
][
this
.
brandObject1
.
filing
]
}
else
{
return
''
}
},
/**
/**
* 收费模式
* 收费模式
* @returns {string}
* @returns {string}
无牌价0,有牌价1,中性品牌价2
*/
*/
feeType
(){
feeType
(){
// 无牌价0,有牌价1,中性品牌价2
const
feeType
=
parseInt
(
this
.
form
.
feeType
)
const
feeType
=
parseInt
(
this
.
form
.
feeType
)
if
(
feeType
>=
0
&&
feeType
<
3
)
{
if
(
feeType
>=
0
&&
feeType
<
3
)
{
return
[
'
无牌价
'
,
'
有牌价
'
,
'
中性品牌价
'
][
feeType
]
return
[
'
无牌价
'
,
'
有牌价
'
,
'
中性品牌价
'
][
feeType
]
}
}
return
''
return
''
},
},
feeType1
(){
const
feeType
=
parseInt
(
this
.
form1
.
feeType
)
if
(
feeType
>=
0
&&
feeType
<
3
)
{
return
[
'
无牌价
'
,
'
有牌价
'
,
'
中性品牌价
'
][
feeType
]
}
return
''
},
brand
(){
brand
(){
if
(
!!
this
.
form
.
brand
){
if
(
!!
this
.
form
.
brand
){
const
brand
=
this
.
brandList
.
find
(
e
=>
e
.
id
===
this
.
form
.
brand
)
const
brand
=
this
.
brandList
.
find
(
e
=>
e
.
id
===
this
.
form
.
brand
)
...
...
src/views/ecw/supplier/edit.vue
View file @
c0153bfa
...
@@ -3,16 +3,22 @@
...
@@ -3,16 +3,22 @@
<el-form
ref=
"elForm"
:model=
"formData"
:rules=
"rules"
size=
"small"
label-width=
"100px"
<el-form
ref=
"elForm"
:model=
"formData"
:rules=
"rules"
size=
"small"
label-width=
"100px"
label-position=
"left"
>
label-position=
"left"
>
<el-form-item
:label=
"$t('公司全称')"
prop=
"companyZh"
>
<el-form-item
:label=
"$t('公司全称')"
prop=
"companyZh"
>
<el-input
v-model=
"formData.companyZh"
:placeholder=
"$t('请输入公司全称')"
show-word-limit
clearable
<el-input
v-model=
"formData.companyZh"
:placeholder=
"$t('请输入公司全称')"
show-word-limit
clearable
></el-input>
:style=
"
{width: '100%'}">
</el-input>
</el-form-item>
<el-form-item
:label=
"$t('英文名称')"
prop=
"companyEn"
>
<el-input
v-model=
"formData.companyZh"
:placeholder=
"$t('请输入公司英文名')"
show-word-limit
clearable
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
:label=
"$t('代理名称')"
prop=
"agentName"
>
<
!--
<
el-form-item
:label=
"$t('代理名称')"
prop=
"agentName"
>
<el-input
v-model=
"formData.agentName"
:placeholder=
"$t('请输入代理名称')"
clearable
:style=
"
{width: '100%'}">
<el-input
v-model=
"formData.agentName"
:placeholder=
"$t('请输入代理名称')"
clearable
:style=
"
{width: '100%'}">
</el-input>
</el-input>
</el-form-item>
</el-form-item>
-->
<el-form-item
:label=
"$t('公司电话')"
prop=
"tell"
>
<el-form-item
:label=
"$t('公司电话')"
prop=
"tell"
>
<el-input
v-model=
"formData.tell"
:placeholder=
"$t('请输入公司电话')"
clearable
:style=
"
{width: '100%'}"
>
</el-input>
<el-input
v-model=
"formData.tell"
:placeholder=
"$t('请输入公司电话')"
clearable
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
:label=
"$t('邮件地址')"
prop=
"email"
>
<el-input
v-model=
"formData.email"
:placeholder=
"$t('请输入邮箱地址')"
clearable
></el-input>
</el-form-item>
<el-form-item
:label=
"$t('公司地址')"
prop=
"address"
>
<el-form-item
:label=
"$t('公司地址')"
prop=
"address"
>
<!--
<el-select
v-model=
"formData.country"
>
<!--
<el-select
v-model=
"formData.country"
>
<el-option
v-for=
"(item, index) in treeList"
:value=
"item.id"
:label=
"item.titleZh"
:key=
"item.id"
/>
<el-option
v-for=
"(item, index) in treeList"
:value=
"item.id"
:label=
"item.titleZh"
:key=
"item.id"
/>
...
...
src/views/index.vue
View file @
c0153bfa
...
@@ -22,6 +22,7 @@
...
@@ -22,6 +22,7 @@
<work-flow
xmlkey=
"free_apply"
v-model=
"selectedUsers"
/>
<work-flow
xmlkey=
"free_apply"
v-model=
"selectedUsers"
/>
<div>
选择的用户:
{{
selectedUsers
}}
</div>
<div>
选择的用户:
{{
selectedUsers
}}
</div>
</el-card>
</el-card>
<el-row>
<el-row>
<my-process-viewer
key=
"designer"
v-model=
"bpmnXML"
v-bind=
"bpmnControlForm"
/>
<my-process-viewer
key=
"designer"
v-model=
"bpmnXML"
v-bind=
"bpmnControlForm"
/>
</el-row>
</el-row>
...
...
src/views/system/notice/index.vue
View file @
c0153bfa
...
@@ -9,7 +9,7 @@
...
@@ -9,7 +9,7 @@
</el-form-item>
</el-form-item>
<el-form-item
label=
"类型"
prop=
"type"
>
<el-form-item
label=
"类型"
prop=
"type"
>
<el-select
v-model=
"queryParams.type"
placeholder=
"公告类型"
clearable
>
<el-select
v-model=
"queryParams.type"
placeholder=
"公告类型"
clearable
>
<el-option
v-for=
"dict in noticeTypeDictDatas"
:key=
"parseInt(dict.value)"
:label=
"
dict.label
"
:value=
"parseInt(dict.value)"
/>
<el-option
v-for=
"dict in noticeTypeDictDatas"
:key=
"parseInt(dict.value)"
:label=
"
$l(dict, 'label')
"
:value=
"parseInt(dict.value)"
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item>
<el-form-item>
...
@@ -39,14 +39,19 @@
...
@@ -39,14 +39,19 @@
<dict-tag
:type=
"DICT_TYPE.COMMON_STATUS"
:value=
"scope.row.status"
/>
<dict-tag
:type=
"DICT_TYPE.COMMON_STATUS"
:value=
"scope.row.status"
/>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"创建者"
align=
"center"
prop=
"createBy"
width=
"100"
/>
<el-table-column
label=
"有效日期"
align=
"center"
prop=
"validateDate"
width=
"150"
>
<el-table-column
label=
"创建时间"
align=
"center"
prop=
"createTime"
width=
"100"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<span>
{{
parseTime
(
scope
.
row
.
createTim
e
,
'
{y
}
-{m
}
-{d
}
'
)
}}
<
/span
>
<span>
{{
parseTime
(
scope
.
row
.
validateDat
e
,
'
{y
}
-{m
}
-{d
}
'
)
}}
<
/span
>
<
/template
>
<
/template
>
<
/el-table-column
>
<
/el-table-column
>
<
el
-
table
-
column
label
=
"
操作
"
align
=
"
center
"
class
-
name
=
"
small-padding fixed-width
"
>
<!--
<
el
-
table
-
column
label
=
"
创建者
"
align
=
"
center
"
prop
=
"
createBy
"
width
=
"
150
"
/>-->
<
el
-
table
-
column
label
=
"
创建时间
"
align
=
"
center
"
prop
=
"
createTime
"
width
=
"
150
"
>
<
template
slot
-
scope
=
"
scope
"
>
<
template
slot
-
scope
=
"
scope
"
>
<
span
>
{{
parseTime
(
scope
.
row
.
createTime
,
'
{y
}
-{m
}
-{d
}
'
)
}}
<
/span
>
<
/template
>
<
/el-table-column
>
<
el
-
table
-
column
label
=
"
操作
"
align
=
"
center
"
class
-
name
=
"
small-padding fixed-width
"
width
=
"
200
"
>
<
template
slot
-
scope
=
"
scope
"
>
<
el
-
button
size
=
"
mini
"
type
=
"
text
"
icon
=
"
el-icon-edit
"
@
click
=
"
handleUpdate(scope.row)
"
<
el
-
button
size
=
"
mini
"
type
=
"
text
"
icon
=
"
el-icon-edit
"
@
click
=
"
handleUpdate(scope.row)
"
v
-
hasPermi
=
"
['system:notice:update']
"
>
修改
<
/el-button
>
v
-
hasPermi
=
"
['system:notice:update']
"
>
修改
<
/el-button
>
<
el
-
button
size
=
"
mini
"
type
=
"
text
"
icon
=
"
el-icon-delete
"
@
click
=
"
handleDelete(scope.row)
"
<
el
-
button
size
=
"
mini
"
type
=
"
text
"
icon
=
"
el-icon-delete
"
@
click
=
"
handleDelete(scope.row)
"
...
@@ -67,6 +72,11 @@
...
@@ -67,6 +72,11 @@
<
el
-
input
v
-
model
=
"
form.title
"
placeholder
=
"
请输入公告标题
"
/>
<
el
-
input
v
-
model
=
"
form.title
"
placeholder
=
"
请输入公告标题
"
/>
<
/el-form-item
>
<
/el-form-item
>
<
/el-col
>
<
/el-col
>
<
el
-
col
:
span
=
"
12
"
>
<
el
-
form
-
item
label
=
"
标题英文
"
prop
=
"
title
"
>
<
el
-
input
v
-
model
=
"
form.titleEn
"
placeholder
=
"
请输入标题英文
"
/>
<
/el-form-item
>
<
/el-col
>
<
el
-
col
:
span
=
"
12
"
>
<
el
-
col
:
span
=
"
12
"
>
<
el
-
form
-
item
label
=
"
公告类型
"
prop
=
"
type
"
>
<
el
-
form
-
item
label
=
"
公告类型
"
prop
=
"
type
"
>
<
el
-
select
v
-
model
=
"
form.type
"
placeholder
=
"
请选择
"
>
<
el
-
select
v
-
model
=
"
form.type
"
placeholder
=
"
请选择
"
>
...
@@ -79,7 +89,7 @@
...
@@ -79,7 +89,7 @@
<
/el-select
>
<
/el-select
>
<
/el-form-item
>
<
/el-form-item
>
<
/el-col
>
<
/el-col
>
<
el
-
col
:
span
=
"
24
"
>
<
el
-
col
:
span
=
"
12
"
>
<
el
-
form
-
item
label
=
"
状态
"
>
<
el
-
form
-
item
label
=
"
状态
"
>
<
el
-
radio
-
group
v
-
model
=
"
form.status
"
>
<
el
-
radio
-
group
v
-
model
=
"
form.status
"
>
<
el
-
radio
<
el
-
radio
...
@@ -90,11 +100,23 @@
...
@@ -90,11 +100,23 @@
<
/el-radio-group
>
<
/el-radio-group
>
<
/el-form-item
>
<
/el-form-item
>
<
/el-col
>
<
/el-col
>
<
el
-
col
:
span
=
"
12
"
>
<
el
-
form
-
item
label
=
"
有效日期
"
>
<
el
-
date
-
picker
type
=
"
date
"
value
-
format
=
"
yyyy-MM-dd
"
format
=
"
yyyy-MM-dd
"
:
editable
=
"
false
"
v
-
model
=
"
form.validateDate
"
style
=
"
width: 100%;
"
><
/el-date-picker
>
<
/el-form-item
>
<
/el-col
>
<
el
-
col
:
span
=
"
24
"
>
<
el
-
col
:
span
=
"
24
"
>
<
el
-
form
-
item
label
=
"
内容
"
>
<
el
-
form
-
item
label
=
"
内容
"
>
<
editor
v
-
model
=
"
form.content
"
:
min
-
height
=
"
192
"
/>
<
editor
v
-
model
=
"
form.content
"
:
min
-
height
=
"
192
"
/>
<
/el-form-item
>
<
/el-form-item
>
<
/el-col
>
<
/el-col
>
<
el
-
col
:
span
=
"
24
"
>
<
el
-
form
-
item
label
=
"
内容英文
"
>
<
editor
v
-
model
=
"
form.contentEn
"
:
min
-
height
=
"
192
"
/>
<
/el-form-item
>
<
/el-col
>
<
/el-row
>
<
/el-row
>
<
/el-form
>
<
/el-form
>
<
div
slot
=
"
footer
"
class
=
"
dialog-footer
"
>
<
div
slot
=
"
footer
"
class
=
"
dialog-footer
"
>
...
@@ -181,8 +203,10 @@ export default {
...
@@ -181,8 +203,10 @@ export default {
this
.
form
=
{
this
.
form
=
{
id
:
undefined
,
id
:
undefined
,
title
:
undefined
,
title
:
undefined
,
titleEn
:
undefined
,
type
:
undefined
,
type
:
undefined
,
content
:
undefined
,
content
:
undefined
,
contentEn
:
undefined
,
status
:
CommonStatusEnum
.
ENABLE
status
:
CommonStatusEnum
.
ENABLE
}
;
}
;
this
.
resetForm
(
"
form
"
);
this
.
resetForm
(
"
form
"
);
...
...
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