浏览代码

职位浏览量

Xiao_123 8 月之前
父节点
当前提交
9b905ce307

+ 8 - 0
src/api/recruit/enterprise/statistics/index.js

@@ -40,6 +40,14 @@ export const getRecentConversations = async (data) => {
   })
 }
 
+// 获取发布职位浏览量
+export const getJobBrowseNum = async (params) => {
+  return await request.get({
+    url: '/app-api/menduner/system/recruit/analysis/get/job/browse/num',
+    params
+  })
+}
+
 // 获取发布职位浏览量统计分析明细
 export const getJobBrowseNumPage = async (params) => {
   return await request.get({

+ 29 - 10
src/views/recruit/enterprise/statistics/components/overview.vue

@@ -35,7 +35,7 @@
 <script setup>
 defineOptions({ name: 'overview-page'})
 import { reactive, ref, watch, onMounted } from 'vue'
-import { getJobBrowseNumPage, getJobCvNewPage, getJobCvLookPage, getInterviewWaitPage, getInterviewCompletePage } from '@/api/recruit/enterprise/statistics'
+import { getJobBrowseNumPage, getJobCvNewPage, getJobCvLookPage, getInterviewWaitPage, getInterviewCompletePage, getJobBrowseNum } from '@/api/recruit/enterprise/statistics'
 import headersList from '@/utils/statisticsHeaders'
 import { dealDictArrayData, dealDictObjData } from '@/utils/position'
 
@@ -54,19 +54,30 @@ const title = ref('')
 const data = ref([])
 // 数据概况
 const overview = ref([
-  { title: '职位浏览量', value: 0, desc: '指全部职位被候选人查看的人数总和', items: [], api: getJobBrowseNumPage, deal: true },
+  { title: '职位浏览量', value: 0, desc: '指全部职位被候选人查看的人数总和', items: [], api: getJobBrowseNum, deal: true }, // getJobBrowseNumPage
   { title: '收到的简历', value: 0, desc: '指全部职位收到简历的总数', items: [], api: getJobCvNewPage, isDeal: true },
   { title: '已查看简历', value: 0, desc: '指查看候选人主动发送的简历数量', items: [], api: getJobCvLookPage },
   { title: '已邀面试', value: 0, desc: '已邀约的面试人数', items: [], api: getInterviewWaitPage },
   { title: '面试完成', value: 0, desc: '已完成面试的人数', items: [], api: getInterviewCompletePage }
 ])
 
+const getBrowseDetails = async () => {
+  const { list, total: number } = await getJobBrowseNumPage({ ...props.query, ...queryParams })
+  data.value = dealDictArrayData([], list)
+  total.value = number
+}
+
 // 钻取
-const handleDetails = (val, index) => {
-  show.value = true
+const handleDetails = async (val, index) => {
   current.value = index
-  total.value = val.value
   title.value = val.title + '明细'
+  show.value = true
+  // 职位浏览量钻取
+  if (val.deal) {
+    getBrowseDetails()
+    return
+  }
+  total.value = val.value
   data.value = val.items
 }
 
@@ -81,11 +92,13 @@ const handleClose = () => {
 
 const handleChangePage = (val) => {
   queryParams.pageNo = val
-  getData(current.value)
+  if (current.value !== 0) return getData(current.value)
+  getBrowseDetails()
 }
 
 // 统计数值
 const getData = async (index) => {
+  // 钻取
   if (index !== null && index !== undefined) {
     const obj = overview.value[index]
     const res = await obj.api({ ...props.query, ...queryParams })
@@ -96,13 +109,19 @@ const getData = async (index) => {
     }) : res.list
     return
   }
+  // 统计数值
   overview.value.forEach(async (item) => {
-    const { list, total } = await item.api({ ...props.query, ...queryParams })
-    item.value = total
-    item.items = item.deal ? dealDictArrayData([], list) : item.isDeal ? list.map(e => {
+    const result = await item.api({ ...props.query, ...queryParams })
+    // 职位浏览量 
+    if (item.deal) {
+      item.value = result
+      return
+    }
+    item.value = result.total
+    item.items = item.deal ? dealDictArrayData([], result.list) : item.isDeal ? result.list.map(e => {
       e.job = dealDictObjData({}, e.job)
       return e
-    }) : list
+    }) : result.list
   })
 }