|
@@ -0,0 +1,170 @@
|
|
|
+<!-- -->
|
|
|
+<template>
|
|
|
+ <div>
|
|
|
+ <ContentWrap>
|
|
|
+ <!-- 搜索工作栏 -->
|
|
|
+ <el-form
|
|
|
+ class="-mb-15px"
|
|
|
+ :model="queryParams"
|
|
|
+ ref="queryFormRef"
|
|
|
+ :inline="true"
|
|
|
+ label-width="120px"
|
|
|
+ >
|
|
|
+ <el-form-item label="" prop="dateType">
|
|
|
+ <el-radio-group v-model="queryParams.dateType" @change="radioChange">
|
|
|
+ <el-radio-button label="最近七天" value="0" />
|
|
|
+ <el-radio-button label="上个月" value="1" />
|
|
|
+ <el-radio-button label="上季度" value="2" />
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="" prop="dateRange">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="queryParams.dateRange"
|
|
|
+ value-format="YYYY-MM-DD HH:mm:ss"
|
|
|
+ type="daterange"
|
|
|
+ start-placeholder="开始日期"
|
|
|
+ end-placeholder="结束日期"
|
|
|
+ :default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
|
|
|
+ class="!w-240px"
|
|
|
+ @change="dateRangeChange"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
|
|
|
+ <el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
|
|
|
+ <el-button
|
|
|
+ type="success"
|
|
|
+ plain
|
|
|
+ @click="null"
|
|
|
+ :loading="false"
|
|
|
+ >
|
|
|
+ <Icon icon="ep:download" class="mr-5px" /> 导出
|
|
|
+ </el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </ContentWrap>
|
|
|
+ <div class="flex flex-col">
|
|
|
+ <!-- 数据对照 -->
|
|
|
+ <el-row :gutter="16" class="row">
|
|
|
+ <el-col :md="4" :sm="12" :xs="24" :loading="loading">
|
|
|
+ <ComparisonCard
|
|
|
+ tag="今日"
|
|
|
+ title="浏览量"
|
|
|
+ prefix="¥"
|
|
|
+ ::decimals="2"
|
|
|
+ :value="4"
|
|
|
+ :reference="2"
|
|
|
+ />
|
|
|
+ </el-col>
|
|
|
+ <el-col :md="4" :sm="12" :xs="24" :loading="loading">
|
|
|
+ <ComparisonCard
|
|
|
+ tag="今日"
|
|
|
+ title="收到简历数"
|
|
|
+ :value="4"
|
|
|
+ :reference="2"
|
|
|
+ />
|
|
|
+ </el-col>
|
|
|
+ <el-col :md="4" :sm="12" :xs="24" :loading="loading">
|
|
|
+ <ComparisonCard
|
|
|
+ tag="今日"
|
|
|
+ title="已查看简历数"
|
|
|
+ :value="4"
|
|
|
+ :reference="2"
|
|
|
+ />
|
|
|
+ </el-col>
|
|
|
+ <el-col :md="4" :sm="12" :xs="24" :loading="loading">
|
|
|
+ <ComparisonCard
|
|
|
+ tag="今日"
|
|
|
+ title="面试-已邀约数"
|
|
|
+ :value="4"
|
|
|
+ :reference="2"
|
|
|
+ />
|
|
|
+ </el-col>
|
|
|
+ <el-col :md="4" :sm="12" :xs="24" :loading="loading">
|
|
|
+ <ComparisonCard
|
|
|
+ tag="今日"
|
|
|
+ title="面试-完成数"
|
|
|
+ :value="4"
|
|
|
+ :reference="2"
|
|
|
+ />
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="16" class="row">
|
|
|
+ <el-col :md="12">
|
|
|
+ <GenderDistribution title="性别分布" />
|
|
|
+ </el-col>
|
|
|
+ <el-col :md="12">
|
|
|
+ <AgeDistribution title="年龄分布" />
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row :gutter="16" class="row">
|
|
|
+ <el-col :md="12">
|
|
|
+ <WorkExperience title="工作年限分布" />
|
|
|
+ </el-col>
|
|
|
+ <el-col :md="12">
|
|
|
+ <Education title="学历分布" />
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </div>
|
|
|
+</div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script setup>
|
|
|
+import ComparisonCard from './components/ComparisonCard.vue'
|
|
|
+import GenderDistribution from './components/GenderDistribution.vue'
|
|
|
+import AgeDistribution from './components/AgeDistribution.vue'
|
|
|
+import WorkExperience from './components/WorkExperience.vue'
|
|
|
+import Education from './components/Education.vue'
|
|
|
+defineOptions({name: 'StatisticAnalysis'})
|
|
|
+
|
|
|
+const loading = ref(true) // 加载中
|
|
|
+
|
|
|
+/** 初始化 **/
|
|
|
+onMounted(async () => {
|
|
|
+ // loading.value = true
|
|
|
+ loading.value = false
|
|
|
+})
|
|
|
+
|
|
|
+
|
|
|
+const queryParams = reactive({
|
|
|
+ // pageNo: 1,
|
|
|
+ // pageSize: 10,
|
|
|
+ dateType: '0',
|
|
|
+ dateRange: []
|
|
|
+})
|
|
|
+
|
|
|
+const queryFormRef = ref() // 搜索的表单
|
|
|
+/** 重置按钮操作 */
|
|
|
+const resetQuery = () => {
|
|
|
+ queryFormRef.value.resetFields()
|
|
|
+ handleQuery()
|
|
|
+}
|
|
|
+
|
|
|
+/** 搜索按钮操作 */
|
|
|
+const handleQuery = () => {
|
|
|
+ // queryParams.pageNo = 1
|
|
|
+ // getList()
|
|
|
+}
|
|
|
+const radioChange = (value) => {
|
|
|
+ if (value) {
|
|
|
+ queryParams.dateRange = []
|
|
|
+ handleQuery()
|
|
|
+ }
|
|
|
+}
|
|
|
+const dateRangeChange = (value) => {
|
|
|
+ if (value?.length) {
|
|
|
+ queryParams.dateType = undefined
|
|
|
+ } else {
|
|
|
+ queryParams.dateType = '0'
|
|
|
+ }
|
|
|
+ handleQuery()
|
|
|
+}
|
|
|
+
|
|
|
+</script>
|
|
|
+<style lang="scss" scoped>
|
|
|
+.row {
|
|
|
+ .el-col {
|
|
|
+ margin-bottom: 1rem;
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|