前端组件开发文档

微吼组件开发及使用规范


聊天

<p>[TOC]</p> <h4>安装</h4> <p>七巧板基于 VUE (2.5), Webpack (3.0) 请确保已具备较新的 node 环境。</p> <h4>聊天组件基础使用</h4> <p>当前用法中所有参数,均为必填参数,只支持单一的发送文本功能</p> <pre><code class="language-html">&lt;template&gt; &lt;chat :roomId="roomInfo.roomeId" :avatar="avatar" :nickname="nickname" :roleName="roomInfo.roleName" :third_party_user_id="roomInfo.third_party_user_id" :paas_access_token="roomInfo.paas_access_token" :channel_id="roomInfo.channel_id" :app_id="roomInfo.app_id" :allBanned="allBanned" :isBanned="isBanned" :showEmoji="showEmoji" &gt;&lt;/chat&gt; &lt;script&gt; export default { data () { return { roomInfo: { roomeId: "lss_xxxxx", // 当前活动房间id roleName: 1, // 角色名称 1主持人2观众3助理4嘉宾 third_party_user_id: 1234, // 当前房间用户id paas_access_token: 'access:XXXX', // pass 身份标识 channel_id: 'ch_xxxxx', // 频道Id app_id: 'xxxxxx', // 应用 ID }, avatar: 'xxxxx.jpg', // 用户头像 nickname: '张XX' // 用户姓名, roomStatus:{ allBanned: false, // 当前房间是否开启了全体禁言 true开启 false未开启 isBanned: false // 当前用户在当前房间是否被单独禁言 true是 false否 }, roleNameText:{ // 聊天区域右侧类型显示,不传入则不显示!!!! text: '' // 显示名称右侧的标签,可以任意输入,不输入则不显示 type: 'host' // 可以选用主持人host,嘉宾guest,助理assistant,这三个有默认样式,也可传入其他类型用于特殊class,应用层可自己修改显示样式 }, showEmoji: true // 是否添加表情入口(wap独有) } } &lt;/script&gt; &lt;/template&gt;</code></pre> <h4>注意事项</h4> <p><strong>wap</strong></p> <ol> <li>在 tab 切换后,如果目标 tab 是聊天组件区域,需要调用 this.$refs.vhChat.refresh()</li> <li>在某些操作后,如会造成聊天组件页面卡死,无法滚动等情况发生,也需要调用一下 this.$refs.vhChat.refresh(),例如问卷提交成功后</li> <li>在手机端 mounted 中,需要加入 input 监听事件,解决 iphone 软键盘弹出造成的底部留白兼容性问题</li> </ol> <pre><code class="language-javascript">&lt;template&gt; &lt;script&gt; export default { mounted () { this.keyboardEvents() }methods: { keyboardEvents() { let myFunction; document.body.addEventListener('focusin', () =&gt; { // 软键盘弹起事件 clearTimeout(myFunction) }) document.body.addEventListener('focusout', () =&gt; { // 软键盘关闭事件 clearTimeout(myFunction) myFunction = setTimeout(function() { window.scrollTo({ top: 0, left: 0, behavior: 'smooth' }) // =======当键盘收起的时候让页面回到原始位置 }, 200) }) } } } &lt;/script&gt; &lt;/template&gt;</code></pre> <h4>props</h4> <table> <thead> <tr> <th style="text-align: left;">参数</th> <th style="text-align: left;">说明</th> <th style="text-align: left;">类型</th> <th style="text-align: left;">可选值</th> <th style="text-align: left;">默认值</th> <th style="text-align: left;">必填</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">playerType</td> <td style="text-align: left;">直播类型,vod 为回放,live 为直播</td> <td style="text-align: left;">String</td> <td style="text-align: left;">-</td> <td style="text-align: left;">-</td> <td style="text-align: left;">否</td> </tr> <tr> <td style="text-align: left;">roomId</td> <td style="text-align: left;">房间 Id</td> <td style="text-align: left;">String</td> <td style="text-align: left;">-</td> <td style="text-align: left;">-1</td> <td style="text-align: left;">否</td> </tr> <tr> <td style="text-align: left;">avatar</td> <td style="text-align: left;">用户信息,头像地址</td> <td style="text-align: left;">String</td> <td style="text-align: left;">-</td> <td style="text-align: left;">-</td> <td style="text-align: left;">否</td> </tr> <tr> <td style="text-align: left;">nickname</td> <td style="text-align: left;">用户信息,昵称</td> <td style="text-align: left;">String</td> <td style="text-align: left;">-</td> <td style="text-align: left;">-</td> <td style="text-align: left;">否</td> </tr> <tr> <td style="text-align: left;">roleName</td> <td style="text-align: left;">角色名称</td> <td style="text-align: left;">Number, String</td> <td style="text-align: left;">-</td> <td style="text-align: left;">-</td> <td style="text-align: left;">是</td> </tr> <tr> <td style="text-align: left;">vssToken</td> <td style="text-align: left;">图片上传需要的 vssToken</td> <td style="text-align: left;">String</td> <td style="text-align: left;">-</td> <td style="text-align: left;">-</td> <td style="text-align: left;">当有上传图片功能时,必传</td> </tr> <tr> <td style="text-align: left;">third_party_user_id</td> <td style="text-align: left;">用户 Id</td> <td style="text-align: left;">Number, String</td> <td style="text-align: left;">-</td> <td style="text-align: left;">-</td> <td style="text-align: left;">是</td> </tr> <tr> <td style="text-align: left;">paas_access_token</td> <td style="text-align: left;">access_token</td> <td style="text-align: left;">String</td> <td style="text-align: left;">-</td> <td style="text-align: left;">-</td> <td style="text-align: left;">是</td> </tr> <tr> <td style="text-align: left;">channel_id</td> <td style="text-align: left;">频道 Id</td> <td style="text-align: left;">String</td> <td style="text-align: left;">-</td> <td style="text-align: left;">-</td> <td style="text-align: left;">是</td> </tr> <tr> <td style="text-align: left;">app_id</td> <td style="text-align: left;">应用 Id</td> <td style="text-align: left;">Number, String</td> <td style="text-align: left;">-</td> <td style="text-align: left;">-</td> <td style="text-align: left;">是</td> </tr> <tr> <td style="text-align: left;">chatFilterData</td> <td style="text-align: left;">聊天过滤的数组</td> <td style="text-align: left;">Array</td> <td style="text-align: left;">-</td> <td style="text-align: left;">-</td> <td style="text-align: left;">否</td> </tr> <tr> <td style="text-align: left;">plugin</td> <td style="text-align: left;">插件</td> <td style="text-align: left;">Object</td> <td style="text-align: left;">-</td> <td style="text-align: left;">{image: false // 是否开启图片上传,emoji:</td> <td style="text-align: left;">false // 是否开启表情,audit: false // 是否开启过滤}</td> <td>否</td> </tr> <tr> <td style="text-align: left;">isEmbed</td> <td style="text-align: left;">是否为隐身参会(开启时初始化 sdk,不记并发)</td> <td style="text-align: left;">Boolean</td> <td style="text-align: left;">-</td> <td style="text-align: left;">-</td> <td style="text-align: left;">否</td> </tr> <tr> <td style="text-align: left;">allBanned</td> <td style="text-align: left;">是否全体禁言</td> <td style="text-align: left;">Boolean</td> <td style="text-align: left;">-</td> <td style="text-align: left;">false</td> <td style="text-align: left;">是</td> </tr> <tr> <td style="text-align: left;">isBanned</td> <td style="text-align: left;">是否被禁言</td> <td style="text-align: left;">Boolean</td> <td style="text-align: left;">-</td> <td style="text-align: left;">false</td> <td style="text-align: left;">是</td> </tr> <tr> <td style="text-align: left;">isShowLoginBox</td> <td style="text-align: left;">是否显示登录框,及当前是否需要登录后才可发言,需要应用层判断是否开启登录验证和当前是否登录后给出结果</td> <td style="text-align: left;">Boolean</td> <td style="text-align: left;">-</td> <td style="text-align: left;">false</td> <td style="text-align: left;">否</td> </tr> <tr> <td style="text-align: left;">questionnaireNeedLogin</td> <td style="text-align: left;">问卷是否需要登录才可以填写</td> <td style="text-align: left;">Boolean</td> <td style="text-align: left;">-</td> <td style="text-align: left;">false</td> <td style="text-align: left;">否</td> </tr> <tr> <td style="text-align: left;">faceArrInit</td> <td style="text-align: left;">聊天表情自定义</td> <td style="text-align: left;">Object</td> <td style="text-align: left;">-</td> <td style="text-align: left;">-</td> <td style="text-align: left;">否</td> </tr> <tr> <td style="text-align: left;">avatarType</td> <td style="text-align: left;">聊天头像显示类型 img 显示图片(未上传显示默认图)/nickName 显示昵称首字母</td> <td style="text-align: left;">String</td> <td style="text-align: left;">nickName;img</td> <td style="text-align: left;">img</td> <td style="text-align: left;">否</td> </tr> <tr> <td style="text-align: left;">placeholder</td> <td style="text-align: left;">聊天输入框添加默认提示配置</td> <td style="text-align: left;">String</td> <td style="text-align: left;">-</td> <td style="text-align: left;">-</td> <td style="text-align: left;">否</td> </tr> <tr> <td style="text-align: left;">emojiUrlInit</td> <td style="text-align: left;">聊天表情存放路径</td> <td style="text-align: left;">Boolean</td> <td style="text-align: left;">-</td> <td style="text-align: left;">true</td> <td style="text-align: left;">否</td> </tr> <tr> <td style="text-align: left;">UVBase</td> <td style="text-align: left;">定义基准 UV,以万为单位</td> <td style="text-align: left;">number</td> <td style="text-align: left;">-</td> <td style="text-align: left;">1</td> <td style="text-align: left;">否</td> </tr> <tr> <td style="text-align: left;">gapTimeBase</td> <td style="text-align: left;">定义基准 UV 的发送消息的时间间隔,以秒为单位</td> <td style="text-align: left;">number</td> <td style="text-align: left;">-</td> <td style="text-align: left;">10</td> <td style="text-align: left;">否</td> </tr> <tr> <td style="text-align: left;">roleNameText</td> <td style="text-align: left;">聊天区域右侧类型显示,(注意)不传入则不显示</td> <td style="text-align: left;">Object</td> <td style="text-align: left;">-</td> <td style="text-align: left;">-</td> <td style="text-align: left;">否</td> </tr> <tr> <td style="text-align: left;">maxlength</td> <td style="text-align: left;">输入框最大长度,默认140</td> <td style="text-align: left;">Number</td> <td style="text-align: left;">-</td> <td style="text-align: left;">140</td> <td style="text-align: left;"></td> </tr> <tr> <td style="text-align: left;">roleNameText</td> <td style="text-align: left;">聊天区域右侧类型显示,(注意)不传入则不显示</td> <td style="text-align: left;">Object</td> <td style="text-align: left;">-</td> <td style="text-align: left;">-</td> <td style="text-align: left;">否</td> </tr> <tr> <td style="text-align: left;">showMsgBtn</td> <td style="text-align: left;">是否显示互动消息“点击查看”、“点击填写”等按钮 true 显示/false 不显示</td> <td style="text-align: left;">Boolean</td> <td style="text-align: left;">true /false</td> <td style="text-align: left;">true</td> <td style="text-align: left;">否</td> </tr> <tr> <td style="text-align: left;">showEmoji</td> <td style="text-align: left;">是否显示表情入口 true为显示,false为隐藏(仅wap有效)</td> <td style="text-align: left;">Boolean</td> <td style="text-align: left;">true /false</td> <td style="text-align: left;">true</td> <td style="text-align: left;">否</td> </tr> </tbody> </table> <h4>events</h4> <table> <thead> <tr> <th style="text-align: left;">事件名</th> <th style="text-align: left;">说明</th> <th style="text-align: left;">回调参数</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">component_send_gap_time</td> <td style="text-align: left;">发送消息的时间间隔</td> <td style="text-align: left;">number,距离下一次可发送消息还剩多少s</td> </tr> <tr> <td style="text-align: left;">receiveChatMsg</td> <td style="text-align: left;">收到非自己发送的聊天消息抛出的事件名,主要用于观看端红点显示</td> <td style="text-align: left;">-</td> </tr> </tbody> </table> <h4>eventBus</h4> <table> <thead> <tr> <th style="text-align: left;">name</th> <th style="text-align: left;">说明</th> <th style="text-align: left;">回调参数的属性</th> <th style="text-align: left;">回调参数说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">component_changePage</td> <td style="text-align: left;">聊天审核列表翻页消息</td> <td style="text-align: left;">当前页码数</td> <td style="text-align: left;">-</td> </tr> <tr> <td style="text-align: left;">component_chatFilterUrl</td> <td style="text-align: left;">发送消息到助手</td> <td style="text-align: left;">过滤地址</td> <td style="text-align: left;">-</td> </tr> <tr> <td style="text-align: left;">component_emojiInput</td> <td style="text-align: left;">点击选择聊天表情</td> <td style="text-align: left;">表情名称</td> <td style="text-align: left;">-</td> </tr> <tr> <td style="text-align: left;">component_chatUpdata</td> <td style="text-align: left;">聊天列表更新消息</td> <td style="text-align: left;">-</td> <td style="text-align: left;">-</td> </tr> <tr> <td style="text-align: left;">component_chatSDK_ready</td> <td style="text-align: left;">聊天 SDK 实例化成功</td> <td style="text-align: left;">true</td> <td style="text-align: left;">-</td> </tr> <tr> <td style="text-align: left;">component_check_lottery</td> <td style="text-align: left;">子组件查看抽奖</td> <td style="text-align: left;">第一个参数是聊天消息返回的参数,第二个参数是当前用户的 id</td> <td style="text-align: left;">-</td> </tr> <tr> <td style="text-align: left;">component_check_questionnaire</td> <td style="text-align: left;">子组件查看问卷</td> <td style="text-align: left;">问卷 id</td> <td style="text-align: left;">-</td> </tr> <tr> <td style="text-align: left;">previewImg</td> <td style="text-align: left;">预览聊天中发送的图片</td> <td style="text-align: left;">第一个参数图片当前的页数,第二个参数图片的张数</td> <td style="text-align: left;">-</td> </tr> <tr> <td style="text-align: left;">component_repeat_login_out</td> <td style="text-align: left;">单点登录,如果有第二个相同账号登录会抛出该事件</td> <td style="text-align: left;">根据 msg.data.third_uid 同当前账号 id 对比,如果一致,踢出当前账号</td> <td style="text-align: left;">-</td> </tr> <tr> <td style="text-align: left;">component_chat_msg</td> <td style="text-align: left;">广播聊天消息中 msg.data.type 为 text 和 image 的消息</td> <td style="text-align: left;"></td> <td style="text-align: left;">-</td> </tr> </tbody> </table> <h4>方法</h4> <ul> <li> <p>refresh() 说明:当聊天区域重绘,可解决页面 tab 切换或其他操作导致聊天区域卡死问题</p> </li> <li> <p>openAuthChat() 说明:可开启聊天过滤页面</p> </li> <li>toFirstPage() 说明:调用该方法,无所当前是在聊天记录哪一页,或者滚动条在哪个位置,都会拉取最新的聊天记录并且将最新的消息更新到页面最下方</li> </ul> <h4>聊天组件 v1.5 版本升级,优化 class 名称</h4> <table> <thead> <tr> <th style="text-align: left;">原CLass</th> <th style="text-align: left;">修改后Class</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">chat-content</td> <td style="text-align: left;">vh-chat-com__content</td> </tr> <tr> <td style="text-align: left;">chat-content-scroll</td> <td style="text-align: left;">vh-chat-com__content-scroll</td> </tr> <tr> <td style="text-align: left;">chat-bottom</td> <td style="text-align: left;">vh-chat-com__bottom</td> </tr> <tr> <td style="text-align: left;">chat-img-box</td> <td style="text-align: left;">vh-chat-com__img-box</td> </tr> <tr> <td style="text-align: left;">chat-img</td> <td style="text-align: left;">vh-chat-com__img</td> </tr> <tr> <td style="text-align: left;">img-close</td> <td style="text-align: left;">vh-chat-com__img-close</td> </tr> <tr> <td style="text-align: left;">emoji-wrapper</td> <td style="text-align: left;">vh-chat-com__emoji-wrapper</td> </tr> <tr> <td style="text-align: left;">chat-control-wrap</td> <td style="text-align: left;">vh-chat-com__control-wrap</td> </tr> <tr> <td style="text-align: left;">avatar-uploader</td> <td style="text-align: left;">vh-chat-com__avatar-uploader</td> </tr> <tr> <td style="text-align: left;">authchat-box</td> <td style="text-align: left;">vh-chat-com__authchat-box</td> </tr> <tr> <td style="text-align: left;">openAuthChat</td> <td style="text-align: left;">vh-chat-com__open-auth-chat</td> </tr> <tr> <td style="text-align: left;">chat-input-wrap</td> <td style="text-align: left;">vh-chat-com__input-wrap</td> </tr> <tr> <td style="text-align: left;">input-placeholder</td> <td style="text-align: left;">vh-chat-com__input-placeholder</td> </tr> <tr> <td style="text-align: left;">chat-input-login</td> <td style="text-align: left;">vh-chat-com__input-login</td> </tr> <tr> <td style="text-align: left;">vhall-chat-slide-wrapper</td> <td style="text-align: left;">vh-chat-com__slide-wrapper</td> </tr> <tr> <td style="text-align: left;">slide-group</td> <td style="text-align: left;">vh-chat-com__slide-group</td> </tr> <tr> <td style="text-align: left;">slide</td> <td style="text-align: left;">vh-chat-com__slide</td> </tr> <tr> <td style="text-align: left;">slide-control</td> <td style="text-align: left;">vh-chat-com__slide-control</td> </tr> <tr> <td style="text-align: left;">slide-close</td> <td style="text-align: left;">vh-chat-com__slide-close</td> </tr> <tr> <td style="text-align: left;">msg-item-wrapper</td> <td style="text-align: left;">vh-chat-com__msg-item-wrapper</td> </tr> <tr> <td style="text-align: left;">msg-showtime</td> <td style="text-align: left;">vh-chat-com__msg-showtime</td> </tr> <tr> <td style="text-align: left;">msg-item</td> <td style="text-align: left;">vh-chat-com__msg-item</td> </tr> <tr> <td style="text-align: left;">msg-redpacket</td> <td style="text-align: left;">vh-chat-com__msg-redpacket</td> </tr> <tr> <td style="text-align: left;">redpacket-top</td> <td style="text-align: left;">vh-chat-com__redpacket-top</td> </tr> <tr> <td style="text-align: left;">redpacket-text-wrapper</td> <td style="text-align: left;">vh-chat-com__redpacket-text-wrapper</td> </tr> <tr> <td style="text-align: left;">redpacket-text</td> <td style="text-align: left;">vh-chat-com__redpacket-text</td> </tr> <tr> <td style="text-align: left;">redpacket-text-status</td> <td style="text-align: left;">vh-chat-com__redpacket-text-status</td> </tr> <tr> <td style="text-align: left;">redpacket-bottom</td> <td style="text-align: left;">vh-chat-com__redpacket-bottom</td> </tr> <tr> <td style="text-align: left;">msg-reward</td> <td style="text-align: left;">vh-chat-com__msg-reward</td> </tr> <tr> <td style="text-align: left;">ctop</td> <td style="text-align: left;">vh-chat-com__ctop</td> </tr> <tr> <td style="text-align: left;">hongbao</td> <td style="text-align: left;">vh-chat-com__hongbao</td> </tr> <tr> <td style="text-align: left;">note</td> <td style="text-align: left;">vh-chat-com__note</td> </tr> <tr> <td style="text-align: left;">avatar-wrap</td> <td style="text-align: left;">vh-chat-com__avatar-wrap</td> </tr> <tr> <td style="text-align: left;">chat-avatar</td> <td style="text-align: left;">vh-chat-com__chat-avatar</td> </tr> <tr> <td style="text-align: left;">chat-phone</td> <td style="text-align: left;">vh-chat-com__chat-phone</td> </tr> <tr> <td style="text-align: left;">msg-content</td> <td style="text-align: left;">vh-chat-com__msg-content</td> </tr> <tr> <td style="text-align: left;">msg-content_name</td> <td style="text-align: left;">vh-chat-com__msg-content-name</td> </tr> <tr> <td style="text-align: left;">nickname</td> <td style="text-align: left;">vh-chat-com__nick-name</td> </tr> <tr> <td style="text-align: left;">msg-content_body</td> <td style="text-align: left;">vh-chat-com__msg-content-body</td> </tr> <tr> <td style="text-align: left;">msg-content_chat-img-wrapper</td> <td style="text-align: left;">vh-chat-com__msg-content-chat-img-wrapper</td> </tr> <tr> <td style="text-align: left;">msg-content_chat-img</td> <td style="text-align: left;">vh-chat-com__msg-content-chat-img</td> </tr> <tr> <td style="text-align: left;">lottery-check</td> <td style="text-align: left;">vh-chat-com__lottery-check</td> </tr> <tr> <td style="text-align: left;">vhall-chat-user-control_bg</td> <td style="text-align: left;">vh-chat-com__user-control-bg</td> </tr> <tr> <td style="text-align: left;">vhall-chat-user-control</td> <td style="text-align: left;">vh-chat-com__user-control</td> </tr> <tr> <td style="text-align: left;">setspeak</td> <td style="text-align: left;">vh-chat-com__setspeak</td> </tr> <tr> <td style="text-align: left;">setkick</td> <td style="text-align: left;">vh-chat-com__setkick</td> </tr> <tr> <td style="text-align: left;">chat__emoji-tab</td> <td style="text-align: left;">vh-chat-com__emoji-tab</td> </tr> <tr> <td style="text-align: left;">chat-filter</td> <td style="text-align: left;">vh-chat-com__filter</td> </tr> <tr> <td style="text-align: left;">chat-filter-btn</td> <td style="text-align: left;">vh-chat-com__filter-btn</td> </tr> </tbody> </table> <h4>聊天 wap 组件 v1.2 版本升级,优化 class 名称</h4> <table> <thead> <tr> <th style="text-align: left;">原CLass</th> <th style="text-align: left;">修改后CLass</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;">chat</td> <td style="text-align: left;">vh-chat</td> </tr> <tr> <td style="text-align: left;">chat-content</td> <td style="text-align: left;">vh-chat__content</td> </tr> <tr> <td style="text-align: left;">newMsg</td> <td style="text-align: left;">vh-chat__new-msg</td> </tr> <tr> <td style="text-align: left;">send-msg-wrapper</td> <td style="text-align: left;">vh-chat__send-msg-wrapper</td> </tr> <tr> <td style="text-align: left;">send-msg</td> <td style="text-align: left;">vh-chat__send-msg</td> </tr> <tr> <td style="text-align: left;">need-input</td> <td style="text-align: left;">vh-chat__need-input</td> </tr> <tr> <td style="text-align: left;">input-wrapper</td> <td style="text-align: left;">vh-chat__input-wrapper</td> </tr> <tr> <td style="text-align: left;">login-btn</td> <td style="text-align: left;">vh-chat__login-btn</td> </tr> <tr> <td style="text-align: left;">msg-item-wrapper</td> <td style="text-align: left;">vh-chat__msg-item-wrapper</td> </tr> <tr> <td style="text-align: left;">msg-item</td> <td style="text-align: left;">vh-chat__msg-item</td> </tr> <tr> <td style="text-align: left;">interact-msg</td> <td style="text-align: left;">vh-chat__interact-msg</td> </tr> <tr> <td style="text-align: left;">msg-redpacket</td> <td style="text-align: left;">vh-chat__msg-redpacket</td> </tr> <tr> <td style="text-align: left;">redpacket-top</td> <td style="text-align: left;">vh-chat__redpacket-top</td> </tr> <tr> <td style="text-align: left;">redpacket-icon</td> <td style="text-align: left;">vh-chat__redpacket-icon</td> </tr> <tr> <td style="text-align: left;">redpacket-text-wrapper</td> <td style="text-align: left;">vh-chat__redpacket-text-wrapper</td> </tr> <tr> <td style="text-align: left;">redpacket-text</td> <td style="text-align: left;">vh-chat__redpacket-text</td> </tr> <tr> <td style="text-align: left;">redpacket-text-status</td> <td style="text-align: left;">vh-chat__redpacket-text-status</td> </tr> <tr> <td style="text-align: left;">redpacket-bottom</td> <td style="text-align: left;">vh-chat__redpacket-bottom</td> </tr> <tr> <td style="text-align: left;">highlight</td> <td style="text-align: left;">vh-chat__high-light</td> </tr> <tr> <td style="text-align: left;">reward-text</td> <td style="text-align: left;">vh-chat__reward-text</td> </tr> <tr> <td style="text-align: left;">msg-showtime</td> <td style="text-align: left;">vh-chat__msg-showtime</td> </tr> <tr> <td style="text-align: left;">avatar-wrap</td> <td style="text-align: left;">vh-chat__avatar-wrap</td> </tr> <tr> <td style="text-align: left;">chat-avatar</td> <td style="text-align: left;">vh-chat__chat-avatar</td> </tr> <tr> <td style="text-align: left;">msg-content</td> <td style="text-align: left;">vh-chat__msg-content</td> </tr> <tr> <td style="text-align: left;">msg-content_name</td> <td style="text-align: left;">vh-chat__msg-content-name</td> </tr> <tr> <td style="text-align: left;">msg-content_body_pre</td> <td style="text-align: left;">vh-chat__msg-content-body-pre</td> </tr> <tr> <td style="text-align: left;">msg-content_body</td> <td style="text-align: left;">vh-chat__msg-content-body</td> </tr> <tr> <td style="text-align: left;">jian-left</td> <td style="text-align: left;">vh-chat__jian-left</td> </tr> <tr> <td style="text-align: left;">msg-content_chat-img-wrapper</td> <td style="text-align: left;">vh-chat__chat-img-wrapper</td> </tr> <tr> <td style="text-align: left;">msg-content_chat-img</td> <td style="text-align: left;">vh-chat__chat-img</td> </tr> </tbody> </table>

页面列表

ITEM_HTML