# vue-mchat **Repository Path**: php-worker/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**: 2020-12-27 - **Last Updated**: 2020-12-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README
MChat| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| 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 | 点击查看更多信息后触发,会返回一个回调方法 | funcation() |
| getMessage | 监听接受的消息 | user,message |
| 事件名称 | 说明 | 参数 |
|---|---|---|
| chatTop | 会话置顶 | { id: 会话id, name: 会话名称 ,type: 会话类型 } |
| chatTop | 会话置顶 | 窗口信息 |
| clickTalk | 当你点击对话内容返回对话信息触发 | 对话内容 |
| 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)
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| notices | array | id, type, title | 群公告栏 |
| userList | array | id, name,type, avatar | 成员信息 |
| filter-user-method | Function(value, data) | — | 对成员节点进行筛选时执行的方法,返回 true 表示这个节点可以显示,返回 false 则表示这个节点会被隐藏 |
| 方法名 | 说明 | 参数 |
|---|---|---|
| click | 点击群公告,或者成员触发 | event |