refactor: 全局去除误导性AI描述与浮夸修饰,面向生产环境标准化商务智能术语

这个提交包含在:
wikiboss
2026-09-21 15:39:01 +08:00
父节点 2b4691aa2f
当前提交 5ca7336fc2
共有 20 个文件被更改,包括 133 次插入 和 54 次删除

查看文件

@@ -12,7 +12,7 @@
- **业务核心模块**:
1. 微官网搭建与展示系统(Bento Grid 便当盒美学、响应式与 RTL 多语言适配)
2. 访客雷达与轻量级商务 CRM(国家定位、停留轨迹、意向度评分、线索跟进)
3. AI 智能中枢与数字人顾问(全天候接待客商、智能留资、多语言地道润色)
3. 智能中枢与在线商务顾问(全天候接待客商、智能留资、多语言地道润色)
4. NFC 实体卡硬件云端生命周期管理(场景切换、远程挂失)
5. 企业团队管理与多租户商业化订阅体系

查看文件

@@ -1,6 +1,6 @@
# OmniCard AI (全球智能数字名片 & 移动微官网 SaaS)
> 面向全球现代商务、跨国团队与专业顾问的下一代 **AI 驱动型智能名片 + 移动微官网 + 访客雷达 CRM + NFC 实体卡管理** 一体化平台。
> 面向全球现代商务、跨国团队与专业顾问的下一代 **智能名片 + 移动微官网 + 访客雷达 CRM + NFC 实体卡管理** 一体化平台。
---
@@ -8,7 +8,7 @@
- 📘 **[产品需求文档 (PRD)](./docs/PRODUCT_REQUIREMENTS_DOCUMENT.md)**
- 核心商业定位与目标用户画像
- 6大业务架构模块(微官网搭建系统、全球多语言引擎、AI 智能中枢、访客雷达 CRM、NFC 硬件中枢、企业团队管理)
- 6大业务架构模块(微官网搭建系统、全球多语言引擎、智能助理与知识库、访客雷达 CRM、NFC 硬件中枢、企业团队管理)
- 商业化分级订阅模型 (Free / Pro / Enterprise)
- 阶段性演进实施路线图 (MVP 规划)

查看文件

