{"remainingRequest":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\thread-loader\\dist\\cjs.js!D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\babel-loader\\lib\\index.js!D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\cache-loader\\dist\\cjs.js??ref--0-0!D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\vue-loader\\lib\\index.js??vue-loader-options!D:\\jenkins\\workspace\\xq-web-bpm\\src\\components\\instantMessag\\IM.vue?vue&type=script&lang=js&","dependencies":[{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\src\\components\\instantMessag\\IM.vue","mtime":1675071992178},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\thread-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\babel-loader\\lib\\index.js","mtime":315532800000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\cache-loader\\dist\\cjs.js","mtime":499162500000},{"path":"D:\\jenkins\\workspace\\xq-web-bpm\\node_modules\\vue-loader\\lib\\index.js","mtime":499162500000}],"contextDependencies":[],"result":["import \"core-js/modules/es6.function.name\";\n//\n//\n//\n//\nexport default {\n name: \"IM\",\n data: function data() {\n return {\n currentUser: this.$store.state.login.currentUser,\n onlineAdress: \"\",\n wimadress: \"\",\n user: \"\",\n uname: \"\",\n websocket: null,\n layer: null\n };\n },\n mounted: function mounted() {\n this.$nextTick(function () {// TODO 接口未搬迁暂时隐藏\n // this.getInfo();\n });\n },\n destroyed: function destroyed() {\n layer.closeAll();\n },\n methods: {\n // TODO 接口未搬迁暂时隐藏\n getInfo: function getInfo() {\n var _this = this;\n\n var userInfo = _this.currentUser;\n if (!userInfo) return;\n this.$http.post('${uc}/head/getInfo', {}, {\n tm: new Date().getTime()\n }).then(function (_ref) {\n var data = _ref.data;\n _this.onlineAdress = data.onlineAdress; //在线管理地址\n\n _this.wimadress = data.wimadress; //即时聊天地址\n\n _this.user = data.USERNAME; //用户名\n\n _this.uname = data.NAME;\n window.user = data.USERNAME;\n\n _this.initLayim();\n });\n },\n initLayim: function initLayim() {\n var _this = this;\n\n var userInfo = _this.currentUser;\n layui.use(['layim', 'readyMenu', 'layer'], function (layim) {\n this.layer = layui.layer;\n var f = setInterval(function () {\n if (\"\" != _this.wimadress) {\n clearInterval(f);\n\n if (window.WebSocket) {\n window.webSocket = new WebSocket(encodeURI('ws://' + _this.wimadress)); //wimadress参数在 assets/js-v/sys/index.js 中定义并赋值\n // window.webSocket = _@this.websocket;\n\n window.webSocket.onopen = function () {\n console.log(_this.user);\n window.webSocket.send(',fhadmin-join,' + _this.user); //发送上线消息(把上线状态发送给好友,对方好友栏目本头像从黑白色变彩色)(前提条件:本身在线状态设置为在线状态,否则对方看到的依然是离线状态)\n\n _this.$notify({\n title: '提示',\n message: '即时通讯已连接成功',\n duration: 1500\n });\n };\n\n window.webSocket.onerror = function () {\n //连接失败\n _this.$notify({\n title: '提示',\n message: '连接发生错误,刷新或者更换浏览器试试',\n duration: 1500\n });\n };\n\n window.webSocket.onclose = function () {\n //连接断开\n _this.$notify({\n title: '提示',\n message: '已经断开连接',\n duration: 1500\n });\n\n window.webSocket.send(',fhadmin-leave,'); //发送下线消息\n };\n\n window.webSocket.onmessage = function (message) {\n //消息接收\n message = JSON.parse(message.data);\n console.log(message);\n\n if ('friend' == message.type || 'group' == message.type) {\n //接收好友或群发送的消息\n getFHMessage(message);\n } else if ('user_join' == message.type) {\n friendOnline(message.user);\n\n _this.$notify({\n title: '消息',\n message: '好友' + message.name + '上线了',\n duration: 1500\n });\n } else if ('user_leave' == message.type) {\n friendOffline(message.user);\n\n _this.$notify({\n title: '消息',\n message: '好友' + message.name + '下线了',\n duration: 1500\n });\n } else if ('user_online' == message.type) {\n friendOnline(message.user); //好友设置在线状态\n } else if ('user_hide' == message.type) {\n friendOffline(message.user); //好友设置隐身状态\n } else if ('user_applyfriend' == message.type) {\n applyIFriend(); //申请加好友\n } else if ('user_emove' == message.type) {\n removeFriend(message.user); //删除好友(被动删,被拉黑)\n } else if ('agreefriend' == message.type) {\n addFriend(message); //对方同意添加好友\n } else if ('applyqgroup' == message.type) {\n applyIQgroup(); //申请加群申请\n } else if ('agreeqgroup' == message.type) {\n addIQgroup(message); //对方同意群申请\n } else if ('kickoutqgroup' == message.type) {\n kickoutIQgroup(message.id); //踢出群\n } else if ('delqgroup' == message.type) {\n delQgroup(message.QGROUP_ID); //群解散\n\n _this.$notify({\n title: '消息',\n message: message.CONTENT,\n duration: 2000\n });\n }\n };\n } else {\n _this.$notify({\n title: '消息',\n message: '此浏览器不支持websocket,请用支持HTML5的浏览器或者使用最新谷歌、火狐、360等浏览器',\n duration: 2000\n });\n }\n\n ;\n\n _this.$http.post('${uc}/iminterface/getImsign', {}, {\n tm: new Date().getTime()\n }).then(function (_ref2) {\n var data = _ref2.data;\n layim.config({\n init: {\n url: window.httpurl + '/iminterface/getList' //初始化接口\n ,\n type: 'post',\n data: {}\n },\n members: {\n url: window.httpurl + '/iminterface/getMembers' //查看群员接口\n ,\n data: {},\n type: 'post'\n },\n uploadImage: {\n url: window.httpurl + '/iminterface/updateImg' //上传图片接口\n ,\n type: 'post' //默认post\n ,\n headers: {\n Authorization: \"Bearer \" + JSON.parse(window.sessionStorage.currentUser).token\n }\n },\n uploadFile: {\n url: window.httpurl + '/iminterface/updateFile' //上传文件接口\n ,\n type: 'post' //默认post\n\n },\n isAudio: true //开启聊天工具栏音频\n ,\n isVideo: true //开启聊天工具栏视频\n\n /**扩展工具栏*/\n ,\n tool: [{\n alias: 'code',\n title: '代码',\n icon: ''\n }] //,brief: true \t\t\t\t\t\t//是否简约模式(若开启则不显示主面板)\n ,\n title: '我的通讯' //自定义主面板最小化时的标题\n //,right: '100px' \t\t\t\t\t//主面板相对浏览器右侧距离\n //,minRight: '90px' \t\t\t\t//聊天面板最小化时相对浏览器右侧距离\n ,\n initSkin: data ? data.imsign : \"\" //1-5 设置初始背景 res.imsign\n //,skin: ['aaa.jpg'] \t\t\t\t//新增皮肤\n //,isfriend: false \t\t\t\t\t//是否开启好友\n ,\n isgroup: true //是否开启群组\n //,min: true \t\t\t\t\t\t//是否始终最小化主面板,默认false\n ,\n notice: true //是否开启桌面消息提醒,默认false\n //,voice: false \t\t\t\t\t//声音提醒,默认开启,声音文件为:default.mp3\n ,\n msgbox: window.pageurl + \"/static/IM/messageBox.html\" //消息盒子页面地址,若不开启,剔除该项即可\n ,\n find: window.pageurl + \"/static/IM/addFrined.html\" //发现页面地址,若不开启,剔除该项即可\n ,\n chatLog: '/static/IM/hismsg_list.html' //聊天记录页面地址,若不开启,剔除该项即可\n\n });\n /*基础配置*/\n });\n }\n }, 1000);\n layim.on('online', function (data) {\n //监听在线状态的切换事件\n window.webSocket.send(',fhadmin-' + data + ',' + _this.user); //发送在线隐身消息\n\n $.ajax({\n xhrFields: {\n withCredentials: false\n },\n headers: {\n Authorization: \"Bearer \" + userInfo.token\n },\n type: \"POST\",\n url: window.httpurl + '/iminterface/editState',\n data: {\n ONLINE: data,\n TYPE: \"online\",\n tm: new Date().getTime()\n },\n dataType: 'json',\n success: function success(data) {}\n });\n });\n layim.on('sign', function (data) {\n //监听签名修改\n $.ajax({\n xhrFields: {\n withCredentials: false\n },\n headers: {\n Authorization: \"Bearer \" + userInfo.token\n },\n type: \"POST\",\n url: window.httpurl + '/iminterface/editState',\n data: {\n AUTOGRAPH: data,\n TYPE: \"auto\",\n tm: new Date().getTime()\n },\n dataType: 'json',\n success: function success(data) {}\n });\n });\n layim.on('setSkin', function (filename, src) {\n //监听更换背景皮肤\n $.ajax({\n xhrFields: {\n withCredentials: false\n },\n headers: {\n Authorization: \"Bearer \" + userInfo.token\n },\n type: \"POST\",\n url: window.httpurl + '/iminterface/editState',\n data: {\n SIGN: filename,\n TYPE: \"sign\",\n tm: new Date().getTime()\n },\n dataType: 'json',\n success: function success(data) {}\n });\n });\n layim.on('tool(code)', function (insert) {\n //监听自定义工具栏点击,以添加代码为例\n layer.prompt({\n title: '插入代码',\n formType: 2,\n shade: 0\n }, function (text, index) {\n layer.close(index);\n insert('[pre class=layui-code]' + text + '[/pre]'); //将内容插入到编辑器\n });\n });\n /*监听layim建立就绪*/\n\n layim.on('ready', function (res) {\n layui.readyMenu.init(); //更新右键点击事件\n\n $.ajax({\n xhrFields: {\n withCredentials: false\n },\n headers: {\n Authorization: \"Bearer \" + userInfo.token\n },\n type: \"POST\",\n url: window.httpurl + '/iminterface/getMsgCount',\n //未读消息(加好友群等)总数\n data: {\n tm: new Date().getTime()\n },\n dataType: 'json',\n success: function success(data) {\n if ('01' == data.result) {\n layim.msgbox(data.count); //消息盒子有新消息\n }\n }\n });\n $.ajax({\n xhrFields: {\n withCredentials: false\n },\n headers: {\n Authorization: \"Bearer \" + userInfo.token\n },\n type: \"POST\",\n url: window.httpurl + '/iminterface/getNoreadMsg',\n //未读消息(离线消息)接口\n data: {\n tm: new Date().getTime()\n },\n dataType: 'json',\n success: function success(data) {\n if ('has' == data.result) {\n $.each(data.list, function (i, list) {\n layim.getMessage({\n username: list.NAME //消息来源用户名\n ,\n avatar: list.PHOTO //消息来源用户头像\n ,\n id: list.USERNAME //消息的来源ID(如果是私聊,则是用户id,如果是群聊,则是群组id)\n ,\n type: \"friend\" //聊天窗口来源类型,从发送消息传递的to里面获取\n ,\n content: list.CONTENT //消息内容\n ,\n timestamp: list.CTIME\n });\n });\n }\n }\n });\n }); //接收到好友或群的消息\n\n function getFHMessage(data) {\n console.log(data);\n layim.getMessage(data);\n } //接收到好友上线消息,头像取消置灰\n\n\n function friendOnline(id) {\n layim.setFriendStatus(id, 'online'); //设置指定好友在线,即头像取消置灰\n } //接收到好友下线消息,头像置灰\n\n\n function friendOffline(id) {\n layim.setFriendStatus(id, 'offline'); //设置指定好友下线,即头像置灰\n } //申请好友消息\n\n\n function applyIFriend() {\n layim.msgbox('新');\n $(\"#fhsmsobj\").html('');\n } //申请加群消息\n\n\n function applyIQgroup() {\n layim.msgbox('新');\n $(\"#fhsmsobj\").html('');\n } //踢出消息\n\n\n function kickoutIQgroup(QGROUP_ID) {\n layui.layim.removeList({\n type: 'group',\n id: QGROUP_ID //群ID\n\n });\n layim.msgbox('新');\n $(\"#fhsmsobj\").html('');\n } //删除好友(被对方拉黑)\n\n\n function removeFriend(FUSERNAME) {\n layim.removeList({\n type: 'friend' //或者group\n ,\n id: FUSERNAME //好友用户名\n\n });\n } //对方同意添加好友(加入好友栏目)\n\n\n function addFriend(message) {\n layim.addList({\n type: 'friend' //列表类型,只支持friend和group两种\n ,\n avatar: message.avatar //好友头像\n ,\n username: message.username //好友昵称\n ,\n groupid: message.groupid //所在的分组id\n ,\n id: message.id //好友id\n ,\n status: message.status //在线状态\n ,\n sign: message.sign //好友签名\n\n });\n layim.msgbox('新');\n $(\"#fhsmsobj\").html('');\n layui.readyMenu.init(); //更新右键点击事件\n } //对方同意添群(加入群组栏目)\n\n\n function addIQgroup(message) {\n layim.addList({\n type: 'group' //列表类型,只支持friend和group两种\n ,\n avatar: message.avatar //群组头像\n ,\n groupname: message.groupname //群组名称\n ,\n id: message.id //群组id\n\n });\n layim.msgbox('新');\n $(\"#fhsmsobj\").html('');\n } //群解散\n\n\n function delQgroup(QGROUP_ID) {\n layui.layim.removeList({\n type: 'group',\n id: QGROUP_ID //群ID\n\n });\n layim.msgbox('新');\n $(\"#fhsmsobj\").html('');\n } //监听发送消息\n\n\n layim.on('sendMessage', function (data) {\n layer.closeAll('loading');\n var To = data.to; //当前用户资料\n\n var mine = data.mine; //发送者数据(消息内容以及发送者资料)\n\n /**\n * user:发送者用户名\n * uname:发送者用户姓名\n * To.id:对方用户名\n * To.type:消息类型 group or friend\n * mine.avatar:发送者用户头像\n * mine.content:消息内容\n */\n\n window.webSocket.send(\",fhadmin-msg,\" + user + \",fh,\" + _this.uname + \",fh,\" + To.id + \",fh,\" + To.type + \",fh,\" + mine.avatar + \",fh,\" + mine.content + ',fh,' + mine.id);\n }); //监听群员\n\n layim.on('members', function (data) {\n console.log(data);\n }); //监听聊天窗口的切换\n\n layim.on('chatChange', function (res) {\n var type = res.data.type;\n\n if (type === 'friend') {} else if (type === 'group') {}\n });\n });\n }\n }\n};",null]}