Skip to content

Commit 3af6811

Browse files
committed
crm联系人新增操作日志
1 parent 8801c82 commit 3af6811

File tree

4 files changed

+90
-70
lines changed

4 files changed

+90
-70
lines changed

src/api/crm/contact/index.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,3 +80,8 @@ export const createContactBusinessList = async (data: ContactBusinessReqVO) => {
8080
export const deleteContactBusinessList = async (data: ContactBusinessReqVO) => {
8181
return await request.delete({ url: `/crm/contact/delete-business-list`, data })
8282
}
83+
84+
// 查询联系人操作日志
85+
export const getOperateLogPage = async (params: any) => {
86+
return await request.get({ url: '/crm/contact/operate-log-page', params })
87+
}

src/views/crm/contact/ContactForm.vue

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,6 @@
136136
</el-form-item>
137137
</el-col>
138138
</el-row>
139-
<!-- TODO @zyna:解决下 ide 报错 -->
140139
<el-row>
141140
<el-col :span="12">
142141
<el-form-item label="直属上级" prop="parentId">
@@ -233,7 +232,7 @@ const ownerUserList = ref<any[]>([])
233232
const userList = ref<UserApi.UserVO[]>([]) // 用户列表
234233
// TODO 芋艿:统一的客户选择面板
235234
const customerList = ref<CustomerApi.CustomerVO[]>([]) // 客户列表
236-
const allContactList = ref([]) // 所有联系人列表
235+
const allContactList = ref<ContactApi.ContactVO[]>([]) // 所有联系人列表
237236
/** 打开弹窗 */
238237
const open = async (type: string, id?: number) => {
239238
dialogVisible.value = true

src/views/crm/contact/detail/ContactDetailsInfo.vue

Lines changed: 66 additions & 65 deletions
Original file line numberDiff line numberDiff line change
@@ -1,69 +1,70 @@
11
<template>
2-
<!-- TODO @zyna:少了一个外边框 -->
3-
<el-collapse v-model="activeNames">
4-
<el-collapse-item name="basicInfo">
5-
<template #title>
6-
<span class="text-base font-bold">基本信息</span>
7-
</template>
8-
<el-descriptions :column="4">
9-
<el-descriptions-item label="姓名">
10-
{{ contact.name }}
11-
</el-descriptions-item>
12-
<el-descriptions-item label="客户">
13-
{{ contact.customerName }}
14-
</el-descriptions-item>
15-
<el-descriptions-item label="手机">
16-
{{ contact.mobile }}
17-
</el-descriptions-item>
18-
<el-descriptions-item label="座机">
19-
{{ contact.telephone }}
20-
</el-descriptions-item>
21-
<el-descriptions-item label="邮箱">
22-
{{ contact.email }}
23-
</el-descriptions-item>
24-
<el-descriptions-item label="QQ">
25-
{{ contact.qq }}
26-
</el-descriptions-item>
27-
<el-descriptions-item label="微信">
28-
{{ contact.wechat }}
29-
</el-descriptions-item>
30-
<el-descriptions-item label="下次联系时间">
31-
{{ contact.nextTime ? formatDate(contact.nextTime) : '空' }}
32-
</el-descriptions-item>
33-
<el-descriptions-item label="所在地">
34-
{{ contact.areaName }}
35-
</el-descriptions-item>
36-
<el-descriptions-item label="详细地址">
37-
{{ contact.address }}
38-
</el-descriptions-item>
39-
<el-descriptions-item label="性别">
40-
<dict-tag :type="DICT_TYPE.SYSTEM_USER_SEX" :value="contact.sex" />
41-
</el-descriptions-item>
42-
<el-descriptions-item label="备注">
43-
{{ contact.remark }}
44-
</el-descriptions-item>
45-
</el-descriptions>
46-
</el-collapse-item>
47-
<el-collapse-item name="systemInfo">
48-
<template #title>
49-
<span class="text-base font-bold">系统信息</span>
50-
</template>
51-
<el-descriptions :column="2">
52-
<el-descriptions-item label="负责人">
53-
{{ contact.ownerUserName }}
54-
</el-descriptions-item>
55-
<el-descriptions-item label="创建人">
56-
{{ contact.creatorName }}
57-
</el-descriptions-item>
58-
<el-descriptions-item label="创建时间">
59-
{{ contact.createTime ? formatDate(contact.createTime) : '空' }}
60-
</el-descriptions-item>
61-
<el-descriptions-item label="更新时间">
62-
{{ contact.updateTime ? formatDate(contact.updateTime) : '空' }}
63-
</el-descriptions-item>
64-
</el-descriptions>
65-
</el-collapse-item>
66-
</el-collapse>
2+
<ContentWrap>
3+
<el-collapse v-model="activeNames">
4+
<el-collapse-item name="basicInfo">
5+
<template #title>
6+
<span class="text-base font-bold">基本信息</span>
7+
</template>
8+
<el-descriptions :column="4">
9+
<el-descriptions-item label="姓名">
10+
{{ contact.name }}
11+
</el-descriptions-item>
12+
<el-descriptions-item label="客户">
13+
{{ contact.customerName }}
14+
</el-descriptions-item>
15+
<el-descriptions-item label="手机">
16+
{{ contact.mobile }}
17+
</el-descriptions-item>
18+
<el-descriptions-item label="座机">
19+
{{ contact.telephone }}
20+
</el-descriptions-item>
21+
<el-descriptions-item label="邮箱">
22+
{{ contact.email }}
23+
</el-descriptions-item>
24+
<el-descriptions-item label="QQ">
25+
{{ contact.qq }}
26+
</el-descriptions-item>
27+
<el-descriptions-item label="微信">
28+
{{ contact.wechat }}
29+
</el-descriptions-item>
30+
<el-descriptions-item label="下次联系时间">
31+
{{ contact.nextTime ? formatDate(contact.nextTime) : '空' }}
32+
</el-descriptions-item>
33+
<el-descriptions-item label="所在地">
34+
{{ contact.areaName }}
35+
</el-descriptions-item>
36+
<el-descriptions-item label="详细地址">
37+
{{ contact.detailAddress }}
38+
</el-descriptions-item>
39+
<el-descriptions-item label="性别">
40+
<dict-tag :type="DICT_TYPE.SYSTEM_USER_SEX" :value="contact.sex" />
41+
</el-descriptions-item>
42+
<el-descriptions-item label="备注">
43+
{{ contact.remark }}
44+
</el-descriptions-item>
45+
</el-descriptions>
46+
</el-collapse-item>
47+
<el-collapse-item name="systemInfo">
48+
<template #title>
49+
<span class="text-base font-bold">系统信息</span>
50+
</template>
51+
<el-descriptions :column="2">
52+
<el-descriptions-item label="负责人">
53+
{{ contact.ownerUserName }}
54+
</el-descriptions-item>
55+
<el-descriptions-item label="创建人">
56+
{{ contact.creatorName }}
57+
</el-descriptions-item>
58+
<el-descriptions-item label="创建时间">
59+
{{ contact.createTime ? formatDate(contact.createTime) : '空' }}
60+
</el-descriptions-item>
61+
<el-descriptions-item label="更新时间">
62+
{{ contact.updateTime ? formatDate(contact.updateTime) : '空' }}
63+
</el-descriptions-item>
64+
</el-descriptions>
65+
</el-collapse-item>
66+
</el-collapse>
67+
</ContentWrap>
6768
</template>
6869
<script setup lang="ts">
6970
import * as ContactApi from '@/api/crm/contact'

src/views/crm/contact/detail/index.vue

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@
55
<el-tab-pane label="详细资料">
66
<ContactDetailsInfo :contact="contact" />
77
</el-tab-pane>
8-
<el-tab-pane label="操作日志" lazy>TODO 待开发</el-tab-pane>
8+
<el-tab-pane label="操作日志">
9+
<OperateLogV2 :log-list="logList" />
10+
</el-tab-pane>
911
<el-tab-pane label="团队成员" lazy>
1012
<PermissionList :biz-id="contact.id!" :biz-type="BizTypeEnum.CRM_CONTACT" />
1113
</el-tab-pane>
@@ -20,14 +22,14 @@
2022
</el-col>
2123
</template>
2224
<script setup lang="ts">
23-
import { ElMessage } from 'element-plus' // TODO @zyna:使用 hook 引入 message
2425
import { useTagsViewStore } from '@/store/modules/tagsView'
2526
import * as ContactApi from '@/api/crm/contact'
2627
import ContactDetailsHeader from '@/views/crm/contact/detail/ContactDetailsHeader.vue'
2728
import ContactDetailsInfo from '@/views/crm/contact/detail/ContactDetailsInfo.vue'
2829
import BusinessList from '@/views/crm/business/components/BusinessList.vue' // 商机列表
2930
import PermissionList from '@/views/crm/permission/components/PermissionList.vue' // 团队成员列表(权限)
3031
import { BizTypeEnum } from '@/api/crm/permission'
32+
import { OperateLogV2VO } from '@/api/system/operatelog'
3133
3234
defineOptions({ name: 'CrmContactDetail' })
3335
@@ -41,11 +43,24 @@ const getContactData = async (id: number) => {
4143
loading.value = true
4244
try {
4345
contact.value = await ContactApi.getContact(id)
46+
await getOperateLog(id)
4447
} finally {
4548
loading.value = false
4649
}
4750
}
48-
51+
const logList = ref<OperateLogV2VO[]>([]) // 操作日志列表
52+
/**
53+
* 获取操作日志
54+
*/
55+
const getOperateLog = async (contactId: number) => {
56+
if (!contactId) {
57+
return
58+
}
59+
const data = await ContactApi.getOperateLogPage({
60+
bizId: contactId
61+
})
62+
logList.value = data.list
63+
}
4964
/** 初始化 */
5065
const { delView } = useTagsViewStore() // 视图操作
5166
const { currentRoute } = useRouter() // 路由

0 commit comments

Comments
 (0)