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
48693b50
authored
Jan 15, 2024
by
dhb52
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wip: CRM-代办消息-修改模块为backlog
parent
39da43cc
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
45 additions
and
72 deletions
+45
-72
src/api/crm/backlog/index.ts
+18
-0
src/api/crm/message/index.ts
+0
-40
src/router/modules/remaining.ts
+3
-3
src/views/crm/backlog/index.vue
+15
-3
src/views/crm/backlog/tables/FollowLeads.vue
+1
-0
src/views/crm/backlog/tables/TodayCustomer.vue
+8
-26
No files found.
src/api/crm/backlog/index.ts
0 → 100644
View file @
48693b50
import
request
from
'@/config/axios'
import
{
type
CustomerVO
}
from
'../customer'
import
{
type
ClueVO
}
from
'../clue'
// 查询客户列表
// TODO @芋艿:看看是不是后续融合到 getCustomerPage 里;
export
const
getTodayCustomerPage
=
async
(
params
)
=>
{
return
await
request
.
get
({
url
:
`/crm/backlog/today-customer-page`
,
params
})
}
// 查询线索列表
export
const
getFollowLeadsPage
=
async
(
params
)
=>
{
return
await
request
.
get
({
url
:
`/crm/backlog/page`
,
params
})
}
export
{
type
CustomerVO
,
type
ClueVO
}
src/api/crm/message/index.ts
deleted
100644 → 0
View file @
39da43cc
import
request
from
'@/config/axios'
export
interface
CustomerVO
{
id
?:
number
name
:
string
industryId
:
number
level
:
number
source
:
number
followUpStatus
?:
boolean
lockStatus
?:
boolean
dealStatus
?:
boolean
mobile
:
string
telephone
:
string
website
:
string
qq
:
string
wechat
:
string
email
:
string
description
:
string
remark
:
string
ownerUserId
?:
number
ownerUserName
?:
string
ownerUserDept
?:
string
roUserIds
?:
string
rwUserIds
?:
string
areaId
?:
number
areaName
?:
string
detailAddress
:
string
contactLastTime
?:
Date
contactNextTime
:
Date
createTime
?:
Date
updateTime
?:
Date
creator
?:
string
creatorName
?:
string
}
// 查询客户列表
// TODO @芋艿:看看是不是后续融合到 getCustomerPage 里;
export
const
getTodayCustomerPage
=
async
(
params
)
=>
{
return
await
request
.
get
({
url
:
`/crm/message/todayCustomer`
,
params
})
}
src/router/modules/remaining.ts
View file @
48693b50
...
@@ -530,15 +530,15 @@ const remainingRouter: AppRouteRecordRaw[] = [
...
@@ -530,15 +530,15 @@ const remainingRouter: AppRouteRecordRaw[] = [
component
:
()
=>
import
(
'@/views/crm/product/detail/index.vue'
)
component
:
()
=>
import
(
'@/views/crm/product/detail/index.vue'
)
},
},
{
{
path
:
'
message
'
,
path
:
'
backlog
'
,
name
:
'Crm
Message
'
,
name
:
'Crm
Backlog
'
,
meta
:
{
meta
:
{
title
:
'待办事项'
,
title
:
'待办事项'
,
noCache
:
true
,
noCache
:
true
,
hidden
:
true
hidden
:
true
},
},
// TODO @db52:后面搞,搞成菜单
// TODO @db52:后面搞,搞成菜单
component
:
()
=>
import
(
'@/views/crm/
message
/index.vue'
)
component
:
()
=>
import
(
'@/views/crm/
backlog
/index.vue'
)
}
}
]
]
}
}
...
...
src/views/crm/
message
/index.vue
→
src/views/crm/
backlog
/index.vue
View file @
48693b50
...
@@ -17,13 +17,25 @@
...
@@ -17,13 +17,25 @@
<el-col
:span=
"20"
:xs=
"24"
>
<el-col
:span=
"20"
:xs=
"24"
>
<TodayCustomer
v-if=
"leftType === 'todayCustomer'"
/>
<TodayCustomer
v-if=
"leftType === 'todayCustomer'"
/>
<FollowLeads
v-if=
"leftType === 'followLeads'"
/>
<FollowLeads
v-if=
"leftType === 'followLeads'"
/>
<CheckContract
v-if=
"leftType === 'checkContract'"
/>
<CheckReceivables
v-if=
"leftType === 'checkReceivables'"
/>
<EndContract
v-if=
"leftType === 'endContract'"
/>
<FollowCustomer
v-if=
"leftType === 'followCustomer'"
/>
<PutInPoolRemind
v-if=
"leftType === 'putInPoolRemind'"
/>
<RemindReceivables
v-if=
"leftType === 'remindReceivables'"
/>
</el-col>
</el-col>
</el-row>
</el-row>
</
template
>
</
template
>
<!-- @dbh52:模块改成 backlog 会更合适,待办事项 -->
<
script
lang=
"ts"
setup
>
<
script
lang=
"ts"
setup
>
import
TodayCustomer
from
'./tables/TodayCustomer.vue'
import
CheckContract
from
'./tables/CheckContract.vue'
import
CheckReceivables
from
'./tables/CheckReceivables.vue'
import
EndContract
from
'./tables/EndContract.vue'
import
FollowCustomer
from
'./tables/FollowCustomer.vue'
import
FollowLeads
from
'./tables/FollowLeads.vue'
import
FollowLeads
from
'./tables/FollowLeads.vue'
import
PutInPoolRemind
from
'./tables/PutInPoolRemind.vue'
import
RemindReceivables
from
'./tables/RemindReceivables.vue'
import
TodayCustomer
from
'./tables/TodayCustomer.vue'
const
leftType
=
ref
(
'todayCustomer'
)
const
leftType
=
ref
(
'todayCustomer'
)
const
leftSides
=
ref
([
const
leftSides
=
ref
([
...
@@ -66,7 +78,7 @@ const leftSides = ref([
...
@@ -66,7 +78,7 @@ const leftSides = ref([
},
},
{
{
name
:
'待回款提醒'
,
name
:
'待回款提醒'
,
infoType
:
'remindReceivables
Plan
'
,
infoType
:
'remindReceivables'
,
msgCount
:
4
,
msgCount
:
4
,
tips
:
''
tips
:
''
},
},
...
...
src/views/crm/
message
/tables/FollowLeads.vue
→
src/views/crm/
backlog
/tables/FollowLeads.vue
View file @
48693b50
<!-- 分配给我的线索 -->
<!-- 分配给我的线索 -->
<!-- TODO: 后续再统一改名字 -->
<
template
>
<
template
>
<div>
<div>
TODO: 分配给我的线索
TODO: 分配给我的线索
...
...
src/views/crm/
message
/tables/TodayCustomer.vue
→
src/views/crm/
backlog
/tables/TodayCustomer.vue
View file @
48693b50
<
template
>
<
template
>
<ContentWrap>
<ContentWrap>
<div
class=
"pb-5 text-xl"
>
<div
class=
"pb-5 text-xl"
>
{{
title
}}
今日需联系客户
</div>
</div>
<!-- 搜索工作栏 -->
<!-- 搜索工作栏 -->
<el-form
<el-form
...
@@ -12,7 +12,7 @@
...
@@ -12,7 +12,7 @@
label-width=
"68px"
label-width=
"68px"
>
>
<el-form-item
label=
"状态"
prop=
"contactStatus"
>
<el-form-item
label=
"状态"
prop=
"contactStatus"
>
<el-select
v-model=
"queryParams.contactStatus"
class=
"!w-240px"
placeholder=
"状态"
>
<el-select
v-model=
"queryParams.contactStatus"
class=
"!w-240px"
placeholder=
"状态"
@
change=
"handleQuery"
>
<el-option
<el-option
v-for=
"(option, index) in CONTACT_STATUS"
v-for=
"(option, index) in CONTACT_STATUS"
:label=
"option.label"
:label=
"option.label"
...
@@ -22,7 +22,7 @@
...
@@ -22,7 +22,7 @@
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item
label=
"归属"
prop=
"sceneType"
>
<el-form-item
label=
"归属"
prop=
"sceneType"
>
<el-select
v-model=
"queryParams.sceneType"
class=
"!w-240px"
placeholder=
"归属"
>
<el-select
v-model=
"queryParams.sceneType"
class=
"!w-240px"
placeholder=
"归属"
@
change=
"handleQuery"
>
<el-option
<el-option
v-for=
"(option, index) in SCENE_TYPES"
v-for=
"(option, index) in SCENE_TYPES"
:label=
"option.label"
:label=
"option.label"
...
@@ -31,16 +31,6 @@
...
@@ -31,16 +31,6 @@
/>
/>
</el-select>
</el-select>
</el-form-item>
</el-form-item>
<el-form-item>
<el-button
@
click=
"handleQuery"
>
<Icon
class=
"mr-5px"
icon=
"ep:search"
/>
搜索
</el-button>
<el-button
@
click=
"resetQuery(undefined)"
>
<Icon
class=
"mr-5px"
icon=
"ep:refresh"
/>
重置
</el-button>
</el-form-item>
</el-form>
</el-form>
</ContentWrap>
</ContentWrap>
<ContentWrap>
<ContentWrap>
...
@@ -123,19 +113,12 @@
...
@@ -123,19 +113,12 @@
<
script
lang=
"ts"
setup
name=
"TodayCustomer"
>
<
script
lang=
"ts"
setup
name=
"TodayCustomer"
>
import
{
DICT_TYPE
}
from
'@/utils/dict'
import
{
DICT_TYPE
}
from
'@/utils/dict'
import
{
dateFormatter
}
from
'@/utils/formatTime'
import
{
dateFormatter
}
from
'@/utils/formatTime'
import
*
as
MessageApi
from
'@/api/crm/message
'
import
*
as
BacklogApi
from
'@/api/crm/backlog
'
const
title
=
ref
(
'今日需联系客户'
)
// TODO @dbh52:这个不用枚举一个变量哈;
const
loading
=
ref
(
true
)
// 列表的加载中
const
loading
=
ref
(
true
)
// 列表的加载中
const
total
=
ref
(
0
)
// 列表的总页数
const
total
=
ref
(
0
)
// 列表的总页数
const
list
=
ref
([])
// 列表的数据
const
list
=
ref
([])
// 列表的数据
const
queryParams
=
ref
<
{
const
queryParams
=
ref
({
// TODO @dbh52:这个 ref 类型定义可以去掉哈。之前定义的原因,是因为 idea 报错了;默认 idea 可以推导出类型
pageNo
:
number
pageSize
:
number
contactStatus
:
number
|
undefined
sceneType
:
number
|
undefined
}
>
({
pageNo
:
1
,
pageNo
:
1
,
pageSize
:
10
,
pageSize
:
10
,
contactStatus
:
1
,
contactStatus
:
1
,
...
@@ -152,16 +135,15 @@ const CONTACT_STATUS = [
...
@@ -152,16 +135,15 @@ const CONTACT_STATUS = [
const
SCENE_TYPES
=
[
const
SCENE_TYPES
=
[
// TODO 芋艿:貌似可以搞成全局枚举
// TODO 芋艿:貌似可以搞成全局枚举
{
label
:
'我负责的'
,
value
:
1
},
{
label
:
'我负责的'
,
value
:
1
},
{
label
:
'我跟进的'
,
value
:
2
},
{
label
:
'我参与的'
,
value
:
2
},
{
label
:
'我参与的'
,
value
:
3
},
{
label
:
'下属负责的'
,
value
:
3
}
{
label
:
'下属负责的'
,
value
:
4
}
]
]
/** 查询列表 */
/** 查询列表 */
const
getList
=
async
()
=>
{
const
getList
=
async
()
=>
{
loading
.
value
=
true
loading
.
value
=
true
try
{
try
{
const
data
=
await
Message
Api
.
getTodayCustomerPage
(
queryParams
.
value
)
const
data
=
await
Backlog
Api
.
getTodayCustomerPage
(
queryParams
.
value
)
list
.
value
=
data
.
list
list
.
value
=
data
.
list
total
.
value
=
data
.
total
total
.
value
=
data
.
total
}
finally
{
}
finally
{
...
...
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