Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
H
horse
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
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
向伟
horse
Commits
90b38508
Commit
90b38508
authored
Dec 02, 2021
by
罗超
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
1
parent
de25e559
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
270 additions
and
297 deletions
+270
-297
customer.ts
src/api/customer.ts
+18
-18
visibleColumns.vue
src/components/common/visibleColumns.vue
+1
-3
customerModule.ts
src/module/customer/customerModule.ts
+142
-134
customer.vue
src/pages/customerManage/customer.vue
+95
-134
CustomerOperation.vue
...stomerManage/customerSet/components/CustomerOperation.vue
+14
-8
No files found.
src/api/customer.ts
View file @
90b38508
...
...
@@ -14,24 +14,24 @@ import Axios from './axios'
* @property {string} password -用户密码
*/
interface
CutomerParams
{
PageIndex
:
number
,
PageSize
:
number
,
pageCount
:
number
,
CorpName
:
string
,
//企业名称
CustomerName
:
string
,
//备注名
WeChatName
:
string
,
//昵称
CustomerMobile
:
string
,
//手机号码
CreateSTime
:
string
,
//创建开始时间
CreateETime
:
string
,
//创建结束时间
FriendSTime
:
string
,
//好友开始时间
FriendETime
:
string
,
//好友结束时间
Q_NotFollowUpDay
:
number
,
//几天未跟进
Q_Friends
:
string
,
//好友关系 多选逗号分隔、
Q_AddWay
:
string
,
//获取来源 多选英文逗号分隔
EmpId
:
number
,
//员工id
CustomerType
:
number
,
//类型1微信用户 2企业微信用户
SelectList
:
Array
<
any
>
,
//自定义查询
OrderBy
:
number
,
//排序
PageIndex
:
number
PageSize
:
number
pageCount
:
number
CorpName
:
string
//企业名称
CustomerName
:
string
//备注名
WeChatName
:
string
//昵称
CustomerMobile
:
string
//手机号码
CreateSTime
:
string
//创建开始时间
CreateETime
:
string
//创建结束时间
FriendSTime
:
string
//好友开始时间
FriendETime
:
string
//好友结束时间
Q_NotFollowUpDay
:
number
//几天未跟进
Q_Friends
:
string
//好友关系 多选逗号分隔、
Q_AddWay
:
string
//获取来源 多选英文逗号分隔
EmpId
:
number
//员工id
CustomerType
:
number
//类型1微信用户 2企业微信用户
SelectList
:
Array
<
any
>
//自定义查询
OrderBy
:
number
//排序
AddCondition
:
number
//查询条件
}
...
...
src/components/common/visibleColumns.vue
View file @
90b38508
...
...
@@ -31,11 +31,10 @@ export default {
const
myAllCol
=
computed
(()
=>
{
return
props
.
allCol
})
const
showCol
=
computed
(()
=>
{
console
.
log
(
props
.
modelValue
)
return
props
.
modelValue
})
const
changeVisible
=
(
e
)
=>
{
if
(
e
.
visible
)
{
showCol
.
value
.
push
(
e
.
value
)
...
...
@@ -43,7 +42,6 @@ export default {
showCol
.
value
.
splice
(
showCol
.
value
.
indexOf
(
e
.
value
),
1
)
}
context
.
emit
(
'update:modelValue'
,
showCol
.
value
)
console
.
log
(
showCol
.
value
)
}
return
{
myAllCol
,
scrollStyle
,
changeVisible
}
...
...
src/module/customer/customerModule.ts
View file @
90b38508
// import { ResultType } from '@/@types/enumHelper'
// import router from '@/router'
// import UserActions from '@/store/modules/user/actions'//{ UserActionsType }
// import { UserGetter } from '@/store/modules/user/getters'
// import { dispatchAction, getStoreGetter, setStoreState } from '@/store/utils'
// import message from '@/utils/message'
import
{
StaticConfig
}
from
'@/config/app'
import
{
ref
,
reactive
}
from
'vue'
import
customer
,
{
CutomerParams
}
from
'@/api/customer'
interface
Params
{
selectVal
:
string
selectWay
:
number
}
interface
timeParams
{
timeWay
:
number
}
interface
customParams
{
customWay
:
number
}
interface
friendParams
{
frendArr
:
Array
<
number
>
wayArr
:
Array
<
number
>
}
import
dayjs
from
'dayjs'
import
{
reactive
}
from
'vue'
import
customer
,
{
CutomerParams
}
from
'@/api/customer'
import
customerSetService
from
'@/api/customerSet'
import
{
ColumnDefaultState
}
from
'@/@types/enumHelper'
interface
memberParams
{
newId
:
number
|
string
DataType
:
number
|
string
DeptId
:
number
ChildList
:
Array
<
any
>
|
null
ChildList
:
Array
<
any
>
|
null
}
interface
dataParams
{
columns
:
Array
<
any
>
dataList
:
Array
<
any
>
WayList
:
Array
<
any
>
selected
:
Array
<
any
>
EmployeeList
:
Array
<
memberParams
>
defaultArray
:
Array
<
number
|
string
>
CascaderValue
:
Array
<
any
>
|
string
loading
:
boolean
columns
:
Array
<
any
>
sysColumns
:
Array
<
any
>
showColumns
:
Array
<
any
>
allColumns
:
Array
<
any
>
dataList
:
Array
<
any
>
WayList
:
Array
<
any
>
selected
:
Array
<
any
>
EmployeeList
:
Array
<
memberParams
>
defaultArray
:
Array
<
number
|
string
>
customerCascaderValue
:
Array
<
any
>
|
string
deptCascaderValue
:
string
|
null
colLoadingFinish
:
boolean
}
const
CustomerModule
=
()
=>
{
//
调用方法
const
getCustomerList
=
(
param
:
CutomerParams
)
=>
{
customer
.
getCustomerList
(
param
).
then
(
res
=>
{
console
.
log
(
res
,
'数据'
)
//
获取列表
const
getCustomerList
=
()
=>
{
data
.
loading
=
true
customer
.
getCustomerList
(
msg
).
then
(
res
=>
{
if
(
res
.
data
.
Code
==
1
)
{
data
.
loading
=
false
data
.
dataList
=
res
.
data
.
Data
.
PageData
msg
.
pageCount
=
res
.
data
.
Data
.
PageCount
}
...
...
@@ -64,10 +47,9 @@ const CustomerModule = () => {
})
}
//获取员工数据
const
getEmployeeData
=
(
param
:
any
)
=>
{
customer
.
getEmployeeData
(
param
).
then
(
res
=>
{
const
getEmployeeData
=
()
=>
{
customer
.
getEmployeeData
(
{}
).
then
(
res
=>
{
data
.
EmployeeList
=
res
.
data
.
Data
console
.
log
(
data
,
'员工数据'
)
// 重组唯一id
if
(
data
.
EmployeeList
.
length
==
0
)
return
data
.
EmployeeList
.
forEach
(
x
=>
{
...
...
@@ -92,25 +74,27 @@ const CustomerModule = () => {
}
})
}
const
title
=
ref
(
StaticConfig
.
appsuffix
)
//控制页显示条数
const
pagination
=
reactive
({
rowsPerPage
:
0
})
//日期对象
// const daySelect =
const
data
=
reactive
<
dataParams
>
({
columns
:
[{
const
data
=
reactive
<
dataParams
>
({
loading
:
false
,
columns
:
[
{
name
:
'CustomerName'
,
label
:
'客户'
,
field
:
'CustomerName'
,
align
:
'left'
},
}
],
sysColumns
:
[
{
name
:
'StageName'
,
align
:
'center
'
,
label
:
'客户阶段
'
,
field
:
'StageName'
,
label
:
'客户阶段
'
align
:
'left
'
},
{
name
:
'LableList'
,
...
...
@@ -124,12 +108,6 @@ const CustomerModule = () => {
field
:
'carbs'
,
align
:
'left'
},
{
name
:
'CreateTime'
,
label
:
'创建时间'
,
field
:
'CreateTime'
,
align
:
'left'
},
{
name
:
'sodium'
,
label
:
'负责人'
,
...
...
@@ -148,8 +126,6 @@ const CustomerModule = () => {
field
:
'Source'
,
align
:
'left'
},
// { name: 'num', label: '7日内客户回复消息数', align: 'left'},
// { name: 'num', label: '7日内员工发送消息数', align: 'left'},
{
name
:
'FriendTime'
,
label
:
'添加好友时间'
,
...
...
@@ -163,14 +139,18 @@ const CustomerModule = () => {
align
:
'left'
}
],
showColumns
:
[
'CustomerName'
],
//对应allColumns的value
allColumns
:
[],
selected
:
[],
dataList
:
[],
WayList
:
[],
EmployeeList
:
[],
defaultArray
:
[],
//
CascaderValue
:
""
deptCascaderValue
:
null
,
customerCascaderValue
:
''
,
colLoadingFinish
:
false
})
const
msg
=
reactive
({
const
msg
=
reactive
<
CutomerParams
>
({
PageIndex
:
1
,
PageSize
:
10
,
pageCount
:
0
,
...
...
@@ -186,7 +166,6 @@ const CustomerModule = () => {
Q_Friends
:
''
,
//好友关系 多选逗号分隔、
Q_AddWay
:
''
,
//获取来源 多选英文逗号分隔
EmpId
:
0
,
//员工id
DeptId
:
0
,
//部门id
CustomerType
:
0
,
//类型1微信用户 2企业微信用户
SelectList
:
[],
//自定义查询
OrderBy
:
1
,
//排序
...
...
@@ -218,46 +197,65 @@ const CustomerModule = () => {
Id
:
2
}
])
//自定义客户筛选
//切换时间范围
const
changeTime
=
()
=>
{
msg
.
FriendSTime
=
''
msg
.
FriendETime
=
''
msg
.
CreateSTime
=
''
msg
.
CreateETime
=
''
TimeObj
.
timeRange
=
null
}
//选择时间范围
const
changeTimeRange
=
val
=>
{
if
(
val
)
{
const
s
=
dayjs
(
val
[
0
]).
format
(
'YYYY-MM-DD HH:mm:ss'
)
const
e
=
dayjs
(
val
[
1
]).
format
(
'YYYY-MM-DD HH:mm:ss'
)
if
(
TimeObj
.
timeWay
==
1
)
{
msg
.
CreateSTime
=
s
msg
.
CreateETime
=
e
}
else
{
msg
.
FriendSTime
=
s
msg
.
FriendETime
=
e
}
}
else
{
msg
.
FriendSTime
=
''
msg
.
FriendETime
=
''
msg
.
CreateSTime
=
''
msg
.
CreateETime
=
''
}
getCustomerList
()
}
//客户筛选
const
CustomList
=
reactive
([{
Name
:
'好友关系'
,
Id
:
1
},
{
Name
:
'获取途径'
,
Id
:
2
label
:
'好友关系'
,
value
:
'1'
,
children
:
[{
label
:
'未添加'
,
value
:
'1-1'
},
{
Name
:
'未跟进客户
'
,
Id
:
3
label
:
'已添加
'
,
value
:
'1-2'
}
])
const
friendOptions
=
reactive
([{
Name
:
'好友客户'
,
Id
:
1
]
},
{
Name
:
'待添加
'
,
Id
:
2
label
:
'获取途径
'
,
value
:
2
},
{
Name
:
'已申请
'
,
Id
:
3
label
:
'未跟进客户
'
,
value
:
3
}
])
const
SeletObj
=
reactive
<
Params
>
({
const
SeletObj
=
reactive
({
selectVal
:
''
,
selectWay
:
0
})
const
TimeObj
=
reactive
<
timeParams
>
({
timeWay
:
1
})
const
customSetObj
=
reactive
<
customParams
>
({
customWay
:
1
})
const
friendObj
=
reactive
<
friendParams
>
({
frendArr
:
[],
wayArr
:
[]
const
TimeObj
=
reactive
({
timeWay
:
1
,
timeRange
:
null
})
//选择方式
const
getSelectWay
=
()
=>
{
...
...
@@ -281,39 +279,52 @@ const CustomerModule = () => {
}
const
changePage
=
(
val
:
any
)
=>
{
msg
.
PageIndex
=
val
getCustomerList
(
msg
)
}
const
getChild
=
(
deptArray
:
any
)
=>
{
//数据处理 获取夏利是 1-2 前面代表部门还是人员 后面是原生ID
if
(
deptArray
.
_value
)
{
const
Type
=
deptArray
.
_value
.
split
(
'-'
)[
0
]
const
MyId
=
deptArray
.
_value
.
split
(
'-'
)[
1
]
//1部门
if
(
Type
==
1
)
{
msg
.
DeptId
=
MyId
}
//2人员
if
(
Type
==
2
)
{
msg
.
EmpId
=
MyId
getCustomerList
()
}
const
getDept
=
(
id
:
any
)
=>
{
//数据处理 获取id是 1-id,2-id 前面1代表部门2代表人员 后面是原生ID
if
(
id
)
{
msg
.
EmpId
=
id
.
slice
(
2
)
}
else
{
msg
.
DeptId
=
0
msg
.
EmpId
=
0
}
getCustomerList
(
msg
)
getCustomerList
()
}
const
getCkedFriend
=
(
e
:
any
)
=>
{
const
Ids
=
e
.
map
((
x
:
any
)
=>
{
return
x
.
Id
const
customerUpdateValue
=
val
=>
{
console
.
log
(
'customerUpdateValue'
,
val
)
}
data
.
sysColumns
.
map
(
e
=>
{
data
.
columns
.
push
(
e
)
data
.
showColumns
.
push
(
e
.
field
)
data
.
allColumns
.
push
({
name
:
e
.
label
,
value
:
e
.
field
,
visible
:
true
,
IsCustom
:
0
})
})
customerSetService
.
getCustomerFiledList
({
Enable
:
1
})
.
toString
()
msg
.
Q_Friends
=
Ids
getCustomerList
(
msg
)
.
then
(
r
=>
{
const
tempCol
=
r
.
data
.
Data
if
(
tempCol
&&
tempCol
.
length
>
0
)
{
tempCol
.
sort
((
x
,
y
)
=>
{
return
x
.
Sort
-
y
.
Sort
})
tempCol
.
forEach
(
x
=>
{
const
tempRow
=
{
name
:
x
.
Name
,
label
:
x
.
Name
,
field
:
x
.
Name
,
align
:
'left'
}
data
.
columns
.
push
(
tempRow
)
if
(
x
.
IsDefault
==
ColumnDefaultState
.
Yes
)
{
data
.
showColumns
.
push
(
x
.
Name
)
}
const
CascaderUpdateValue
=
(
val
)
=>
{
console
.
log
(
'val'
,
val
)
data
.
allColumns
.
push
({
name
:
x
.
Name
,
value
:
x
.
Name
,
visible
:
x
.
IsDefault
==
ColumnDefaultState
.
Yes
,
data
:
x
,
IsCustom
:
1
})
}
)
}
//#region 添加菜单权限
data
.
columns
.
push
({
name
:
'setting'
,
label
:
'自定义列'
,
field
:
'setting'
,
align
:
'left'
})
data
.
showColumns
.
push
(
'setting'
)
//#endregion
data
.
colLoadingFinish
=
true
})
return
{
getCustomerList
,
...
...
@@ -321,21 +332,18 @@ const CustomerModule = () => {
getEmployeeData
,
data
,
msg
,
title
,
TypeList
,
SeletObj
,
getSelectWay
,
TimeObj
,
TimeList
,
changeTime
,
changeTimeRange
,
changePage
,
pagination
,
CustomList
,
customSetObj
,
friendObj
,
friendOptions
,
getChild
,
getCkedFriend
,
CascaderUpdateValue
getDept
,
customerUpdateValue
,
}
}
...
...
src/pages/customerManage/customer.vue
View file @
90b38508
This diff is collapsed.
Click to expand it.
src/pages/customerManage/customerSet/components/CustomerOperation.vue
View file @
90b38508
...
...
@@ -18,7 +18,7 @@
<q-btn
color=
"primary"
:disable=
"!PublicGetDeptState"
unelevated
label=
"修改"
size=
"xs"
class=
"q-ml-lg"
@
click=
"checkedPublicGetDept"
/>
</div>
<div>
<div
v-if=
"PublicGetDeptState"
>
<div
v-for=
"(item,index) in PublicGetDeptNameList"
:key=
"index"
class=
"dept-item"
>
<div
class=
"flex justify-center items-center"
>
<q-icon
name=
"work"
color=
"primary"
v-if=
"item.Type==1"
/>
...
...
@@ -33,8 +33,7 @@
<Abandon
v-model:AabandonType=
"data.AbandonType"
v-model:AbandonDept=
"data.AbandonDept"
v-model:AbandonAudit=
"data.AbandonAudit"
:AbandonReasonList=
"data.AbandonReasonList"
v-model:AbandonReason=
"data.AbandonReason"
v-model:AbandonSelectType=
"data.AbandonSelectType"
:AbandonEmpList=
"data.AbandonEmpList"
:AbandonDeptList=
"data.AbandonDeptList"
/>
:AbandonEmpList=
"data.AbandonEmpList"
:AbandonDeptList=
"data.AbandonDeptList"
/>
</div>
<div
v-if=
"curItem == 3"
class=
"row"
>
<div
class=
"collaborator-title"
>
申请成为协作人:
</div>
...
...
@@ -226,7 +225,7 @@
AbandonReasonList
:
[],
},
PublicGetDeptState
:
false
,
//以下部门允许领取公海客户
PublicGetDeptNameList
:
[],
//允许领取公海客户列表
PublicGetDeptNameList
:
[],
//允许领取公海客户列表
showDptDialog
:
false
,
DptDataTreeDefault
:
[],
//部门默认值
})
...
...
@@ -245,7 +244,15 @@
}
else
{
data
.
PublicGetDeptState
=
true
}
const
PublicGetDeptList
=
data
.
data
.
PublicGetDeptList
.
map
(
e
=>
{
e
.
Type
=
1
return
e
})
const
PublicGetEmpList
=
data
.
data
.
PublicGetEmpList
.
map
(
e
=>
{
e
.
Type
=
2
return
e
})
data
.
PublicGetDeptNameList
=
[...
PublicGetDeptList
,...
PublicGetEmpList
]
})
}
const
getDptTree
=
()
=>
{
...
...
@@ -270,8 +277,7 @@
}
//保存客户操作配置
const
setCustomerConfig
=
()
=>
{
customerSetService
.
setCustomerConfig
(
data
.
data
).
then
(
res
=>
{
console
.
log
(
'set'
,
res
.
data
.
Data
)
customerSetService
.
setCustomerConfig
(
data
.
data
).
then
(()
=>
{
message
.
successMsg
(
'设置成功'
)
getConfig
()
})
...
...
@@ -292,7 +298,7 @@
const
dept
=
JSON
.
parse
(
JSON
.
stringify
(
val
))
if
(
curItem
.
value
===
1
)
{
data
.
data
.
PublicGetDept
=
ids
data
.
data
.
PublicGetDept
List
=
dept
data
.
PublicGetDeptName
List
=
dept
}
if
(
curItem
.
value
===
2
)
{
data
.
data
.
AbandonDept
=
ids
...
...
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