<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
|
<html>
|
<head>
|
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
|
<link href="images/reset.css?v={yun:}$config.cachecode{/yun}" rel="stylesheet" type="text/css" />
|
<link href="images/system.css?v={yun:}$config.cachecode{/yun}" rel="stylesheet" type="text/css" />
|
<link href="images/table_form.css?v={yun:}$config.cachecode{/yun}" rel="stylesheet" type="text/css" />
|
<script src="{yun:}$config.sy_weburl{/yun}/js/jquery-1.8.0.min.js?v={yun:}$config.cachecode{/yun}"></script>
|
<link href="{yun:}$config.sy_weburl{/yun}/js/layui/css/layui.css?v={yun:}$config.cachecode{/yun}" rel="stylesheet" type="text/css" />
|
<link href="{yun:}$config.sy_weburl{/yun}/app/template/chat/css/chat.css?v={yun:}$config.cachecode{/yun}" rel="stylesheet">
|
<script src="{yun:}$config.sy_weburl{/yun}/js/layui/layui.js?v={yun:}$config.cachecode{/yun}"></script>
|
<script src="{yun:}$config.sy_weburl{/yun}/js/layui/phpyun_layer.js?v={yun:}$config.cachecode{/yun}"></script>
|
<script src="js/admin_public.js?v={yun:}$config.cachecode{/yun}" language="javascript"></script>
|
<script src="{yun:}$config.sy_weburl{/yun}/app/template/chat/yunliao/websocket.js?v={yun:}$config.cachecode{/yun}"></script>
|
<title>后台管理</title>
|
</head>
|
<body class="body_ifm">
|
<div class="infoboxp">
|
<div class="tty-tishi_top">
|
<div class="admin_new_search_box">
|
<form action="index.php" name="myform" method="get" style="float:left" onsubmit="return ckmobliemsg()">
|
<input name="m" value="admin_chat_log" type="hidden" />
|
<input type="hidden" name="state" value="{yun:}$smarty.get.state{/yun}" />
|
<div class="admin_new_search_name">搜索类型:</div>
|
<div class="admin_Filter_text formselect" did="dtype">
|
<input type="button" {yun:}if $smarty.get.type=='' ||$smarty.get.type=='1' {/yun} value="发送人用户名" {yun:}elseif
|
$smarty.get.type=='2' {/yun} value="接收人用户名" {yun:}elseif $smarty.get.type=='3' {/yun} value="内容" {yun:}/if{/yun}
|
class="admin_Filter_but" id="btype" />
|
<input type="hidden" name="type" id="type" {yun:}if $smarty.get.type=='' {/yun} value="1" {yun:}else{/yun}value="{yun:}$smarty.get.type{/yun}"{yun:}/if{/yun}/>
|
<div class="admin_Filter_text_box" style="display:none" id="dtype">
|
<ul>
|
<li><a href="javascript:void(0)" onClick="formselect('1','type','发送人用户名')">发送人用户名</a></li>
|
<li><a href="javascript:void(0)" onClick="formselect('2','type','接收人用户名')">接收人用户名</a></li>
|
<li><a href="javascript:void(0)" onClick="formselect('3','type','内容')">内容</a></li>
|
</ul>
|
</div>
|
</div>
|
<input class="admin_Filter_search" type="text" name="keyword" size="25" style="float:left" value="{yun:}$smarty.get.keyword{/yun}" placeholder="请输入你要搜索的关键字" />
|
<div class="layui-input-inline" style="float: left;">
|
<div class="admin_new_search_name">时间搜索:</div>
|
<input class="admin_Filter_search t_w200" type="text" name="date" id="date" style="float:left;" value="{yun:}$smarty.get.date{/yun}" placeholder="请输入时段" />
|
<i class="t_tc_icon_time"></i>
|
</div>
|
<input class="admin_Filter_bth" type="submit" name="news_search" value="搜索" />
|
</form>
|
{yun:}include file="admin/admin_search.htm"{/yun}
|
</div>
|
<div class="clear"></div>
|
</div>
|
|
<div class="tty_table-bom">
|
<div class="table-list">
|
<div class="admin_table_border">
|
<iframe id="supportiframe" name="supportiframe" onload="returnmessage('supportiframe');" style="display:none"></iframe>
|
<form action="index.php?m=admin_chat_log&c=del" target="supportiframe" name="myform" method="post" id='myform'>
|
<table width="100%">
|
<thead>
|
<tr class="admin_table_top">
|
<th><label for="chkall">
|
<input type="checkbox" id='chkAll' onclick='CheckAll(this.form)' />
|
</label></th>
|
<th align="left"> {yun:}if $smarty.get.t=="id" && $smarty.get.order=="asc"{/yun} <a href="{yun:}searchurl order=desc t=id m=admin_chat_log untype='order,t'{/yun}">编号<img
|
src="images/sanj.jpg" /></a> {yun:}else{/yun} <a href="{yun:}searchurl order=asc t=id m=admin_chat_log untype='order,t'{/yun}">编号<img
|
src="images/sanj2.jpg" /></a> {yun:}/if{/yun} </th>
|
<th align="left">发送人</th>
|
<th align="left">接收人</th>
|
<th align="left" width="200">内容</th>
|
<th> {yun:}if $smarty.get.t=="sendTime" && $smarty.get.order=="asc"{/yun} <a href="{yun:}searchurl order=desc t=sendTime m=admin_chat_log untype='order,t'{/yun}">时间<img
|
src="images/sanj.jpg" /></a> {yun:}else{/yun} <a href="{yun:}searchurl order=asc t=sendTime m=admin_chat_log untype='order,t'{/yun}">时间<img
|
src="images/sanj2.jpg" /></a> {yun:}/if{/yun} </th>
|
<th class="admin_table_th_bg">操作</th>
|
</tr>
|
</thead>
|
<tbody>
|
|
{yun:}foreach item=v key=key from=$rows{/yun}
|
<tr align="center" {yun:}if ($key+1)%2=='0' {/yun}class="admin_com_td_bg"{yun:}/if{/yun} id="list{yun:}$v.id{/yun}">
|
<td><input type="checkbox" value="{yun:}$v.id{/yun}" name='del[]' onclick='unselectall()' rel="del_chk" /></td>
|
<td align="left" class="td1"><span>{yun:}$v.id{/yun}</span></td>
|
<td align="left">{yun:}$v.fname{/yun}</td>
|
<td align="left">{yun:}$v.tname{/yun}</td>
|
<td align="left" width="200">
|
{yun:}if $v.mtype=='img'{/yun}
|
<a href="javascript:void(0)" class="preview admin_n_img" url="{yun:}$v.content{/yun}"></a>
|
{yun:}else if $v.mtype=='voice'{/yun}
|
<div onclick="playVoice_admin(this)" data-id="{yun:}$v.id{/yun}" data-voice="{yun:}$v.content{/yun}">
|
<div>
|
<div class="chat_logo_zt">
|
<i id="onplay_{yun:}$v.id{/yun}" class="yuyinbox_wt"></i>{yun:}$v.voicelength{/yun}</div>
|
</div>
|
</div>
|
{yun:}else{/yun}
|
{yun:}$v.content{/yun}
|
{yun:}/if{/yun}
|
</td>
|
<td>{yun:}$v.sendTime|date_format:"%Y-%m-%d %H:%M"{/yun}</td>
|
<td>
|
<a href="javascript:void(0);" onclick="showChat('{yun:}$v.id{/yun}')" class="admin_new_c_bth admin_new_c_bth_yl">查看</a>
|
<a href="javascript:void(0)" onClick="layer_del('确定要删除?', 'index.php?m=admin_chat_log&c=del&id={yun:}$v.id{/yun}');"
|
class="admin_new_c_bth admin_new_c_bth_sc">删除</a></td>
|
</tr>
|
{yun:}/foreach{/yun}
|
<tr>
|
<td align="center"><input type="checkbox" id='chkAll2' onclick='CheckAll2(this.form)' /></td>
|
<td colspan="9">
|
<label for="chkAll2">全选</label>
|
<input class="admin_button" type="button" name="delsub" value="删除所选" onClick="return really('del[]')" />
|
<input class="admin_button" type="button" value="清理(一月前)" onClick="return clean('1')" />
|
<input class="admin_button" type="button" value="清理(三月前)" onClick="return clean('3')" />
|
<input class="admin_button" type="button" value="清理(半年前)" onClick="return clean('6')" />
|
<input class="admin_button" type="button" value="清理(一年前)" onClick="return clean('12')" />
|
</td>
|
</tr>
|
{yun:}if $total > $config.sy_listnum {/yun}
|
<tr>
|
{yun:}if $pagenum==1{/yun}
|
<td colspan="3"> 从 1 到 {yun:}$config.sy_listnum {/yun} ,总共 {yun:}$total{/yun} 条</td>
|
{yun:}else if $pagenum > 1 && $pagenum < $pages{/yun} <td colspan="3"> 从 {yun:}($pagenum-1) *
|
$config.sy_listnum + 1{/yun} 到 {yun:}$pagenum * $config.sy_listnum{/yun} ,总共 {yun:}$total{/yun} 条</td>
|
{yun:}else if $pagenum == $pages{/yun}
|
<td colspan="3"> 从 {yun:}($pagenum-1) * $config.sy_listnum + 1{/yun} 到 {yun:}$total{/yun} ,总共
|
{yun:}$total{/yun} 条</td>
|
{yun:}/if{/yun}
|
<td colspan="7" class="digg">{yun:}$pagenav{/yun}</td>
|
</tr>
|
{yun:}/if{/yun}
|
</tbody>
|
|
</table>
|
<input type="hidden" name="pytoken" id='pytoken' value="{yun:}$pytoken{/yun}">
|
</form>
|
<div id="chatvoice" class="none"></div>
|
</div>
|
</div>
|
</div>
|
</div>
|
|
<div id="chat_box" class="chat_box_all" style="display:none;height:500px;">
|
<div id="chat_content" class="chat_sendcontent">
|
<ul>
|
</ul>
|
</div>
|
</div>
|
<script>
|
|
var weburl = "{yun:}$config.sy_weburl{/yun}",
|
cantel = '',
|
canwx = '';
|
|
layui.use(['laydate'], function() {
|
var laydate = layui.laydate,
|
$ = layui.$;
|
laydate.render({
|
elem: '#date',
|
range: '~'
|
});
|
});
|
|
function ckmobliemsg() {
|
var sdate = $("#sdate").val();
|
var edate = $("#edate").val();
|
if (sdate && edate && toDate(edate) < toDate(sdate)) {
|
layer.msg("结束时间必须大于开始时间!", 2, 8);
|
return false;
|
}
|
}
|
$(document).ready(function() {
|
|
|
$(".preview").hover(function(){
|
var pic_url=$(this).attr('url');
|
layer.tips("<img src="+pic_url+" style='max-width:380px'>", this, {
|
maxWidth: '380px'
|
});
|
},function(){layer.closeAll('tips');});
|
|
$(".msgreturn").hover(function() {
|
var msg = $(this).attr('msg');
|
if ($.trim(msg) != '') {
|
layer.tips(msg, this, {
|
guide: 1,
|
style: ['background-color:#5EA7DC; color:#fff;top:-7px', '#5EA7DC']
|
});
|
$(".xubox_layer").addClass("xubox_tips_border");
|
}
|
}, function() {
|
var msg = $(this).attr('msg');
|
if ($.trim(msg) != '') {
|
layer.closeAll('tips');
|
}
|
});
|
})
|
|
function clean(month) {
|
parent.layer.confirm("确定清除吗?", function() {
|
var pytoken = $("#pytoken").val();
|
loadlayer();
|
$.post("index.php?m=admin_chat_log&c=clean", {
|
month: month,
|
pytoken: pytoken
|
}, function(data) {
|
parent.layer.closeAll();
|
var data = eval('(' + data + ')');
|
parent.layer.msg(data.msg, Number(data.tm), Number(data.st), function() {
|
location.reload();
|
});
|
return false;
|
})
|
});
|
}
|
//播放语音
|
function playVoice_admin(obj) {
|
var chatid = $(obj).attr('data-id');
|
var voiceurl = $(obj).attr('data-voice');
|
var onplay = false;
|
if ($('.yuyinbox_onplay')) {
|
$('.yuyinbox_onplay').attr('class', 'yuyinbox_wt');
|
}
|
if (isIELowVision) {
|
var head = document.head || document.getElementsByTagName('head')[0];
|
var bgsound = document.getElementsByTagName('bgsound')[0];
|
|
if (!bgsound) {
|
|
var player = document.createElement('bgsound');
|
head.appendChild(player);
|
player.src = voiceurl;
|
onplay = true;
|
|
}else{
|
if (bgsound.src == '') {
|
bgsound.src = voiceurl;
|
onplay = true;
|
} else {
|
bgsound.src = '';
|
}
|
}
|
|
|
} else {
|
|
var audio = $("#player")[0];
|
|
|
|
if(audio && !audio.paused && audio.src==voiceurl){
|
audio.pause();
|
audio.currentTime = 0;
|
}else{
|
|
$("#chatvoice").html("")
|
//来一个audio内容,看好这里已经给src赋值了
|
var aud = $('<audio id="player" src="' + voiceurl + '" hidden></audio>')
|
//放到容器里区
|
$("#chatvoice").html(aud)
|
//获取当前audio
|
audio = $("#player")[0];
|
//局部load()一下
|
aud.load();
|
|
audio.play(); // 播放
|
|
onplay = true;
|
}
|
|
|
|
|
audio.addEventListener("play", function() { //开始播放时触发
|
//console.log('开始播放');
|
|
});
|
audio.addEventListener("pause", function() { // 暂停时会触发,当播放完一首歌曲时也会触发
|
//console.log('播放暂停');
|
})
|
audio.addEventListener("ended", function() {
|
//console.log('播放结束');
|
$('.yuyinbox_onplay').attr('class', 'yuyinbox_wt');
|
}, false);
|
|
}
|
if (onplay) {
|
$('#onplay_' + chatid).attr('class', 'yuyinbox_onplay');
|
} else {
|
$('#onplay_' + chatid).attr('class', 'yuyinbox_wt');
|
}
|
|
}
|
|
var chatpage = 1;
|
var isAdmin = true,
|
inviteid = '',
|
jid = '',
|
mine = {id: '',usertype: ''};
|
|
function showChat(id){
|
adminMoreChat(id);
|
$.layer({
|
type : 1,
|
title : '聊天记录',
|
area : ['500px','500px'],
|
page : {dom :"#chat_box"},
|
close: function(){
|
chatpage = 1;
|
$('#chat_content').html('<ul></ul>');
|
}
|
});
|
}
|
function adminMoreChat(id){
|
var pytoken = $("#pytoken").val();
|
$.ajax({
|
url: 'index.php?m=admin_chat_log&c=userchat',
|
type: 'POST',
|
data: {pytoken:pytoken, id: id, page: chatpage},
|
dataType: 'json',
|
success: function (res) {
|
|
if (res) {
|
if(res.msg){
|
return layer.msg(res.msg, 2, 8);
|
}
|
if(res.fuser && res.tuser){
|
var title = res.fuser.nickname + '和' + res.tuser.nickname + '的聊天记录';
|
$('.layui-layer-title').text(title);
|
}
|
|
cantel = res.cantel;
|
canwx = res.canwx;
|
joblist = res.joblist;
|
expect = res.expect;
|
|
chatpage = chatpage + 1;
|
var scroll = null;
|
if (chatpage > 2) {
|
// 第二页开始,记录前一次滚动距离
|
scroll = document.getElementById('chat_content').scrollHeight;
|
}
|
|
$('#chat_more').remove();
|
if (res.code == 0) {
|
var chatlog = res.data;
|
if (chatlog.length > 0) {
|
pastSend = chatlog[0].sendTime;
|
for (var i in chatlog) {
|
renderPast(chatlog[i]);
|
// 最后一条时,如还有历史消息,增加更多消息
|
if (i == chatlog.length - 1 && res.ismore) {
|
$("#chat_content").find('ul').prepend(
|
'<li id="chat_more" class="chat_more" onclick="adminMoreChat('+ id +')"><div class="chat_comjobtip"><span class="chat_comjobtip_p">查看更多消息</span></div></li>'
|
);
|
lastid = chatlog[i]['id'];
|
}
|
if (scroll) {
|
// 渲染后,滚动到上一页的距离
|
var newScroll = document.getElementById('chat_content').scrollHeight;
|
chatScrollTo(newScroll - scroll);
|
}
|
}
|
}
|
}
|
|
}
|
}
|
});
|
}
|
</script>
|
</body>
|
</html>
|