优化加载更多消息功能
This commit is contained in:
@@ -190,9 +190,9 @@ HTTP 401 会清理认证状态并导航至登录页。用户主动退出会先
|
|||||||
以下内容是根据当前代码观察到的限制,供后续迭代使用,并非已实现功能:
|
以下内容是根据当前代码观察到的限制,供后续迭代使用,并非已实现功能:
|
||||||
|
|
||||||
1. **运行配置集中化**:HTTP base URL 与 WebSocket 地址目前分散/硬编码,应按开发、测试、生产环境配置,减少部署时遗漏。(已解决)
|
1. **运行配置集中化**:HTTP base URL 与 WebSocket 地址目前分散/硬编码,应按开发、测试、生产环境配置,减少部署时遗漏。(已解决)
|
||||||
2. **认证状态持久性**:token 会持久化,但 username 不持久化;刷新后需由用户信息接口恢复展示状态。还应评估 localStorage 对 token 的安全取舍及 token 过期刷新方案。
|
2. **认证状态持久性**:token 会持久化,但 username 不持久化;刷新后需由用户信息接口恢复展示状态。还应评估 localStorage 对 token 的安全取舍及 token 过期刷新方案。(username已删除,token问题待解决)
|
||||||
3. **WebSocket 健壮性**:当前没有断线重连、心跳、待发送队列或连接状态 UI;发送前应明确连接不可用的反馈,并评估 ACK 超时及重复消息处理。
|
3. **WebSocket 健壮性**:当前没有断线重连、心跳、待发送队列或连接状态 UI;发送前应明确连接不可用的反馈,并评估 ACK 超时及重复消息处理。
|
||||||
4. **会话切换与分页状态**:`loadEnd` 等分页标志需要在联系人切换时明确重置;异步消息请求也应避免旧联系人响应覆盖新联系人视图。
|
4. **会话切换与分页状态**:`loadEnd` 等分页标志需要在联系人切换时明确重置;异步消息请求也应避免旧联系人响应覆盖新联系人视图。(已解决)
|
||||||
5. **实时会话一致性**:收到当前联系人消息时会更新消息区,但当前实现没有同步刷新最近会话预览;接收新消息的未读判断及空会话创建逻辑也值得通过业务用例确认。
|
5. **实时会话一致性**:收到当前联系人消息时会更新消息区,但当前实现没有同步刷新最近会话预览;接收新消息的未读判断及空会话创建逻辑也值得通过业务用例确认。
|
||||||
6. **响应契约与错误处理**:页面依赖响应中存在 `data` 字段。建议与服务端定义统一响应 DTO,并区分网络错误、认证错误、业务错误;当前错误主要由页面提示。
|
6. **响应契约与错误处理**:页面依赖响应中存在 `data` 字段。建议与服务端定义统一响应 DTO,并区分网络错误、认证错误、业务错误;当前错误主要由页面提示。
|
||||||
7. **UI 菜单与能力范围**:侧栏存在设置入口,但当前点击后主要改变菜单状态,未形成独立设置页;工具栏的表情和附件按钮也尚未绑定完整功能。
|
7. **UI 菜单与能力范围**:侧栏存在设置入口,但当前点击后主要改变菜单状态,未形成独立设置页;工具栏的表情和附件按钮也尚未绑定完整功能。
|
||||||
|
|||||||
@@ -266,6 +266,8 @@ export default {
|
|||||||
contactMessages: [],
|
contactMessages: [],
|
||||||
// 首次加载
|
// 首次加载
|
||||||
firstLoad: true,
|
firstLoad: true,
|
||||||
|
// 每次请求加载的消息条数
|
||||||
|
pageSize: 10,
|
||||||
// 正在加载更多消息
|
// 正在加载更多消息
|
||||||
loadingMore: false,
|
loadingMore: false,
|
||||||
// 是否所有消息都加载完毕
|
// 是否所有消息都加载完毕
|
||||||
@@ -348,10 +350,12 @@ export default {
|
|||||||
// 选择联系人
|
// 选择联系人
|
||||||
async selectContact(contact) {
|
async selectContact(contact) {
|
||||||
this.currentContact = contact;
|
this.currentContact = contact;
|
||||||
|
|
||||||
|
this.loadEnd = false; //重置加载消息结束标志
|
||||||
this.contactMessages = [];
|
this.contactMessages = [];
|
||||||
// 每次选择联系人的时候需要首次加载消息
|
// 每次选择联系人的时候需要首次加载消息
|
||||||
this.firstLoad = true;
|
this.firstLoad = true;
|
||||||
await this.getContactMessageList(contact.contactName, 10, 0);
|
await this.getContactMessageList(contact.contactName, this.pageSize, 0);
|
||||||
|
|
||||||
// 查看联系人后清除未读数量
|
// 查看联系人后清除未读数量
|
||||||
contact.unreadCount = 0;
|
contact.unreadCount = 0;
|
||||||
@@ -620,7 +624,7 @@ export default {
|
|||||||
try {
|
try {
|
||||||
await this.getContactMessageList(
|
await this.getContactMessageList(
|
||||||
this.currentContact.contactName,
|
this.currentContact.contactName,
|
||||||
10,
|
this.pageSize,
|
||||||
this.contactMessages.length
|
this.contactMessages.length
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user