소스 검색

企业详情:收到的简历记录

Xiao_123 4 일 전
부모
커밋
e628baeccc

+ 5 - 0
src/api/menduner/system/enterprise/message/index.ts

@@ -126,5 +126,10 @@ export const EnterpriseApi = {
   // 获取企业套餐权益
   getEnterprisePackagePrivilege: async (id: number) => {
     return await request.post({ url: `/menduner/system/enterprise/entitlement/by/id?id=${id}` })
+  },
+
+  // 获取招聘职位简历投递分页
+  getJobResumePage: async (params: any) => {
+    return await request.get({ url: `/menduner/system/job-cv-rel/page`, params })
   }
 }

+ 148 - 0
src/views/menduner/system/enterprise/message/details/components/resume.vue

@@ -0,0 +1,148 @@
+<template>
+  <div class="flex justify-between">
+    <div>
+			<el-select v-model="queryParams.jobId" placeholder="招聘职位" class="!w-240px ml-10px" clearable @change="handleRefresh">
+        <el-option
+          v-for="item in jobList"
+          :key="item.id"
+          :label="formatName(item.name)"
+          :value="item.id"
+        />
+      </el-select>
+      <el-select v-model="queryParams.jobFairId" placeholder="招聘会" class="!w-240px ml-10px" clearable @change="handleRefresh">
+        <el-option
+          v-for="item in jobFairList"
+          :key="item.id"
+          :label="item.title"
+          :value="item.id"
+        />
+        <template #footer v-if="jobFairList?.length < +jobFairTotal">
+          <div class="text-center">
+            <el-button type="primary" link @click="handleGetMore">加载更多</el-button>
+          </div>
+        </template>
+      </el-select>
+    </div>
+    <el-button type="primary" @click="handleRefresh"><Icon icon="ep:refresh" class="mr-5px" /> 刷新</el-button>
+  </div>
+
+  <el-table v-loading="loading" :data="tableData" :stripe="true" class="m-t-20px">
+    <el-table-column label="投递职位" align="center" prop="job.name">
+      <template #default="{ row }">{{ formatName(row.job.name) }}</template>
+    </el-table-column>
+		<el-table-column label="职位发布人" align="center" prop="contact.name" />
+    <el-table-column label="投递人" align="center" prop="person.name" />
+    <el-table-column label="联系电话" align="center" prop="person.phone" />
+    <el-table-column label="招聘会" align="center" prop="jobFair.title" />
+    <el-table-column label="简历查看状态" align="center" prop="cvRel.status">
+      <template #default="scope">
+				<el-tag :type="scope.row.cvRel.status === '0' ? 'warning' : 'success'">
+					{{ scope.row.cvRel.status === '0' ? '未查看' : '已查看' }}
+				</el-tag>
+      </template>
+    </el-table-column>
+		<el-table-column
+      label="投递时间"
+      align="center"
+      prop="cvRel.createTime"
+      :formatter="dateFormatter"
+      width="180px"
+    />
+    <el-table-column label="操作" align="center">
+      <template #default="scope">
+        <el-link
+					v-if="scope.row.cvRel?.url"
+					type="primary"
+					download
+					:href="scope.row.cvRel.url"
+					:underline="false"
+					target="_blank"
+				>
+					附件下载
+				</el-link>
+      </template>
+    </el-table-column>
+  </el-table>
+
+  <Pagination
+    :total="total"
+    v-model:page="queryParams.pageNo"
+    v-model:limit="queryParams.pageSize"
+    @pagination="getList"
+  />
+</template>
+
+<script setup>
+defineOptions({ name: 'EnterpriseJobDeliveryResume'})
+import { EnterpriseApi } from '@/api/menduner/system/enterprise/message'
+import { formatName } from '@/utils'
+import { dateFormatter } from '@/utils/formatTime'
+import { JobFairManageApi } from '@/api/menduner/system/jobFair/manage'
+import { statisticAnalysisApi } from '@/api/menduner/system/analysis/statisticAnalysis'
+
+const props = defineProps({
+  id: String
+})
+
+const { t } = useI18n() // 国际化
+const message = useMessage() // 消息弹窗
+const loading = ref(false)
+const tableData = ref([])
+const total = ref(0)
+const queryParams = reactive({
+  pageNo: 1,
+  pageSize: 10,
+	jobId: undefined,
+  jobFairId: undefined,
+  enterpriseId: props.id
+})
+
+// 职位投递记录
+const getList = async () => {
+  loading.value = true
+  try {
+    const data = await EnterpriseApi.getJobResumePage(queryParams)
+    tableData.value = data.list ?? []
+    total.value = data.total
+  } finally {
+    loading.value = false
+  }
+}
+getList()
+
+const handleRefresh = () => {
+  queryParams.pageNo = 1
+  getList()
+}
+
+// 获取招聘会列表
+const jobFairTotal = ref(0)
+const pageInfo = ref({
+  pageNo: 1,
+  pageSize: 10
+})
+const jobFairList = ref([])
+const getJobFairList = async () => {
+  try {
+    const data = await JobFairManageApi.getJobFairPage(pageInfo.value)
+    jobFairList.value = jobFairList.value.concat(data.list)
+    jobFairTotal.value = data.total 
+  } catch {}
+}
+getJobFairList()
+
+const handleGetMore = () => {
+  pageInfo.value.pageNo++
+  getJobFairList()
+}
+
+// 获取招聘职位列表
+const jobList = ref([])
+const getJobList = async () => {
+  try {
+    const data = await statisticAnalysisApi.getAnalysisJobAdvertisedList({ enterpriseId: props.id })
+    jobList.value = jobList.value.concat(data)
+  } catch {}
+}
+getJobList()
+</script>

