# 聊天功能快速开始

## 快速配置

### 1. 添加菜单路由

在后台管理系统的菜单配置中添加以下菜单项:

```json
{
  "name": "聊天列表",
  "path": "/chat/chat_list",
  "component": "chat/chat_list",
  "icon": "md-chatbubbles"
}
```

### 2. 启动项目

```bash
# 启动后端API服务
cd api
npm install
npm start

# 启动前端管理后台
cd admin
npm install
npm run dev
```

### 3. 访问聊天列表

在浏览器中访问: `http://localhost:8080/#/chat/chat_list`

## 功能演示

### 查看会话列表
1. 左侧显示所有聊天会话
2. 每个会话显示:
   - 公司名称
   - 职位名称
   - 最新消息内容
   - 消息时间
   - 平台标签(Boss/猎聘)

### 查看聊天记录
1. 点击左侧的任意会话
2. 右侧显示完整的聊天历史记录
3. 消息按时间顺序排列
4. 区分发送和接收的消息

### 发送消息
1. 选择一个会话
2. 在底部输入框输入消息
3. 点击"发送"按钮或按回车键
4. 消息发送成功后会自动刷新

### 筛选和搜索
- **平台筛选**: 选择Boss直聘或猎聘
- **关键词搜索**: 输入公司名称或职位名称

## API测试

### 测试获取聊天列表

```bash
curl -X POST http://localhost:3000/admin_api/chat/list \
  -H "Content-Type: application/json" \
  -d '{
    "page": 1,
    "pageSize": 20
  }'
```

### 测试发送消息

```bash
curl -X POST http://localhost:3000/admin_api/chat/send \
  -H "Content-Type: application/json" \
  -d '{
    "sn_code": "GHJU",
    "jobId": "12345",
    "content": "您好,我对这个职位很感兴趣",
    "platform": "boss",
    "chatType": "reply"
  }'
```

### 测试获取指定职位的聊天记录

```bash
curl -X GET "http://localhost:3000/admin_api/chat/by-job?jobId=12345&sn_code=GHJU"
```

## 常见问题

### 1. 页面显示空白?
- 检查API服务是否正常运行
- 检查浏览器控制台是否有错误
- 确认数据库中是否有聊天记录数据

### 2. 消息发送失败?
- 检查设备SN码是否正确
- 检查职位ID是否存在
- 查看后端日志确认错误原因
- 注意: 当前MQTT集成待完成,消息会保存但不会真正发送到设备

### 3. 轮询不工作?
- 检查浏览器控制台是否有网络错误
- 确认轮询定时器是否正常启动
- 可以调整轮询间隔 (默认5秒)

### 4. 会话列表为空?
- 检查筛选条件是否过于严格
- 尝试清空搜索关键词
- 确认数据库中有聊天记录

## 下一步

### 功能扩展
- 集成MQTT实现真实消息发送
- 添加WebSocket实现实时推送
- 集成AI生成智能回复
- 支持富文本和文件消息

### 性能优化
- 实现消息虚拟滚动
- 添加消息缓存机制
- 优化大量会话的加载性能

### 用户体验
- 添加消息已读状态
- 支持消息撤回
- 添加消息搜索功能
- 支持会话置顶和归档

## 技术支持

如有问题,请查看:
- [聊天列表功能说明.md](./聊天列表功能说明.md) - 完整的功能文档
- 项目代码中的注释
- 后端API的Swagger文档

## 更新记录

- **2025-01-XX**: 初始版本发布
  - 实现基础聊天列表功能
  - 支持消息发送和接收
  - 添加轮询机制
  - 支持平台筛选和搜索
