| /** | 
|   | 
|  @Name:layuiAdmin 用户登入和注册等 | 
|  @Author:贤心 | 
|  @Site:http://www.layui.com/admin/ | 
|  @License: LPPL | 
|      | 
|  */ | 
|   | 
| layui.define(['index', 'layim'], function(exports){ | 
|   var $ = layui.$ | 
|   ,admin = layui.admin | 
|   ,element = layui.element | 
|   ,router = layui.router(); | 
|   | 
|    | 
|   var layim = layui.layim; | 
|    | 
|   //演示自动回复 | 
|   var autoReplay = [ | 
|     '您好,我现在有事不在,一会再和您联系。',  | 
|     '你没发错吧?face[微笑] ', | 
|     '洗澡中,请勿打扰,偷窥请购票,个体四十,团体八折,订票电话:一般人我不告诉他!face[哈哈] ', | 
|     '你好,我是主人的美女秘书,有什么事就跟我说吧,等他回来我会转告他的。face[心] face[心] face[心] ', | 
|     'face[威武] face[威武] face[威武] face[威武] ', | 
|     '<(@ ̄︶ ̄@)>', | 
|     '你要和我说话?你真的要和我说话?你确定自己想说吗?你一定非说不可吗?那你说吧,这是自动回复。', | 
|     'face[黑线]  你慢慢说,别急……', | 
|     '(*^__^*) face[嘻嘻] ,是贤心吗?' | 
|   ]; | 
|    | 
|   //基础配置 | 
|   layim.config({ | 
|     //初始化接口 | 
|     init: { | 
|       url: layui.setter.base + 'json/layim/getList.js' | 
|       ,data: {} | 
|     } | 
|     //查看群员接口 | 
|     ,members: { | 
|       url: layui.setter.base + 'json/layim/getMembers.js' | 
|       ,data: {} | 
|     } | 
|      | 
|     ,uploadImage: { | 
|       url: '' //(返回的数据格式见下文) | 
|       ,type: '' //默认post | 
|     } | 
|     ,uploadFile: { | 
|       url: '' //(返回的数据格式见下文) | 
|       ,type: '' //默认post | 
|     } | 
|      | 
|     ,isAudio: true //开启聊天工具栏音频 | 
|     ,isVideo: true //开启聊天工具栏视频 | 
|      | 
|     //扩展工具栏 | 
|     ,tool: [{ | 
|       alias: 'code' | 
|       ,title: '代码' | 
|       ,icon: '' | 
|     }] | 
|      | 
|     //,brief: true //是否简约模式(若开启则不显示主面板) | 
|      | 
|     //,title: 'WebIM' //自定义主面板最小化时的标题 | 
|     //,right: '100px' //主面板相对浏览器右侧距离 | 
|     //,minRight: '90px' //聊天面板最小化时相对浏览器右侧距离 | 
|     ,initSkin: '3.jpg' //1-5 设置初始背景 | 
|     //,skin: ['aaa.jpg'] //新增皮肤 | 
|     //,isfriend: false //是否开启好友 | 
|     //,isgroup: false //是否开启群组 | 
|     //,min: true //是否始终最小化主面板,默认false | 
|     //,notice: true //是否开启桌面消息提醒,默认false | 
|     //,voice: false //声音提醒,默认开启,声音文件为:default.mp3 | 
|      | 
|     ,msgbox: '/layim/demo/msgbox.html' //消息盒子页面地址,若不开启,剔除该项即可 | 
|     ,find: '/layim/demo/find.html' //发现页面地址,若不开启,剔除该项即可 | 
|     ,chatLog: '/layim/demo/chatlog.html' //聊天记录页面地址,若不开启,剔除该项即可 | 
|      | 
|   }); | 
|   //监听在线状态的切换事件 | 
|   layim.on('online', function(status){ | 
|     layer.msg(status); | 
|   }); | 
|    | 
|   //监听签名修改 | 
|   layim.on('sign', function(value){ | 
|     layer.msg(value); | 
|   }); | 
|   //监听自定义工具栏点击,以添加代码为例 | 
|   layim.on('tool(code)', function(insert){ | 
|     layer.prompt({ | 
|       title: '插入代码 - 工具栏扩展示例' | 
|       ,formType: 2 | 
|       ,shade: 0 | 
|     }, function(text, index){ | 
|       layer.close(index); | 
|       insert('[pre class=layui-code]' + text + '[/pre]'); //将内容插入到编辑器 | 
|     }); | 
|   }); | 
|    | 
|   //监听layim建立就绪 | 
|   layim.on('ready', function(res){ | 
|     //console.log(res.mine); | 
|     layim.msgbox(5); //模拟消息盒子有新消息,实际使用时,一般是动态获得 | 
|   }); | 
|   //监听发送消息 | 
|   layim.on('sendMessage', function(data){ | 
|     var To = data.to; | 
|     //console.log(data); | 
|      | 
|     if(To.type === 'friend'){ | 
|       layim.setChatStatus('<span style="color:#FF5722;">对方正在输入。。。</span>'); | 
|     } | 
|      | 
|     //演示自动回复 | 
|     setTimeout(function(){ | 
|       var obj = {}; | 
|       if(To.type === 'group'){ | 
|         obj = { | 
|           username: '模拟群员'+(Math.random()*100|0) | 
|           ,avatar: layui.cache.dir + 'images/face/'+ (Math.random()*72|0) + '.gif' | 
|           ,id: To.id | 
|           ,type: To.type | 
|           ,content: autoReplay[Math.random()*9|0] | 
|         } | 
|       } else { | 
|         obj = { | 
|           username: To.name | 
|           ,avatar: To.avatar | 
|           ,id: To.id | 
|           ,type: To.type | 
|           ,content: autoReplay[Math.random()*9|0] | 
|         } | 
|         layim.setChatStatus('<span style="color:#FF5722;">在线</span>'); | 
|       } | 
|       layim.getMessage(obj); | 
|     }, 1000); | 
|   }); | 
|   //监听查看群员 | 
|   layim.on('members', function(data){ | 
|     //console.log(data); | 
|   }); | 
|    | 
|   //监听聊天窗口的切换 | 
|   layim.on('chatChange', function(res){ | 
|     var type = res.data.type; | 
|     console.log(res.data.id) | 
|     if(type === 'friend'){ | 
|       //模拟标注好友状态 | 
|       //layim.setChatStatus('<span style="color:#FF5722;">在线</span>'); | 
|     } else if(type === 'group'){ | 
|       //模拟系统消息 | 
|       layim.getMessage({ | 
|         system: true | 
|         ,id: res.data.id | 
|         ,type: "group" | 
|         ,content: '模拟群员'+(Math.random()*100|0) + '加入群聊' | 
|       }); | 
|     } | 
|   }); | 
|    | 
|    | 
|   //面板外的操作 | 
|   var $ = layui.jquery, active = { | 
|     chat: function(){ | 
|       //自定义会话 | 
|       layim.chat({ | 
|         name: '小闲' | 
|         ,type: 'friend' | 
|         ,avatar: '//tva3.sinaimg.cn/crop.0.0.180.180.180/7f5f6861jw1e8qgp5bmzyj2050050aa8.jpg' | 
|         ,id: 1008612 | 
|       }); | 
|       layer.msg('也就是说,此人可以不在好友面板里'); | 
|     } | 
|     ,message: function(){ | 
|       //制造好友消息 | 
|       layim.getMessage({ | 
|         username: "贤心" | 
|         ,avatar: "//tp1.sinaimg.cn/1571889140/180/40030060651/1" | 
|         ,id: "100001" | 
|         ,type: "friend" | 
|         ,content: "嗨,你好!欢迎体验LayIM。演示标记:"+ new Date().getTime() | 
|         ,timestamp: new Date().getTime() | 
|       }); | 
|     } | 
|     ,messageAudio: function(){ | 
|       //接受音频消息 | 
|       layim.getMessage({ | 
|         username: "林心如" | 
|         ,avatar: "//tp3.sinaimg.cn/1223762662/180/5741707953/0" | 
|         ,id: "76543" | 
|         ,type: "friend" | 
|         ,content: "audio[http://gddx.sc.chinaz.com/Files/DownLoad/sound1/201510/6473.mp3]" | 
|         ,timestamp: new Date().getTime() | 
|       }); | 
|     } | 
|     ,messageVideo: function(){ | 
|       //接受视频消息 | 
|       layim.getMessage({ | 
|         username: "林心如" | 
|         ,avatar: "//tp3.sinaimg.cn/1223762662/180/5741707953/0" | 
|         ,id: "76543" | 
|         ,type: "friend" | 
|         ,content: "video[http://www.w3school.com.cn//i/movie.ogg]" | 
|         ,timestamp: new Date().getTime() | 
|       }); | 
|     } | 
|     ,messageTemp: function(){ | 
|       //接受临时会话消息 | 
|       layim.getMessage({ | 
|         username: "小酱" | 
|         ,avatar: "//tva1.sinaimg.cn/crop.7.0.736.736.50/bd986d61jw8f5x8bqtp00j20ku0kgabx.jpg" | 
|         ,id: "198909151014" | 
|         ,type: "friend" | 
|         ,content: "临时:"+ new Date().getTime() | 
|       }); | 
|     } | 
|     ,add: function(){ | 
|       //实际使用时数据由动态获得 | 
|       layim.add({ | 
|         type: 'friend' | 
|         ,username: '麻花疼' | 
|         ,avatar: '//tva1.sinaimg.cn/crop.0.0.720.720.180/005JKVuPjw8ers4osyzhaj30k00k075e.jpg' | 
|         ,submit: function(group, remark, index){ | 
|           layer.msg('好友申请已发送,请等待对方确认', { | 
|             icon: 1 | 
|             ,shade: 0.5 | 
|           }, function(){ | 
|             layer.close(index); | 
|           }); | 
|            | 
|           //通知对方 | 
|           /* | 
|           $.post('/im-applyFriend/', { | 
|             uid: info.uid | 
|             ,from_group: group | 
|             ,remark: remark | 
|           }, function(res){ | 
|             if(res.status != 0){ | 
|               return layer.msg(res.msg); | 
|             } | 
|             layer.msg('好友申请已发送,请等待对方确认', { | 
|               icon: 1 | 
|               ,shade: 0.5 | 
|             }, function(){ | 
|               layer.close(index); | 
|             }); | 
|           }); | 
|           */ | 
|         } | 
|       }); | 
|     } | 
|     ,addqun: function(){ | 
|       layim.add({ | 
|         type: 'group' | 
|         ,username: 'LayIM会员群' | 
|         ,avatar: '//tva2.sinaimg.cn/crop.0.0.180.180.50/6ddfa27bjw1e8qgp5bmzyj2050050aa8.jpg' | 
|         ,submit: function(group, remark, index){ | 
|           layer.msg('申请已发送,请等待管理员确认', { | 
|             icon: 1 | 
|             ,shade: 0.5 | 
|           }, function(){ | 
|             layer.close(index); | 
|           }); | 
|            | 
|           //通知对方 | 
|           /* | 
|           $.post('/im-applyGroup/', { | 
|             uid: info.uid | 
|             ,from_group: group | 
|             ,remark: remark | 
|           }, function(res){ | 
|            | 
|           }); | 
|           */ | 
|         } | 
|       }); | 
|     } | 
|     ,addFriend: function(){ | 
|       var user = { | 
|         type: 'friend' | 
|         ,id: 1234560 | 
|         ,username: '李彦宏' //好友昵称,若申请加群,参数为:groupname | 
|         ,avatar: '//tva4.sinaimg.cn/crop.0.0.996.996.180/8b2b4e23jw8f14vkwwrmjj20ro0rpjsq.jpg' //头像 | 
|         ,sign: '全球最大的中文搜索引擎' | 
|       } | 
|       layim.setFriendGroup({ | 
|         type: user.type | 
|         ,username: user.username | 
|         ,avatar: user.avatar | 
|         ,group: layim.cache().friend //获取好友列表数据 | 
|         ,submit: function(group, index){ | 
|           //一般在此执行Ajax和WS,以通知对方已经同意申请 | 
|           //…… | 
|            | 
|           //同意后,将好友追加到主面板 | 
|           layim.addList({ | 
|             type: user.type | 
|             ,username: user.username | 
|             ,avatar: user.avatar | 
|             ,groupid: group //所在的分组id | 
|             ,id: user.id //好友ID | 
|             ,sign: user.sign //好友签名 | 
|           }); | 
|            | 
|           layer.close(index); | 
|         } | 
|       }); | 
|     } | 
|     ,addGroup: function(){ | 
|       layer.msg('已成功把[Angular开发]添加到群组里', { | 
|         icon: 1 | 
|       }); | 
|       //增加一个群组 | 
|       layim.addList({ | 
|         type: 'group' | 
|         ,avatar: "//tva3.sinaimg.cn/crop.64.106.361.361.50/7181dbb3jw8evfbtem8edj20ci0dpq3a.jpg" | 
|         ,groupname: 'Angular开发' | 
|         ,id: "12333333" | 
|         ,members: 0 | 
|       }); | 
|     } | 
|     ,removeFriend: function(){ | 
|       layer.msg('已成功删除[凤姐]', { | 
|         icon: 1 | 
|       }); | 
|       //删除一个好友 | 
|       layim.removeList({ | 
|         id: 121286 | 
|         ,type: 'friend' | 
|       }); | 
|     } | 
|     ,removeGroup: function(){ | 
|       layer.msg('已成功删除[前端群]', { | 
|         icon: 1 | 
|       }); | 
|       //删除一个群组 | 
|       layim.removeList({ | 
|         id: 101 | 
|         ,type: 'group' | 
|       }); | 
|     } | 
|     //置灰离线好友 | 
|     ,setGray: function(){ | 
|       layim.setFriendStatus(168168, 'offline'); | 
|        | 
|       layer.msg('已成功将好友[马小云]置灰', { | 
|         icon: 1 | 
|       }); | 
|     } | 
|     //取消好友置灰 | 
|     ,unGray: function(){ | 
|       layim.setFriendStatus(168168, 'online'); | 
|        | 
|       layer.msg('成功取消好友[马小云]置灰状态', { | 
|         icon: 1 | 
|       }); | 
|     } | 
|      | 
|     ,kefu1: function(){ | 
|       layim.chat({ | 
|         name: '在线客服一' //名称 | 
|         ,type: 'kefu' //聊天类型 | 
|         ,avatar: '//tp1.sinaimg.cn/5619439268/180/40030060651/1' //头像 | 
|         ,id: 1111111 //定义唯一的id方便你处理信息 | 
|       }) | 
|     } | 
|     ,kefu2: function(){ | 
|       layim.chat({ | 
|         name: '在线客服二' //名称 | 
|         ,type: 'kefu' //聊天类型 | 
|         ,avatar: '//tp1.sinaimg.cn/5619439268/180/40030060651/1' //头像 | 
|         ,id: 2222222 //定义唯一的id方便你处理信息 | 
|       }); | 
|     } | 
|      | 
|     //移动端版本 | 
|     ,mobile: function(){ | 
|       var device = layui.device(); | 
|       var mobileHome = '/layim/demo/mobile.html'; | 
|       if(device.android || device.ios){ | 
|         return location.href = mobileHome; | 
|       } | 
|       var index = layer.open({ | 
|         type: 2 | 
|         ,title: '移动版演示 (或手机扫右侧二维码预览)' | 
|         ,content: mobileHome | 
|         ,area: ['375px', '667px'] | 
|         ,shadeClose: true | 
|         ,shade: 0.8 | 
|         ,end: function(){ | 
|           layer.close(index + 2); | 
|         } | 
|       }); | 
|       layer.photos({ | 
|         photos: { | 
|           "data": [{ | 
|             "src": "http://cdn.layui.com/upload/2016_12/168_1481056358469_50288.png", | 
|           }] | 
|         } | 
|         ,anim: 0 | 
|         ,shade: false | 
|         ,success: function(layero){ | 
|           layero.css('margin-left', '350px'); | 
|         } | 
|       }); | 
|     } | 
|   }; | 
|   $('.LAY-senior-im-chat-demo .layui-btn').on('click', function(){ | 
|     var type = $(this).data('type'); | 
|     active[type] ? active[type].call(this) : ''; | 
|   }); | 
|    | 
|    | 
|   exports('im', {}); | 
| }); |