diff --git a/src/api/admin.ts b/src/api/admin.ts index e2ed477..e5ce475 100644 --- a/src/api/admin.ts +++ b/src/api/admin.ts @@ -16,6 +16,10 @@ export function apiOrganizationByIdList() { export function apiOrganizationAllList() { return request.get({ url: '/organization/getAllChildOrgInfo' }) } +// 岗位列表 +export function postLists(params?: any) { + return request.get({ url: '/system/post/list', data: params }) +} // 数据简报 export function apiDataOverview(params: any) { @@ -29,3 +33,11 @@ export function convertProcessApi(params?: any) { export function clueStatusApi(params?: any) { return request.get({ url: '/control/clueStatistics', data: params }) } +// 成交客户转化统计 +export function convertedSuccessApi(params?: any) { + return request.get({ url: '/control/clueTransactionCustomerStatistics', data: params }) +} +// Top5 +export function rankListApi(params?: any) { + return request.get({ url: '/control/top', data: params }) +} diff --git a/src/bundle/pages/rank-list/index.vue b/src/bundle/pages/rank-list/index.vue index dd1ace7..e9bb8fb 100644 --- a/src/bundle/pages/rank-list/index.vue +++ b/src/bundle/pages/rank-list/index.vue @@ -25,7 +25,7 @@ - + --> @@ -90,6 +90,7 @@ const handleCardClick = (type: string, item: any) => { break } } +// 查询条件 const handleConfirm = (type: string, item) => { switch (type) { case 'organization': @@ -100,11 +101,14 @@ const handleConfirm = (type: string, item) => { break case 'position': + console.log(item) + break default: break } } +// 重置条件 const handleReset = (type: string) => { switch (type) { case 'organization': diff --git a/src/components/widgets/admin/team/components/clue-status.vue b/src/components/widgets/admin/team/components/clue-status.vue index 5a95547..f457222 100644 --- a/src/components/widgets/admin/team/components/clue-status.vue +++ b/src/components/widgets/admin/team/components/clue-status.vue @@ -14,11 +14,17 @@ :key="`unique_${index}`" > {{ item.label }} - + + + + + {{ item.value + '%' }} + @@ -56,6 +62,8 @@ const fetchData = async (payload: IForm) => { value: result[item] || 0 } }) + console.log(data.value) + loading.value = false } catch (error) {} } diff --git a/src/components/widgets/admin/team/components/converted-overview.vue b/src/components/widgets/admin/team/components/converted-overview.vue index efc4ba3..7d8e2d7 100644 --- a/src/components/widgets/admin/team/components/converted-overview.vue +++ b/src/components/widgets/admin/team/components/converted-overview.vue @@ -26,6 +26,7 @@ import { ref } from 'vue' import card from '../../card.vue' import { IForm } from '../index.vue' +import { convertedSuccessApi } from '@/api/admin' interface IConvertedData { name: string @@ -33,29 +34,24 @@ interface IConvertedData { } const data = ref([]) const loading = ref(false) -const fetchData = (payload: IForm) => { +const fetchData = async (payload: IForm) => { loading.value = true - setTimeout(() => { - data.value = [ - { - name: '湛江团队', + try { + const result = await convertedSuccessApi(payload) + console.log(result) + data.value = result.map(item => { + const { clientCount, clueCount, percentConversion } = item.leadToCustomerStatisticsVo + return { + name: item.organizationName, children: [ - { label: '线索', value: '52个' }, - { label: '成交客户', value: '52个' }, - { label: '转化率', value: '15%' } - ] - }, - { - name: '广州团队', - children: [ - { label: '线索', value: '52个' }, - { label: '成交客户', value: '52个' }, - { label: '转化率', value: '15%' } + { label: '线索', value: clueCount ?? 0 + '个' }, + { label: '成交客户', value: clientCount ?? 0 + '个' }, + { label: '转化率', value: percentConversion } ] } - ] - loading.value = false - }, 300) + }) + } catch (error) {} + loading.value = false } defineExpose({ fetchData diff --git a/src/components/widgets/admin/team/components/rank.vue b/src/components/widgets/admin/team/components/rank.vue index 10f1353..2f84568 100644 --- a/src/components/widgets/admin/team/components/rank.vue +++ b/src/components/widgets/admin/team/components/rank.vue @@ -1,6 +1,6 @@ -