|
@@ -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>
|