201 lines
3.8 KiB
Markdown
201 lines
3.8 KiB
Markdown
|
|
# 校园新闻管理系统
|
|||
|
|
|
|||
|
|
这是一个基于 Vue 3 + TypeScript + Vite 构建的现代化校园新闻管理系统前端项目。该系统提供了新闻管理、用户中心、AI 对话、学习计划等功能模块。
|
|||
|
|
|
|||
|
|
## 技术栈
|
|||
|
|
|
|||
|
|
- **框架**: Vue 3.5.22
|
|||
|
|
- **构建工具**: Vite 5.0.0
|
|||
|
|
- **语言**: TypeScript 4.5.5
|
|||
|
|
- **UI 组件库**: Element Plus 2.11.4
|
|||
|
|
- **状态管理**: Vuex 4.1.0
|
|||
|
|
- **路由管理**: Vue Router 4.5.1
|
|||
|
|
- **HTTP 客户端**: Axios 1.7.9
|
|||
|
|
- **PWA 支持**: vite-plugin-pwa
|
|||
|
|
|
|||
|
|
## 功能模块
|
|||
|
|
|
|||
|
|
### 首页模块
|
|||
|
|
- 横幅管理
|
|||
|
|
- 菜单导航
|
|||
|
|
- 新闻展示
|
|||
|
|
- 推荐内容
|
|||
|
|
- 搜索功能
|
|||
|
|
- 统计数据
|
|||
|
|
|
|||
|
|
### 系统管理模块
|
|||
|
|
- 用户管理
|
|||
|
|
- 角色管理
|
|||
|
|
- 权限管理
|
|||
|
|
- 部门管理
|
|||
|
|
- 菜单管理
|
|||
|
|
- 文件管理
|
|||
|
|
|
|||
|
|
### 学习模块
|
|||
|
|
- 课程管理
|
|||
|
|
- 学习计划
|
|||
|
|
- 学习任务
|
|||
|
|
- 学习记录
|
|||
|
|
|
|||
|
|
### 用户中心模块
|
|||
|
|
- 个人资料
|
|||
|
|
- 浏览记录
|
|||
|
|
- 收藏管理
|
|||
|
|
- 成就系统
|
|||
|
|
- 积分系统
|
|||
|
|
|
|||
|
|
### AI 助手模块
|
|||
|
|
- 智能对话
|
|||
|
|
- 知识库管理
|
|||
|
|
- 消息管理
|
|||
|
|
- 文件上传
|
|||
|
|
- Agent 配置
|
|||
|
|
|
|||
|
|
## 项目结构
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
schoolNewsWeb/
|
|||
|
|
├── src/
|
|||
|
|
│ ├── apis/ # API 接口定义
|
|||
|
|
│ │ ├── ai/ # AI 相关接口
|
|||
|
|
│ │ ├── homepage/ # 首页相关接口
|
|||
|
|
│ │ ├── study/ # 学习模块接口
|
|||
|
|
│ │ ├── system/ # 系统管理接口
|
|||
|
|
│ │ └── usercenter/ # 用户中心接口
|
|||
|
|
│ ├── components/ # 公共组件
|
|||
|
|
│ ├── directives/ # 自定义指令
|
|||
|
|
│ ├── layouts/ # 布局组件
|
|||
|
|
│ ├── router/ # 路由配置
|
|||
|
|
│ ├── store/ # 状态管理
|
|||
|
|
│ ├── types/ # TypeScript 类型定义
|
|||
|
|
│ ├── utils/ # 工具函数
|
|||
|
|
│ └── views/ # 页面组件
|
|||
|
|
├── public/ # 静态资源
|
|||
|
|
└── dist/ # 构建输出目录
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 环境要求
|
|||
|
|
|
|||
|
|
- Node.js >= 14.0.0
|
|||
|
|
- npm >= 6.0.0 或 yarn >= 1.22.0
|
|||
|
|
|
|||
|
|
## 如何运行
|
|||
|
|
|
|||
|
|
### 1. 安装依赖
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
npm install
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
或者使用 yarn:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
yarn install
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. 启动开发服务器
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
npm run dev
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
或者:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
npm run serve
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
开发服务器将在 `http://localhost:8080` 启动,并自动打开浏览器。
|
|||
|
|
|
|||
|
|
### 3. 后端API配置
|
|||
|
|
|
|||
|
|
项目默认将 `/api` 路径代理到 `http://127.0.0.1:8081/schoolNewsServ`。
|
|||
|
|
|
|||
|
|
如需修改后端地址,请编辑 `vite.config.js` 文件中的 proxy 配置:
|
|||
|
|
|
|||
|
|
```javascript
|
|||
|
|
proxy: {
|
|||
|
|
'/api': {
|
|||
|
|
target: 'http://your-backend-url',
|
|||
|
|
changeOrigin: true,
|
|||
|
|
rewrite: (path) => path.replace(/^\/api/, '')
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 如何构建
|
|||
|
|
|
|||
|
|
### 构建生产版本
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
npm run build
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
构建产物将输出到 `dist/` 目录。
|
|||
|
|
|
|||
|
|
### 预览构建结果
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
npm run preview
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 代码规范
|
|||
|
|
|
|||
|
|
### 运行代码检查
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
npm run lint
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
项目使用 ESLint 进行代码检查,配置了 TypeScript 和 Vue 相关的规则。
|
|||
|
|
|
|||
|
|
## 功能特性
|
|||
|
|
|
|||
|
|
### PWA 支持
|
|||
|
|
项目已配置 PWA 支持,可以作为渐进式 Web 应用安装到设备上。
|
|||
|
|
|
|||
|
|
### 权限系统
|
|||
|
|
- 基于角色的权限控制(RBAC)
|
|||
|
|
- 自定义指令进行权限校验
|
|||
|
|
- 动态路由生成
|
|||
|
|
|
|||
|
|
### 响应式设计
|
|||
|
|
- 适配桌面端和移动端
|
|||
|
|
- 现代化的 UI 设计
|
|||
|
|
- 优秀的用户体验
|
|||
|
|
|
|||
|
|
## 开发说明
|
|||
|
|
|
|||
|
|
### 路径别名
|
|||
|
|
|
|||
|
|
项目配置了 `@` 作为 `src` 目录的别名,可以这样导入模块:
|
|||
|
|
|
|||
|
|
```typescript
|
|||
|
|
import { someFunction } from '@/utils/helper'
|
|||
|
|
import MyComponent from '@/components/MyComponent.vue'
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 环境变量
|
|||
|
|
|
|||
|
|
项目定义了以下环境变量:
|
|||
|
|
- `process.env.BASE_URL`: `/schoolNewsWeb/`
|
|||
|
|
- `process.env.VITE_API_BASE_URL`: `/api`
|
|||
|
|
- `process.env.VITE_APP_TITLE`: `校园新闻管理系统`
|
|||
|
|
|
|||
|
|
## 浏览器支持
|
|||
|
|
|
|||
|
|
支持所有现代浏览器的最新两个版本:
|
|||
|
|
- Chrome
|
|||
|
|
- Firefox
|
|||
|
|
- Safari
|
|||
|
|
- Edge
|
|||
|
|
|
|||
|
|
## 许可证
|
|||
|
|
|
|||
|
|
私有项目
|
|||
|
|
|
|||
|
|
## 联系方式
|
|||
|
|
|
|||
|
|
如有问题或建议,请联系项目维护团队。
|
|||
|
|
|