// 缓存机制 var foowwLocalStorage = { set: function (key, value, ttl_ms) { var data = { value: value, expirse: new Date(ttl_ms).getTime() }; localStorage.setItem(key, JSON.stringify(data)); }, get: function (key) { var data = JSON.parse(localStorage.getItem(key)); if (data !== null) { // debugger if (data.expirse != null && data.expirse < new Date().getTime()) { localStorage.removeItem(key); } else { return data.value; } } return null; } } function RandomIndex(min, max, i){ let index = Math.floor(Math.random()*(max-min+1)+min), numStart = _charStr.length - 10; //如果字符串第một位是数字,则递归重新获取 if(i==0&&index>=numStart){ index = RandomIndex(min, max, i); } //返回最终索引值 return index; } // 生成随机字符串 function getRandomString(len) { let min = 0, max = _charStr.length - 1, _str = ''; //判断是否指定长度,否则默认长度为15 len = len || 15; //循环生成字符串 for (var i = 0, index; i < len; i++) { index = RandomIndex(min, max, i); _str += _charStr[index]; } return _str; } // 时间格式化 function formatDate(date, fmt) { if (typeof date == 'string') { return date; } if (!fmt) fmt = "yyyy-MM-dd hh:mm:ss"; if (!date || date == null) return null; var o = { 'M+': date.getMonth() + 1, // 月份 'd+': date.getDate(), // ngày 'h+': date.getHours(), // 小时 'm+': date.getMinutes(), // 分 's+': date.getSeconds(), // 秒 'q+': Math.floor((date.getMonth() + 3) / 3), // 季度 'S': date.getMilliseconds() // 毫秒 } if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length)) for (var k in o) { if (new RegExp('(' + k + ')').test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length))) } return fmt } // ngày期格式化:月-ngày 时:分:秒 function getShiQuTime(msgtime) { let timezoneOffset = 0 - new Date().getTimezoneOffset() / 60; let ddl = msgtime.replace(/-/g, "/"); let dvv = new Date(ddl); const TODAY = new Date(dvv.setHours(dvv.getHours() + timezoneOffset)) return formatDate(TODAY, 'MM-dd hh:mm'); } // 聊天窗口激活反馈 function customerWinFocus_func() { let infoData = { 'site_code': sessionCode, } if (foowwLocalStorage.get(chatUsidKey)){ infoData['chatUsid'] = foowwLocalStorage.get(chatUsidKey); } if (foowwLocalStorage.get(chatSessionKey)){ infoData['chatSession'] = foowwLocalStorage.get(chatSessionKey); } socket_app.emit('customerWinFocus', infoData) } // 请求初始化访客信息 function send_request_init() { let infoData = { 'site_code': sessionCode, } if (foowwLocalStorage.get(chatUsidKey)){ infoData['chatUsid'] = foowwLocalStorage.get(chatUsidKey); } if (foowwLocalStorage.get(chatSessionKey)){ infoData['chatSession'] = foowwLocalStorage.get(chatSessionKey); } socket_app.emit('initVisitor', infoData) } // 上传文件 function upload_file() { let filepathObj = $("#filepath"); var imgpath = filepathObj.get(0).files[0]; if(imgpath === ''){ alert('Vui lòng chọn tập tin!') }else{ var formdata = new FormData(); formdata.append("upload", imgpath); formdata.append("site_code", sessionCode); formdata.append("filename", imgpath.name); formdata.append("filesize", imgpath.size); formdata.append("action", 'uploadImage'); params = { 'data':formdata, 'contentType':false, 'processData': false, 'success':function (data) { if(data.code === 200){ filepathObj.val(''); $("#problemImage").val(data.message); $(".demoIMage img").attr('src',data.message); $(".uploadImageb").hide(); $(".demoIMage").show(); }else{ xtalert.alertError(data.message); } } }; xtajax.post(params); } } // 快捷Nhập dịch vụ khách hàng function advance_chat_func() { $(".blockScreen").show(); $("#fastBox").hide(); send_request_init(); } // Gửi đi快捷信息 function subFastFunc() { let problem = $.trim($("input[name='problem']:checked").val()); let account = $.trim($("#account").val()); let txTme = $.trim($("#txTme").val()); let czTime = $.trim($("#czTime").val()); let cjhdText = $.trim($("#cjhdText").val()); let problemImage = $.trim($("#problemImage").val()); if (!account){return alert('Vui lòng nhập tài khoản!')} let infoData = { 'site_code': sessionCode, 'problem': problem, 'account': account, } if (problem === 'czwt'){ if (!czTime){return alert('Vui lòng chọn thời gian nạp tiền!')} if (!problemImage){return alert('Vui lòng tải lên hình ảnh nạp tiền!')} infoData['czTime'] = czTime infoData['problemImage'] = problemImage }else if (problem === 'txwt'){ if (!txTme){return alert('Hãy chọn thời gian thống kê!')} if (!problemImage){return alert('Vui lòng tải lên hình ảnh nạp tiền!')} infoData['txTme'] = txTme infoData['problemImage'] = problemImage }else if (problem === 'cjsq'){ if (!cjhdText){return alert('Vui lòng nhập nội dung!!')} infoData['cjhdText'] = cjhdText } if (foowwLocalStorage.get(chatUsidKey)){ infoData['chatUsid'] = foowwLocalStorage.get(chatUsidKey); } if (foowwLocalStorage.get(chatSessionKey)){ infoData['chatSession'] = foowwLocalStorage.get(chatSessionKey); } socket_app.emit('initVisitor', infoData) $(".blockScreen").show(); } $(function () { $.single_time('.selectTiime'); // 快捷问题选择监控 $("input[type='radio']").on('click', function () { let problem = $.trim($("input[name='problem']:checked").val()); $(".demoIMage img").attr('src', ''); $(".uploadImageb").show(); if (problem === 'czwt'){ $("#account").parent().show(); $("#czTime").parent().show(); $("#problemImage").parent().parent().show(); $("#cjhdText").parent().parent().hide(); $("#txTme").parent().hide() }else if (problem === 'txwt'){ $("#account").parent().show(); $("#txTme").parent().show(); $("#problemImage").parent().parent().show(); $("#cjhdText").parent().parent().hide(); $("#czTime").parent().hide(); }else if (problem === 'cjsq'){ $("#account").parent().show(); $("#cjhdText").parent().parent().show(); $("#problemImage").parent().parent().hide(); $("#txTme").parent().hide(); $("#czTime").parent().hide(); }else if (problem === 'qtwt'){ $("#account").parent().hide(); $("#cjhdText").parent().parent().hide(); $("#problemImage").parent().parent().hide(); $("#txTme").parent().hide(); $("#czTime").parent().hide(); $(".subBtn").hide(); $(".enterBtn").show(); } }) // 关闭窗口时弹出确认提示 $(window).bind('beforeunload', function(){ // 只有在标识变量is_confirm不为false时,才弹出确认提示 // if(window.is_confirm !== false){} return 'Có một số thông tin bạn chưa lưu lại!'; }) // 浏览器是去焦点时触发 window.onblur = function(e){ windowFocusStatu = false; } // 浏览器获得焦点时触发 window.onfocus = function(e){ windowFocusStatu = true; customerWinFocus_func() } // 点击打分 $(".levelLi").on('click', function () { $(this).addClass('active').siblings().removeClass('active'); }) //连接成功 socket_app.on('connect',function(){ let crrtiem = new Date(); console.log('连接成功!', crrtiem); if (fastState && !foowwLocalStorage.get(chatUsidKey) && !foowwLocalStorage.get(chatSessionKey)){ $("#fastBox").show(); $("#account").parent().show(); $("#czTime").parent().show(); $("#problemImage").parent().parent().show(); $("#cjhdText").parent().parent().hide(); $("#txTme").parent().hide() $(".blockScreen").hide(); }else{ send_request_init(); } }); //连接断开 socket_app.on('disconnect',function(data){ let crrtiem = new Date() console.log('连接断开!', crrtiem); }); // 接收初始化数据 socket_app.on('initResponse', function (msg) { if (msg.code === 200){ let back_data = msg.data; chatConfig['service_data'] = back_data.service_data chatConfig['is_score'] = back_data.is_score if (!back_data.service_state){ $(".blockScreen").hide(); $(".LeaveMessage").show(); }else { foowwLocalStorage.set(chatSessionKey, back_data.chatSession, new Date().getTime() + 60000 * 60 * 24); $(".LeaveMessage").hide(); $("#containter").show(); if (back_data.is_score){ $(".evaluateForm").hide(); $(".evaluateSuccess").show(); $(".scoreSubLoading").css('display', 'none'); $(".scoreSuccessBox").css('display', 'flex'); } if (back_data.service_data.portrait){ $(".servicePortrait").attr('src', back_data.service_data.portrait); service_portrait = back_data.service_data.portrait }else { $(".servicePortrait").attr('src', '/public/chat/portrait/photo_chat.jpg'); service_portrait = '/public/chat/portrait/photo_chat.jpg' } $(".serviceName").text(back_data.service_data.service_name); $(".chatMeassge").find('.chat-block').remove(); $.each(back_data.messageList, function (i, item) { let mhtml = ''; if (item.is_service){ if (item.content_type === 'text'){ mhtml += '
'+zzsrz+'
' $(".serverReplyStatu").remove() $(".chatMeassge").find('.chatL').eq(-1).find('.chatting-left').append(htmll); }else { $(".serverReplyStatu").remove(); } } }) //jQuery实时监听input值变化 $("#textContent").on("input valuechange",function(){ let strText = $.trim($(this).val()); let chatUsid = foowwLocalStorage.get(chatUsidKey); let chatSession = foowwLocalStorage.get(chatSessionKey); socket_app.emit('realTimeInputMessage', {'text': strText, 'chatSession': chatSession, 'chatUsid': chatUsid}) }); // 点击发送 $("#faSongBtn").on('click', function () { let chatUsid = foowwLocalStorage.get(chatUsidKey); let chatSession = foowwLocalStorage.get(chatSessionKey); let textMag = $.trim($("#textContent").val()); if (!textMag){ return alert('Vui lòng nhập nội dung!!') } socket_app.emit('chatReceiveMessage', {'text': textMag, 'chatSession': chatSession, 'chatUsid': chatUsid, 'type': 'text'}); socket_app.emit('realTimeInputMessage', {'text': '', 'chatSession': chatSession, 'chatUsid': chatUsid}) let html = ''; let crr_time = new Date(); let daTime = formatDate(crr_time, 'MM-dd hh:mm'); html += '