Script Generator 1f5bed0c79 feat: 开发任务时间字段重构 + 双口径耗时 + 搜索 + 性能优化
核心变更:
- DevTask 字段重构:startDate/dueDate/estimateHours/actualHours 替换为 expectedStartAt/expectedEndAt/actualStartAt/actualEndAt(含时分),预计/实际工时按工作时段(9:00-12:00 + 13:00-18:00)派生计算
- 状态机自动化:到点自动切开发中、未到可手动开干、超期需填延后原因
- 新建 lib/work-hours.ts:calcWorkHours(工作时段过滤)、formatWorkHours(X h(Y 天))、calcTwoMetrics(日历/人力双口径)
- 新建 lib/dev-task-transitions.ts:状态切换守卫
- 三个 Tab 顶部统计:开发任务(预/日历/人力)、测试用例 / Bug(日历 / 人力);版本概览总人天投入改双行(日历总耗时 / 人力总投入)
- 三个 Tab 加搜索框:300ms debounce + 标题/编号模糊匹配
- 性能优化:requirementIds/categories/requirements/testCases 转 Map/Set 索引、Row 组件 React.memo
- 全局耗时显示统一带天数换算:8h(1天)、11h(1.4天)

新增文件: SearchInput.tsx, useDebouncedValue.ts, work-hours.ts, dev-task-transitions.ts, 设计文档

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-16 17:44:59 +08:00
2026-06-08 12:28:14 +08:00

FTB 项目管理系统

基于 Next.js + NestJS 的项目管理系统,包含产品管理、项目管理、版本管理、需求管理、加班记录、成员/角色管理等模块。

环境要求

工具 版本 说明
Node.js >= 18.x 推荐 20.x LTS
pnpm >= 9.4.0 包管理器
Git >= 2.x 版本控制

后端(可选)还需要 PostgreSQL >= 15 和 Redis >= 7目前前端独立运行不依赖后端。

安装 Node.js 和 pnpm

# Windows - 下载安装包
# https://nodejs.org/en/download

# 安装 pnpm
npm install -g pnpm@9.4.0

快速开始

# 1. 克隆项目
git clone https://github.com/chengnianbai/ftb-project-management.git
cd ftb-project-management

# 2. 安装依赖
pnpm install

# 3. 启动前端开发服务器
cd apps/web
npx next dev -p 3000

# 4. 打开浏览器
# http://localhost:3000

项目结构

ftb-project-management/
├── apps/
│   ├── web/                  # 前端 (Next.js 14 + React 18)
│   │   ├── app/              # 页面路由
│   │   │   ├── products/     # 产品管理
│   │   │   ├── projects/     # 项目管理
│   │   │   ├── versions/     # 版本管理
│   │   │   ├── requirements/ # 需求管理
│   │   │   ├── overtime/     # 加班记录
│   │   │   └── admin/        # 管理(成员/角色)
│   │   ├── components/       # 通用组件
│   │   ├── stores/           # Zustand 状态管理
│   │   └── lib/              # 类型定义/工具函数
│   └── server/               # 后端 (NestJS 10, 暂未启用)
│       ├── src/
│       └── prisma/           # 数据库 Schema
├── packages/
│   └── shared/               # 共享类型
├── package.json              # Monorepo 根配置
├── pnpm-workspace.yaml       # pnpm workspace
└── turbo.json                # Turborepo 配置

技术栈

前端

  • Next.js 14 (App Router)
  • React 18
  • TypeScript 5.5
  • Tailwind CSS
  • Zustand (状态管理)
  • Lucide React (图标)

后端(暂未启用)

  • NestJS 10
  • Prisma (ORM)
  • PostgreSQL

工程化

  • pnpm workspace (Monorepo)
  • Turborepo (任务编排)

功能模块

模块 路径 状态
产品管理 /products 已完成
项目管理 /projects 已完成
版本管理 /versions 已完成
需求管理 /requirements 已完成
加班记录 /overtime 已完成
成员管理 /admin/members 已完成
角色管理 /admin/roles 已完成

数据存储

当前阶段所有数据存储在浏览器 localStorage 中Mock 模式),无需数据库即可体验完整功能。后续接入后端 API 后切换为数据库持久化。

常用命令

# 前端开发
cd apps/web && npx next dev -p 3000

# TypeScript 类型检查
cd apps/web && npx tsc --noEmit

# 全量构建
pnpm build

后端启动(可选)

如果需要启动后端 API

# 1. 安装 PostgreSQL 并创建数据库
createdb ftb_pm

# 2. 配置环境变量
cd apps/server
cp .env.example .env
# 编辑 .env 设置 DATABASE_URL

# 3. 初始化数据库
npx prisma migrate dev

# 4. 启动
npm run dev
# 后端运行在 http://localhost:3001
Description
No description provided
Readme 4.3 MiB
Languages
TypeScript 95.5%
JavaScript 4.4%