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
e8a0b0a9
Commit
e8a0b0a9
authored
Jun 21, 2022
by
Marcus
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
客户跟进
parent
7d0dedcf
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
195 additions
and
11 deletions
+195
-11
customerContacts.js
src/api/ecw/customerContacts.js
+8
-0
customerFollow.js
src/api/ecw/customerFollow.js
+54
-0
dict.js
src/utils/dict.js
+2
-0
query.vue
src/views/ecw/customer/query.vue
+131
-11
No files found.
src/api/ecw/customerContacts.js
View file @
e8a0b0a9
...
@@ -34,6 +34,14 @@ export function getCustomerContacts(id) {
...
@@ -34,6 +34,14 @@ export function getCustomerContacts(id) {
})
})
}
}
// 获得客户联系人列表
export
function
getCustomerContactsList
()
{
return
request
({
url
:
'
/ecw/customer-contacts/page
'
,
method
:
'
get
'
})
}
// 获得客户联系人分页
// 获得客户联系人分页
export
function
getCustomerContactsPage
(
query
)
{
export
function
getCustomerContactsPage
(
query
)
{
return
request
({
return
request
({
...
...
src/api/ecw/customerFollow.js
0 → 100644
View file @
e8a0b0a9
import
request
from
'
@/utils/request
'
// 创建跟进
export
function
createCustomerFollow
(
data
)
{
return
request
({
url
:
'
/ecw/customer-follow/create
'
,
method
:
'
post
'
,
data
:
data
})
}
// 更新跟进
export
function
updateCustomerFollow
(
data
)
{
return
request
({
url
:
'
/ecw/customer-follow/update
'
,
method
:
'
put
'
,
data
:
data
})
}
// 删除跟进
export
function
deleteCustomerFollow
(
id
)
{
return
request
({
url
:
'
/ecw/customer-follow/delete?id=
'
+
id
,
method
:
'
delete
'
})
}
// 获得跟进
export
function
getCustomerFollow
(
id
)
{
return
request
({
url
:
'
/ecw/customer-follow/get?id=
'
+
id
,
method
:
'
get
'
})
}
// 获得跟进分页
export
function
getCustomerFollowPage
(
query
)
{
return
request
({
url
:
'
/ecw/customer-follow/page
'
,
method
:
'
get
'
,
params
:
query
})
}
// 导出跟进 Excel
export
function
exportCustomerFollowExcel
(
query
)
{
return
request
({
url
:
'
/ecw/customer-follow/export-excel
'
,
method
:
'
get
'
,
params
:
query
,
responseType
:
'
blob
'
})
}
src/utils/dict.js
View file @
e8a0b0a9
...
@@ -100,6 +100,8 @@ export const DICT_TYPE = {
...
@@ -100,6 +100,8 @@ export const DICT_TYPE = {
AREA_CODE
:
'
area_code
'
,
// 区号
AREA_CODE
:
'
area_code
'
,
// 区号
SOCIAL
:
'
customer_social_tools
'
,
// 社交软件
SOCIAL
:
'
customer_social_tools
'
,
// 社交软件
IS_DEFAULT
:
'
is_default
'
,
// 默认联系人
IS_DEFAULT
:
'
is_default
'
,
// 默认联系人
CUSTOMER_FOLLOW_TYPE
:
'
customer_follow_type
'
,
// 跟进类型
CUSTOMER_FOLLOW_METHOD
:
'
customer_follow_method
'
,
// 跟进方式
COMMISSION_PRODUCT_APPROVAL
:
'
commission_product_approval
'
,
//佣金备案
COMMISSION_PRODUCT_APPROVAL
:
'
commission_product_approval
'
,
//佣金备案
SHIPPING_DECLARATION_TYPE
:
'
shipping_declaration_type
'
,
//出货报关方式(与订单报关方式相同)
SHIPPING_DECLARATION_TYPE
:
'
shipping_declaration_type
'
,
//出货报关方式(与订单报关方式相同)
COMMISSION_TYPE
:
'
commission_type
'
,
//佣金类型
COMMISSION_TYPE
:
'
commission_type
'
,
//佣金类型
...
...
src/views/ecw/customer/query.vue
View file @
e8a0b0a9
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
<el-button
type=
"primary"
size=
"small"
>
添加优惠
</el-button>
<el-button
type=
"primary"
size=
"small"
>
添加优惠
</el-button>
<el-button
type=
"primary"
size=
"small"
@
click=
"$router.push('/customer/edit/' + customerId)"
>
编辑
</el-button>
<el-button
type=
"primary"
size=
"small"
@
click=
"$router.push('/customer/edit/' + customerId)"
>
编辑
</el-button>
<el-button
type=
"primary"
size=
"small"
>
报价
</el-button>
<el-button
type=
"primary"
size=
"small"
>
报价
</el-button>
<el-button
type=
"primary"
size=
"small"
>
跟进
</el-button>
<el-button
type=
"primary"
size=
"small"
@
click=
"customerFollow.dialogVisible = true"
>
跟进
</el-button>
<el-button
type=
"primary"
size=
"small"
>
客诉
</el-button>
<el-button
type=
"primary"
size=
"small"
>
客诉
</el-button>
<el-button
type=
"danger"
size=
"small"
>
删除
</el-button>
<el-button
type=
"danger"
size=
"small"
>
删除
</el-button>
</div>
</div>
...
@@ -94,7 +94,7 @@
...
@@ -94,7 +94,7 @@
<el-tabs
style=
"margin-top: 15px"
type=
"border-card"
>
<el-tabs
style=
"margin-top: 15px"
type=
"border-card"
>
<el-tab-pane
label=
"订单"
>
<el-tab-pane
label=
"订单"
>
订单
</el-tab-pane>
</el-tab-pane>
<el-tab-pane
label=
"报价"
>
<el-tab-pane
label=
"报价"
>
<el-table
<el-table
...
@@ -145,7 +145,7 @@
...
@@ -145,7 +145,7 @@
</el-tab-pane>
</el-tab-pane>
<el-tab-pane
label=
"跟进"
>
<el-tab-pane
label=
"跟进"
>
<el-table
<el-table
:data=
"
[]
"
:data=
"
customerFollowList
"
style=
"width: 100%"
style=
"width: 100%"
>
>
<el-table-column
<el-table-column
...
@@ -154,37 +154,37 @@
...
@@ -154,37 +154,37 @@
>
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
prop=
""
prop=
"
followType
"
label=
"跟进类型"
label=
"跟进类型"
>
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
prop=
""
prop=
"
contactName
"
label=
"联系人"
label=
"联系人"
>
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
prop=
""
prop=
"
followMethod
"
label=
"跟进方式"
label=
"跟进方式"
>
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
prop=
""
prop=
"
followTime
"
label=
"跟进时间"
label=
"跟进时间"
>
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
prop=
""
prop=
"
feedback
"
label=
"客户反馈"
label=
"客户反馈"
>
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
prop=
""
prop=
"
result
"
label=
"处理结果"
label=
"处理结果"
>
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
prop=
""
prop=
"
followUserId
"
label=
"跟进业务"
label=
"跟进业务"
>
>
</el-table-column>
</el-table-column>
...
@@ -285,6 +285,70 @@
...
@@ -285,6 +285,70 @@
</el-col>
</el-col>
</el-row>
</el-row>
<el-dialog
title=
"客户跟进"
:visible.sync=
"customerFollow.dialogVisible"
:close-on-click-modal=
"false"
width=
"680px"
>
<el-form
ref=
"customerFollowForm"
:model=
"customerFollow.form"
label-width=
"80px"
>
<el-row
:gutter=
"10"
>
<el-col>
<el-form-item
label=
"跟进类型"
required
>
<dict-selector
form-type=
"radio"
v-model=
"customerFollow.form.followType"
:type=
"DICT_TYPE.CUSTOMER_FOLLOW_TYPE"
></dict-selector>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"跟进时间"
required
>
<el-date-picker
v-model=
"customerFollow.form.followTime"
type=
"datetime"
placeholder=
"选择跟进时间"
></el-date-picker>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"联系人"
required
>
<el-select
v-model=
"customerFollow.form.contactName"
placeholder=
"请选择"
>
<el-option
v-for=
"item in customerContactsList"
:key=
"item.name"
:label=
"item.name"
:value=
"item.name"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"跟进业务"
required
>
<el-select
v-model=
"customerFollow.form.followUserId"
placeholder=
"请选择"
>
<el-option
v-for=
"item in serviceUserList"
:key=
"item.id"
:label=
"item.nickname"
:value=
"item.id"
>
</el-option>
</el-select>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"跟进方式"
required
>
<dict-selector
v-model=
"customerFollow.form.followMethod"
:type=
"DICT_TYPE.CUSTOMER_FOLLOW_METHOD"
></dict-selector>
</el-form-item>
</el-col>
<el-col>
<el-form-item
label=
"客户反馈"
required
>
<el-input
type=
"textarea"
v-model=
"customerFollow.form.feedback"
></el-input>
</el-form-item>
</el-col>
<el-col>
<el-form-item
label=
"处理结果"
required
>
<el-input
type=
"textarea"
v-model=
"customerFollow.form.result"
></el-input>
</el-form-item>
</el-col>
</el-row>
</el-form>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"customerFollow.dialogVisible = false"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"customerFollowSubmit"
>
确 定
</el-button>
</span>
</el-dialog>
</div>
</div>
</template>
</template>
...
@@ -293,12 +357,19 @@ import { getCustomer } from '@/api/ecw/customer'
...
@@ -293,12 +357,19 @@ import { getCustomer } from '@/api/ecw/customer'
import
{
DICT_TYPE
,
getDictDataLabel
}
from
'
@/utils/dict
'
import
{
DICT_TYPE
,
getDictDataLabel
}
from
'
@/utils/dict
'
import
{
getProductTypeList
}
from
'
@/api/ecw/productType
'
import
{
getProductTypeList
}
from
'
@/api/ecw/productType
'
import
{
getNodeList
}
from
'
@/api/ecw/node
'
import
{
getNodeList
}
from
'
@/api/ecw/node
'
import
DictSelector
from
"
../../../components/DictSelector
"
import
{
getCustomerContactsList
}
from
"
../../../api/ecw/customerContacts
"
import
{
listServiceUser
}
from
"
../../../api/system/user
"
import
{
createCustomerFollow
,
getCustomerFollowPage
}
from
"
../../../api/ecw/customerFollow
"
export
default
{
export
default
{
name
:
'
query
'
,
name
:
'
query
'
,
props
:
{
props
:
{
customerId
:
String
customerId
:
String
},
},
components
:
{
DictSelector
},
created
()
{
created
()
{
getNodeList
().
then
(
r
=>
{
getNodeList
().
then
(
r
=>
{
this
.
nodeList
=
r
.
data
this
.
nodeList
=
r
.
data
...
@@ -309,6 +380,16 @@ export default {
...
@@ -309,6 +380,16 @@ export default {
getProductTypeList
().
then
(
r
=>
{
getProductTypeList
().
then
(
r
=>
{
this
.
productTypeList
=
r
.
data
this
.
productTypeList
=
r
.
data
})
})
this
.
resetCustomerFollowForm
()
getCustomerContactsList
().
then
(
r
=>
{
// todo 接口不对,分页了
this
.
customerContactsList
=
r
.
data
.
list
})
listServiceUser
().
then
(
r
=>
{
this
.
serviceUserList
=
r
.
data
})
this
.
getCustomerFollowList
()
},
},
data
()
{
data
()
{
return
{
return
{
...
@@ -316,6 +397,9 @@ export default {
...
@@ -316,6 +397,9 @@ export default {
getDictDataLabel
,
getDictDataLabel
,
nodeList
:
[],
nodeList
:
[],
productTypeList
:
[],
productTypeList
:
[],
customerContactsList
:
[],
serviceUserList
:
[],
customerFollowList
:
[],
customer
:
{
customer
:
{
id
:
undefined
,
id
:
undefined
,
number
:
undefined
,
number
:
undefined
,
...
@@ -353,11 +437,47 @@ export default {
...
@@ -353,11 +437,47 @@ export default {
arrivalConfirm
:
undefined
,
arrivalConfirm
:
undefined
,
weightUnit
:
undefined
,
weightUnit
:
undefined
,
createTime
:
undefined
createTime
:
undefined
}
},
customerFollow
:
{
dialogVisible
:
true
,
form
:
{}
},
}
}
},
},
methods
:
{
methods
:
{
customerFollowSubmit
()
{
this
.
$refs
[
"
customerFollowForm
"
].
validate
(
valid
=>
{
if
(
!
valid
)
{
return
}
createCustomerFollow
(
this
.
customerFollow
.
form
).
then
(
r
=>
{
this
.
resetCustomerFollowForm
()
this
.
getCustomerFollowList
()
this
.
customerFollow
.
dialogVisible
=
false
})
})
},
resetCustomerFollowForm
()
{
this
.
customerFollow
.
form
=
{
"
bizId
"
:
this
.
customerId
,
"
contactName
"
:
undefined
,
"
feedback
"
:
undefined
,
"
followMethod
"
:
undefined
,
"
followTime
"
:
undefined
,
"
followType
"
:
undefined
,
"
followUserId
"
:
undefined
,
"
result
"
:
undefined
}
},
getCustomerFollowList
()
{
getCustomerFollowPage
({
bizId
:
this
.
customerId
}).
then
(
r
=>
{
this
.
customerFollowList
=
r
.
data
.
list
})
}
},
},
computed
:
{
computed
:
{
productType
(){
productType
(){
...
...
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