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

5.0 KiB
Raw Blame History

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客服功能可以修改以下配置

<!--  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. 事件监听

可以监听以下事件来处理业务逻辑:

// 未读消息更新
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客服按钮样式

.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智能客服功能