|
@@ -10,10 +10,10 @@
|
|
</template>
|
|
</template>
|
|
</v-tooltip>
|
|
</v-tooltip>
|
|
</div>
|
|
</div>
|
|
- <div class="overview-item-value my-3">{{ val.value }}</div>
|
|
|
|
|
|
+ <div class="overview-item-value my-3">{{ overviewData[val.key] }}</div>
|
|
<div class="font-size-14">
|
|
<div class="font-size-14">
|
|
环比
|
|
环比
|
|
- <span class="color-error">0% ↑</span>
|
|
|
|
|
|
+ <span class="color-error">{{ typeof val.ratio === 'number' ? val.ratio : overviewData[val.ratio] }}% ↑</span>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@@ -23,20 +23,41 @@
|
|
|
|
|
|
<script setup>
|
|
<script setup>
|
|
defineOptions({ name: 'overview-page'})
|
|
defineOptions({ name: 'overview-page'})
|
|
-import { ref, onMounted } from 'vue'
|
|
|
|
|
|
+import { ref, onMounted, watch } from 'vue'
|
|
import * as echarts from 'echarts'
|
|
import * as echarts from 'echarts'
|
|
|
|
+import { getRecentConversations } from '@/api/recruit/enterprise/statistics'
|
|
|
|
|
|
|
|
+const props = defineProps({
|
|
|
|
+ query: Object
|
|
|
|
+})
|
|
|
|
+
|
|
|
|
+const overviewData = ref({
|
|
|
|
+ position: 0,
|
|
|
|
+ resume: 0,
|
|
|
|
+ viewResume: 0,
|
|
|
|
+ dealResume: 0,
|
|
|
|
+ interview: 0
|
|
|
|
+})
|
|
// 数据概况
|
|
// 数据概况
|
|
const overview = ref([
|
|
const overview = ref([
|
|
- { title: '职位浏览量', value: 86, desc: '指全部职位被候选人查看的人数总和' },
|
|
|
|
- { title: '收到简历量', value: 12, desc: '指全部职位收到简历的总数' },
|
|
|
|
- { title: '查看收到简历', value: 0, desc: '指查看候选人主动发送的简历数量' },
|
|
|
|
- { title: '已处理简历', value: 4, desc: '指招聘方标记"通过筛选"与"不合适"的简历数' },
|
|
|
|
- { title: '主动联系我的人', value: 0, desc: '指候选人主动发起沟通的人数' },
|
|
|
|
- { title: '我主动联系的人', value: 5, desc: '指候选人主动发起沟通的人数' },
|
|
|
|
- { title: '面试数量', value: 0, desc: '面试人数的总数' }
|
|
|
|
|
|
+ { title: '职位浏览量', key: 'position', ratio: 0, desc: '指全部职位被候选人查看的人数总和' },
|
|
|
|
+ { title: '收到简历量', key: 'resume', ratio: 0, desc: '指全部职位收到简历的总数' },
|
|
|
|
+ { title: '查看收到简历', key: 'viewResume', ratio: 0, desc: '指查看候选人主动发送的简历数量' },
|
|
|
|
+ { title: '已处理简历', key: 'dealResume', ratio: 0, desc: '指招聘方标记"通过筛选"与"不合适"的简历数' },
|
|
|
|
+ { title: '主动联系我的人', key: 'activeContactCount', ratio: 'qqactiveContactCount', desc: '指候选人主动发起沟通的人数' },
|
|
|
|
+ { title: '我主动联系的人', key: 'usContactCount', ratio: 'qqUsContactCount', desc: '指候选人主动发起沟通的人数' },
|
|
|
|
+ { title: '面试数量', key: 'interview', ratio: 0, desc: '面试人数的总数' }
|
|
])
|
|
])
|
|
|
|
|
|
|
|
+// 主动联系我的、我主动联系的人
|
|
|
|
+const accountInfo = localStorage.getItem('accountInfo') ? JSON.parse(localStorage.getItem('accountInfo')) : {}
|
|
|
|
+const getRecent = async () => {
|
|
|
|
+ if (!accountInfo || !accountInfo.userId) return
|
|
|
|
+ const data = await getRecentConversations({ userId: accountInfo.userId, ...props.query })
|
|
|
|
+ overviewData.value = Object.assign(overviewData.value, data)
|
|
|
|
+}
|
|
|
|
+getRecent()
|
|
|
|
+
|
|
onMounted(() => {
|
|
onMounted(() => {
|
|
var chartDom = document.getElementById('myChart')
|
|
var chartDom = document.getElementById('myChart')
|
|
var myChart = echarts.init(chartDom)
|
|
var myChart = echarts.init(chartDom)
|
|
@@ -130,6 +151,14 @@ onMounted(() => {
|
|
}
|
|
}
|
|
option && myChart.setOption(option)
|
|
option && myChart.setOption(option)
|
|
})
|
|
})
|
|
|
|
+
|
|
|
|
+watch(
|
|
|
|
+ () => props.query,
|
|
|
|
+ (val) => {
|
|
|
|
+ if (val) getRecent()
|
|
|
|
+ },
|
|
|
|
+ { deep: true }
|
|
|
|
+)
|
|
</script>
|
|
</script>
|
|
|
|
|
|
<style scoped lang="scss">
|
|
<style scoped lang="scss">
|