# vue-mchat **Repository Path**: tanh-coding/vue-mchat ## Basic Information - **Project Name**: vue-mchat - **Description**: 这是一款基于vue与elementu-ui开发的聊天室组件库,在UI上模仿了TIM及微信。在提供基础封装的同时,最大程度的增加扩展性。 - **Primary Language**: JavaScript - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 215 - **Created**: 2021-02-22 - **Last Updated**: 2021-02-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
参数 | 类型 | 默认值 | 说明 |
---|---|---|---|
rightBox | false | boolean | 是否有右侧抽屉,如果为true,则右侧面板显示,可以加入自定义组件 |
brief | true | boolean | 是否开启简约模式,Chat可以被缩小 |
notice | false | boolean | 是否开启桌面消息提醒,即在浏览器之外的提醒 |
voice | false | boolean | 是否开启消息提醒 |
参数 | 默认值 | 类型 | 说明 |
---|---|---|---|
id | 10001 | string/number | 我的id |
username | july-meteor | string | 我的昵称 |
sign | 与其感慨路难行,不如马上出发! | string | 签名 |
avatar | '/avatar/avatar_meteor.png' | url | 头像 |
data | 你需要的数据 | object | 扩展数据 |
参数 | 类型 | 默认值 | 说明 |
---|---|---|---|
id | 10002 | string/number | 会话id |
name | 海喵突基队 | string | 会话名称 |
type | group | string | 会话类型 group/friend 根据你的需要自行扩展 |
avatar | /images/group_1.jpg | url | 会话头像 |
online | true | boolean | type类型为friend |
类型 | 格式 | 说明 | 参考值 |
---|---|---|---|
Text | ---- | 普通文字信息 | hello july meteor |
emoji | emoji[url] | 表情 | emoji[汗] |
Audio | audio[url] | 视频消息 | audio[https://www.w3school.com.cn/i/horse.mp3] |
Video | video[url] | 音频 | video[https://www.w3school.com.cn/i/movie.mp4] |
Image | img[url] | 图片类型 | img[/emoticon/emoticon_1.jpg] |
方法名 | 说明 | 参数 |
---|---|---|
chatEvent | 操作会话框触发,返回事件类型及窗口信息。具体事件看下表1 | event,data |
talkEvent | 当你点击对话内容返回对话信息触发 (已经弃用) | user,message |
sendMessage | 每当你发送一个消息,都可以通过该事件监听到。 回调参数接受一个object类型的值,携带发送的聊天信息 | message |
loadHistory | 点击查看更多信息后触发,会返回一个回调方法 | callback() |
getMessage | 监听接受的消息 | user,message |
uploadEvent | 文件上传接口 | data,callback(回调函数) |
事件名称 | 说明 | 参数 |
---|---|---|
chatTop | 会话置顶 | { id: 会话id, name: 会话名称 ,type: 会话类型 } |
chatMin | 窗口最小化 | { id: 会话id, name: 会话名称 ,type: 会话类型 } |
chatMax | 窗口最大化 | { id: 会话id, name: 会话名称 ,type: 会话类型 } |
removeChat | 移除对话框 | { id: 会话id, name: 会话名称 ,type: 会话类型 } |
clickUser | 当你点击聊天框内用户头像 | {id: 用户Id, mine: 是否是自己 , username:用户名称 } |
事件名称 | 说明 | 回调参数/使用方法 |
---|---|---|
getMessage | 监听接受的消息 | 参考下方示例1 |
getCurrent | 获取当前会话 | Objectg |
示例1
let message = { //消息来源用户名 username: '七月' //消息来源用户头像 avatar: avatar, //消息的来源ID(如果是私聊,则是用户id,如果是群聊,则是群组id) id: 1001, //聊天窗口来源类型,从发送消息传递的to里面获取 type: 'group', //消息内容 请看 Attributes 中的content说明 content:'你好', //消息id,可不传。除非你要对消息进行一些操作(如撤回) cid: 0, //是否我发送的消息,如果为true,则会显示在右方 mine: true, //消息的发送者id(比如群组中的某个消息发送者),可用于自动解决浏览器多窗口时的一些问题 fromid: 10002, //服务端时间戳毫秒数。注意:如果你返回的是标准的 unix 时间戳,记得要 *1000 timestamp: new date(), }; // 方法一、 通过内置MChat的event 随时随地引用 this.$im.emit("getMessage", message); // 方法二、 this.$refs[MChatname].getMessage(message)
参数 | 类型 | 默认值 | 说明 |
---|
参数 | 默认值 | 类型 | 说明 |
---|---|---|---|
id | 10001 | string/number | 我的id |
username | july-meteor | string | 我的昵称 |
sign | 与其感慨路难行,不如马上出发! | string | 签名 |
avatar | '/avatar/avatar_meteor.png' | url | 头像 |
data | 你需要的数据 | object | 扩展数据 |
参数 | 默认值 | 类型 | 说明 |
---|---|---|---|
id | 10001 | string/number | 群组Id |
name | 小小甜心 | string | 群组名称 |
mine | null | string | 当前人在群组里的昵称 |
avatar | '/avatar/avatar_meteor.png' | url | 头像 |
sign | 8月22日 17:44 | string | 最后发言时间 |
introduce | 这里是共同进步 | string | 群介绍 |
userList | [{ id: 1, cid: 123401, name: "怜", remark: '剑圣', online: false, avatar: require("../public/avatar/lian.png"), sign: "继续下去的话优衣会生气的。" }] |
object | 成员数组,online 表示是否在线 |
参数 | 默认值 | 类型 | 说明 |
---|---|---|---|
id | 10001 | string/number | 好友分组Id |
name | 好友 | string | 分组名称 |
userList | [ { id: 1, cid: 123401, name: "怜", remark: '剑圣', online: true, avatar: require("../public/avatar/lian.png"), sign: "继续下去的话优衣会生气的。" },] |
object | 分组成员,online 表示是否在线 |
参数 | 默认值 | 类型 | 说明 |
---|---|---|---|
id | null | string/number | 消息Id |
message | null | string | 消息内容 |
timestamp | null | string | 时间戳 |
from | { id: 0, name: '真琴', avatar: require("../public/avatar/zhenqin.png"), }, |
Object | 发送人 |
to | { id: 0, name: '真琴', avatar: require("../public/avatar/zhenqin.png"), }, |
Object | 发送目标人 |
type | null | string | 消息类型包含以下几张类型{ 'applyFriend':'申请好友', 'acceptFriend':'接受好友申请', 'rejectFriend':'拒接好友申请', 'accept':'被拒接好友申请', 'reject':'被拒接好友申请', 'system':'系统消息'} |
方法名 | 说明 | 参数 |
---|---|---|
chatEvent | 操作会话框触发,返回事件类型及窗口信息。具体事件看下表1 | event,data |
talkEvent | 当你点击对话内容返回对话信息触发 (已经弃用) | user,message |
sendMessage | 每当你发送一个消息,都可以通过该事件监听到。 回调参数接受一个object类型的值,携带发送的聊天信息 | message |
loadHistory | 点击查看更多信息后触发,会返回一个回调方法 | callback() |
getMessage | 监听接受的消息 | user,message |
uploadEvent | 文件上传接口 | data,callback(回调函数) |
参数 | 类型 | 默认值 | 说明 |
---|---|---|---|
notices | array | id, type, title | 群公告栏 |
userList | array | id, name,type, avatar | 成员信息 |
filter-user-method | Function(value, data) | — | 对成员节点进行筛选时执行的方法,返回 true 表示这个节点可以显示,返回 false 则表示这个节点会被隐藏 |
方法名 | 说明 | 参数 |
---|---|---|
click | 点击群公告,或者成员触发 | event |