Vue.js 2 Web管理端,Element UI组件库,用于后台管理。
| Task | Location | Notes |
|---|---|---|
| 页面组件 | src/views/ |
管理界面页面组件 |
| API调用 | src/api/ |
后端API接口封装 |
| 路由配置 | src/router/ |
Vue Router配置 |
| 工具函数 | src/utils/ |
通用工具函数 |
| 状态管理 | src/store/ |
Vuex状态管理 |
| 公共组件 | src/components/ |
可复用UI组件 |
src/
├── views/ # 页面视图组件
│ ├── Dashboard.vue # 管理员首页(8统计卡片+趋势图+系统健康+快捷操作)
│ ├── TeacherDashboard.vue # 规划师首页(独立角色仪表板)
│ ├── admin/ # 管理员页面
│ └── teacher/ # 规划师页面 (7个)
├── api/ # API接口
├── router/ # 路由配置
├── store/ # Vuex状态
├── utils/ # 工具函数
└── components/ # 公共组件
页面时间展示必须统一以下两种格式:
| 使用场景 | 格式 | 示例 |
|---|---|---|
| 时间(年月日+时分秒) | yyyy-MM-dd HH:mm:ss |
2026-08-15 14:30:00 |
| 仅日期(不带时间) | yyyy-MM-dd |
2026-08-15 |
后端返回 ISO 8601 格式(2026-08-15T14:30:00),页面对时间字段统一使用:
formatTime(t) { return t ? t.replace('T', ' ').substring(0, 19) : '-' }(时间场景)
或截取前 10 位得到日期(date-only 场景,如 el-date-picker 的 value-format="yyyy-MM-dd" 日期筛选)。
禁止使用 new Date(str).toLocaleString() / toLocaleTimeString()(输出格式因浏览器而异,用 yyyy/MM/dd 分号分割而非规定格式)。
router.beforeEach 执行以下检查:
npm install # 安装依赖
npm run serve # 开发模式 (localhost:8082)
npm run build # 生产构建
.v-modal { display: none !important } 防止 Element UI 组件残留遮罩