XuqmGroup-WeChatMiniProgram.../pages/chat/chat.wxml
徐勤民 ac72012443 feat(sdk): 更新 SDK 设计文档和 API 重构
- 添加 expiresAt 和 refreshUserSig 参数支持自动续签
- 修改 PushSDK 初始化方式,自动完成设备注册和厂商初始化
- 调整过期续签策略,从提前 15 分钟改为提前 5 分钟触发
- 重构 RN SDK 文档结构,简化安装和使用方式
- 更新统一登录流程,支持 profile 信息传递
- 添加 IM 数据库自动隔离功能
- 修复 Android 群消息聚合问题
- 补充自动化测试验证和错误处理机制
2026-05-01 21:27:38 +08:00

63 行
3.0 KiB
Plaintext

<view class="chat-container">
<view class="header">
<text class="status {{connected ? 'online' : 'offline'}}">{{connected ? '已连接' : '未连接'}}</text>
<text class="user">当前用户: {{userId}}</text>
</view>
<view class="sidebar">
<view class="tab-bar">
<view class="tab {{activeTab==='conv'?'active':''}}" bindtap="switchTab" data-tab="conv">会话</view>
<view class="tab {{activeTab==='friend'?'active':''}}" bindtap="switchTab" data-tab="friend">好友</view>
<view class="tab {{activeTab==='group'?'active':''}}" bindtap="switchTab" data-tab="group">群组</view>
</view>
<scroll-view scroll-y class="list">
<block wx:if="{{activeTab==='conv'}}">
<view wx:for="{{conversations}}" wx:key="targetId" class="item" bindtap="selectConv" data-id="{{item.targetId}}" data-type="{{item.chatType}}">
<view class="item-title">{{item.targetId}}</view>
<view class="item-meta">{{item.lastMsgContent||'暂无消息'}}</view>
</view>
<view wx:if="{{conversations.length===0}}" class="empty">暂无会话</view>
</block>
<block wx:if="{{activeTab==='friend'}}">
<view wx:for="{{friends}}" wx:key="*this" class="item" bindtap="startChat" data-id="{{item}}">
<view class="item-title">{{item}}</view>
</view>
<view wx:if="{{friends.length===0}}" class="empty">暂无好友</view>
</block>
<block wx:if="{{activeTab==='group'}}">
<view wx:for="{{groups}}" wx:key="id" class="item" bindtap="startGroupChat" data-id="{{item.id}}">
<view class="item-title">{{item.name}}</view>
<view class="item-meta">{{item.memberIds ? JSON.parse(item.memberIds).length : 0}} 人</view>
</view>
<view wx:if="{{groups.length===0}}" class="empty">暂无群组</view>
</block>
</scroll-view>
</view>
<view class="chat-area" wx:if="{{currentTarget}}">
<view class="chat-header">{{currentTarget}} ({{currentChatType==='SINGLE'?'单聊':'群聊'}})</view>
<scroll-view scroll-y class="message-list" scroll-into-view="msg-{{messages.length-1}}">
<view wx:for="{{messages}}" wx:key="id" id="msg-{{index}}" class="msg-row {{item.fromId===userId?'self':'other'}}">
<view class="msg-bubble">
<view class="msg-sender">{{item.fromId||item.fromUserId}}</view>
<view class="msg-content">{{item.revoked?'消息已撤回':item.content}}</view>
<view class="msg-meta">
<text class="tag">{{item.status}}</text>
<text class="time">{{item.createdAt}}</text>
</view>
</view>
</view>
</scroll-view>
<view class="input-area">
<input class="msg-input" placeholder="输入消息" value="{{inputText}}" bindinput="onInput" confirm-type="send" bindconfirm="sendText" />
<button class="send-btn" type="primary" size="mini" bindtap="sendText">发送</button>
</view>
</view>
<view wx:else class="empty-chat">选择一个会话开始聊天</view>
</view>