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
526172af
authored
Nov 18, 2023
by
YunaiV
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
crm:code review 客户配置管理
parent
c06223de
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
21 additions
and
24 deletions
+21
-24
src/views/crm/customer/detail/index.vue
+6
-7
src/views/crm/customerLimitConfig/CustomerLimitConfDetails.vue
+0
-1
src/views/crm/customerLimitConfig/CustomerLimitConfigForm.vue
+2
-0
src/views/crm/customerLimitConfig/customerLimitConf.ts
+1
-0
src/views/crm/customerLimitConfig/index.vue
+2
-2
src/views/crm/customerPoolConf/index.vue
+10
-14
No files found.
src/views/crm/customer/detail/index.vue
View file @
526172af
<
template
>
<!-- TODO @wanwan:要不要把上面这一整块,搞成一个组件,就是把 下面 + Details + BasitcInfo 合并成一个 -->
<div
v-loading=
"loading"
>
<div
class=
"flex items-start justify-between"
>
<div>
...
...
@@ -74,20 +75,20 @@
<el-tab-pane
label=
"客户关系"
lazy
>
客户关系
</el-tab-pane>
<!-- TODO wanwan 以下标签上的数量需要接口统计返回 -->
<el-tab-pane
label=
"联系人"
lazy
>
<template
#
label
>
联系人
<el-badge
:value=
"12"
class=
"item"
type=
"primary"
/>
</
template
>
<template
#
label
>
联系人
<el-badge
class=
"item"
type=
"primary"
/>
</
template
>
联系人
</el-tab-pane>
<el-tab-pane
label=
"团队成员"
lazy
>
<
template
#
label
>
团队成员
<el-badge
:value=
"2"
class=
"item"
type=
"primary"
/>
</
template
>
<
template
#
label
>
团队成员
<el-badge
class=
"item"
type=
"primary"
/>
</
template
>
团队成员
</el-tab-pane>
<el-tab-pane
label=
"商机"
lazy
>
商机
</el-tab-pane>
<el-tab-pane
label=
"合同"
lazy
>
<
template
#
label
>
合同
<el-badge
:value=
"3"
class=
"item"
type=
"primary"
/>
</
template
>
<
template
#
label
>
合同
<el-badge
class=
"item"
type=
"primary"
/>
</
template
>
合同
</el-tab-pane>
<el-tab-pane
label=
"回款"
lazy
>
<
template
#
label
>
回款
<el-badge
:value=
"4"
class=
"item"
type=
"primary"
/>
</
template
>
<
template
#
label
>
回款
<el-badge
class=
"item"
type=
"primary"
/>
</
template
>
回款
</el-tab-pane>
<el-tab-pane
label=
"回访"
lazy
>
回访
</el-tab-pane>
...
...
@@ -116,14 +117,12 @@ const { currentRoute } = useRouter() // 路由
const
id
=
Number
(
route
.
params
.
id
)
const
loading
=
ref
(
true
)
// 加载中
// 客户详情
const
customer
=
ref
<
CustomerApi
.
CustomerVO
>
({}
as
CustomerApi
.
CustomerVO
)
/**
* 获取详情
*
* @param id
*/
const
customer
=
ref
<
CustomerApi
.
CustomerVO
>
({}
as
CustomerApi
.
CustomerVO
)
// 客户详情
const
getCustomerData
=
async
(
id
:
number
)
=>
{
loading
.
value
=
true
try
{
...
...
src/views/crm/customerLimitConfig/CustomerLimitConfDetails.vue
View file @
526172af
...
...
@@ -144,4 +144,3 @@ onMounted(() => {
getList
()
})
</
script
>
<
style
scoped
lang=
"scss"
></
style
>
src/views/crm/customerLimitConfig/CustomerLimitConfigForm.vue
View file @
526172af
...
...
@@ -83,6 +83,7 @@ const formRules = reactive({
maxCount
:
[{
required
:
true
,
message
:
'数量上限不能为空'
,
trigger
:
'blur'
}]
})
const
formRef
=
ref
()
// 表单 Ref
// TODO @芋艿:看看怎么搞个部门选择组件
const
deptTree
=
ref
()
// 部门树形结构
const
userTree
=
ref
()
// 用户树形结构
...
...
@@ -179,6 +180,7 @@ const getUserTree = async () => {
handleUserData
(
userTree
.
value
,
deptUserMap
)
}
// TODO @芋艿:看看怎么搞个用户选择的组件
/**
* 处理用户树
*
...
...
src/views/crm/customerLimitConfig/customerLimitConf.ts
View file @
526172af
// TODO 可以挪到它对应的 api.ts 文件里哈
/**
* 客户限制配置类型
*/
...
...
src/views/crm/customerLimitConfig/index.vue
View file @
526172af
<
template
>
<!-- 列表 -->
<ContentWrap>
<el-tabs
tab-position=
"left"
>
<el-tabs>
<el-tab-pane
label=
"拥有客户数限制"
>
<!-- TODO @wanwan:CustomerLimitConfigList,因为它是列表哈 -->
<CustomerLimitConfDetails
:confType=
"LimitConfType.CUSTOMER_QUANTITY_LIMIT"
/>
</el-tab-pane>
<el-tab-pane
label=
"锁定客户数限制"
>
...
...
@@ -11,7 +12,6 @@
</el-tabs>
</ContentWrap>
</
template
>
<
script
setup
lang=
"ts"
>
import
CustomerLimitConfDetails
from
'@/views/crm/customerLimitConfig/CustomerLimitConfDetails.vue'
import
{
LimitConfType
}
from
'@/views/crm/customerLimitConfig/customerLimitConf'
...
...
src/views/crm/customerPoolConf/index.vue
View file @
526172af
...
...
@@ -8,6 +8,7 @@
v-loading=
"formLoading"
>
<el-card
shadow=
"never"
>
<!-- 操作 -->
<template
#
header
>
<div
class=
"flex items-center justify-between"
>
<CardTitle
title=
"客户公海规则设置"
/>
...
...
@@ -15,11 +16,12 @@
type=
"primary"
@
click=
"onSubmit"
v-hasPermi=
"['crm:customer-pool-config:update']"
>
保存
</el-button
>
保存
</el-button>
</div>
</
template
>
<!-- 表单 -->
<el-form-item
label=
"客户公海规则设置"
prop=
"enabled"
>
<el-radio-group
v-model=
"formData.enabled"
class=
"ml-4"
>
<el-radio
:label=
"false"
size=
"large"
>
不启用
</el-radio>
...
...
@@ -41,9 +43,7 @@
</el-form-item>
<div
v-if=
"formData.notifyEnabled"
>
<el-form-item>
提前
<el-input-number
class=
"mx-2"
v-model=
"formData.notifyDays"
/>
天提醒
提前
<el-input-number
class=
"mx-2"
v-model=
"formData.notifyDays"
/>
天提醒
</el-form-item>
</div>
</div>
...
...
@@ -51,12 +51,11 @@
</el-form>
</ContentWrap>
</template>
<
script
setup
lang=
"ts"
>
import
*
as
CustomerPoolConfApi
from
'@/api/crm/customerPoolConf'
import
{
CardTitle
}
from
'@/components/Card'
import
{
CustomerPoolConfigVO
}
from
'@/api/crm/customerPoolConf'
// TODO @wanwan:CustomerPoolConf =》 CustomerPoolConfig;另外,我们在 crm 目录下,新建一个 config 目录,然后把 customerPoolConfig 和 customerLimitConfig 都挪进
defineOptions
({
name
:
'CustomerPoolConf'
})
const
message
=
useMessage
()
// 消息弹窗
...
...
@@ -70,15 +69,12 @@ const formData = ref({
notifyEnabled
:
false
,
notifyDays
:
0
})
const
formRules
=
reactive
({
enabled
:
[{
required
:
true
,
message
:
'是否启用客户公海不能为空'
,
trigger
:
'blur'
}]
})
const
formRef
=
ref
()
// 表单 Ref
/**
* 获取配置
*/
/** 获取配置 */
const
getConfig
=
async
()
=>
{
try
{
formLoading
.
value
=
true
...
...
@@ -92,9 +88,7 @@ const getConfig = async () => {
}
}
/**
* 提交配置
*/
/** 提交配置 */
const
onSubmit
=
async
()
=>
{
// 校验表单
if
(
!
formRef
)
return
...
...
@@ -113,6 +107,7 @@ const onSubmit = async () => {
}
}
// TODO @wanwan:el-radio-group 选择后,触发会不会更好哈;
watch
(
()
=>
formData
.
value
.
enabled
,
(
val
:
boolean
)
=>
{
...
...
@@ -124,6 +119,7 @@ watch(
}
}
)
// TODO @wanwan:el-radio-group 选择后,触发会不会更好哈;
watch
(
()
=>
formData
.
value
.
notifyEnabled
,
(
val
:
boolean
)
=>
{
...
...
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