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