1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- Data
- # 联系人数据
- contact:{
- // 联系人唯一ID
- id: "1",
- // 名字
- displayName: "范佳奕",
- // 头像
- avatar:
- "https://ss3.bdstatic.com/70cFv8Sh_Q1YnxGkpoWK1HF6hhy/it/u=4259300811,497831842&fm=26&gp=0.jpg",
- // 类型 single | many
- type: "single",
- // 联系人索引, 默认按照 localeCompare 排序, 指定顺序 '[1]群组'
- index: "B",
- // 最近一条消息
- message: {
- // 未读数量 , true 显示红点
- unread: 0,
- // 发送时间
- sendTime: 1,
- // 内容
- content: "2",
- // 类型 voice | file | video | image | text
- type: "image"
- }
- }
- # 消息数据
- message:{
- // 消息唯一ID
- id: "123",
- // 消息状态 going | succeed | failed
- status: "succeed",
- // 消息类型 voice | file | video | image | text
- type: "image",
- // 发送时间
- sendTime: 12312312312,
- // 消息内容 | 消息链接
- content: "asdas",
- // 接收方 ID 单人聊天(联系人ID) | 多人聊天(群ID)
- toContactId: "123",
- // type = file 文件大小
- fileSize: 1231,
- // type = file 文件名称
- fileName: 'asdasd.doc'
- // 发送消息的联系人
- fromUser: { id: "123", displayName: "123", avatar: "123", type: "single" }
- }
- # 左侧按钮配置
- menu:[{
- # 指定 menu 唯一名称,保留字段 contacts(通讯录) lastMessages(最近消息)
- name: "123",
- # 鼠标停留显示文字
- title: "通讯录",
- # 标记未读数, 数字显示具体值, true 显示红点
- unread: 0,
- # 按钮的DOM元素
- render: menu => {
- return <span>T</span>;
- },
- # 点击按钮打开的页面,如果 name 为保留字段,该属性失效
- renderContainer: () => {
- return <lemon-contact contact={this.lastMessages[0]} />;
- },
- # 按钮点击事件,会阻止默认的行为,调用 next() 进入下一步
- click: next => {
- next();
- },
- # 是否为底部按钮
- isBottom: false
- }]
- emoji:[{
- label: "表情",
- children: [
- {
- name: "1f600",
- title: "微笑",
- src: "https://twemoji.maxcdn.com/2/72x72/1f600.png"
- },
- ]
- }]
- Methods
- # 初始化左侧 menu 数据
- initMenus(data:[menu])
- # 初始化联系人数据
- initContacts(data:[contact])
- # 修改联系人数据
- updateContact(contactId:联系人ID,data:联系人数据,会与现有的数据合并)
- # 切换 menu
- changeMenu(menuName)
- # 打开一个聊天窗口 传入 contactId 或 contact(如果当前不存在这个联系人,根据此数据新建一个)
- openMessage(contactId | contact)
|