6 lines
39 KiB
JavaScript
6 lines
39 KiB
JavaScript
|
|
/** layui-v2.2.5 MIT License By https://www.layui.com */
|
||
|
|
; layui.define(["layer", "laytpl", "upload"], function (i) {
|
||
|
|
var a = "3.7.6", e = layui.$, t = layui.layer, n = layui.laytpl, l = layui.device(), s = "layui-show", o = "layim-this", d = 20, r = {}, c = function () { this.v = a, e("body").on("click", "*[layim-event]", function (i) { var a = e(this), t = a.attr("layim-event"); ti[t] ? ti[t].call(this, a, i) : "" }) }; c.prototype.config = function (i) { var a = []; if (layui.each(Array(5), function (i) { a.push(layui.cache.dir + "css/modules/layim/skin/" + (i + 1) + ".jpg") }), i = i || {}, i.skin = i.skin || [], layui.each(i.skin, function (i, e) { a.unshift(e) }), i.skin = a, i = e.extend({ isfriend: !0, isgroup: !0, voice: "default.mp3" }, i), window.JSON && window.JSON.parse) return H(i), this }, c.prototype.on = function (i, a) { return "function" == typeof a && (r[i] ? r[i].push(a) : r[i] = [a]), this }, c.prototype.cache = function () { return j }, c.prototype.chat = function (i) { if (window.JSON && window.JSON.parse) return z(i), this }, c.prototype.setChatMin = function () { return N(), this }, c.prototype.setChatStatus = function (i) { var a = _(); if (a) { var e = a.elem.find(".layim-chat-status"); return e.html(i), this } }, c.prototype.getMessage = function (i) { return K(i), this }, c.prototype.notice = function (i) { return J(i), this }, c.prototype.add = function (i) { return M(i), this }, c.prototype.setFriendGroup = function (i) { return M(i, "setGroup"), this }, c.prototype.msgbox = function (i) { return V(i), this }, c.prototype.addList = function (i) { return P(i), this }, c.prototype.removeList = function (i) { return W(i), this }, c.prototype.setFriendStatus = function (i, a) { var t = e(".layim-friend" + i); t["online" === a ? "removeClass" : "addClass"]("layim-list-gray") }, c.prototype.content = function (i) { return layui.data.content(i) }; var u = function (i) { var a = { friend: "该分组下暂无好友", group: "暂无群组", history: "暂无历史会话" }; return i = i || {}, i.item = i.item || "d." + i.type, ["{{# var length = 0; layui.each(" + i.item + ", function(i, data){ length++; }}", '<li layim-event="chat" data-type="' + i.type + '" data-index="{{ ' + (i.index || "i") + ' }}" class="layim-' + ("history" === i.type ? "{{i}}" : i.type + "{{data.id}}") + ' {{ data.status === "offline" ? "layim-list-gray" : "" }}"><img src="{{ data.avatar }}"><span>{{ data.username||data.groupname||data.name||"佚名" }}</span><p>{{ data.remark||data.sign||"" }}</p></li>', "{{# }); if(length === 0){ }}", '<li class="layim-null">' + (a[i.type] || "暂无数据") + "</li>", "{{# } }}"].join("") }, y = ['<div class="layui-layim-main">', '<div class="layui-layim-info">', '<div class="layui-layim-user">{{ d.mine.username }}</div>', '<div class="layui-layim-status">', '{{# if(d.mine.status === "online"){ }}', '<span class="layui-icon layim-status-online" layim-event="status" lay-type="show"></span>', '{{# } else if(d.mine.status === "hide") { }}', '<span class="layui-icon layim-status-hide" layim-event="status" lay-type="show"></span>', "{{# } }}", '<ul class="layui-anim layim-menu-box">', '<li {{d.mine.status === "online" ? "class=layim-this" : ""}} layim-event="status" lay-type="online"><i class="layui-icon"></i><cite class="layui-icon layim-status-online"></cite>在线</li>', '<li {{d.mine.status === "hide" ? "class=layim-this" : ""}} layim-event="status" lay-type="hide"><i class="layui-icon"></i><cite class="layui-icon layim-status-hide"></cite>隐身</li>', "</ul>", "</div>", '<input class="layui-layim-remark" placeholder="编辑签名" value="{{ d.mine.remark||d.mine.sign||"" }}">', "</div>", '<ul class="layui-unselect layui-layim-tab{{# if(!d.base.isfriend || !d.base.isgroup){ }}', " layim-tab-two", '{{# } }}">', '<li class="layui-icon', "{{# if(!d.base.isfriend){ }}", " layim-hide", "{{# } else { }}", " layim-this", "{{# } }}", '" title="联系人" layim-event="tab" lay-type="friend"></li>', '<li class="layui-icon', "{{# if(!d.base.isgroup){ }}", " layim-hide", "{{# } else if(!d.base.isfriend) { }}", " layim-this", "{{# } }}", '" title="群组" layi
|
||
|
|
status: function (i, a) { var t = function () { i.next().hide().removeClass(ei) }, n = i.attr("lay-type"); if ("show" === n) ii(a), i.next().show().addClass(ei), e(document).off("click", t).on("click", t); else { var l = i.parent().prev(); i.addClass(o).siblings().removeClass(o), l.html(i.find("cite").html()), l.removeClass("layim-status-" + ("online" === n ? "hide" : "online")).addClass("layim-status-" + n), layui.each(r.online, function (i, a) { a && a(n) }) } }, sign: function () { var i = x.find(".layui-layim-remark"); i.on("change", function () { var i = this.value; layui.each(r.sign, function (a, e) { e && e(i) }) }), i.on("keyup", function (i) { var a = i.keyCode; 13 === a && this.blur() }) }, tab: function (i) { var a, e = ".layim-tab-content", t = x.find(".layui-layim-tab>li"); "number" == typeof i ? (a = i, i = t.eq(a)) : a = i.index(), a > 2 ? t.removeClass(o) : (ti.tab.index = a, i.addClass(o).siblings().removeClass(o)), x.find(e).eq(a).addClass(s).siblings(e).removeClass(s) }, spread: function (i) { var a = i.attr("lay-type"), e = "true" === a ? "false" : "true", t = layui.data("layim")[j.mine.id] || {}; i.next()["true" === a ? "removeClass" : "addClass"](s), t["spread" + i.parent().index()] = e, layui.data("layim", { key: j.mine.id, value: t }), i.attr("lay-type", e), i.find(".layui-icon").html("true" === e ? "" : "") }, search: function (i) { var a = x.find(".layui-layim-search"), e = x.find("#layui-layim-search"), t = a.find("input"), n = function (i) { var a = t.val().replace(/\s/); if ("" === a) ti.tab(0 | ti.tab.index); else { for (var n = [], l = j.friend || [], s = j.group || [], o = "", d = 0; d < l.length; d++) for (var r = 0; r < (l[d].list || []).length; r++) l[d].list[r].username.indexOf(a) !== -1 && (l[d].list[r].type = "friend", l[d].list[r].index = d, l[d].list[r].list = r, n.push(l[d].list[r])); for (var c = 0; c < s.length; c++) s[c].groupname.indexOf(a) !== -1 && (s[c].type = "group", s[c].index = c, s[c].list = c, n.push(s[c])); if (n.length > 0) for (var u = 0; u < n.length; u++) o += '<li layim-event="chat" data-type="' + n[u].type + '" data-index="' + n[u].index + '" data-list="' + n[u].list + '"><img src="' + n[u].avatar + '"><span>' + (n[u].username || n[u].groupname || "佚名") + "</span><p>" + (n[u].remark || n[u].sign || "") + "</p></li>"; else o = '<li class="layim-null">无搜索结果</li>'; e.html(o), ti.tab(3) } }; !j.base.isfriend && j.base.isgroup ? ti.tab.index = 1 : j.base.isfriend || j.base.isgroup || (ti.tab.index = 2), a.show(), t.focus(), t.off("keyup", n).on("keyup", n) }, closeSearch: function (i) { i.parent().hide(), ti.tab(0 | ti.tab.index) }, msgbox: function () { var i = x.find(".layim-tool-msgbox"); return t.close(ti.msgbox.index), i.find("span").removeClass(Y).html(""), ti.msgbox.index = t.open({ type: 2, title: "消息盒子", shade: !1, maxmin: !0, area: ["600px", "520px"], skin: "layui-box layui-layer-border", resize: !1, content: j.base.msgbox }) }, find: function () { return t.close(ti.find.index), ti.find.index = t.open({ type: 2, title: "查找", shade: !1, maxmin: !0, area: ["1000px", "520px"], skin: "layui-box layui-layer-border", resize: !1, content: j.base.find }) }, skin: function () { t.open({ type: 1, title: "更换背景", shade: !1, area: "300px", skin: "layui-box layui-layer-border", id: "layui-layim-skin", zIndex: 66666666, resize: !1, content: n(m).render({ skin: j.base.skin }) }) }, about: function () { t.alert("版本: " + a + '<br>技术支持:<a href="http://www.power-itech.cn" target="_blank">www.power-itech.cn</a>', { title: "关于", shade: !1 }) }, setSkin: function (i) { var a = i.attr("src"), e = layui.data("layim")[j.mine.id] || {}; e.skin = a, a || delete e.skin, layui.data("layim", { key: j.mine.id, value: e }); try { x.css({ "background-image": a ? "url(" + a + ")" : "none" }), w.css({ "background-image": a ? "url(" + a + ")" : "none" }) } catch (t) { } layui.each(r.setSkin, function (i, e) { var t = (a || "").replace(layui.cache.dir + "css/modules/layim/skin/", ""); e && e(t, a) }) }, chat: functi
|
||
|
|
var n = "", l = _(); for (var s in X) n += '<li title="' + s + '"><img src="' + X[s] + '"></li>'; n = '<ul class="layui-clear layim-face-list">' + n + "</ul>", ti.face.index = t.tips(n, i, { tips: 1, time: 0, fixed: !0, skin: "layui-box layui-layim-face", success: function (i) { i.find(".layim-face-list>li").on("mousedown", function (i) { ii(i) }).on("click", function () { ai(l.textarea[0], "face" + this.title + " "), t.close(ti.face.index) }) } }), e(document).off("mousedown", ti.faceHide).on("mousedown", ti.faceHide),
|
||
|
|
e(window).off("resize",ti.faceHide).on("resize",ti.faceHide),ii(a)},faceHide:function(){t.close(ti.face.index)},image:function(i){var a=i.data("type")||"images",e={images:"uploadImage",file:"uploadFile"},n=_(),l=j.base[e[a]]||{};layui.upload.render({url:l.url||"",method:l.type,elem:i.find("input")[0],accept:a,done:function(i){0==i.code?(i.data=i.data||{},"images"===a?ai(n.textarea[0],"img["+(i.data.src||"")+"]"):"file"===a&&ai(n.textarea[0],"file("+(i.data.src||"")+")["+(i.data.name||"下载文件")+"]"),D()):t.msg(i.msg||"上传失败")}})},media:function(i){var a=i.data("type"),n={audio:"音频",video:"视频"},l=_();t.prompt({title:"请输入网络"+n[a]+"地址",shade:!1,offset:[i.offset().top-e(window).scrollTop()-158+"px",i.offset().left+"px"]},function(i,e){ai(l.textarea[0],a+"["+i+"]"),D(),t.close(e)})},extend:function(i){var a=i.attr("lay-filter"),e=_();layui.each(r["tool("+a+")"],function(a,t){t&&t.call(i,function(i){ai(e.textarea[0],i)},D,e)})},playAudio:function(i){var a=i.data("audio"),e=a||document.createElement("audio"),n=function(){e.pause(),i.removeAttr("status"),i.find("i").html("")};return i.data("error")?t.msg("播放音频源异常"):e.play?void(i.attr("status")?n():(a||(e.src=i.data("src")),e.play(),i.attr("status","pause"),i.data("audio",e),i.find("i").html(""),e.onended=function(){n()},e.onerror=function(){t.msg("播放音频源异常"),i.data("error",!0),n()})):t.msg("您的浏览器不支持audio")},playVideo:function(i){var a=i.data("src"),e=document.createElement("video");return e.play?(t.close(ti.playVideo.index),void(ti.playVideo.index=t.open({type:1,title:"播放视频",area:["460px","300px"],maxmin:!0,shade:!1,content:'<div style="background-color: #000; height: 100%;"><video style="position: absolute; width: 100%; height: 100%;" src="'+a+'" loop="loop" autoplay="autoplay"></video></div>'}))):t.msg("您的浏览器不支持video")},chatLog:function(i){var a=_();return j.base.chatLog?(t.close(ti.chatLog.index),ti.chatLog.index=t.open({type:2,maxmin:!0,title:"与 "+a.data.name+" 的聊天记录",area:["450px","100%"],shade:!1,offset:"rb",skin:"layui-box",anim:2,id:"layui-layim-chatlog",content:j.base.chatLog+"?id="+a.data.id+"&type="+a.data.type})):t.msg("未开启更多聊天记录")},menuHistory:function(i,a){var n=layui.data("layim")[j.mine.id]||{},l=i.parent(),s=i.data("type"),o=x.find(".layim-list-history"),d='<li class="layim-null">暂无历史会话</li>';if("one"===s){var r=n.history;delete r[l.data("index")],n.history=r,layui.data("layim",{key:j.mine.id,value:n}),e("#"+l.data("id")).remove(),0===o.find("li").length&&o.html(d)}else"all"===s&&(delete n.history,layui.data("layim",{key:j.mine.id,value:n}),o.html(d));t.closeAll("tips")}};i("layim",new c)}).addcss("modules/layim/layim.css?v=3.7.6","skinlayimcss");
|