docs: update README with detailed features and deployment guide

This commit is contained in:
2026-02-28 15:13:52 +08:00
parent 2c37aa9064
commit 7fc0c66ee3

176
README.md
View File

@@ -7,12 +7,13 @@
### 后端
- **FastAPI** - 高性能异步 Web 框架
- **SQLAlchemy 2.0** - 异步 ORM
- **PostgreSQL** - 数据库
- **PostgreSQL** - 数据库端口15432
- **Alembic** - 数据库迁移
- **Pydantic** - 数据验证
- **Pydantic v2** - 数据验证
- **asyncpg** - PostgreSQL 异步驱动
### 前端
- **Vue 3** - 渐进式JavaScript框架
- **Vue 3** - 渐进式 JavaScript 框架Composition API
- **Element Plus** - UI 组件库
- **Pinia** - 状态管理
- **ECharts** - 图表库
@@ -45,26 +46,57 @@ hospital-performance/
## 功能模块
```mermaid
graph TD
A[医院绩效考核系统] --> B[基础数据管理]
A --> C[绩效考核流程]
A --> D[数据分析报表]
A --> E[绩效工资核算]
B --> B1[科室管理]
B --> B2[员工管理]
B --> B3[考核指标库]
B --> B4[模板管理]
C --> C1[考核计划]
C --> C2[指标分配]
C --> C3[考核提交]
C --> C4[多级审核]
C --> C5[批量考核]
D --> D1[科室统计]
D --> D2[员工排名]
D --> D3[趋势分析]
D --> D4[分布分析]
E --> E1[自动计算]
E --> E2[公式配置]
E --> E3[批量生成]
E --> E4[发放确认]
```
### 1. 基础数据管理
- 科室信息管理(支持树形结构)
- 员工信息管理
- 考核指标管理
- 科室信息管理(支持树形结构,含临床、医技、行政等类别
- 员工信息管理(工号、岗位、职称、入职时间等)
- 考核指标管理KPI 指标库、平衡计分卡维度)
- 模板管理(考核表模板、指标分配方案)
### 2. 绩效考核流程
- 考核计划制定(月度、季度、年度)
- 考核记录创建与编辑
- 考核提交与审核流程
- 考核提交与多级审核流程
- 批量创建考核
- 绩效反馈与申诉
### 3. 数据分析报表
- 科室绩效统计
- 员工绩效排名
- 趋势分析图表
- 绩效分布分析
- 科室绩效统计(工作量、质量、满意度等)
- 员工绩效排名与分析
- 趋势分析图表(同比、环比)
- 绩效分布分析(按科室、岗位、职称)
- 平衡计分卡四维分析
### 4. 绩效工资核算
- 根据考核自动计算工资
- 根据考核结果自动计算工资
- 绩效工资公式配置
- 批量生成工资记录
- 工资确认与发放
- 工资条导出
## 快速开始
@@ -76,25 +108,31 @@ hospital-performance/
### 后端启动
```bash
# 创建虚拟环境
# 进入后端目录
cd backend
# 创建虚拟环境
python -m venv venv
source venv/bin/activate # Linux/Mac
# venv\Scripts\activate # Windows
# 激活虚拟环境
# Windows PowerShell
.\venv\Scripts\Activate.ps1
# 或 CMD
venv\Scripts\activate.bat
# 安装依赖
pip install -r requirements.txt
# 配置环境变量
cp .env.example .env
# 编辑 .env 文件配置数据库连接
# 创建数据库
createdb hospital_performance
# 编辑 .env 文件配置数据库连接(默认使用 PostgreSQL:15432
# 运行数据库迁移
alembic upgrade head
# 初始化测试数据(可选)
python init_db.py
# 启动服务
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
```
@@ -102,13 +140,20 @@ uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
### 前端启动
```bash
# 进入前端目录
cd frontend
# 安装依赖
npm install
# 启动开发服务器
# 启动开发服务器(自动代理到后端 http://localhost:8000
npm run dev
# 构建生产版本
npm run build
# 预览生产构建
npm run preview
```
### 访问系统
@@ -128,46 +173,109 @@ npm run dev
## 数据库设计
### 主要表结构
- `departments` - 科室信息表
- `staff` - 员工信息表
- `indicators` - 考核指标表
- `departments` - 科室信息表(含树形结构支持)
- `staff` - 员工信息表(关联科室、岗位、职称)
- `indicators` - 考核指标表KPI、平衡计分卡维度
- `indicator_templates` - 指标模板表
- `assessments` - 考核记录表
- `assessment_details` - 考核明细表
- `assessment_details` - 考核明细表(多维度评分)
- `performance_plans` - 绩效计划表
- `salary_records` - 工资核算表
- `users` - 系统用户表
- `menus` - 菜单权限表
### 核心业务模型
- **DeptType**: 科室类型枚举(临床手术/非手术、医技、行政等)
- **BSCDimension**: 平衡计分卡四维度(财务、客户、内部流程、学习成长)
- **IndicatorType**: 指标类型(数量、质量、成本、满意度等)
## 项目截图
![登录页面](screenshots/test_01_login.png)
![Dashboard](screenshots/test_02_dashboard.png)
![科室列表](screenshots/test_03_department_list.png)
![员工列表](screenshots/test_04_staff_list.png)
![指标列表](screenshots/test_05_indicator_list.png)
> 更多截图请查看 [screenshots](screenshots) 目录
## 开发规范
### 代码风格
- **后端**: Python PEP 8使用 type hints
- **前端**: ESLint + Prettier待配置
- **Git**: 遵循 conventional commits 规范
### 分支管理
- `main`: 主分支,仅接受合并请求
- `develop`: 开发分支(待创建)
- `feature/*`: 功能分支
### 提交规范
```bash
feat: 新功能
fix: 修复 bug
docs: 文档更新
style: 代码格式调整
refactor: 重构
test: 测试相关
chore: 构建/工具链相关
```
## 性能优化
1. **数据库层面**
- 合理的索引设计
- 连接池配置
- 连接池配置asyncpg
- 异步查询
- 批量操作优化
2. **应用层面**
- 异步IO处理
- FastAPI 异步 IO 处理
- 分页查询
- 缓存策略
- 响应缓存策略
- 后台任务队列(待实现)
3. **前端层面**
- 路由懒加载
- 组件按需加载
- 图表数据缓存
- ECharts 图表数据缓存
- API 请求防抖
## 可维护性设计
1. **代码规范**
- 模块化设计
- 分层架构
- 类型注解
- 模块化设计(按业务领域划分)
- 分层架构API -> Service -> Model
- 类型注解Python type hints
- 统一的错误处理
2. **文档完善**
- API自动文档
- 代码注释
- API 自动文档Swagger/OpenAPI
- 代码注释Google Style
- README 文档
- 开发者指南docs/目录)
3. **测试覆盖**
- 单元测试
- 单元测试pytest
- 集成测试
- API 测试
- E2E 测试(待实现)
## 常见问题
### Q: 数据库连接失败?
A: 检查 PostgreSQL 是否运行在 15432 端口,确认 `.env` 文件中 `DATABASE_URL` 配置正确。
### Q: 前端无法访问后端 API
A: Vite 开发服务器已配置代理,确保后端运行在 `http://localhost:8000`
### Q: 如何重置数据库?
A: 删除所有表后重新运行 `alembic upgrade head`,或使用 `backend/create_database.py` 脚本。
## 贡献指南
欢迎提交 Issue 和 Pull Request
## License