123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- <template>
- <div class="overview my-5">
- <div class="overview-item pa-5 color-666" v-for="(val, i) in overview" :key="i">
- <div class="d-flex">
- <div>{{ val.title }}</div>
- <v-tooltip :text="val.desc" location="top">
- <template v-slot:activator="{ props }">
- <span v-bind="props" class="mdi mdi-information-outline ml-1"></span>
- </template>
- </v-tooltip>
- </div>
- <div class="overview-item-value my-3">{{ val.value }}</div>
- <div class="font-size-14">
- 环比
- <span class="color-error">0% ↑</span>
- </div>
- </div>
- </div>
- <div id="myChart" style="width: 100%; height: 500px;background-color: #f7f8fa;border-radius: 8px;" class="pa-3"></div>
- </template>
- <script setup>
- defineOptions({ name: 'overview-page'})
- import { ref, onMounted } from 'vue'
- import * as echarts from 'echarts'
- // 数据概况
- 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: '面试人数的总数' }
- ])
- onMounted(() => {
- var chartDom = document.getElementById('myChart')
- var myChart = echarts.init(chartDom)
- var option
- option = {
- title: {
- text: '历史数据走势图'
- },
- tooltip: {
- trigger: 'axis',
- axisPointer: {
- type: 'cross',
- label: {
- backgroundColor: '#6a7985'
- }
- }
- },
- legend: {
- data: ['职位数', '刷新次数', '职位浏览', '简历投递数', '简历处理']
- },
- toolbox: {
- feature: {
- saveAsImage: {}
- }
- },
- grid: {
- left: '3%',
- right: '4%',
- bottom: '3%',
- containLabel: true
- },
- xAxis: [
- {
- type: 'category',
- boundaryGap: false,
- data: ['2024-07-10', '2024-07-11', '2024-07-12']
- }
- ],
- yAxis: [
- {
- type: 'value'
- }
- ],
- series: [
- {
- name: '职位数',
- type: 'line',
- emphasis: {
- focus: 'series'
- },
- data: [120, 132, 101, 134, 90, 230, 210]
- },
- {
- name: '刷新次数',
- type: 'line',
- emphasis: {
- focus: 'series'
- },
- data: [220, 182, 191, 234, 290, 330, 310]
- },
- {
- name: '职位浏览',
- type: 'line',
- emphasis: {
- focus: 'series'
- },
- data: [150, 232, 201, 154, 190, 330, 410]
- },
- {
- name: '简历投递数',
- type: 'line',
- emphasis: {
- focus: 'series'
- },
- data: [320, 332, 301, 334, 390, 330, 320]
- },
- {
- name: '简历处理',
- type: 'line',
- label: {
- show: true,
- position: 'top'
- },
- emphasis: {
- focus: 'series'
- },
- data: [820, 932, 901, 934, 1290, 1330, 1320]
- }
- ]
- }
- option && myChart.setOption(option)
- })
- </script>
- <style scoped lang="scss">
- .overview {
- display: flex;
- width: 100%;
- flex-wrap: wrap; // 换行
- }
- .overview-item {
- // width: calc((100% - 84px) / 8);
- // min-width: calc((100% - 84px) / 8);
- // max-width: calc((100% - 84px) / 8);
- min-width: 200px;
- margin: 0 12px 12px 0;
- height: 175px;
- border-radius: 12px;
- overflow: hidden;
- transition: all .2s linear;
- background-color: #f7f8fa;
- div {
- white-space: nowrap; /* 防止子级文本换行 */
- flex-grow: 1; /* 允许子级根据内容撑开,但保持最小宽度限制 */
- }
- &:last-child {
- margin-right: 0;
- }
- }
- .overview-item-value {
- color: var(--v-primary-base);
- font-weight: 700;
- font-size: 44px;
- }
- </style>
|