基于 React + Ant Design 5 的现代化管理界面。
用户认证
工作台
客户管理
公海池管理
审批流程
统计报表
cd client
npm install
npm run dev
前端服务将运行在:http://localhost:3001
npm run build
构建文件将输出到 ../public/admin 目录。
client/
├── src/
│ ├── components/ # 公共组件
│ │ └── Layout/ # 布局组件
│ ├── pages/ # 页面组件
│ │ ├── Login/ # 登录页
│ │ ├── Dashboard/ # 工作台
│ │ ├── Customer/ # 客户管理
│ │ ├── Pool/ # 公海池
│ │ ├── Approval/ # 审批管理
│ │ └── Stats/ # 统计报表
│ ├── utils/ # 工具函数
│ │ ├── request.js # axios 封装
│ │ └── constants.js # 常量定义
│ ├── App.jsx # 根组件
│ ├── main.jsx # 入口文件
│ └── index.css # 全局样式
├── index.html # HTML 模板
├── vite.config.js # Vite 配置
└── package.json # 依赖配置
| 路径 | 页面 | 权限 |
|---|---|---|
/login |
登录页 | 公开 |
/ |
工作台 | 全部 |
/customers |
客户列表 | 全部 |
/customers/create |
报备客户 | 全部 |
/customers/:id |
客户详情 | 全部 |
/pool |
公海池 | 全部 |
/my-approvals |
我的申请 | 全部 |
/approvals |
待审批 | 经理+ |
/stats/team |
团队统计 | 经理+ |
/stats/source |
来源分析 | 经理+ |
src/pages/ 下创建页面组件src/App.jsx 中添加路由src/components/Layout/ 中添加菜单项使用封装好的 request 工具:
import request from '@/utils/request'
// GET 请求
const data = await request.get('/api/customers')
// POST 请求
await request.post('/api/customers', { name: 'xxx' })
// 带参数
await request.get('/api/customers', { params: { page: 1 } })
import { CUSTOMER_STATUS, USER_ROLES } from '@/utils/constants'
// 渲染状态标签
<Tag color={CUSTOMER_STATUS[status]?.color}>
{CUSTOMER_STATUS[status]?.text}
</Tag>
开发环境下,Vite 会自动代理 API 请求:
// vite.config.js
proxy: {
'/api': {
target: 'http://localhost:3000',
changeOrigin: true
}
}
修改 src/main.jsx 中的 ConfigProvider:
<ConfigProvider
theme={{
token: {
colorPrimary: '#1890ff',
borderRadius: 6,
},
}}
>
<App />
</ConfigProvider>
所有页面已适配移动端:
A: 检查后端服务是否启动,查看浏览器控制台错误。
A: 确认后端运行在 http://localhost:3000,检查代理配置。
A: 检查 localStorage 中的 token 是否存在,可能是 token 过期。
A: 清除缓存重新启动开发服务器:npm run dev
npm run dev
# 构建
npm run build
# 构建产物在 ../public/admin 目录
# 直接访问后端服务器的 /admin 路径即可
location /admin {
root /path/to/public;
try_files $uri $uri/ /admin/index.html;
}
遇到问题请查看:
祝开发愉快! 🎉