Files
lucky_shop/components/ai-chat-popup/README.md

173 lines
5.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# AI智能客服弹窗集成说明
## 概述
本方案将AI智能客服弹窗功能集成到现有的浮动导航组件 `hover-nav.vue` 中,实现了对项目影响最小的集成方案。
## 集成文件
### 1. 新增组件
- `components/ai-chat-popup/ai-chat-popup.vue` - AI聊天弹窗主组件
- `components/ai-chat-popup/ai-chat-popup.json` - 组件配置文件
### 2. 修改文件
- `components/hover-nav/hover-nav.vue` - 集成AI客服按钮和弹窗
## 功能特性
### ✅ 已实现功能
1. **浮动AI客服按钮** - 在现有浮动导航中添加AI客服按钮
2. **智能弹窗** - 点击按钮弹出AI聊天界面
3. **未读消息提示** - 显示未读消息数量小红点
4. **全屏模式** - 支持全屏/窗口模式切换
5. **响应式设计** - 适配不同屏幕尺寸
6. **复用现有组件** - 基于现有的 `ai-chat-message` 组件
### 🔧 技术特点
1. **最小化影响** - 只修改现有组件,不改变项目结构
2. **模块化设计** - 弹窗组件独立,可复用
3. **事件驱动** - 完整的生命周期事件
4. **性能优化** - 按需加载,避免资源浪费
## 使用方法
### 1. 自动集成
AI客服功能已经自动集成到 `hover-nav` 组件中,无需额外配置。
### 2. 自定义配置
如果需要自定义AI客服功能可以修改以下配置
```vue
<!-- hover-nav.vue 中自定义AI客服按钮 -->
<view class="btn-item" @click="openAIChat" :style="{backgroundImage:'url('+(aiimg?aiimg:'')+')',backgroundSize:'100% 100%'}">
<text class="iconfont icon-ai" v-if="!aiimg"></text>
<view v-if="aiUnreadCount > 0" class="unread-badge">
<text>{{ aiUnreadCount > 99 ? '99+' : aiUnreadCount }}</text>
</view>
</view>
<!-- AI聊天弹窗 -->
<ai-chat-popup
v-if="showAIChat"
:show="showAIChat"
@update:show="showAIChat = $event"
@unread-update="onUnreadUpdate"
@message-sent="onAIMessageSent"
@ai-response="onAIResponse" />
```
### 3. 事件监听
可以监听以下事件来处理业务逻辑:
```javascript
// 未读消息更新
onUnreadUpdate(count) {
this.aiUnreadCount = count
// 可以在这里添加未读消息处理逻辑
},
// AI消息发送事件
onAIMessageSent(message) {
console.log('AI消息发送:', message)
// 可以在这里添加消息发送后的处理逻辑
},
// AI回复事件
onAIResponse(message) {
console.log('AI回复:', message)
// 可以在这里添加AI回复后的处理逻辑
}
```
## 配置选项
### AI聊天弹窗组件参数
| 参数 | 类型 | 默认值 | 说明 |
|------|------|--------|------|
| show | Boolean | false | 是否显示弹窗 |
| userAvatar | String | '/static/images/default-avatar.png' | 用户头像 |
| aiAvatar | String | '/static/images/ai-avatar.png' | AI头像 |
### 事件
| 事件名 | 参数 | 说明 |
|--------|------|------|
| popup-open | - | 弹窗打开事件 |
| popup-close | - | 弹窗关闭事件 |
| unread-update | count | 未读消息数量更新 |
| message-sent | message | 消息发送事件 |
| ai-response | message | AI回复事件 |
## 样式定制
### 1. AI客服按钮样式
```css
.btn-item {
/* 按钮基础样式 */
position: relative;
}
.unread-badge {
/* 未读消息小红点样式 */
position: absolute;
top: -5rpx;
right: -5rpx;
background-color: #ff4544;
color: white;
border-radius: 20rpx;
min-width: 30rpx;
height: 30rpx;
font-size: 20rpx;
line-height: 30rpx;
text-align: center;
padding: 0 8rpx;
z-index: 1;
box-shadow: 0 2rpx 10rpx rgba(255, 69, 68, 0.3);
}
```
### 2. 弹窗样式
弹窗样式在 `ai-chat-popup.vue` 中定义,可以根据需要自定义。
## 注意事项
1. **图标资源** - 需要确保AI图标文件存在默认路径为 `/static/images/ai-icon.png`
2. **组件依赖** - AI聊天弹窗依赖于现有的 `ai-chat-message` 组件
3. **z-index** - 弹窗的z-index设置为1000确保在其他元素之上
4. **响应式适配** - 弹窗已经做了移动端适配,但可能需要根据具体项目调整
## 兼容性
- ✅ H5
- ✅ 微信小程序
- ✅ APP
- ✅ 其他小程序平台
## 后续优化建议
1. **图标优化** - 可以添加更精美的AI图标
2. **动画效果** - 可以添加更流畅的打开/关闭动画
3. **主题定制** - 支持暗色主题等
4. **多语言** - 支持国际化
5. **性能优化** - 懒加载等优化措施
## 问题排查
如果AI客服功能无法正常工作请检查
1. 组件路径是否正确
2. 依赖的 `ai-chat-message` 组件是否存在
3. 图标资源路径是否正确
4. 控制台是否有错误信息
## 总结
本集成方案成功将AI智能客服功能添加到现有的浮动导航组件中实现了
- ✅ 对项目影响最小
- ✅ 功能完整可用
- ✅ 代码结构清晰
- ✅ 易于维护扩展
现在您可以在任何使用 `hover-nav` 组件的页面中享受AI智能客服功能