admin user message
This commit is contained in:
parent
76d48e2469
commit
642404359a
94
app/admin/controller/Notice.php
Normal file
94
app/admin/controller/Notice.php
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace app\admin\controller;
|
||||||
|
|
||||||
|
use app\common\controller\AdminController;
|
||||||
|
use think\facade\View;
|
||||||
|
use think\facade\Request;
|
||||||
|
use think\facade\Session;
|
||||||
|
use think\facade\Db;
|
||||||
|
use app\common\model\Message as MessageModel;
|
||||||
|
use taoler\com\Message;
|
||||||
|
|
||||||
|
|
||||||
|
class Notice extends AdminController
|
||||||
|
{
|
||||||
|
//显示消息
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
if(Request::isAjax()){
|
||||||
|
$notices = MessageModel::where(['type'=>0,'delete_time'=>0])->select();
|
||||||
|
$count = $notices->count();
|
||||||
|
$res = [];
|
||||||
|
if($count){
|
||||||
|
$res = ['code'=>0,'msg'=>'','count'=>$count];
|
||||||
|
foreach($notices as $msg){
|
||||||
|
$res['data'][] = ['id'=>$msg['id'],'type'=>$msg['type'],'title'=>$msg['title'],'user_id'=>$msg['user_id'],'content'=>$msg['content'],'ctime'=>$msg['create_time']];
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$res = ['code'=>-1,'msg'=>'还没有发布任何通知'];
|
||||||
|
}
|
||||||
|
return json($res);
|
||||||
|
}
|
||||||
|
return View::fetch();
|
||||||
|
}
|
||||||
|
|
||||||
|
//添加消息
|
||||||
|
public function add()
|
||||||
|
{
|
||||||
|
$sendId = Session::get('user_id');
|
||||||
|
$data = Request::only(['type','title','receve_id','content']);
|
||||||
|
if($data['type'] == 1){
|
||||||
|
$receveId = $data['receve_id']; //个人通知
|
||||||
|
} else {
|
||||||
|
$receveId = 0; //系统通知
|
||||||
|
}
|
||||||
|
unset($data['receve_id']); //收信人移除
|
||||||
|
$data['user_id'] = $sendId; //发信人入信息库
|
||||||
|
//写入信息库
|
||||||
|
$result = Message::sendMsg($sendId,$receveId,$data);
|
||||||
|
if($result){
|
||||||
|
$res = ['code'=>0,'msg'=>'发布成功'];
|
||||||
|
} else {
|
||||||
|
$res = ['code'=>0,'msg'=>'发布失败'];
|
||||||
|
}
|
||||||
|
return json($res);
|
||||||
|
}
|
||||||
|
|
||||||
|
//编辑VIP积分规则
|
||||||
|
public function edit()
|
||||||
|
{
|
||||||
|
$id = input('id');
|
||||||
|
if(Request::isAjax()){
|
||||||
|
$data = Request::only(['id','title','type','content']);
|
||||||
|
$result = MessageModel::update($data);
|
||||||
|
if($result){
|
||||||
|
$res = ['code'=>0,'msg'=>'编辑成功'];
|
||||||
|
}else{
|
||||||
|
$res = ['code'=>-1,'msg'=>'编辑失败'];
|
||||||
|
}
|
||||||
|
return json($res);
|
||||||
|
}
|
||||||
|
$msg = Db::name('message')->find($id);
|
||||||
|
View::assign(['msg'=>$msg]);
|
||||||
|
return View::fetch();
|
||||||
|
}
|
||||||
|
|
||||||
|
//删除消息
|
||||||
|
public function delete($id)
|
||||||
|
{
|
||||||
|
if(Request::isAjax()){
|
||||||
|
$msg = MessageModel::find($id);
|
||||||
|
$result = $msg->delete();
|
||||||
|
|
||||||
|
if($result){
|
||||||
|
return json(['code'=>0,'msg'=>'删除成功']);
|
||||||
|
}else{
|
||||||
|
return json(['code'=>-1,'msg'=>'删除失败']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -19,6 +19,10 @@ class Message extends Model
|
|||||||
return $this->hasMany('User','user_id','id');
|
return $this->hasMany('User','user_id','id');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//发件箱关联收件箱
|
||||||
|
public function messageto()
|
||||||
|
{
|
||||||
|
return $this->hasMany('MessageTo','message_id','id');
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
@ -18,6 +18,11 @@ class MessageTo extends Model
|
|||||||
return $this->hasMany('User','user_id','id');
|
return $this->hasMany('User','user_id','id');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function messages()
|
||||||
|
{
|
||||||
|
//评论关联用户
|
||||||
|
return $this->belongsTo('Message','message_id','id');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
@ -167,7 +167,7 @@ class Article extends BaseController
|
|||||||
} else {
|
} else {
|
||||||
$receveId = $article['user_id'];
|
$receveId = $article['user_id'];
|
||||||
}
|
}
|
||||||
$data = ['title'=>$title,'link'=>$link,'user_id'=>$sendId];
|
$data = ['title'=>$title,'content'=>'评论通知','link'=>$link,'user_id'=>$sendId,'type'=>1];
|
||||||
Message::sendMsg($sendId,$receveId,$data);
|
Message::sendMsg($sendId,$receveId,$data);
|
||||||
|
|
||||||
$res = ['code'=>1, 'msg'=>'留言成功'];
|
$res = ['code'=>1, 'msg'=>'留言成功'];
|
||||||
|
@ -11,6 +11,7 @@ use think\facade\Cookie;
|
|||||||
use think\facade\Cache;
|
use think\facade\Cache;
|
||||||
use think\facade\View;
|
use think\facade\View;
|
||||||
use app\common\model\User as userModel;
|
use app\common\model\User as userModel;
|
||||||
|
use taoler\com\Message;
|
||||||
|
|
||||||
class Login extends BaseController
|
class Login extends BaseController
|
||||||
{
|
{
|
||||||
@ -56,6 +57,9 @@ class Login extends BaseController
|
|||||||
$user = new \app\common\model\User();
|
$user = new \app\common\model\User();
|
||||||
$res = $user->login($data);
|
$res = $user->login($data);
|
||||||
if ($res == 1) {
|
if ($res == 1) {
|
||||||
|
//获取系统站内通知信息
|
||||||
|
Message::insertMsg(session('user_id'));
|
||||||
|
|
||||||
return json(['code'=>0,'msg'=>'登陆成功','url'=>'/']);
|
return json(['code'=>0,'msg'=>'登陆成功','url'=>'/']);
|
||||||
} else {
|
} else {
|
||||||
return json(['code'=>-1,'msg'=>$res]);
|
return json(['code'=>-1,'msg'=>$res]);
|
||||||
|
@ -5,6 +5,8 @@ use app\common\controller\BaseController;
|
|||||||
use think\facade\Session;
|
use think\facade\Session;
|
||||||
use think\facade\Request;
|
use think\facade\Request;
|
||||||
use think\facade\Db;
|
use think\facade\Db;
|
||||||
|
use app\common\model\Message as MessageModel;
|
||||||
|
use app\common\model\MessageTo;
|
||||||
use taoler\com\Message as MessageApi;
|
use taoler\com\Message as MessageApi;
|
||||||
|
|
||||||
class Message extends BaseController
|
class Message extends BaseController
|
||||||
@ -33,12 +35,13 @@ class Message extends BaseController
|
|||||||
if($count){
|
if($count){
|
||||||
$res = ['status'=>0,'msg'=>'','count'=>$count];
|
$res = ['status'=>0,'msg'=>'','count'=>$count];
|
||||||
foreach ($msg as $k => $v){
|
foreach ($msg as $k => $v){
|
||||||
$data = ['id'=>$v['id'],'name'=>$v['name'],'content'=>$v['title'],'time'=>date("Y-m-d H:i",$v['create_time']),'link'=>$v['link'],'read'=>$v['is_read'] ? '已读':'未读'];
|
$data = ['id'=>$v['id'],'name'=>$v['name'],'title'=>$v['title'],'content'=>$v['content'],'time'=>date("Y-m-d H:i",$v['create_time']),'link'=>$v['link'],'read'=>$v['is_read'] ? '已读':'未读','type'=>$v['message_type']];
|
||||||
$res['rows'][] = $data;
|
$res['rows'][] = $data;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
$res = ['status'=>0,'msg'=>'','rows'=>''];;
|
$res = ['status'=>0,'msg'=>'','rows'=>''];;
|
||||||
}
|
}
|
||||||
|
//var_dump($res);
|
||||||
return json($res);
|
return json($res);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -46,11 +49,17 @@ class Message extends BaseController
|
|||||||
public function read()
|
public function read()
|
||||||
{
|
{
|
||||||
$id =input('id');
|
$id =input('id');
|
||||||
$msg = Db::name('message_to')->where('id',$id)->save(['is_read'=>1]);
|
//$msg = Db::name('message_to')->where('id',$id)->save(['is_read'=>1]);
|
||||||
|
|
||||||
$res=['status' =>0];
|
$msg = MessageTo::field('id,message_id')->with(['messages' => function($query){
|
||||||
|
$query->where('delete_time',0)->field('id,content');
|
||||||
return json($res);
|
}])->where('id',$id)->find();
|
||||||
|
//改变读状态
|
||||||
|
$result = $msg->update(['id'=>$id,'is_read'=>1]);
|
||||||
|
if($result){
|
||||||
|
$res=['status' =>0,'content'=>$msg['messages']['content']];
|
||||||
|
return json($res);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -173,7 +173,11 @@ INSERT INTO `tao_auth_rule` VALUES ('72', 'admin/Vip/add', '添加vip等级', '1
|
|||||||
INSERT INTO `tao_auth_rule` VALUES ('73', 'admin/Vip/vipEdit', '编辑vip等级', '1', '1', '1', '1', '', '0', '21', '', '1585548029', '0', '0');
|
INSERT INTO `tao_auth_rule` VALUES ('73', 'admin/Vip/vipEdit', '编辑vip等级', '1', '1', '1', '1', '', '0', '21', '', '1585548029', '0', '0');
|
||||||
INSERT INTO `tao_auth_rule` VALUES ('74', 'admin/Vip/delete', '删除vip等级', '1', '1', '2', '1', '', '0', '22', '', '1585548077', '0', '0');
|
INSERT INTO `tao_auth_rule` VALUES ('74', 'admin/Vip/delete', '删除vip等级', '1', '1', '2', '1', '', '0', '22', '', '1585548077', '0', '0');
|
||||||
INSERT INTO `tao_auth_rule` VALUES ('75', 'admin/Set/email', '邮箱设置', '1', '1', '2', '1', '', '0', '23', '', '1585548143', '0', '0');
|
INSERT INTO `tao_auth_rule` VALUES ('75', 'admin/Set/email', '邮箱设置', '1', '1', '2', '1', '', '0', '23', '', '1585548143', '0', '0');
|
||||||
INSERT INTO `tao_auth_rule` VALUES ('76', 'admin/User/auth', '设置超级用户', '1', '1', '1', '1', '', '0', '22', '', '1578984801', '0', '0');
|
INSERT INTO `tao_auth_rule` VALUES ('76', 'admin/Notice/index', '发布通知', '1', '1', '4', '1', '', '1', '10', '', '1585618141', '0', '0');
|
||||||
|
INSERT INTO `tao_auth_rule` VALUES ('77', 'admin/Notice/add', '添加通知', '1', '1', '4', '1', '', '0', '11', '', '1585663336', '0', '0');
|
||||||
|
INSERT INTO `tao_auth_rule` VALUES ('78', 'admin/Notice/edit', '编辑通知', '1', '1', '4', '1', '', '0', '12', '', '1585663366', '1585663465', '0');
|
||||||
|
INSERT INTO `tao_auth_rule` VALUES ('79', 'admin/Notice/delete', '删除通知', '1', '1', '4', '1', '', '0', '13', '', '1585663412', '0', '0');
|
||||||
|
INSERT INTO `tao_auth_rule` VALUES ('83', 'admin/User/auth', '设置超级用户', '1', '1', '1', '1', '', '0', '22', '', '1578984801', '0', '0');
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `tao_cate`;
|
DROP TABLE IF EXISTS `tao_cate`;
|
||||||
CREATE TABLE `tao_cate` (
|
CREATE TABLE `tao_cate` (
|
||||||
@ -243,9 +247,10 @@ DROP TABLE IF EXISTS `tao_message`;
|
|||||||
CREATE TABLE `tao_message` (
|
CREATE TABLE `tao_message` (
|
||||||
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '消息ID',
|
`id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '消息ID',
|
||||||
`title` varchar(255) NOT NULL COMMENT '消息标题',
|
`title` varchar(255) NOT NULL COMMENT '消息标题',
|
||||||
`content` tinytext COMMENT '消息内容',
|
`content` text COMMENT '消息内容',
|
||||||
`user_id` int(11) NOT NULL COMMENT '发送人ID',
|
`user_id` int(11) NOT NULL COMMENT '发送人ID',
|
||||||
`link` varchar(255) NOT NULL COMMENT '链接',
|
`link` varchar(255) NOT NULL COMMENT '链接',
|
||||||
|
`type` tinyint(1) NOT NULL DEFAULT '1' COMMENT '消息类型0系统消息1普通消息',
|
||||||
`create_time` int(11) NOT NULL COMMENT '创建时间',
|
`create_time` int(11) NOT NULL COMMENT '创建时间',
|
||||||
`update_time` int(11) NOT NULL COMMENT '更新时间',
|
`update_time` int(11) NOT NULL COMMENT '更新时间',
|
||||||
`delete_time` int(11) NOT NULL COMMENT '删除时间',
|
`delete_time` int(11) NOT NULL COMMENT '删除时间',
|
||||||
@ -258,6 +263,7 @@ CREATE TABLE `tao_message_to` (
|
|||||||
`send_id` int(11) NOT NULL COMMENT '发送人ID',
|
`send_id` int(11) NOT NULL COMMENT '发送人ID',
|
||||||
`receve_id` int(11) NOT NULL COMMENT '接收人ID',
|
`receve_id` int(11) NOT NULL COMMENT '接收人ID',
|
||||||
`message_id` varchar(255) NOT NULL COMMENT '消息标题',
|
`message_id` varchar(255) NOT NULL COMMENT '消息标题',
|
||||||
|
`message_type` tinyint(1) NOT NULL DEFAULT '1' COMMENT '消息类型0系统消息1普通消息',
|
||||||
`is_read` tinyint(1) NOT NULL DEFAULT '0' COMMENT '消息状态',
|
`is_read` tinyint(1) NOT NULL DEFAULT '0' COMMENT '消息状态',
|
||||||
`create_time` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
|
`create_time` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||||
`update_time` int(11) NOT NULL DEFAULT '0' COMMENT '更新时间',
|
`update_time` int(11) NOT NULL DEFAULT '0' COMMENT '更新时间',
|
||||||
|
@ -39,7 +39,8 @@ class Auth
|
|||||||
|
|
||||||
if (!$auth->check($app . '/' . $controller . '/' . $action, $admin_id) && $admin_id != 1) {
|
if (!$auth->check($app . '/' . $controller . '/' . $action, $admin_id) && $admin_id != 1) {
|
||||||
//return response('<script>alert("没有权限");location.back()</script>');
|
//return response('<script>alert("没有权限");location.back()</script>');
|
||||||
return response('没有权限');
|
//return response('没有权限');
|
||||||
|
return json(['code'=>-1,'msg'=>'没有权限!']);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,11 +11,21 @@ class Message
|
|||||||
//send msg
|
//send msg
|
||||||
public static function sendMsg($sendId,$receveId,$data)
|
public static function sendMsg($sendId,$receveId,$data)
|
||||||
{
|
{
|
||||||
$msg = MessageModel::create($data);
|
//写入消息库
|
||||||
|
$msg = MessageModel::create($data); //写入消息库
|
||||||
$msgId = $msg->id;
|
$msgId = $msg->id;
|
||||||
$result = MessageTo::create(['send_id'=>$sendId,'receve_id'=>$receveId,'message_id'=>$msgId]);
|
|
||||||
if($result){
|
//类型1为用户,写入用户收件箱
|
||||||
|
if($data['type'] == 1){
|
||||||
|
$result = MessageTo::create(['send_id'=>$sendId,'receve_id'=>$receveId,'message_id'=>$msgId,'message_type'=>$data['type']]);
|
||||||
|
if(!$result){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if($msg){
|
||||||
return true;
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -26,7 +36,7 @@ class Message
|
|||||||
->alias('t')
|
->alias('t')
|
||||||
->join('message m','t.message_id = m.id' )
|
->join('message m','t.message_id = m.id' )
|
||||||
->join('user u','t.send_id = u.id')
|
->join('user u','t.send_id = u.id')
|
||||||
->field('t.id as id,name,title,link,receve_id,t.create_time as create_time,is_read')
|
->field('t.id as id,name,title,content,link,receve_id,t.create_time as create_time,message_type,is_read')
|
||||||
->where('t.receve_id',$uid)
|
->where('t.receve_id',$uid)
|
||||||
->where(['t.delete_time'=>0])
|
->where(['t.delete_time'=>0])
|
||||||
->order(['t.create_time'=>'desc'])
|
->order(['t.create_time'=>'desc'])
|
||||||
@ -34,4 +44,21 @@ class Message
|
|||||||
return $msg;
|
return $msg;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//登录后插入系统消息
|
||||||
|
public static function insertMsg($uid)
|
||||||
|
{
|
||||||
|
//得到所有系统消息
|
||||||
|
$sysmsg = MessageModel::where(['type'=>0,'delete_time'=>0])->select();
|
||||||
|
foreach($sysmsg as $smg){
|
||||||
|
//检验通知是否被写入个人收件箱
|
||||||
|
$msgId = Db::name('message_to')->where('message_id',$smg['id'])->find();
|
||||||
|
if(!$msgId){
|
||||||
|
$result = MessageTo::create(['send_id'=>$smg['user_id'],'receve_id'=>$uid,'message_id'=>$smg['id'],'message_type'=>$smg['type']]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if($result){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
193
public/static/admin/modules/appset.js
Normal file
193
public/static/admin/modules/appset.js
Normal file
@ -0,0 +1,193 @@
|
|||||||
|
//网站后台综合设置
|
||||||
|
|
||||||
|
layui.define(['table', 'form', 'layedit'], function(exports){
|
||||||
|
var $ = layui.$
|
||||||
|
,table = layui.table
|
||||||
|
,form = layui.form
|
||||||
|
,layedit = layui.layedit;
|
||||||
|
|
||||||
|
|
||||||
|
var index = layedit.build('L_content',{
|
||||||
|
height: 180 //设置编辑器高度
|
||||||
|
,tool: [
|
||||||
|
'strong' //加粗
|
||||||
|
,'italic' //斜体
|
||||||
|
,'underline' //下划线
|
||||||
|
,'del' //删除线
|
||||||
|
,'|' //分割线
|
||||||
|
,'left' //左对齐
|
||||||
|
,'center' //居中对齐
|
||||||
|
,'right' //右对齐
|
||||||
|
,'link' //超链接
|
||||||
|
,'unlink' //清除链接
|
||||||
|
,'face' //表情
|
||||||
|
,'image' //插入图片
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
|
//得到编辑器内容异步到表单中
|
||||||
|
form.verify({
|
||||||
|
content: function(value){
|
||||||
|
return layedit.sync(index);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
//通知列表
|
||||||
|
table.render({
|
||||||
|
elem: '#notice-list',
|
||||||
|
url: '/admin/Notice/index',
|
||||||
|
limit: 5,
|
||||||
|
cols:[[
|
||||||
|
{type: 'numbers', fixed: 'left'},
|
||||||
|
{field: 'type',title: '类型'},
|
||||||
|
{field: 'title',title: '标题'},
|
||||||
|
{field: 'user_id',title: '发信ID'},
|
||||||
|
{field: 'content',title: '内容'},
|
||||||
|
{field: 'ctime',title: '时间'},
|
||||||
|
{title: '操作', width: 150, align:'center', fixed: 'right', toolbar: '#notice-tool'}
|
||||||
|
]]
|
||||||
|
,page: true
|
||||||
|
,limit: 10
|
||||||
|
,height: 'full-220'
|
||||||
|
,text: '对不起,加载出现异常!'
|
||||||
|
});
|
||||||
|
//发站内通知信息
|
||||||
|
form.on('select(type)', function(data){
|
||||||
|
var tpl = '<div class="layui-col-md12">\
|
||||||
|
<label for="L_title" class="layui-form-label">收件人</label>\
|
||||||
|
<div class="layui-input-block">\
|
||||||
|
<input type="text" id="receve_id" name="receve_id" required lay-verify="required" autocomplete="off" class="layui-input" >\
|
||||||
|
</div>\
|
||||||
|
</div>';
|
||||||
|
//如果选择是用户追加收件人
|
||||||
|
if(data.value == 1){
|
||||||
|
$(this).parents('div .layui-col-md3').next('div').after(tpl);
|
||||||
|
}else{
|
||||||
|
$(this).parents('div .layui-col-md3').nextAll('div .layui-col-md12').remove();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
//发布通知
|
||||||
|
form.on('submit(notice-add)', function(data){
|
||||||
|
var field = data.field;
|
||||||
|
console.log(field);
|
||||||
|
$.ajax({
|
||||||
|
type:"post",
|
||||||
|
url:"/admin/Notice/add",
|
||||||
|
data:field,
|
||||||
|
dataType:"json",
|
||||||
|
success:function (data){
|
||||||
|
if (data.code == 0) {
|
||||||
|
layer.msg(data.msg,{
|
||||||
|
icon:6,
|
||||||
|
time:2000
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
layer.open({
|
||||||
|
content:data.msg,
|
||||||
|
icon:5,
|
||||||
|
anim:6
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
table.reload('notice-list'); //数据刷新
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
//监听工具条
|
||||||
|
table.on('tool(notice-list)', function(obj){
|
||||||
|
var data = obj.data;
|
||||||
|
if(obj.event === 'del'){
|
||||||
|
layer.prompt({
|
||||||
|
formType: 1
|
||||||
|
,title: '敏感操作,请验证口令'
|
||||||
|
}, function(value, index){
|
||||||
|
layer.close(index);
|
||||||
|
|
||||||
|
layer.confirm('真的删除行么', function(index){
|
||||||
|
//obj.del();
|
||||||
|
$.ajax({
|
||||||
|
type:'post',
|
||||||
|
url:"/admin/Notice/delete",
|
||||||
|
data:{id:data.id},
|
||||||
|
dataType:'json',
|
||||||
|
success:function(data){
|
||||||
|
if(data.code == 0){
|
||||||
|
layer.msg(data.msg,{
|
||||||
|
icon:6,
|
||||||
|
time:2000
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
layer.open({
|
||||||
|
title:'删除失败',
|
||||||
|
content:data.msg,
|
||||||
|
icon:5,
|
||||||
|
adim:6
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
table.reload('notice-list');
|
||||||
|
layer.close(index);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
} else if(obj.event === 'edit'){
|
||||||
|
var tr = $(obj.tr);
|
||||||
|
layer.open({
|
||||||
|
type: 2
|
||||||
|
,title: '编辑签到'
|
||||||
|
,content: '/admin/Notice/edit?id='+ data.id
|
||||||
|
,maxmin: true
|
||||||
|
,area: ['500px', '450px']
|
||||||
|
,btn: ['确定', '取消']
|
||||||
|
,yes: function(index, layero){
|
||||||
|
|
||||||
|
var iframeWindow = window['layui-layer-iframe'+ index]
|
||||||
|
,submitID = 'notice-edit'
|
||||||
|
,submit = layero.find('iframe').contents().find('#'+ submitID);
|
||||||
|
|
||||||
|
//监听提交
|
||||||
|
iframeWindow.layui.form.on('submit('+ submitID +')', function(data){
|
||||||
|
var field = data.field; //获取提交的字段
|
||||||
|
|
||||||
|
//提交 Ajax 成功后,静态更新表格中的数据
|
||||||
|
$.ajax({
|
||||||
|
type:"post",
|
||||||
|
url:"/admin/Notice/edit",
|
||||||
|
data:{id:field.id,title:field.title,content:field.content,type:field.type},
|
||||||
|
daType:"json",
|
||||||
|
success:function (res){
|
||||||
|
if (res.code == 0) {
|
||||||
|
layer.msg(res.msg,{
|
||||||
|
icon:6,
|
||||||
|
time:2000
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
layer.open({
|
||||||
|
tiele:'修改失败',
|
||||||
|
content:res.msg,
|
||||||
|
icon:5,
|
||||||
|
anim:6
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
table.reload('notice-list'); //数据刷新
|
||||||
|
layer.close(index); //关闭弹层
|
||||||
|
});
|
||||||
|
|
||||||
|
submit.trigger('click');
|
||||||
|
}
|
||||||
|
,success: function(layero, index){
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
exports('appset', {})
|
||||||
|
});
|
@ -308,7 +308,11 @@ layui.define(['laypage', 'fly', 'element', 'flow'], function(exports){
|
|||||||
<ul class="mine-msg">\
|
<ul class="mine-msg">\
|
||||||
{{# for(var i = 0; i < len; i++){ }}\
|
{{# for(var i = 0; i < len; i++){ }}\
|
||||||
<li data-id="{{d.rows[i].id}}">\
|
<li data-id="{{d.rows[i].id}}">\
|
||||||
<blockquote class="layui-elem-quote"><a href="/index/jump?name={{ d.rows[i].name}}" target="_blank"><cite>{{ d.rows[i].name}}</cite></a>回答了您的帖子<a target="_blank" class="art-title" id-data="{{ d.rows[i].id}}" href="{{ d.rows[i].link}}"><cite>{{ d.rows[i].content}}</cite></a> <span class="float:right">{{ d.rows[i].read}}</span></blockquote>\
|
{{# if(d.rows[i].type == 1){ }}\
|
||||||
|
<blockquote class="layui-elem-quote"><a href="/index/jump?name={{ d.rows[i].name}}" target="_blank"><cite>{{ d.rows[i].name}}</cite></a>回答了您的帖子<a target="_blank" class="art-title" id-data="{{ d.rows[i].id}}" href="{{ d.rows[i].link}}"><cite>{{ d.rows[i].title}}</cite></a> <span class="float:right">{{ d.rows[i].read}}</span></blockquote>\
|
||||||
|
{{# } else { }}\
|
||||||
|
<blockquote class="layui-elem-quote">系统消息:<a class="sys-title" id-data="{{ d.rows[i].id}}" href="javascript:;"><cite>{{ d.rows[i].title}}</cite></a> <span class="float:right">{{ d.rows[i].read}}</span></blockquote>\
|
||||||
|
{{# } }}\
|
||||||
<p><span>{{d.rows[i].time}}</span><a href="javascript:;" class="layui-btn layui-btn-sm layui-btn-danger fly-delete">删除</a></p>\
|
<p><span>{{d.rows[i].time}}</span><a href="javascript:;" class="layui-btn layui-btn-sm layui-btn-danger fly-delete">删除</a></p>\
|
||||||
</li>\
|
</li>\
|
||||||
{{# } }}\
|
{{# } }}\
|
||||||
|
68
view/admin/notice/edit.html
Normal file
68
view/admin/notice/edit.html
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
{extend name="public/base" /}
|
||||||
|
|
||||||
|
{block name="body"}
|
||||||
|
<div class="layui-fluid">
|
||||||
|
<div class="layui-row layui-col-space15">
|
||||||
|
<div class="layui-col-md12">
|
||||||
|
<div class="layui-card">
|
||||||
|
<div class="layui-card-body">
|
||||||
|
|
||||||
|
<div class="layui-form layui-form-pane">
|
||||||
|
<div class="layui-tab layui-tab-brief" lay-filter="timeline">
|
||||||
|
<div class="layui-tab-content" id="LAY_ucm" style="padding: 20px 0;">
|
||||||
|
<div class="layui-tab-item layui-show">
|
||||||
|
|
||||||
|
<div class="layui-row layui-col-space15 layui-form-item">
|
||||||
|
<div class="layui-col-md3">
|
||||||
|
<label class="layui-form-label">发送类型</label>
|
||||||
|
<div class="layui-input-block">
|
||||||
|
<select lay-verify="required" name="type" lay-filter="type">
|
||||||
|
<option {if condition="$msg.type eq 0"} selected {/if} value="0">站内通知</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-col-md9">
|
||||||
|
<label for="L_title" class="layui-form-label">标题</label>
|
||||||
|
<div class="layui-input-block">
|
||||||
|
<input type="text" id="L_title" name="title" required lay-verify="required" autocomplete="off" class="layui-input" value="{$msg.title}">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="layui-form-item layui-form-text">
|
||||||
|
<div class="layui-input-block">
|
||||||
|
<textarea id="L_content" name="content" required lay-verify="content" autocomplete="off" class="layui-textarea " >{$msg.content}</textarea>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-form-item layui-hide">
|
||||||
|
<input type="text" name="id" class="layui-input" value="{$msg.id}">
|
||||||
|
</div>
|
||||||
|
<div class="layui-form-item layui-hide">
|
||||||
|
<button type="submit" class="layui-btn" lay-filter="notice-edit" lay-submit id="notice-edit">立即发布</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{/block}
|
||||||
|
{block name="js"}
|
||||||
|
<script>
|
||||||
|
layui.config({
|
||||||
|
base: '/static/admin/' //静态资源所在路径
|
||||||
|
}).extend({
|
||||||
|
index: 'lib/index' //主入口模块
|
||||||
|
}).use(['index','appset'],function(){
|
||||||
|
var $ = layui.jquery;
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
{/block}
|
121
view/admin/notice/index.html
Normal file
121
view/admin/notice/index.html
Normal file
@ -0,0 +1,121 @@
|
|||||||
|
{extend name="public/base" /}
|
||||||
|
|
||||||
|
{block name="body"}
|
||||||
|
<div class="layui-fluid">
|
||||||
|
<div class="layui-row layui-col-space15">
|
||||||
|
<div class="layui-col-md12">
|
||||||
|
<div class="layui-card">
|
||||||
|
<div class="layui-card-body">
|
||||||
|
|
||||||
|
<div class="layui-form layui-form-pane">
|
||||||
|
<div class="layui-tab layui-tab-brief" lay-filter="timeline">
|
||||||
|
<div class="layui-tab-content" id="LAY_ucm" style="padding: 20px 0;">
|
||||||
|
<div class="layui-tab-item layui-show">
|
||||||
|
|
||||||
|
<div class="layui-row layui-col-space15 layui-form-item">
|
||||||
|
<div class="layui-col-md3">
|
||||||
|
<label class="layui-form-label">发送类型</label>
|
||||||
|
<div class="layui-input-block">
|
||||||
|
<select lay-verify="required" name="type" lay-filter="type">
|
||||||
|
<option value="0">站内通知</option>
|
||||||
|
<option value="1">用户通知</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-col-md9">
|
||||||
|
<label for="L_title" class="layui-form-label">标题</label>
|
||||||
|
<div class="layui-input-block">
|
||||||
|
<input type="text" id="L_title" name="title" required lay-verify="required" autocomplete="off" class="layui-input" >
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="layui-form-item layui-form-text">
|
||||||
|
<div class="layui-input-block">
|
||||||
|
<textarea id="L_content" name="content" required lay-verify="content" autocomplete="off" class="layui-textarea "></textarea>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<button type="submit" class="layui-btn" lay-filter="notice-add" lay-submit id="notice-add">立即发布</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<table id="notice-list" lay-filter="notice-list"></table>
|
||||||
|
<script type="text/html" id="notice-tool">
|
||||||
|
<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑</a>
|
||||||
|
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除</a>
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{/block}
|
||||||
|
{block name="js"}
|
||||||
|
<script>
|
||||||
|
layui.config({
|
||||||
|
base: '/static/admin/' //静态资源所在路径
|
||||||
|
}).extend({
|
||||||
|
index: 'lib/index' //主入口模块
|
||||||
|
}).use(['index','appset', 'layedit','form' ,'table'],function(){
|
||||||
|
var $ = layui.jquery
|
||||||
|
,layedit = layui.layedit
|
||||||
|
,table = layui.table
|
||||||
|
,form = layui.form;
|
||||||
|
/*
|
||||||
|
//发站内通知信息
|
||||||
|
form.on('select(type)', function(data){
|
||||||
|
var tpl = '<div class="layui-col-md12">\
|
||||||
|
<label for="L_title" class="layui-form-label">收件人</label>\
|
||||||
|
<div class="layui-input-block">\
|
||||||
|
<input type="text" id="receve_id" name="receve_id" required lay-verify="required" autocomplete="off" class="layui-input" >\
|
||||||
|
</div>\
|
||||||
|
</div>';
|
||||||
|
//如果选择是用户追加收件人
|
||||||
|
if(data.value == 1){
|
||||||
|
$(this).parents('div .layui-col-md3').next('div').after(tpl);
|
||||||
|
}else{
|
||||||
|
$(this).parents('div .layui-col-md3').nextAll('div .layui-col-md12').remove();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
//发布通知
|
||||||
|
form.on('submit(notice-add)', function(data){
|
||||||
|
var field = data.field;
|
||||||
|
console.log(field);
|
||||||
|
$.ajax({
|
||||||
|
type:"post",
|
||||||
|
url:"{:url('Notice/add')}",
|
||||||
|
data:field,
|
||||||
|
dataType:"json",
|
||||||
|
success:function (data){
|
||||||
|
if (data.code == 0) {
|
||||||
|
layer.msg(data.msg,{
|
||||||
|
icon:6,
|
||||||
|
time:2000
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
layer.open({
|
||||||
|
content:data.msg,
|
||||||
|
icon:5,
|
||||||
|
anim:6
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
table.reload('notice-list'); //数据刷新
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
*/
|
||||||
|
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
{/block}
|
@ -22,11 +22,10 @@
|
|||||||
}).extend({
|
}).extend({
|
||||||
fly: 'index'
|
fly: 'index'
|
||||||
}).use('fly');
|
}).use('fly');
|
||||||
//
|
//点开标题写入帖子已读
|
||||||
$('#LAY_minemsg').on('click','.art-title', function(){
|
$('#LAY_minemsg').on('click','.art-title', function(){
|
||||||
var id = $(this).attr('id-data');
|
var id = $(this).attr('id-data');
|
||||||
var othis = $(this);
|
var othis = $(this);
|
||||||
console.log(othis);
|
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type:"post",
|
type:"post",
|
||||||
url:"{:url('message/read')}",
|
url:"{:url('message/read')}",
|
||||||
@ -42,5 +41,32 @@
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
//点开标题写入系统信已读
|
||||||
|
$('#LAY_minemsg').on('click','.sys-title', function(){
|
||||||
|
var id = $(this).attr('id-data');
|
||||||
|
//var othis = $(this);
|
||||||
|
console.log(id);
|
||||||
|
|
||||||
|
$.ajax({
|
||||||
|
type:"post",
|
||||||
|
url:"{:url('message/read')}",
|
||||||
|
data:{"id":id},
|
||||||
|
daType:"json",
|
||||||
|
success:function (res){
|
||||||
|
if(res.status == 0){
|
||||||
|
layer.open({
|
||||||
|
type: 1,
|
||||||
|
skin: 'layui-layer-rim', //加上边框
|
||||||
|
area: ['420px', '240px'], //宽高
|
||||||
|
content: '<div class="layui-form" tyle="padding: 20px 30px 0 0;"> '+ res.content +'</div>'
|
||||||
|
});
|
||||||
|
//location.reload();
|
||||||
|
//othis.append('<span class="float:right">已读</span>');
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
{/block}
|
{/block}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user