// 缓存机制 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 += '
' + '
' + '' + '
' + back_data.service_data.service_name + '
' + '
' + '
' + item.text + '
' + '
' + getShiQuTime(item.create_time) + '
' + '
' }else if (item.content_type === 'picture'){ mhtml += '
' + '
' + '' + '
' + back_data.service_data.service_name + '
' + '
' + '
' + '' + '
' + getShiQuTime(item.create_time) + '
' + '
' }else if(item.content_type === 'file'){ mhtml += '
' + '
' + '' + '
' + back_data.service_data.service_name + '
' + '
' + '
' + '
' + '
' + '
' + '' + item.filename + '' + ''+ item.file_size +'' + '
' + '
' + 'Tải xuống' + '
' } } if (item.is_customer){ if (item.content_type == 'text'){ mhtml += '
' + '
' + '' + '
' + '
' + item.text + '
' + '
' + getShiQuTime(item.create_time) + '
' + '
' }else if (item.content_type == 'picture'){ mhtml += '
' + '
' + '' + '
' + '
' + '' + '
' + getShiQuTime(item.create_time) + '
' + '
' }else if (item.content_type == 'video'){ mhtml += '
' + '
' + ' ' + '
' + '
' + '
' + '
\n' + ' \n' + '
\n' + '
\n' + '
' + item.filename + '
\n' + '
' + item.file_size + 'KB
\n' + '
\n' + '
\n' + '
\n' + '
\n' + '
\n' + '
' } } if (mhtml.length > 0){ $(".chatMeassge").append(mhtml); } }) baguetteBox.run('.chatMeassge'); let tt2 = setTimeout(function () { $('.chatMeassge').scrollTop($('.chatMeassge')[0].scrollHeight); }, 500); $(".blockScreen").hide(); } let site_data = back_data.site_data; if (site_data){ if (site_data.site_right_info_back_color){ $(".problemBox").css('background-color', site_data.site_right_info_back_color); } if (site_data.site_right_info_img){ $(".problemBox .advertisement").find('img').attr('src', site_data.site_right_info_img) }else{ $(".problemBox .advertisement").find('img').hide(); } if (site_data.site_main_color){ $(".evaluateForm .subComment").css('background-color', site_data.site_main_color); $(".chatTextBox .optionBtn").css('background-color', site_data.site_main_color); $(".TextBox .iconfont").css('color', site_data.site_main_color); } if (site_data.site_title){ $("title").text(site_data.site_title); } if (site_data.site_icon){ $("link[rel='icon']").attr('href',site_data.site_icon); } if (site_data.site_announcement){ $("#site_announcement").parent().show(); $("#site_announcement").append(site_data.site_announcement); }else{ $("#site_announcement").parent().hide(); } } foowwLocalStorage.set(chatUsidKey, back_data.chatUsid, new Date().getTime() + 60000 * 60 * 24); console.log('连接初始化成功!') }else { $("body").empty(); console.log('连接初始化失败!') } }) // 接收CSKHmessage socket_app.on('chatReceiveServiceMessage', function (msg) { console.log('chatReceiveServiceMessage:', msg) let sHtml = ''; if (msg.content_type === 'text'){ sHtml += '
' + '
' + '' + '
' + chatConfig.service_data.service_name + '
' + '
' + '
' + msg.text + '
' + '
' + getShiQuTime(msg.create_time) + '
' + '
' }else if (msg.content_type === 'picture'){ sHtml += '
' + '
' + '' + '
' + chatConfig.service_data.service_name + '
' + '
' + '
' + '' + '
' + getShiQuTime(msg.create_time) + '
' + '
' }else if(msg.content_type === 'file'){ sHtml += '
' + '
' + '' + '
' + chatConfig.service_data.service_name + '
' + '
' + '
' + '
' + '
' + '
' + '' + msg.filename + '' + ''+ msg.file_size +'' + '
' + '
' + 'Tải xuống' + '
' } if (windowFocusStatu){ customerWinFocus_func() } $(".chatMeassge").append(sHtml); baguetteBox.run('.chatMeassge'); let tt = setTimeout(function () { $('.chatMeassge').scrollTop($('.chatMeassge')[0].scrollHeight); }, 500); }) // 上传hình ảnh反馈 socket_app.on('chatUploadFeedback', function (msg) { let state = msg.state; let _data = msg.data; if (state !== 200){return;} let uoloadCode = _data.uoloadCode; let file_path = _data.file_path; if (!uoloadCode){return} let imgObj = $("#" + uoloadCode); imgObj.find('.loading').hide(); imgObj.find('a').attr('href', file_path).show(); imgObj.find('a').find('img').attr('src', file_path); baguetteBox.run('.chatMeassge'); let tt = setTimeout(function () { $('.chatMeassge').scrollTop($('.chatMeassge')[0].scrollHeight); }, 500); }) // 接收服务器反馈 socket_app.on('chatReceiveServerFeedback', function (msg) { let result_data = msg.data; let action = result_data.action; if (action === 'left_customer_score') { // 左侧评论反馈 $(".evaluateForm").hide(); $(".evaluateSuccess").show(); $(".scoreSubLoading").css('display', 'none'); $(".scoreSuccessBox").css('display', 'flex'); } else if (action === 'serverUploadFeedback') { // 客户端上次文件,反馈 if (msg.code === 200) { let _data = msg.data; let uoloadCode = _data.uoloadCode; let file_path = _data.file_path; if (!uoloadCode) {return} let imgObj = $("#" + uoloadCode); imgObj.find('.loading').hide(); imgObj.find('a').attr('href', file_path).show(); imgObj.find('a').find('img').attr('src', file_path); imgObj.find('.time').show(); baguetteBox.run('.chatMeassge'); $("#uploadfile").val(''); let tt = setTimeout(function () { let chatM = $('.chatMeassge'); chatM.scrollTop(chatM[0].scrollHeight); }, 500); } }else if(action === 'finish_conversation'){ // 结束对话评论,处理反馈 if (msg.code === 200){ alert('Cuộc trò chuyện đã kết thúc!') $("#diaShade").hide(0); $(".chatTextBox").hide(0); $(".chatFinishTextBox").show(0); } }else if(action === 'serviceColseChat'){ // 服务端主动结束会话 if (result_data.score_state){ $("#diaShade").hide(0); $(".chatTextBox").hide(0); $(".chatFinishTextBox").show(0); }else { $(".chatTextBox").hide(0); $(".chatFinishTextBox").show(0); $("#diaShade").show(0); $(".dialogWrapDanFu").show(); $(".confirmModal").hide(); $("#colse_dialogWrapDanFu").hide(); } }else if(action === 'serviceRetractMessage'){ // 服务器主动撤回消息 const crr_messageObj = $("div[data-uuid='"+result_data.dataId+"']"); // const html = '
Đối phương đã xóa một tin nhắn
' // crr_messageObj.empty().append(html) crr_messageObj.empty() } else if (action === 'serverReply'){ if (result_data.statu === 'ongoing'){ let htmll = '