+ 4 - 0
src/views/menduner/system/enterprise/message/details/index.vue

@@ -32,6 +32,9 @@
             <el-tab-pane label="招聘职位">
               <EnterpriseJob :id="id" />
             </el-tab-pane>
+            <el-tab-pane label="收到的简历记录">
+              <EnterpriseResume :id="id" />
+            </el-tab-pane>
           </el-tabs>
         </el-card>
       </el-col>
@@ -48,6 +51,7 @@ import Business from './components/businessInfo.vue'
 import SubordinateEnterprises from './components/subordinateEnterprises.vue'
 import EnterpriseUser from './components/user.vue'
 import EnterpriseJob from './components/job.vue'
+import EnterpriseResume from './components/resume.vue'
 
 /** 初始化 */
 const { currentRoute } = useRouter() // 路由

+ 6 - 7
src/views/menduner/system/person/details/components/deliveryJob.vue

@@ -26,7 +26,7 @@
     </el-table-column>
     <el-table-column label="操作" align="center">
       <template #default="scope">
-        <el-button link type="primary" @click="openDetail(scope.row)" class="m-r-10px">详情</el-button>
+        <el-button link type="primary" @click="openDetail(scope.row)" class="m-r-10px">职位详情</el-button>
         <el-link type="primary" download :href="scope.row.cvRel.url" :underline="false" target="_blank">附件下载</el-link>
       </template>
     </el-table-column>
@@ -56,21 +56,20 @@
         <el-link type="primary" download :href="itemData.title" :underline="false" target="_blank">{{ itemData.title }}</el-link>
       </el-descriptions-item>
       <el-descriptions-item label="投递时间">
-        {{ itemData.time ? timesTampChange(itemData.time, 'Y-M-D h:m:s') : '' }}
+        {{ itemData.time ? timesTampChange(itemData.time) : '' }}
       </el-descriptions-item>
       <el-descriptions-item label="投递状态">
         {{ itemData.cvStatus === '0' ? '未查看' : '已查看' }}
       </el-descriptions-item>
       <el-descriptions-item label="学历要求">
-        <dict-tag :type="DICT_TYPE.MENDUNER_EDUCATION_TYPE" :value="itemData.eduType" />
+        <span v-if="!itemData.eduType">不限</span>
+        <dict-tag v-else :type="DICT_TYPE.MENDUNER_EDUCATION_TYPE" :value="itemData.eduType" />
       </el-descriptions-item>
       <el-descriptions-item label="工作经验">
-        <dict-tag :type="DICT_TYPE.MENDUNER_EXP_TYPE" :value="itemData.expType" />
+        <span v-if="!itemData.expType">不限</span>
+        <dict-tag v-else :type="DICT_TYPE.MENDUNER_EXP_TYPE" :value="itemData.expType" />
       </el-descriptions-item>
       <el-descriptions-item label="刷新时间">{{ timesTampChange(itemData.updateTime, 'Y-M-D h:m') }}</el-descriptions-item>
-      <el-descriptions-item label="到期时间">
-        {{ itemData.expireTime ? timesTampChange(itemData.expireTime, 'Y-M-D') : '长期有效' }}
-      </el-descriptions-item>
       <el-descriptions-item label="职位关键字">
         <el-tag type="primary" v-for="k in itemData.tagList" :key="k" class="m-r-5px m-b-5px">{{ k }}</el-tag>
       </el-descriptions-item>