// 客服的id
var kf_id = 0;
var kf_name = '';
// 是否点击显示表情的标志
var flag = 1;
// 发送锁标识
var sendLock = 0;
// 是否显示默认的聊天记录
var commChat = 1;
// 两个时间段的消息相隔时间
var msg_time = 2;
var lockReconnect = false; //避免重复连接
var socket;
// 连接服务器
if (config != undefined && config.socket != undefined) {
// var loading = layer.load(1, {
// shade: [0.1, '#fff'] //0.1透明度的白色背景
// });
showloading(true);
// 创建一个Socket实例
// // 1console.log(config);
var url = config.socket + ':' + config.port;
createWebSocket(url);
// var socket = new WebSocket('ws://' + config.socket + ":" + config.port);
// 加锁
lockInput();
//showSystem({content: '连接中...'});
// document.getElementById('title').innerText = '连接中...';
// document.getElementById('title').innerText = showloading(true);
//
}
/**
* 创建一个socket对象
* @param {[type]} url [description]
* @return {[type]} [description]
*/
function createWebSocket(url) {
try {
socket = new WebSocket(url);
eventHandle();
} catch (e) {
reconnect(url);
}
}
/**
* socke操作
* @param {[type]} config [description]
* @return {[type]} [description]
*/
function eventHandle() {
socket.onclose = function () {
reconnect(url);
};
// 监听错误
socket.onerror = function (err) {
// showSystem({
// content: '连接失败'
// });
// document.getElementById('title').innerText = '连接失败';
layer.msg('连接失败,正在尝试重连...', { icon: 2, title: '错误提示' });
reconnect(url);
};
// 打开Socket
socket.onopen = function (res) {
showloading(false);
// 1console.log('握手成功');
// 登录
var login_data = '{"path":"api/userInit","param":{"type":"user", "kf_id" : "'
+ config.uid + '","user_id":"' + JSON.parse(config.token).user.user_id + '","user_name":"'
+ JSON.parse(config.token).user.user_name + '","avatar_url":"'
+ JSON.parse(config.token).user.avatar_url + '","group_id":"'
+ config.group + '","kf_type":"' + config.kf_type + '","data":"" },"access_token":"123456"}';
console.log(login_data);
// // 1console.log(login_data);
socket.send(login_data);
// 解锁
unlockInput();
};
// 监听消息
socket.onmessage = function (res) {
var data = eval("(" + res.data + ")");
// // 1console.log(data['message_type'], data);
switch (data['message_type']) {
// 服务端ping客户端
case 'ping':
ws.send('{"type":"ping"}');
break;
// 已经被分配了客服
case 'connect':
var chekc_msg = checkMsgIsRepeat(data.data.msg_id);
if (chekc_msg) return;
// // 1console.log(data.data.common_words_map);return;
kf_id = data.data.kf_id;
kf_name = data.data.kf_name;
var is_online = data.data.is_online == 2 ? "(离线) " : "(离线) ";
// // 1console.log(is_online);
// var is_online = data.data.is_online == 2 ? showloading(true)+"(离线) " : ''
showSystem({
content: '客服 ' + data.data.kf_name + ' 为您服务'
});
document.getElementById('title').innerHTML = '与 ' + kf_name + ' 交流中' + is_online;
if (1 == commChat) {
showChatLog();
}
unlockInput();
// 显示kf支付方式
showKfPayWay(data.data.common_words_map);
if (data.data.is_online == 1) {
$('#recharge').show();
}
break;
// 排队等待
case 'wait':
var chekc_msg = checkMsgIsRepeat(data.data.msg_id);
if (chekc_msg) return;
lockInput();
document.getElementById('title').innerHTML = '请稍后再来';
showSystem(data.data);
break;
// 监测聊天数据
case 'chatMessage':
var chekc_msg = checkMsgIsRepeat(data.data.msg_id);
if (chekc_msg) return;
showMsg(data.data);
break;
case 'text':
var chekc_msg = checkMsgIsRepeat(data.data.msg_id);
// 1console.log(chekc_msg);
if (chekc_msg) return;
showMsg(data.data, data.data.content);
break;
case 'img':
var chekc_msg = checkMsgIsRepeat(data.data.msg_id);
if (chekc_msg) return;
var payment_type = data.data.img_type
if (payment_type != '' && payment_type != null && payment_type == 'wexin') {
sessionStorage.setItem("payment_wexin", JSON.stringify(data.data));
} else if (payment_type != '' && payment_type != null && payment_type == 'alipay') {
sessionStorage.setItem("payment_alipay", JSON.stringify(data.data));
} else if (payment_type != '' && payment_type != null && payment_type == 'huabei') {
sessionStorage.setItem("payment_huabei", JSON.stringify(data.data));
} else if (payment_type != '' && payment_type != null && payment_type == 'credit') {
sessionStorage.setItem("payment_credit", JSON.stringify(data.data));
} else if (payment_type != '' && payment_type != null && payment_type == 'bank') {
sessionStorage.setItem("payment_bank", JSON.stringify(data.data));
}
var content = data.data.content
showMsg(data.data, content, 'img');
break;
// 问候语
case 'helloMessage':
var chekc_msg = checkMsgIsRepeat(data.data.msg_id);
if (chekc_msg) return;
showMsg(data.data, 1);
break;
// 转接
case 'relinkMessage':
var chekc_msg = checkMsgIsRepeat(data.data.msg_id);
if (chekc_msg) return;
commChat = 2;
document.getElementById('title').innerHTML = '正在转接中...';
break;
// kf下线
case 'kf_offline':
$('#recharge').hide();
$('#title').children('font').show();
break;
// 客服上线
case 'kf_online':
// // 1console.log(data.data);
var kf_id = data.data.kf_id;
showKfPayWay(data.data.common_words_map);
$('#recharge').show();
// 添加离线
$('#title').children('font').hide();
break;
}
};
}
/**
* 重新连接
* @param {[type]} url [description]
* @return {[type]} [description]
*/
function reconnect(url) {
if (lockReconnect) return;
lockReconnect = true;
//没连接上会一直重连,设置延迟避免请求过多
setTimeout(function () {
createWebSocket(url);
lockReconnect = false;
}, 2000);
}
/**
* 获取kf支付类型
* @param {[type]} id [description]
* @return {[type]} [description]
*/
function showKfPayWay(data) {
var str = '';
$.each(data, function (i, v) {
str += "
" + v.type_name + "
";
});
str += "我充好了
";
$('#recharge').html(str);
}
// 图片 文件上传
layui.use(['upload'], function () {
var upload = layui.upload;
// 执行实例
var uploadInstImg = upload.render({
elem: '#up-image' // 绑定元素
,
accept: 'images',
exts: 'jpg|jpeg|png|gif',
url: '/index/upload/uploadImg' // 上传接口
,
done: function (res) {
let url = res.data.src;
console.log(url);
let image = new Image();
image.src = url;
image.onload = function(){
let base64 = getBase64Image(image);
sendMsg(base64, 1, url);
}
},
error: function () {
// 请求异常回调
}
});
$('.layui-upload-file').hide();
});
$(function () {
// 监听输入改变发送按钮
$("#msg").bind('input porpertychange', function () {
if ($("#msg").val().length > 0) {
$(".layim-send").removeClass('layui-disabled');
} else {
$(".layim-send").addClass('layui-disabled');
}
});
// 点击发送
$("#send").click(function () {
sendMsg();
});
// 点击表情
$('#up-face').click(function (e) {
e.stopPropagation();
if (1 == flag) {
showFaces();
$('#face-box').show();
flag = 2;
} else {
$('#face-box').hide();
flag = 1;
}
});
// 监听点击旁边关闭表情
document.addEventListener("click", function () {
if (2 == flag) {
document.getElementById('face-box').style.display = 'none';
flag = 1;
}
});
});
// 发送消息
function sendMsg(sendMsg, is_img = 0, url = '') {
if (1 == sendLock) {
return false;
}
let content_type = '';
if (is_img === 1) {
content_type = 'img';
}
var msg = (typeof (sendMsg) == 'undefined') ? $('#msg').val() : sendMsg;
if ('' == msg) {
return false;
}
var msg_id = uuid();
var _html = $("#chat-list").html();
var time = getTime();
var content = is_img === 1 ? replaceContent('img[' + location.origin + url + ']') : replaceContent(msg);
// 检测是否显示时间
var next_time = $("#chat-list").find('span').last().text();
var check_time = checkMegTime(next_time, time, msg_time);
// // 1console.log(next_time, time);
// // 1console.log(check_time);
if (check_time) {
_html += '' + time + ' ';
}
_html += '';
_html += '';
_html += '
我 ';
_html += '' + content + '
';
$('#chat-list').html(_html);
// 发送消息
socket.send(JSON.stringify({
path: "api/chat",
param: {
"type": "user",
"to_id": config.uid,
"to_name": config.name,
"group_id": "2",
"content": msg,
"content_type": content_type,
"msg_id": msg_id,
"from_name": JSON.parse(config.token).user.user_name,
"from_id": JSON.parse(config.token).user.user_id,
"from_avatar": JSON.parse(config.token).user.avatar_url,
"data": ""
},
"access_token": "123456",
}));
// 储存我发出的信息
var key = kf_id + '-' + config.uid;
// 1console.log(key);
// if (typeof (Storage) !== "undefined") {
var localMsg = getCache(key);
if (localMsg == null || localMsg.length == 0) {
localMsg = [];
}
localMsg.push({
type: 'mine',
name: '我',
time: time,
msg_id: msg_id,
content: content,
avatar: JSON.parse(config.token).user.avatar_url,
payment: '',
data: '',
message_type: ''
});
cacheChat({
key: key,
data: localMsg
});
// }
$('#msg').val('');
$(".layim-send").addClass('layui-disabled');
// 滚动条自动定位到最底端
wordBottom();
}
function getBase64Image(img) {
var canvas = document.createElement("canvas");
canvas.width = img.width;
canvas.height = img.height;
var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0, img.width, img.height);
var ext = img.src.substring(img.src.lastIndexOf(".")+1).toLowerCase();
var dataURL = canvas.toDataURL("image/"+ext);
return dataURL;
}
// 展示发送来的消息
function showMsg(info, content, img, flag) {
// 返回确定接收到消息
// return;
var msg_id = uuid();
socket.send(JSON.stringify({
path: 'api\/sendReceiptMsg',
param: { type: 'user', msg_id: info.msg_id },
access_token: '123456'
}));
var time = getTime();
var _html = $("#chat-list").html();
var content = $.trim(content);
var reg = /\[([^\s\[\]]+?)\]/g
if (reg.test(content)) {
content = 'face' + content
var content = replaceContent(content);
}
// var img = /img\[([^\s]+?)\]/g
// var connect_img = content.substring(0,4)
// 检测是否显示时间
var next_time = $("#chat-list").find('span').last().text();
var check_time = checkMegTime(next_time, info.time, msg_time);
if (check_time) {
_html += `` + info.time + ` `;
}
_html += ``;
_html += '';
_html += '
' + info.name + ' ';
if (img == 'img') {
var type = 'img'
var payment = info.img_type
switch (payment) {
case 'wexin':
_html += ' ';
break;
case 'alipay':
_html += '';
break;
case 'huabei':
_html += '';
break;
case 'credit':
_html += '';
break;
case 'bank':
_html += '';
break;
case '':
_html += '';
default:
break;
}
} else {
var type = 'text'
_html += `` + content + `
`;
}
$('#chat-list').html(_html);
// 滚动条自动定位到最底端
wordBottom();
// 储存我收到的信息
var key = kf_id + '-' + config.uid;
// 1console.log(key);
if (typeof (Storage) !== "undefined" && typeof (flag) == "undefined") {
var localMsg = getCache(key);
if (localMsg == null || localMsg.length == 0) {
localMsg = [];
}
localMsg.push({
type: 'other',
name: info.name,
time: time,
content: content,
payment: info.img_type,
avatar: info.avatar,
message_type: type,
data: info.data
});
cacheChat({
key: key,
data: localMsg
});
}
}
// 缓存聊天数据 [本地存储策略]
function cacheChat(obj) {
if (typeof (Storage) !== "undefined") {
localStorage.setItem(obj.key, JSON.stringify(obj.data));
}
}
// 从本地缓存中,拿出数据
function getCache(key) {
return JSON.parse(localStorage.getItem(key));
}
// 对话框定位到最底端
function wordBottom() {
// 滚动条自动定位到最底端
var box = $(".layim-chat-main");
box.scrollTop(box[0].scrollHeight);
}
// 锁住输入框
function lockInput() {
sendLock = 1;
document.getElementById('msg').setAttribute('readonly', 'readonly');
}
// 解锁输入框
function unlockInput() {
sendLock = 0;
document.getElementById('msg').removeAttribute('readonly');
}
// 展示表情数据
function showFaces() {
var alt = getFacesIcon();
// // 1console.log(alt);
var _html = ''
var len = alt.length;
for (var index = 0; index < len; index++) {
_html += ' ';
}
_html += ' ';
document.getElementById('face-box').innerHTML = _html;
}
// 选择表情
function checkFace(obj) {
var msg = document.getElementById('msg').value;
// // 1console.log(obj, msg);
document.getElementById('msg').value = msg + 'face' + obj.title + ' ';
document.getElementById('face-box').style.display = 'none';
$(".layim-send").removeClass('layui-disabled');
flag = 1;
}
// 系统消息
function showSystem(info) {
$("#chat-list").append('' + info.content + ' ');
}
// 展示本地聊天缓存
function showChatLog() {
var chatLog = getCache(kf_id + '-' + config.uid);
if (chatLog == null || chatLog.length == 0) {
return;
}
var _html = '';
var len = chatLog.length;
for (var i = 0; i < len; i++) {
var item = chatLog[i];
if ('mine' == item.type) {
// 检测上次聊天时间
var check_time = false;
if (i > 1) {
var check_time = checkMegTime(chatLog[i - 1].time, item.time, msg_time);
}
if (check_time) {
_html += '' + item.time + ' ';
}
_html += '';
_html += '';
_html += '
' + item.name + ' ';
_html += '' + item.content + '
';
} else if ('other' == item.type) {
_html += '' + item.time + ' ';
_html += '';
_html += '';
_html += '
' + item.name + ' ';
if (item.message_type == 'img') {
var payment = item.payment
if (payment == undefined) {
payment = ''
}
switch (payment) {
case 'wexin':
_html += ' ';
break;
case 'alipay':
_html += '';
break;
case 'huabei':
_html += '';
break;
case 'credit':
_html += '';
break;
case 'bank':
_html += '';
break;
case '':
_html += '';
// _html += '';
default:
break;
}
} else {
_html += '' + item.content + '
';
}
}
}
document.getElementById('chat-list').innerHTML = _html;
// 滚动条自动定位到最底端
wordBottom();
}
//图片编码base64
function getBase64(imgUrl) {
window.URL = window.URL || window.webkitURL;
var xhr = new XMLHttpRequest();
xhr.open("get", imgUrl, true);
// 至关重要
xhr.responseType = "blob";
xhr.onload = function () {
if (this.status == 200) {
//得到一个blob对象
var blob = this.response;
// 1console.log("blob", blob)
// 至关重要
let oFileReader = new FileReader();
oFileReader.onloadend = function (e) {
let base64 = e.target.result;
sendMsg(base64)
};
oFileReader.readAsDataURL(blob);
}
}
xhr.send();
}
// 退出
function loginOut() {
window.history.go(-1);
}
function closeOut(index) {
layer.close(layer.index);
}
// $("#recharge").on("touchstart", function(e) {
// // 判断默认行为是否可以被禁用
// if (e.cancelable) {
// // 判断默认行为是否已经被禁用
// if (!e.defaultPrevented) {
// e.preventDefault();
// }
// }
// startX = e.originalEvent.changedTouches[0].pageX,
// startY = e.originalEvent.changedTouches[0].pageY;
// });
// $("#recharge").on("touchmove", function(e) {
// // 判断默认行为是否可以被禁用
// if (e.cancelable) {
// // 判断默认行为是否已经被禁用
// if (!e.defaultPrevented) {
// e.preventDefault();
// }
// }
// moveEndX = e.originalEvent.changedTouches[0].pageX,
// moveEndY = e.originalEvent.changedTouches[0].pageY,
// X = moveEndX - startX,
// Y = moveEndY - startY;
// // // 1console.log(X)
// //左滑
// if ( X > 0 ) {
// var num = parseInt($("#recharge").css('margin-left'));
// // // 1console.log(num + X);
// if(num + X < 0){
// $("#recharge").css('margin-left', num + X + 'px');
// }else{
// $("#recharge").css('margin-left', '0px');
// }
// }
// //右滑
// else if ( X < 0 ) {
// var num = parseInt($("#recharge").css('margin-left'));
// if(num + X > -185){
// $("#recharge").css('margin-left', num + X + 'px');
// }else{
// $("#recharge").css('margin-left', '-185px');
// }
// }else{
// // 1console.log('单击');
// }
// });
// 点击发送要获取的支付方式
// $(document).on('click','.btn',function(){
// // 1console.log(12312)
// var payment = $(this).text();
// sendMsg(payment)
// })
function getPayWay(_this) {
// 1console.log(_this);
var payment = $(_this).text();
sendMsg(payment);
}
//点击获取支付方式
$(document).on('click', '.layui-mylink-payment', function () {
var payment = $(this).attr('payment')
var alipay_data = sessionStorage.payment_alipay;
if (alipay_data) {
var src_alipay_origin = JSON.parse(alipay_data).content
var src_alipay = "data:image/jpg;base64," + src_alipay_origin
var alipay = JSON.parse(alipay_data).payment
var a_name = JSON.parse(alipay_data).data.name
var account_num = JSON.parse(alipay_data).data.account_num
var surname = a_name.substr(0, 1);
var uname = a_name.substr(1);
} else {
var alipay = ''
}
var wexin = sessionStorage.payment_wexin;
if (wexin) {
var src_wexin_origin = JSON.parse(wexin).content;
var src_wexin = "data:image/jpg;base64," + src_wexin_origin
} else {
var src_wexin = ''
}
var huabei = sessionStorage.payment_huabei;
if (huabei) {
var src_huabei_origin = JSON.parse(huabei).content;
var src_huabei = "data:image/jpg;base64," + src_huabei_origin
} else {
var src_huabei = ''
}
var credit = sessionStorage.payment_credit;
if (credit) {
var src_credit_origin = JSON.parse(credit).content;
var src_credit = "data:image/jpg;base64," + src_credit_origin
} else {
var src_credit = ''
}
var bank_data = sessionStorage.payment_bank;
if (bank_data) {
var bank = JSON.parse(bank_data).payment
var bank_name = JSON.parse(bank_data).data.name
var account_num_bank = JSON.parse(bank_data).data.account_num
var branch_bank = JSON.parse(bank_data).data.branch_bank
var open_bank = JSON.parse(bank_data).data.open_bank
} else {
var bank = ''
}
switch (payment) {
case 'wexin':
var _html = "";
_html += ""
_html += "
微信扫一扫 "
_html += "
"
_html += `保存二维码
`
// _html += "保存二维码
"
layer.open({
title: ['提示', 'text-align: center;background-color: black;color: white;border-top-left-radius: 13px;border-top-right-radius: 13px;', '12312'],
type: 0,
content: _html,
anim: 5,
skin: "alipay",
btn: false,
closeBtn: 2,
tips: [1, '#c00']
});
break;
case 'alipay':
var _html = "";
_html += ""
_html += "
复制支付宝账号,支付宝【转账】 付钱
"
_html += "
支付宝账号 " + account_num + "
"
_html += "
支付宝姓 " + surname + "
"
_html += "
支付宝名 " + uname + "
"
_html += "
支付宝姓名 " + a_name + "
"
if (src_alipay_origin) {
// var img_base = getBase64(src_alipay_origin);
// // 1console.log(src_alipay_origin);return;
_html += "
"
_html += "
可直接扫码支付 "
_html += "
打开支付宝使用扫一扫选择相册中的二维码
"
_html += "
"
_html += `
保存二维码
`
}
_html += "
"
layer.open({
title: [' ' + '支付宝账号转账', 'text-align: center;background-color: black;color: white;border-top-left-radius: 13px;border-top-right-radius: 13px;', '12312'],
type: 0,
content: _html,
anim: 5,
skin: "alipay",
btn: false,
closeBtn: 2,
tips: [1, '#c00']
});
break;
case 'huabei':
var _html = "";
_html += ""
_html += "
可直接扫码支付 "
_html += "
当前使用花呗支付请与充值客服确定金额 打开支付宝使用扫一扫选择相册中的二维码 "
_html += "
"
_html += `保存二维码
`
layer.open({
title: ['提示', 'text-align: center;background-color: black;color: white;border-top-left-radius: 13px;border-top-right-radius: 13px;', '12312'],
type: 0,
content: _html,
anim: 5,
skin: "alipay",
btn: false,
closeBtn: 2,
tips: [1, '#c00']
});
break;
case 'credit':
var _html = "";
_html += ""
_html += "
支付宝|微信扫一扫 "
_html += "
"
_html += `保存二维码
`
layer.open({
title: ['提示', 'text-align: center;background-color: black;color: white;border-top-left-radius: 13px;border-top-right-radius: 13px;', '12312'],
type: 0,
content: _html,
anim: 5,
skin: "alipay",
btn: false,
closeBtn: 2,
tips: [1, '#c00']
});
break;
case 'bank':
var _html = "";
_html += ""
// _html += "
复制支付宝账号,支付宝【转账】 付钱
"
_html += "
银行卡姓名 " + bank_name + "
"
_html += "
银行卡号 " + account_num_bank + "
"
_html += "
开户银行 " + branch_bank + "
"
_html += "
开户支行 " + open_bank + "
"
_html += "
"
layer.open({
title: [' ' + '银行卡账号转账', 'text-align: center;background-color: black;color: white;border-top-left-radius: 13px;border-top-right-radius: 13px;', '12312'],
type: 0,
content: _html,
anim: 5,
skin: "alipay",
btn: false,
closeBtn: 2,
tips: [1, '#c00']
});
break;
case '':
showBigPic()
default:
break;
}
})
/**
* 图片路径转base64
* @param {*} img
*/
function getBase64(img) { //传入图片路径,返回base64
function getBase64Image(img, width, height) { //width、height调用时传入具体像素值,控制大小 ,不传则默认图像大小
var canvas = document.createElement("canvas");
canvas.width = width ? width : img.width;
canvas.height = height ? height : img.height;
var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0, canvas.width, canvas.height);
var dataURL = canvas.toDataURL();
return dataURL;
}
var image = new Image();
image.crossOrigin = '';
image.src = img;
var deferred = $.Deferred();
if (img) {
image.onload = function () {
deferred.resolve(getBase64Image(image)); //将base64传给done上传处理
}
var tmp_img = deferred.promise(); //问题要让onload完成后再return sessionStorage['imgTest']
// 获取base64
tmp_img.then(function (base64) {
return base64;
}, function (err) {
// 1console.log(err);
});
}
}
/**
* 在本地进行文件保存
* @param {String} data 要保存到本地的图片数据
* @param {String} filename 文件名
*/
function saveFile(data, filename) {
// // 1console.log(filename);
// return;
const save_link = document.createElementNS('http://www.w3.org/1999/xhtml', 'a');
save_link.href = data;
save_link.download = filename;
const event = document.createEvent('MouseEvents');
event.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
save_link.dispatchEvent(event);
}
//显示大图
function showBigPic(src) {
layer.photos({
photos: {
data: [{
"alt": "大图模式",
"src": src
}]
},
shade: 0.5,
closeBtn: 2,
anim: 0,
resize: false,
success: function (layero, index) {
}
});
}
$(document).on('click', '.layui-mylink-photos', function () {
// 1console.log(src)
var src = $(this).attr('src')
layer.photos({
photos: {
data: [{
"alt": "大图模式",
"src": src
}]
},
shade: 0.5,
closeBtn: 2,
anim: 0,
resize: false,
success: function (layero, index) {
}
});
});
// 加载loading
function showloading(t) {
if (t) { //如果是true则显示loading
// 1console.log(t);
loading = layer.load(1, {
shade: [0.1, '#fff'] //0.1透明度的白色背景
});
} else { //如果是false则关闭loading
// 1console.log("关闭loading层:" + t);
layer.closeAll('loading');
}
}
$(document).on('click', '#baocun', function () {
// alert(123);
var src = $('#img_tp').attr('src');
SaveAs5(src)
// 1console.log(src)
})
function SaveAs5(imgURL) {
var oPop = window.open(imgURL, "", "width=1, height=1, top=5000, left=5000");
// 1console.log(oPop)
for (; oPop.document.readyState != "complete";) {
if (oPop.document.readyState == "complete") break;
}
oPop.document.execCommand("SaveAs");
oPop.close();
}
// 聊天框获取焦点时聊天列表弹到最下方
$("#msg").focus(function () {
wordBottom();
// setTimeout(function () {
// wordBottom();
// }, 1000);
});
// 当手机虚拟键盘弹起时聊天界面上弹
var wHeight = window.innerHeight; //获取初始可视窗口高度
window.addEventListener('resize', function () { //监测窗口大小的变化事件
var hh = window.innerHeight; //当前可视窗口高度
var viewTop = $('.layim-chat-main'); //可视窗口高度顶部距离网页顶部的距离
if (wHeight > hh) { //可以作为虚拟键盘弹出事件
viewTop.animate({
scrollTop: viewTop[0].scrollHeight
}); //调整可视页面的位置
} else { //可以作为虚拟键盘关闭事件
viewTop.animate({
scrollTop: viewTop[0].scrollHeight
});
}
wHeight = hh;
});
/**
* 复制文本到粘贴板
* @param {*} _this 当前元素
*/
function copyText(_this) {
// 获取父级元素文本内容
var tmp_text = $(_this).parent().text();
var text = tmp_text.substring(0, tmp_text.length - 1);
// 添加临时元素
$('body').append("" + text + "
");
var copy_e = document.getElementById('tmp-copy');
if (document.body.createTextRange) { // 该属性只有IE支持
var range = document.body.createTextRange();
range.moveToElementText(copy_e);
range.select();
var copy = document.execCommand('Copy');
if (copy) {
layer.msg('复制成功');
} else {
layer.msg('复制失败');
}
} else if (window.getSelection) {
var selection = window.getSelection();
selection.removeAllRanges();
var range = document.createRange();
range.selectNodeContents(copy_e);
selection.addRange(range);
// 1console.log(selection);
var copy = document.execCommand('Copy');
selection.removeAllRanges();
if (copy) {
layer.msg('复制成功');
} else {
layer.msg('复制失败');
}
}
// 移除临时元素
$('#tmp-copy').remove();
// // 1console.log($('#tmp-copy').text());
}
/**
* 检测消息是否重复
* @param {*} uid 用户id
* @param {*} msg_id 消息id
*/
function checkMsgIsRepeat(msg_id) {
if (!msg_id) return false;
var dom = $('chat-list').find('#' + msg_id);
// 1console.log(dom.length);
if (!dom || dom.length == 0) return false;
return true;
}