Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
customer-admin
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
EzijingWeb
customer-admin
Commits
81687556
提交
81687556
authored
11月 03, 2021
作者:
pengxiaohui
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat: 创建客户增加所属分组字段
上级
9e146e71
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
84 行增加
和
8 行删除
+84
-8
api.js
src/modules/customer/api.js
+5
-0
BaseInfo.vue
src/modules/customer/components/BaseInfo.vue
+13
-3
CustomerFormDialog.vue
src/modules/customer/components/CustomerFormDialog.vue
+15
-2
CustomerGroupSelect.vue
src/modules/customer/components/CustomerGroupSelect.vue
+35
-0
Index.vue
src/modules/customer/views/Index.vue
+16
-3
没有找到文件。
src/modules/customer/api.js
浏览文件 @
81687556
...
...
@@ -68,3 +68,7 @@ export function deleteFollowRecord(id) {
export
function
getprojectDetail
(
data
)
{
return
httpRequest
.
get
(
`/api/customer/admin/v1/project/
${
data
.
id
}
`
,
data
)
}
// 获取客户组列表
export
function
getCustomerGroup
(
params
)
{
return
httpRequest
.
get
(
'/api/customer/admin/v1/groups'
,
{
params
})
}
\ No newline at end of file
src/modules/customer/components/BaseInfo.vue
浏览文件 @
81687556
...
...
@@ -15,9 +15,19 @@
<el-descriptions-item>
<
template
slot=
"label"
>
院校层级
</
template
>
{{ form.universityLevel }}
</el-descriptions-item>
<el-descriptions-item>
<
template
slot=
"label"
>
所在地区
</
template
>
{{ form.region }}
</el-descriptions-item>
<el-descriptions-item>
<
template
slot=
"label"
>
详细地址
</
template
>
{{ form.address }}
</el-descriptions-item>
<el-descriptions-item>
<
template
slot=
"label"
>
备注
</
template
>
{{ form.remark }}
</el-descriptions-item>
<el-descriptions-item>
<
template
slot=
"label"
>
所在地区
</
template
>
{{ form.region }}
</el-descriptions-item>
<el-descriptions-item>
<
template
slot=
"label"
>
详细地址
</
template
>
{{ form.address }}
</el-descriptions-item>
<el-descriptions-item>
<
template
slot=
"label"
>
备注
</
template
>
{{ form.remark }}
</el-descriptions-item>
<el-descriptions-item>
<
template
slot=
"label"
>
所属分组
</
template
>
<div><span
v-for=
"(item, index) in form.groups"
:key=
"item.id"
>
{{index === 0 ? item.name : '、' + item.name}}
</span></div>
</el-descriptions-item>
</el-descriptions>
<customer-form-dialog
v-model=
"dialogVisable"
:info=
"form"
@
change=
"getBaseInfo"
/>
</div>
...
...
src/modules/customer/components/CustomerFormDialog.vue
浏览文件 @
81687556
...
...
@@ -34,6 +34,13 @@
<el-form-item
label=
"所在地区"
prop=
"region"
class=
"form-item-select"
>
<app-area
v-model=
"form.region"
/>
</el-form-item>
<el-form-item
label=
"所属分组"
prop=
"group_ids"
>
<!--
<el-select
v-model=
"form.group_ids"
placeholder=
"请选择院校性质"
size=
"small"
style=
"width: 100%"
multiple
>
<el-option
label=
"公办"
:value=
"1"
></el-option>
<el-option
label=
"民办"
:value=
"2"
></el-option>
</el-select>
-->
<customer-group-select
v-model=
"form.group_ids"
multiple
/>
</el-form-item>
<el-form-item
label=
"详细地址"
>
<el-input
v-model=
"form.address"
size=
"small"
placeholder=
"请输入详细地址"
/>
</el-form-item>
...
...
@@ -57,9 +64,10 @@
<
script
>
import
AppArea
from
'@/components/base/AppArea.vue'
import
AppUniversityLevel
from
'@/components/base/AppUniversityLevel/Index.vue'
import
CustomerGroupSelect
from
'../components/CustomerGroupSelect.vue'
import
{
createCustomer
,
updateCustomer
}
from
'../api'
export
default
{
components
:
{
AppArea
,
AppUniversityLevel
},
components
:
{
AppArea
,
AppUniversityLevel
,
CustomerGroupSelect
},
props
:
{
value
:
{
type
:
Boolean
,
...
...
@@ -84,7 +92,8 @@ export default {
universityLevel
:
[],
region
:
[],
address
:
''
,
remark
:
''
remark
:
''
,
group_ids
:
[]
},
rules
:
{
name
:
{
required
:
true
,
message
:
'请输入客户名称'
,
trigger
:
'blur'
},
...
...
@@ -105,11 +114,15 @@ export default {
Object
.
keys
(
this
.
form
).
forEach
(
key
=>
{
this
.
form
[
key
]
=
this
.
info
[
key
]
if
(
key
===
'region'
)
this
.
form
[
key
]
=
this
.
form
[
key
].
split
(
'-'
)
if
(
key
===
'group_ids'
)
{
if
(
Array
.
isArray
(
this
.
info
.
groups
)
&&
this
.
info
.
groups
.
length
)
this
.
form
[
key
]
=
this
.
info
.
groups
.
map
(
item
=>
item
.
id
)
}
if
(
key
===
'universityLevel'
)
{
if
(
parseInt
(
this
.
info
.
college_type
))
this
.
form
[
key
]
=
[
parseInt
(
this
.
info
.
college_type
),
parseInt
(
this
.
info
.
college_level
)]
else
this
.
form
[
key
]
=
[]
}
})
console
.
log
(
this
.
form
)
},
deep
:
true
}
...
...
src/modules/customer/components/CustomerGroupSelect.vue
0 → 100644
浏览文件 @
81687556
<
template
>
<el-select
clearable
v-bind=
"$attrs"
v-on=
"$listeners"
placeholder=
"请选择所属分组"
size=
"small"
style=
"width: 100%"
:multiple=
"multiple"
>
<el-option
:label=
"item.name"
:value=
"item.id"
v-for=
"item in options"
:key=
"item.id"
></el-option>
</el-select>
</
template
>
<
script
>
import
{
getCustomerGroup
}
from
'../api'
export
default
{
props
:
{
multiple
:
{
type
:
Boolean
,
default
:
false
}
},
data
()
{
return
{
_props
:
{},
options
:
[]
}
},
created
()
{
this
.
fetchCustomerGroups
()
},
methods
:
{
fetchCustomerGroups
()
{
getCustomerGroup
({
page
:
1
,
limit
:
300
}).
then
(
res
=>
{
if
(
res
.
code
===
0
)
{
this
.
options
=
res
.
data
.
data
}
})
}
}
}
</
script
>
\ No newline at end of file
src/modules/customer/views/Index.vue
浏览文件 @
81687556
...
...
@@ -23,6 +23,9 @@
<
template
v-slot:filter-universityLevel=
"{ params }"
>
<app-university-level
v-model=
"params.universityLevel"
:props=
"
{ checkStrictly: true }" />
</
template
>
<
template
v-slot:filter-customerGroup=
"{ params }"
>
<customer-group-select
v-model=
"params.group_id"
/>
</
template
>
<
template
v-slot:filter-create-by=
"{ params }"
>
<app-user-search
v-model=
"params.created_by"
:options=
"
{ clearable: true }">
</app-user-search>
</
template
>
...
...
@@ -41,6 +44,12 @@
>
</el-date-picker>
</
template
>
<!-- 表格项 -->
<
template
v-slot:table-group=
"{ row }"
>
<template
v-if=
"Array.isArray(row.groups) && row.groups.length"
>
<span
v-for=
"(item, index) in row.groups"
:key=
"index"
>
{{
index
===
0
?
item
.
name
:
'、'
+
item
.
name
}}
</span>
</
template
>
</template>
<!-- 操作 -->
<
template
v-slot:table-operate=
"{ row }"
>
<template>
...
...
@@ -58,6 +67,7 @@ import AppUserSearch from '@/components/base/AppUserSearch.vue'
import
AppArea
from
'@/components/base/AppArea.vue'
import
AppUniversityLevel
from
'@/components/base/AppUniversityLevel/Index.vue'
import
CustomerFormDialog
from
'../components/CustomerFormDialog.vue'
import
CustomerGroupSelect
from
'../components/CustomerGroupSelect.vue'
// 接口
import
{
getCustomerList
,
deleteCustomer
}
from
'../api'
...
...
@@ -72,7 +82,7 @@ const natureList = [
{
name
:
'民办'
,
id
:
2
}
]
export
default
{
components
:
{
AppUserSearch
,
AppArea
,
AppUniversityLevel
,
CustomerFormDialog
},
components
:
{
AppUserSearch
,
AppArea
,
AppUniversityLevel
,
CustomerFormDialog
,
CustomerGroupSelect
},
data
()
{
return
{
staffList
:
[
...
...
@@ -146,7 +156,8 @@ export default {
create_date
:
''
,
follow_date
:
''
,
college_type
:
''
,
college_level
:
''
college_level
:
''
,
group_id
:
''
}
},
filters
:
[
...
...
@@ -203,7 +214,8 @@ export default {
},
{
prop
:
'project_sso_id'
,
slots
:
'filter-project-ssoid'
,
label
:
'项目负责人:'
},
{
prop
:
'region'
,
slots
:
'filter-region'
,
label
:
'所在地区:'
},
{
prop
:
'universityLevel'
,
slots
:
'filter-universityLevel'
,
label
:
'院校层次:'
}
{
prop
:
'universityLevel'
,
slots
:
'filter-universityLevel'
,
label
:
'院校层次:'
},
{
prop
:
'group_id'
,
slots
:
'filter-customerGroup'
,
label
:
'所属分组:'
}
],
columns
:
[
// { type: 'selection', minWidth: '40px' },
...
...
@@ -241,6 +253,7 @@ export default {
}
},
{
prop
:
'region'
,
label
:
'所在地区'
,
minWidth
:
'170px'
},
{
prop
:
'groups'
,
label
:
'所属分组'
,
minWidth
:
'170px'
,
slots
:
'table-group'
},
{
prop
:
'last_record_time'
,
label
:
'最近跟进时间'
,
minWidth
:
'150px'
},
{
prop
:
'project_count'
,
label
:
'合作项目'
,
minWidth
:
'80px'
},
{
prop
:
'contact_count'
,
label
:
'联系人'
,
minWidth
:
'80px'
},
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论