实时推送消息提醒,后端全局ajax
1、控制器代码
public function timi_msg()
{
//处理逻辑
//获取新订单
$count = Db::name("draw_record")->where("status",0)->count("id");
//有新消息或者状态未变更都提醒
if($count > 0){
$data['num'] = $count;
$this->success("有新提现消息", "", $data);
}
}
2、要实现全局的话,就要在公共页面添加代码,以左侧菜单栏为例:application\admin\view\common\menu.html,自己选位置加。
<div class="l_kf" style="padding:10px;">
<a id='timimsg' href="#" target="_blank"> 新提现消息
<span class="badge" id="timimsg_num" style="background-color: red;">0</span>
</a>
<audio id="timi_audio">
<source src="/assets/tx.mp3" type="audio/mpeg">
</audio>
</div>
这里/assets/tx.mp3是你的提醒声音文件,class="badge"是fastadmin内置的CSS样式。
3、public\assets\js\backend\index.js里,在index: function () { 这个方法里,第一行直接加入代码:
var timi_audio = document.getElementById('timi_audio');
setInterval(function (){
Fast.api.ajax({
url: "index/timi_msg",
data: {}
},function(data, ret){
$("#timimsg_num").html(data['num']);
$("#timimsg").attr("href",data['url']);
if(parseInt(data['num'])>0){
timi_audio.play();//播放提醒声音
}else{
timi_audio.pause();/*暂停*/
}
});
}, 5000);//5秒钟请求1次
这样就修改好了,可以改成自己需要的东西,不一定只是消息提醒。