cd63391f899f4ffea68955df6abee7297db3711a
跨部门工时管理与项目协同系统
基于 Web 的多角色工时管理平台,支持研发(R&D)、销售(Sales)和管理(Admin)三个部门的工时统计、项目协同与成本核算。
🏗️ 技术栈
| 层级 | 技术 |
|---|---|
| 前端 | Vue 3 + Vite + Element Plus + ECharts |
| 后端 | Node.js + Express |
| 数据库 | SQLite (sql.js) |
| 鉴权 | JWT + RBAC |
| 导出 | xlsx |
📋 角色权限
- 管理员 (Admin): 账号管理、工作日设置、全局统计看板、Excel导出
- 销售 (Sales): 客户/项目管理、项目工时统计
- 研发 (R&D): 每日工时填报(8h/天上限、月度上限)、个人统计
🚀 快速启动
方式一:使用安装脚本(推荐)
# Windows (PowerShell)
.\install.ps1
# Linux / macOS
bash install.sh
方式二:手动安装
# 1. 安装后端依赖
cd server
npm install
# 2. 安装前端依赖
cd ../client
npm install
# 3. 构建前端
npm run build
# 4. 启动服务
cd ../server
node app.js
🔐 默认账号
| 用户名 | 密码 | 角色 |
|---|---|---|
| admin | admin123 | 管理员 |
首次登录后请通过管理端创建销售和研发账号。
📁 项目结构
├── server/ # 后端
│ ├── app.js # Express 入口
│ ├── db.js # 数据库初始化
│ ├── middleware/auth.js # JWT + RBAC 中间件
│ ├── routes/
│ │ ├── admin.js # 管理端 API
│ │ ├── sales.js # 销售端 API
│ │ └── rd.js # 研发端 API
│ └── data/ # SQLite 数据文件
└── client/ # 前端
└── src/
├── api/ # Axios 封装
├── router/ # 路由 + 守卫
├── stores/ # Pinia 状态
├── styles/ # 全局样式
└── views/ # 页面组件
├── admin/ # 管理端页面
├── sales/ # 销售端页面
└── rd/ # 研发端页面
📊 数据库表
- users — 用户表(username, realname, role, status)
- clients — 客户/项目表(name, sales_id, status)
- timesheets — 工时记录(user_id, client_id, work_date, hours)
- workdays — 工作日配置(year, month, days)
🔧 开发模式
# 终端1: 启动后端
cd server && node app.js
# 终端2: 启动前端(dev)
cd client && npm run dev
前端开发服务器 http://localhost:5173 会自动代理 /api 请求到后端。
🌐 生产部署
# 构建前端到 server/public
cd client && npm run build
# 启动后端(同时提供前端静态文件)
cd ../server && node app.js
# 或使用 PM2
pm2 start server/app.js --name worktime
Languages
Vue
52.8%
JavaScript
38.6%
CSS
6.7%
PowerShell
0.7%
HTML
0.7%
Other
0.5%