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
3af6811c
authored
Jan 06, 2024
by
zyna
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
crm联系人新增操作日志
parent
8801c82e
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
28 additions
and
7 deletions
+28
-7
src/api/crm/contact/index.ts
+6
-0
src/views/crm/contact/ContactForm.vue
+1
-2
src/views/crm/contact/detail/ContactDetailsInfo.vue
+3
-2
src/views/crm/contact/detail/index.vue
+18
-3
No files found.
src/api/crm/contact/index.ts
View file @
3af6811c
...
@@ -80,3 +80,8 @@ export const createContactBusinessList = async (data: ContactBusinessReqVO) => {
...
@@ -80,3 +80,8 @@ export const createContactBusinessList = async (data: ContactBusinessReqVO) => {
export
const
deleteContactBusinessList
=
async
(
data
:
ContactBusinessReqVO
)
=>
{
export
const
deleteContactBusinessList
=
async
(
data
:
ContactBusinessReqVO
)
=>
{
return
await
request
.
delete
({
url
:
`/crm/contact/delete-business-list`
,
data
})
return
await
request
.
delete
({
url
:
`/crm/contact/delete-business-list`
,
data
})
}
}
// 查询联系人操作日志
export
const
getOperateLogPage
=
async
(
params
:
any
)
=>
{
return
await
request
.
get
({
url
:
'/crm/contact/operate-log-page'
,
params
})
}
\ No newline at end of file
src/views/crm/contact/ContactForm.vue
View file @
3af6811c
...
@@ -136,7 +136,6 @@
...
@@ -136,7 +136,6 @@
</el-form-item>
</el-form-item>
</el-col>
</el-col>
</el-row>
</el-row>
<!-- TODO @zyna:解决下 ide 报错 -->
<el-row>
<el-row>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"直属上级"
prop=
"parentId"
>
<el-form-item
label=
"直属上级"
prop=
"parentId"
>
...
@@ -233,7 +232,7 @@ const ownerUserList = ref<any[]>([])
...
@@ -233,7 +232,7 @@ const ownerUserList = ref<any[]>([])
const
userList
=
ref
<
UserApi
.
UserVO
[]
>
([])
// 用户列表
const
userList
=
ref
<
UserApi
.
UserVO
[]
>
([])
// 用户列表
// TODO 芋艿:统一的客户选择面板
// TODO 芋艿:统一的客户选择面板
const
customerList
=
ref
<
CustomerApi
.
CustomerVO
[]
>
([])
// 客户列表
const
customerList
=
ref
<
CustomerApi
.
CustomerVO
[]
>
([])
// 客户列表
const
allContactList
=
ref
([])
// 所有联系人列表
const
allContactList
=
ref
<
ContactApi
.
ContactVO
[]
>
([])
// 所有联系人列表
/** 打开弹窗 */
/** 打开弹窗 */
const
open
=
async
(
type
:
string
,
id
?:
number
)
=>
{
const
open
=
async
(
type
:
string
,
id
?:
number
)
=>
{
dialogVisible
.
value
=
true
dialogVisible
.
value
=
true
...
...
src/views/crm/contact/detail/ContactDetailsInfo.vue
View file @
3af6811c
<
template
>
<
template
>
<
!-- TODO @zyna:少了一个外边框 --
>
<
ContentWrap
>
<el-collapse
v-model=
"activeNames"
>
<el-collapse
v-model=
"activeNames"
>
<el-collapse-item
name=
"basicInfo"
>
<el-collapse-item
name=
"basicInfo"
>
<template
#
title
>
<template
#
title
>
...
@@ -34,7 +34,7 @@
...
@@ -34,7 +34,7 @@
{{ contact.areaName }}
{{ contact.areaName }}
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label=
"详细地址"
>
<el-descriptions-item
label=
"详细地址"
>
{{ contact.a
ddress }}
{{ contact.detailA
ddress }}
</el-descriptions-item>
</el-descriptions-item>
<el-descriptions-item
label=
"性别"
>
<el-descriptions-item
label=
"性别"
>
<dict-tag
:type=
"DICT_TYPE.SYSTEM_USER_SEX"
:value=
"contact.sex"
/>
<dict-tag
:type=
"DICT_TYPE.SYSTEM_USER_SEX"
:value=
"contact.sex"
/>
...
@@ -64,6 +64,7 @@
...
@@ -64,6 +64,7 @@
</el-descriptions>
</el-descriptions>
</el-collapse-item>
</el-collapse-item>
</el-collapse>
</el-collapse>
</ContentWrap>
</template>
</template>
<
script
setup
lang=
"ts"
>
<
script
setup
lang=
"ts"
>
import
*
as
ContactApi
from
'@/api/crm/contact'
import
*
as
ContactApi
from
'@/api/crm/contact'
...
...
src/views/crm/contact/detail/index.vue
View file @
3af6811c
...
@@ -5,7 +5,9 @@
...
@@ -5,7 +5,9 @@
<el-tab-pane
label=
"详细资料"
>
<el-tab-pane
label=
"详细资料"
>
<ContactDetailsInfo
:contact=
"contact"
/>
<ContactDetailsInfo
:contact=
"contact"
/>
</el-tab-pane>
</el-tab-pane>
<el-tab-pane
label=
"操作日志"
lazy
>
TODO 待开发
</el-tab-pane>
<el-tab-pane
label=
"操作日志"
>
<OperateLogV2
:log-list=
"logList"
/>
</el-tab-pane>
<el-tab-pane
label=
"团队成员"
lazy
>
<el-tab-pane
label=
"团队成员"
lazy
>
<PermissionList
:biz-id=
"contact.id!"
:biz-type=
"BizTypeEnum.CRM_CONTACT"
/>
<PermissionList
:biz-id=
"contact.id!"
:biz-type=
"BizTypeEnum.CRM_CONTACT"
/>
</el-tab-pane>
</el-tab-pane>
...
@@ -20,7 +22,6 @@
...
@@ -20,7 +22,6 @@
</el-col>
</el-col>
</
template
>
</
template
>
<
script
setup
lang=
"ts"
>
<
script
setup
lang=
"ts"
>
import
{
ElMessage
}
from
'element-plus'
// TODO @zyna:使用 hook 引入 message
import
{
useTagsViewStore
}
from
'@/store/modules/tagsView'
import
{
useTagsViewStore
}
from
'@/store/modules/tagsView'
import
*
as
ContactApi
from
'@/api/crm/contact'
import
*
as
ContactApi
from
'@/api/crm/contact'
import
ContactDetailsHeader
from
'@/views/crm/contact/detail/ContactDetailsHeader.vue'
import
ContactDetailsHeader
from
'@/views/crm/contact/detail/ContactDetailsHeader.vue'
...
@@ -28,6 +29,7 @@ import ContactDetailsInfo from '@/views/crm/contact/detail/ContactDetailsInfo.vu
...
@@ -28,6 +29,7 @@ import ContactDetailsInfo from '@/views/crm/contact/detail/ContactDetailsInfo.vu
import
BusinessList
from
'@/views/crm/business/components/BusinessList.vue'
// 商机列表
import
BusinessList
from
'@/views/crm/business/components/BusinessList.vue'
// 商机列表
import
PermissionList
from
'@/views/crm/permission/components/PermissionList.vue'
// 团队成员列表(权限)
import
PermissionList
from
'@/views/crm/permission/components/PermissionList.vue'
// 团队成员列表(权限)
import
{
BizTypeEnum
}
from
'@/api/crm/permission'
import
{
BizTypeEnum
}
from
'@/api/crm/permission'
import
{
OperateLogV2VO
}
from
'@/api/system/operatelog'
defineOptions
({
name
:
'CrmContactDetail'
})
defineOptions
({
name
:
'CrmContactDetail'
})
...
@@ -41,11 +43,24 @@ const getContactData = async (id: number) => {
...
@@ -41,11 +43,24 @@ const getContactData = async (id: number) => {
loading
.
value
=
true
loading
.
value
=
true
try
{
try
{
contact
.
value
=
await
ContactApi
.
getContact
(
id
)
contact
.
value
=
await
ContactApi
.
getContact
(
id
)
await
getOperateLog
(
id
)
}
finally
{
}
finally
{
loading
.
value
=
false
loading
.
value
=
false
}
}
}
}
const
logList
=
ref
<
OperateLogV2VO
[]
>
([])
// 操作日志列表
/**
* 获取操作日志
*/
const
getOperateLog
=
async
(
contactId
:
number
)
=>
{
if
(
!
contactId
)
{
return
}
const
data
=
await
ContactApi
.
getOperateLogPage
({
bizId
:
contactId
})
logList
.
value
=
data
.
list
}
/** 初始化 */
/** 初始化 */
const
{
delView
}
=
useTagsViewStore
()
// 视图操作
const
{
delView
}
=
useTagsViewStore
()
// 视图操作
const
{
currentRoute
}
=
useRouter
()
// 路由
const
{
currentRoute
}
=
useRouter
()
// 路由
...
...
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