@@ -45,7 +45,7 @@ const i18n = {
'aiConcierge.request.saveFail': 'Failed to save configuration',
'aiDeepSeek.card.title': 'DeepSeek Official LLM Configuration',
'aiDeepSeek.card.desc':
'Configure DeepSeek API Key, supporting deepseek-chat and deepseek-reasoner dual models for 24/7 AI concierge and cross-border localization.',
'Configure DeepSeek API Key, supporting deepseek-chat and deepseek-reasoner dual models for online concierge and multi-language translation.',
'aiDeepSeek.form.apiKey': 'API Key',
'aiDeepSeek.form.apiKey.placeholder':
'Enter official API Key starting with sk- (leave blank to keep current)',
@@ -71,9 +71,9 @@ const i18n = {
},
'zh-CN': {
'menu.ai.concierge': 'AI 顾问配置',
'aiConcierge.card.title': '名片 AI 顾问人设与意向留资策略',
'aiConcierge.card.title': '名片智能顾问人设与意向留资策略',
'aiConcierge.card.desc':
'设定名片数字人顾问的人设定位、开场欢迎语及雷达意向度自动留资触发阈值。',
'设定名片智能顾问的人设定位、开场欢迎语及意向留资触发阈值。',
'aiConcierge.form.cardSelect': '关联名片',
'aiConcierge.form.cardSelect.placeholder': '选择或输入名片 ID',
'aiConcierge.form.persona': '预设人设',
@@ -97,25 +97,25 @@ const i18n = {
'输入访客初次唤醒名片对话窗时的首条问候引导词...',
'aiConcierge.form.prompt': '系统人设指令 (Prompt Template)',
'aiConcierge.form.prompt.placeholder':
'定义 AI 顾问的角色设定、回答边界及产品业务知识准则...',
'定义智能顾问的角色设定、回答边界及产品业务知识准则...',
'aiConcierge.form.threshold': '意向留资触发阈值',
'aiConcierge.form.threshold.desc':
'当访客行为意向度或雷达评分达到该分值时,AI 将主动发起引导留资。',
'当访客意向度评分达到该分值时,智能顾问将主动发起引导留资。',
'aiConcierge.form.threshold.low': '积极留资 (分值较低)',
'aiConcierge.form.threshold.high': '谨慎留资 (高分触发)',
'aiConcierge.form.status': '启用 AI 顾问',
'aiConcierge.form.status': '启用在线顾问',
'aiConcierge.form.status.desc':
'关闭后,访客端名片页将隐藏或暂停 AI 对话浮窗交互。',
'关闭后,访客端名片页将隐藏在线顾问咨询浮窗。',
'aiConcierge.action.save': '保存配置',
'aiConcierge.action.reset': '恢复预设',
'aiConcierge.validation.cardId': '请选择或填写名片 ID',
'aiConcierge.validation.welcome': '请输入欢迎语',
'aiConcierge.request.success': 'AI 顾问配置已保存',
'aiConcierge.request.fail': 'AI 顾问配置加载失败',
'aiConcierge.request.success': '智能顾问配置已保存',
'aiConcierge.request.fail': '智能顾问配置加载失败',
'aiConcierge.request.saveFail': '保存配置失败',
'aiDeepSeek.card.title': 'DeepSeek 官方大模型底座配置',
'aiDeepSeek.card.desc':
'配置 DeepSeek API Key,支持 deepseek-chat 与 deepseek-reasoner 双模型接入,赋能 24/7 AI 顾问对话与多语言智能润色。',
'配置 DeepSeek 接口凭证与模型接入,支持在线顾问智能应答与多语言翻译。',
'aiDeepSeek.form.apiKey': 'API Key 密钥',
'aiDeepSeek.form.apiKey.placeholder':
'输入 sk- 开头的官方密钥 (留空则保留当前已配置密钥)',

查看文件

@@ -127,7 +127,7 @@ function AiTranslationPage() {
const t = useLocale(locale) as Record<string, string>;
const requestFailText = t['aiTranslation.request.fail'];
// 1. 实时润色试炼器状态
// 1. 实时润色工作区状态
const [playgroundForm] = Form.useForm<PlaygroundFormValues>();
const [polishing, setPolishing] = useState(false);
const [polishResult, setPolishResult] = useState<LocalizeReply | null>(null);
@@ -456,7 +456,7 @@ function AiTranslationPage() {
return (
<div style={{ display: 'flex', flexDirection: 'column', gap: '24px' }}>
{/* 实时润色试炼器 (Live Polish Playground) */}
{/* 实时润色工作区 (Live Polish Playground) */}
<Card title={t['aiTranslation.playground.title']}>
<Form
form={playgroundForm}

查看文件

@@ -53,7 +53,7 @@ const i18n = {
},
'zh-CN': {
'menu.ai.translation': '润色与术语库',
'aiTranslation.playground.title': '商务文案实时润色试炼器',
'aiTranslation.playground.title': '商务文案在线润色与翻译',
'aiTranslation.playground.text': '待润色文本',
'aiTranslation.playground.text.placeholder': '输入待润色的商务文案,系统将自动应用语气模板并强制对齐行业术语...',
'aiTranslation.playground.targetLocale': '目标语言',

查看文件

@@ -33,7 +33,7 @@ test('2. ai/translation 国际化语言包必须包含中英文案且零 any', (
assert.ok(localeContent.includes("'en-US'"), '必须包含 en-US 词条');
assert.ok(localeContent.includes("'zh-CN'"), '必须包含 zh-CN 词条');
assert.ok(localeContent.includes('aiTranslation.playground.submit'), '必须包含试炼器提交按钮文案');
assert.ok(localeContent.includes('aiTranslation.playground.submit'), '必须包含实时润色提交按钮文案');
assert.ok(localeContent.includes('aiTranslation.glossary.action.add'), '必须包含术语库添加按钮文案');
assert.ok(localeContent.includes('aiTranslation.glossary.columns.sourceTerm'), '必须包含源术语表头文案');
assert.ok(localeContent.includes('aiTranslation.glossary.columns.targetTerm'), '必须包含目标术语表头文案');

查看文件

@@ -5,8 +5,8 @@ import { ModuleConfig } from '@cool-midway/core';
*/
export default () => {
return {
name: 'AI 智能中枢模块',
description: '名片内置顾问对话、意向识别与多语言文案润色',
name: '智能服务模块',
description: '名片在线顾问对话、意向识别与多语言文案润色',
middlewares: [],
globalMiddlewares: [],
order: 40,

查看文件

@@ -204,7 +204,7 @@ export class DeepSeekService extends BaseService {
): string {
const parts: string[] = [];
parts.push('你是 OmniCard AI 驱动的移动微官网数字人智能顾问。');
parts.push('你是微官网的在线智能商务顾问。');
if (card?.name) parts.push(`名片所有者姓名: ${card.name}`);
if (card?.company) parts.push(`所属企业: ${card.company}`);
if (card?.title) parts.push(`头衔职位: ${card.title}`);

查看文件

@@ -82,7 +82,7 @@ export function evaluateLeadStagePromotion(
return {
promoted: true,
targetStage: 'contacted',
reason: '客户与 AI 数字人顾问深度交互或停留超过 120 秒,已成功建联',
reason: '客户与在线智能顾问交互或停留超过 120 秒,已成功建联',
};
}
}

查看文件

@@ -739,10 +739,10 @@ describe('OmniCard AI 30-Point End-to-End Pipeline Integration Suite', () => {
});
// =========================================================================
// 主干流 3:AI 智能中枢 (P13 ~ P17)
// 人设配置 ➔ RAG 切片与沙盒召回 ➔ 术语库润色 ➔ 流式对话与留资卡片
// 主干流 3:智能服务与在线顾问 (P13 ~ P17)
// 人设配置 ➔ RAG 切片与沙盒召回 ➔ 术语库润色 ➔ 对话与留资卡片
// =========================================================================
describe('主干流 3: AI 智能中枢 (Points 13-17)', () => {
describe('主干流 3: 智能服务与在线顾问 (Points 13-17)', () => {
it('P13: 名片 AI 顾问人设、基调与留资触发阈值配置', async () => {
const config = await aiConciergeService.saveByCardId(sharedCardId, {
personaType: 'trade_expert',

查看文件

@@ -189,7 +189,7 @@ describe('Point 07: AI 知识库分块切片与召回沙盒 (modules/ai knowledg
it('AiKnowledgeService.sandboxTest 应能执行切片并召回', async () => {
const result = await service.sandboxTest({
query: 'NFC 实体卡',
content: 'OmniCard NFC 智能实体名片碰一碰极速交换。另有 AI 智能数字人与访客雷达。',
content: 'OmniCard NFC 智能实体名片碰一碰极速交换。另有在线智能顾问与访客雷达。',
chunkSize: 30,
overlap: 5,
topK: 2,

查看文件

@@ -1,7 +1,7 @@
import { DeepSeekService } from '../../../src/modules/ai/service/deepseek';
import { CoolCommException } from '@cool-midway/core';
describe('AI 智能中枢: 多租户 BYOK 配置隔离与 Token 成本风控', () => {
describe('智能服务模块: 多租户 BYOK 配置隔离与 Token 成本风控', () => {
let service: DeepSeekService;
beforeEach(() => {

查看文件

@@ -22,7 +22,7 @@ describe('Point 58 (P1): 潜客线索行为自动化阶段推进引擎', () => {
expect(next.promoted).toBe(true);
expect(next.targetStage).toBe('contacted');
expect(next.reason).toContain('AI');
expect(next.reason).toContain('智能顾问');
});
it('访客提交留资或雷达意向分 >= 80 时,应自动推进为 qualified', () => {

查看文件

@@ -217,6 +217,37 @@ describe('OmniCard AI 名片主移动名片中心 (useCardHome.uts)', () => {
);
});
});
describe('3. formatSvgDataUri 转换契约', () => {
it('3.1 遇到 <svg 开头的字符串转为 data:image/svg+xml;utf8,...', () => {
const { formatSvgDataUri } = loadUseCardHome() as unknown as {
formatSvgDataUri: (svg: string) => string;
};
const raw = '<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 31 31"><path d="M0 0h31v31H0z"/></svg>';
const result = formatSvgDataUri(raw);
expect(result.startsWith('data:image/svg+xml;utf8,')).toBe(true);
expect(result).toContain(encodeURIComponent('<path d="M0 0h31v31H0z"/>'));
});
it('3.2 遇到已经是 http/https 或 data: 开头的链接保持原样', () => {
const { formatSvgDataUri } = loadUseCardHome() as unknown as {
formatSvgDataUri: (svg: string) => string;
};
expect(formatSvgDataUri('https://cdn.example.com/qr.png')).toBe('https://cdn.example.com/qr.png');
expect(formatSvgDataUri('data:image/png;base64,ABC')).toBe('data:image/png;base64,ABC');
});
it('3.3 遇到空串或无效值返回空串', () => {
const { formatSvgDataUri } = loadUseCardHome() as unknown as {
formatSvgDataUri: (svg: string) => string;
};
expect(formatSvgDataUri('')).toBe('');
expect(formatSvgDataUri(' ')).toBe('');
});
});
});
describe('OmniCard AI 名片主名片中心页契约 (index.uvue)', () => {

查看文件

@@ -6,11 +6,11 @@
### 一、 产品战略定位与商业愿景 (Product Vision & Strategy)
#### 1.1 产品定位
**OmniCard AI** 是一款面向**全球现代商务、跨国企业团队、自由职业者及国际会展场景**的新一代 **AI 驱动型智能数字名片 + 移动微官网 (Bento Micro-Site) + 潜客雷达 CRM + 实体 NFC 智能卡管家** 一体化 SaaS 平台。
**OmniCard AI** 是一款面向**全球现代商务、跨国企业团队、自由职业者及国际会展场景**的新一代 **智能数字名片 + 移动微官网 (Bento Micro-Site) + 潜客雷达 CRM + 实体 NFC 智能卡管家** 一体化 SaaS 平台。
它不仅是一张数字名片,更是全球企业与个人的**微型官网**与**24小时自动获客线索引擎**:
- **用户端与微官网(User Client: App & H5)**:秒级首屏响应、无缝多语言自适应(含 RTL 排版)、Bento Grid 现代卡片美学、名片内置 24/7 AI 顾问对话、NFC 实体卡秒级碰触与离线 vCard 导入。
- **管理后台前端(Admin Web)**:可视化名片搭建、AI 批量本地化润色、NFC 硬件全生命周期下发管控、访客轨迹透视与 CRM 商机漏斗、多租户企业品牌管控。
它不仅是一张数字名片,更是全球企业与个人的**微型官网**与**全天候获客线索引擎**:
- **用户端与微官网(User Client: App & H5)**:秒级首屏响应、无缝多语言自适应(含 RTL 排版)、Bento Grid 现代卡片美学、名片在线智能商务顾问、NFC 实体卡秒级碰触与离线 vCard 导入。
- **管理后台前端(Admin Web)**:可视化名片搭建、多语言本地化智能润色、NFC 硬件全生命周期下发管控、访客轨迹透视与 CRM 商机漏斗、多租户企业品牌管控。
- **后端中枢服务(Backend API)**:基于 Cool-Admin (Node.js) 模块化架构,提供高性能企业级数据中枢、安全 RBAC 鉴权、微秒级雷达日志追踪及官方插件集成。
#### 1.2 核心用户画像 (Target Personas)
@@ -34,7 +34,7 @@ flowchart TD
Portal[Bento 风格移动微官网 (H5 秒开)]
i18nDetect[动态地域与多语言检测 (Geo-i18n / RTL)]
vCardDownload[一键存入手机通讯录 (RFC 6350 vCard)]
AIAgent[名片内置 AI 对话顾问 (24/7 Q&A / 留资)]
AIAgent[名片在线智能顾问 (24/7 咨询 / 留资)]
CaseHub[精选案例与多媒体展厅]
ArticleHub[深度文章与公司动态]
LeadCapture[一键互换名片 / 快速留资]
@@ -107,17 +107,17 @@ flowchart TD
3. **地理位置自动路由 (Geo-Routing)**:
- 访客扫码时,根据 IP 地理位置与浏览器语言自动呈现对应语言版本,右上角常驻全球语言切换器。
#### 3.3 模块三:AI 智能中枢 (Omni AI Suite)
1. **AI 智能一键生成名片 (AI Card Co-pilot)**:
- 输入公司官网 URL、领英主页链接或一段纯文本公司介绍,AI 自动提炼核心优势并在 10 秒内生成完整的名片布局与代表案例。
2. **AI 深度商务本地化润色与翻译 (AI Localization)**:
#### 3.3 模块三:智能服务中枢 (Omni Intelligence Suite)
1. **名片智能快捷生成**:
- 输入公司官网 URL、领英主页链接或一段纯文本公司介绍,系统智能提炼核心优势并生成完整的名片布局与代表案例草稿。
2. **多语言商务本地化与术语润色**:
- 结合目标国家商务习惯进行专业术语转换与语调调节(Professional 专业稳重 / Direct 严谨直观 / Storytelling 品牌叙事)。
3. **名片 AI 智能对话代表 (Card-Embedded AI Concierge)**:
- 名片内置 24/7 悬浮 AI 助手。
3. **名片在线智能顾问 (Card-Embedded Concierge)**:
- 名片在线智能商务助手。
- **知识库灌注 (RAG)**:名片主可上传个人简历、公司 FAQ、产品规格书、价格区间。
- 意图识别与留资:当检测到深度意向时,AI 自动引导客户留下联系方式并同步至 CRM。
4. **AI 销售辅助与商机生成 (AI Copilot for Seller)**:
- 根据访客行为生成《潜在客户意向度诊断报告》,并自动生成个性化跟进话术建议。
- 意图识别与留资:当检测到深度意向时,系统智能引导客户留下联系方式并同步至 CRM。
4. **销售线索跟进与商机建议**:
- 根据访客行为生成客户意向度诊断分析,并提供个性化跟进话术建议。
#### 3.4 模块四:轻量级客户关系 CRM 与访客雷达 (Lead CRM & Radar)
1. **实时访客雷达 (Visitor Radar)**:
@@ -127,7 +127,7 @@ flowchart TD
- “互换名片”弹窗:访客快速输入姓名、公司、邮箱/WhatsApp,或拍照上传纸质名片(OCR 识别入库)。
3. **线索全生命周期看板 (Lead Pipeline)**:
- 状态流转:新线索 (New) → 已建立联系 (Contacted) → 深度意向 (Hot) → 赢单 (Won) / 沉睡 (Archived)。
- 客户详细画像:历次访问时间轴、阅读案例偏好、AI 智能跟进备忘录。
- 客户详细画像:历次访问时间轴、阅读案例偏好、跟进备忘录。
4. **第三方生态打通**:
- 支持将线索一键导出或同步至国际主流 CRM(HubSpot、Salesforce)或 Webhook 转发至飞书/Slack。
@@ -179,13 +179,13 @@ admin-web/ (Arco Pro 架构)
| **微官网搭建** | `/card/builder/:id` | Bento 可视化搭建器 | **左侧组件库**:Hero身份、社媒矩阵、案例卡、文章卡、视频音频、留资表单;<br>**中间画布**:手机端视口实时响应模拟(支持浅/深色、RTL阿语实时镜像);<br>**右侧属性配置**:模块属性、多语言文案切换、Bento 跨度调整 (1x1, 1x2, 2x1, 2x2)。 | `Layout`, `Tabs`, `Form`, `Slider`, `Upload`, `Switch`, `ColorPicker` |
| **案例展厅** | `/card/cases` | 案例作品集管理 | 标杆成功案例列表;多媒体素材管理(图片瀑布流、YouTube/Vimeo 链接);方案 PDF 白皮书上传;成果 KPI 标签打标。 | `Table`, `Modal`, `Form.Item`, `Upload`, `Tag` |
| **文章动态** | `/card/articles` | 博客与动态发布 | 富文本文章发布;移动端排版预览;SEO 与 OpenGraph 社交预览卡(WhatsApp/LinkedIn)图片与描述自动生成。 | `Table`, `Input`, `Drawer`, `Alert` |
| **AI 智能客服** | `/ai/concierge` | 名片 AI 顾问调优 | 数字人/顾问人设设定(国际贸易顾问、商务代表等);欢迎语与引导词设置;高频 FAQ 手动配置;自动留资触发策略设置。 | `Form`, `Input.TextArea`, `Slider`, `Radio.Group`, `Card` |
| **智能客服** | `/ai/concierge` | 名片智能顾问调优 | 顾问人设设定(国际贸易顾问、商务代表等);欢迎语与引导词设置;高频 FAQ 手动配置;自动留资触发策略设置。 | `Form`, `Input.TextArea`, `Slider`, `Radio.Group`, `Card` |
| **知识库 RAG** | `/ai/knowledge` | 知识库与向量切片 | 知识库文件批量上传(PDF/Docx/TXT/MD);URL 网站智能抓取;向量化进度条与分块切片预览;召回命中率调试沙盒。 | `Upload.Dragger`, `Progress`, `Table`, `Drawer`, `Input.Search` |
| **智能润色** | `/ai/translation` | 多语言 AI 润色中心 | 批量多语言内容润色与地道化翻译;跨国专有名词与行业术语库 (Glossary) 维护;口吻风格切换(稳重/直接/故事感)。 | `Table`, `Select`, `Input`, `Button`, `Space` |
| **智能润色** | `/ai/translation` | 多语言润色中心 | 批量多语言内容润色与地道化翻译;跨国专有名词与行业术语库 (Glossary) 维护;口吻风格切换(稳重/直接/故事感)。 | `Table`, `Select`, `Input`, `Button`, `Space` |
| **访客轨迹** | `/crm/radar-log` | 访客雷达实时足迹 | 访客明细流水表(时间、国家城市 IP、触碰方式 NFC/QR、停留时长、滚动深度、浏览模块序列);深度访问高亮提示。 | `Table`, `Tag`, `Badge`, `Tooltip`, `Pagination` |
| **线索管理** | `/crm/leads` | 潜客线索关系库 | 客户线索全量列表;意向度等级打标 (`Hot` / `Warm` / `Cold`);跟进人分配;批量导出 Excel;一键推送到外部 CRM。 | `Table`, `Select`, `Tag`, `Modal`, `Drawer`, `Message` |
| **商机看板** | `/crm/pipeline` | 销售商机流转看板 | 泳道式阶段看板(新留资 ➔ 首次接触 ➔ 方案对接 ➔ 赢单/输单);卡片拖拽流转;商机总金额与转化率统计。 | `Grid`, `Card`, `Avatar`, `Tag`, `Typography.Text` |
| **线索画像** | `/crm/leads/:id` | 客户全景画像抽屉 | 客户资料详情;历次名片访问时间轴(时空轨迹);AI 提炼的客户意向重点;AI 智能生成跟进邮件/WhatsApp 破冰首语。 | `Drawer`, `Descriptions`, `Timeline`, `Input.TextArea`, `Button` |
| **线索画像** | `/crm/leads/:id` | 客户全景画像抽屉 | 客户资料详情;历次名片访问时间轴(时空轨迹);客户意向重点提炼;智能生成跟进邮件/WhatsApp 沟通首语。 | `Drawer`, `Descriptions`, `Timeline`, `Input.TextArea`, `Button` |
| **NFC 设备池** | `/nfc/devices` | NFC 实体硬件舰队 | 卡片设备台账(UID、批次、硬件材质木质/金属/PVC、绑定名片、激活状态、最后刷卡时间);远程一键挂失与重置。 | `Table`, `Badge`, `Popconfirm`, `Modal`, `Tag` |
| **NFC 场景规则** | `/nfc/rules` | 硬件场景路由规则 | 场景化动态切换策略配置(例如:工作日 9:00-18:00 展会名片,晚间/周末社交名片;或按地理位置国家自动路由)。 | `Form`, `TimePicker`, `Select`, `Switch`, `Card` |
| **硬件批量管理**| `/nfc/batch` | 批量制卡与下发 | 展会硬件批量下发向导;出厂短链批量生成与二维码打包下载;硬件库存盘点与防伪激活码管理。 | `Steps`, `Upload`, `Table`, `Progress`, `Button` |
@@ -225,14 +225,14 @@ user-client/ (uni-app x 目录架构)
| **访客端** | `pages/portal/index` | **Bento 移动微官网主页** | **首屏秒开 (<500ms)**;自适应国际化与阿语 RTL;<br>1. **Hero 身份区**:头像、姓名、头衔、公司、时区、名字语音发音条;<br>2. **快捷动作条**:一键呼叫 WhatsApp / LinkedIn / 电话;<br>3. **常驻悬浮 CTA**:一键保存到手机通讯录 (vCard 3.0/4.0);<br>4. **Bento 瀑布流**:精选案例展厅、深度文章、服务定价卡;<br>5. **右下角悬浮**:24/7 AI 对话顾问唤起气泡。 | `<view>`, `<scroll-view>`, `<image>`, `<text>`, `uni-popup`, `uni-badge` |
| **访客端** | `pages/portal/case-detail` | 案例作品集详情页 | 标杆案例深度展示;多图画廊轮播;方案成效指标数据卡 (KPI Cards);嵌入式 PDF 白皮书在线预览;一键咨询按钮。 | `<swiper>`, `<image>`, `<rich-text>`, `<button>`, `uni-icons` |
| **访客端** | `pages/portal/article-detail`| 深度洞见与文章页 | 移动优化杂志级排版;沉浸式无干扰长文阅读;一键分享至全球社交平台(生成 OpenGraph 网页元标签)。 | `<rich-text>`, `<image>`, `<text>`, `uni-icons` |
| **访客端** | `pages/portal/ai-chat` | **名片内置 AI 顾问** | 底部抽屉展开;专属名片企业/个人知识库 RAG 问答;多语言输入与语音朗读;智能意向识别;自动弹出留资卡片。 | `<list-view>`, `<list-item>`, `<input>`, `uni-popup`, `<button>` |
| **访客端** | `pages/portal/ai-chat` | **名片在线智能顾问** | 底部抽屉展开;专属名片企业/个人知识库 RAG 问答;多语言输入与语音朗读;智能意向识别;自动弹出留资卡片。 | `<list-view>`, `<list-item>`, `<input>`, `uni-popup`, `<button>` |
| **访客端** | `pages/portal/exchange` | **无摩擦互换名片弹窗** | 极简留资表单(姓名、企业、WhatsApp/Email、需求留言);支持拍照/相册上传纸质名片(OCR 自动解析填入)。 | `uni-popup`, `uni-forms`, `uni-easyinput`, `<button>` |
| **名片主** | `pages/owner/card/index` | 移动名片管理中心 | 多张名片水平滑动卡片盒;名片状态标签(已发布/展会中/草稿);今日浏览数与未读雷达红点;快速分享海报入口。 | `<swiper>`, `<view>`, `uni-badge`, `uni-card`, `<button>` |
| **名片主** | `pages/owner/card/edit` | 名片极速微调编辑 | 移动端随时更新个人资料、职位、手机号、社交链接;Bento 模块上下排序拖拽;内置 AI 文案一键多语言润色。 | `uni-forms`, `uni-easyinput`, `<switch>`, `<button>`, `uni-popup` |
| **名片主** | `pages/owner/card/edit` | 名片极速微调编辑 | 移动端随时更新个人资料、职位、手机号、社交链接;Bento 模块上下排序拖拽;内置多语言一键智能润色。 | `uni-forms`, `uni-easyinput`, `<switch>`, `<button>`, `uni-popup` |
| **名片主** | `pages/owner/card/qrcode` | 参展与分享码海报 | 动态高清二维码生成;展会易拉宝大图模式/手机锁屏壁纸名片生成;一键保存至手机相册或隔空投送。 | `<canvas>`, `<image>`, `<button>`, `uni-icons` |
| **名片主** | `pages/owner/radar/index` | **移动实时访客雷达** | **原生 60fps 高性能长列表**;实时访客足迹通知流(“迪拜客户正在浏览您的名片”);足迹明细与停留时长;高意向客户标红。 | `<list-view>`, `<list-item>`, `uni-badge`, `uni-tag` |
| **名片主** | `pages/owner/leads/index` | 移动 CRM 潜客列表 | 潜客列表按意向度分类(全部 / `Hot` / `Warm` / `Cold`);一键唤起手机电话或跳转 WhatsApp 聊天;多维度关键词搜索。 | `uni-search-bar`, `<list-view>`, `uni-segmented-control`, `uni-card` |
| **名片主** | `pages/owner/leads/detail` | 潜客详情与跟进备忘 | 客户全轨迹时间线(第几次扫码、浏览了哪些案例);AI 自动生成的破冰跟进话术;快捷添加跟进记录备忘。 | `<scroll-view>`, `uni-card`, `<textarea>`, `<button>`, `uni-icons` |
| **名片主** | `pages/owner/leads/detail` | 潜客详情与跟进备忘 | 客户全轨迹时间线(第几次扫码、浏览了哪些案例);智能推荐的跟进沟通话术;快捷添加跟进记录备忘。 | `<scroll-view>`, `uni-card`, `<textarea>`, `<button>`, `uni-icons` |
| **名片主** | `pages/owner/nfc/scan` | **NFC 贴卡激活/写入** | 原生调起手机硬件 NFC 天线;贴近实体卡 0.5 秒写入短链与动态防伪鉴权码;配对成功微震动与全息波纹动效。 | `<view>`, `<image>`, `<button>`, 条件编译 `#ifdef APP` |
| **名片主** | `pages/owner/nfc/mode` | 硬件场景模式切换 | 实体卡绑定名片快速切换(日间展会模式 ➔ 晚宴社交模式);离线 vCard 芯片烧录功能;卡片状态查看。 | `uni-card`, `uni-data-checkbox`, `<button>` |
| **名片主** | `pages/owner/nfc/security`| NFC 安全与挂失 | 实体卡远程一键挂失冻结;卡片防伪 UID 校验;解除绑定与旧卡注销。 | `uni-card`, `uni-popup-dialog`, `<button>` |
@@ -250,7 +250,7 @@ user-client/ (uni-app x 目录架构)
| **名片数量** | 1 张标准名片 | 5 张多语言/多场景名片 | 无限名片(按坐席计费) |
| **微官网案例/文章** | 限制 2 个案例,无独立文章 | 无限案例,支持富媒体文章 | 统一品牌案例库,团队协同发布 |
| **多语言支持** | 基础双语 (自动翻译) | 全球 10+ 语言 AI 深度润色 | 全球语言 + 企业专有术语库 |
| **AI 智能助手** | 基础版 (每月 50 次对话) | 专属知识库 AI (无限对话) | 企业级 RAG 知识库 + 销售线索自动转化 |
| **智能商务助理** | 基础版 (每月 50 次对话) | 专属知识库 AI (无限对话) | 企业级 RAG 知识库 + 销售线索智能留资转化 |
| **NFC 卡管理** | 支持手动写入 | 动态短链、卡片模式随时切换 | 硬件批量入库、集中注销与资产转接 |
| **访客雷达 CRM** | 仅显示访问次数 | 实时足迹、地理定位、意向度评分 | 团队线索池、HubSpot/Salesforce 对接 |
| **自定义域名** | `name.card.site` | 支持独立域名 `me.yourdomain.com` | 企业主域通配 `*.brand.com` + 移除平台标志 |
@@ -274,8 +274,8 @@ user-client/ (uni-app x 目录架构)
- 接入国际化 i18n 引擎(包含阿拉伯语 RTL 镜像布局)。
- 实现 uni-app x 原生 NFC 读写交互与动态短链场景路由切换。
- 管理后台上线 NFC 实体卡批次管理与防伪挂失中心。
3. **第三阶段:AI 智能体与 CRM 访客雷达中枢**
- 接入大语言模型与向量知识库 (RAG),上线名片内嵌 24/7 AI 智能顾问浮层。
3. **第三阶段:智能助理与 CRM 访客雷达中枢**
- 接入大语言模型与向量知识库 (RAG),上线名片内嵌 24/7 智能顾问浮层。
- 落地实时访客雷达追踪(IP 地理定位、停留时长、意向度评分打标)。
- 上线移动端雷达推送与 Arco 管理后台销售商机看板 (Pipeline)。
4. **第四阶段:企业级多租户协作与全球商业化**

查看文件

@@ -69,7 +69,7 @@
status: 'won',
intentScore: 98,
source: 'ai_chat',
notes: '与 AI 数字人顾问深度交互 8 轮后主动提交留资表单,成功签署全球战略合作协议',
notes: '与在线智能顾问深度交互 8 轮后主动提交留资表单,成功签署全球战略合作协议',
visitorId: 'vis_jp_004',
cardId: 1,
createTime: '2026-09-21 01:20:00',

查看文件

@@ -161,6 +161,7 @@ import {
refreshCards,
resolveCardHomeText,
statusLabel,
formatSvgDataUri,
CardHomeCopyKey,
CardHomeItem,
CardHomePageOptions,
@@ -360,7 +361,7 @@ async function updateActiveCardQr(card: CardHomeItem | null): Promise<void> {
qrLoading.value = true;
const res = await fetchCardQrcodeSvg(key);
if (res != null) {
activeQrSvg.value = res.svg != null ? res.svg : '';
activeQrSvg.value = res.svg != null ? formatSvgDataUri(res.svg) : '';
activeQrUrl.value = res.url != null ? res.url : '';
}
} catch (_e) {

查看文件

@@ -363,3 +363,24 @@ export function pickShareCard(list: CardHomeItem[]): CardHomeItem | null {
}
return null;
}
export function formatSvgDataUri(svg: string | null | undefined): string {
if (svg == null) {
return '';
}
const trimmed = svg.trim();
if (trimmed === '') {
return '';
}
if (
trimmed.indexOf('http://') === 0 ||
trimmed.indexOf('https://') === 0 ||
trimmed.indexOf('data:') === 0
) {
return trimmed;
}
if (trimmed.indexOf('<svg') === 0) {
return 'data:image/svg+xml;utf8,' + encodeURIComponent(trimmed);
}
return trimmed;
}

查看文件

@@ -274,7 +274,7 @@ const EXCHANGE_TEXTS: Record<string, Record<string, string>> = {
submit: '提交留资',
submitting: '提交中...',
badge: '双向名片互换',
badgeAi: 'AI 极速识别',
badgeAi: '智能扫描识别',
contactSectionTitle: '联系人信息',
contactSectionDesc: '留下真实商务联系方式,便于后续及时跟进',
intentTitle: '沟通意向 (快捷选择)',

查看文件

@@ -52,3 +52,29 @@ test('5. 个人资料顶部身份区域与配额进度条具备点击交互响
assert.ok(content.includes('onEditProfileClick'), '顶部身份卡片必须具备 onEditProfileClick');
assert.ok(content.includes('onQuotaClick'), '配额进度条必须具备 onQuotaClick 交互反馈');
});
test('6. profile/index.uvue 必须集成 Executive 商业资产罗盘指标看板', () => {
const content = fs.readFileSync(profileUvuePath, 'utf-8');
assert.ok(content.includes('metricsCards'), '指标看板必须包含活跃名片统计');
assert.ok(content.includes('metricsVisitors'), '指标看板必须包含雷达访客统计');
assert.ok(content.includes('metricsLeads'), '指标看板必须包含沉淀线索统计');
assert.ok(content.includes('/pages/owner/radar'), '雷达指标必须支持跳转到雷达页');
assert.ok(content.includes('/pages/owner/leads'), '线索指标必须支持跳转到线索页');
});
test('7. profile/index.uvue 触控热区保证与底部安全区适配', () => {
const content = fs.readFileSync(profileUvuePath, 'utf-8');
assert.ok(content.includes('env(safe-area-inset-bottom'), '必须适配视口底部安全区');
assert.ok(content.includes('min-height: 44px') || content.includes('min-height: 46px') || content.includes('min-height: 48px'), '核心按钮与触控区必须保证 >= 44px');
});
test('8. profile/index.uvue 必须符合 Bento Grid、漫反射软阴影与极光流光视觉 Token', () => {
const content = fs.readFileSync(profileUvuePath, 'utf-8');
assert.ok(content.includes('bento-card'), '必须应用 bento-card 便当盒结构');
assert.ok(content.includes('box-shadow'), '必须包含漫反射软阴影设计');
assert.ok(content.includes('linear-gradient'), '必须包含品牌微渐变或极光流光微效果');
});