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
39c63e34
Commit
39c63e34
authored
Oct 27, 2024
by
1483922988@qq.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
客户编辑产品类型多选,主要竞争对手其他回显,客户跟进记录,报价单相关
parent
d625d224
Changes
6
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
467 additions
and
563 deletions
+467
-563
customerFollow.js
src/api/ecw/customerFollow.js
+32
-26
customerFollow.vue
src/views/ecw/customer/components/customerFollow.vue
+187
-271
edit.vue
src/views/ecw/customer/edit.vue
+15
-8
query.vue
src/views/ecw/customer/query.vue
+9
-155
logList.vue
src/views/ecw/offer/logList.vue
+8
-103
logListCommon.vue
src/views/ecw/offer/logListCommon.vue
+216
-0
No files found.
src/api/ecw/customerFollow.js
View file @
39c63e34
import
request
from
'
@/utils/request
'
import
request
from
"
@/utils/request
"
// 创建跟进
// 创建跟进
export
function
createCustomerFollow
(
data
)
{
export
function
createCustomerFollow
(
data
)
{
return
request
({
return
request
({
url
:
'
/ecw/customer-follow/create
'
,
url
:
"
/ecw/customer-follow/create
"
,
method
:
'
post
'
,
method
:
"
post
"
,
data
:
data
data
:
data
})
})
}
}
...
@@ -12,8 +12,8 @@ export function createCustomerFollow(data) {
...
@@ -12,8 +12,8 @@ export function createCustomerFollow(data) {
// 更新跟进
// 更新跟进
export
function
updateCustomerFollow
(
data
)
{
export
function
updateCustomerFollow
(
data
)
{
return
request
({
return
request
({
url
:
'
/ecw/customer-follow/update
'
,
url
:
"
/ecw/customer-follow/update
"
,
method
:
'
put
'
,
method
:
"
put
"
,
data
:
data
data
:
data
})
})
}
}
...
@@ -21,31 +21,31 @@ export function updateCustomerFollow(data) {
...
@@ -21,31 +21,31 @@ export function updateCustomerFollow(data) {
// 删除跟进
// 删除跟进
export
function
deleteCustomerFollow
(
id
)
{
export
function
deleteCustomerFollow
(
id
)
{
return
request
({
return
request
({
url
:
'
/ecw/customer-follow/delete?id=
'
+
id
,
url
:
"
/ecw/customer-follow/delete?id=
"
+
id
,
method
:
'
delete
'
method
:
"
delete
"
})
})
}
}
// 获得跟进
// 获得跟进
export
function
getCustomerFollow
(
id
)
{
export
function
getCustomerFollow
(
id
)
{
return
request
({
return
request
({
url
:
'
/ecw/customer-follow/get?id=
'
+
id
,
url
:
"
/ecw/customer-follow/get?id=
"
+
id
,
method
:
'
get
'
method
:
"
get
"
})
})
}
}
// 获得跟进分页
// 获得跟进分页
export
function
getCustomerFollowPage
(
query
)
{
export
function
getCustomerFollowPage
(
query
)
{
return
request
({
return
request
({
url
:
'
/customer/detail/infoList/followPage
'
,
url
:
"
/customer/detail/infoList/followPage
"
,
method
:
'
get
'
,
method
:
"
get
"
,
params
:
query
params
:
query
})
})
}
}
export
function
getCustomerFollowPage2
(
query
)
{
export
function
getCustomerFollowPage2
(
query
)
{
return
request
({
return
request
({
url
:
'
/ecw/customer-follow/page
'
,
url
:
"
/ecw/customer-follow/page
"
,
method
:
'
get
'
,
method
:
"
get
"
,
params
:
query
params
:
query
})
})
}
}
...
@@ -53,50 +53,56 @@ export function getCustomerFollowPage2(query) {
...
@@ -53,50 +53,56 @@ export function getCustomerFollowPage2(query) {
// 导出跟进 Excel
// 导出跟进 Excel
export
function
exportCustomerFollowExcel
(
query
)
{
export
function
exportCustomerFollowExcel
(
query
)
{
return
request
({
return
request
({
url
:
'
/ecw/customer-follow/export-excel
'
,
url
:
"
/ecw/customer-follow/export-excel
"
,
method
:
'
get
'
,
method
:
"
get
"
,
params
:
query
,
params
:
query
,
responseType
:
'
blob
'
responseType
:
"
blob
"
})
})
}
}
export
function
getCustomerFollowList
(
params
)
{
export
function
getCustomerFollowList
(
params
)
{
return
request
({
return
request
({
url
:
'
/customer/followup/page
'
,
url
:
"
/customer/followup/page
"
,
method
:
'
get
'
,
method
:
"
get
"
,
params
params
})
})
}
}
export
function
getCustomerFollowDetail
(
params
)
{
export
function
getCustomerFollowDetail
(
params
)
{
return
request
({
return
request
({
url
:
'
/customer/followup/get
'
,
url
:
"
/customer/followup/get
"
,
method
:
'
get
'
,
method
:
"
get
"
,
params
params
})
})
}
}
export
function
addCustomerFollow
(
data
)
{
export
function
addCustomerFollow
(
data
)
{
return
request
({
return
request
({
url
:
'
/customer/followup/create
'
,
url
:
"
/customer/followup/create
"
,
method
:
'
post
'
,
method
:
"
post
"
,
data
data
})
})
}
}
export
function
editCustomerFollow
(
data
)
{
export
function
editCustomerFollow
(
data
)
{
return
request
({
return
request
({
url
:
'
/customer/followup/update
'
,
url
:
"
/customer/followup/update
"
,
method
:
'
put
'
,
method
:
"
put
"
,
data
data
})
})
}
}
export
function
exportCustomerFollow
(
params
)
{
export
function
exportCustomerFollow
(
params
)
{
return
request
({
return
request
({
url
:
'
/customer/followup/export-excel
'
,
url
:
"
/customer/followup/export-excel
"
,
method
:
'
get
'
,
method
:
"
get
"
,
params
params
})
})
}
}
export
function
getFollowupNewNumber
()
{
return
request
({
url
:
"
/customer/followup/getFollowupNewNumber
"
,
method
:
"
get
"
})
}
src/views/ecw/customer/components/customerFollow.vue
View file @
39c63e34
This diff is collapsed.
Click to expand it.
src/views/ecw/customer/edit.vue
View file @
39c63e34
...
@@ -213,10 +213,10 @@
...
@@ -213,10 +213,10 @@
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
:label=
"$t('主营类别')"
prop=
"productType"
>
<el-form-item
:label=
"$t('主营类别')"
prop=
"productType
s
"
>
<el-row
:gutter=
"10"
>
<el-row
:gutter=
"10"
>
<el-col
:span=
"11"
>
<el-col
:span=
"11"
>
<el-select
@
change=
"change"
v-model=
"form.productType
"
:placeholder=
"$t('请选择产品类别')"
>
<el-select
@
change=
"change"
v-model=
"form.productType
s"
multiple
:placeholder=
"$t('请选择产品类别')"
>
<el-option
:label=
"isChinese ? item.titleZh : item.titleEn"
:value=
"item.id"
v-for=
"item in productTypeList"
:key=
"item.id"
/>
<el-option
:label=
"isChinese ? item.titleZh : item.titleEn"
:value=
"item.id"
v-for=
"item in productTypeList"
:key=
"item.id"
/>
</el-select>
</el-select>
</el-col>
</el-col>
...
@@ -804,7 +804,7 @@ export default {
...
@@ -804,7 +804,7 @@ export default {
trigger
:
"
change
"
trigger
:
"
change
"
}
}
],
],
productType
:
[
productType
s
:
[
{
{
required
:
true
,
required
:
true
,
message
:
this
.
$t
(
"
请选择产品类别
"
),
message
:
this
.
$t
(
"
请选择产品类别
"
),
...
@@ -873,7 +873,7 @@ export default {
...
@@ -873,7 +873,7 @@ export default {
this
.
getProductListFn
(
val
)
this
.
getProductListFn
(
val
)
},
},
getProductListFn
(
val
)
{
getProductListFn
(
val
)
{
getProductList
({
typeId
:
val
}).
then
((
r
)
=>
{
getProductList
({
typeId
s
:
val
}).
then
((
r
)
=>
{
this
.
productList
=
r
.
data
this
.
productList
=
r
.
data
})
})
},
},
...
@@ -1040,6 +1040,7 @@ export default {
...
@@ -1040,6 +1040,7 @@ export default {
roles
:
(
this
.
form
.
roles
||
[])?.
join
(
"
,
"
),
roles
:
(
this
.
form
.
roles
||
[])?.
join
(
"
,
"
),
pickupPoints
:
(
this
.
form
.
pickupPoints
||
[])?.
join
(
"
,
"
),
pickupPoints
:
(
this
.
form
.
pickupPoints
||
[])?.
join
(
"
,
"
),
productIds
:
(
this
.
form
.
productIds
||
[])?.
join
(
"
,
"
),
productIds
:
(
this
.
form
.
productIds
||
[])?.
join
(
"
,
"
),
productTypes
:
(
this
.
form
.
productTypes
||
[])?.
join
(
"
,
"
),
busiCountryIds
:
(
this
.
form
.
busiCountryIds
||
[])?.
join
(
"
,
"
),
busiCountryIds
:
(
this
.
form
.
busiCountryIds
||
[])?.
join
(
"
,
"
),
noConsignee
:
undefined
,
noConsignee
:
undefined
,
defaultPay
:
undefined
,
defaultPay
:
undefined
,
...
@@ -1187,7 +1188,8 @@ export default {
...
@@ -1187,7 +1188,8 @@ export default {
pickupPoints
:
this
.
stringArrToNumberArr
(
response
.
data
.
pickupPoints
),
pickupPoints
:
this
.
stringArrToNumberArr
(
response
.
data
.
pickupPoints
),
productIds
:
this
.
stringArrToNumberArr
(
response
.
data
.
productIds
),
productIds
:
this
.
stringArrToNumberArr
(
response
.
data
.
productIds
),
busiCountryIds
:
this
.
stringArrToNumberArr
(
response
.
data
.
busiCountryIds
),
busiCountryIds
:
this
.
stringArrToNumberArr
(
response
.
data
.
busiCountryIds
),
competitorIds
:
Number
(
response
.
data
.
competitorIds
)
competitorIds
:
Number
(
response
.
data
.
competitorIds
),
productTypes
:
response
.
data
.
productTypes
?
response
.
data
.
productTypes
.
split
(
"
,
"
)
:
[]
}
}
if
(
this
.
form
.
productType
)
{
if
(
this
.
form
.
productType
)
{
console
.
log
(
"
1231
"
,
this
.
form
.
productType
)
console
.
log
(
"
1231
"
,
this
.
form
.
productType
)
...
@@ -1259,9 +1261,12 @@ export default {
...
@@ -1259,9 +1261,12 @@ export default {
if
(
!
this
.
form
.
lightUnit
)
this
.
form
.
lightUnit
=
r
.
data
.
paoEdge
if
(
!
this
.
form
.
lightUnit
)
this
.
form
.
lightUnit
=
r
.
data
.
paoEdge
})
})
},
},
getCompetitorList
()
{
getCompetitorList
(
callback
)
{
competitorListAll
().
then
((
r
)
=>
{
competitorListAll
().
then
((
r
)
=>
{
this
.
competitorList
=
r
.
data
this
.
competitorList
=
r
.
data
this
.
$nextTick
(()
=>
{
callback
&&
callback
()
})
})
})
},
},
changeCompetitor
(
val
)
{
changeCompetitor
(
val
)
{
...
@@ -1273,9 +1278,11 @@ export default {
...
@@ -1273,9 +1278,11 @@ export default {
console
.
log
(
data
)
console
.
log
(
data
)
addCompetitor
({
addCompetitor
({
name
:
data
.
value
name
:
data
.
value
}).
then
((
_
)
=>
{
}).
then
((
r
)
=>
{
this
.
$message
.
success
(
"
添加成功!
"
)
this
.
$message
.
success
(
"
添加成功!
"
)
this
.
getCompetitorList
()
this
.
getCompetitorList
(()
=>
{
this
.
form
.
competitorIds
=
r
.
data
})
})
})
})
})
}
}
...
...
src/views/ecw/customer/query.vue
View file @
39c63e34
This diff is collapsed.
Click to expand it.
src/views/ecw/offer/logList.vue
View file @
39c63e34
<
template
>
<
template
>
<div
class=
"app-container"
>
<div
class=
"app-container"
>
<el-card>
<logListCommon
:offerId=
"offerId"
/>
<div
slot=
"header"
class=
"card-title"
>
{{
$t
(
"
跟进记录列表
"
)
}}
</div>
<!-- 列表 -->
<div
class=
"offer-header"
>
<span
style=
"font-size: 15px"
>
{{
$t
(
"
报价单号
"
)
}}
:
{{
number
}}
</span>
<el-button
type=
"primary"
plain
icon=
"el-icon-plus"
size=
"mini"
@
click=
"handleAdd"
>
{{
$t
(
"
新增
"
)
}}
</el-button>
</div>
<el-table
v-loading=
"loading"
:data=
"list"
>
<el-table-column
:label=
"$t('序号')"
align=
"center"
prop=
"id"
type=
"index"
>
<template
slot-scope=
"scope"
>
<span>
{{
scope
.
$index
+
1
}}
</span>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('跟进类型')"
align=
"center"
prop=
"type"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.ECW_OFFER_TYPE"
:value=
"scope.row.type"
></dict-tag>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('联系人')"
align=
"center"
prop=
"contactName"
/>
<el-table-column
:label=
"$t('跟进方式')"
align=
"center"
prop=
"followUpMethod"
>
<
template
slot-scope=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.CUSTOMER_FOLLOW_METHOD"
:value=
"scope.row.followUpMethod"
></dict-tag>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('跟进时间')"
align=
"center"
prop=
"followUpTime"
width=
"180"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
followUpTime
}}
</span>
</
template
>
</el-table-column>
<el-table-column
:label=
"$t('客户反馈')"
align=
"center"
prop=
"customerFeedback"
/>
<el-table-column
:label=
"$t('处理结果')"
align=
"center"
prop=
"processingResults"
/>
<el-table-column
:label=
"$t('客户经理')"
align=
"center"
prop=
"followUpSalesmanName"
>
<
template
slot-scope=
"scope"
>
<span>
{{
getCustomerService
(
scope
.
row
.
followUpSalesmanId
)
}}
</span>
</
template
>
</el-table-column>
</el-table>
<pagination
v-show=
"total > 0"
:total=
"total"
:page.sync=
"params.page"
:limit.sync=
"params.rows"
@
pagination=
"getList"
/>
</el-card>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
{
getOfferLogPage
}
from
"
@/api/ecw/offerLog
"
import
logListCommon
from
"
@/views/ecw/offer/logListCommon
"
import
{
DICT_TYPE
}
from
"
@/utils/dict
"
import
{
getOffer
}
from
"
@/api/ecw/offer
"
import
{
userList
}
from
"
@/api/system/user
"
export
default
{
export
default
{
name
:
"
OfferLog
"
,
name
:
"
offerLogList
"
,
components
:
{},
components
:
{
logListCommon
},
data
()
{
data
()
{
return
{
return
{}
// 遮罩层
loading
:
true
,
list
:
[],
total
:
0
,
params
:
{
page
:
1
,
rows
:
20
,
offerId
:
0
,
type
:
2
},
number
:
""
,
relationId
:
0
,
creatorName
:
"
test
"
,
creatorData
:
[]
}
},
created
()
{
if
(
this
.
$route
.
query
.
offerId
)
{
this
.
params
.
offerId
=
this
.
$route
.
query
.
offerId
this
.
getList
()
this
.
getRelationID
()
}
userList
(
"
customer service
"
).
then
((
res
)
=>
(
this
.
creatorData
=
res
.
data
))
},
},
methods
:
{
computed
:
{
/** 查询列表 */
offerId
()
{
getList
()
{
return
parseInt
(
this
.
$route
.
query
.
offerId
||
0
)
this
.
loading
=
true
let
params
=
{
...
this
.
params
}
// 执行查询
getOfferLogPage
(
params
).
then
((
response
)
=>
{
this
.
list
=
response
.
data
.
list
this
.
total
=
response
.
data
.
total
this
.
loading
=
false
})
},
getCustomerService
(
id
)
{
var
user
=
this
.
creatorData
.
find
((
item
)
=>
item
.
id
==
id
)
if
(
user
)
return
user
.
nickname
return
""
},
getRelationID
()
{
getOffer
(
this
.
params
.
offerId
).
then
((
response
)
=>
{
this
.
relationId
=
response
.
data
.
consignorId
this
.
number
=
response
.
data
.
number
})
},
/** 新增按钮操作 */
handleAdd
()
{
this
.
$router
.
push
({
path
:
"
/offer/createLog
"
,
query
:
{
offerId
:
this
.
params
.
offerId
,
number
:
this
.
number
}
})
}
}
}
}
}
}
...
...
src/views/ecw/offer/logListCommon.vue
0 → 100644
View file @
39c63e34
This diff is collapsed.
Click to expand it.
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