# 灵犀跨境 · 跨境 AI 经营服务平台(前端) > 让跨境沟通更简单 — 徐州欧汇科技有限公司 本仓库为「灵犀跨境」SaaS 平台的前端部分,面向中小外贸企业、跨境卖家和产业带企业,将 WhatsApp / Telegram / 邮件 / 独立站表单等渠道的客户咨询统一接入,通过 AI 翻译、意图识别、情感分析、风险预警与客户建档,将聊天记录沉淀为可追踪、可成交的客户资产。 ## 技术栈 - **React 18** + **TypeScript 5** - **Vite 5** — 开发与构建 - **Tailwind CSS 3.4** — 原子化样式 - **shadcn/ui 风格** — 手写轻量企业 UI 组件 - **React Router 6** — 路由 - **Zustand 4** — 全局状态(认证/UI/Toast/确认弹窗) - **TanStack Query 5** — 数据请求与缓存 - **Recharts 2** — 图表 - **React Hook Form 7** + **Zod 3** — 表单与校验 - **Lucide React** — 图标 ## 快速开始 ```bash # 1. 安装依赖 npm install # 2. 启动开发服务器(默认 Mock 模式) npm run dev # 3. 浏览器打开 http://localhost:5173 ``` 登录页点击下方**演示角色一键登录**即可进入系统: - 企业管理员 / 业务主管 / 外贸业务员 / 客服人员 / 只读成员 也可以使用验证码模式:任意手机号 / 邮箱 + 任意 6 位验证码即可登录。 ## 构建生产包 ```bash npm run build # TypeScript 检查 + Vite 构建 npm run preview # 预览构建结果 ``` ## 环境变量与模式切换 项目通过 `.env` 文件控制数据来源: ```env # 使用内置 Mock 服务(默认,无需后端) VITE_USE_MOCK=true # 真实后端 API 地址(VITE_USE_MOCK=false 时生效) VITE_API_BASE_URL=http://localhost:8080/api ``` - **Mock 模式**(`VITE_USE_MOCK=true`):前端内置完整演示数据集(30 个客户、20 条会话、100+ 条多语种消息、20 个跟进任务、15 条风险预警、30 条企业知识、8 名团队成员、13 个渠道),所有 API 请求在前端通过 Mock 路由处理,无需任何后端服务。 - **真实模式**(`VITE_USE_MOCK=false`):所有 API 请求转发到 `VITE_API_BASE_URL`,自动携带 Bearer Token。 > ⚠️ **安全提示**:请勿在前端代码中存放任何真实 API 密钥。所有密钥应由服务端环境变量管理。 ## 项目结构 ``` src/ ├── app/ │ ├── router/index.tsx # React Router 路由配置 │ ├── providers/index.tsx # QueryClient + i18n + Toast + Confirm │ └── store/ # Zustand stores (auth / ui / toast / confirm) ├── components/ │ ├── layout/ # AppLayout / Sidebar / Topbar / GlobalSearch │ ├── common/ # PageHeader / StatCard / ChannelIcon / CountryFlag / StatusBadges / PermissionGate / DemoNote │ ├── ui/ # UI 基础组件(button / input / select / dialog / drawer / tabs / table / toast / pagination 等) │ ├── inbox/ # 统一消息专属组件(ConversationList / MessageBubble / Composer / InsightPanel / AiReplies) │ ├── customer/ # 客户表单弹窗(CustomerFormDialog) │ ├── crm/ # 商机与任务表单(TaskFormDialog) │ └── charts/ # 图表封装(TrendChart / DonutChart / FunnelChart / RankBars) ├── pages/ │ ├── auth/ # 登录 / 注册 │ ├── onboarding/ # 8 步企业初始化向导 │ ├── dashboard/ # 今日经营工作台 │ ├── inbox/ # 统一消息中心(三栏布局 + 移动适配) │ ├── customers/ # 客户管理(表格/卡片/看板) + 客户详情 │ ├── opportunities/ # 商机看板 + 跟进任务 + 日历 │ ├── translate/ # AI 翻译中心 │ ├── interpret/ # 同声传译(模拟实时双向字幕) │ ├── risks/ # 风险预警中心 │ ├── knowledge/ # 企业知识库 + 检索测试 + 使用统计 │ ├── analytics/ # 数据分析 + 老板看板 │ ├── channels/ # 渠道中心 + 连接向导 │ ├── team/ # 团队协作 + 角色权限矩阵 │ ├── billing/ # 套餐与账单 │ ├── settings/ # 系统设置(13 组) │ └── help/ # 帮助与培训 + 交付进度 ├── services/ │ ├── api/ # 领域 API 服务(auth / dashboard / channels / conversations / ai / customers / crm / knowledge / org / search) │ └── mock/ # Mock 路由与处理器(按 HTTP 方法 + 路径匹配,支持 :param 参数) ├── mocks/ │ ├── db.ts # 内存数据库(增删改持久到刷新) │ └── seed/ # 种子数据(customers / conversations / messages / tasks / opportunities / risks / knowledge / team / channels / analytics / misc) ├── types/ # TypeScript 类型定义 ├── config/ # 全局配置(套餐价格 / 支持语言数 / 角色权限 / 导航 / 业务常量 / 环境变量) ├── i18n/ # 国际化(zh / en / ar + RTL) ├── hooks/ # 自定义 Hooks(usePermission / useDebounce / useMediaQuery) ├── utils/ # 工具函数(cn / format / misc) └── styles/ # 全局样式与 CSS 变量 ``` ## 接入真实后端 项目中预留了完整的 API 接口层,对应后端路由如下: | 领域 | 核心接口 | |------|---------| | 认证 | `POST /api/auth/login`, `POST /api/auth/register`, `GET /api/auth/me` | | 工作台 | `GET /api/dashboard/overview` | | 渠道 | `GET /api/channels`, `POST /api/channels/connect`, `POST /api/channels/test`, `PATCH /api/channels/:id`, `DELETE /api/channels/:id` | | 会话 | `GET /api/conversations`, `GET /api/conversations/:id`, `GET /api/conversations/:id/messages`, `POST /api/conversations/:id/messages`, `PATCH /api/conversations/:id` | | AI | `POST /api/ai/translate`, `POST /api/ai/analyze`, `POST /api/ai/replies`, `POST /api/ai/summarize`, `POST /api/ai/interpretation`, `POST /api/ai/text-action` | | 客户 | `GET/POST /api/customers`, `GET/PATCH/DELETE /api/customers/:id`, `POST /api/customers/merge`, `POST /api/customers/import`, `GET /api/customers/export`, `GET /api/customers/duplicates` | | 商机 | `GET/POST /api/opportunities`, `PATCH /api/opportunities/:id` | | 任务 | `GET/POST /api/tasks`, `PATCH /api/tasks/:id` | | 风险 | `GET /api/risks`, `PATCH /api/risks/:id` | | 知识库 | `GET/POST /api/knowledge`, `PATCH/DELETE /api/knowledge/:id`, `POST /api/knowledge/upload`, `POST /api/knowledge/search-test`, `GET /api/knowledge/stats` | | 分析 | `GET /api/analytics` | | 团队 | `GET /api/team`, `POST /api/team/invite`, `PATCH/DELETE /api/team/:id` | | 账单 | `GET /api/billing`, `POST /api/billing/upgrade` | | 设置 | `GET/PATCH /api/settings` | | 通知 | `GET /api/notifications`, `POST /api/notifications/read-all` | | 搜索 | `GET /api/search?q=` | 后端可使用 Java / Node.js / Python 等任意技术栈实现。参考 Mock 服务中 `src/services/mock/handlers/` 目录下的处理器即可了解各接口的请求/响应 Shape。 ## 套餐与价格配置 所有套餐价格集中维护在 `src/config/pricingPlans.ts` 中,包含四档套餐(轻助手版 / 标准工作台版 / 专业版 / 增长版/定制版),一处修改全局生效。 ## 语言支持 平台 UI 支持中文 / English / العربية(RTL),RTL 布局通过 `document.documentElement.dir = 'rtl'` 原生实现。 翻译引擎支持语言数配置在 `src/config/languages.ts` 的 `supportedLanguageCount` 字段,当前默认值为 96。 ## 演示数据说明 所有图表、经营指标与客户数据均为**模拟演示数据**(数据来源:`src/mocks/seed/` 目录),不代表真实企业经营状况。每个图表卡片均标注「演示数据」提示。 客户与消息覆盖以下真实语言场景: - 🇵🇰 乌尔都语(巴基斯坦 · WhatsApp) - 🇦🇪 / 🇸🇦 阿拉伯语(阿联酋 / 沙特 · 邮件 / Telegram) - 🇧🇩 孟加拉语(孟加拉国 · WhatsApp) - 🇪🇸 西班牙语(西班牙 · 独立站表单 / WhatsApp) - 🇬🇧 / 🇺🇸 / 🇩🇪 英语(英国 / 美国 / 德国 · 邮件 / Messenger) ## License 本项目为徐州欧汇科技有限公司内部产品,未开源授权。仅供演示评估使用。