# 管理后台分页功能实现计划 > **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. **Goal:** 为管理后台的所有表格页面(职位管理、投递管理、组织架构、用户管理)添加统一的分页功能。 **Architecture:** - 后端已支持分页(DRF 的 `PageNumberPagination`,每页 20 条) - 前端 API 层:修改各模块的 fetch 函数,接受 `page` 参数 - 前端组件层:添加分页状态管理、分页事件处理、UI 控件,共 4 个页面 - 每个组件遵循相同的模式,便于维护和扩展 **Tech Stack:** Vue 3 Composition API、Element Plus (el-pagination)、DRF pagination --- ## 文件结构 ### 前端 API 层(4 个文件修改) - `offer_frontend/src/api/organizations.js` - 修改 `manageOrganizations(page=1)` - `offer_frontend/src/api/jobs.js` - 修改 `manageJobs(page=1)` - `offer_frontend/src/api/applications.js` - 修改 `getManageApplications(page=1)` - `offer_frontend/src/api/client.js` 或页面内 - 用户管理 API 调用 ### 前端组件层(4 个页面修改) - `offer_frontend/src/views/admin/OrganizationManageView.vue` - `offer_frontend/src/views/admin/JobManageView.vue` - `offer_frontend/src/views/admin/ApplicationManageView.vue` - `offer_frontend/src/views/admin/UserManageView.vue` --- ## 实现任务 ### Task 1: 修改 organizations.js - 支持分页参数 **Files:** - Modify: `offer_frontend/src/api/organizations.js` - [ ] **Step 1: 修改 manageOrganizations 函数** 编辑 `offer_frontend/src/api/organizations.js`,将 `manageOrganizations` 函数改为(使用 params 对象方式保持与其他 API 的一致性): ```javascript export const manageOrganizations = (page = 1) => client.get('/organizations/manage/', { params: { page } }) ``` > 注:这个改动方式与 jobs.js 和 applications.js 中已有的 `{ params: { ... } }` 方式保持一致 - [ ] **Step 2: 验证其他导出函数不受影响** 检查文件中的其他函数(`getOrganizations`, `createOrganization` 等)保持不变。 - [ ] **Step 3: Commit** ```bash git add offer_frontend/src/api/organizations.js git commit -m "feat(api): 为 manageOrganizations 添加分页参数" ``` --- ### Task 2: 修改 jobs.js - 支持分页参数 **Files:** - Modify: `offer_frontend/src/api/jobs.js` - [ ] **Step 1: 修改 manageJobs 函数** 编辑 `offer_frontend/src/api/jobs.js`,找到 `manageJobs` 函数(通常已有 params 参数),改为支持分页: ```javascript export const manageJobs = (page = 1, params = {}) => client.get('/jobs/manage/', { params: { page, ...params } }) ``` > 如果现有函数签名已经是 `(params = {})` 的形式,则改为: > ```javascript > export const manageJobs = (params = {}) => > client.get('/jobs/manage/', { params: { page: params.page || 1, ...params } }) > ``` - [ ] **Step 2: 验证其他导出函数** 检查 `getJobs`, `createJob`, `updateJob`, `deleteJob` 等函数保持不变。 - [ ] **Step 3: Commit** ```bash git add offer_frontend/src/api/jobs.js git commit -m "feat(api): 为 manageJobs 添加分页参数" ``` --- ### Task 3: 修改 applications.js - 支持分页参数 **Files:** - Modify: `offer_frontend/src/api/applications.js` - [ ] **Step 1: 修改 getManageApplications 函数** 编辑 `offer_frontend/src/api/applications.js`,找到 `getManageApplications` 函数,改为(支持分页 + 保留其他参数): ```javascript export const getManageApplications = (params = {}) => client.get('/applications/manage/', { params: { page: params.page || 1, ...params } }) ``` > 调用时改为:`getManageApplications({ page: currentPage.value })` - [ ] **Step 2: 验证其他函数** 确保 `applyJob`, `myApplications`, `updateApplicationStatus` 等函数不变。 - [ ] **Step 3: Commit** ```bash git add offer_frontend/src/api/applications.js git commit -m "feat(api): 为 getManageApplications 添加分页参数" ``` --- ### Task 4: 修改 OrganizationManageView.vue - 添加分页 **Files:** - Modify: `offer_frontend/src/views/admin/OrganizationManageView.vue` **Step 4.1: 导入所需函数** - [ ] 在 `