Technical Specifications & Architecture
ProdLink 企业级项目与供应链协同管理系统
ProdLink 是一套面向现代企业工程、商务与供应链业务的一站式数字化协同管理系统。系统打通客户关系、供应商网络、标准化产品库以及项目全生命周期核算,实现从商机立项、产品选型、报价/成本核算到采购履约的数据全链路闭环,助力企业实现精准的成本管控与高效的跨部门业务协同。
目录
✨ 核心特性
-
📊 业务全景仪表盘
- 实时统计进行中项目、合作供应商、活跃客户及在库产品核心指标。
- 业务走势动态监测与高频操作快捷导航。
-
🏢 供应商全生命周期管理
- 供应商详细档案(联系人、电话、邮箱、地址、备注等)。
- 规范的信用评级体系(E: 优秀, G: 良好, A: 正常, I: 不合格, S: 战略, U: 未评级)。
- 供应商关联合同及供货产品追溯。
-
👥 客户关系管理 (CRM)
- 客户企业档案与多层级对接人(部门、职位、客户级别)全面沉淀。
- 客户关联历史项目与采购记录一键透视。
-
📦 标准化产品与物料库
- 产品统一编码、品牌、型号、规格参数、基准单价维护。
- 灵活的标签分类(Tags)与合格供应商供货关系绑定。
-
📁 项目全流程管理与核算
- 项目立项、阶段状态追踪、项目预算与中标金额记录。
- 项目产品清单 (BOM/报价清单):支持多产品明细配置,涵盖采购成本价、对外报价、成交价、含税/未税标记及毛利动态核算。
-
🔐 权限控制 (RBAC) 与系统管理
- 支持多角色权限划分(
admin超管、supervisor主管、developer研发、staff员工、user普通用户)。 - 用户账号管理、重置密码与系统全局运行设置。
- 支持多角色权限划分(
-
🌓 现代化极致交互体验
- 基于 Tailwind CSS v4 与 Radix UI(shadcn/ui 体系)构建的现代化响应式 UI。
- 原生支持浅色(Light)/ 深色(Dark)主题平滑切换与丰富微动效(Framer Motion)。
🛠 技术架构
| 领域 | 选型与技术 | 说明 |
|---|---|---|
| 前端框架 | Next.js 16 (App Router) + React 19 | 服务端组件 (RSC) 与现代渲染架构 |
| 编程语言 | TypeScript 5 | 全栈端到端强类型约束 |
| 样式与动效 | Tailwind CSS v4 + Framer Motion | 实用优先的高性能样式库与流畅交互动效 |
| 组件体系 | Radix UI + Lucide Icons | 无障碍(a11y)高保真组件与精致图标库 |
| 数据库 & ORM | PostgreSQL + Prisma ORM 6 | 企业级关系型数据库与类型安全的 ORM 映射 |
| 认证与安全 | Auth.js (NextAuth.js v5 Beta) + bcryptjs | JWT 方案鉴权,针对 Edge Runtime 体积深度优化 |
| 表单校验 | React Hook Form + Zod | 严密的数据校验与高性能表单管理 |
| 消息反馈 | Sonner | 优雅现代的 Toast 吐司通知 |
📂 目录结构
prodlink/
├── prisma/ # Prisma ORM 配置与迁移
│ ├── schema.prisma # 数据模型定义 (User, Supplier, Customer, Product, Project 等)
│ └── seed.ts # 数据库初始数据种子脚本 (内置超级管理员账号)
├── public/ # 静态资源文件
├── src/
│ ├── actions/ # Next.js Server Actions (后端业务逻辑与数据操作)
│ ├── app/ # Next.js App Router 路由
│ │ ├── api/ # API 接口路由 (Auth 回调等)
│ │ ├── dashboard/ # 核心业务仪表盘与管理模块
│ │ │ ├── admin/ # 超管专属:用户列表与系统配置
│ │ │ ├── customers/ # 客户管理模块
│ │ │ ├── products/ # 产品物料库模块
│ │ │ ├── projects/ # 项目管理与核算清单模块
│ │ │ ├── suppliers/ # 供应商管理模块
│ │ │ └── page.tsx # 仪表盘总览首页
│ │ ├── login/ # 用户登录界面
│ │ ├── globals.css # 全局样式与 Tailwind 主题定义
│ │ └── layout.tsx # 根布局配置 (包含 Session、主题等 Provider)
│ ├── components/ # UI 组件层
│ │ ├── ui/ # 基础原子组件 (Button, Dialog, Table, Form 等)
│ │ ├── app-sidebar.tsx # 系统响应式侧边导航栏
│ │ ├── nav-user.tsx # 导航栏当前用户信息与登出菜单
│ │ └── layout-wrapper.tsx # 仪表盘统一布局容器
│ ├── hooks/ # 自定义 React Hooks
│ ├── lib/ # 通用工具库 (Prisma 客户端连接实例、工具函数等)
│ ├── types/ # 全局 TypeScript 类型定义
│ ├── auth.config.ts # 轻量级认证策略配置 (兼容 Edge Runtime)
│ ├── auth.ts # 完整认证逻辑与凭证校验 (Node.js 运行时)
│ └── middleware.ts # 路由访问控制与权限守卫中间件
├── .env.example # 环境变量示例模板
├── DEPLOYMENT.md # 线上生产部署指南与 Edge 限制解决方案
├── package.json # 项目依赖与执行脚本
└── tsconfig.json # TypeScript 编译配置
🚀 快速开始
1. 环境准备
请确保本地已安装以下环境:
- Node.js:
v18.17.0或更高版本(推荐v20+LTS) - npm:
v9+或 pnpm / yarn - PostgreSQL: 本地已运行的 PostgreSQL 实例,或云端数据库(如 Neon、Supabase)
2. 安装依赖
git clone <repository-url>
cd prodlink
npm install
3. 配置环境变量
复制环境配置模板:
cp .env.example .env.local
打开 .env.local 并填写配置:
# PostgreSQL 数据库连接地址
DATABASE_URL="postgresql://username:password@localhost:5432/prodlink?schema=public"
# Auth.js 认证密钥(可通过 `npx auth secret` 自动生成)
AUTH_SECRET="your_auth_secret_here"
# 应用访问地址
AUTH_URL="http://localhost:3000"
AUTH_TRUST_HOST=true
# 紧急管理员兜底配置(可选)
ADMIN_EMAIL="admin@prodlink.com"
ADMIN_PASSWORD="your_secure_password"
4. 数据库配置与初始化
生成 Prisma Client
npx prisma generate
推送表结构到数据库
npx prisma db push
执行种子脚本(创建初始超管账号)
npm run seed
# 或者执行 Prisma 原生种子命令
npx prisma db seed
# 或直接运行脚本
npx tsx prisma/seed.ts
5. 启动开发服务器
npm run dev
浏览器打开 http://localhost:3000,系统将自动重定向至登录页面。
🔑 默认登录账号
在运行数据库种子脚本后,系统中将自动注入默认超级管理员账号:
| 角色 | 登录邮箱 / 用户名 | 默认密码 | 说明 |
|---|---|---|---|
| 超级管理员 | admin@prodlink.com / admin |
admin |
具备全系统最高管理权限,建议登录后及时修改密码 |
📜 常用命令
| 命令 | 描述 |
|---|---|
npm run dev |
启动本地热重载开发服务器(默认端口 3000) |
npm run build |
生成 Prisma Client 并编译生产环境应用 |
npm run start |
启动编译后的生产环境服务 |
npm run lint |
运行 ESLint 进行代码规范审查 |
npm run seed / npx prisma db seed |
执行数据库种子脚本初始化超管账号 |
npx prisma studio |
在本地启动 Prisma Studio 可视化数据管理后台 |
npx prisma db push |
同步当前 Prisma Schema 架构变更至数据库 |
npx auth secret |
生成用于生产环境加密的 AUTH_SECRET 随机安全字符串 |
☁️ 生产部署与 Vercel 适配
本系统支持一键部署到 Vercel,推荐搭配 Neon Serverless Postgres。
部署注意事项(Edge Function 优化)
为了防止 Next.js 中间件超出 Vercel 免费版的 1MB Edge Function 体积上限,系统采用了分层解耦认证架构:
src/middleware.ts仅依赖轻量 JWT 校验(基于src/auth.config.ts),杜绝在 Edge Runtime 中引入 Prisma Client 或 bcryptjs;- 数据库操作及哈希密码校验被严格限定在 Node.js API 及 Server Actions 运行时。
关于 Vercel 部署环境变量设置及排错说明,请详见完整指南:📘 DEPLOYMENT.md。
📄 开源协议
本项目根据 MIT License 协议开源。
