From 5074377ace3f0ed72d55246fe39da4f6875f89e3 Mon Sep 17 00:00:00 2001 From: TianyangZhang Date: Thu, 26 Mar 2026 13:23:32 +0800 Subject: [PATCH] =?UTF-8?q?feat(admin):=20=E6=8A=95=E9=80=92=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=92=8C=E8=81=8C=E4=BD=8D=E7=AE=A1=E7=90=86=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E5=88=86=E9=A1=B5=E5=8F=8A=E8=81=8C=E4=BD=8D=E5=90=8D?= =?UTF-8?q?=E7=A7=B0=E8=B7=B3=E8=BD=AC=E9=93=BE=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 --- offer_frontend/src/api/applications.js | 2 +- offer_frontend/src/api/jobs.js | 2 +- .../src/views/admin/ApplicationManageView.vue | 43 ++++++++++++++++--- .../src/views/admin/JobManageView.vue | 8 +++- 4 files changed, 45 insertions(+), 10 deletions(-) diff --git a/offer_frontend/src/api/applications.js b/offer_frontend/src/api/applications.js index 0122178..27adba3 100644 --- a/offer_frontend/src/api/applications.js +++ b/offer_frontend/src/api/applications.js @@ -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) diff --git a/offer_frontend/src/api/jobs.js b/offer_frontend/src/api/jobs.js index 68efd0d..3cc7c17 100644 --- a/offer_frontend/src/api/jobs.js +++ b/offer_frontend/src/api/jobs.js @@ -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}/`) diff --git a/offer_frontend/src/views/admin/ApplicationManageView.vue b/offer_frontend/src/views/admin/ApplicationManageView.vue index b88f116..1c05878 100644 --- a/offer_frontend/src/views/admin/ApplicationManageView.vue +++ b/offer_frontend/src/views/admin/ApplicationManageView.vue @@ -1,8 +1,14 @@ +
+ +
@@ -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 { diff --git a/offer_frontend/src/views/admin/JobManageView.vue b/offer_frontend/src/views/admin/JobManageView.vue index da7e394..a7411e9 100644 --- a/offer_frontend/src/views/admin/JobManageView.vue +++ b/offer_frontend/src/views/admin/JobManageView.vue @@ -5,7 +5,13 @@ 发布职位
- + + +