CRM:统一日志获取接口

(cherry picked from commit 5adf75d15b)
pull/420/head
puhui999 2024-01-27 15:15:07 +08:00 committed by shizhong
parent 9f599fb790
commit d3f8d40e40
8 changed files with 41 additions and 34 deletions

View File

@ -85,8 +85,3 @@ 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 })
}

View File

@ -73,11 +73,6 @@ export const getSimpleCustomerList = async () => {
return await request.get({ url: `/crm/customer/list-all-simple` }) return await request.get({ url: `/crm/customer/list-all-simple` })
} }
// 查询客户操作日志
export const getOperateLogPage = async (id: number) => {
return await request.get({ url: '/crm/customer/operate-log-page?id=' + id })
}
// ======================= 业务操作 ======================= // ======================= 业务操作 =======================
export interface TransferReqVO { export interface TransferReqVO {

View File

@ -0,0 +1,11 @@
import request from '@/config/axios'
export interface OperateLogVO extends PageParam {
bizType: number
bizId: number
}
// 获得操作日志
export const getOperateLogPage = async (params: OperateLogVO) => {
return await request.get({ url: `/crm/operate-log/page`, params })
}

View File

@ -22,8 +22,11 @@ export enum BizTypeEnum {
CRM_LEADS = 1, // 线索 CRM_LEADS = 1, // 线索
CRM_CUSTOMER = 2, // 客户 CRM_CUSTOMER = 2, // 客户
CRM_CONTACT = 3, // 联系人 CRM_CONTACT = 3, // 联系人
CRM_BUSINESS = 5, // 商机 CRM_BUSINESS = 4, // 商机
CRM_CONTRACT = 6 // 合同 CRM_CONTRACT = 5, // 合同
CRM_PRODUCT = 6, // 产品
CRM_RECEIVABLE = 7, // 回款
CRM_RECEIVABLE_PLAN = 8 // 回款计划
} }
/** /**

View File

@ -41,8 +41,3 @@ export const deleteProduct = async (id: number) => {
export const exportProduct = async (params) => { export const exportProduct = async (params) => {
return await request.download({ url: `/crm/product/export-excel`, params }) return await request.download({ url: `/crm/product/export-excel`, params })
} }
// 查询产品操作日志
export const getOperateLogPage = async (params: any) => {
return await request.get({ url: '/crm/product/operate-log-page', params })
}

View File

@ -21,7 +21,7 @@
</el-tabs> </el-tabs>
</el-col> </el-col>
</template> </template>
<script setup lang="ts"> <script lang="ts" setup>
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'
@ -30,6 +30,7 @@ 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' import { OperateLogV2VO } from '@/api/system/operatelog'
import { getOperateLogPage } from '@/api/crm/operateLog'
defineOptions({ name: 'CrmContactDetail' }) defineOptions({ name: 'CrmContactDetail' })
@ -57,7 +58,8 @@ const getOperateLog = async (contactId: number) => {
if (!contactId) { if (!contactId) {
return return
} }
const data = await ContactApi.getOperateLogPage({ const data = await getOperateLogPage({
bizType: BizTypeEnum.CRM_CONTACT,
bizId: contactId bizId: contactId
}) })
logList.value = data.list logList.value = data.list

View File

@ -91,6 +91,7 @@ import CrmTransferForm from '@/views/crm/permission/components/TransferForm.vue'
import FollowUpList from '@/views/crm/followup/index.vue' import FollowUpList from '@/views/crm/followup/index.vue'
import { BizTypeEnum } from '@/api/crm/permission' import { BizTypeEnum } from '@/api/crm/permission'
import type { OperateLogV2VO } from '@/api/system/operatelog' import type { OperateLogV2VO } from '@/api/system/operatelog'
import { getOperateLogPage } from '@/api/crm/operateLog'
defineOptions({ name: 'CrmCustomerDetail' }) defineOptions({ name: 'CrmCustomerDetail' })
@ -164,7 +165,10 @@ const getOperateLog = async () => {
if (!customerId.value) { if (!customerId.value) {
return return
} }
const data = await CustomerApi.getOperateLogPage(customerId.value) const data = await getOperateLogPage({
bizType: BizTypeEnum.CRM_CUSTOMER,
bizId: customerId.value
})
logList.value = data.list logList.value = data.list
} }

View File

@ -1,26 +1,29 @@
<template> <template>
<ProductDetailsHeader :product="product" :loading="loading" @refresh="getProductData(id)"/> <ProductDetailsHeader :loading="loading" :product="product" @refresh="getProductData(id)" />
<el-col> <el-col>
<el-tabs> <el-tabs>
<el-tab-pane label="详细资料"> <el-tab-pane label="详细资料">
<ProductDetailsInfo :product="product"/> <ProductDetailsInfo :product="product" />
</el-tab-pane> </el-tab-pane>
<el-tab-pane label="操作日志"> <el-tab-pane label="操作日志">
<OperateLogV2 :log-list="logList"/> <OperateLogV2 :log-list="logList" />
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
</el-col> </el-col>
</template> </template>
<script setup lang="ts"> <script lang="ts" setup>
import {useTagsViewStore} from '@/store/modules/tagsView' import { useTagsViewStore } from '@/store/modules/tagsView'
import {OperateLogV2VO} from '@/api/system/operatelog' import { OperateLogV2VO } from '@/api/system/operatelog'
import * as ProductApi from '@/api/crm/product' import * as ProductApi from '@/api/crm/product'
import ProductDetailsHeader from '@/views/crm/product/detail/ProductDetailsHeader.vue' import ProductDetailsHeader from '@/views/crm/product/detail/ProductDetailsHeader.vue'
import ProductDetailsInfo from '@/views/crm/product/detail/ProductDetailsInfo.vue' import ProductDetailsInfo from '@/views/crm/product/detail/ProductDetailsInfo.vue'
import { BizTypeEnum } from '@/api/crm/permission'
import { getOperateLogPage } from '@/api/crm/operateLog'
defineOptions({name: 'CrmProductDetail'}) defineOptions({ name: 'CrmProductDetail' })
const route = useRoute() const route = useRoute()
const message = useMessage()
const id = Number(route.params.id) // const id = Number(route.params.id) //
const loading = ref(true) // const loading = ref(true) //
const product = ref<ProductApi.ProductVO>({} as ProductApi.ProductVO) // const product = ref<ProductApi.ProductVO>({} as ProductApi.ProductVO) //
@ -36,26 +39,25 @@ const getProductData = async (id: number) => {
} }
} }
/** /** 获取操作日志 */
* 获取操作日志
*/
const logList = ref<OperateLogV2VO[]>([]) // const logList = ref<OperateLogV2VO[]>([]) //
const getOperateLog = async (productId: number) => { const getOperateLog = async (productId: number) => {
if (!productId) { if (!productId) {
return return
} }
const data = await ProductApi.getOperateLogPage({ const data = await getOperateLogPage({
bizType: BizTypeEnum.CRM_PRODUCT,
bizId: productId bizId: productId
}) })
logList.value = data.list logList.value = data.list
} }
/** 初始化 */ /** 初始化 */
const {delView} = useTagsViewStore() // const { delView } = useTagsViewStore() //
const {currentRoute} = useRouter() // const { currentRoute } = useRouter() //
onMounted(async () => { onMounted(async () => {
if (!id) { if (!id) {
ElMessage.warning('参数错误,产品不能为空!') message.warning('参数错误,产品不能为空!')
delView(unref(currentRoute)) delView(unref(currentRoute))
return return
} }