# 客户端配置切换脚本使用说明

这个脚本用于在不同客户端配置之间快速切换，支持智念、朵花、天沐等多个客户端。

## 主要功能

- 支持通过客户端名称切换配置
- 自动更新相关配置文件
- 统一的JSON配置文件管理
- 完整的错误处理和验证

## 配置文件结构

配置文件位于项目根目录的 `client-configs.json`，包含所有客户端的完整配置信息。配置会通过 `src/constant/base.js` 文件导入和使用：

```json
{
  "zhinian": {
    "clientId": "2",
    "appId": "wx5e79df5996572539",
    "name": "智念",
    "placeholder": "快告诉智念您在想什么~",
    "loginDesc": "您好，欢迎来到智念科技",
    "logo": "@/pages/login/images/dh.png",
    "subLogo": "@/pages/login/images/dhwq.png"
  },
  "duohua": {
    "clientId": "2",
    "appId": "wx23f86d809ae80259",
    "name": "朵花",
    "placeholder": "快告诉朵朵您在想什么~",
    "loginDesc": "您好，欢迎来到朵花温泉",
    "logo": "@/pages/login/images/dh.png",
    "subLogo": "@/pages/login/images/dhwq.png"
  },
  "tianmu": {
    "clientId": "4",
    "appId": "wx0be424e1d22065a9",
    "name": "天沐",
    "placeholder": "快告诉沐沐您在想什么~",
    "loginDesc": "您好，欢迎来到天沐温泉",
    "logo": "@/pages/login/images/tm.png",
    "subLogo": "@/pages/login/images/wsmm.png"
  }
}
```

## 支持的客户端

| 客户端名称 | 显示名称 | AppID              |
| ---------- | -------- | ------------------ |
| `zhinian`  | 智念     | wx5e79df5996572539 |
| `duohua`   | 朵花     | wx23f86d809ae80259 |
| `tianmu`   | 天沐     | wx0be424e1d22065a9 |

## 使用方法

### 使用客户端名称切换

```bash
# 切换到智念客户端
npm run switch-client zhinian

# 切换到朵花客户端
npm run switch-client duohua

# 切换到天沐客户端
npm run switch-client tianmu
```

### 直接运行脚本

```bash
# 使用客户端名称
node scripts/update-appid.js tianmu
```

## AppID 信息

微信小程序的 AppID 通常格式为：

- 以 `wx` 开头
- 后跟 16 位字符（数字和字母）
- 总长度 18 位

示例：`wx1234567890abcdef`

## 更新的文件

1. **src/manifest.json**

   - 更新 `mp-weixin.appid` 字段
   - 保持文件中的注释不变

2. **project.config.json**

   - 更新根级别的 `appid` 字段
   - 保持 JSON 格式化

3. **src/constant/base.js**
   - 更新 `getCurrentConfig()` 函数返回的客户端配置

4. **client-configs.json**
   - 统一的配置文件，所有客户端配置的单一数据源

## 执行结果示例

### 使用客户端名称切换：

```
🚀 开始更新配置...
🎯 检测到客户端配置: 天沐 (tianmu)
目标客户端: 天沐 (tianmu)
目标appid: wx0be424e1d22065a9

📝 正在更新 base.js...
✅ base.js 更新成功，切换到 天沐 配置
📝 正在更新 manifest.json...
✅ manifest.json 更新成功
📝 正在更新 project.config.json...
✅ project.config.json 更新成功
   旧appid: wx5e79df5996572539
   新appid: wx0be424e1d22065a9

🎉 所有文件更新完成！
💡 已切换到 天沐 客户端配置
💡 提示: 请检查文件内容确认更新正确
```

## 错误处理

脚本包含以下验证和错误处理：

- 检查必需参数是否提供
- 验证客户端名称是否有效
- 检查目标文件是否存在
- 捕获文件读写错误
- 智能跳过不需要的更新

## 注意事项

1. **配置同步**: 确保 `client-configs.json` 与 `src/constant/base.js` 中的基础配置保持同步
2. **测试建议**: 切换配置后建议先进行测试，确认功能正常
3. **备份建议**: 重要更新前建议备份相关配置文件

## 常见问题

**Q: 脚本提示文件不存在怎么办？**
A: 请确保在项目根目录执行脚本，并检查文件路径是否正确。

**Q: 脚本提示不支持的客户端名称怎么办？**
A: 请检查输入的客户端名称是否正确，支持的客户端名称有：zhinian、duohua、tianmu。

**Q: 如何恢复到之前的配置？**
A: 可以使用版本控制系统恢复，或者再次运行脚本切换到其他客户端配置。

**Q: 如何添加新的客户端配置？**
A: 在 `client-configs.json` 中添加新的客户端配置：
   ```json
   "new_client": {
     "clientId": "客户端ID",
     "appId": "微信小程序AppID",
     "name": "客户端显示名称",
     "placeholder": "输入框占位符文本",
     "loginDesc": "登录页面描述文本",
     "logo": "@/pages/login/images/logo.png",
     "subLogo": "@/pages/login/images/sublogo.png"
   }
   ```
   `src/constant/base.js` 会自动读取并处理新配置，无需手动修改。

**Q: 脚本提示"读取配置文件失败"怎么办？**
A: 检查 `client-configs.json` 文件是否存在且格式正确。
