# WhatsApp / Email 联系方式动态配置
**日期**: 2026-06-18
**项目**: AI 客服系统 - VOLT/HESU
**目标**: 将写死的 WhatsApp 号码和 Email 地址改为通过 `
```
---
## 三、改动详情
### 3.1 `static/widget.js`(嵌入式组件)
**读取配置**:在 [widget.js:8-12](../../../static/widget.js#L8-L12) 现有 `getAttribute` 调用旁,新增两行(沿用现有写法):
```js
var whatsapp = script.getAttribute("data-whatsapp") || "https://wa.me/+8619037179250";
var email = script.getAttribute("data-email") || "mailto:info@borderlesscar.com";
```
**使用配置**:把以下 3 处写死的 `href` 替换为字符串拼接 `+ whatsapp +` / `+ email +`:
| 位置 | 当前写死值 | 改为 |
|------|------------|------|
| [widget.js:170](../../../static/widget.js#L170)(面板 help-block,含 WhatsApp 与 Email 两个 `href`) | `https://wa.me/+8619037179250` / `mailto:info@borderlesscar.com` | `+ whatsapp +` / `+ email +` |
| [widget.js:199](../../../static/widget.js#L199)(邀请卡 WhatsApp) | `https://wa.me/+8619037179250` | `+ whatsapp +` |
| [widget.js:203](../../../static/widget.js#L203)(邀请卡 Email) | `mailto:info@borderlesscar.com` | `+ email +` |
> 注意:第 170 行是单行内同时包含 WhatsApp 与 Email 两个 ``,需保证两处拼接都正确,不要漏改其中一个。
### 3.2 `static/js/chat.js` + `static/chat.html`(独立页,方案 A)
`chat.html` 是独立整页,加载 `/static/js/chat.js`(**不**加载 widget.js)。为保持与组件**同一套**配置机制,让 `chat.js` 读取自身 `` 标签上添加 `data-whatsapp` / `data-email` 属性,使演示页展示配置能力。
- 第 35、39 行原有的静态 `href` **保留为默认值不动**,作为 `chat.js` 执行前的 fallback(避免 JS 未执行时出现空链接),`chat.js` 启动后会按配置覆盖。
- **执行时序安全**:`chat.js` 在 `` 末尾加载([chat.html:80](../../../static/chat.html#L80),晚于聊天容器 DOM),故 IIFE 顶部同步 `querySelector('.whatsapp-btn' / '.email-btn')` 时两个锚点已存在,同步赋值 `href` 安全。这两个 class 仅出现在 `chat.html` 的 light DOM 中(widget.js 里同名 class 在其 shadow DOM 内,互不干扰)。
### 3.3 `static/widget-test.html`(组件测试/演示页)
- 在 [widget-test.html:69](../../../static/widget-test.html#L69) 的组件 `