# 盘古用户平台 - 多Agent协同开发指南 --- ## 重要:协同开发规则 ### 1. 开发服务器管理 ``` ⚠️ 关键规则: - 只有 Agent-1 负责启动 npm run dev(端口3000) - Agent-2 ~ Agent-7 只创建/修改文件,绝不启动dev server - 所有Agent共享同一个项目目录,自动热更新 ``` ### 2. 文件边界划分 每个Agent只能操作自己负责的文件,避免冲突: | Agent | 可操作的文件 | |-------|------------| | Agent-1 | src/layout/*, src/mock/index.js, src/mock/user.js, src/utils/*, src/views/dashboard/*, src/main.js, src/router/index.js, src/App.vue | | Agent-2 | src/views/login/* | | Agent-3 | src/views/school/*, src/api/school.js, src/mock/school.js | | Agent-4 | src/views/member/*, src/api/member.js, src/mock/member.js | | Agent-5 | src/views/student/*, src/api/student.js, src/mock/student.js | | Agent-6 | src/views/application/*, src/api/application.js, src/mock/application.js | | Agent-7 | src/views/base/*, src/api/grade.js, src/api/class.js, src/api/subject.js, src/api/region.js, src/mock/grade.js, src/mock/class.js, src/mock/subject.js, src/mock/region.js | ### 3. 共享文件更新规则 `src/mock/index.js` 需要汇总所有mock文件: - Agent-1 创建基础结构,只import user.js - Agent-3~7 完成后,各自在末尾追加自己的import ```javascript // Agent-1 创建的基础内容 import './user' // Agent-3 追加 import './school' // Agent-4 追加 import './member' // ... 以此类推 ``` ### 4. 验证方式 - Agent-1 完成后启动 `npm run dev`,保持运行 - Agent-2~7 完成后,刷新浏览器即可看到新页面(Vite热更新) - 无需重启服务器 --- ## 项目概述 使用多个AI Agent并行开发前端页面,每个Agent负责一个独立模块。 **技术栈**:Vue 3 + Vite + Element Plus + Pinia + Vue Router + MockJS **项目路径**:`/Users/felix/hbxhWorkSpace/pangu-user-platform/pangu-ui` **原型地址**:https://modao.cc/proto/atlwMul8t9pi6yxQ42W7up/sharing **作者**:湖北新华业务中台研发团队 --- ## Agent分工 | Agent | 负责模块 | 启动Server | 文件范围 | |-------|---------|:----------:|---------| | Agent-1 | 核心基础设施 | ✅ 是 | layout, utils, mock入口, dashboard | | Agent-2 | 登录页面 | ❌ 否 | views/login | | Agent-3 | 学校管理 | ❌ 否 | views/school, api/school, mock/school | | Agent-4 | 会员管理 | ❌ 否 | views/member, api/member, mock/member | | Agent-5 | 学生管理 | ❌ 否 | views/student, api/student, mock/student | | Agent-6 | 应用管理 | ❌ 否 | views/application, api/application, mock/application | | Agent-7 | 基础数据 | ❌ 否 | views/base/*, api/grade等, mock/grade等 | **执行顺序**: 1. 先完成 Agent-1(启动dev server,保持运行) 2. Agent-2~7 并行开发(只创建文件,不启动server) 3. 每个Agent完成后刷新浏览器验证 --- ## 前端编码规范(所有Agent必须遵守) ### 1. 表格规范 ```vue ``` ### 2. 列宽分配原则 | 字段类型 | 推荐宽度 | 说明 | |---------|---------|------| | ID/编号 | 80-100px | 固定宽度 | | 名称/标题 | min-width: 120-200px | 弹性宽度,使用min-width | | 状态/类型 | 80-100px | 固定宽度,居中 | | 日期时间 | 160-180px | 固定宽度 | | 手机号 | 120px | 固定宽度 | | 操作列 | 根据按钮数量,120-200px | 固定右侧 | ### 3. 长文本处理 ```vue ``` ### 4. 表格响应式 ```vue ``` ### 5. 搜索表单规范 ```vue 查询 重置 新增 ``` ### 6. 分页规范 ```vue
``` ### 7. 弹窗规范 ```vue ``` ### 8. 状态Tag颜色规范 ```vue {{ row.status === '0' ? '正常' : '停用' }} {{ row.identityType === '1' ? '家长' : '教师' }} {{ { '0': '未知', '1': '男', '2': '女' }[row.gender] }} ``` ### 9. 空数据处理 ```vue ``` ### 10. 删除确认规范 ```javascript // 使用 ElMessageBox 确认删除 const handleDelete = (row) => { ElMessageBox.confirm(`确定要删除"${row.name}"吗?`, '提示', { confirmButtonText: '确定', cancelButtonText: '取消', type: 'warning' }).then(() => { // 调用删除API deleteApi(row.id).then(() => { ElMessage.success('删除成功') handleQuery() }) }).catch(() => {}) } ``` ### 11. 页面布局规范 ```vue ``` --- ## 共享约定 ### 1. 目录结构 ``` src/ ├── api/ # API接口定义 ├── assets/styles/ # 全局样式 ├── components/ # 公共组件 ├── layout/ # 布局组件 ├── mock/ # Mock数据 │ ├── index.js # Mock入口(汇总所有mock) │ ├── user.js │ ├── school.js │ └── ... ├── router/ # 路由配置 ├── store/ # Pinia Store ├── utils/ # 工具函数 └── views/ # 页面视图 ``` ### 2. API响应格式 ```javascript // 成功响应 { code: 200, msg: '操作成功', data: { ... } } // 分页响应 { code: 200, msg: '查询成功', total: 100, rows: [ ... ] } // 错误响应 { code: 500, msg: '操作失败' } ``` ### 3. Mock数据规范 ```javascript // mock/xxx.js 格式 import Mock from 'mockjs' // GET请求用RegExp匹配URL Mock.mock(/\/api\/xxx\/list/, 'get', (options) => { return { code: 200, total: 100, rows: [...] } }) // POST/PUT/DELETE用字符串匹配 Mock.mock('/api/xxx', 'post', { code: 200, msg: '新增成功' }) ``` --- ## Agent-1:核心基础设施 ``` 你是一个Vue 3前端开发专家。请为"盘古用户平台"创建核心基础设施。 ## 项目信息 - 项目路径:/Users/felix/hbxhWorkSpace/pangu-user-platform/pangu-ui - 技术栈:Vue 3 + Vite + Element Plus + Pinia + Vue Router + MockJS - 作者:湖北新华业务中台研发团队 ## 重要:你是唯一需要启动dev server的Agent 完成开发后,执行 npm run dev 启动服务器(端口3000),并保持运行。 其他Agent会在你之后并行开发,共享同一个项目。 ## 编码规范 请严格遵守本文档"前端编码规范"章节的所有规范。 ## 你的任务 ### 1. 创建布局组件 src/layout/index.vue - 左侧边栏(可折叠,展开200px,折叠64px) - 顶部导航栏(显示用户信息、退出按钮) - 右侧主内容区() ### 2. 创建 src/layout/components/Sidebar.vue 菜单项: - 首页 (icon: HomeFilled) - 学校管理 (icon: School) - 会员管理 (icon: User) - 学生管理 (icon: UserFilled) - 应用管理 (icon: Grid) - 基础数据 (icon: Setting, 有子菜单) - 年级管理 - 班级管理 - 学科管理 - 区域管理 ### 3. 创建 src/layout/components/Navbar.vue - 折叠按钮 - 面包屑导航 - 右侧:用户头像、昵称、下拉菜单(退出登录) ### 4. 创建Mock入口 src/mock/index.js ```javascript import './user' // 其他Agent会在此添加import ``` ### 5. 创建用户Mock src/mock/user.js - POST /api/login - 登录(返回token) - GET /api/getInfo - 获取用户信息(返回用户名、头像、权限) - POST /api/logout - 退出 ### 6. 创建工具函数 src/utils/request.js - 基于axios封装 - 请求拦截器:添加Authorization头 - 响应拦截器:处理code!=200的情况,弹出错误提示 ### 7. 创建首页 src/views/dashboard/index.vue - 欢迎信息卡片 - 统计卡片(学校数、会员数、学生数、应用数)使用Mock数据 ### 8. 确保 src/main.js 正确引入所有依赖 ### 9. 确保 src/router/index.js 路由配置正确 ## 设计参考 - 主题色:#409EFF - 侧边栏背景:#304156 - 布局参考RuoYi-Vue ## 完成后 1. 运行 npm run dev 启动开发服务器 2. 确认 http://localhost:3000 可以正常访问 3. 保持服务器运行,其他Agent会继续开发 ``` --- ## Agent-2:登录页面 ``` 你是一个Vue 3前端开发专家。请为"盘古用户平台"创建登录页面。 ## 项目信息 - 项目路径:/Users/felix/hbxhWorkSpace/pangu-user-platform/pangu-ui - 技术栈:Vue 3 + Element Plus - 作者:湖北新华业务中台研发团队 ## ⚠️ 重要:不要启动dev server Agent-1已经启动了开发服务器(端口3000),你只需创建文件。 完成后刷新浏览器即可看到效果(Vite热更新)。 ## 你只能操作这些文件 - src/views/login/index.vue(新建) - src/views/login/其他组件(如需要) ## 编码规范 请严格遵守本文档"前端编码规范"章节的所有规范。 ## 你的任务 ### 1. 创建登录页面 src/views/login/index.vue 页面设计: - 居中登录卡片(宽度400px,圆角8px,阴影) - 背景:渐变色 linear-gradient(135deg, #667eea 0%, #764ba2 100%) - 标题:盘古用户平台 - 副标题:统一用户管理系统 表单字段: - 用户名(el-input,前缀图标User,placeholder="请输入用户名") - 密码(el-input type="password",前缀图标Lock,show-password) - 验证码(el-input + 右侧验证码图片,点击刷新) - 记住密码(el-checkbox) - 登录按钮(el-button type="primary" 全宽,高度40px) 功能: - 表单验证(用户名、密码、验证码必填) - 点击验证码图片刷新 - 登录成功存储token,跳转首页 - 登录失败显示错误提示 ### 2. 验证码Mock(在 src/mock/user.js 中添加) - GET /api/captchaImage - 返回 { code: 200, img: 'base64图片', uuid: 'xxx' } - 可以用Mock生成简单的文字验证码 ### 3. 样式要求 - 登录卡片居中显示 - 响应式适配移动端 ## Mock数据说明 调用接口: - GET /api/captchaImage - POST /api/login { username, password, code, uuid } ## 完成后 确保登录页面可以正常显示,输入admin/admin123可以登录成功 ``` --- ## Agent-3:学校管理 ``` 你是一个Vue 3前端开发专家。请为"盘古用户平台"创建学校管理模块。 ## 项目信息 - 项目路径:/Users/felix/hbxhWorkSpace/pangu-user-platform/pangu-ui - 技术栈:Vue 3 + Element Plus - 作者:湖北新华业务中台研发团队 - 原型参考:https://modao.cc/proto/atlwMul8t9pi6yxQ42W7up/sharing ## ⚠️ 重要:不要启动dev server Agent-1已经启动了开发服务器(端口3000),你只需创建文件。 完成后刷新浏览器即可看到效果(Vite热更新)。 ## 你只能操作这些文件 - src/views/school/*(新建) - src/api/school.js(新建) - src/mock/school.js(新建) - src/mock/index.js(追加import './school') ## 编码规范 请严格遵守本文档"前端编码规范"章节的所有规范,特别是: - 表格列必须指定宽度,避免右侧空白 - 使用min-width让名称列自适应 - 操作列fixed="right" - 长文本使用show-overflow-tooltip ## 你的任务 ### 1. 创建页面 src/views/school/index.vue 布局(左右分栏,使用el-row el-col): - 左侧(span=6,约250px):区域树 - 右侧(span=18):学校列表 左侧区域树: - 使用 el-tree,带搜索过滤 - 数据:湖北省 > 武汉市 > 武昌区/汉口区/汉阳区... - 点击节点筛选右侧表格 右侧列表: - 搜索条件:学校名称(input)、状态(select) - 表格字段(指定列宽): - 名称 min-width="150" show-overflow-tooltip - 类型 width="100" - 所属区域 min-width="180" show-overflow-tooltip - 状态 width="80" align="center" - 创建时间 width="160" - 创建人 width="100" - 操作 width="200" fixed="right" - 操作按钮:编辑、删除、新增年级、新增班级 - 分页 ### 2. 创建弹窗 src/views/school/components/SchoolDialog.vue - 新增/编辑学校 - 字段:学校名称(必填)、学校类型(下拉)、所属区域(级联)、状态(开关) ### 3. 创建弹窗 src/views/school/components/GradeDialog.vue - 为学校新增年级 - 字段:年级选择(多选checkbox) ### 4. 创建弹窗 src/views/school/components/ClassDialog.vue - 为年级新增班级 - 字段:班级选择(多选checkbox) ### 5. 创建API src/api/school.js ### 6. 创建Mock src/mock/school.js 区域树Mock数据: ```javascript const regionTree = [ { regionId: 1, regionName: '湖北', children: [ { regionId: 11, regionName: '武汉', children: [ { regionId: 111, regionName: '武昌区' }, { regionId: 112, regionName: '汉口区' }, { regionId: 113, regionName: '汉阳区' }, { regionId: 114, regionName: '江夏区' } ]}, { regionId: 12, regionName: '黄冈', children: [ { regionId: 121, regionName: '黄州区' }, { regionId: 122, regionName: '红安县' } ]} ] } ] ``` ### 7. 在 src/mock/index.js 中添加 import './school' ## 完成后 确保页面可以正常展示,左侧树点击可筛选,CRUD功能正常 ``` --- ## Agent-4:会员管理 ``` 你是一个Vue 3前端开发专家。请为"盘古用户平台"创建会员管理模块。 ## 项目信息 - 项目路径:/Users/felix/hbxhWorkSpace/pangu-user-platform/pangu-ui - 技术栈:Vue 3 + Element Plus - 作者:湖北新华业务中台研发团队 ## ⚠️ 重要:不要启动dev server Agent-1已经启动了开发服务器(端口3000),你只需创建文件。 完成后刷新浏览器即可看到效果(Vite热更新)。 ## 你只能操作这些文件 - src/views/member/*(新建) - src/api/member.js(新建) - src/mock/member.js(新建) - src/mock/index.js(追加import './member') ## 编码规范 请严格遵守本文档"前端编码规范"章节的所有规范,特别是: - 表格列必须指定宽度 - 手机号脱敏显示 138****5678 - 状态使用Tag组件 ## 你的任务 ### 1. 创建页面 src/views/member/index.vue 搜索条件: - 手机号(input, width=150px) - 昵称(input, width=150px) - 身份类型(select: 全部/家长/教师, width=120px) - 状态(select: 全部/正常/停用, width=100px) - 注册时间(date-picker范围, width=240px) 表格字段(列宽): - 会员编号 width="140" - 手机号 width="120" (脱敏显示) - 昵称 min-width="100" - 性别 width="60" align="center" - 出生日期 width="100" - 身份类型 width="80" align="center" (Tag) - 注册时间 width="160" - 注册来源 width="80" - 状态 width="70" align="center" (Tag) - 操作 width="180" fixed="right" 操作按钮:编辑、重置密码、删除 ### 2. 创建弹窗 src/views/member/components/MemberDialog.vue 字段: - 手机号(必填) - 昵称 - 性别(radio:男/女/未知) - 出生日期(date-picker) - 身份类型(radio:家长/教师) - 当身份=教师时显示:区域、学校、年级、班级(级联) - 状态(switch) 学生绑定区域(表格): - 显示已绑定学生 - 添加/移除按钮 ### 3. 创建弹窗 src/views/member/components/ResetPwdDialog.vue - 显示新密码 - 复制按钮 ### 4. 创建API src/api/member.js ### 5. 创建Mock src/mock/member.js ### 6. 在 src/mock/index.js 中添加 import './member' ## 完成后 确保页面可以正常展示和交互 ``` --- ## Agent-5:学生管理 ``` 你是一个Vue 3前端开发专家。请为"盘古用户平台"创建学生管理模块。 ## 项目信息 - 项目路径:/Users/felix/hbxhWorkSpace/pangu-user-platform/pangu-ui - 技术栈:Vue 3 + Element Plus - 作者:湖北新华业务中台研发团队 ## ⚠️ 重要:不要启动dev server Agent-1已经启动了开发服务器(端口3000),你只需创建文件。 完成后刷新浏览器即可看到效果(Vite热更新)。 ## 你只能操作这些文件 - src/views/student/*(新建) - src/api/student.js(新建) - src/mock/student.js(新建) - src/mock/index.js(追加import './student') ## 编码规范 请严格遵守本文档"前端编码规范"章节的所有规范。 ## 你的任务 ### 1. 创建页面 src/views/student/index.vue 布局(左右分栏): - 左侧(span=6):学校树(学校>年级>班级,使用el-tree) - 右侧(span=18):学生列表 搜索条件:姓名、学号、性别、用户手机号、学科 表格字段(列宽): - 姓名 min-width="80" - 学号 width="100" - 性别 width="60" align="center" - 出生年月 width="100" - 地区 min-width="150" show-overflow-tooltip - 学校 min-width="140" show-overflow-tooltip - 年级 width="80" - 班级 width="60" - 学科 width="60" - 用户昵称 width="100" - 用户手机号 width="120"(脱敏) - 操作 width="120" fixed="right" 功能按钮:新增学生、批量导入 ### 2. 创建弹窗 src/views/student/components/StudentDialog.vue 字段:姓名(必填)、学号、性别、出生日期、学校信息(级联,必填)、学科、归属用户 ### 3. 创建弹窗 src/views/student/components/ImportDialog.vue - 下载模板按钮 - 上传Excel(el-upload) - 导入结果展示 ### 4. 创建API src/api/student.js ### 5. 创建Mock src/mock/student.js ### 6. 在 src/mock/index.js 中添加 import './student' ## 完成后 确保页面可以正常展示和交互 ``` --- ## Agent-6:应用管理 ``` 你是一个Vue 3前端开发专家。请为"盘古用户平台"创建应用管理模块。 ## 项目信息 - 项目路径:/Users/felix/hbxhWorkSpace/pangu-user-platform/pangu-ui - 技术栈:Vue 3 + Element Plus - 作者:湖北新华业务中台研发团队 ## ⚠️ 重要:不要启动dev server Agent-1已经启动了开发服务器(端口3000),你只需创建文件。 完成后刷新浏览器即可看到效果(Vite热更新)。 ## 你只能操作这些文件 - src/views/application/*(新建) - src/api/application.js(新建) - src/mock/application.js(新建) - src/mock/index.js(追加import './application') ## 编码规范 请严格遵守本文档"前端编码规范"章节的所有规范。 ## 你的任务 ### 1. 创建页面 src/views/application/index.vue 搜索条件:应用名称、应用编码、状态 表格字段(列宽): - 应用名称 min-width="150" - 应用编码 width="120" - 授权接口 min-width="250"(多个用Tag展示,show-overflow-tooltip) - 状态 width="80" align="center" - 创建时间 width="160" - 创建人 width="100" - 操作 width="180" fixed="right" 操作按钮:编辑、重置密钥、删除 ### 2. 创建弹窗 src/views/application/components/AppDialog.vue 字段: - 应用名称(必填) - 应用编码(自动生成,disabled) - 应用描述 - 联系人、联系电话 - 状态 - 接口授权(checkbox-group): - 查询学生信息 - 查询学校信息 - 查询年级信息 - 查询班级信息 - 查询会员信息 - 查询区域树 ### 3. 创建弹窗 src/views/application/components/SecretDialog.vue - 显示密钥(只读input) - 复制按钮 ### 4. 创建API src/api/application.js ### 5. 创建Mock src/mock/application.js ### 6. 在 src/mock/index.js 中添加 import './application' ## 完成后 确保页面可以正常展示和交互 ``` --- ## Agent-7:基础数据 ``` 你是一个Vue 3前端开发专家。请为"盘古用户平台"创建基础数据管理模块(年级/班级/学科/区域)。 ## 项目信息 - 项目路径:/Users/felix/hbxhWorkSpace/pangu-user-platform/pangu-ui - 技术栈:Vue 3 + Element Plus - 作者:湖北新华业务中台研发团队 ## ⚠️ 重要:不要启动dev server Agent-1已经启动了开发服务器(端口3000),你只需创建文件。 完成后刷新浏览器即可看到效果(Vite热更新)。 ## 你只能操作这些文件 - src/views/base/*(新建) - src/api/grade.js, class.js, subject.js, region.js(新建) - src/mock/grade.js, class.js, subject.js, region.js(新建) - src/mock/index.js(追加import) ## 编码规范 请严格遵守本文档"前端编码规范"章节的所有规范。 ## 你的任务 这4个页面结构相似,可以复用代码模式。 ### 1. 年级管理 src/views/base/grade/index.vue 搜索:年级名称、状态 表格字段(列宽): - 年级名称 min-width="150" - 年级编码 width="120" - 排序 width="80" align="center" - 状态 width="80" align="center" - 创建时间 width="160" - 操作 width="150" fixed="right" 弹窗字段:年级名称(必填)、年级编码(自动生成)、排序、状态 ### 2. 班级管理 src/views/base/class/index.vue (结构同年级管理) ### 3. 学科管理 src/views/base/subject/index.vue (结构同年级管理) ### 4. 区域管理 src/views/base/region/index.vue 特殊布局: - 使用树形表格(el-table + row-key + tree-props) - 展示省-市-区结构 - 操作:新增子区域、编辑、删除 ### 5. 创建API - src/api/grade.js - src/api/class.js - src/api/subject.js - src/api/region.js ### 6. 创建Mock(预置数据) - src/mock/grade.js:一年级~六年级、七年级~九年级、高一~高三 - src/mock/class.js:1班~10班 - src/mock/subject.js:语文、数学、英语、物理、化学、生物、历史、地理、政治 - src/mock/region.js:复用school.js的区域数据 ### 7. 在 src/mock/index.js 中添加所有import ## 完成后 确保4个页面都可以正常展示和交互 ``` --- ## 执行指南 ### 第一步:启动Agent-1(必须先完成) 1. 开启新会话,复制本文档 2. 告诉Cursor:`请完成Agent-1的任务` 3. Agent-1会创建文件并启动 `npm run dev`(端口3000) 4. **保持这个会话和服务器运行** ### 第二步:并行启动Agent-2~7 1. 开启6个新会话 2. 每个会话复制本文档 3. 分别告诉Cursor: - `请完成Agent-2的任务` - `请完成Agent-3的任务` - ... 以此类推 ### 关键规则 ``` ✅ Agent-1:创建文件 + 启动dev server + 保持运行 ✅ Agent-2~7:只创建文件,不启动server ✅ 验证方式:刷新浏览器(Vite自动热更新) ❌ 错误:每个Agent都启动npm run dev ``` ### 完成后检查 1. 访问 http://localhost:3000 验证所有页面 2. 检查 `src/mock/index.js` 是否引入了所有mock文件: ```javascript import './user' import './school' import './member' import './student' import './application' import './grade' import './class' import './subject' import './region' ``` 3. 检查各页面表格是否无右侧空白 4. 测试CRUD功能是否正常 --- *文档作者:湖北新华业务中台研发团队* *创建时间:2026-01-31*