| 
					
				 | 
			
			
				@@ -1,14 +1,363 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-<!-- 招聘会数据统计详情 --> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 <template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-  <div>招聘会数据统计详情</div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <!-- 搜索工作栏 --> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <ContentWrap> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <el-form 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        class="-mb-15px" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        :model="queryParams" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ref="queryFormRef" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        :inline="true" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-form-item label="企业" prop="enterpriseId"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-select 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              v-model="queryParams.enterpriseId" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              filterable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              placeholder="请选择企业" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              clearable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              class="!w-240px" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              @change="enterpriseIdSelectChange" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-option 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                v-for="dict in enterpriseOption" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                :key="dict.value" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                :label="dict.name" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                :value="dict.id" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </el-select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-form-item label="职位" prop="jobId"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-select 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              v-model="queryParams.jobId" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              placeholder="请选择职位" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              :no-data-text="!jobOption.length && queryParams.enterpriseId ? '当前选中企业暂无发布职位' : '请先选择企业'" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              clearable 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              class="!w-240px" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <el-option 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                v-for="dict in jobOption" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                :key="dict.value" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                :label="dict.name" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                :value="dict.id" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            </el-select> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-form-item label="" prop="type"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-radio-group v-model="queryParams.type" @change="typeChange"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            <el-radio-button label="全部" value="-1" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-radio-button label="24小时内" value="3" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-radio-button label="7天内" value="0" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-radio-button label="30天内" value="4" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-radio-button label="3个月内" value="6" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-radio-button label="1年内" value="5" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </el-radio-group> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </el-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-form-item label="" prop="time"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <span class="mr-3">自定义日期</span> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-date-picker 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            v-model="queryParams.time" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            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="timeRangeChange" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </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-form-item> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </el-form> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </ContentWrap> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <el-row :gutter="16" class="row m-y-20px"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <el-col v-for="item in statisticList" :key="item.name" :md="4" :sm="12" :xs="24" :loading="loading"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <ComparisonCard 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          :title="item.title" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          :value="statistic[item.name]" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          style="cursor: pointer;" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          @click="openDialog(item)" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </el-col> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </el-row> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <Delivery :data="jobCvRelBar" title="企业职位简历投递量统计" /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <!-- <UserJobDelivery class="mt-10px" :query="queryParams" title="用户简历投递量明细" /> --> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <!-- <EnterpriseJob class="my-10px" :query="queryParams" title="企业发布职位明细" /> --> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <!-- 弹窗 --> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    <Dialog :title="currentItem.title+'详情'" v-model="showDialog" width="1200" @close="showDialog = false"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <ContentWrap> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <el-table v-loading="dialogLoading" :data="tableData" :stripe="true"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <el-table-column 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            v-for="item in tableHeaders[currentItem.name]" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            :key="item.prop" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            :prop="item.prop" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            :label="item.name" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            :align="item.align || 'center'" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </el-table> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <!-- 分页 --> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <Pagination 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          :total="total" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          v-model:page="page.pageNo" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          v-model:limit="page.pageSize" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          @pagination="paginationChange" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </ContentWrap> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    </Dialog> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 </template> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-<script setup lang="ts"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+<script setup> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** 招聘会 表单 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 defineOptions({ name: 'JobFairStatistics' }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-// const { query } = useRoute() // 路由信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { JobFairManageApi } from '@/api/menduner/system/jobFair/manage' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { statisticAnalysisApi } from '@/api/menduner/system/analysis/statisticAnalysis' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import Delivery from './components/delivery.vue' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import UserJobDelivery from './components/userJobDelivery.vue' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import EnterpriseJob from './components/enterpriseJob.vue' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import ComparisonCard from './components/ComparisonCard.vue' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { formatName } from '@/utils' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { timesTampChange } from '@/utils/transform/date' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { DICT_TYPE, getDictLabel } from '@/utils/dict' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const route = useRoute() // 路由信息 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const { id } = route.params 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-console.log(id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const loading = ref(false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const dialogLoading = ref(false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const currentItem = ref({}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const tableData = ref([]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const showDialog = ref(false) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const total = ref(0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const page = reactive({ pageNo: 1, pageSize: 10 }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const queryFormRef = ref() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const queryParams = reactive({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  type: '0', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  enterpriseId: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  deptId: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  userId: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  jobId: undefined, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  jobFairId: id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  time: [], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// 统计 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const statisticList = [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  { title: '企业邀请面试数', name: 'inviteInterviewNum' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  { title: '企业职位数', name: 'jobNum' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  { title: '企业职位投递量', name: 'deliveryNum' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  { title: '用户面试数', name: 'interviewNum' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  { title: '用户简历投递数', name: 'cvDeliveryNum' } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// 统计 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const statistic = reactive({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  inviteInterviewNum: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  jobNum: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  deliveryNum: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  interviewNum: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  cvDeliveryNum: 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const tableHeaders = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // 企业邀请面试数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  inviteInterviewNum: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { name: '求职者', prop: 'personName' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { name: '邀请企业', prop: 'enterpriseName' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { name: '面试岗位', prop: 'jobName' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { name: '面试类型', prop: 'typeName' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { name: '面试时间', prop: 'timeName' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { name: '面试地点', prop: 'addressName' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // 企业职位情况 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  jobNum: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { name: '职位名称', prop: 'name' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { name: '发布企业', prop: 'enterpriseName' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { name: '薪酬', prop: 'salaryDisplay' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { name: '工作地区', prop: 'areaName' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { name: '工作经验', prop: 'expName' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { name: '学历要求', prop: 'eduName' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { name: '发布时间', prop: 'createTime' } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // 企业职位投递量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  deliveryNum: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { name: '投递人', prop: 'personName' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { name: '职位名称', prop: 'name' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { name: '发布企业', prop: 'enterpriseName' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { name: '投递简历名称', prop: 'title' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { name: '投递时间', prop: 'createTime' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // 用户面试数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  interviewNum: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { name: '求职者', prop: 'personName' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { name: '邀请企业', prop: 'enterpriseName' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { name: '面试岗位', prop: 'jobName' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { name: '面试类型', prop: 'typeName' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { name: '面试时间', prop: 'timeName' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { name: '面试地点', prop: 'addressName' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // 用户投递数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  cvDeliveryNum: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { name: '投递人', prop: 'personName' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { name: '投递职位', prop: 'name' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { name: '发布企业', prop: 'enterpriseName' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { name: '投递简历名称', prop: 'title' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    { name: '投递时间', prop: 'createTime' }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  ] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const apiArr = reactive({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  inviteInterviewNum: JobFairManageApi.getEnterpriseInterviewInvite, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  jobNum: JobFairManageApi.getEnterpriseJob, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  deliveryNum: JobFairManageApi.getEnterpriseJobCvRel, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  interviewNum: JobFairManageApi.getUserInterviewInvite, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  cvDeliveryNum: JobFairManageApi.getUserJobCvRel, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const dealTableData = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // 企业邀请面试/用户面试 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (['interviewNum', 'inviteInterviewNum'].includes(currentItem.value.name)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    tableData.value = tableData.value.map(item => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      item.personName = item.person.name 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      item.jobName = formatName(item.job.name) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      item.enterpriseName = formatName(item.enterpriseName) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      item.typeName = item.type === 0 ? '线上面试': '线下面试' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      item.timeName = timesTampChange(item.time, 'Y-M-D h:m') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      item.addressName = item.job.address 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return item 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // 企业职位 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (currentItem.value.name === 'jobNum') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    tableData.value = tableData.value.map(item => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      item.name = formatName(item.name) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      item.enterpriseName = formatName(item.enterprise.anotherName || item.enterprise.name) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      item.salaryDisplay = item.payFrom && item.payTo ? `${item.payFrom}-${item.payTo}/${getDictLabel(DICT_TYPE.MENDUNER_PAY_UNIT, item.payUnit)}` : '面议' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      item.areaName = !item.areaId ? '全国' : item.area.str 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      item.expName = getDictLabel(DICT_TYPE.MENDUNER_EXP_TYPE, item.expType) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      item.eduName = getDictLabel(DICT_TYPE.MENDUNER_EDUCATION_TYPE, item.eduType) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      item.createTime = timesTampChange(item.createTime) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return item 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // 企业职位投递量、用户投递量 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (['cvDeliveryNum', 'deliveryNum'].includes(currentItem.value.name)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    tableData.value = tableData.value.map(item => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      item.personName = item.person.name || item.person.phone 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      item.name = formatName(item.job.name) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      item.enterpriseName = formatName(item.enterpriseName) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      item.createTime = timesTampChange(item.createTime) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      return item 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const getList = async (typeName, details = '') => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  loading.value = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    let data 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 使用钻取接口 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const params = { ...queryParams, ...page } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    data = await apiArr[typeName](params) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (details) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      tableData.value = data.list || [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      total.value = data.total || 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      dealTableData() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      statistic[typeName] = data.total || 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } finally { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    loading.value = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    dialogLoading.value = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// 打开弹窗 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const openDialog = (item) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  dialogLoading.value = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  currentItem.value = item 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  page.pageNo = 1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  tableData.value = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  getList(item.name, '钻取') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  showDialog.value = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const paginationChange = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  getList(currentItem.value.name, '钻取') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// 企业职位简历投递量统计 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const jobCvRelBar = ref({}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const getJobCvRelBar = async () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  const data = await JobFairManageApi.getEnterpriseJobCvRelBar(queryParams) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  jobCvRelBar.value = data || { x: [], y: []} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const handleQuery = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (Object.keys(statistic).length) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    Object.keys(statistic).forEach(name => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      getList(name) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  getJobCvRelBar() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+handleQuery() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+/** 重置按钮操作 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const resetQuery = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  queryFormRef.value.resetFields() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  handleQuery() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const typeChange = (value) => { //  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (value) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    queryParams.time = [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  handleQuery() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const timeRangeChange = (value) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (value?.length) queryParams.type = '99' // 自定义 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  else queryParams.type = '0' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// 企业 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const enterpriseOption = ref([]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const getEnterpriseOption = async () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const data = await statisticAnalysisApi.getAnalysisEnterpriseSimpleList({}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    enterpriseOption.value = data || [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } catch (error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    console.log(error) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+getEnterpriseOption() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+// 职位 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const jobOption = ref([]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const getJobOption = async () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const params ={ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      enterpriseId: queryParams.enterpriseId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      deptId: queryParams.deptId, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      status: 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      jobFairId: id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const data = await statisticAnalysisApi.getAnalysisJobAdvertisedList(params) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    jobOption.value = data || [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } catch (error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    console.log(error) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const enterpriseIdSelectChange = () => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  queryParams.deptId = undefined 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  queryParams.jobId = undefined 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  getJobOption() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 </script> 
			 |