https://github.com/dootask/kpi
🎯 现代化 KPI 绩效考核管理系统 - 基于 Next.js 和 Go 构建,支持多角色协作、数据统计分析和 Excel 导出,可作为 DooTask 插件使用。
https://github.com/dootask/kpi
Last synced: 3 months ago
JSON representation
🎯 现代化 KPI 绩效考核管理系统 - 基于 Next.js 和 Go 构建,支持多角色协作、数据统计分析和 Excel 导出,可作为 DooTask 插件使用。
- Host: GitHub
- URL: https://github.com/dootask/kpi
- Owner: dootask
- Created: 2025-07-12T06:02:46.000Z (12 months ago)
- Default Branch: main
- Last Pushed: 2026-01-12T08:30:49.000Z (6 months ago)
- Last Synced: 2026-01-12T16:33:18.766Z (6 months ago)
- Language: TypeScript
- Homepage:
- Size: 14 MB
- Stars: 17
- Watchers: 0
- Forks: 5
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# DooTask KPI 绩效考核系统
一个基于 Next.js 和 Go 的现代化 KPI 绩效考核管理系统,支持多角色协作,让绩效管理变得更加高效和透明。

## 🚀 技术栈
### 前端
- **Next.js 15.3.5** - React 全栈框架
- **React 19** - 用户界面库
- **TypeScript** - 类型安全的 JavaScript
- **Tailwind CSS** - 实用优先的 CSS 框架
- **Radix UI** - 高质量的 UI 组件库
- **Recharts** - 数据可视化图表库
- **Axios** - HTTP 请求库
- **React Hook Form** - 表单处理库
- **Zod** - 数据验证库
### 后端
- **Go 1.23** - 高性能编程语言
- **Gin** - 轻量级 HTTP Web 框架
- **GORM** - Go 语言 ORM 库
- **SQLite** - 嵌入式数据库
- **JWT** - 用户认证和授权
- **bcrypt** - 密码加密
- **Excelize** - Excel 文件处理
## 📋 系统功能
### 🎯 核心功能
- **考核管理** - 创建、填写和管理绩效考核
- **邀请评分** - 邀请同事参与评分,获得多角度评价
- **异议处理** - 员工可对考核结果提出异议,HR 审核并调整得分
- **统计分析** - 考核数据的图表和报表分析
- **仪表板** - 系统概览和关键指标展示
### 👥 管理功能
- **部门管理** - 组织架构和部门信息管理
- **员工管理** - 员工信息和权限管理
- **KPI 模板** - 考核模板的创建和维护
- **绩效规则** - 配置不同场景下自评、上级及邀请评分的权重比例
### ⚙️ 系统功能
- **用户认证** - 登录、注册和权限管理
- **系统设置** - 个性化配置和系统管理
- **数据导出** - Excel 格式数据导出
- **帮助中心** - 系统使用指南
## 🏗️ 系统架构
```
dootask-kpi/
├── app/ # Next.js 应用目录
│ ├── auth/ # 认证页面
│ ├── departments/ # 部门管理
│ ├── employees/ # 员工管理
│ ├── evaluations/ # 考核管理
│ ├── performance-rules/ # 绩效规则配置
│ ├── statistics/ # 统计分析
│ ├── templates/ # 模板管理
│ └── settings/ # 系统设置
├── components/ # React 组件
│ └── ui/ # UI 组件库
├── lib/ # 工具库和上下文
├── server/ # Go 后端服务
│ ├── handlers/ # HTTP 处理器
│ ├── models/ # 数据模型
│ ├── routes/ # 路由配置
│ └── utils/ # 工具函数
└── scripts/ # 脚本文件
```
## 🔐 用户角色
系统支持三种用户角色:
### 👤 普通员工 (employee)
- 查看和填写自己的绩效考核
- 对考核结果提交异议申请
- 接收并处理邀请评分任务
- 对其他员工进行客观评分
- 查看系统设置
- 访问帮助中心
### 👔 部门主管 (manager)
- 员工的所有功能
- 管理部门员工
- 评估下属的绩效考核
- 导出考核数据
### 👨💼 HR 管理员 (hr)
- 所有系统功能的完全访问权限
- 管理部门和员工
- 创建和管理 KPI 模板
- 配置绩效规则和权重比例
- 发起和管理邀请评分
- 处理员工异议申请
- 系统设置配置
- 数据统计分析
## 📊 考核流程
1. **创建考核** - HR 或主管创建考核任务,选择模板和被考核人员
2. **员工自评** - 员工填写自我评价,对各项指标进行评分
3. **主管评估** - 主管对员工进行评估,给出评分和反馈
4. **邀请评分**(可选)- HR 可邀请其他人员对员工进行评分,获取多方面评价
5. **HR 审核** - HR 审核评估结果,根据绩效规则计算最终评分
6. **员工确认** - 员工确认最终得分,考核流程完成
7. **异议处理**(可选)- 员工如对评分有异议,可提交异议申请,HR 处理并调整得分
## 🤝 邀请评分功能
### 📋 功能特点
- **多角度评价**:通过邀请不同人员参与评分,获得更全面的员工评价
- **灵活邀请**:HR 可以选择合适的人员进行邀请,支持多人同时评分
- **状态管理**:实时跟踪邀请状态(待接受、进行中、已完成、已拒绝)
- **客观评分**:被邀请人员基于对员工的了解进行客观评分
### 🔄 邀请流程
1. **发起邀请** - HR 在主管评估完成后发起邀请评分
2. **选择评分人** - 选择了解被评估员工的人员进行邀请
3. **接受邀请** - 被邀请人员可以选择接受或拒绝邀请
4. **进行评分** - 接受邀请后对员工各项指标进行评分
5. **提交结果** - 完成评分并提交评价结果
6. **HR 参考** - HR 将邀请评分作为审核的重要参考
### 👥 参与角色
- **HR 管理员**:发起邀请、管理邀请进展、查看评分结果
- **被邀请人员**:接收邀请、进行评分、提供客观评价
- **被评估员工**:邀请评分的对象,无需参与邀请评分过程
### 📊 评分原则
- **客观公正**:基于对员工的实际了解进行评分
- **具体详实**:提供具体的评分依据和改进建议
- **保密性**:评分结果仅 HR 可查看完整详情
- **可选性**:如对员工不够了解,可选择拒绝邀请
## ⚙️ 绩效规则配置
### 📋 功能说明
绩效规则用于配置不同场景下各项评分的权重比例,系统会根据配置自动计算最终得分。
### 🎯 配置场景
#### 无邀请评分场景
- **自评权重**:员工自评的权重百分比
- **上级评分权重**:主管评分的权重百分比
- **合计必须为 100%**
#### 有邀请评分场景(员工)
- **自评权重**:员工自评的权重百分比
- **邀请评分权重**:被邀请人员评分的权重百分比
- **上级评分权重**:主管评分的权重百分比
- **合计必须为 100%**
### 🔧 使用方式
1. **启用规则**:打开绩效规则开关,规则生效
2. **配置权重**:根据公司制度设置各场景下的权重百分比
3. **保存生效**:保存后立即生效,影响后续的考核评分计算
4. **禁用规则**:关闭开关后,系统使用默认评分方式
### 👥 权限说明
- 仅 **HR 管理员** 可以访问和配置绩效规则
- 配置修改后立即生效,影响所有后续考核
## 🔔 异议处理功能
### 📋 功能说明
异议处理功能允许员工对考核结果提出异议,HR 可以审核并调整最终得分,确保考核过程的公平性和透明度。
### 🔄 异议流程
1. **员工提交异议**
- 在"待确认"状态时,员工可以提交异议申请
- 填写详细的异议原因和说明
- 提交后系统自动通知上级和 HR
- 考核状态变为"异议处理中"
2. **HR 处理异议**
- HR 查看员工提交的异议原因
- 审核考核过程和评分依据
- 可以调整最终得分(如有必要)
- 填写处理原因和说明
- 处理完成后系统通知员工
3. **员工确认结果**
- 员工查看 HR 的处理结果和调整后的得分
- 确认后考核流程完成
- 如仍有异议,可再次提交(需 HR 重新处理)
### 🎯 功能特点
- **公平透明**:员工可以对考核结果提出异议,保障员工权益
- **流程规范**:异议处理流程清晰,状态可追踪
- **及时通知**:异议提交和处理都会及时通知相关人员
- **可追溯性**:异议原因和处理结果完整记录,便于追溯
### 👥 参与角色
- **员工**:在待确认状态可以提交异议,查看处理结果
- **HR 管理员**:查看和处理所有异议,调整最终得分
- **上级主管**:收到异议通知,了解员工反馈
### ⚠️ 注意事项
- 只有在"待确认"状态才能提交异议
- 每个考核只能提交一次异议
- HR 处理异议后,员工需要重新确认最终得分
- 异议处理记录会永久保存,作为考核历史的一部分
## 🛠️ 安装和使用
### 环境要求
- Node.js 18+
- Go 1.23+
### 快速启动
1. **克隆项目**
```bash
git clone https://github.com/dootask/kpi
cd kpi
```
2. **安装前端依赖**
```bash
npm install
```
3. **安装后端依赖**
```bash
cd server
go mod tidy
cd ..
```
4. **启动开发环境**
```bash
# 同时启动前后端(推荐)
npm run dev:all
# 或者分别启动
npm run dev # 仅启动前端
cd server && CGO_ENABLED=1 go run main.go # 仅启动后端
```
5. **访问系统**
- 前端:http://localhost:3000
- 后端:http://localhost:8080
### 生产环境部署
1. **构建前端**
```bash
npm run build
npm run start
```
2. **构建后端**
```bash
cd server
CGO_ENABLED=1 go build -o kpi-server main.go
./kpi-server
```
## 🗄️ 数据库
系统使用 SQLite 作为数据库,数据文件位于 `server/db/kpi.db`。
### 数据表结构
- `departments` - 部门信息
- `employees` - 员工信息
- `kpi_templates` - KPI 模板
- `kpi_items` - KPI 考核项目
- `kpi_evaluations` - 考核记录
- `kpi_scores` - 考核得分
- `evaluation_comments` - 评估评论
- `evaluation_invitations` - 邀请评分记录
- `invited_scores` - 邀请评分得分
- `performance_rules` - 绩效规则配置
- `system_settings` - 系统设置
## 📱 响应式设计
系统采用响应式设计,完美适配:
- 桌面端(1200px+)
- 平板端(768px - 1199px)
- 移动端(< 768px)
## 🌓 主题支持
系统支持明暗主题切换,用户可以根据个人喜好选择合适的主题。
## 📈 功能特性
- ✅ 完整的用户认证和授权系统
- ✅ 多角色权限管理
- ✅ 邀请评分功能,支持360度评估
- ✅ 异议处理功能,保障考核公平性
- ✅ 绩效规则配置,灵活设置评分权重
- ✅ 响应式设计,支持移动端
- ✅ 实时数据统计和图表展示
- ✅ Excel 数据导出功能
- ✅ 完整的考核流程管理
- ✅ 系统设置和配置管理
- ✅ 暗黑模式支持
- ✅ 组件化设计,易于扩展
## 🤝 默认测试账户
系统启动后会自动创建测试数据,包括以下默认账户(默认密码均为:`123456`):
### HR 管理员账户
- **账户**:sunba@company.com
- **姓名**:孙八
- **职位**:HR经理
- **权限**:系统全部功能
### 部门主管账户
- **技术总监**:zhangsan@company.com (张三)
- **市场总监**:zhaoliu@company.com (赵六)
- **财务经理**:zhoujiu@company.com (周九)
- **权限**:部门管理、员工考核、数据导出
### 普通员工账户
- **技术员工**:lisi@company.com (李四)、wangwu@company.com (王五)
- **市场员工**:qianqi@company.com (钱七)
- **权限**:查看和填写个人考核
## 📄 许可证
本项目仅供学习和参考使用。
## 👨💻 作者
基于 Next.js 和 Go 开发的现代化 KPI 管理系统。