From 85e5cbd9c9963dc8187c0b8e7e6d936c2bdece01 Mon Sep 17 00:00:00 2001 From: TianyangZhang Date: Wed, 25 Mar 2026 17:01:06 +0800 Subject: [PATCH] =?UTF-8?q?feat(admin):=20=E4=B8=BA=E8=81=8C=E4=BD=8D?= =?UTF-8?q?=E7=AE=A1=E7=90=86=E9=A1=B5=E9=9D=A2=E6=B7=BB=E5=8A=A0=E5=88=86?= =?UTF-8?q?=E9=A1=B5=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/views/admin/JobManageView.vue | 35 +++++++++++++++---- 1 file changed, 29 insertions(+), 6 deletions(-) diff --git a/offer_frontend/src/views/admin/JobManageView.vue b/offer_frontend/src/views/admin/JobManageView.vue index bbdd9e1..da7e394 100644 --- a/offer_frontend/src/views/admin/JobManageView.vue +++ b/offer_frontend/src/views/admin/JobManageView.vue @@ -23,6 +23,15 @@ +
+ +
@@ -78,12 +87,22 @@ const form = reactive({ title: '', category: '', location: '', salary: '', description: '', status: 'draft', organization_id: null }) +const currentPage = ref(1) +const pageSize = ref(20) +const total = ref(0) -const fetchJobs = async () => { +const fetchJobs = async (page = 1) => { loading.value = true - const { data } = await manageJobs() - jobs.value = data.results - loading.value = false + try { + const { data } = await manageJobs(page) + jobs.value = data.results + total.value = data.count + currentPage.value = page + } catch (error) { + ElMessage.error('加载职位列表失败,请重试') + } finally { + loading.value = false + } } const fetchOrgs = async () => { @@ -112,6 +131,10 @@ function openDialog(job = null) { dialogVisible.value = true } +function handlePageChange(newPage) { + fetchJobs(newPage) +} + async function handleSave() { if (auth.isSuperAdmin && !form.organization_id) { return ElMessage.warning('请选择所属公司') @@ -124,7 +147,7 @@ async function handleSave() { else await createJob(payload) ElMessage.success('保存成功') dialogVisible.value = false - fetchJobs() + fetchJobs(1) } catch (e) { ElMessage.error(e.response?.data?.detail || '保存失败') } finally { @@ -136,7 +159,7 @@ async function handleDelete(id) { await ElMessageBox.confirm('确认删除该职位?', '提示', { type: 'warning' }) await deleteJob(id) ElMessage.success('已删除') - fetchJobs() + fetchJobs(1) } onMounted(() => {