'+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 += '
' + '
' + '' + '
' + '
' + textMag + '
' + '
' + daTime + '
' + '
' $(".chatMeassge").append(html); $('.chatMeassge').scrollTop($('.chatMeassge')[0].scrollHeight); $("#textContent").val(''); }) // 回车键发送消息 $("#textContent").keydown(function (e) { if ((e.ctrlKey == true) && (e.key == "Enter")) { var mtxt = $("#textContent"); mtxt.val(mtxt.val() + '\n'); }else if(e.key == "Enter" && !e.ctrlKey){ e.preventDefault(); $("#faSongBtn").click(); } }) // 发送hình ảnh触发函数 $("#uploadfile").on('change', function () { let objt = $("#uploadfile"); let chatUsid = foowwLocalStorage.get(chatUsidKey); let chatSession = foowwLocalStorage.get(chatSessionKey); if (objt.get(0).files.length <= 0){ return } let filename = objt.get(0).files[0].name; let filesize = objt.get(0).files[0].size; let _ftype_arr = filename.split('.'); let _ftype = _ftype_arr[_ftype_arr.length-1] let _ftype_to = '.' + _ftype.toLocaleLowerCase() let imgindex = $.inArray(_ftype_to, image_types); let videoindex = $.inArray(_ftype_to, video_types); if (filesize > file_size){ return alert('Tệp quá lớn!') } if (imgindex >= 0){ return send_chat_images(objt.get(0).files[0], chatUsid, chatSession, filename, filesize) }else if(videoindex >= 0){ return snd_chat_video(objt.get(0).files[0], chatUsid, chatSession, filename, filesize) }else{ return alert('文件格式错误!~~~~~'+filename) } }) // Gửi đi评论 $("#subCommentBtn").on('click', function () { if ($(".pingFen").find('.active').length <= 0){ return alert('Vui lòng đánh giá!') } let level = parseInt($(".pingFen").find('.active').attr('data-fenshu')); let cntText = $.trim($("#commentText").val()); if (!cntText){return alert('Vui lòng nhập nội dung đánh giá!!')} let chatUsid = foowwLocalStorage.get(chatUsidKey); let chatSession = foowwLocalStorage.get(chatSessionKey); let _data = { 'action':'left_customer_score', 'level': level, 'cntText': cntText, 'chatUsid': chatUsid, 'chatSession': chatSession, } $(".evaluateForm").hide(); $(".evaluateSuccess").show(); $(".scoreSubLoading").css('display', 'block'); $(".scoreSuccessBox").css('display', 'none'); socket_app.emit('customerScore', _data) }) // 结束会话 $("#finishConversation").on('click', function () { $("#diaShade").show(); $(".dialogWrapDanFu").hide(); $(".promptBox").find('.xw').show(); $(".promptBox").find('img').hide(); $(".confirmModal").show(); }) $(".cancelBtn").on('click', function (){ $("#diaShade").hide(); }) $(".confirmBtn").on('click', function () { if ($(".promptBox").find('.xw').css('display') === 'block'){ let chatUsid = foowwLocalStorage.get(chatUsidKey); let chatSession = foowwLocalStorage.get(chatSessionKey); let _data = { chatUsid: chatUsid, chatSession: chatSession, } socket_app.emit('finishConversation',_data); return if (chatConfig.is_score){ $("#diaShade").hide(); let _data = { chatUsid: chatUsid, chatSession: chatSession, } socket_app.emit('finishConversation',_data); }else { $("#diaShade").show(); $(".dialogWrapDanFu").show(); $(".confirmModal").hide(); } }else if($(".promptBox").find('img').css('display') !== 'none'){ $(".promptBox").find('img').attr('src', ''); $(".promptBox").find('img').css('display', 'none'); $("#diaShade").hide(); $(".dialogWrapDanFu").hide(); $(".confirmModal").hide(); let filename = clipboardFile.name; let filesize = clipboardFile.size; let _ftype_arr = filename.split('.'); let _ftype = _ftype_arr[_ftype_arr.length-1] let _ftype_to = '.' + _ftype.toLocaleLowerCase() let imgindex = $.inArray(_ftype_to, image_types); let videoindex = $.inArray(_ftype_to, video_types); if (filesize > file_size){ return alert('Tệp quá lớn!') } let chatUsid = foowwLocalStorage.get(chatUsidKey); let chatSession = foowwLocalStorage.get(chatSessionKey); if (imgindex >= 0){ return send_chat_images(clipboardFile, chatUsid, chatSession, filename, filesize) }else if(videoindex >= 0){ return snd_chat_video(clipboardFile, chatUsid, chatSession, filename, filesize) }else{ return alert('文件格式错误!~~~~~'+filename) } } }) // 评论弹窗Gửi đi $(".subPingLunBtn").on('click', function () { let level = $(".pfLevel .icon-pingfen").length; let cntText = $.trim($("#pinLunText").val()); if (level <= 0){return alert('Vui lòng đánh giá!');} if (!cntText){return alert('Nhập dịch vụ khách hàng!');} let chatUsid = foowwLocalStorage.get(chatUsidKey); let chatSession = foowwLocalStorage.get(chatSessionKey); let _data = { chatUsid: chatUsid, chatSession: chatSession, level: level, cntText: cntText, action: 'sub_opl', } socket_app.emit('finishConversation',_data); }) // 监控粘贴板上传hình ảnh $("#textContent").bind("paste",function(e){ // 获取文本值 // let textl = event.clipboardData.getData('text'); if (event.clipboardData.files.length <=0 ){ return; } let file = event.clipboardData.files[0]; // 判断类型 if (!(/^image\/[jpeg|png|gif|jpg]/.test(file.type))) { return; } // 读取成base64 let reader = new FileReader(); reader.readAsDataURL(file); reader.onload = function (event) { $("#diaShade").show(); $(".dialogWrapDanFu").hide(); $(".confirmModal").show(); $(".promptBox").find('.xw').hide(); let c_img_obj = $(".promptBox").find('img'); c_img_obj.attr('src', event.target.result) c_img_obj.show(); } clipboardFile = file; }) // 问题选择监控 $("input[type='radio']").on('click', function () { let problem = $.trim($("input[name='problem']:checked").val()); console.log('problem:', problem) $(".demoIMage img").attr('src', ''); if (problem === 'czwt'){ $("#account").parent().show(); $("#czTime").parent().show(); $("#problemImage").parent().show(); $("#cjhdText").parent().hide(); $("#txTme").parent().hide() }else if (problem === 'txwt'){ $("#account").parent().show(); $("#txTme").parent().show(); $("#problemImage").parent().show(); $("#cjhdText").parent().hide(); $("#czTime").parent().hide(); }else if (problem === 'cjsq'){ $("#account").parent().show(); $("#cjhdText").parent().css('display', 'flex'); $("#problemImage").parent().hide(); $("#txTme").parent().hide(); $("#czTime").parent().hide(); }else if (problem === 'qtwt'){ $("#account").parent().hide(); $("#cjhdText").parent().hide(); $("#problemImage").parent().hide(); $("#txTme").parent().hide(); $("#czTime").parent().hide(); $(".subBtn").hide(); $(".enterBtn").show(); } }) }) // Gửi đi留言 function sub_LeaveMessage_func() { let chatUsid = foowwLocalStorage.get(chatUsidKey) if (!chatUsid){ alert('Xin lỗi vì sự chờ đợi lâu. Hãy làm mới trang và thử lại!!') return location.reload(); } let username = $.trim($("#username").val()); let telephone = $.trim($("#telephone").val()); let email = $.trim($("#email").val()); let note = $.trim($("#note").val()); if (username && username.length > 10){ return alert('Độ dài tên quá dài!') } if (note && note.length > 500){ return alert('Độ dài ghi chú quá dài!') } var reg =/^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/; if (email && !reg.test(email)){ return alert('Vui lòng nhập địa chỉ email hợp lệ!') } if (!username){return alert('Vui lòng nhập tên của bạn!')} if (!telephone){return alert('Vui lòng nhập số điện thoại!')} if (!note){return alert('Vui lòng nhập ghi chú!')} let pdata = {'action': 'subLeaveMessage', 'username': username, 'telephone': telephone, 'email': email, 'note':note, 'chatUsid': chatUsid, 'site_code': sessionCode}; socket_app.emit('leaveMessage', pdata) $(".LeaveMessage").hide(); alert('Thông tin của bạn đã được gửi thành công!') let ttt = setTimeout(function () { }, 3000) } // 评分 function pf_func(obj) { if (obj.hasClass('icon-pingfen1')){ obj.removeClass('icon-pingfen1').addClass('icon-pingfen'); }else { obj.removeClass('icon-pingfen').addClass('icon-pingfen1'); } } // 文件Tải xuống function download_func(fileUrl) { var link = document.createElement('a'); link.setAttribute("download", ""); link.href = fileUrl; link.click(); link.remove(); } // 发送hình ảnh function send_chat_images(imgfile, chatUsid, chatSession, filename, filesize) { let crr_time = new Date(); let crr_timeC = Date.parse(crr_time); let daTime = formatDate(crr_time, 'MM-dd hh:mm'); let uoloadCode = getRandomString(6) + crr_timeC; let chatMeassgeObj = $(".chatMeassge"); let html = ''; html += '
' + '
' + '' + '
' + '
' + '' + '' + '' + '
' + '
' chatMeassgeObj.append(html); chatMeassgeObj.scrollTop(chatMeassgeObj[0].scrollHeight); var formdata = new FormData(); formdata.append("upload", imgfile); formdata.append("action",'chatUploadImage'); formdata.append("chatUsid", chatUsid); formdata.append("chatSession", chatSession); formdata.append("filename", filename); formdata.append("filesize", filesize); xtajax.post({ 'data':formdata, 'contentType':false, 'processData': false, 'success': function (data) { console.log('update img:', data) if (data.code === 200){ socket_app.emit('chatUploadFile', {'image': data.message, 'chatSession': chatSession, 'chatUsid': chatUsid, 'uoloadCode': uoloadCode, 'action': 'upload_image'}); }else{ $("#"+uoloadCode).parent().parent().parent().remove(); return alert(data.message); } } }) } // 发送视频 function snd_chat_video(imgfile, chatUsid, chatSession, filename, filesize) { let crr_time = new Date(); let crr_timeC = Date.parse(crr_time); let daTime = formatDate(crr_time, 'MM-dd hh:mm'); let uoloadCode = getRandomString(6) + crr_timeC; let chatMeassgeObj = $(".chatMeassge"); let html = ''; html += '
' + '
' + ' ' + '
' + '
' + '
' + '
\n' + ' \n' + '
\n' + '
\n' + '
' + filename + '
\n' + '
'+filesize+'B
\n' + '
\n' + '
\n' + '
\n' + '
' + '
\n' + '
\n' + '
\n' + '
\n' + '
' chatMeassgeObj.append(html); chatMeassgeObj.scrollTop(chatMeassgeObj[0].scrollHeight); var send_showprogress = function (evt) { var loaded = evt.loaded; var tot = evt.total; var percent = Math.floor(100*loaded/tot); var progressbar = $('#'+uoloadCode+' .progress-bar'); // progressbar.html(percent+'%'); // progressbar.attr('aria-valuenow',percent); progressbar.css('width',percent +'%'); } var send_hideprogressbar = function () { var progressbar = $('#'+uoloadCode).find('.progress'); progressbar.html('0%'); progressbar.attr('aria-valuenow',0); progressbar.css('width','0%'); progressbar.remove(); } var formdata = new FormData(); formdata.append("upload", imgfile); formdata.append("action",'chatUploadVideo'); formdata.append("chatUsid", chatUsid); formdata.append("chatSession", chatSession); formdata.append("filename", filename); formdata.append("filesize", filesize); xtajax.post({ 'data':formdata, 'contentType':false, 'processData': false, 'progress': send_showprogress, 'success': function (data) { console.log('update video:', data) if (data.code === 200){ socket_app.emit('chatUploadFile', {'video': data.message, 'chatSession': chatSession, 'chatUsid': chatUsid, 'uoloadCode': uoloadCode, 'action': 'upload_video', 'filename': filename, 'filesize': filesize}); let ssst = setTimeout(function () { send_hideprogressbar(); }, 1000) }else{ $("#"+uoloadCode).parent().parent().parent().remove(); return alert(data.message); } } }) }