Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
phsl
/
admin
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
7c0c6515
authored
Jan 20, 2024
by
dhb52
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: backlog 分配给我的线索、客户
parent
24e8bd4c
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
274 additions
and
15 deletions
+274
-15
src/views/crm/backlog/tables/FollowCustomer.vue
+154
-7
src/views/crm/backlog/tables/FollowLeads.vue
+120
-8
No files found.
src/views/crm/backlog/tables/FollowCustomer.vue
View file @
7c0c6515
<!-- 分配给我的客户 -->
<!-- 分配给我的客户 -->
<!-- TODO: 后续再统一改名字 -->
<
template
>
<
template
>
<div>
<ContentWrap>
TODO: 分配给我的客户
<div
class=
"pb-5 text-xl"
>
分配给我的客户
</div>
</div>
<!-- 搜索工作栏 -->
<el-form
ref=
"queryFormRef"
:inline=
"true"
:model=
"queryParams"
class=
"-mb-15px"
label-width=
"68px"
>
<el-form-item
label=
"状态"
prop=
"followUpStatus"
>
<el-select
v-model=
"queryParams.followUpStatus"
class=
"!w-240px"
placeholder=
"状态"
@
change=
"handleQuery"
>
<el-option
v-for=
"(option, index) in FOLLOWUP_STATUS"
:label=
"option.label"
:value=
"option.value"
:key=
"index"
/>
</el-select>
</el-form-item>
</el-form>
</ContentWrap>
<!-- 列表 -->
<ContentWrap>
<el-table
v-loading=
"loading"
:data=
"list"
:show-overflow-tooltip=
"true"
:stripe=
"true"
>
<el-table-column
align=
"center"
label=
"编号"
prop=
"id"
/>
<el-table-column
align=
"center"
label=
"客户名称"
prop=
"name"
width=
"160"
>
<template
#
default=
"scope"
>
<el-link
:underline=
"false"
type=
"primary"
@
click=
"openDetail(scope.row.id)"
>
{{
scope
.
row
.
name
}}
</el-link>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"手机"
prop=
"mobile"
width=
"120"
/>
<el-table-column
align=
"center"
label=
"电话"
prop=
"telephone"
width=
"120"
/>
<el-table-column
align=
"center"
label=
"客户来源"
prop=
"source"
width=
"100"
>
<
template
#
default=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.CRM_CUSTOMER_SOURCE"
:value=
"scope.row.source"
/>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"所属行业"
prop=
"industryId"
width=
"120"
>
<
template
#
default=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.CRM_CUSTOMER_INDUSTRY"
:value=
"scope.row.industryId"
/>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"客户等级"
prop=
"level"
width=
"120"
>
<
template
#
default=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.CRM_CUSTOMER_LEVEL"
:value=
"scope.row.level"
/>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"网址"
prop=
"website"
width=
"200"
/>
<el-table-column
:formatter=
"dateFormatter"
align=
"center"
label=
"下次联系时间"
prop=
"contactNextTime"
width=
"180px"
/>
<el-table-column
align=
"center"
label=
"备注"
prop=
"remark"
width=
"200"
/>
<el-table-column
align=
"center"
label=
"成交状态"
prop=
"dealStatus"
>
<
template
#
default=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
:value=
"scope.row.dealStatus"
/>
</
template
>
</el-table-column>
<el-table-column
align=
"center"
label=
"距离进入公海"
prop=
"poolDay"
>
<
template
#
default=
"scope"
>
{{
scope
.
row
.
poolDay
}}
天
</
template
>
</el-table-column>
<el-table-column
:formatter=
"dateFormatter"
align=
"center"
label=
"最后跟进时间"
prop=
"contactLastTime"
width=
"180px"
/>
<el-table-column
:formatter=
"dateFormatter"
align=
"center"
label=
"创建时间"
prop=
"updateTime"
width=
"180px"
/>
<el-table-column
:formatter=
"dateFormatter"
align=
"center"
label=
"创建时间"
prop=
"createTime"
width=
"180px"
/>
<el-table-column
align=
"center"
label=
"负责人"
prop=
"ownerUserName"
width=
"100px"
/>
<el-table-column
align=
"center"
label=
"所属部门"
prop=
"ownerUserDeptName"
width=
"100px"
/>
<el-table-column
align=
"center"
label=
"创建人"
prop=
"creatorName"
width=
"100px"
/>
</el-table>
<!-- 分页 -->
<Pagination
v-model:limit=
"queryParams.pageSize"
v-model:page=
"queryParams.pageNo"
:total=
"total"
@
pagination=
"getList"
/>
</ContentWrap>
</template>
</template>
<
script
setup
lang=
"ts"
name=
"FollowCustomer"
>
<
script
setup
lang=
"ts"
name=
"FollowCustomer"
>
import
{
DICT_TYPE
}
from
'@/utils/dict'
import
{
dateFormatter
}
from
'@/utils/formatTime'
import
*
as
CustomerApi
from
'@/api/crm/customer'
</
script
>
const
{
push
}
=
useRouter
()
const
FOLLOWUP_STATUS
=
[
{
label
:
'已跟进'
,
value
:
true
},
{
label
:
'待跟进'
,
value
:
false
}
]
const
loading
=
ref
(
true
)
// 列表的加载中
const
total
=
ref
(
0
)
// 列表的总页数
const
list
=
ref
([])
// 列表的数据
const
queryParams
=
ref
({
pageNo
:
1
,
pageSize
:
10
,
followUpStatus
:
false
,
sceneType
:
1
})
const
queryFormRef
=
ref
()
// 搜索的表单
/** 查询列表 */
const
getList
=
async
()
=>
{
loading
.
value
=
true
try
{
const
data
=
await
CustomerApi
.
getCustomerPage
(
queryParams
.
value
)
list
.
value
=
data
.
list
total
.
value
=
data
.
total
}
finally
{
loading
.
value
=
false
}
}
<
style
scoped
>
/** 搜索按钮操作 */
const
handleQuery
=
()
=>
{
queryParams
.
value
.
pageNo
=
1
getList
()
}
/** 打开客户详情 */
const
openDetail
=
(
id
:
number
)
=>
{
push
({
name
:
'CrmCustomerDetail'
,
params
:
{
id
}
})
}
/** 初始化 **/
onMounted
(()
=>
{
getList
()
})
</
script
>
</
style
>
<
style
scoped
><
/
style
>
src/views/crm/backlog/tables/FollowLeads.vue
View file @
7c0c6515
<!-- 分配给我的线索 -->
<!-- TODO: dhb52 待Clue页面更新后同步更新 -->
<!-- TODO: 后续再统一改名字 -->
<
template
>
<
template
>
<div>
<ContentWrap>
TODO: 分配给我的线索
<div
class=
"pb-5 text-xl"
>
分配给我的线索
</div>
</div>
<!-- 搜索工作栏 -->
<el-form
ref=
"queryFormRef"
:inline=
"true"
:model=
"queryParams"
class=
"-mb-15px"
label-width=
"68px"
>
<el-form-item
label=
"状态"
prop=
"followUpStatus"
>
<el-select
v-model=
"queryParams.followUpStatus"
class=
"!w-240px"
placeholder=
"状态"
@
change=
"handleQuery"
>
<el-option
v-for=
"(option, index) in FOLLOWUP_STATUS"
:label=
"option.label"
:value=
"option.value"
:key=
"index"
/>
</el-select>
</el-form-item>
</el-form>
</ContentWrap>
<!-- 列表 -->
<ContentWrap>
<el-table
v-loading=
"loading"
:data=
"list"
:stripe=
"true"
:show-overflow-tooltip=
"true"
>
<el-table-column
label=
"编号"
align=
"center"
prop=
"id"
/>
<el-table-column
label=
"转化状态"
align=
"center"
prop=
"transformStatus"
>
<template
#
default=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
:value=
"scope.row.transformStatus"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"跟进状态"
align=
"center"
prop=
"followUpStatus"
>
<
template
#
default=
"scope"
>
<dict-tag
:type=
"DICT_TYPE.INFRA_BOOLEAN_STRING"
:value=
"scope.row.followUpStatus"
/>
</
template
>
</el-table-column>
<el-table-column
label=
"线索名称"
align=
"center"
prop=
"name"
/>
<el-table-column
label=
"客户id"
align=
"center"
prop=
"customerId"
/>
<el-table-column
label=
"下次联系时间"
align=
"center"
prop=
"contactNextTime"
:formatter=
"dateFormatter"
width=
"180px"
/>
<el-table-column
label=
"电话"
align=
"center"
prop=
"telephone"
/>
<el-table-column
label=
"手机号"
align=
"center"
prop=
"mobile"
/>
<el-table-column
label=
"地址"
align=
"center"
prop=
"address"
/>
<el-table-column
label=
"负责人"
align=
"center"
prop=
"ownerUserId"
/>
<el-table-column
label=
"最后跟进时间"
align=
"center"
prop=
"contactLastTime"
:formatter=
"dateFormatter"
width=
"180px"
/>
<el-table-column
label=
"备注"
align=
"center"
prop=
"remark"
/>
<el-table-column
label=
"创建时间"
align=
"center"
prop=
"createTime"
:formatter=
"dateFormatter"
width=
"180px"
/>
</el-table>
<!-- 分页 -->
<Pagination
:total=
"total"
v-model:page=
"queryParams.pageNo"
v-model:limit=
"queryParams.pageSize"
@
pagination=
"getList"
/>
</ContentWrap>
</template>
</template>
<
script
setup
lang=
"ts"
name=
"FollowLeads"
>
<
script
setup
lang=
"ts"
name=
"FollowLeads"
>
import
{
DICT_TYPE
}
from
'@/utils/dict'
import
{
dateFormatter
}
from
'@/utils/formatTime'
import
*
as
ClueApi
from
'@/api/crm/clue'
</
script
>
const
FOLLOWUP_STATUS
=
[
{
label
:
'已跟进'
,
value
:
true
},
{
label
:
'待跟进'
,
value
:
false
}
]
const
loading
=
ref
(
true
)
// 列表的加载中
const
total
=
ref
(
0
)
// 列表的总页数
const
list
=
ref
([])
// 列表的数据
const
queryParams
=
reactive
({
pageNo
:
1
,
pageSize
:
10
,
followUpStatus
:
false
})
const
queryFormRef
=
ref
()
// 搜索的表单
/** 查询列表 */
const
getList
=
async
()
=>
{
loading
.
value
=
true
try
{
const
data
=
await
ClueApi
.
getCluePage
(
queryParams
)
list
.
value
=
data
.
list
total
.
value
=
data
.
total
}
finally
{
loading
.
value
=
false
}
}
<
style
scoped
>
/** 搜索按钮操作 */
const
handleQuery
=
()
=>
{
queryParams
.
pageNo
=
1
getList
()
}
/** 初始化 **/
onMounted
(()
=>
{
getList
()
})
</
script
>
</
style
>
<
style
scoped
><
/
style
>
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