UNPKG

@tanzhenxing/zx-list-chat

Version:

一个基于 uni-app、Vue3 <script setup> 语法开发的高兼容性聊天列表项组件,适配 H5、小程序、App。可嵌入于 zx-list 组件中,支持头像、群头像、角标、时间、草稿、跳转等功能,适合自定义各类聊天/会话列表场景。

85 lines (73 loc) 3.56 kB
# zx-list-chat 聊天列表项组件 一个基于 uni-app、Vue3 <script setup> 语法开发的高兼容性聊天列表项组件,适配 H5、小程序、App。可嵌入于 zx-list 组件中,支持头像、群头像、角标、时间、草稿、跳转等功能,适合自定义各类聊天/会话列表场景。 ## ✨ 组件特性 - 支持多端(H5、App、各类小程序) - 可插入 zx-list 作为聊天项 - 支持单人/群头像、角标、时间、草稿、跳转等 - 事件丰富,便于扩展 - 不依赖浏览器特有 DOM - 使用 Vue3 <script setup> 语法 ## 📦 属性(Props) | 属性名 | 类型 | 默认值 | 说明 | |----------------|----------------|----------|------------------------------| | title | String | '' | 标题 | | note | String | '' | 描述/最后一条消息 | | clickable | Boolean | false | 是否开启点击反馈 | | link | Boolean/String | false | 是否跳转/跳转类型 | | to | String | '' | 跳转目标页面 | | badgeText | String/Number | '' | 角标内容/未读数/dot | | badgePositon | String | 'right' | 角标位置 left/right | | time | String | '' | 右侧时间 | | avatarCircle | Boolean | false | 是否圆形头像 | | avatar | String | '' | 头像地址 | | avatarList | Array | [] | 群头像组([{url:''}]) | ## 🧲 事件(Events) | 事件名 | 说明 | 回调参数 | |----------------|----------------|----------| | click | 点击项时触发 | {data} | ## 🧩 插槽(Slots) - header:自定义头像右侧内容 - 默认插槽:自定义右侧内容(如时间、角标等) ## 🛠️ 平台兼容性 - H5 - App(iOS/Android) - 微信/支付宝/百度/抖音/QQ/快手等主流小程序 ## 🚀 基础用法 ```vue <template> <zx-list> <zx-list-chat title="张三" note="你好" time="12:00" avatar="https://cdn.uviewui.com/uview/common/logo.png" /> <zx-list-chat title="群聊" note="[草稿]hello" :avatar-list="groupAvatars" /> <zx-list-chat title="未读" note="新消息" badge-text="8" clickable @click="onChatClick" /> </zx-list> </template> <script setup> import zxList from '@/components/zx-list/zx-list.vue' import zxListChat from '@/components/zx-list-chat/zx-list-chat.vue' const groupAvatars = [ { url: 'https://cdn.uviewui.com/uview/common/logo.png' }, { url: 'https://cdn.uviewui.com/uview/common/logo.png' } ] function onChatClick(e) { // 处理点击 } </script> ``` ## 🌈 插槽自定义内容 ```vue <zx-list-chat title="自定义右侧"> <template #default> <text>自定义内容</text> </template> </zx-list-chat> ``` ## 🎯 跳转用法 ```vue <zx-list-chat title="跳转会话" link="navigateTo" to="/pages/chat/detail" clickable /> ``` ## 💡 注意事项 - 需配合 zx-list 组件使用,便于统一列表风格。 - 组件已使用 <script setup> 语法,推荐配合 Vue3/uni-app3 项目使用。 - nvue 平台下部分属性/事件才生效,详见 uni-app 官方文档。 --- 如需更复杂的聊天项样式,建议配合自定义插槽或样式扩展。