sign scroe vip
This commit is contained in:
parent
1f94ed2b2f
commit
ab36164034
@ -42,21 +42,23 @@ class Set extends AdminController
|
|||||||
View::assign(['sysInfo'=>$sysInfo,'syscy'=>$syscy]);
|
View::assign(['sysInfo'=>$sysInfo,'syscy'=>$syscy]);
|
||||||
return View::fetch('set/system/website');
|
return View::fetch('set/system/website');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//综合设置
|
||||||
|
public function server()
|
||||||
|
{
|
||||||
|
return $this->email();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**邮箱设置
|
||||||
* 显示创建资源表单页.
|
* parem $id
|
||||||
*
|
|
||||||
* @return \think\Response
|
|
||||||
*/
|
*/
|
||||||
public function email()
|
public function email()
|
||||||
{
|
{
|
||||||
//$mailserver = Db::name('mail_server')->find(1);
|
|
||||||
$mailserver = MailServer::find(1);
|
$mailserver = MailServer::find(1);
|
||||||
//邮箱配置
|
//邮箱配置
|
||||||
if(Request::isAjax()){
|
if(Request::isAjax()){
|
||||||
$data = Request::param();
|
$data = Request::param();
|
||||||
$res = $mailserver->save($data);
|
$res = $mailserver->save($data);
|
||||||
//dump($data);
|
|
||||||
if($res){
|
if($res){
|
||||||
return json(['code'=>0,'msg'=>'更新成功']);
|
return json(['code'=>0,'msg'=>'更新成功']);
|
||||||
} else {
|
} else {
|
||||||
@ -65,7 +67,7 @@ class Set extends AdminController
|
|||||||
}
|
}
|
||||||
|
|
||||||
View::assign('mailserver',$mailserver);
|
View::assign('mailserver',$mailserver);
|
||||||
return View::fetch('set/system/email');
|
return View::fetch('set/system/server');
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
47
app/admin/controller/Sign.php
Normal file
47
app/admin/controller/Sign.php
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
<?php
|
||||||
|
namespace app\admin\controller;
|
||||||
|
|
||||||
|
use app\common\controller\BaseController;
|
||||||
|
use think\facade\View;
|
||||||
|
use think\facade\Request;
|
||||||
|
use think\facade\Db;
|
||||||
|
use app\common\model\UserSignrule;
|
||||||
|
|
||||||
|
class Sign extends BaseController
|
||||||
|
{
|
||||||
|
|
||||||
|
public function add()
|
||||||
|
{
|
||||||
|
$data = Request::only(['days','score']);
|
||||||
|
$day = UserSignrule::where('days',$data['days'])->find();
|
||||||
|
//$day = Db::name('user_signrule')->where('days',$data['days'])->find();
|
||||||
|
if($day){
|
||||||
|
$res = ['code'=>-1,'msg'=>'不能重复设置'];
|
||||||
|
} else {
|
||||||
|
$result = UserSignrule::create($data);
|
||||||
|
if($result){
|
||||||
|
$res = ['code'=>0,'msg'=>'设置积分成功'];
|
||||||
|
} else {
|
||||||
|
$res = ['code'=>-1,'msg'=>'保存失败'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return json($res);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function signRule()
|
||||||
|
{
|
||||||
|
$keys = UserSignrule::select();
|
||||||
|
$count = $keys->count();
|
||||||
|
$res = [];
|
||||||
|
if($count){
|
||||||
|
$res = ['code'=>0,'msg'=>'','count'=>$count];
|
||||||
|
foreach($keys as $k=>$v){
|
||||||
|
$res['data'][] = ['id'=>$v['id'],'days'=>$v['days'],'score'=>$v['score'],'ctime'=>$v['create_time']];
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$res = ['code'=>-1,'msg'=>'还没有任何积分设置!'];
|
||||||
|
}
|
||||||
|
return json($res);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
46
app/admin/controller/Vip.php
Normal file
46
app/admin/controller/Vip.php
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
<?php
|
||||||
|
namespace app\admin\controller;
|
||||||
|
|
||||||
|
use app\common\controller\BaseController;
|
||||||
|
use think\facade\View;
|
||||||
|
use think\facade\Request;
|
||||||
|
use think\facade\Db;
|
||||||
|
use app\common\model\UserViprule;
|
||||||
|
|
||||||
|
class Vip extends BaseController
|
||||||
|
{
|
||||||
|
|
||||||
|
public function add()
|
||||||
|
{
|
||||||
|
$data = Request::only(['score','vip']);
|
||||||
|
$vip = UserViprule::where('vip',$data['vip'])->find();
|
||||||
|
if($vip){
|
||||||
|
$res = ['code'=>-1,'msg'=>'vip等级不能重复设置'];
|
||||||
|
} else {
|
||||||
|
$result = UserViprule::create($data);
|
||||||
|
if($result){
|
||||||
|
$res = ['code'=>0,'msg'=>'设置vip等级成功'];
|
||||||
|
} else {
|
||||||
|
$res = ['code'=>-1,'msg'=>'vip保存失败'];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return json($res);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function vipRule()
|
||||||
|
{
|
||||||
|
$keys = UserViprule::select();
|
||||||
|
$count = $keys->count();
|
||||||
|
$res = [];
|
||||||
|
if($count){
|
||||||
|
$res = ['code'=>0,'msg'=>'','count'=>$count];
|
||||||
|
foreach($keys as $k=>$v){
|
||||||
|
$res['data'][] = ['id'=>$v['id'],'score'=>$v['score'],'vip'=>$v['vip'],'ctime'=>$v['create_time']];
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
$res = ['code'=>-1,'msg'=>'还没有任何vip等级设置!'];
|
||||||
|
}
|
||||||
|
return json($res);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -28,7 +28,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')
|
->field('t.id as id,name,title,link,receve_id,t.create_time as create_time,is_read')
|
||||||
->where('t.receve_id',$uid)
|
->where('t.receve_id',$uid)
|
||||||
->where('t.delete_time',0)
|
->where('t.delete_time',0)
|
||||||
->select();
|
->select();
|
||||||
|
24
app/common/model/UserSignrule.php
Normal file
24
app/common/model/UserSignrule.php
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
<?php
|
||||||
|
namespace app\common\model;
|
||||||
|
|
||||||
|
use think\Model;
|
||||||
|
use think\model\concern\SoftDelete;
|
||||||
|
|
||||||
|
class UserSignrule extends Model
|
||||||
|
{
|
||||||
|
protected $autoWriteTimestamp = true; //开启自动时间戳
|
||||||
|
protected $createTime = 'create_time';
|
||||||
|
|
||||||
|
|
||||||
|
//软删除
|
||||||
|
use SoftDelete;
|
||||||
|
protected $deleteTime = 'delete_time';
|
||||||
|
protected $defaultSoftDelete = 0;
|
||||||
|
|
||||||
|
public function user()
|
||||||
|
{
|
||||||
|
//评论关联用户
|
||||||
|
return $this->belongsTo('User','user_id','id');
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
24
app/common/model/UserViprule.php
Normal file
24
app/common/model/UserViprule.php
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
<?php
|
||||||
|
namespace app\common\model;
|
||||||
|
|
||||||
|
use think\Model;
|
||||||
|
use think\model\concern\SoftDelete;
|
||||||
|
|
||||||
|
class UserViprule extends Model
|
||||||
|
{
|
||||||
|
protected $autoWriteTimestamp = true; //开启自动时间戳
|
||||||
|
protected $createTime = 'create_time';
|
||||||
|
|
||||||
|
|
||||||
|
//软删除
|
||||||
|
use SoftDelete;
|
||||||
|
protected $deleteTime = 'delete_time';
|
||||||
|
protected $defaultSoftDelete = 0;
|
||||||
|
|
||||||
|
public function user()
|
||||||
|
{
|
||||||
|
//评论关联用户
|
||||||
|
return $this->belongsTo('User','user_id','id');
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -11,10 +11,9 @@ use app\common\model\User;
|
|||||||
use app\common\model\Comment;
|
use app\common\model\Comment;
|
||||||
use app\common\model\Collection;
|
use app\common\model\Collection;
|
||||||
use app\common\model\Article as ArticleModel;
|
use app\common\model\Article as ArticleModel;
|
||||||
use app\facade\Message;
|
|
||||||
use think\exception\ValidateException;
|
use think\exception\ValidateException;
|
||||||
use think\facade\Config;
|
use think\facade\Config;
|
||||||
|
use taoler\com\Message;
|
||||||
|
|
||||||
class Article extends BaseController
|
class Article extends BaseController
|
||||||
{
|
{
|
||||||
|
@ -5,7 +5,7 @@ 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\facade\Message as MessageApi;
|
use taoler\com\Message as MessageApi;
|
||||||
|
|
||||||
class Message extends BaseController
|
class Message extends BaseController
|
||||||
{
|
{
|
||||||
@ -33,7 +33,7 @@ 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']];
|
$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'] ? '已读':'未读'];
|
||||||
$res['rows'][] = $data;
|
$res['rows'][] = $data;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -45,14 +45,15 @@ class Sign extends BaseController
|
|||||||
public function sign()
|
public function sign()
|
||||||
{
|
{
|
||||||
if (!Session::has('user_id') || !Session::has('user_name')) {
|
if (!Session::has('user_id') || !Session::has('user_name')) {
|
||||||
return json(array('code' => 0, 'msg' => '亲,登陆后才能签到哦','url' => 'index/login/index'));
|
return json(array('code' => 0, 'msg' => '亲,登陆后才能签到哦','url' => url('Login/index')));
|
||||||
} else {
|
} else {
|
||||||
$uid = session('user_id');
|
$uid = session('user_id');
|
||||||
$todayData = $this->todayData()->getData();
|
$todayData = $this->todayData()->getData();
|
||||||
//var_dump($todayData);
|
//var_dump($todayData);
|
||||||
|
|
||||||
if ($todayData['is_sign'] == 1) { //数组中是返回的是一个对象,不能直接用[]来显示,正确的输出方法是:$pic[0]->title问题解决!
|
if ($todayData['is_sign'] == 1) { //数组中是返回的是一个对象,不能直接用[]来显示,正确的输出方法是:$pic[0]->title问题解决!
|
||||||
exit('{"code":-1,"msg":"你今天已经签过到了"}');
|
//exit('{"code":-1,"msg":"你今天已经签过到了"}');
|
||||||
|
return json(['code'=>-1,'msg'=>'你今天已签过到!']);
|
||||||
} else {
|
} else {
|
||||||
$data = $this->getInsertData($uid);
|
$data = $this->getInsertData($uid);
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ use app\common\model\Article;
|
|||||||
use app\common\model\Collection;
|
use app\common\model\Collection;
|
||||||
use app\common\model\User as userModel;
|
use app\common\model\User as userModel;
|
||||||
use think\facade\Config;
|
use think\facade\Config;
|
||||||
use app\facade\Message;
|
use taoler\com\Message;
|
||||||
|
|
||||||
class User extends BaseController
|
class User extends BaseController
|
||||||
{
|
{
|
||||||
|
@ -112,7 +112,7 @@ INSERT INTO `tao_auth_rule` VALUES ('7', 'admin/Admin/index', '管理员', '1',
|
|||||||
INSERT INTO `tao_auth_rule` VALUES ('8', 'admin/AuthGroup/list', '角色管理', '1', '1', '1', '1', '', '1', '11', '', '0', '1578901282', '0');
|
INSERT INTO `tao_auth_rule` VALUES ('8', 'admin/AuthGroup/list', '角色管理', '1', '1', '1', '1', '', '1', '11', '', '0', '1578901282', '0');
|
||||||
INSERT INTO `tao_auth_rule` VALUES ('9', 'admin/AuthRule/index', '权限管理', '1', '1', '1', '1', '', '1', '16', '', '0', '1578981541', '0');
|
INSERT INTO `tao_auth_rule` VALUES ('9', 'admin/AuthRule/index', '权限管理', '1', '1', '1', '1', '', '1', '16', '', '0', '1578981541', '0');
|
||||||
INSERT INTO `tao_auth_rule` VALUES ('10', 'admin/set/website', '网站设置', '1', '1', '2', '1', '', '1', '1', '', '0', '0', '0');
|
INSERT INTO `tao_auth_rule` VALUES ('10', 'admin/set/website', '网站设置', '1', '1', '2', '1', '', '1', '1', '', '0', '0', '0');
|
||||||
INSERT INTO `tao_auth_rule` VALUES ('11', 'admin/set/email', '邮件服务', '1', '1', '2', '1', '', '1', '3', '', '0', '0', '0');
|
INSERT INTO `tao_auth_rule` VALUES ('11', 'admin/set/server', '综合服务', '1', '1', '2', '1', '', '1', '3', '', '0', '0', '0');
|
||||||
INSERT INTO `tao_auth_rule` VALUES ('12', 'admin/Admin/info', '基本资料', '1', '1', '3', '1', '', '1', '50', '', '0', '1578980034', '0');
|
INSERT INTO `tao_auth_rule` VALUES ('12', 'admin/Admin/info', '基本资料', '1', '1', '3', '1', '', '1', '50', '', '0', '1578980034', '0');
|
||||||
INSERT INTO `tao_auth_rule` VALUES ('13', 'admin/Admin/repass', '修改密码', '1', '1', '3', '1', '', '1', '51', '', '0', '1578980034', '0');
|
INSERT INTO `tao_auth_rule` VALUES ('13', 'admin/Admin/repass', '修改密码', '1', '1', '3', '1', '', '1', '51', '', '0', '1578980034', '0');
|
||||||
INSERT INTO `tao_auth_rule` VALUES ('15', 'admin/Forum/list', '帖子管理', '1', '1', '5', '1', '', '1', '1', '', '0', '1578902605', '0');
|
INSERT INTO `tao_auth_rule` VALUES ('15', 'admin/Forum/list', '帖子管理', '1', '1', '5', '1', '', '1', '1', '', '0', '1578902605', '0');
|
||||||
@ -370,13 +370,26 @@ CREATE TABLE `tao_user_signrule` (
|
|||||||
`id` int(2) unsigned NOT NULL AUTO_INCREMENT,
|
`id` int(2) unsigned NOT NULL AUTO_INCREMENT,
|
||||||
`days` int(5) unsigned NOT NULL DEFAULT '0' COMMENT '连续天数',
|
`days` int(5) unsigned NOT NULL DEFAULT '0' COMMENT '连续天数',
|
||||||
`score` int(3) unsigned NOT NULL DEFAULT '0' COMMENT '积分',
|
`score` int(3) unsigned NOT NULL DEFAULT '0' COMMENT '积分',
|
||||||
|
`create_time` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||||
|
`update_time` int(11) NOT NULL DEFAULT '0' COMMENT '升级时间',
|
||||||
|
`delete_time` int(11) NOT NULL DEFAULT '0' COMMENT '删除时间',
|
||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=MyISAM AUTO_INCREMENT=13 DEFAULT CHARSET=utf8 COMMENT='用户签到积分规则';
|
) ENGINE=MyISAM AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='用户签到积分规则';
|
||||||
|
|
||||||
INSERT INTO `tao_user_signrule` VALUES ('1', '1', '2');
|
INSERT INTO `tao_user_signrule` VALUES ('1', '1', '2', '0', '0', '0');
|
||||||
INSERT INTO `tao_user_signrule` VALUES ('2', '3', '3');
|
INSERT INTO `tao_user_signrule` VALUES ('2', '3', '3', '0', '0', '0');
|
||||||
INSERT INTO `tao_user_signrule` VALUES ('3', '5', '5');
|
INSERT INTO `tao_user_signrule` VALUES ('3', '5', '5', '0', '0', '0');
|
||||||
|
|
||||||
|
DROP TABLE IF EXISTS `tao_user_viprule`;
|
||||||
|
CREATE TABLE `tao_user_viprule` (
|
||||||
|
`id` int(2) NOT NULL AUTO_INCREMENT COMMENT '用户等级ID',
|
||||||
|
`score` varchar(255) NOT NULL DEFAULT '0' COMMENT '积分区间',
|
||||||
|
`vip` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'vip等级',
|
||||||
|
`create_time` int(11) NOT NULL DEFAULT '0' COMMENT '创建时间',
|
||||||
|
`update_time` int(11) NOT NULL DEFAULT '0' COMMENT '升级时间',
|
||||||
|
`delete_time` int(11) NOT NULL DEFAULT '0' COMMENT '删除时间',
|
||||||
|
PRIMARY KEY (`id`)
|
||||||
|
) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
|
||||||
|
|
||||||
DROP TABLE IF EXISTS `tao_user_zan`;
|
DROP TABLE IF EXISTS `tao_user_zan`;
|
||||||
CREATE TABLE `tao_user_zan` (
|
CREATE TABLE `tao_user_zan` (
|
||||||
|
37
extend/taoler/com/Message.php
Normal file
37
extend/taoler/com/Message.php
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace taoler\com;
|
||||||
|
|
||||||
|
use think\facade\Db;
|
||||||
|
use app\common\model\Message as MessageModel;
|
||||||
|
use app\common\model\MessageTo;
|
||||||
|
|
||||||
|
class Message
|
||||||
|
{
|
||||||
|
//send msg
|
||||||
|
public static function sendMsg($sendId,$receveId,$data)
|
||||||
|
{
|
||||||
|
$msg = MessageModel::create($data);
|
||||||
|
$msgId = $msg->id;
|
||||||
|
$result = MessageTo::create(['send_id'=>$sendId,'receve_id'=>$receveId,'message_id'=>$msgId]);
|
||||||
|
if($result){
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//receve msg
|
||||||
|
public static function receveMsg($uid)
|
||||||
|
{
|
||||||
|
$msg = Db::name('message_to')
|
||||||
|
->alias('t')
|
||||||
|
->join('message m','t.message_id = m.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')
|
||||||
|
->where('t.receve_id',$uid)
|
||||||
|
->where(['t.delete_time'=>0])
|
||||||
|
->order(['t.create_time'=>'desc'])
|
||||||
|
->select();
|
||||||
|
return $msg;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -308,7 +308,7 @@ 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" name="title" id-data="{{ d.rows[i].id}}" href="{{ d.rows[i].link}}"><cite>{{ d.rows[i].content}}</cite></a></blockquote>\
|
<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>\
|
||||||
<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>\
|
||||||
{{# } }}\
|
{{# } }}\
|
||||||
|
@ -1,66 +0,0 @@
|
|||||||
{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-header">邮件服务</div>
|
|
||||||
<div class="layui-card-body">
|
|
||||||
|
|
||||||
<div class="layui-form" wid100 lay-filter="">
|
|
||||||
<div class="layui-form-item">
|
|
||||||
<label class="layui-form-label">SMTP服务器</label>
|
|
||||||
<div class="layui-input-inline">
|
|
||||||
<input type="text" name="host" value="{$mailserver.host}" class="layui-input">
|
|
||||||
</div>
|
|
||||||
<div class="layui-form-mid layui-word-aux">如:smtp.163.com</div>
|
|
||||||
</div>
|
|
||||||
<div class="layui-form-item">
|
|
||||||
<label class="layui-form-label">SMTP端口号</label>
|
|
||||||
<div class="layui-input-inline" style="width: 80px;">
|
|
||||||
<input type="text" name="port" lay-verify="number" value="{$mailserver.port}" class="layui-input">
|
|
||||||
</div>
|
|
||||||
<div class="layui-form-mid layui-word-aux">一般为 25 或 465</div>
|
|
||||||
</div>
|
|
||||||
<div class="layui-form-item">
|
|
||||||
<label class="layui-form-label">发件人邮箱</label>
|
|
||||||
<div class="layui-input-inline">
|
|
||||||
<input type="text" name="mail" value="{$mailserver.mail}" lay-verify="email" autocomplete="off" class="layui-input">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="layui-form-item">
|
|
||||||
<label class="layui-form-label">发件人昵称</label>
|
|
||||||
<div class="layui-input-inline">
|
|
||||||
<input type="text" name="nickname" value="{$mailserver.nickname}" autocomplete="off" class="layui-input">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="layui-form-item">
|
|
||||||
<label class="layui-form-label">邮箱登入密码</label>
|
|
||||||
<div class="layui-input-inline">
|
|
||||||
<input type="password" name="password" value="{$mailserver.password}" autocomplete="off" class="layui-input">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="layui-form-item">
|
|
||||||
<div class="layui-input-block">
|
|
||||||
<button class="layui-btn" lay-submit lay-filter="set_system_email">确认保存</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
{/block}
|
|
||||||
{block name="js"}
|
|
||||||
<script>
|
|
||||||
layui.config({
|
|
||||||
base: '/static/admin/' //静态资源所在路径
|
|
||||||
}).extend({
|
|
||||||
index: 'lib/index' //主入口模块
|
|
||||||
}).use(['index', 'set']);
|
|
||||||
</script>
|
|
||||||
{/block}
|
|
293
view/admin/set/system/server.html
Normal file
293
view/admin/set/system/server.html
Normal file
@ -0,0 +1,293 @@
|
|||||||
|
{extend name="public/base" /}
|
||||||
|
|
||||||
|
{block name="body"}
|
||||||
|
<div class="layui-fluid" id="component-tabs">
|
||||||
|
<div class="layui-row">
|
||||||
|
<div class="layui-col-md12">
|
||||||
|
<div class="layui-card">
|
||||||
|
<!--div class="layui-card-header">简洁风格</div-->
|
||||||
|
<div class="layui-card-body">
|
||||||
|
<div class="layui-tab layui-tab-brief" lay-filter="component-tabs-brief">
|
||||||
|
<ul class="layui-tab-title">
|
||||||
|
<li class="layui-this">邮件设置</li>
|
||||||
|
<li>积分设置</li>
|
||||||
|
<li>用户等级</li>
|
||||||
|
<li>商品管理</li>
|
||||||
|
<li>订单管理</li>
|
||||||
|
</ul>
|
||||||
|
<div class="layui-tab-content">
|
||||||
|
<div class="layui-tab-item layui-show">
|
||||||
|
<div class="layui-form" wid100 lay-filter="">
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<label class="layui-form-label">SMTP服务器</label>
|
||||||
|
<div class="layui-input-inline">
|
||||||
|
<input type="text" name="host" value="{$mailserver.host}" class="layui-input">
|
||||||
|
</div>
|
||||||
|
<div class="layui-form-mid layui-word-aux">如:smtp.163.com</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<label class="layui-form-label">SMTP端口号</label>
|
||||||
|
<div class="layui-input-inline" style="width: 80px;">
|
||||||
|
<input type="text" name="port" lay-verify="number" value="{$mailserver.port}" class="layui-input">
|
||||||
|
</div>
|
||||||
|
<div class="layui-form-mid layui-word-aux">一般为 25 或 465</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<label class="layui-form-label">发件人邮箱</label>
|
||||||
|
<div class="layui-input-inline">
|
||||||
|
<input type="text" name="mail" value="{$mailserver.mail}" lay-verify="email" autocomplete="off" class="layui-input">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<label class="layui-form-label">发件人昵称</label>
|
||||||
|
<div class="layui-input-inline">
|
||||||
|
<input type="text" name="nickname" value="{$mailserver.nickname}" autocomplete="off" class="layui-input">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<label class="layui-form-label">邮箱登入密码</label>
|
||||||
|
<div class="layui-input-inline">
|
||||||
|
<input type="password" name="password" value="{$mailserver.password}" autocomplete="off" class="layui-input">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<div class="layui-input-block">
|
||||||
|
<button class="layui-btn" lay-submit lay-filter="set_system_email">确认保存</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-tab-item">
|
||||||
|
<div class="layui-tab-content" style="padding: 20px 0;">
|
||||||
|
<div class="layui-form layui-card-header layuiadmin-card-header-auto">
|
||||||
|
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<div class="layui-inline">
|
||||||
|
<label class="layui-form-label">连续签到</label>
|
||||||
|
<div class="layui-input-inline" style="width: 90px;">
|
||||||
|
<select name="days">
|
||||||
|
<option value="1">1天</option>
|
||||||
|
<option value="2">2天</option>
|
||||||
|
<option value="3">3天</option>
|
||||||
|
<option value="5">5天</option>
|
||||||
|
<option value="7">7天</option>
|
||||||
|
<option value="10">10天</option>
|
||||||
|
<option value="20">20天</option>
|
||||||
|
<option value="100">100天</option>
|
||||||
|
<option value="365">365天</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="layui-input-inline">
|
||||||
|
<input type="tel" name="score" lay-verify="required" placeholder="获得积分" autocomplete="off" class="layui-input">
|
||||||
|
</div>
|
||||||
|
<div class="layui-input-inline">
|
||||||
|
<input type="submit" class="layui-btn" lay-submit lay-filter="sign-rule-submit" id="sign-rule-submit" value="立即提交">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<table id="sign-rule" lay-filter="sign-rule"></table>
|
||||||
|
<script type="text/html" id="sign-rule-button">
|
||||||
|
<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 class="layui-tab-item">
|
||||||
|
<div class="layui-tab-content" style="padding: 20px 0;">
|
||||||
|
<div class="layui-form layui-card-header layuiadmin-card-header-auto">
|
||||||
|
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<div class="layui-inline">
|
||||||
|
<label class="layui-form-label">用户积分</label>
|
||||||
|
<div class="layui-input-inline" style="width: 120px;">
|
||||||
|
<select name="vip">
|
||||||
|
<option value="0">普通</option>
|
||||||
|
<option value="1">VIP1</option>
|
||||||
|
<option value="2">VIP2</option>
|
||||||
|
<option value="3">VIP3</option>
|
||||||
|
<option value="4">VIP4</option>
|
||||||
|
<option value="5">VIP5</option>
|
||||||
|
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="layui-input-inline">
|
||||||
|
<input type="tel" name="score" lay-verify="required" placeholder="积分区间" autocomplete="off" class="layui-input">
|
||||||
|
</div>
|
||||||
|
<div class="layui-input-inline">
|
||||||
|
<input type="submit" class="layui-btn" lay-submit lay-filter="vip-rule-submit" id="vip-rule-submit" value="立即提交">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="layui-form-item">
|
||||||
|
<table id="vip-rule" lay-filter="vip-rule"></table>
|
||||||
|
<script type="text/html" id="vip-rule-button">
|
||||||
|
<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 class="layui-tab-item">内容4</div>
|
||||||
|
<div class="layui-tab-item">内容5</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
{/block}
|
||||||
|
{block name="js"}
|
||||||
|
<script>
|
||||||
|
layui.config({
|
||||||
|
base: '/static/admin/' //静态资源所在路径
|
||||||
|
}).extend({
|
||||||
|
index: 'lib/index' //主入口模块
|
||||||
|
}).use(['index', 'set','table','form'], function(){
|
||||||
|
var $ = layui.$
|
||||||
|
,admin = layui.admin
|
||||||
|
,element = layui.element
|
||||||
|
,table = layui.table
|
||||||
|
,form = layui.form
|
||||||
|
,router = layui.router();
|
||||||
|
|
||||||
|
element.render();
|
||||||
|
|
||||||
|
element.on('tab(component-tabs-brief)', function(obj){
|
||||||
|
layer.msg(obj.index + ':' + this.innerHTML);
|
||||||
|
});
|
||||||
|
|
||||||
|
/* 触发事件 */
|
||||||
|
var active = {
|
||||||
|
tabAdd: function(){
|
||||||
|
/* 新增一个Tab项 */
|
||||||
|
element.tabAdd('demo', {
|
||||||
|
title: '新选项'+ (Math.random()*1000|0) /* 用于演示 */
|
||||||
|
,content: '内容'+ (Math.random()*1000|0)
|
||||||
|
,id: new Date().getTime() /* 实际使用一般是规定好的id,这里以时间戳模拟下 */
|
||||||
|
})
|
||||||
|
}
|
||||||
|
,tabDelete: function(othis){
|
||||||
|
/* 删除指定Tab项 */
|
||||||
|
element.tabDelete('demo', '22');
|
||||||
|
othis.addClass('layui-btn-disabled');
|
||||||
|
}
|
||||||
|
,tabChange: function(){
|
||||||
|
/* 切换到指定Tab项 */
|
||||||
|
element.tabChange('demo', '33');
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
$('#component-tabs .site-demo-active').on('click', function(){
|
||||||
|
var othis = $(this), type = othis.data('type');
|
||||||
|
active[type] ? active[type].call(this, othis) : '';
|
||||||
|
});
|
||||||
|
|
||||||
|
/* Hash地址的定位 */
|
||||||
|
var layid = router.hash.replace(/^#layid=/, '');
|
||||||
|
layid && element.tabChange('component-tabs-hash', layid);
|
||||||
|
|
||||||
|
element.on('tab(component-tabs-hash)', function(elem){
|
||||||
|
location.hash = '/'+ layui.router().path.join('/') + '#layid=' + $(this).attr('lay-id');
|
||||||
|
});
|
||||||
|
|
||||||
|
//添加签到规则
|
||||||
|
form.on('submit(sign-rule-submit)',function(data){
|
||||||
|
var field = data.field;
|
||||||
|
$.ajax({
|
||||||
|
type:"post",
|
||||||
|
url:"{:url('admin/Sign/add')}",
|
||||||
|
data:field,
|
||||||
|
daType:"json",
|
||||||
|
success:function (data){
|
||||||
|
if (data.code == 0) {
|
||||||
|
console.log(data);
|
||||||
|
layer.msg(data.msg,{
|
||||||
|
icon:6,
|
||||||
|
time:2000
|
||||||
|
}, function(){
|
||||||
|
location.reload();
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
layer.open({
|
||||||
|
tiele:'添加失败',
|
||||||
|
content:data.msg,
|
||||||
|
icon:5,
|
||||||
|
anim:6
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
//添加VIP规则
|
||||||
|
form.on('submit(vip-rule-submit)',function(data){
|
||||||
|
var field = data.field;
|
||||||
|
$.ajax({
|
||||||
|
type:"post",
|
||||||
|
url:"{:url('admin/Vip/add')}",
|
||||||
|
data:field,
|
||||||
|
daType:"json",
|
||||||
|
success:function (data){
|
||||||
|
if (data.code == 0) {
|
||||||
|
console.log(data);
|
||||||
|
layer.msg(data.msg,{
|
||||||
|
icon:6,
|
||||||
|
time:2000
|
||||||
|
}, function(){
|
||||||
|
location.reload();
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
layer.open({
|
||||||
|
tiele:'添加失败',
|
||||||
|
content:data.msg,
|
||||||
|
icon:5,
|
||||||
|
anim:6
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
});
|
||||||
|
|
||||||
|
//签到规则
|
||||||
|
table.render({
|
||||||
|
elem: '#sign-rule',
|
||||||
|
url: '/admin/Sign/signRule',
|
||||||
|
limit: 5,
|
||||||
|
cols:[[
|
||||||
|
{type: 'numbers', fixed: 'left'},
|
||||||
|
{field: 'days',title: '天数'},
|
||||||
|
{field: 'score',title: '积分',minWidth:100},
|
||||||
|
{field: 'ctime',title: '时间',minWidth:100},
|
||||||
|
{title: '操作', width: 150, align:'center', fixed: 'right', toolbar: '#sign-rule-button'}
|
||||||
|
|
||||||
|
]]
|
||||||
|
});
|
||||||
|
//Vip规则
|
||||||
|
table.render({
|
||||||
|
elem: '#vip-rule',
|
||||||
|
url: '/admin/Vip/vipRule',
|
||||||
|
limit: 5,
|
||||||
|
cols:[[
|
||||||
|
{type: 'numbers', fixed: 'left'},
|
||||||
|
{field: 'score',title: '积分'},
|
||||||
|
{field: 'vip',title: '等级',minWidth:100},
|
||||||
|
{field: 'ctime',title: '时间',minWidth:100},
|
||||||
|
{title: '操作', width: 150, align:'center', fixed: 'right', toolbar: '#vip-rule-button'}
|
||||||
|
|
||||||
|
]]
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
{/block}
|
@ -93,7 +93,7 @@ $(function() {
|
|||||||
layui.cache.page = 'user';
|
layui.cache.page = 'user';
|
||||||
layui.cache.user = {
|
layui.cache.user = {
|
||||||
username: '{$user.name??'游客'}'
|
username: '{$user.name??'游客'}'
|
||||||
,uid: {$user.id ? 168*$user.id : -1}
|
,uid: {$user.id ? $user.id : -1}
|
||||||
,avatar: '{if condition="$user['user_img'] neq ''"}{$user['user_img']}{else /}/static/res/images/avatar/00.jpg{/if}'
|
,avatar: '{if condition="$user['user_img'] neq ''"}{$user['user_img']}{else /}/static/res/images/avatar/00.jpg{/if}'
|
||||||
,experience: 83
|
,experience: 83
|
||||||
,sex: '{if condition="$user['sex'] eq 0"}男{else/}女{/if}'
|
,sex: '{if condition="$user['sex'] eq 0"}男{else/}女{/if}'
|
||||||
|
@ -3,26 +3,7 @@
|
|||||||
{block name="content"}
|
{block name="content"}
|
||||||
<div class="layui-tab layui-tab-brief" lay-filter="user" id="LAY_msg" style="margin-top: 15px;">
|
<div class="layui-tab layui-tab-brief" lay-filter="user" id="LAY_msg" style="margin-top: 15px;">
|
||||||
<button class="layui-btn layui-btn-danger" id="LAY_delallmsg">清空全部消息</button>
|
<button class="layui-btn layui-btn-danger" id="LAY_delallmsg">清空全部消息</button>
|
||||||
<div id="LAY_minemsg" style="margin-top: 10px;"></div>
|
<div id="LAY_minemsg" style="margin-top: 10px;"></div>
|
||||||
<!--div id="LAY_minemsg1" style="margin-top: 10px;">
|
|
||||||
<ul class="mine-msg">
|
|
||||||
{volist name="msg" id="vo"}
|
|
||||||
<li data-id="{$vo.id}">
|
|
||||||
<blockquote class="layui-elem-quote">
|
|
||||||
<a href="/index/jump?name={$vo.name}" target="_blank"><cite>{$vo.name}</cite></a>回答了您的求解<a target="_blank" name="title" id-data="{$vo.id}" href="{$vo.link}"><cite>{$vo.title}</cite></a>
|
|
||||||
</blockquote>
|
|
||||||
<p><span>{$vo.create_time|date='Y-m-d H:i'}</span><a href="javascript:;" class="layui-btn layui-btn-small layui-btn-danger fly-delete">删除</a></p>
|
|
||||||
</li>
|
|
||||||
{/volist}
|
|
||||||
<li data-id="123">
|
|
||||||
<blockquote class="layui-elem-quote">
|
|
||||||
系统消息:欢迎使用 layui
|
|
||||||
</blockquote>
|
|
||||||
<p><span>1小时前</span><a href="javascript:;" class="layui-btn layui-btn-small layui-btn-danger fly-delete">删除</a></p>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div-->
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
{/block}
|
{/block}
|
||||||
{block name="script"}
|
{block name="script"}
|
||||||
@ -42,23 +23,21 @@
|
|||||||
fly: 'index'
|
fly: 'index'
|
||||||
}).use('fly');
|
}).use('fly');
|
||||||
//
|
//
|
||||||
$('a[name=title]').on('click','a', function(){
|
$('#LAY_minemsg').on('click','.art-title', function(){
|
||||||
var id = $(this).attr('id-data');
|
var id = $(this).attr('id-data');
|
||||||
console.log('11111');
|
var othis = $(this);
|
||||||
|
console.log(othis);
|
||||||
$.ajax({
|
$.ajax({
|
||||||
type:"post",
|
type:"post",
|
||||||
url:"{:url('message/read')}",
|
url:"{:url('message/read')}",
|
||||||
data:{"id":id},
|
data:{"id":id},
|
||||||
daType:"json",
|
daType:"json",
|
||||||
success:function (data){
|
success:function (res){
|
||||||
if (data.status == 0) {
|
if(res.status == 0){
|
||||||
layer.msg(data.msg,{
|
location.reload();
|
||||||
icon:6,
|
//othis.append('<span class="float:right">已读</span>');
|
||||||
time:2000
|
}
|
||||||
}, function(){
|
|
||||||
location.reload();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user