feat(admin): 投递管理和职位管理添加分页及职位名称跳转链接
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
0d7576dc85
commit
5074377ace
|
|
@ -2,5 +2,5 @@ import client from './client'
|
|||
|
||||
export const applyJob = (jobId) => client.post('/applications/apply/', { job: jobId })
|
||||
export const getMyApplications = () => client.get('/applications/mine/')
|
||||
export const getManageApplications = (params = {}) => client.get('/applications/manage/', { params: { page: params.page || 1, ...params } })
|
||||
export const getManageApplications = (page = 1) => client.get('/applications/manage/', { params: { page } })
|
||||
export const updateApplicationStatus = (id, data) => client.patch(`/applications/manage/${id}/status/`, data)
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ import client from './client'
|
|||
|
||||
export const getJobs = (params) => client.get('/jobs/public/', { params })
|
||||
export const getJob = (id) => client.get(`/jobs/public/${id}/`)
|
||||
export const manageJobs = (params = {}) => client.get('/jobs/manage/', { params: { page: params.page || 1, ...params } })
|
||||
export const manageJobs = (page = 1) => client.get('/jobs/manage/', { params: { page } })
|
||||
export const createJob = (data) => client.post('/jobs/manage/', data)
|
||||
export const updateJob = (id, data) => client.patch(`/jobs/manage/${id}/`, data)
|
||||
export const deleteJob = (id) => client.delete(`/jobs/manage/${id}/`)
|
||||
|
|
|
|||
|
|
@ -1,8 +1,14 @@
|
|||
<template>
|
||||
<div>
|
||||
<h2>投递管理</h2>
|
||||
<el-table :data="applications" v-loading="loading" border>
|
||||
<el-table-column prop="job_title" label="职位" />
|
||||
<el-table :data="applications" v-loading="loading" border style="width:100%">
|
||||
<el-table-column label="职位">
|
||||
<template #default="{ row }">
|
||||
<el-button type="primary" link @click="$router.push({ name: 'JobDetail', params: { id: row.job } })">
|
||||
{{ row.job_title }}
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="求职者">
|
||||
<template #default="{ row }">{{ row.resume_snapshot?.name }}</template>
|
||||
</el-table-column>
|
||||
|
|
@ -24,6 +30,15 @@
|
|||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div style="margin-top: 16px; text-align: right;">
|
||||
<el-pagination
|
||||
v-model:current-page="currentPage"
|
||||
:page-size="pageSize"
|
||||
:total="total"
|
||||
@current-change="handlePageChange"
|
||||
layout="total, prev, pager, next, jumper"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<el-dialog v-model="resumeVisible" title="简历详情" width="700px">
|
||||
<div v-if="currentResume" class="resume-detail">
|
||||
|
|
@ -104,6 +119,9 @@ const applications = ref([])
|
|||
const loading = ref(false)
|
||||
const resumeVisible = ref(false)
|
||||
const currentResume = ref(null)
|
||||
const currentPage = ref(1)
|
||||
const pageSize = ref(20)
|
||||
const total = ref(0)
|
||||
|
||||
const genderMap = {
|
||||
'male': '男',
|
||||
|
|
@ -112,12 +130,23 @@ const genderMap = {
|
|||
'': '-'
|
||||
}
|
||||
|
||||
onMounted(async () => {
|
||||
const fetchApplications = async (page = 1) => {
|
||||
loading.value = true
|
||||
const { data } = await getManageApplications()
|
||||
applications.value = data.results
|
||||
loading.value = false
|
||||
})
|
||||
try {
|
||||
const { data } = await getManageApplications(page)
|
||||
applications.value = data.results
|
||||
total.value = data.count
|
||||
currentPage.value = page
|
||||
} finally {
|
||||
loading.value = false
|
||||
}
|
||||
}
|
||||
|
||||
function handlePageChange(newPage) {
|
||||
fetchApplications(newPage)
|
||||
}
|
||||
|
||||
onMounted(() => fetchApplications())
|
||||
|
||||
async function updateStatus(row) {
|
||||
try {
|
||||
|
|
|
|||
|
|
@ -5,7 +5,13 @@
|
|||
<el-button type="primary" @click="openDialog()">发布职位</el-button>
|
||||
</div>
|
||||
<el-table :data="jobs" v-loading="loading" border>
|
||||
<el-table-column prop="title" label="职位名称" />
|
||||
<el-table-column label="职位名称">
|
||||
<template #default="{ row }">
|
||||
<el-button type="primary" link @click="$router.push({ name: 'JobDetail', params: { id: row.id } })">
|
||||
{{ row.title }}
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="organization_name" label="所属公司" />
|
||||
<el-table-column prop="location" label="地点" />
|
||||
<el-table-column prop="salary" label="薪资" />
|
||||
|
|
|
|||
Loading…
Reference in New Issue