charilezhou b58d7b2afa feat(web): 添加用户角色分配功能
- 新增 UserRolesDialog 组件用于分配角色
- UsersTable 添加分配角色操作按钮
- user.service 添加 getUserWithRoles 和 assignRoles 方法
- useUsers hooks 添加 useUserWithRoles 和 useAssignRoles

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-17 21:39:45 +08:00
2026-01-17 14:07:35 +08:00
2026-01-17 14:09:17 +08:00
2026-01-17 14:09:17 +08:00
2026-01-17 14:09:17 +08:00

Seclusion

基于 Next.js + NestJS 的 Monorepo 项目模板,使用 pnpm workspace + Turborepo 管理。

技术栈

  • 前端: Next.js 15 + React 19 + TypeScript
  • 后端: NestJS 10 + Prisma + Swagger + JWT
  • 工具链: pnpm + Turborepo + ESLint + Prettier

项目结构

seclusion/
├── apps/
│   ├── web/          # Next.js 前端应用
│   └── api/          # NestJS 后端应用
├── packages/
│   ├── shared/       # 共享代码(类型、工具函数)
│   ├── eslint-config/    # ESLint 配置
│   └── typescript-config/ # TypeScript 配置
├── package.json
├── pnpm-workspace.yaml
└── turbo.json

快速开始

环境要求

  • Node.js >= 20.0.0
  • pnpm >= 9.0.0

安装依赖

pnpm install

配置环境变量

# 后端
cp apps/api/.env.example apps/api/.env

# 前端
cp apps/web/.env.example apps/web/.env.local

初始化数据库

# 生成 Prisma Client
pnpm db:generate

# 推送数据库 schema
pnpm db:push

启动开发服务器

# 同时启动前端和后端
pnpm dev

常用命令

# 开发
pnpm dev           # 启动所有应用的开发服务器

# 构建
pnpm build         # 构建所有应用

# 代码质量
pnpm lint          # 运行 ESLint
pnpm format        # 格式化代码

# 数据库
pnpm db:generate   # 生成 Prisma Client
pnpm db:push       # 推送 schema 到数据库
pnpm db:migrate    # 运行数据库迁移

# 清理
pnpm clean         # 清理所有构建产物和 node_modules

API 接口

认证相关

  • POST /auth/register - 用户注册
  • POST /auth/login - 用户登录
  • GET /auth/me - 获取当前用户信息(需认证)

用户管理

  • GET /users - 获取所有用户(需认证)
  • GET /users/:id - 获取指定用户(需认证)
  • PATCH /users/:id - 更新用户信息(需认证)
  • DELETE /users/:id - 删除用户(需认证)

共享包使用

// 导入类型
import type { User, ApiResponse } from '@seclusion/shared';

// 导入工具函数
import { formatDate, generateId } from '@seclusion/shared';
Description
Node全栈项目脚手架
Readme 786 KiB
Languages
TypeScript 93.2%
Handlebars 5.5%
Dockerfile 0.6%
CSS 0.4%
JavaScript 0.3%