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
9482381f
Commit
9482381f
authored
Nov 09, 2024
by
zs嵩
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
报价单,客户等相关优化 bug处理
parent
bed4bb1d
Changes
11
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
1048 additions
and
1015 deletions
+1048
-1015
main.js
src/main.js
+1
-0
custom.scss
src/styles/custom.scss
+17
-0
index.scss
src/styles/index.scss
+2
-18
customerFollow.vue
src/views/ecw/customer/components/customerFollow.vue
+9
-2
customerFollowSelectOffer.vue
...ews/ecw/customer/components/customerFollowSelectOffer.vue
+44
-48
edit.vue
src/views/ecw/customer/edit.vue
+0
-1
query.vue
src/views/ecw/customer/query.vue
+118
-110
detail.vue
src/views/ecw/offer/detail.vue
+777
-784
edit.vue
src/views/ecw/offer/edit.vue
+3
-1
index.vue
src/views/ecw/offer/index.vue
+16
-3
logListCommon.vue
src/views/ecw/offer/logListCommon.vue
+61
-48
No files found.
src/main.js
View file @
9482381f
...
...
@@ -96,6 +96,7 @@ import '@/icons'
import
axios
from
'
axios
'
Vue
.
prototype
.
$axios
=
axios
import
'
@/styles/index.scss
'
import
'
@/styles/custom.scss
'
/**
* If you don't want to use mock-server
...
...
src/styles/custom.scss
0 → 100644
View file @
9482381f
.search-z
{
.el-form-item--small.el-form-item
{
width
:
360px
;
}
}
.search-time
{
.el-form-item--small.el-form-item
{
width
:
520px
;
}
}
.flex-c-c
{
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
}
src/styles/index.scss
View file @
9482381f
...
...
@@ -109,7 +109,7 @@ textarea {
font-size
:
12px
;
&
:hover
{
background
:
rgba
(
210
,
23
,
23
,
0
.5
)
background
:
rgba
(
210
,
23
,
23
,
0
.5
)
;
}
}
...
...
@@ -144,7 +144,7 @@ textarea {
}
.el-icon-plus
{
color
:
#409
EFF
;
color
:
#409
eff
;
}
.el-icon-delete
{
...
...
@@ -152,10 +152,6 @@ textarea {
}
}
.el-scrollbar__view
{
/*overflow-x: hidden;*/
}
.el-rate
{
display
:
inline-block
;
vertical-align
:
text-top
;
...
...
@@ -164,15 +160,3 @@ textarea {
.el-upload__tip
{
line-height
:
1
.2
;
}
.search-z
{
.el-form-item--small.el-form-item
{
width
:
360px
;
}
}
.search-time
{
.el-form-item--small.el-form-item
{
width
:
520px
;
}
}
src/views/ecw/customer/components/customerFollow.vue
View file @
9482381f
...
...
@@ -146,6 +146,7 @@
</div>
</el-dialog>
<choose-contact-dialog
v-if=
"ChooseContactDialog"
:type=
"2"
@
choose=
"changeAllContactUser"
@
close=
"ChooseContactDialog = false"
/>
<CustomerFollowSelectOffer
v-if=
"CustomerFollowSelectOffer"
:customer-id=
"customerId"
ref=
"customerFollowSelectOffer"
@
select=
"selectOffer"
@
close=
"CustomerFollowSelectOffer = false"
/>
</div>
</
template
>
<
style
lang=
"scss"
scoped
>
...
...
@@ -172,6 +173,7 @@ import { parseTime } from "@/utils/ruoyi"
import
FileUpload
from
"
@/components/FileUpload/fileUpload
"
import
{
formatDate
}
from
"
@/utils/index
"
import
ChooseContactDialog
from
"
@/components/ChooseContactDialog
"
import
CustomerFollowSelectOffer
from
"
./customerFollowSelectOffer
"
export
default
{
/**
* 客户跟进
...
...
@@ -188,10 +190,12 @@ export default {
},
components
:
{
ChooseContactDialog
,
CustomerFollowSelectOffer
,
FileUpload
},
data
()
{
return
{
CustomerFollowSelectOffer
:
false
,
ChooseContactDialog
:
false
,
fileType
:
[
"
doc
"
,
"
xls
"
,
"
ppt
"
,
"
txt
"
,
"
pdf
"
,
"
png
"
,
"
jpg
"
,
"
jpeg
"
],
DICT_TYPE
,
...
...
@@ -242,6 +246,9 @@ export default {
})
},
methods
:
{
selectOffer
(
offerId
)
{
this
.
form
.
offerId
=
offerId
},
init
()
{
if
(
this
.
form
.
customerId
)
{
getCustomerContactsListByCustomer
({
...
...
@@ -305,7 +312,7 @@ export default {
handleFollowType
(
val
)
{
console
.
log
(
val
)
if
(
val
==
"
2
"
)
{
this
.
$refs
[
"
customerFollowSelectOffer
"
].
offerDialogVisible
=
true
this
.
CustomerFollowSelectOffer
=
true
}
else
{
this
.
form
.
offerId
=
undefined
}
...
...
@@ -326,7 +333,7 @@ export default {
nextPlan
:
undefined
,
nextTime
:
undefined
,
number
:
undefined
,
offerId
:
undefine
d
,
offerId
:
this
.
offerI
d
,
parentId
:
undefined
,
parentNumber
:
undefined
,
purpose
:
undefined
,
...
...
src/views/ecw/customer/components/customerFollowSelectOffer.vue
View file @
9482381f
<
template
>
<el-dialog
append-to-body
:title=
"$t('报价单')"
:visible.sync=
"offerDialogVisible"
:close-on-click-modal=
"false"
width=
"80%"
>
<el-dialog
append-to-body
:title=
"$t('报价单')"
:visible.sync=
"offerDialogVisible"
:close-on-click-modal=
"false"
width=
"80%"
@
close=
"$emit('close')"
>
<el-form
:model=
"queryParams"
ref=
"queryForm"
size=
"small"
:inline=
"true"
label-width=
"100px"
>
<el-form-item
:label=
"$t('编号')"
prop=
"searchNumber"
>
<el-input
v-model=
"queryParams.searchNumber"
:placeholder=
"$t('请输入报价单号、订单号')"
clearable
@
keyup.enter.native=
"handleQuery"
/>
<el-input
v-model=
"queryParams.searchNumber"
:placeholder=
"$t('请输入报价单号、订单号')"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
:label=
"$t('客户')"
prop=
"searchCustomer"
>
<el-input
v-model=
"queryParams.searchCustomer"
:placeholder=
"$t('请输入客户')"
clearable
@
keyup.enter.native=
"handleQuery"
/>
<el-input
v-model=
"queryParams.searchCustomer"
:placeholder=
"$t('请输入客户')"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
<el-form-item
:label=
"$t('客户经理')"
prop=
"followUpSalesmanId"
>
<user-selector
v-model=
"queryParams.followUpSalesmanId"
clearable
/>
</el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleQuery"
>
{{
$t
(
'
搜索
'
)
}}
</el-button>
<el-button
icon=
"el-icon-refresh"
@
click=
"resetQuery"
>
{{
$t
(
'
重置
'
)
}}
</el-button>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"handleQuery"
>
{{
$t
(
"
搜索
"
)
}}
</el-button>
<el-button
icon=
"el-icon-refresh"
@
click=
"resetQuery"
>
{{
$t
(
"
重置
"
)
}}
</el-button>
</el-form-item>
</el-form>
<el-table
:data=
"offerList"
border
size=
"mini"
>
<el-table-column
align=
"center"
width=
"80"
>
<template
slot-scope=
"
{
row
}">
<template
slot-scope=
"
{
row
}">
<el-radio
v-model=
"offerId"
:label=
"row.offerId"
>
</el-radio>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('报价单号')"
min-width=
"160px"
>
<
template
slot-scope=
"{
row
}"
>
<el-link
type=
"primary"
@
click.native=
"$router.push('/offer/detail?offerId=' + row.offerId)"
>
{{
row
.
number
}}
</el-link>
<
template
slot-scope=
"{
row
}"
>
<el-link
type=
"primary"
@
click.native=
"$router.push('/offer/detail?offerId=' + row.offerId)"
>
{{
row
.
number
}}
</el-link>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('销售阶段')"
min-width=
"120"
>
<
template
slot-scope=
"{
row
}"
>
<
template
slot-scope=
"{
row
}"
>
<dict-tag
:type=
"DICT_TYPE.ECW_OFFER_STATUS"
:value=
"row.status"
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('订单编号')"
min-width=
"150px"
>
<
template
slot-scope=
"{
row
}"
>
<el-link
type=
"primary"
@
click.native=
"$router.push('/order/detail?orderId=' + row.orderId)"
>
{{
row
.
orderNo
}}
</el-link>
<
template
slot-scope=
"{
row
}"
>
<el-link
type=
"primary"
@
click.native=
"$router.push('/order/detail?orderId=' + row.orderId)"
>
{{
row
.
orderNo
}}
</el-link>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('客户编号')"
align=
"center"
min-width=
"100"
>
<
template
slot-scope=
"{
row
}"
>
<el-link
type=
"primary"
@
click.native=
"$router.push('/customer/query/' + row.relationId)"
>
{{
row
.
customerNumber
}}
</el-link>
<
template
slot-scope=
"{
row
}"
>
<el-link
type=
"primary"
@
click.native=
"$router.push('/customer/query/' + row.relationId)"
>
{{
row
.
customerNumber
}}
</el-link>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('客户名称')"
align=
"center"
prop=
"relationName"
min-width=
"100"
/>
<el-table-column
:label=
"$t('联系方式')"
>
<
template
slot-scope=
"scope"
>
+
{{
scope
.
row
.
relationAreaCode
}}{{
scope
.
row
.
relationPhone
}}
</
template
>
<
template
slot-scope=
"scope"
>
+
{{
scope
.
row
.
relationAreaCode
}}{{
scope
.
row
.
relationPhone
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('运输方式')"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
:value=
"scope.row.transportId"
/>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('渠道')"
align=
"center"
min-width=
"120"
prop=
"channelName"
>
</el-table-column>
<el-table-column
:label=
"$t('始发地')"
align=
"center"
min-width=
"120"
prop=
"departureName"
>
</el-table-column>
<el-table-column
:label=
"$t('渠道')"
align=
"center"
min-width=
"120"
prop=
"channelName"
>
</el-table-column>
<el-table-column
:label=
"$t('始发地')"
align=
"center"
min-width=
"120"
prop=
"departureName"
>
</el-table-column>
<el-table-column
:label=
"$t('目的地')"
align=
"center"
prop=
"objectiveName"
min-width=
"120"
/>
<el-table-column
:label=
"$t('预计销售额')"
min-width=
"160"
>
<
template
slot-scope=
"{
row
}"
>
<
template
slot-scope=
"{
row
}"
>
<div
class=
""
v-for=
"(item, feeIndex) in row.estCostVO.feeDtoList"
:key=
"feeIndex"
>
<dict-tag
:type=
"DICT_TYPE.ECW_COST_FEE_TYPE"
:value=
"item.feeType"
/>
{{
item
.
amount
}}
{{
currencyMap
[
item
.
currencyId
]
}}
{{
item
.
amount
}}
{{
currencyMap
[
item
.
currencyId
]
}}
</div>
</
template
>
</el-table-column>
...
...
@@ -73,18 +69,17 @@
</el-table-column>
</el-table>
<!-- 分页组件 -->
<pagination
v-show=
"offerTotal > 0"
:total=
"offerTotal"
:page.sync=
"queryParams.pageNo"
:limit.sync=
"queryParams.pageSize"
@
pagination=
"getOfferList"
/>
<pagination
v-show=
"offerTotal > 0"
:total=
"offerTotal"
:page.sync=
"queryParams.pageNo"
:limit.sync=
"queryParams.pageSize"
@
pagination=
"getOfferList"
/>
<div
slot=
"footer"
class=
"dialog-footer"
>
<el-button
type=
"primary"
@
click=
"confirm"
>
{{
$t('确 定')
}}
</el-button>
<el-button
type=
"primary"
@
click=
"confirm"
>
{{
$t("确 定")
}}
</el-button>
</div>
</el-dialog>
</template>
<
script
>
import
{
getCurrencyList
}
from
'
@/api/ecw/currency
'
;
import
{
getCurrencyList
}
from
"
@/api/ecw/currency
"
import
{
getOfferPage
}
from
"
@/api/ecw/offer
"
import
UserSelector
from
'
@/components/UserSelector
'
import
UserSelector
from
"
@/components/UserSelector
"
export
default
{
name
:
"
CustomerFollowSelectOffer
"
,
...
...
@@ -104,35 +99,36 @@ export default {
},
offerList
:
[],
offerTotal
:
0
,
currencyList
:
[]
,
currencyList
:
[]
}
},
created
()
{
getCurrencyList
().
then
(
res
=>
{
getCurrencyList
().
then
(
(
res
)
=>
{
this
.
currencyList
=
res
.
data
})
this
.
getOfferList
()
this
.
offerDialogVisible
=
true
},
computed
:{
currencyMap
(){
computed
:
{
currencyMap
()
{
let
map
=
{}
this
.
currencyList
.
forEach
(
item
=>
{
map
[
item
.
id
]
=
this
.
$l
(
item
,
'
title
'
)
this
.
currencyList
.
forEach
((
item
)
=>
{
map
[
item
.
id
]
=
this
.
$l
(
item
,
"
title
"
)
})
return
map
},
exportCityList
()
{
return
this
.
tradeCityList
.
filter
(
item
=>
item
.
type
==
2
)
return
this
.
tradeCityList
.
filter
(
(
item
)
=>
item
.
type
==
2
)
},
importCityList
()
{
return
this
.
tradeCityList
.
filter
(
item
=>
item
.
type
==
1
)
}
,
return
this
.
tradeCityList
.
filter
(
(
item
)
=>
item
.
type
==
1
)
}
},
methods
:
{
/** 搜索按钮操作 */
handleQuery
()
{
this
.
queryParams
.
pageNo
=
1
;
this
.
queryParams
.
pageNo
=
1
this
.
getOfferList
()
},
/** 重置按钮操作 */
...
...
@@ -141,20 +137,20 @@ export default {
pageNo
:
1
,
pageSize
:
10
}
this
.
handleQuery
()
;
this
.
handleQuery
()
},
getOfferList
()
{
getOfferPage
({
...
this
.
queryParams
,
customerId
:
this
.
customerId
}).
then
(
response
=>
{
this
.
offerList
=
response
.
data
.
list
;
this
.
offerTotal
=
response
.
data
.
total
;
})
;
}).
then
(
(
response
)
=>
{
this
.
offerList
=
response
.
data
.
list
this
.
offerTotal
=
response
.
data
.
total
})
},
confirm
()
{
if
(
this
.
offerId
)
{
this
.
$emit
(
'
select
'
,
this
.
offerId
)
this
.
$emit
(
"
select
"
,
this
.
offerId
)
this
.
offerDialogVisible
=
false
}
else
{
this
.
$message
.
error
(
this
.
$t
(
"
请选择报价单
"
))
...
...
src/views/ecw/customer/edit.vue
View file @
9482381f
...
...
@@ -1005,7 +1005,6 @@ export default {
this
.
$refs
.
bankForm
.
validate
((
valid3
,
err3
)
=>
{
console
.
log
(
valid3
,
"
valid3
"
,
err3
)
if
(
!
valid1
||
!
valid2
||
!
valid3
)
{
console
.
log
(
333
)
this
.
$showFormValidateErrors
({
...
err1
,
...
err2
,
...
err3
})
this
.
showBaseFlag
=
true
...
...
src/views/ecw/customer/query.vue
View file @
9482381f
...
...
@@ -33,7 +33,6 @@
<el-descriptions-item
:label=
"$t('客户状态')"
>
{{ getDictDataLabel(DICT_TYPE.CUSTOMER_STATUS, customer.status) }}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('客户经理')"
>
{{ customer.customerServiceName }}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('询盘信息')"
>
{{ customer.inquiry }}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('备注')"
>
{{ customer.remarks }}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('图片')"
>
...
...
@@ -42,13 +41,12 @@
</image-display>
</el-descriptions-item>
<
template
v-if=
"showMore"
>
<el-descriptions-item
:label=
"$t('客户等级')"
>
{{ getDictDataLabel(DICT_TYPE.CUSTOMER_LEVEL, customer.level) }}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('推介人')"
>
{{ customer.promoterName }}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('客户生日')"
>
{{ parseTime(customer.birthday, "{y}-{m}-{d}") }}
</el-descriptions-item>
<
el
-
descriptions
-
item
:
label
=
"
$t('业绩类型')
"
>
{{
customer
.
isNew
?
$t
(
"
新客户
"
)
:
$t
(
"
老客户
"
)
}}
<
/el-descriptions-item
>
<el-descriptions-item
:label=
"$t('客户经理')"
>
{{ customer.customerServiceName }}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('资源类型')"
>
<dict-tag
:type=
"DICT_TYPE.ECW_CUSTOMER_RESOURCE_TYPE"
:value=
"customer.resourceType"
></dict-tag>
</el-descriptions-item>
...
...
@@ -58,6 +56,8 @@
<el-descriptions-item
:label=
"$t('掉入公海时间')"
>
{{ customer.estimateEnterOpenSeaTime || customer.enterOpenSeaTime }}
</el-descriptions-item>
<
template
v-if=
"showMore"
>
<el-descriptions-item
:label=
"$t('获取方式')"
>
{{
getDictDataLabel
(
DICT_TYPE
.
CUSTOMER_GET_METHOD
,
customer
.
getMethod
)
}}
</el-descriptions-item>
...
...
@@ -70,6 +70,7 @@
<el-descriptions-item
:label=
"$t('创建时间')"
>
{{
parseTime
(
customer
.
createTime
)
}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('最后更新人')"
>
{{
customer
.
updaterName
}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('最后更新时间')"
>
{{
customer
.
updateTime
}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('业绩类型')"
>
{{
customer
.
isNew
?
$t
(
"
新客户
"
)
:
$t
(
"
老客户
"
)
}}
</el-descriptions-item>
</
template
>
</el-descriptions>
</el-card>
...
...
@@ -93,7 +94,8 @@
<el-tab-pane
name=
"order"
:label=
"$t('订单')"
>
<el-card
class=
"box-card"
>
<div
slot=
"header"
class=
"clearfix"
>
<
el
-
form
:
inline
=
"
true
"
size
=
"
small
"
>
<el-form
:inline=
"true"
size=
"small"
label-width=
"100px"
>
<div
class=
"search-z"
>
<el-form-item
:label=
"$t('运输方式:')"
>
<dict-selector
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
v-model=
"queryParams.transportId"
formatter=
"number"
/>
</el-form-item>
...
...
@@ -103,36 +105,39 @@
<el-form-item
:label=
"$t('报关方式:')"
>
<dict-selector
:type=
"DICT_TYPE.ECW_CUSTOMS_TYPE"
v-model=
"queryParams.customsTypes"
multiple
/>
</el-form-item>
<
el
-
form
-
item
:
label
=
"
$t('控货
')
"
>
<el-form-item
:label=
"$t('控货:
')"
>
<dict-selector
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
v-model=
"queryParams.isCargoControl"
/>
</el-form-item>
<
el
-
form
-
item
:
label
=
"
$t('入仓时间:')
"
>
<
el
-
date
-
picker
v
-
model
=
"
rucangtime
"
@
change
=
"
changeDate
"
style
=
"
width: 240px
"
value
-
format
=
"
yyyy-MM-dd HH:mm:ss
"
type
=
"
datetimerange
"
range
-
separator
=
"
-
"
:
start
-
placeholder
=
"
$t('开始日期')
"
:
end
-
placeholder
=
"
$t('结束日期')
"
/>
<
/el-form-item
>
<
el
-
form
-
item
:
label
=
"
$t('始发仓')
"
prop
=
"
startWarehouseIds
"
>
<el-form-item
:label=
"$t('始发仓:')"
prop=
"startWarehouseIds"
>
<el-select
v-model=
"queryParams.startWarehouseIds"
multiple
:placeholder=
"$t('请选择始发仓')"
clearable
@
change=
"handleQuery"
>
<el-option
v-for=
"item in exportWarehouseList"
:label=
"$l(item, 'title')"
:value=
"item.id"
:key=
"item.id"
></el-option>
</el-select>
</el-form-item>
<
el
-
form
-
item
:
label
=
"
$t('目的国
')
"
prop
=
"
destCountryId
"
>
<el-form-item
:label=
"$t('目的国:
')"
prop=
"destCountryId"
>
<el-select
v-model=
"destCountryId"
multiple
:placeholder=
"$t('请选择目的国')"
clearable
@
change=
"handleQuery"
>
<el-option
v-for=
"item in AddressProvince"
:key=
"item.guojia"
:label=
"item.guojiaName"
:value=
"item.guojia"
></el-option>
</el-select>
</el-form-item>
<
el
-
form
-
item
:
label
=
"
$t('目的城市
')
"
prop
=
"
objectiveId
"
>
<el-form-item
:label=
"$t('目的城市:
')"
prop=
"objectiveId"
>
<el-select
v-model=
"objectiveId"
multiple
:placeholder=
"$t('请选择目的城市')"
style=
"width: 200px"
clearable
@
change=
"handleQuery"
>
<el-option
v-for=
"item in AddressCity"
:key=
"item.shi"
:label=
"item.shiName"
:value=
"item.shi"
></el-option>
</el-select>
</el-form-item>
<
el
-
form
-
item
:
label
=
"
$t('目的仓
')
"
prop
=
"
destWarehouseId
"
>
<el-form-item
:label=
"$t('目的仓:
')"
prop=
"destWarehouseId"
>
<el-select
v-model=
"destWarehouseId"
multiple
:placeholder=
"$t('请选择目的仓')"
style=
"width: 200px"
clearable
@
change=
"handleQuery"
>
<el-option
v-for=
"item in AddressTown"
:key=
"item.id"
:label=
"item.titleZh"
:value=
"item.id"
></el-option>
</el-select>
</el-form-item>
<
el
-
form
-
item
>
</div>
<div
class=
"search-time"
>
<el-form-item
:label=
"$t('入仓时间:')"
>
<el-date-picker
v-model=
"rucangtime"
@
change=
"changeDate"
value-format=
"yyyy-MM-dd HH:mm:ss"
type=
"datetimerange"
range-separator=
"-"
:start-placeholder=
"$t('开始日期')"
:end-placeholder=
"$t('结束日期')"
/>
</el-form-item>
<el-form-item
style=
"padding-left: 20px"
>
<el-button
type=
"primary"
@
click=
"getorderList"
>
{{ $t("搜索") }}
</el-button>
<el-button
type=
"primary"
@
click=
"handleOrderReset"
>
{{ $t("重置") }}
</el-button>
</el-form-item>
</div>
</el-form>
</div>
<el-descriptions
:column=
"2"
>
...
...
@@ -228,7 +233,8 @@
<el-tab-pane
name=
"quote"
:label=
"$t('报价')"
>
<el-card
class=
"box-card"
>
<div
slot=
"header"
class=
"clearfix"
>
<
el
-
form
:
inline
=
"
true
"
size
=
"
small
"
ref
=
"
handleOffer
"
>
<el-form
:inline=
"true"
size=
"small"
ref=
"handleOffer"
label-width=
"100px"
>
<div
class=
"search-z"
>
<el-form-item
:label=
"$t('编号')"
prop=
"searchNumber"
>
<el-input
v-model.trim=
"queryOfferParams.searchNumber"
:placeholder=
"$t('请输入报价单号、订单号')"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
...
...
@@ -278,15 +284,17 @@
<el-option
v-for=
"item in [1, 2, 3, 4, 5]"
:label=
"item"
:value=
"item"
:key=
"item"
></el-option>
</el-select>
</el-form-item>
</div>
<div
class=
"search-time"
>
<el-form-item
:label=
"$t('创建时间')"
>
<el-date-picker
v-model=
"queryTmp.createTime"
type=
"datetimerange"
range-separator=
"-"
:start-placeholder=
"$t('开始日期')"
:end-placeholder=
"$t('结束日期')"
value-format=
"yyyy-MM-dd HH:mm:ss"
@
change=
"handleQuery"
>
</el-date-picker>
</el-form-item>
<
el
-
form
-
item
>
<el-form-item
style=
"padding-left: 20px"
>
<el-button
type=
"primary"
@
click=
"getInfoListOfferPage"
>
{{ $t("搜索") }}
</el-button>
<el-button
type=
"primary"
@
click=
"handleOfferReset"
>
{{ $t("重置") }}
</el-button>
</el-form-item>
</div>
</el-form>
</div>
<el-table
:data=
"infoListOfferList"
style=
"width: 100%"
>
...
...
@@ -380,7 +388,7 @@
</el-card>
</el-tab-pane>
<el-tab-pane
name=
"follow"
:label=
"$t('跟进')"
>
<
logListCommon
ref
=
"
logListCommon
"
v
-
if
=
"
activeName === 'follow'
"
:
customerId
=
"
id
"
/>
<logListCommon
ref=
"logListCommon"
:customerService=
"customer.customerService"
:customerNumber=
"customer.number"
v-if=
"activeName === 'follow'"
:customerId=
"id"
/>
</el-tab-pane>
<el-tab-pane
name=
"complain"
:label=
"$t('客户投诉')"
>
<customer-complaint
v-if=
"activeName === 'complain'"
ref=
"customerComplaint"
:customer-id=
"id"
hidden-search
></customer-complaint>
...
...
@@ -950,7 +958,7 @@ export default {
},
infoListReceiptTotal
:
0
,
country
:
""
,
showMore
:
tru
e
,
showMore
:
fals
e
,
AddressCity
:
[],
AddressProvince
:
[],
AddressTown
:
[],
...
...
src/views/ecw/offer/detail.vue
View file @
9482381f
<
template
>
<div
class=
"app-container"
>
<el-card>
<div
slot=
"header"
class=
"card-title"
>
{{
$t
(
'
报价单详情
'
)
}}
</div>
<div
slot=
"header"
class=
"card-title"
>
{{
$t
(
"
报价单详情
"
)
}}
</div>
<!-- 列表 -->
<div
class=
"offer-header"
>
<span
style=
"font-size: 15px;"
>
{{
$t
(
'
报价单号
'
)
}}
:
{{
list
.
number
}}
-
<dict-tag
:type=
"DICT_TYPE.ECW_OFFER_STATUS"
:value=
"list.status"
/></span>
<span
style=
"font-size: 15px"
>
{{
$t
(
"
报价单号
"
)
}}
:
{{
list
.
number
}}
-
<dict-tag
:type=
"DICT_TYPE.ECW_OFFER_STATUS"
:value=
"list.status"
/></span>
<div
class=
"btns"
>
<el-button
v-hasPermi=
"['ecw:offer:update']"
size=
"mini"
type=
"primary"
v-if=
"[4,5,6].indexOf(list.status) == -1"
@
click=
"$router.push('edit?id=' + offerId)"
>
{{
$t
(
'
编辑
'
)
}}
</el-button>
<el-button
v-hasPermi=
"['ecw:offer:loglist']"
type=
"primary"
v-if=
"[1,3,7].indexOf(list.status) > -1"
size=
"mini"
@
click=
"handleAdd"
>
{{
$t
(
'
跟进
'
)
}}
</el-button>
<el-button
v-hasPermi=
"['ecw:offer:result']"
type=
"primary"
v-if=
"[3,7].indexOf(list.status) > -1"
size=
"mini"
@
click=
"toResult"
>
{{
$t
(
'
结果
'
)
}}
</el-button>
<el-button
v-hasPermi=
"['ecw:offer:discount','ecw:offer:commission']"
size=
"mini"
v-if=
"[1,3,7].indexOf(list.status) > -1"
type=
"primary"
@
click.native=
"$router.push('/offer/special?offerId=' + offerId)"
>
{{
$t
(
'
特价
'
)
}}
</el-button>
<el-button
v-hasPermi=
"['ecw:offer:delete']"
type=
"danger"
size=
"mini"
@
click=
"handleDelete"
>
{{
$t
(
'
删除
'
)
}}
</el-button>
<el-button
v-hasPermi=
"['ecw:offer:update']"
size=
"mini"
type=
"primary"
v-if=
"[4, 5, 6].indexOf(list.status) == -1"
@
click=
"$router.push('edit?id=' + offerId)"
>
{{
$t
(
"
编辑
"
)
}}
</el-button>
<el-button
v-hasPermi=
"['ecw:offer:loglist']"
type=
"primary"
v-if=
"[1, 3, 7].indexOf(list.status) > -1"
size=
"mini"
@
click=
"handleAddOffer(list)"
>
{{
$t
(
"
跟进
"
)
}}
</el-button>
<el-button
v-hasPermi=
"['ecw:offer:result']"
type=
"primary"
v-if=
"[3, 7].indexOf(list.status) > -1"
size=
"mini"
@
click=
"toResult"
>
{{
$t
(
"
结果
"
)
}}
</el-button>
<el-button
v-hasPermi=
"['ecw:offer:discount', 'ecw:offer:commission']"
size=
"mini"
v-if=
"[1, 3, 7].indexOf(list.status) > -1"
type=
"primary"
@
click.native=
"$router.push('/offer/special?offerId=' + offerId)"
>
{{
$t
(
"
特价
"
)
}}
</el-button>
<el-button
v-hasPermi=
"['ecw:offer:delete']"
type=
"danger"
size=
"mini"
@
click=
"handleDelete"
>
{{
$t
(
"
删除
"
)
}}
</el-button>
</div>
</div>
<div>
<div
class=
"title-font"
>
<label>
{{
$t
(
'
报价单所属
'
)
}}
:
{{
list
.
relation
?
list
.
relation
==
1
?
$t
(
'
发货人
'
):
$t
(
'
收货人
'
):
$t
(
'
发货人
'
)
}}
</label>
<label>
{{
$t
(
"
报价单所属
"
)
}}
:
{{
list
.
relation
?
(
list
.
relation
==
1
?
$t
(
"
发货人
"
)
:
$t
(
"
收货人
"
))
:
$t
(
"
发货人
"
)
}}
</label>
</div>
<el-descriptions
:column=
"3"
border
class=
"card"
v-if=
"list.consignorId"
>
<el-descriptions-item
:label=
"$t('发货人')+
':'"
>
{{
consignorData
.
contactsName
||
$t
(
'
无
'
)
}}
<el-descriptions-item
:label=
"$t('发货人') +
':'"
>
{{
consignorData
.
contactsName
||
$t
(
"
无
"
)
}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('手机号')+
':'"
>
{{
consignorData
&&
consignorData
.
phoneNew
?
(
checkCode
(
consignorData
.
areaCode
)
+
consignorData
.
phoneNew
)
||
$t
(
'
无
'
):
$t
(
'
无
'
)
}}
<el-descriptions-item
:label=
"$t('手机号') +
':'"
>
{{
consignorData
&&
consignorData
.
phoneNew
?
checkCode
(
consignorData
.
areaCode
)
+
consignorData
.
phoneNew
||
$t
(
"
无
"
)
:
$t
(
"
无
"
)
}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('联系地址')+
':'"
>
{{
consignorData
.
address
||
$t
(
'
无
'
)
}}
<el-descriptions-item
:label=
"$t('联系地址') +
':'"
>
{{
consignorData
.
address
||
$t
(
"
无
"
)
}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('客户来源')+
':'"
>
{{
consignorData
.
source
||
$t
(
'
无
'
)
}}
<el-descriptions-item
:label=
"$t('客户来源') +
':'"
>
{{
consignorData
.
source
||
$t
(
"
无
"
)
}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('发货人公司名称')+
':'"
>
{{
consignorData
.
company
||
$t
(
'
无
'
)
}}
<el-descriptions-item
:label=
"$t('发货人公司名称') +
':'"
>
{{
consignorData
.
company
||
$t
(
"
无
"
)
}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('社交软件')+
':'"
>
<el-descriptions-item
:label=
"$t('社交软件') +
':'"
>
<dict-tag
:type=
"DICT_TYPE.SOCIAL"
:value=
"consignorData.social"
/>
{{
consignorData
.
socialNumber
?(
'
(
'
+
consignorData
.
socialNumber
+
'
)
'
):
''
}}
{{
consignorData
.
socialNumber
?
"
(
"
+
consignorData
.
socialNumber
+
"
)
"
:
""
}}
</el-descriptions-item>
</el-descriptions>
<el-descriptions
:column=
"3"
border
class=
"card"
v-if=
"list.consigneeId"
>
<el-descriptions-item
:label=
"$t('收货人')+
':'"
>
{{
consigneeData
.
contactsName
||
$t
(
'
无
'
)
}}
<el-descriptions-item
:label=
"$t('收货人') +
':'"
>
{{
consigneeData
.
contactsName
||
$t
(
"
无
"
)
}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('手机号')+
':'"
>
{{
consigneeData
&&
consigneeData
.
phoneNew
?(
checkCode
(
consigneeData
.
areaCode
)
+
consigneeData
.
phoneNew
)
||
$t
(
'
无
'
):
$t
(
'
无
'
)
}}
<el-descriptions-item
:label=
"$t('手机号') +
':'"
>
{{
consigneeData
&&
consigneeData
.
phoneNew
?
checkCode
(
consigneeData
.
areaCode
)
+
consigneeData
.
phoneNew
||
$t
(
"
无
"
)
:
$t
(
"
无
"
)
}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('联系地址')+
':'"
>
{{
consigneeData
.
address
||
$t
(
'
无
'
)
}}
<el-descriptions-item
:label=
"$t('联系地址') +
':'"
>
{{
consigneeData
.
address
||
$t
(
"
无
"
)
}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('客户来源')+
':'"
>
{{
consigneeData
.
source
||
$t
(
'
无
'
)
}}
<el-descriptions-item
:label=
"$t('客户来源') +
':'"
>
{{
consigneeData
.
source
||
$t
(
"
无
"
)
}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('发货人公司名称')+
':'"
>
{{
consigneeData
.
company
||
$t
(
'
无
'
)
}}
<el-descriptions-item
:label=
"$t('发货人公司名称') +
':'"
>
{{
consigneeData
.
company
||
$t
(
"
无
"
)
}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('社交软件')+
':'"
>
<el-descriptions-item
:label=
"$t('社交软件') +
':'"
>
<dict-tag
:type=
"DICT_TYPE.SOCIAL"
:value=
"consigneeData.social"
/>
{{
consigneeData
.
socialNumber
?(
'
(
'
+
consigneeData
.
socialNumber
+
'
)
'
):
''
}}
{{
consigneeData
.
socialNumber
?
"
(
"
+
consigneeData
.
socialNumber
+
"
)
"
:
""
}}
</el-descriptions-item>
</el-descriptions>
<el-descriptions
:column=
"4"
class=
"card"
>
<el-descriptions-item
:label=
"$t('运输方式')"
>
<dict-tag
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
:value=
"list.transportId"
/>
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('出货渠道')"
v-if=
"[3,
4].indexOf(list.transportId) > -1"
>
{{
channelName
}}
<el-descriptions-item
:label=
"$t('出货渠道')"
v-if=
"[3,
4].indexOf(list.transportId) > -1"
>
{{
channelName
}}
</el-descriptions-item>
</el-descriptions>
<el-descriptions
:column=
"4"
class=
"card"
>
<el-descriptions-item
:label=
"$t('始发城市')"
>
{{
getCity
(
list
.
departureId
)
}}
{{
getCity
(
list
.
departureId
)
}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('目的城市')"
>
{{
getCity
(
list
.
objectiveId
)
}}
{{
getCity
(
list
.
objectiveId
)
}}
</el-descriptions-item>
</el-descriptions>
<el-descriptions
:column=
"4"
class=
"card"
>
<el-descriptions-item
:label=
"$t('线路')"
>
{{
getRouterNameById
(
list
.
lineId
)
}}
{{
getRouterNameById
(
list
.
lineId
)
}}
</el-descriptions-item>
</el-descriptions>
<el-descriptions
:column=
"4"
class=
"card"
>
...
...
@@ -86,25 +86,24 @@
<dict-tag
:type=
"DICT_TYPE.ECW_OFFER_STATUS"
:value=
"list.status"
/>
</el-descriptions-item>
</el-descriptions>
<el-descriptions
:column=
"4"
class=
"card"
v-if=
"list.status==
5"
>
<el-descriptions
:column=
"4"
class=
"card"
v-if=
"list.status ==
5"
>
<el-descriptions-item
:label=
"$t('输单原因')"
>
{{
list
.
reason
}}
{{
list
.
reason
}}
</el-descriptions-item>
</el-descriptions>
</div>
</el-card>
<el-card
class=
"card"
>
<div
slot=
"header"
class=
"card-title"
>
{{
$t
(
'
商品信息
'
)
}}
</div>
<div
style=
"overflow: auto;
"
>
<div
slot=
"header"
class=
"card-title"
>
{{
$t
(
"
商品信息
"
)
}}
</div>
<div
style=
"overflow: auto
"
>
<el-table
v-loading=
"loading"
border
:data=
"list.offerProdRespVOList"
>
<el-table-column
:label=
"$t('序号')"
width=
"60px"
fixed
>
<template
slot-scope=
"scope"
>
{{
scope
.
$index
+
1
}}
{{
scope
.
$index
+
1
}}
</
template
>
</el-table-column>
<!-- <el-table-column :label="商品类型" align="center" prop="goodsType" /> -->
<!-- <el-table-column :label="商品类型" align="center" prop="goodsType" /> -->
<el-table-column
:label=
"$t('中文品名')"
align=
"center"
prop=
"prodTitleZh"
/>
<el-table-column
:label=
"$t('英文品名')"
align=
"center"
prop=
"prodTitleEn"
/>
<el-table-column
:label=
"$t('品牌')"
width=
"100px"
>
...
...
@@ -126,25 +125,21 @@
<el-table-column
:label=
"$t('商品特性')"
width=
"200px"
prop=
"prodAttrName"
/>
<el-table-column
:label=
"$t('是否预付')"
>
<
template
slot-scope=
"scope"
>
{{
scope
.
row
.
isPayAdvance
==
1
?
$t
(
'
预付
'
):
$t
(
'
到付
'
)
}}
{{
scope
.
row
.
isPayAdvance
==
1
?
$t
(
"
预付
"
)
:
$t
(
"
到付
"
)
}}
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('成交价')"
width=
"200px"
>
<
template
slot-scope=
"{row
}"
>
<template
v-if=
"row.charging ==
1"
>
<template
v-if=
"!row.oneSeaFreight"
>
{{
$t
(
'
未报价
'
)
}}
</
template
>
<
template
>
{{
$t
(
'
全包价
'
)
}}
{{
row
.
oneSeaFreight
}}
{{
currentcyMap
[
row
.
seaFreightCurrency
]
}}
/
{{
unitMap
[
row
.
seaFreightVolume
]
}}
</
template
>
<
template
slot-scope=
"{ row
}"
>
<template
v-if=
"row.charging ==
1"
>
<template
v-if=
"!row.oneSeaFreight"
>
{{
$t
(
"
未报价
"
)
}}
</
template
>
<
template
>
{{
$t
(
"
全包价
"
)
}}
{{
row
.
oneSeaFreight
}}
{{
currentcyMap
[
row
.
seaFreightCurrency
]
}}
/
{{
unitMap
[
row
.
seaFreightVolume
]
}}
</
template
>
</template>
<
template
v-else-if=
"!row.oneSeaFreight && !row.oneClearanceFreight"
>
{{
$t
(
'
未报价
'
)
}}
</
template
>
<
template
v-else-if=
"!row.oneSeaFreight && !row.oneClearanceFreight"
>
{{
$t
(
"
未报价
"
)
}}
</
template
>
<
template
v-else
>
<div>
{{
$t
(
'
运费
'
)
}}
:
{{
row
.
oneSeaFreight
}}
{{
currentcyMap
[
row
.
seaFreightCurrency
]
}}
/
{{
unitMap
[
row
.
seaFreightVolume
]
}}
</div>
<div
v-if=
"row.oneClearanceFreight"
>
{{
$t
(
'
清关费
'
)
}}
:
{{
row
.
oneClearanceFreight
}}
{{
currentcyMap
[
row
.
clearanceFreightCurrency
]
}}
/
{{
unitMap
[
row
.
clearanceFreightVolume
]
}}
</div>
<div
v-else
>
{{
$t
(
'
清关费未报价
'
)
}}
</div>
<div>
{{
$t
(
"
运费
"
)
}}
:
{{
row
.
oneSeaFreight
}}
{{
currentcyMap
[
row
.
seaFreightCurrency
]
}}
/
{{
unitMap
[
row
.
seaFreightVolume
]
}}
</div>
<div
v-if=
"row.oneClearanceFreight"
>
{{
$t
(
"
清关费
"
)
}}
:
{{
row
.
oneClearanceFreight
}}
{{
currentcyMap
[
row
.
clearanceFreightCurrency
]
}}
/
{{
unitMap
[
row
.
clearanceFreightVolume
]
}}
</div>
<div
v-else
>
{{
$t
(
"
清关费未报价
"
)
}}
</div>
</
template
>
</template>
</el-table-column>
...
...
@@ -152,118 +147,103 @@
</div>
</el-card>
<el-card
class=
"card"
>
<div
slot=
"header"
class=
"card-title"
>
{{$t('费用小计')
}}
</div>
<div
slot=
"header"
class=
"card-title"
>
{{ $t("费用小计")
}}
</div>
<el-descriptions
border
class=
"card"
:column=
"5"
>
<el-descriptions-item
:label=
"$t('总件数')+
':'"
>
{{list.estCostVO?list.estCostVO.totalNum||'0':0
}}
<el-descriptions-item
:label=
"$t('总件数') +
':'"
>
{{ list.estCostVO ? list.estCostVO.totalNum || "0" : 0
}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('总体积')+
':'"
>
{{list.estCostVO?(list.estCostVO.totalVolume+'m³')||'0':0
}}
<el-descriptions-item
:label=
"$t('总体积') +
':'"
>
{{ list.estCostVO ? list.estCostVO.totalVolume + "m³" || "0" : 0
}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('总重量')+
':'"
>
{{list.estCostVO?(list.estCostVO.totalWeight+'kg')||'0':0
}}
<el-descriptions-item
:label=
"$t('总重量') +
':'"
>
{{ list.estCostVO ? list.estCostVO.totalWeight + "kg" || "0" : 0
}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('总数量')+
':'"
>
{{list.estCostVO?list.estCostVO.totalQuantity||'0':0
}}
<el-descriptions-item
:label=
"$t('总数量') +
':'"
>
{{ list.estCostVO ? list.estCostVO.totalQuantity || "0" : 0
}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('总货值(RMB)')+
':'"
>
{{list.estCostVO?list.estCostVO.totalWorth||'0':0
}}
<el-descriptions-item
:label=
"$t('总货值(RMB)') +
':'"
>
{{ list.estCostVO ? list.estCostVO.totalWorth || "0" : 0
}}
</el-descriptions-item>
<!-- <el-descriptions-item :label="报价费:">
<!-- <el-descriptions-item :label="报价费:">
{{list.estCostVO?list.estCostVO.insuranceFee||'0':0}}
</el-descriptions-item> -->
</el-descriptions>
<!-- <el-descriptions border class="card">
<!-- <el-descriptions border class="card">
<el-descriptions-item :label="佣金类型" :span="2" class="card">
<dict-selector :type="DICT_TYPE.COMMISSION_TYPE" form-type="radio" fomtter="number" :value="list.commissionType" defaultable />
</el-descriptions-item>
</el-descriptions> -->
</el-card>
<el-card
class=
"mt-10"
>
<div
class=
"card-title"
slot=
"header"
>
{{$t('预计费用')
}}
</div>
<div
class=
"card-title"
slot=
"header"
>
{{ $t("预计费用")
}}
</div>
<el-descriptions
:column=
"5"
border
>
<el-descriptions-item
:label=
"$t('保价费')"
>
{{list.estCostVO?list.estCostVO.insuranceFee: 0}} {{ selectedRouter ? currentcyMap[selectedRouter.currencyUnit || 1] : '' }}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('保价费')"
>
{{ list.estCostVO ? list.estCostVO.insuranceFee : 0 }} {{ selectedRouter ? currentcyMap[selectedRouter.currencyUnit || 1] : "" }}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('总运费')"
>
<
template
v-if=
"freightFeeList.length>
0"
v-for=
"item in freightFeeList"
>
<div
:key=
"item.currencyId"
>
{{
item
.
amount
||
0
}}{{
currentcyMap
[
item
.
currencyId
]
}}
</div>
<
template
v-if=
"freightFeeList.length >
0"
v-for=
"item in freightFeeList"
>
<div
:key=
"item.currencyId"
>
{{
item
.
amount
||
0
}}{{
currentcyMap
[
item
.
currencyId
]
}}
</div>
</
template
>
</el-descriptions-item>
<
template
v-if=
"freightFeeList.length==0"
>
0
</
template
>
<
template
v-if=
"freightFeeList.length == 0"
>
0
</
template
>
<!--代收货款,只有非控货订单、并且线路开通了代收货款后,才显示是否代收货款选项-->
<el-descriptions-item
:label=
"$t('总清关费')"
>
<
template
v-if=
"clearanceFeeList.length>0"
v-for=
"item in clearanceFeeList"
>
<div
:key=
"item.currencyId"
>
{{
item
.
amount
||
0
}}{{
currentcyMap
[
item
.
currencyId
]
}}
</div>
</
template
>
<
template
v-if=
"clearanceFeeList.length==0"
>
0
<
template
v-if=
"clearanceFeeList.length > 0"
v-for=
"item in clearanceFeeList"
>
<div
:key=
"item.currencyId"
>
{{
item
.
amount
||
0
}}{{
currentcyMap
[
item
.
currencyId
]
}}
</div>
</
template
>
<
template
v-if=
"clearanceFeeList.length == 0"
>
0
</
template
>
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('其他费用')"
>
<
template
v-if=
"otherFeeList.length>0"
v-for=
"item in otherFeeList"
>
<div
:key=
"item.currencyId"
>
{{
item
.
amount
||
0
}}{{
currentcyMap
[
item
.
currencyId
]
}}
</div>
</
template
>
<
template
v-if=
"otherFeeList.length==0"
>
0
<
template
v-if=
"otherFeeList.length > 0"
v-for=
"item in otherFeeList"
>
<div
:key=
"item.currencyId"
>
{{
item
.
amount
||
0
}}{{
currentcyMap
[
item
.
currencyId
]
}}
</div>
</
template
>
<
template
v-if=
"otherFeeList.length == 0"
>
0
</
template
>
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('原价')"
:span=
"2"
>
<
template
v-if=
"originalFeeList.length>0"
v-for=
"item in originalFeeList"
>
<div
:key=
"item.currencyId"
>
{{
item
.
amount
||
0
}}{{
currentcyMap
[
item
.
currencyId
]
}}
</div>
</
template
>
<
template
v-if=
"originalFeeList.length==0"
>
0
<
template
v-if=
"originalFeeList.length > 0"
v-for=
"item in originalFeeList"
>
<div
:key=
"item.currencyId"
>
{{
item
.
amount
||
0
}}{{
currentcyMap
[
item
.
currencyId
]
}}
</div>
</
template
>
<
template
v-if=
"originalFeeList.length == 0"
>
0
</
template
>
</el-descriptions-item>
</el-descriptions>
<div
class=
"card-title"
style=
"padding:20px 0;"
>
{{$t('优惠信息')}}
</div>
<div
class=
"card-title"
style=
"padding: 20px 0"
>
{{ $t("优惠信息") }}
</div>
<el-table
:data=
"couponList"
:show-header=
"false"
>
<el-table-column
label=
""
>
<
template
slot-scope=
"scope"
>
{{
scope
.
$index
+
1
}}
.
{{
getProductName
(
scope
.
row
.
prodId
)
}}
{{
scope
.
$index
+
1
}}
.
{{
getProductName
(
scope
.
row
.
prodId
)
}}
</
template
>
</el-table-column>
<el-table-column
label=
""
>
<
template
slot-scope=
"{row
}"
>
<
template
slot-scope=
"{ row
}"
>
<dict-tag
:type=
"DICT_TYPE.ECW_COUPON_TYPE"
:value=
"row.type"
/>
</
template
>
</el-table-column>
<el-table-column
label=
""
>
<
template
slot-scope=
"{row
}"
>
{{
$l
(
row
,
'
title
'
)
}}
<
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
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
>
<
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-item
:label=
"$t('优惠费用')"
v-if=
"couponTotalAmountList && couponTotalAmountList.length>0"
>
<div
v-for=
"(item, discountIndex) in couponTotalAmountList"
:key=
"discountIndex"
>
{{item.totalAmount}} {{currentcyMap[item.currencyId]}}
</div>
<el-descriptions-item
:label=
"$t('优惠费用')"
v-if=
"couponTotalAmountList && couponTotalAmountList.length > 0"
>
<div
v-for=
"(item, discountIndex) in couponTotalAmountList"
:key=
"discountIndex"
>
{{ item.totalAmount }} {{ currentcyMap[item.currencyId] }}
</div>
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('预计费用')"
>
<
template
>
<div
style=
"display:flex;flex-direction:
column"
>
<
template
>
<div
style=
"display: flex; flex-direction:
column"
>
<div
v-for=
"item in estimatedCosts"
:key=
"item.currencyId"
>
<span>
{{
item
.
amount
||
0
}}{{
currentcyMap
[
item
.
currencyId
]
}}
</span>
<span>
{{
item
.
amount
||
0
}}{{
currentcyMap
[
item
.
currencyId
]
}}
</span>
</div>
</div>
</
template
>
...
...
@@ -271,10 +251,10 @@
</el-descriptions>
</el-card>
<el-card
class=
"card"
>
<div
slot=
"header"
class=
"card-title"
>
{{$t('通用信息')
}}
</div>
<div
slot=
"header"
class=
"card-title"
>
{{ $t("通用信息")
}}
</div>
<el-descriptions
:column=
"4"
>
<el-descriptions-item
:label=
"$t('唛头')"
>
{{list.marks||'/'
}}
{{ list.marks || "/"
}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('报关方式')"
>
<dict-tag
:type=
"DICT_TYPE.ECW_CUSTOMS_TYPE"
:value=
"list.customsType"
></dict-tag>
...
...
@@ -282,86 +262,83 @@
</el-descriptions>
<el-descriptions
:column=
"4"
>
<el-descriptions-item
:label=
"$t('预计结束时间')"
>
{{list.stopTime||'/'
}}
{{ list.stopTime || "/"
}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('控货')"
>
{{list.control?$t('是'):$t('否')
}}
{{ list.control ? $t("是") : $t("否")
}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('竞争对手')"
>
{{list.competitor||'/'
}}
{{ list.competitor || "/"
}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('重要程度')"
>
<el-rate
v-model=
"list.importance"
disabled
></el-rate>
</el-descriptions-item>
</el-descriptions>
<el-descriptions
:column=
"4"
>
<el-descriptions-item
:label=
"$t('价格有效期')"
>
{{list.startTime+$t('至')}}{{list.endTime}}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('价格有效期')"
>
{{ list.startTime + $t("至") }}{{ list.endTime }}
</el-descriptions-item>
<el-descriptions-item
:label=
"$t('交货方式')"
>
<dict-tag
:type=
"DICT_TYPE.ECW_TRADE_TYPE"
:value=
"list.tradeType"
></dict-tag>
<span
style=
"margin-left: 10px;"
>
{{list.tradeAdress
}}
</span>
<span
style=
"margin-left: 10px"
>
{{ list.tradeAdress
}}
</span>
</el-descriptions-item>
</el-descriptions>
<el-descriptions
>
<el-descriptions
>
<el-descriptions-item
:label=
"$t('备注')"
>
{{list.remarks||'/'
}}
{{ list.remarks || "/"
}}
</el-descriptions-item>
</el-descriptions>
</el-card>
<el-card
class=
"card"
v-if=
'list.transportVO'
>
<el-card
class=
"card"
v-if=
"list.transportVO"
>
<div
slot=
"header"
class=
"card-title"
>
<dict-tag
:type=
"DICT_TYPE.ECW_TRANSPORT_TYPE"
:value=
"list.transportId"
></dict-tag>
</div>
<div
class=
"line"
>
<el-descriptions>
<el-descriptions-item
:label=
"[3,4].indexOf(list.transportId)>-1?$t('空运路线'):
$t('海运路线')"
>
{{getRouterNameById(list.lineId)||'/'
}}
<el-descriptions-item
:label=
"[3, 4].indexOf(list.transportId) > -1 ? $t('空运路线') :
$t('海运路线')"
>
{{ getRouterNameById(list.lineId) || "/"
}}
</el-descriptions-item>
</el-descriptions>
<el-descriptions
v-if=
"[3,
4].indexOf(list.transportId) > -1"
>
<el-descriptions
v-if=
"[3,
4].indexOf(list.transportId) > -1"
>
<el-descriptions-item
:label=
"$t('出货渠道')"
>
{{channelName||'/'
}}
{{ channelName || "/"
}}
</el-descriptions-item>
</el-descriptions>
</div>
<el-descriptions
class=
"card"
v-if=
"[2,3,
4].indexOf(list.transportId) > -1"
>
<el-descriptions
class=
"card"
v-if=
"[2, 3,
4].indexOf(list.transportId) > -1"
>
<el-descriptions-item
:label=
"$t('是否双清')"
>
<dict-tag
:type=
"DICT_TYPE.ECW_DOUBLE_CLEAR"
:value=
"list.transportVO.doubleClear"
></dict-tag>
</el-descriptions-item>
</el-descriptions>
<el-descriptions
v-if=
"[3,
4].indexOf(list.transportId) > -1"
>
<el-descriptions
v-if=
"[3,
4].indexOf(list.transportId) > -1"
>
<el-descriptions-item
:label=
"$t('航空公司')"
>
{{airlineCompany ? $l(airlineCompany, 'company') : '/'
}}
{{ airlineCompany ? $l(airlineCompany, "company") : "/"
}}
</el-descriptions-item>
</el-descriptions>
<el-descriptions
v-if=
"list.transportId==
2"
>
<el-descriptions
v-if=
"list.transportId ==
2"
>
<el-descriptions-item
:label=
"$t('船公司')"
>
{{shippingCompany ? $l(shippingCompany, 'company') : '/'
}}
{{ shippingCompany ? $l(shippingCompany, "company") : "/"
}}
</el-descriptions-item>
</el-descriptions>
<el-descriptions
v-if=
"[2,3,
4].indexOf(list.transportId) > -1"
>
<el-descriptions
v-if=
"[2, 3,
4].indexOf(list.transportId) > -1"
>
<el-descriptions-item
:label=
"$t('清关证书')"
>
<dict-tag
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
:value=
"list.transportVO.customsClearCert"
></dict-tag>
</el-descriptions-item>
</el-descriptions>
<el-descriptions
v-if=
"[2,3,
4].indexOf(list.transportId) > -1"
>
<el-descriptions
v-if=
"[2, 3,
4].indexOf(list.transportId) > -1"
>
<el-descriptions-item
:label=
"$t('清关证书备注')"
>
{{list.transportVO.remarks||'/'
}}
{{ list.transportVO.remarks || "/"
}}
</el-descriptions-item>
</el-descriptions>
<el-descriptions
class=
"card"
v-if=
"[3,
4].indexOf(list.transportId) > -1"
>
<el-descriptions
class=
"card"
v-if=
"[3,
4].indexOf(list.transportId) > -1"
>
<el-descriptions-item
:label=
"$t('是否拆包')"
>
<dict-tag
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
:value=
"list.transportVO.isUnpack"
></dict-tag>
</el-descriptions-item>
</el-descriptions>
<el-descriptions
v-if=
"[3,
4].indexOf(list.transportId) > -1"
>
<el-descriptions
v-if=
"[3,
4].indexOf(list.transportId) > -1"
>
<el-descriptions-item
:label=
"$t('单票立刻转运')"
>
<dict-tag
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
:value=
"list.transportVO.isSingleTicketTransport"
></dict-tag>
<span
style=
"margin-left:10px;color: #0000FF;"
>
{{$t('注:若只有一件,货到仓库立即发,选“是”,多件需仓库集运待发,选“否”')
}}
</span>
<span
style=
"margin-left: 10px; color: #0000ff"
>
{{ $t("注:若只有一件,货到仓库立即发,选“是”,多件需仓库集运待发,选“否”")
}}
</span>
</el-descriptions-item>
</el-descriptions>
<el-descriptions>
<el-descriptions-item
:label=
"$t('特殊要求')"
>
...
...
@@ -370,53 +347,56 @@
</el-descriptions>
<el-descriptions>
<el-descriptions-item
:label=
"$t('特殊要求备注')"
>
{{list.transportVO.packageRemarks||'/'
}}
{{ list.transportVO.packageRemarks || "/"
}}
</el-descriptions-item>
</el-descriptions>
</el-card>
<customer-follow
ref=
"customerFollow"
v-if=
"customerFollowVisible"
:customerService=
"curData.salesmanId"
:customerNumber=
"curData.customerNumber"
:offerId=
"offerId"
/>
</div>
</template>
<
script
>
import
{
DICT_TYPE
,
getDictDatas
}
from
'
@/utils/dict
'
import
{
getOffer
,
deleteOffer
}
from
'
@/api/ecw/offer
'
import
{
getProductAttrList
}
from
'
@/api/ecw/productAttr
'
import
{
getCustomerList
,
getCustomer
}
from
'
@/api/ecw/customer
'
import
{
getChannelList
,
getChannel
}
from
'
@/api/ecw/channel
'
import
{
getTradeCityList
}
from
'
@/api/ecw/region
'
import
{
getUnitList
}
from
'
@/api/ecw/unit
'
import
{
getOrder
}
from
'
@/api/ecw/order
'
import
{
getCurrencyList
}
from
'
@/api/ecw/currency
'
import
{
getCustomerContactsSelect
}
from
'
@/api/ecw/customerContacts
'
import
{
openedRouterList
as
getOpenedRouterList
}
from
'
@/api/ecw/warehouse
'
import
{
calculationPrice
}
from
'
@/api/ecw/product
'
import
{
getSupplier
,
getSupplierPage
}
from
'
@/api/ecw/supplier
'
import
Decimal
from
'
decimal.js
'
window
.
Decimal
=
Decimal
import
{
DICT_TYPE
,
getDictDatas
}
from
"
@/utils/dict
"
import
{
getOffer
,
deleteOffer
}
from
"
@/api/ecw/offer
"
import
{
getProductAttrList
}
from
"
@/api/ecw/productAttr
"
import
{
getCustomerList
,
getCustomer
}
from
"
@/api/ecw/customer
"
import
{
getChannelList
,
getChannel
}
from
"
@/api/ecw/channel
"
import
{
getTradeCityList
}
from
"
@/api/ecw/region
"
import
{
getUnitList
}
from
"
@/api/ecw/unit
"
import
{
getOrder
}
from
"
@/api/ecw/order
"
import
{
getCurrencyList
}
from
"
@/api/ecw/currency
"
import
{
getCustomerContactsSelect
}
from
"
@/api/ecw/customerContacts
"
import
{
openedRouterList
as
getOpenedRouterList
}
from
"
@/api/ecw/warehouse
"
import
{
calculationPrice
}
from
"
@/api/ecw/product
"
import
{
getSupplier
,
getSupplierPage
}
from
"
@/api/ecw/supplier
"
import
Decimal
from
"
decimal.js
"
window
.
Decimal
=
Decimal
export
default
{
import
CustomerFollow
from
"
@/views/ecw/customer/components/customerFollow
"
export
default
{
name
:
"
detail
"
,
components
:
{
CustomerFollow
},
data
()
{
return
{
customerFollowVisible
:
false
,
// 遮罩层
loading
:
false
,
list
:
[],
types
:
'
package,bag
'
,
importance
:
1
,
productAttrList
:
[],
offerId
:
0
,
types
:
"
package,bag
"
,
importance
:
1
,
productAttrList
:
[],
offerId
:
0
,
//发货/收货人信息
consigneeData
:
{},
routerList
:
[],
fee
:
{},
channelName
:
'
/
'
,
tradeCityList
:
[],
consigneeData
:
{},
routerList
:
[],
fee
:
{},
channelName
:
"
/
"
,
tradeCityList
:
[],
productNames
:
{},
currencyList
:
[],
unitList
:
[],
orderData
:
[],
consignorData
:
{},
currencyList
:
[],
unitList
:
[],
orderData
:
[],
consignorData
:
{},
customerSource
:
getDictDatas
(
DICT_TYPE
.
CUSTOMER_SOURCE
),
couponAvailableGroupDtoList
:
[],
// 可用优惠
couponTotalAmountList
:
[],
// 优惠总额
...
...
@@ -424,44 +404,45 @@
airlineCompany
:
null
,
// 船公司
shippingCompany
:
null
,
};
curData
:
{}
}
},
computed
:
{
computed
:
{
// 根据id获取商品名称(显示优惠列表的时候用)
getProductName
()
{
return
prodId
=>
{
if
(
!
this
.
list
)
return
this
.
$t
(
'
未知
'
)
let
row
=
this
.
list
.
offerProdRespVOList
.
find
(
item
=>
item
.
prodId
==
prodId
)
if
(
!
row
)
return
this
.
$t
(
'
未知
'
)
return
this
.
$l
(
row
,
'
prodTitle
'
)
getProductName
()
{
return
(
prodId
)
=>
{
if
(
!
this
.
list
)
return
this
.
$t
(
"
未知
"
)
let
row
=
this
.
list
.
offerProdRespVOList
.
find
((
item
)
=>
item
.
prodId
==
prodId
)
if
(
!
row
)
return
this
.
$t
(
"
未知
"
)
return
this
.
$l
(
row
,
"
prodTitle
"
)
}
},
selectedRouter
()
{
selectedRouter
()
{
// otherService 1 送货上门,2非控货订单代收货款
if
(
!
this
.
list
.
lineId
)
return
null
return
this
.
routerList
.
find
(
item
=>
item
.
id
==
this
.
list
.
lineId
)
if
(
!
this
.
list
.
lineId
)
return
null
return
this
.
routerList
.
find
((
item
)
=>
item
.
id
==
this
.
list
.
lineId
)
},
currentcyMap
()
{
currentcyMap
()
{
let
map
=
{}
this
.
currencyList
.
forEach
(
item
=>
{
map
[
item
.
id
]
=
this
.
$i18n
.
locale
==
'
zh_CN
'
?
item
.
titleZh
:
item
.
titleEn
this
.
currencyList
.
forEach
((
item
)
=>
{
map
[
item
.
id
]
=
this
.
$i18n
.
locale
==
"
zh_CN
"
?
item
.
titleZh
:
item
.
titleEn
})
return
map
},
unitMap
()
{
unitMap
()
{
let
map
=
{}
this
.
unitList
.
forEach
(
item
=>
{
map
[
item
.
id
]
=
this
.
$i18n
.
locale
==
'
zh_CN
'
?
item
.
titleZh
:
item
.
titleEn
this
.
unitList
.
forEach
((
item
)
=>
{
map
[
item
.
id
]
=
this
.
$i18n
.
locale
==
"
zh_CN
"
?
item
.
titleZh
:
item
.
titleEn
})
return
map
},
// 总有优惠金额
// 总有优惠金额
// 总有优惠金额
couponList
(){
couponList
()
{
let
arr
=
[]
this
.
couponAvailableGroupDtoList
.
forEach
(
item
=>
{
if
(
item
.
couponAvailableDtoList
&&
item
.
couponAvailableDtoList
.
length
)
{
this
.
couponAvailableGroupDtoList
.
forEach
((
item
)
=>
{
if
(
item
.
couponAvailableDtoList
&&
item
.
couponAvailableDtoList
.
length
)
{
// 只取第一个
let
it
=
item
.
couponAvailableDtoList
[
0
]
arr
.
push
({
...
...
@@ -478,45 +459,45 @@
return
arr
},
// 计算返回的费用清单
feeDtoList
()
{
if
(
this
.
list
&&
this
.
list
.
estCostVO
)
{
feeDtoList
()
{
if
(
this
.
list
&&
this
.
list
.
estCostVO
)
{
return
this
.
list
.
estCostVO
.
feeDtoList
||
[]
}
else
{
}
else
{
return
[]
}
},
// 清关费
clearanceFeeList
()
{
return
this
.
feeDtoList
.
filter
(
item
=>
item
.
feeType
==
2
)
clearanceFeeList
()
{
return
this
.
feeDtoList
.
filter
((
item
)
=>
item
.
feeType
==
2
)
},
// 运费
freightFeeList
()
{
return
this
.
feeDtoList
.
filter
(
item
=>
item
.
feeType
==
1
)
freightFeeList
()
{
return
this
.
feeDtoList
.
filter
((
item
)
=>
item
.
feeType
==
1
)
},
// 其他费用
otherFeeList
()
{
return
this
.
feeDtoList
.
filter
(
item
=>
item
.
feeType
==
3
)
otherFeeList
()
{
return
this
.
feeDtoList
.
filter
((
item
)
=>
item
.
feeType
==
3
)
},
// 原价(清关费 + 运费)
originalFeeList
()
{
originalFeeList
()
{
let
arr
=
[]
this
.
clearanceFeeList
.
forEach
(
item
=>
{
this
.
clearanceFeeList
.
forEach
((
item
)
=>
{
let
it
=
{
src
:
this
.
$t
(
'
清关费
'
),
src
:
this
.
$t
(
"
清关费
"
),
currencyId
:
item
.
currencyId
,
amount
:
Decimal
(
item
.
amount
)
}
let
freight
=
this
.
freightFeeList
.
find
(
fee
=>
fee
.
currencyId
==
item
.
currencyId
)
if
(
freight
)
{
let
freight
=
this
.
freightFeeList
.
find
((
fee
)
=>
fee
.
currencyId
==
item
.
currencyId
)
if
(
freight
)
{
it
.
amount
=
it
.
amount
.
plus
(
freight
.
amount
)
}
arr
.
push
(
it
)
})
// 判断是否有运费单位不在清关费里的
this
.
freightFeeList
.
forEach
(
item
=>
{
if
(
!
arr
.
find
(
arrItem
=>
arrItem
.
currencyId
==
item
.
currencyId
))
{
this
.
freightFeeList
.
forEach
((
item
)
=>
{
if
(
!
arr
.
find
((
arrItem
)
=>
arrItem
.
currencyId
==
item
.
currencyId
))
{
arr
.
push
({
src
:
this
.
$t
(
'
未计算的运费
'
),
src
:
this
.
$t
(
"
未计算的运费
"
),
currencyId
:
item
.
currencyId
,
amount
:
Decimal
(
item
.
amount
)
})
...
...
@@ -525,25 +506,25 @@
return
arr
},
// 预计费用(原价 - 优惠金额)
estimatedCosts
()
{
estimatedCosts
()
{
let
arr
=
[]
this
.
originalFeeList
.
forEach
(
item
=>
{
this
.
originalFeeList
.
forEach
((
item
)
=>
{
let
it
=
{
currencyId
:
item
.
currencyId
,
amount
:
Decimal
(
item
.
amount
)
}
let
coupon
=
this
.
couponList
.
find
(
coupon
=>
coupon
.
reduceCurrencyId
==
item
.
currencyId
)
if
(
coupon
)
{
let
coupon
=
this
.
couponList
.
find
((
coupon
)
=>
coupon
.
reduceCurrencyId
==
item
.
currencyId
)
if
(
coupon
)
{
it
.
amount
=
it
.
amount
.
minus
(
coupon
.
reduceAmount
)
}
arr
.
push
(
it
)
})
// 累加保价费
const
insuranceFeeIndex
=
arr
.
findIndex
(
item
=>
item
.
currencyId
==
this
.
insuranceFeeCurrency
)
const
insuranceFee
=
this
.
list
&&
this
.
list
.
estCostVO
&&
this
.
list
.
estCostVO
.
insuranceFee
if
(
insuranceFeeIndex
>
-
1
)
{
const
insuranceFeeIndex
=
arr
.
findIndex
((
item
)
=>
item
.
currencyId
==
this
.
insuranceFeeCurrency
)
const
insuranceFee
=
this
.
list
&&
this
.
list
.
estCostVO
&&
this
.
list
.
estCostVO
.
insuranceFee
if
(
insuranceFeeIndex
>
-
1
)
{
arr
[
insuranceFeeIndex
].
amount
=
arr
[
insuranceFeeIndex
].
amount
.
plus
(
insuranceFee
||
0
)
}
else
{
}
else
{
arr
.
push
({
currencyId
:
this
.
insuranceFeeCurrency
,
amount
:
Decimal
(
insuranceFee
||
0
)
...
...
@@ -551,11 +532,11 @@
}
// 累加其他费用
const
otherFeeIndex
=
arr
.
findIndex
(
item
=>
item
.
currencyId
==
this
.
list
.
otherFeeCurrencyId
)
if
(
otherFeeIndex
>
-
1
)
{
const
otherFeeIndex
=
arr
.
findIndex
((
item
)
=>
item
.
currencyId
==
this
.
list
.
otherFeeCurrencyId
)
if
(
otherFeeIndex
>
-
1
)
{
arr
[
otherFeeIndex
].
amount
=
arr
[
otherFeeIndex
].
amount
.
plus
(
this
.
list
.
otherFee
||
0
)
}
else
{
if
(
this
.
list
.
otherFee
>
0
)
{
}
else
{
if
(
this
.
list
.
otherFee
>
0
)
{
arr
.
push
({
currencyId
:
this
.
list
.
otherFeeCurrencyId
,
amount
:
Decimal
(
this
.
list
.
otherFee
||
0
)
...
...
@@ -566,64 +547,72 @@
},
// 保价费单位(路线里设置,默认美元)
insuranceFeeCurrency
()
{
return
this
.
selectedRouter
?.
currencyUnit
||
1
;
},
return
this
.
selectedRouter
?.
currencyUnit
||
1
}
},
created
()
{
getCurrencyList
().
then
(
res
=>
this
.
currencyList
=
res
.
data
)
getUnitList
().
then
(
res
=>
this
.
unitList
=
res
.
data
)
getTradeCityList
().
then
(
res
=>
this
.
tradeCityList
=
res
.
data
)
getProductAttrList
().
then
(
res
=>
this
.
productAttrList
=
res
.
data
)
if
(
this
.
$route
.
query
.
offerId
)
{
getCurrencyList
().
then
((
res
)
=>
(
this
.
currencyList
=
res
.
data
)
)
getUnitList
().
then
((
res
)
=>
(
this
.
unitList
=
res
.
data
)
)
getTradeCityList
().
then
((
res
)
=>
(
this
.
tradeCityList
=
res
.
data
)
)
getProductAttrList
().
then
((
res
)
=>
(
this
.
productAttrList
=
res
.
data
)
)
if
(
this
.
$route
.
query
.
offerId
)
{
this
.
offerId
=
this
.
$route
.
query
.
offerId
this
.
getList
();
this
.
getList
()
}
},
methods
:
{
sourceLabel
(
data
){
let
label
=
''
var
source
=
this
.
customerSource
.
find
(
item
=>
item
.
value
==
data
)
if
(
source
)
label
=
this
.
$i18n
.
locale
==
'
zh_CN
'
?
source
.
label
:
source
.
labelEn
handleAddOffer
(
row
)
{
console
.
log
(
row
)
this
.
curData
=
row
this
.
customerFollowVisible
=
true
this
.
$nextTick
(()
=>
{
this
.
$refs
[
"
customerFollow
"
].
handleAdd
()
})
},
sourceLabel
(
data
)
{
let
label
=
""
var
source
=
this
.
customerSource
.
find
((
item
)
=>
item
.
value
==
data
)
if
(
source
)
label
=
this
.
$i18n
.
locale
==
"
zh_CN
"
?
source
.
label
:
source
.
labelEn
return
label
},
checkCode
(
data
)
{
if
(
!
data
)
{
return
''
checkCode
(
data
)
{
if
(
!
data
)
{
return
""
}
if
(
data
.
indexOf
(
'
+
'
)
==-
1
)
{
return
'
+
'
+
data
if
(
data
.
indexOf
(
"
+
"
)
==
-
1
)
{
return
"
+
"
+
data
}
return
data
},
getOrderData
(
id
)
{
let
that
=
this
that
.
loading
=
true
;
that
.
loading
=
true
// 执行查询
getOrder
(
id
).
then
(
response
=>
{
that
.
orderData
=
response
.
data
;
});
getOrder
(
id
).
then
((
response
)
=>
{
that
.
orderData
=
response
.
data
})
},
getProductListWithDefaultValue
()
{
getProductListWithDefaultValue
()
{
let
arr
=
[]
this
.
list
.
offerProdRespVOList
.
forEach
(
item
=>
{
this
.
list
.
offerProdRespVOList
.
forEach
((
item
)
=>
{
let
tmp
=
{
"
brand
"
:
item
.
brand
,
"
unit
"
:
item
.
unit
,
"
prodId
"
:
item
.
prodId
,
"
num
"
:
item
.
num
,
"
quantity
"
:
item
.
quantity
,
"
volume
"
:
item
.
volume
,
"
weight
"
:
item
.
weight
,
"
worth
"
:
item
.
worth
,
"
brandType
"
:
item
.
brandType
||
0
,
"
prodAttrIds
"
:
item
.
prodAttrIds
brand
:
item
.
brand
,
unit
:
item
.
unit
,
prodId
:
item
.
prodId
,
num
:
item
.
num
,
quantity
:
item
.
quantity
,
volume
:
item
.
volume
,
weight
:
item
.
weight
,
worth
:
item
.
worth
,
brandType
:
item
.
brandType
||
0
,
prodAttrIds
:
item
.
prodAttrIds
}
arr
.
push
(
tmp
)
})
return
arr
},
// 计算商品运费
calculationPrice
()
{
calculationPrice
()
{
calculationPrice
({
lineId
:
this
.
list
.
lineId
,
transportId
:
this
.
list
.
transportId
,
...
...
@@ -633,125 +622,126 @@
consignorCustomerContactsId
:
this
.
list
.
consignorCustomerContactsId
,
customsType
:
this
.
list
.
customsType
,
isCargoControl
:
this
.
list
.
control
,
orderType
:
this
.
list
.
orderType
,
}).
then
(
res
=>
{
this
.
$set
(
this
,
'
fee
'
,
res
.
data
.
costDto
)
if
(
res
.
data
.
availableDto
){
this
.
$set
(
this
,
'
couponTotalAmountList
'
,
res
.
data
.
availableDto
.
couponTotalAmountList
)
this
.
$set
(
this
,
'
couponAvailableGroupDtoList
'
,
res
.
data
.
availableDto
.
couponAvailableGroupDtoList
)
}
}).
finally
(()
=>
{
orderType
:
this
.
list
.
orderType
})
.
then
((
res
)
=>
{
this
.
$set
(
this
,
"
fee
"
,
res
.
data
.
costDto
)
if
(
res
.
data
.
availableDto
)
{
this
.
$set
(
this
,
"
couponTotalAmountList
"
,
res
.
data
.
availableDto
.
couponTotalAmountList
)
this
.
$set
(
this
,
"
couponAvailableGroupDtoList
"
,
res
.
data
.
availableDto
.
couponAvailableGroupDtoList
)
}
})
.
finally
(()
=>
{
this
.
calculating
=
false
})
},
/** 查询列表 */
getList
()
{
let
that
=
this
that
.
loading
=
true
;
that
.
loading
=
true
// 执行查询
getOffer
(
that
.
offerId
).
then
(
response
=>
{
that
.
list
=
response
.
data
;
if
(
that
.
list
.
channelId
)
{
getOffer
(
that
.
offerId
).
then
((
response
)
=>
{
that
.
list
=
response
.
data
if
(
that
.
list
.
channelId
)
{
that
.
getChannelData
()
}
that
.
calculationPrice
()
// if(that.list.orderId){
// that.getOrderData(that.list.orderId)
// }
getCustomerContactsSelect
({
ids
:
[
that
.
list
.
consignorId
,
that
.
list
.
consigneeId
].
join
(
'
,
'
)
}).
then
((
res
)
=>
{
let
consignor
=
res
.
data
.
list
.
find
(
item
=>
item
.
customerContactsId
==
that
.
list
.
consignorId
)
if
(
consignor
)
that
.
consignorData
=
consignor
let
consignee
=
res
.
data
.
list
.
find
(
item
=>
item
.
customerContactsId
==
that
.
list
.
consigneeId
)
if
(
consignee
)
that
.
consigneeData
=
consignee
getCustomerContactsSelect
({
ids
:
[
that
.
list
.
consignorId
,
that
.
list
.
consigneeId
].
join
(
"
,
"
)
}).
then
((
res
)
=>
{
let
consignor
=
res
.
data
.
list
.
find
((
item
)
=>
item
.
customerContactsId
==
that
.
list
.
consignorId
)
if
(
consignor
)
that
.
consignorData
=
consignor
let
consignee
=
res
.
data
.
list
.
find
((
item
)
=>
item
.
customerContactsId
==
that
.
list
.
consigneeId
)
if
(
consignee
)
that
.
consigneeData
=
consignee
that
.
getCnsigneeData
()
})
that
.
list
.
offerProdRespVOList
.
forEach
((
item
)
=>
{
var
arr
=
item
.
prodAttrIds
.
split
(
'
,
'
)
that
.
list
.
offerProdRespVOList
.
forEach
((
item
)
=>
{
var
arr
=
item
.
prodAttrIds
.
split
(
"
,
"
)
var
prodAttrName
=
[]
arr
.
forEach
((
itemValue
)
=>
{
var
prodAttrCenter
=
this
.
productAttrList
.
filter
(
items
=>
items
.
id
==
itemValue
)
if
(
prodAttrCenter
.
length
>
0
)
{
prodAttrName
.
push
(
this
.
$i18n
.
locale
==
'
zh_CN
'
?
prodAttrCenter
[
0
].
attrName
:
prodAttrCenter
[
0
].
attrNameEn
)
arr
.
forEach
((
itemValue
)
=>
{
var
prodAttrCenter
=
this
.
productAttrList
.
filter
((
items
)
=>
items
.
id
==
itemValue
)
if
(
prodAttrCenter
.
length
>
0
)
{
prodAttrName
.
push
(
this
.
$i18n
.
locale
==
"
zh_CN
"
?
prodAttrCenter
[
0
].
attrName
:
prodAttrCenter
[
0
].
attrNameEn
)
}
})
if
(
prodAttrName
.
length
>
1
)
{
item
.
prodAttrName
=
prodAttrName
.
join
(
'
,
'
)
}
else
if
(
prodAttrName
.
length
==
1
)
{
if
(
prodAttrName
.
length
>
1
)
{
item
.
prodAttrName
=
prodAttrName
.
join
(
"
,
"
)
}
else
if
(
prodAttrName
.
length
==
1
)
{
item
.
prodAttrName
=
prodAttrName
[
0
]
}
else
{
item
.
prodAttrName
=
''
}
else
{
item
.
prodAttrName
=
""
}
})
that
.
loading
=
false
;
that
.
loading
=
false
that
.
getOpenedRouterList
()
if
(
this
.
list
.
transportVO
.
airlineCompany
)
{
getSupplier
(
this
.
list
.
transportVO
.
airlineCompany
).
then
(
res
=>
{
if
(
res
.
data
)
{
if
(
this
.
list
.
transportVO
.
airlineCompany
)
{
getSupplier
(
this
.
list
.
transportVO
.
airlineCompany
).
then
((
res
)
=>
{
if
(
res
.
data
)
{
this
.
airlineCompany
=
res
.
data
.
companyZh
}
})
}
if
(
this
.
list
.
transportVO
.
shippingCompany
)
{
getSupplier
(
this
.
list
.
transportVO
.
shippingCompany
).
then
(
res
=>
{
if
(
res
.
data
)
{
if
(
this
.
list
.
transportVO
.
shippingCompany
)
{
getSupplier
(
this
.
list
.
transportVO
.
shippingCompany
).
then
((
res
)
=>
{
if
(
res
.
data
)
{
this
.
shippingCompany
=
res
.
data
.
companyZh
}
})
}
});
})
},
getCity
(
id
)
{
var
city
=
''
this
.
tradeCityList
.
forEach
((
item
)
=>
{
if
(
item
.
id
==
id
)
{
city
=
this
.
$i18n
.
locale
==
'
zh_CN
'
?
item
.
titleZh
:
item
.
titleEn
getCity
(
id
)
{
var
city
=
""
this
.
tradeCityList
.
forEach
((
item
)
=>
{
if
(
item
.
id
==
id
)
{
city
=
this
.
$i18n
.
locale
==
"
zh_CN
"
?
item
.
titleZh
:
item
.
titleEn
}
})
return
city
},
getChannelData
()
{
getChannel
(
this
.
list
.
channelId
).
then
(
res
=>
{
getChannelData
()
{
getChannel
(
this
.
list
.
channelId
).
then
((
res
)
=>
{
this
.
channelName
=
res
.
data
.
nameZh
})
},
// 获取路线
getOpenedRouterList
()
{
getOpenedRouterList
()
{
let
params
=
{}
if
(
this
.
list
.
departureId
)
{
if
(
this
.
list
.
departureId
)
{
params
.
startCityId
=
this
.
list
.
departureId
}
if
(
this
.
list
.
objectiveId
)
{
if
(
this
.
list
.
objectiveId
)
{
params
.
destCityId
=
this
.
list
.
objectiveId
}
getOpenedRouterList
(
params
).
then
(
res
=>
this
.
routerList
=
res
.
data
)
getOpenedRouterList
(
params
).
then
((
res
)
=>
(
this
.
routerList
=
res
.
data
)
)
},
// 根据线路id显示线路名称
getRouterNameById
(
routerId
)
{
let
router
=
this
.
routerList
.
find
(
item
=>
item
.
id
==
routerId
)
if
(
router
)
{
return
this
.
$i18n
.
locale
==
'
zh_CN
'
?
router
.
startTitleZh
:
router
.
startTitleEn
+
'
>>>
'
+
this
.
$i18n
.
locale
==
'
zh_CN
'
?
router
.
destTitleZh
:
router
.
destTitleEn
getRouterNameById
(
routerId
)
{
let
router
=
this
.
routerList
.
find
((
item
)
=>
item
.
id
==
routerId
)
if
(
router
)
{
return
this
.
$i18n
.
locale
==
"
zh_CN
"
?
router
.
startTitleZh
:
router
.
startTitleEn
+
"
>>>
"
+
this
.
$i18n
.
locale
==
"
zh_CN
"
?
router
.
destTitleZh
:
router
.
destTitleEn
}
return
'
-
'
return
"
-
"
},
// 获取发货/收货人
getCnsigneeData
()
{
getCnsigneeData
()
{
let
that
=
this
if
(
that
.
consigneeData
&&
that
.
consigneeData
.
customerId
)
{
getCustomer
(
that
.
consigneeData
.
customerId
).
then
(
result
=>
{
if
(
that
.
consigneeData
&&
that
.
consigneeData
.
customerId
)
{
getCustomer
(
that
.
consigneeData
.
customerId
).
then
((
result
)
=>
{
result
.
data
.
source
=
this
.
sourceLabel
(
result
.
data
.
source
)
that
.
$set
(
that
.
consigneeData
,
'
source
'
,
result
.
data
.
source
)
that
.
$set
(
that
.
consigneeData
,
'
address
'
,
result
.
data
.
address
)
that
.
$set
(
that
.
consigneeData
,
"
source
"
,
result
.
data
.
source
)
that
.
$set
(
that
.
consigneeData
,
"
address
"
,
result
.
data
.
address
)
})
}
if
(
that
.
consignorData
&&
that
.
consignorData
.
customerId
)
{
getCustomer
(
that
.
consignorData
.
customerId
).
then
(
ress
=>
{
if
(
that
.
consignorData
&&
that
.
consignorData
.
customerId
)
{
getCustomer
(
that
.
consignorData
.
customerId
).
then
((
ress
)
=>
{
ress
.
data
.
source
=
this
.
sourceLabel
(
ress
.
data
.
source
)
that
.
$set
(
that
.
consignorData
,
'
source
'
,
ress
.
data
.
source
)
that
.
$set
(
that
.
consignorData
,
'
address
'
,
ress
.
data
.
address
)
that
.
$set
(
that
.
consignorData
,
"
source
"
,
ress
.
data
.
source
)
that
.
$set
(
that
.
consignorData
,
"
address
"
,
ress
.
data
.
address
)
})
}
},
...
...
@@ -759,71 +749,74 @@
handleAdd
()
{
this
.
$router
.
push
({
path
:
"
/offer/logList
"
,
query
:
{
offerId
:
this
.
offerId
,
relationId
:
this
.
list
.
consignorId
query
:
{
offerId
:
this
.
offerId
,
relationId
:
this
.
list
.
consignorId
}
});
})
},
toResult
()
{
toResult
()
{
this
.
$router
.
push
({
path
:
"
/offer/result
"
,
query
:
{
offerId
:
this
.
offerId
,
number
:
this
.
list
.
number
query
:
{
offerId
:
this
.
offerId
,
number
:
this
.
list
.
number
}
});
})
},
/** 删除按钮操作 */
handleDelete
()
{
const
offerId
=
this
.
offerId
;
this
.
$confirm
(
this
.
$t
(
'
是否确认删除报价单管理编号为
'
)
+
'
"
'
+
offerId
+
'
"
'
+
this
.
$t
(
'
的数据项
'
)
+
'
?
'
).
then
(
function
()
{
return
deleteOffer
(
offerId
);
}).
then
(()
=>
{
const
offerId
=
this
.
offerId
this
.
$confirm
(
this
.
$t
(
"
是否确认删除报价单管理编号为
"
)
+
'
"
'
+
offerId
+
'
"
'
+
this
.
$t
(
"
的数据项
"
)
+
"
?
"
)
.
then
(
function
()
{
return
deleteOffer
(
offerId
)
})
.
then
(()
=>
{
this
.
$router
.
push
({
path
:
"
/offer/result
"
});
this
.
$message
.
success
(
this
.
$t
(
"
删除成功
"
));
}).
catch
(()
=>
{});
},
})
this
.
$message
.
success
(
this
.
$t
(
"
删除成功
"
))
})
.
catch
(()
=>
{})
}
}
}
</
script
>
<
style
scoped
>
.card-title
{
.card-title
{
font-size
:
18px
;
font-weight
:
bold
;
margin-top
:
10px
;
}
.offer-header
{
}
.offer-header
{
padding-bottom
:
16px
;
display
:
flex
;
align-items
:
center
;
justify-content
:
space-between
;
}
.line
{
}
.line
{
display
:
flex
;
align-items
:
center
;
}
.line
el-descriptions
{
}
.line
el-descriptions
{
flex
:
1
;
}
.btn
{
}
.btn
{
width
:
60%
;
display
:
flex
;
align-items
:
center
;
justify-content
:
space-around
;
}
.title-font
{
}
.title-font
{
font-size
:
16px
;
font-weight
:
600
;
margin-top
:
20px
;
}
.title-font
label
{
}
.title-font
label
{
margin-right
:
20px
;
}
.card
{
}
.card
{
margin-top
:
20px
;
}
}
</
style
>
src/views/ecw/offer/edit.vue
View file @
9482381f
...
...
@@ -411,7 +411,7 @@
</div>
<div
class=
"form-section"
>
<el-form-item
:label=
"$t('竞争对手')"
prop=
"competitor"
>
<el-select
clearable
v-model=
"form.competitor"
:placeholder=
"$t('请选择')"
class=
"w-200"
@
change=
"changeCompetitor"
>
<el-select
filterable
clearable
v-model=
"form.competitor"
:placeholder=
"$t('请选择')"
class=
"w-200"
@
change=
"changeCompetitor"
>
<el-option
v-for=
"item in competitorList"
:key=
"item.id"
:label=
"item.name"
:value=
"item.name"
/>
<el-option
:label=
"$t('其他')"
:value=
"0"
/>
</el-select>
...
...
@@ -1185,6 +1185,8 @@ export default {
formData
.
stopTime
=
""
}
formData
.
channelId
=
formData
.
channelId
||
null
this
.
$set
(
this
,
"
form
"
,
formData
)
// 接口只返回了发货人和收货人ID,还需要调用接口获取详细信息回显
getCustomerContactsSelect
({
...
...
src/views/ecw/offer/index.vue
View file @
9482381f
...
...
@@ -180,7 +180,7 @@
<
el
-
dropdown
-
item
@
click
.
native
=
"
$router.push('detail?offerId=' + scope.row.offerId)
"
v
-
hasPermi
=
"
['ecw:offer:show']
"
>
{{
$t
(
"
详情
"
)
}}
<
/el-dropdown-item
>
<
el
-
dropdown
-
item
@
click
.
native
=
"
$router.push('edit?id=' + scope.row.offerId)
"
v
-
if
=
"
[1, 2, 3, 7].indexOf(scope.row.status) > -1
"
v
-
hasPermi
=
"
['ecw:offer:update']
"
>
{{
$t
(
"
编辑
"
)
}}
<
/el-dropdown-item
>
<
el
-
dropdown
-
item
@
click
.
native
=
"
$router.push('create?copyId=' + scope.row.offerId)
"
v
-
if
=
"
[1, 2, 3, 7].indexOf(scope.row.status) > -1
"
v
-
hasPermi
=
"
['ecw:offer:update']
"
>
{{
$t
(
"
复制
"
)
}}
<
/el-dropdown-item
>
<
el
-
dropdown
-
item
@
click
.
native
=
"
$router.push(`logList?offerId=${scope.row.offerId
}
&customerId=${scope.row.customerId
}
`)
"
v
-
if
=
"
[1, 3, 7].indexOf(scope.row.status) > -1
"
v
-
hasPermi
=
"
['ecw:offer:loglist']
"
>
{{
$t
(
"
跟进
"
)
}}
<
/el-dropdown-item
>
<
el
-
dropdown
-
item
@
click
.
native
=
"
handleAddOffer(scope.row)
"
v
-
if
=
"
[1, 3, 7].indexOf(scope.row.status) > -1
"
>
{{
$t
(
"
跟进
"
)
}}
<
/el-dropdown-item
>
<
el
-
dropdown
-
item
@
click
.
native
=
"
$router.push(`result?offerId=${scope.row.offerId
}
&number=${scope.row.number
}
`)
"
v
-
if
=
"
[3, 7].indexOf(scope.row.status) > -1
"
v
-
hasPermi
=
"
['ecw:offer:result']
"
>
{{
$t
(
"
结果
"
)
}}
<
/el-dropdown-item
>
<
el
-
dropdown
-
item
@
click
.
native
=
"
$router.push('/offer/special?offerId=' + scope.row.offerId)
"
v
-
if
=
"
[1, 3, 7].indexOf(scope.row.status) > -1
"
v
-
hasPermi
=
"
['ecw:offer:discount', 'ecw:offer:commission']
"
>
{{
$t
(
"
特价
"
)
}}
<
/el-dropdown-item
>
<
el
-
dropdown
-
item
@
click
.
native
=
"
cancel(scope.row.offerId)
"
v
-
if
=
"
[1, 3, 7].indexOf(scope.row.status) > -1
"
v
-
hasPermi
=
"
['ecw:offer:cancel']
"
>
{{
$t
(
"
取消
"
)
}}
<
/el-dropdown-item
>
...
...
@@ -193,6 +193,7 @@
<
/el-table
>
<!--
分页组件
-->
<
pagination
v
-
show
=
"
total > 0
"
:
total
=
"
total
"
:
page
.
sync
=
"
queryParams.pageNo
"
:
limit
.
sync
=
"
queryParams.pageSize
"
@
pagination
=
"
getList
"
/>
<
CustomerFollow
ref
=
"
customerFollow
"
@
refresh
=
"
handleQuery
"
v
-
if
=
"
customerFollowVisible
"
:
customer
-
id
=
"
curData.relationId
"
:
customerService
=
"
curData.salesmanId
"
:
customerNumber
=
"
curData.customerNumber
"
:
offerId
=
"
curData.offerId
"
/>
<
/div
>
<
/template
>
...
...
@@ -205,16 +206,19 @@ import { getTradeCityList } from "@/api/ecw/region"
import
{
getWarehouseList
}
from
"
@/api/ecw/warehouse
"
import
UserSelector
from
"
@/components/UserSelector
"
import
Selector
from
"
@/components/Selector
"
import
Template
from
"
@/views/cms/template/index.vue
"
;
import
Template
from
"
@/views/cms/template/index.vue
"
import
CustomerFollow
from
"
@/views/ecw/customer/components/customerFollow
"
export
default
{
name
:
"
EcwOfferIndex
"
,
components
:
{
Template
,
Selector
,
UserSelector
UserSelector
,
CustomerFollow
}
,
data
()
{
return
{
customerFollowVisible
:
false
,
// 遮罩层
loading
:
true
,
// 导出遮罩层
...
...
@@ -259,6 +263,7 @@ export default {
cityList
:
[],
//目的仓
destWarehouseList
:
[],
curData
:
{
}
,
dept
:
false
// 是否部门订单
}
}
,
...
...
@@ -440,6 +445,14 @@ export default {
}
}
,
methods
:
{
handleAddOffer
(
row
)
{
console
.
log
(
row
)
this
.
curData
=
row
this
.
customerFollowVisible
=
true
this
.
$nextTick
(()
=>
{
this
.
$refs
[
"
customerFollow
"
].
handleAdd
()
}
)
}
,
init
()
{
//加载时发起请求获取所有省份值
getRegionList
(
1
,
1
)
...
...
src/views/ecw/offer/logListCommon.vue
View file @
9482381f
...
...
@@ -3,6 +3,7 @@
<el-card
class=
"box-card"
>
<div
slot=
"header"
class=
"clearfix"
>
<el-form
size=
"small"
:inline=
"true"
label-width=
"100px"
>
<div
class=
"search-z"
>
<el-form-item
:label=
"$t('编号')"
prop=
"number"
>
<el-input
v-model.trim=
"followForm.number"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
...
...
@@ -18,9 +19,6 @@
<el-form-item
:label=
"$t('客户经理')"
prop=
"followUserIds"
>
<user-selector
v-model=
"followForm.followUserIds"
multiple
clearable
@
input=
"handleQuery"
/>
</el-form-item>
<el-form-item
:label=
"$t('下次跟进时间')"
>
<el-date-picker
v-model=
"followFormTmp.nextTime"
type=
"datetimerange"
range-separator=
"-"
:start-placeholder=
"$t('开始日期')"
:end-placeholder=
"$t('结束日期')"
value-format=
"yyyy-MM-dd HH:mm:ss"
@
change=
"handleQuery"
>
</el-date-picker>
</el-form-item>
<el-form-item
:label=
"$t('关联跟进记录')"
prop=
"parentNumber"
>
<el-input
v-model.trim=
"followForm.parentNumber"
clearable
@
keyup.enter.native=
"handleQuery"
/>
</el-form-item>
...
...
@@ -41,14 +39,22 @@
<el-option
v-for=
"dict in getDictDatas(DICT_TYPE.CUSTOMER_FOLLOWUP_STATUS)"
:key=
"dict.value"
:label=
"isChinese ? dict.label : dict.labelEn"
:value=
"dict.value"
/>
</el-select>
</el-form-item>
<el-form-item>
</div>
<div
class=
"search-time"
>
<el-form-item
:label=
"$t('下次跟进时间')"
>
<el-date-picker
v-model=
"followFormTmp.nextTime"
type=
"datetimerange"
range-separator=
"-"
:start-placeholder=
"$t('开始日期')"
:end-placeholder=
"$t('结束日期')"
value-format=
"yyyy-MM-dd HH:mm:ss"
@
change=
"handleQuery"
>
</el-date-picker>
</el-form-item>
<el-form-item
style=
"padding-left: 20px; width: auto"
>
<div
class=
"flex-c-c"
>
<el-button
type=
"primary"
icon=
"el-icon-search"
@
click=
"getCustomerFollowList"
>
{{
$t
(
"
搜索
"
)
}}
</el-button>
<el-button
type=
"primary"
@
click=
"reset"
>
{{
$t
(
"
重置
"
)
}}
</el-button>
<el-button
type=
"success"
@
click=
"handleAdd"
v-hasPermi=
"['ecw:customer:follow-create']"
>
{{
$t
(
"
新增
"
)
}}
</el-button>
<el-button
type=
"warning"
@
click=
"handleExport"
v-hasPermi=
"['ecw:customer:follow-export']"
>
{{
$t
(
"
导出
"
)
}}
</el-button>
</div>
</el-form-item>
</div>
</el-form>
</div>
<el-table
:data=
"customerFollowList"
style=
"width: 100%"
>
...
...
@@ -60,7 +66,11 @@
<el-table-column
prop=
"followType"
:label=
"$t('跟进类型')"
:formatter=
"(row, column, cellValue) => getDictDataLabel(DICT_TYPE.CUSTOMER_FOLLOWUP_TYPE, cellValue)"
></el-table-column>
<el-table-column
prop=
"offerNumber"
:label=
"$t('报价单号')"
>
</el-table-column>
<el-table-column
prop=
"followTime"
:label=
"$t('跟进时间')"
:formatter=
"(row, column, cellValue) => parseTime(cellValue)"
></el-table-column>
<el-table-column
prop=
"customerNumber"
:label=
"$t('客户编号')"
></el-table-column>
<el-table-column
prop=
"customerNumber"
:label=
"$t('客户编号')"
>
<
template
slot-scope=
"scope"
>
<a
href=
"javascript:void(0)"
@
click=
"handleCustomerViewLink(scope.row)"
class=
"link-type"
>
{{
scope
.
row
.
customerNumber
}}
</a>
</
template
>
</el-table-column>
<el-table-column
prop=
"contactName"
:label=
"$t('联系人')"
></el-table-column>
<el-table-column
prop=
"contactPhone"
:label=
"$t('联系方式')"
></el-table-column>
<el-table-column
prop=
"followUserName"
:label=
"$t('客户经理')"
></el-table-column>
...
...
@@ -101,7 +111,7 @@
</el-table>
<pagination
:total=
"customerFollowTotal"
:page.sync=
"followForm.pageNo"
:limit.sync=
"followForm.pageSize"
@
pagination=
"getCustomerFollowList"
/>
</el-card>
<customer-follow
ref=
"customerFollow"
@
handleCustomerFollowAdd=
"handleCustomerFollowAdd"
@
refresh=
"handleQuery"
v-if=
"customerFollowVisible"
:customer-id=
"customerId"
:
offerId=
"offerId
"
/>
<customer-follow
ref=
"customerFollow"
@
handleCustomerFollowAdd=
"handleCustomerFollowAdd"
@
refresh=
"handleQuery"
v-if=
"customerFollowVisible"
:customer-id=
"customerId"
:
customerService=
"customerService"
:customerNumber=
"customerNumber
"
/>
</div>
</template>
...
...
@@ -112,7 +122,7 @@ import UserSelector from "@/components/UserSelector"
export
default
{
name
:
"
logListCommon
"
,
components
:
{
UserSelector
,
CustomerFollow
},
props
:
[
"
customerId
"
,
"
offerId
"
],
props
:
[
"
customerId
"
,
"
offerId
"
,
"
customerService
"
,
"
customerNumber
"
],
data
()
{
return
{
customerFollowVisible
:
false
,
...
...
@@ -172,6 +182,9 @@ export default {
this
.
$refs
[
"
customerFollow
"
].
handleView
(
row
)
})
},
handleCustomerViewLink
(
row
)
{
this
.
$router
.
push
(
`/customer/query/
${
row
.
customerId
}
`
)
},
formatQuery
()
{
let
obj
=
{}
obj
.
customerId
=
this
.
customerId
||
null
...
...
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