完善文章模块

This commit is contained in:
hdm 2021-11-18 12:19:57 +08:00
parent a7b65c0d5f
commit 78b8faf044
13 changed files with 427 additions and 224 deletions

View File

@ -11,10 +11,10 @@ namespace app\home;
use think\App; use think\App;
use think\exception\HttpResponseException; use think\exception\HttpResponseException;
use think\facade\Request;
use think\facade\Cache; use think\facade\Cache;
use think\facade\Session;
use think\facade\Db; use think\facade\Db;
use think\facade\Request;
use think\facade\Session;
use think\facade\View; use think\facade\View;
/** /**
@ -53,12 +53,12 @@ abstract class BaseController
*/ */
public function __construct(App $app) public function __construct(App $app)
{ {
$this->module = strtolower(app('http')->getName()); $this->module = strtolower(app('http')->getName());
$this->app = $app; $this->app = $app;
$this->request = $this->app->request; $this->request = $this->app->request;
$this->controller = strtolower($this->request->controller()); $this->controller = strtolower($this->request->controller());
$this->action = strtolower($this->request->action()); $this->action = strtolower($this->request->action());
$this->uid=0; $this->uid = 0;
// 控制器初始化 // 控制器初始化
$this->initialize(); $this->initialize();
} }
@ -69,40 +69,38 @@ abstract class BaseController
$this->checkLogin(); $this->checkLogin();
$this->param = $this->request->param(); $this->param = $this->request->param();
} }
/** /**
*验证用户登录 *验证用户登录
*/ */
protected function checkLogin() protected function checkLogin()
{ {
if ($this->controller !== 'login' && $this->controller !=='captcha' ) { if ($this->controller !== 'login' && $this->controller !== 'captcha') {
$session_admin = get_config('app.session_admin'); $session_admin = get_config('app.session_admin');
if (!Session::has($session_admin)) { if (!Session::has($session_admin)) {
if ($this->request->isAjax()) { if ($this->request->isAjax()) {
return to_assign(404, '请先登录'); return to_assign(404, '请先登录');
} else { } else {
redirect('/home/login/index.html')->send(); redirect('/home/login/index.html')->send();
exit; exit;
} }
} else {
$this->uid = Session::get($session_admin)['id'];
View::assign('login_user', $this->uid);
// 验证用户访问权限
if ($this->controller !== 'index' && $this->controller !== 'api') {
if (!$this->checkAuth()) {
if ($this->request->isAjax()) {
return to_assign(202, '你没有权限,请联系管理员或者人事部');
} else {
echo '<div style="text-align:center;color:red;margin-top:20%;">你没有权限,请联系管理员或者人事部</div>';exit;
}
}
}
} }
else{
$this->uid = Session::get($session_admin)['id'];
View::assign('login_user',$this->uid);
// 验证用户访问权限
if ($this->controller !== 'index' && $this->controller !== 'api') {
if (!$this->checkAuth()) {
if ($this->request->isAjax()) {
return to_assign(202, '你没有权限,请联系管理员或者人事部');
} else {
echo '<div style="text-align:center;color:red;margin-top:20%;">你没有权限,请联系管理员或者人事部</div>';exit;
}
}
}
}
} }
} }
/** /**
* 验证用户访问权限 * 验证用户访问权限
* @DateTime 2020-12-21 * @DateTime 2020-12-21
@ -113,20 +111,20 @@ abstract class BaseController
protected function checkAuth() protected function checkAuth()
{ {
//Cache::delete('RulesSrc' . $uid); //Cache::delete('RulesSrc' . $uid);
$uid = $this->uid; $uid = $this->uid;
if (!Cache::get('RulesSrc' . $uid) || !Cache::get('RulesSrc0')) { if (!Cache::get('RulesSrc' . $uid) || !Cache::get('RulesSrc0')) {
//用户所在权限组及所拥有的权限 //用户所在权限组及所拥有的权限
// 执行查询 // 执行查询
$groups = []; $groups = [];
$position_id=Db::name('Admin')->where('id',$uid)->value('position_id'); $position_id = Db::name('Admin')->where('id', $uid)->value('position_id');
$groups = Db::name('PositionGroup') $groups = Db::name('PositionGroup')
->alias('a') ->alias('a')
->join("AdminGroup g", "a.group_id=g.id", 'LEFT') ->join("AdminGroup g", "a.group_id=g.id", 'LEFT')
->where([['a.pid','=',$position_id],['g.status','=',1]]) ->where([['a.pid', '=', $position_id], ['g.status', '=', 1]])
->select() ->select()
->toArray(); ->toArray();
//保存用户所属用户组设置的所有权限规则id //保存用户所属用户组设置的所有权限规则id
$ids = []; $ids = [];
foreach ($groups as $g) { foreach ($groups as $g) {
$ids = array_merge($ids, explode(',', trim($g['rules'], ','))); $ids = array_merge($ids, explode(',', trim($g['rules'], ',')));
} }
@ -151,14 +149,14 @@ abstract class BaseController
$auth_list_all = Cache::get('RulesSrc0'); $auth_list_all = Cache::get('RulesSrc0');
$auth_list = Cache::get('RulesSrc' . $uid); $auth_list = Cache::get('RulesSrc' . $uid);
} }
$pathUrl = $this->module. '/' .$this->controller . '/' . $this->action; $pathUrl = $this->module . '/' . $this->controller . '/' . $this->action;
if (!in_array($pathUrl, $auth_list)) { if (!in_array($pathUrl, $auth_list)) {
return false; return false;
} else { } else {
return true; return true;
} }
} }
// //
// 以下为新增,为了使用旧版的 success error redirect 跳转 start // 以下为新增,为了使用旧版的 success error redirect 跳转 start
// //

View File

@ -66,8 +66,7 @@ class Article extends BaseController
} }
return to_assign(); return to_assign();
} }
} } else {
else{
$pid = isset($param['pid']) ? $param['pid'] : 0; $pid = isset($param['pid']) ? $param['pid'] : 0;
View::assign('pid', $pid); View::assign('pid', $pid);
return view(); return view();
@ -100,17 +99,46 @@ class Article extends BaseController
$param = get_params(); $param = get_params();
$where = array(); $where = array();
if (!empty($param['keywords'])) { if (!empty($param['keywords'])) {
$where[] = ['a.id|a.title|a.keywords|a.desc|a.content|w.title', 'like', '%' . $param['keywords'] . '%']; $where[] = ['a.id|a.title|a.keywords|a.desc|a.content|c.title', 'like', '%' . $param['keywords'] . '%'];
} }
if (!empty($param['article_cate_id'])) { if (!empty($param['article_cate_id'])) {
$where[] = ['a.article_cate_id', '=', $param['article_cate_id']]; $where[] = ['a.article_cate_id', '=', $param['article_cate_id']];
} }
$where[] = ['a.status', '>=', 0]; $where[] = ['a.status', '>=', 0];
$where[] = ['a.is_share', '=', 1];
$rows = empty($param['limit']) ? get_config(app . page_size) : $param['limit']; $rows = empty($param['limit']) ? get_config(app . page_size) : $param['limit'];
$content = ArticleList::where($where) $content = ArticleList::where($where)
->field('a.*,w.id as cate_id,a.id as id,w.title as cate_title,a.title as title') ->field('a.*,c.id as cate_id,a.id as id,c.title as cate_title,a.title as title,d.title as department,u.name as user')
->alias('a') ->alias('a')
->join('article_cate w', 'a.article_cate_id = w.id') ->join('article_cate c', 'a.article_cate_id = c.id')
->join('admin u', 'a.uid = u.id','LEFT')
->join('department d', 'a.did = d.id','LEFT')
->order('a.create_time desc')
->paginate($rows, false, ['query' => $param]);
return table_assign(0, '', $content);
} else {
return view();
}
}
public function list()
{
if (request()->isAjax()) {
$param = get_params();
$where = array();
if (!empty($param['keywords'])) {
$where[] = ['a.id|a.title|a.keywords|a.desc|a.content|c.title', 'like', '%' . $param['keywords'] . '%'];
}
if (!empty($param['article_cate_id'])) {
$where[] = ['a.article_cate_id', '=', $param['article_cate_id']];
}
$where[] = ['a.status', '>=', 0];
$where[] = ['a.uid', '=', $this->uid];
$rows = empty($param['limit']) ? get_config(app . page_size) : $param['limit'];
$content = ArticleList::where($where)
->field('a.*,c.id as cate_id,a.id as id,c.title as cate_title,a.title as title')
->alias('a')
->join('article_cate c', 'a.article_cate_id = c.id')
->order('a.create_time desc') ->order('a.create_time desc')
->paginate($rows, false, ['query' => $param]); ->paginate($rows, false, ['query' => $param]);
return table_assign(0, '', $content); return table_assign(0, '', $content);
@ -165,6 +193,8 @@ class Article extends BaseController
return to_assign(1, $e->getError()); return to_assign(1, $e->getError());
} }
$param['create_time'] = time(); $param['create_time'] = time();
$param['uid'] = $this->uid;
$param['did'] = get_login_admin('did');
Db::startTrans(); Db::startTrans();
try { try {
if (empty($param['desc'])) { if (empty($param['desc'])) {
@ -196,8 +226,7 @@ class Article extends BaseController
} else { } else {
return to_assign(1, '操作失败'); return to_assign(1, '操作失败');
} }
} } else {
else{
$id = isset($param['id']) ? $param['id'] : 0; $id = isset($param['id']) ? $param['id'] : 0;
View::assign('id', $id); View::assign('id', $id);
if ($id > 0) { if ($id > 0) {
@ -209,6 +238,16 @@ class Article extends BaseController
} }
} }
//查看文章
public function view()
{
$id = get_params("id");
$detail = (new ArticleList())->detail($id);
// read 字段加 1
Db::name('article')->where('id', $id)->inc('read')->update();
View::assign('detail', $detail);
return view();
}
//删除文章 //删除文章
public function delete() public function delete()
{ {

View File

@ -22,13 +22,15 @@ class Article extends Model
$keywrod_array = \think\facade\Db::name('ArticleKeywords') $keywrod_array = \think\facade\Db::name('ArticleKeywords')
->field('i.aid,i.keywords_id,k.title') ->field('i.aid,i.keywords_id,k.title')
->alias('i') ->alias('i')
->join('keywords k', 'k.id = i.keywords_id', 'LEFT') ->join('Keywords k', 'k.id = i.keywords_id', 'LEFT')
->order('i.create_time asc') ->order('i.create_time asc')
->where(array('i.aid' => $id, 'k.status' => 1)) ->where(array('i.aid' => $id, 'k.status' => 1))
->select()->toArray(); ->select()->toArray();
$article['keyword_ids'] = implode(",", array_column($keywrod_array, 'keywords_id')); $article['keyword_ids'] = implode(",", array_column($keywrod_array, 'keywords_id'));
$article['keyword_names'] = implode(',', array_column($keywrod_array, 'title')); $article['keyword_names'] = implode(',', array_column($keywrod_array, 'title'));
$article['user'] = \think\facade\Db::name('Admin')->where(['id' => $article['uid']])->value('name');
$article['department'] = \think\facade\Db::name('Department')->where(['id' => $article['did']])->value('title');
return $article; return $article;
} }

View File

@ -2,14 +2,13 @@
<!-- 主体 --> <!-- 主体 -->
{block name="body"} {block name="body"}
<form class="layui-form body-content"> <form class="layui-form body-content">
<h3 class="h3-title">新增文章</h3>
<table class="layui-table"> <table class="layui-table">
<tr> <tr>
<td class="layui-td-gray2">文章标题 <span style="color: red">*</span></td> <td class="layui-td-gray">文章标题 <span style="color: red">*</span></td>
<td colspan="7"><input type="text" name="title" lay-verify="required" lay-reqText="请输入文章标题" autocomplete="off" placeholder="请输入文章标题" <td colspan="3"><input type="text" name="title" lay-verify="required" lay-reqText="请输入文章标题" autocomplete="off" placeholder="请输入文章标题"
class="layui-input"></td> class="layui-input"></td>
</tr> <td class="layui-td-gray">文章分类<span style="color: red">*</span></td>
<tr>
<td class="layui-td-gray2">文章分类<span style="color: red">*</span></td>
<td> <td>
<select name="article_cate_id" lay-verify="required" lay-reqText="请选择分类"> <select name="article_cate_id" lay-verify="required" lay-reqText="请选择分类">
<option value="">请选择分类</option> <option value="">请选择分类</option>
@ -18,29 +17,15 @@
{/volist} {/volist}
</select> </select>
</td> </td>
<td class="layui-td-gray2">关键字<span style="color: red">*</span></td> </tr>
<td> <tr>
<td class="layui-td-gray">关键字<span style="color: red">*</span></td>
<td colspan="3">
<input type="text" id="keyword_name" name="keyword_names" autocomplete="off" lay-verify="required" lay-reqText="请选择关键字" placeholder="请选择关键字" <input type="text" id="keyword_name" name="keyword_names" autocomplete="off" lay-verify="required" lay-reqText="请选择关键字" placeholder="请选择关键字"
class="layui-input" readonly> class="layui-input" readonly>
<input type="hidden" id="keyword_id" name="keyword_ids" autocomplete="off"> <input type="hidden" id="keyword_id" name="keyword_ids" autocomplete="off">
</td> </td>
<td class="layui-td-gray2">状态<span style="color: red">*</span></td> <td class="layui-td-gray">属性</td>
<td>
<input type="radio" name="status" value="1" title="正常" checked>
<input type="radio" name="status" value="0" title="下架">
</td>
</tr>
<tr>
<td class="layui-td-gray2">排序</td>
<td>
<input type="text" name="sort" value="0" placeholder="请输入排序,数字" autocomplete="off" class="layui-input">
</td>
<td class="layui-td-gray2">是否共享</td>
<td>
<input type="radio" name="is_share" value="1" title="是" checked>
<input type="radio" name="is_share" value="0" title="否">
</td>
<td class="layui-td-gray2">属性</td>
<td> <td>
<select name="type"> <select name="type">
<option value="">请选择属性</option> <option value="">请选择属性</option>
@ -51,29 +36,30 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="layui-td-gray2">是否原创</td> <td class="layui-td-gray">是否共享</td>
<td> <td>
<input type="radio" name="original" value="1" title="是"> <input type="radio" name="is_share" value="1" title="是" checked>
<input type="radio" name="original" value="0" title="否" checked> <input type="radio" name="is_share" value="0" title="否">
</td> </td>
<td class="layui-td-gray2">作者/来源</td> <td class="layui-td-gray" style="width:50px">状态</td>
<td> <td>
<input type="text" name="origin" class="layui-input" autocomplete="off" placeholder="请输入文章作者或来源"> <input type="radio" name="status" value="1" title="正常" checked>
<input type="radio" name="status" value="0" title="下架">
</td> </td>
<td class="layui-td-gray2">来源链接</td> <td class="layui-td-gray">排序</td>
<td> <td>
<input type="text" name="origin_url" class="layui-input" autocomplete="off" placeholder="请输入来源链接"> <input type="text" name="sort" value="0" placeholder="请输入排序,数字" autocomplete="off" class="layui-input">
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="layui-td-gray2" style="vertical-align:top;">文章摘要</td> <td class="layui-td-gray" style="vertical-align:top;">文章摘要</td>
<td colspan="3"> <td colspan="3">
<textarea name="desc" placeholder="请输入摘要不能超过200个字" class="layui-textarea"></textarea> <textarea name="desc" placeholder="请输入摘要不能超过200个字" class="layui-textarea"></textarea>
</td> </td>
<td class="layui-td-gray2" style="vertical-align:top;">缩略图</td> <td class="layui-td-gray" style="vertical-align:top;">缩略图</td>
<td> <td>
<div class="layui-upload"> <div class="layui-upload">
<button type="button" class="layui-btn layui-btn-normal layui-btn-sm" id="test1">上传缩略图尺寸240x136</button> <button type="button" class="layui-btn layui-btn-normal layui-btn-sm" id="test1">缩略图(尺寸240x136)</button>
<div class="layui-upload-list" id="demo1" style="width: 120px; height:66px; overflow: hidden;"> <div class="layui-upload-list" id="demo1" style="width: 120px; height:66px; overflow: hidden;">
<img src="" style="max-width: 100%; height:66px;" /> <img src="" style="max-width: 100%; height:66px;" />
<input type="hidden" name="thumb" value=""> <input type="hidden" name="thumb" value="">
@ -82,7 +68,7 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="layui-td-gray2" style="vertical-align:top;">文章内容<span style="color: red">*</span></td> <td class="layui-td-gray" style="vertical-align:top;">文章内容<span style="color: red">*</span></td>
<td colspan="5"> <td colspan="5">
<textarea name="content" placeholder="请输入内容" class="layui-textarea" id="container" lay-verify="required" lay-reqText="请完善文章内容" <textarea name="content" placeholder="请输入内容" class="layui-textarea" id="container" lay-verify="required" lay-reqText="请完善文章内容"
style="border:0;padding:0"></textarea> style="border:0;padding:0"></textarea>
@ -92,7 +78,6 @@
<div class="layui-form-item"> <div class="layui-form-item">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">立即提交</button> <button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">立即提交</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button> <button type="reset" class="layui-btn layui-btn-primary">重置</button>
<button lay-event="back" class="layui-btn layui-btn-primary">返回</button>
</div> </div>
</form> </form>
{/block} {/block}
@ -140,7 +125,7 @@ function init(layui) {
success: function (e) { success: function (e) {
if (e.code == 0) { if (e.code == 0) {
layer.confirm('保存成功,返回列表页吗?', { icon: 3, title: '提示' }, function (index) { layer.confirm('保存成功,返回列表页吗?', { icon: 3, title: '提示' }, function (index) {
window.location.href="{:url('home/article/index')}"; parent.location.reload();
}); });
} else { } else {
layer.msg(e.msg); layer.msg(e.msg);
@ -149,16 +134,11 @@ function init(layui) {
}) })
return false; return false;
}); });
//监听返回
$('.body-content').on('click', '[lay-event="back"]', function () {
history.back(-1);
return false;
});
} }
</script> </script>
{include file="common/layui" base="base" extend="['tagpicker']" callback="init" /} {include file="common/layui" base="base" extend="['tagpicker']" callback="init" /}
{include file="common/ueditor" id="container" name="content" width="776" height="500" toolbar="[]" /} {include file="common/ueditor" id="container" name="content" width="750" height="500" toolbar="[]" /}
{/block} {/block}
<!-- /脚本 --> <!-- /脚本 -->

View File

@ -2,15 +2,13 @@
<!-- 主体 --> <!-- 主体 -->
{block name="body"} {block name="body"}
<form class="layui-form body-content"> <form class="layui-form body-content">
<div> <h3 class="h3-title">编辑文章</h3>
<table class="layui-table"> <table class="layui-table">
<tr> <tr>
<td class="layui-td-gray2">文章标题 <span style="color: red">*</span></td> <td class="layui-td-gray">文章标题 <span style="color: red">*</span></td>
<td colspan="7"> <input type="text" name="title" lay-verify="required" lay-reqText="请输入文章标题" autocomplete="off" placeholder="请输入文章标题" <td colspan="3"><input type="text" name="title" lay-verify="required" lay-reqText="请输入文章标题" autocomplete="off" placeholder="请输入文章标题"
class="layui-input" value="{$article.title}"></td> class="layui-input" value="{$article.title}"></td>
</tr> <td class="layui-td-gray">文章分类<span style="color: red">*</span></td>
<tr>
<td class="layui-td-gray2">文章分类<span style="color: red">*</span></td>
<td> <td>
<select name="article_cate_id" lay-verify="required" lay-reqText="请选择分类"> <select name="article_cate_id" lay-verify="required" lay-reqText="请选择分类">
<option value="">请选择分类</option> <option value="">请选择分类</option>
@ -18,31 +16,16 @@
<option value="{$v.id}" {eq name="$article.article_cate_id" value="$v.id" }selected{/eq}>{$v.title}</option> <option value="{$v.id}" {eq name="$article.article_cate_id" value="$v.id" }selected{/eq}>{$v.title}</option>
{/volist} {/volist}
</select> </select>
</td> </td>
<td class="layui-td-gray2">关键字<span style="color: red">*</span></td> </tr>
<td> <tr>
<td class="layui-td-gray">关键字<span style="color: red">*</span></td>
<td colspan="3">
<input type="text" id="keyword_name" name="keyword_names" autocomplete="off" lay-verify="required" lay-reqText="请选择关键字" placeholder="请选择关键字" <input type="text" id="keyword_name" name="keyword_names" autocomplete="off" lay-verify="required" lay-reqText="请选择关键字" placeholder="请选择关键字"
class="layui-input" value="{$article.keyword_names}" readonly> class="layui-input" value="{$article.keyword_names}" readonly>
<input type="hidden" id="keyword_id" name="keywords_id" autocomplete="off" value="{$article.keyword_ids}"> <input type="hidden" id="keyword_id" name="keywords_id" autocomplete="off" value="{$article.keyword_ids}">
</td> </td>
<td class="layui-td-gray2">状态<span style="color: red">*</span></td> <td class="layui-td-gray">属性</td>
<td>
<input type="radio" name="status" value="1" title="正常" {eq name="$article.status" value="1" }checked{/eq}>
<input type="radio" name="status" value="0" title="下架" {eq name="$article.status" value="0" }checked{/eq}>
</td>
</tr>
<tr>
<td class="layui-td-gray2">排序</td>
<td>
<input type="text" name="sort" placeholder="请输入排序,数字" autocomplete="off" class="layui-input"
value="{$article.sort}">
</td>
<td class="layui-td-gray2">是否共享</td>
<td>
<input type="radio" name="is_share" value="1" title="是" {eq name="$article.is_share" value="1" }checked{/eq}>
<input type="radio" name="is_share" value="0" title="否" {eq name="$article.is_share" value="0" }checked{/eq}>
</td>
<td class="layui-td-gray2">属性</td>
<td> <td>
<select name="type"> <select name="type">
<option value="">请选择属性</option> <option value="">请选择属性</option>
@ -53,31 +36,30 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="layui-td-gray2">是否原创</td> <td class="layui-td-gray">是否共享<span style="color: red">*</span></td>
<td> <td>
<input type="radio" name="original" value="1" title="是" {eq name="$article.original" value="1" }checked{/eq}> <input type="radio" name="is_share" value="1" title="是" {eq name="$article.is_share" value="1" }checked{/eq}>
<input type="radio" name="original" value="0" title="否" {eq name="$article.original" value="0" }checked{/eq}> <input type="radio" name="is_share" value="0" title="否" {eq name="$article.is_share" value="0" }checked{/eq}>
</td> </td>
<td class="layui-td-gray2">作者/来源</td> <td class="layui-td-gray" style="width:50px">状态</td>
<td> <td>
<input type="text" name="origin" class="layui-input" autocomplete="off" placeholder="请输入文章来源" <input type="radio" name="status" value="1" title="正常" {eq name="$article.status" value="1" }checked{/eq}>
value="{$article.origin}"> <input type="radio" name="status" value="0" title="下架" {eq name="$article.status" value="0" }checked{/eq}>
</td> </td>
<td class="layui-td-gray2">来源链接</td> <td class="layui-td-gray">排序</td>
<td> <td>
<input type="text" name="origin_url" class="layui-input" autocomplete="off" placeholder="请输入来源链接" <input type="text" name="sort" placeholder="请输入排序,数字" autocomplete="off" class="layui-input" value="{$article.sort}">
value="{$article.origin_url}">
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="layui-td-gray2" style="vertical-align:top;">摘要</td> <td class="layui-td-gray" style="vertical-align:top;">文章摘要</td>
<td colspan="3"> <td colspan="3">
<textarea name="desc" placeholder="请输入摘要不能超过200个字" class="layui-textarea">{$article.desc}</textarea> <textarea name="desc" placeholder="请输入摘要不能超过200个字" class="layui-textarea">{$article.desc}</textarea>
</td> </td>
<td class="layui-td-gray2" style="vertical-align:top;">缩略图</td> <td class="layui-td-gray" style="vertical-align:top;">缩略图</td>
<td> <td>
<div class="layui-upload"> <div class="layui-upload">
<button type="button" class="layui-btn layui-btn-normal layui-btn-sm" id="test1">上传缩略图尺寸240x136</button> <button type="button" class="layui-btn layui-btn-normal layui-btn-sm" id="test1">缩略图(尺寸240x136)</button>
<div class="layui-upload-list" id="demo1" style="width: 120px; height:66px; overflow: hidden;"> <div class="layui-upload-list" id="demo1" style="width: 120px; height:66px; overflow: hidden;">
<img src="{:get_file($article.thumb)}" style="max-width: 100%; height:66px;" /> <img src="{:get_file($article.thumb)}" style="max-width: 100%; height:66px;" />
<input type="hidden" name="thumb" value="{$article.thumb}"> <input type="hidden" name="thumb" value="{$article.thumb}">
@ -86,7 +68,7 @@
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="layui-td-gray2" style="vertical-align:top;">文章内容<span style="color: red">*</span></td> <td class="layui-td-gray" style="vertical-align:top;">文章内容<span style="color: red">*</span></td>
<td colspan="5"> <td colspan="5">
<textarea name="content" placeholder="请输入内容" class="layui-textarea" id="container" lay-verify="required" lay-reqText="请完善文章内容" <textarea name="content" placeholder="请输入内容" class="layui-textarea" id="container" lay-verify="required" lay-reqText="请完善文章内容"
style="border:0;padding:0">{$article.content}</textarea> style="border:0;padding:0">{$article.content}</textarea>
@ -94,12 +76,10 @@
</tr> </tr>
</table> </table>
<div class="layui-form-item"> <div class="layui-form-item">
<input type="hidden" name="id" value="{$article.id}"> <input type="hidden" name="id" value="{$article.id}">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">立即提交</button> <button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">立即提交</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button> <button type="reset" class="layui-btn layui-btn-primary">重置</button>
<button lay-event="back" class="layui-btn layui-btn-primary">返回</button>
</div> </div>
</div>
</form> </form>
{/block} {/block}
<!-- /主体 --> <!-- /主体 -->
@ -146,7 +126,7 @@
success: function (e) { success: function (e) {
if (e.code == 0) { if (e.code == 0) {
layer.confirm('保存成功,返回列表页吗?', { icon: 3, title: '提示' }, function (index) { layer.confirm('保存成功,返回列表页吗?', { icon: 3, title: '提示' }, function (index) {
window.location.href="{:url('home/article/index')}"; parent.location.reload();
}); });
} else { } else {
layer.msg(e.msg); layer.msg(e.msg);
@ -155,16 +135,11 @@
}) })
return false; return false;
}); });
//监听返回
$('.body-content').on('click', '[lay-event="back"]', function () {
history.back(-1);
return false;
});
} }
</script> </script>
{include file="common/layui" base='base' extend="['tagpicker']" callback="init" /} {include file="common/layui" base='base' extend="['tagpicker']" callback="init" /}
{include file="common/ueditor" id="container" name="content" width="776" height="500" toolbar="[]" /} {include file="common/ueditor" id="container" name="content" width="750" height="500" toolbar="[]" /}
{/block} {/block}
<!-- /脚本 --> <!-- /脚本 -->

View File

@ -19,19 +19,13 @@
<table class="layui-hide" id="test" lay-filter="test"></table> <table class="layui-hide" id="test" lay-filter="test"></table>
</div> </div>
<script type="text/html" id="status">
<i class="layui-icon {{# if(d.status == 1){ }}layui-icon-ok{{# } else { }}layui-icon-close{{# } }}"></i>
</script>
<script type="text/html" id="is_share">
<i class="layui-icon {{# if(d.is_share == 1){ }}layui-icon-ok{{# } else { }}layui-icon-close{{# } }}"></i>
</script>
<script type="text/html" id="toolbarDemo"> <script type="text/html" id="toolbarDemo">
<div class="layui-btn-container"> <div class="layui-btn-container">
<a class="layui-btn layui-btn-normal layui-btn-sm" title="添加文章" href="{:url('home/article/add')}">+ 添加文章</a> <span class="layui-btn layui-btn-normal layui-btn-sm" title="添加文章" lay-event="add">+ 添加文章</span>
</div> </div>
</script> </script>
<script type="text/html" id="barDemo"> <script type="text/html" id="barDemo">
<div class="layui-btn-group"><a class="layui-btn layui-btn-xs" href="/home/article/add?id={{d.id}}">编辑</a><a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a></div> <div class="layui-btn-group"><span class="layui-btn layui-btn-normal layui-btn-xs" lay-event="view">查看</span></div>
</script> </script>
{/block} {/block}
<!-- /主体 --> <!-- /主体 -->
@ -42,6 +36,7 @@
function init(layui) { function init(layui) {
var TAB = parent.layui.tab, var TAB = parent.layui.tab,
table = layui.table, table = layui.table,
rightpage = layui.rightpage,
form = layui.form; form = layui.form;
var tableIns = table.render({ var tableIns = table.render({
@ -62,60 +57,54 @@
field: 'sort', field: 'sort',
title: '排序', title: '排序',
align: 'center', align: 'center',
width: 80 width: 66
}, { }, {
field: 'cate_title', field: 'cate_title',
title: '分类', title: '分类',
width: 200 align: 'center',
width: 120
}, { }, {
field: 'title', field: 'title',
title: '文章标题', title: '文章标题'
templet: '<div><a href="/home/index/index/id/{{d.id}}.html" class="layui-table-link" target="_blank">{{d.title}}</a></div>' },{
}, { field: 'read',
field: 'status', title: '阅读量',
title: '状态',
toolbar: '#status',
align: 'center', align: 'center',
width: 66 width: 80
}, { }, {
field: 'is_home', field: 'user',
title: '首页共享', title: '发布人',
toolbar: '#is_share',
align: 'center', align: 'center',
width: 90 width: 80
}, {
field: 'department',
title: '部门',
align: 'center',
width: 100
}, { }, {
field: 'right', field: 'right',
title: '操作', title: '操作',
toolbar: '#barDemo', toolbar: '#barDemo',
width: 100, width: 60,
align: 'center' align: 'center'
} }
] ]
] ]
}); });
//表头工具栏事件
table.on('toolbar(test)', function(obj){
if (obj.event === 'add') {
rightpage.open("{:url('home/article/add')}");
return;
}
});
//监听行工具事件 //监听行工具事件
table.on('tool(test)', function(obj) { table.on('tool(test)', function(obj) {
var data = obj.data; var data = obj.data;
if (obj.event === 'del') { if(obj.event === 'view'){
layer.confirm('确定要删除吗?', { rightpage.open('/home/article/view?id='+data.id);
icon: 3, return;
title: '提示'
}, function(index) {
$.ajax({
url: "{:url('home/article/delete')}",
data: {
id: data.id
},
success: function(e) {
layer.msg(e.msg);
if (e.code == 0) {
obj.del();
}
}
})
layer.close(index);
});
} }
}); });
@ -134,6 +123,6 @@
}); });
} }
</script> </script>
{include file="common/layui" base="base" extend="[]" callback="init" /} {include file="common/layui" base="base" extend="['rightpage']" callback="init" /}
{/block} {/block}
<!-- /脚本 --> <!-- /脚本 -->

View File

@ -0,0 +1,160 @@
{extend name="common/base"/}
<!-- 主体 -->
{block name="body"}
<div class="body-content">
<form class="layui-form">
<div class="layui-input-inline">
<select name="article_cate_id">
<option value="">请选择文章分类</option>
{volist name=":set_recursion(get_article_cate())" id="v"}
<option value="{$v.id}">{$v.title}</option>
{/volist}
</select>
</div>
<div class="layui-input-inline" style="width:300px;">
<input type="text" name="keywords" placeholder="ID/标题/分类/描述/内容" class="layui-input" autocomplete="off" />
</div>
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">提交搜索</button>
</form>
<table class="layui-hide" id="test" lay-filter="test"></table>
</div>
<script type="text/html" id="status">
<i class="layui-icon {{# if(d.status == 1){ }}layui-icon-ok{{# } else { }}layui-icon-close{{# } }}"></i>
</script>
<script type="text/html" id="is_share">
<i class="layui-icon {{# if(d.is_share == 1){ }}layui-icon-ok{{# } else { }}layui-icon-close{{# } }}"></i>
</script>
<script type="text/html" id="toolbarDemo">
<div class="layui-btn-container">
<span class="layui-btn layui-btn-normal layui-btn-sm" title="添加文章" lay-event="add">+ 添加文章</span>
</div>
</script>
<script type="text/html" id="barDemo">
<div class="layui-btn-group"><span class="layui-btn layui-btn-normal layui-btn-xs" lay-event="view">查看</span><span class="layui-btn layui-btn-xs" lay-event="edit">编辑</span><span class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</span></div>
</script>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script>
function init(layui) {
var TAB = parent.layui.tab,
table = layui.table,
rightpage = layui.rightpage,
form = layui.form;
var tableIns = table.render({
elem: '#test',
title: '文章列表',
toolbar: '#toolbarDemo',
url: "{:url('home/article/list')}", //数据接口
page: true, //开启分页
limit: 20,
cols: [
[ //表头
{
field: 'id',
title: '编号',
align: 'center',
width: 80
}, {
field: 'sort',
title: '排序',
align: 'center',
width: 66
}, {
field: 'cate_title',
title: '分类',
align: 'center',
width: 120
}, {
field: 'title',
title: '文章标题'
},{
field: 'read',
title: '阅读量',
align: 'center',
width: 80
}, {
field: 'status',
title: '状态',
toolbar: '#status',
align: 'center',
width: 66
}, {
field: 'is_home',
title: '是否共享',
toolbar: '#is_share',
align: 'center',
width: 80
}, {
field: 'right',
title: '操作',
toolbar: '#barDemo',
width: 130,
align: 'center'
}
]
]
});
//表头工具栏事件
table.on('toolbar(test)', function(obj){
if (obj.event === 'add') {
rightpage.open("{:url('home/article/add')}");
return;
}
});
//监听行工具事件
table.on('tool(test)', function(obj) {
var data = obj.data;
if(obj.event === 'view'){
rightpage.open('/home/article/view?id='+data.id);
return;
}
if(obj.event === 'edit'){
rightpage.open('/home/article/add?id='+data.id);
return;
}
if (obj.event === 'del') {
layer.confirm('确定要删除吗?', {
icon: 3,
title: '提示'
}, function(index) {
$.ajax({
url: "{:url('home/article/delete')}",
data: {
id: data.id
},
success: function(e) {
layer.msg(e.msg);
if (e.code == 0) {
obj.del();
}
}
})
layer.close(index);
});
}
});
//监听搜索提交
form.on('submit(webform)', function(data) {
tableIns.reload({
where: {
keywords: data.field.keywords,
article_cate_id: data.field.article_cate_id
},
page: {
curr: 1
}
});
return false;
});
}
</script>
{include file="common/layui" base="base" extend="['rightpage']" callback="init" /}
{/block}
<!-- /脚本 -->

View File

@ -0,0 +1,56 @@
{extend name="common/base"/}
<!-- 主体 -->
{block name="body"}
<div class="body-content">
<h3 class="h3-title">文章详情</h3>
<table class="layui-table layui-table-form">
<tr>
<td class="layui-td-gray">文章标题</td>
<td colspan="3">{$detail.title}</td>
<td class="layui-td-gray">文章分类</td>
<td>
{volist name=":set_recursion(get_article_cate())" id="v"}
{eq name="$detail.article_cate_id" value="$v.id" }{$v.title}{/eq}
{/volist}
</td>
</tr>
<tr>
<td class="layui-td-gray">关键字</td>
<td colspan="3">{$detail.keyword_names}</td>
<td class="layui-td-gray">阅读量</td>
<td>{$detail.read}</td>
</tr>
<tr>
<td class="layui-td-gray">发布时间</td>
<td>{$detail.create_time | date='Y-m-d H:i:s'}</td>
<td class="layui-td-gray">发布人</td>
<td>{$detail.user}</td>
<td class="layui-td-gray">部门</td>
<td>{$detail.department}</td>
</tr>
{notempty name="$detail.origin_url"}
<tr>
<td class="layui-td-gray">来源链接</td>
<td colspan="5">{$detail.origin_url}</td>
</tr>
{/notempty}
<tr>
<td class="layui-td-gray" style="vertical-align:top;">文章内容</td>
<td colspan="5">{$detail.content|raw}</td>
</tr>
</table>
</div>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script>
function init(layui) {
}
</script>
{include file="common/layui" base='base' extend="[]" callback="init" /}
{/block}
<!-- /脚本 -->

View File

@ -6,7 +6,7 @@
<!-- 主体 --> <!-- 主体 -->
{block name="body"} {block name="body"}
<form class="layui-form body-content"> <form class="layui-form body-content">
<h3 style="padding:5px 0;">发送消息</h3> <h3 class="h3-title">发送消息</h3>
{if condition="$id eq 0"} {if condition="$id eq 0"}
<table class="layui-table"> <table class="layui-table">
<tr> <tr>

View File

@ -126,6 +126,7 @@
return; return;
} }
}); });
//表头工具栏事件 //表头工具栏事件
table.on('toolbar(test)', function(obj){ table.on('toolbar(test)', function(obj){
var checkStatus = table.checkStatus(obj.config.id); //获取选中行状态 var checkStatus = table.checkStatus(obj.config.id); //获取选中行状态

View File

@ -52,7 +52,7 @@
//监听提交 //监听提交
form.on('submit(webform)', function (data) { form.on('submit(webform)', function (data) {
$.ajax({ $.ajax({
url: "{:url('home/rule/post_submit')}", url: "{:url('home/rule/add')}",
type: 'post', type: 'post',
data: data.field, data: data.field,
success: function (e) { success: function (e) {

View File

@ -67,7 +67,7 @@ CREATE TABLE `oa_admin_group` (
-- ---------------------------- -- ----------------------------
-- Records of cms_admin_group -- Records of cms_admin_group
-- ---------------------------- -- ----------------------------
INSERT INTO `oa_admin_group` VALUES ('1', '超级员工权限', '1', '1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113', '1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43', '超级员工权限,拥有系统的最高权限,不可修改', '0', '0'); INSERT INTO `oa_admin_group` VALUES ('1', '超级员工权限', '1', '1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115', '1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43', '超级员工权限,拥有系统的最高权限,不可修改', '0', '0');
-- ---------------------------- -- ----------------------------
-- Table structure for oa_admin_log -- Table structure for oa_admin_log
@ -293,39 +293,41 @@ INSERT INTO `oa_admin_rule` VALUES (84, 6, 'home/article/cate', '知识分类','
INSERT INTO `oa_admin_rule` VALUES (85, 84, 'home/article/cate_add', '添加/修改知识分类','知识分类', 0, 0); INSERT INTO `oa_admin_rule` VALUES (85, 84, 'home/article/cate_add', '添加/修改知识分类','知识分类', 0, 0);
INSERT INTO `oa_admin_rule` VALUES (86, 84, 'home/article/cate_delete', '删除知识分类','知识分类', 0, 0); INSERT INTO `oa_admin_rule` VALUES (86, 84, 'home/article/cate_delete', '删除知识分类','知识分类', 0, 0);
INSERT INTO `oa_admin_rule` VALUES (87, 6, 'home/article/index', '知识列表','知识文章', 0, 0); INSERT INTO `oa_admin_rule` VALUES (87, 6, 'home/article/index', '共享知识','知识文章', 0, 0);
INSERT INTO `oa_admin_rule` VALUES (88, 87, 'home/article/add', '添加/修改知识文章','知识文章', 0, 0); INSERT INTO `oa_admin_rule` VALUES (88, 87, 'home/article/add', '添加/修改知识文章','知识文章', 0, 0);
INSERT INTO `oa_admin_rule` VALUES (89, 87, 'home/article/delete', '删除知识文章','知识文章', 0, 0); INSERT INTO `oa_admin_rule` VALUES (89, 87, 'home/article/delete', '删除知识文章','知识文章', 0, 0);
INSERT INTO `oa_admin_rule` VALUES (90, 87, 'home/article/view', '查看知识文章','知识文章', 0, 0); INSERT INTO `oa_admin_rule` VALUES (90, 87, 'home/article/view', '查看知识文章','知识文章', 0, 0);
INSERT INTO `oa_admin_rule` VALUES (91, 7, 'home/plan/index', '工作计划','工作计划', 0, 0); INSERT INTO `oa_admin_rule` VALUES (91, 6, 'home/article/list', '个人知识','知识文章', 0, 0);
INSERT INTO `oa_admin_rule` VALUES (92, 91, 'home/plan/calendar', '工作计划日历','工作计划', 0, 0);
INSERT INTO `oa_admin_rule` VALUES (93, 91, 'home/plan/add', '添加/编辑工作计划','工作计划', 0, 0);
INSERT INTO `oa_admin_rule` VALUES (94, 91, 'home/plan/delete', '删除工作计划','工作计划', 0, 0);
INSERT INTO `oa_admin_rule` VALUES (95, 91, 'home/plan/detail', '查看工作计划','工作计划', 0, 0);
INSERT INTO `oa_admin_rule` VALUES (96, 7, 'home/schedule/index', '工作记录','工作记录', 0, 0); INSERT INTO `oa_admin_rule` VALUES (92, 7, 'home/plan/index', '工作计划','工作计划', 0, 0);
INSERT INTO `oa_admin_rule` VALUES (97, 96, 'home/schedule/calendar', '工作记录日历','工作日历', 0, 0); INSERT INTO `oa_admin_rule` VALUES (93, 92, 'home/plan/calendar', '工作计划日历','工作计划', 0, 0);
INSERT INTO `oa_admin_rule` VALUES (98, 96, 'home/schedule/add', '添加/编辑工作记录','工作记录', 0, 0); INSERT INTO `oa_admin_rule` VALUES (94, 92, 'home/plan/add', '添加/编辑工作计划','工作计划', 0, 0);
INSERT INTO `oa_admin_rule` VALUES (99, 96, 'home/schedule/delete', '删除工作记录','工作记录', 0, 0); INSERT INTO `oa_admin_rule` VALUES (95, 92, 'home/plan/delete', '删除工作计划','工作计划', 0, 0);
INSERT INTO `oa_admin_rule` VALUES (100, 96, 'home/schedule/detail', '查看工作记录','工作记录', 0, 0); INSERT INTO `oa_admin_rule` VALUES (96, 92, 'home/plan/detail', '查看工作计划','工作计划', 0, 0);
INSERT INTO `oa_admin_rule` VALUES (101, 96, 'home/schedule/update_labor_time', '更改工时','工时', 0, 0);
INSERT INTO `oa_admin_rule` VALUES (102, 8, 'home/expense/index', '报销管理','报销', 0, 0); INSERT INTO `oa_admin_rule` VALUES (97, 7, 'home/schedule/index', '工作记录','工作记录', 0, 0);
INSERT INTO `oa_admin_rule` VALUES (103, 102, 'home/expense/add', '新增/编辑报销','报销', 0, 0); INSERT INTO `oa_admin_rule` VALUES (98, 97, 'home/schedule/calendar', '工作记录日历','工作日历', 0, 0);
INSERT INTO `oa_admin_rule` VALUES (104, 102, 'home/expense/delete', '删除报销','报销', 0, 0); INSERT INTO `oa_admin_rule` VALUES (99, 97, 'home/schedule/add', '添加/编辑工作记录','工作记录', 0, 0);
INSERT INTO `oa_admin_rule` VALUES (105, 102, 'home/expense/view', '查看报销信息','报销', 0, 0); INSERT INTO `oa_admin_rule` VALUES (100, 97, 'home/schedule/delete', '删除工作记录','工作记录', 0, 0);
INSERT INTO `oa_admin_rule` VALUES (106, 102, 'home/expense/check', '设置报销状态','报销状态', 0, 0); INSERT INTO `oa_admin_rule` VALUES (101, 97, 'home/schedule/detail', '查看工作记录','工作记录', 0, 0);
INSERT INTO `oa_admin_rule` VALUES (102, 97, 'home/schedule/update_labor_time', '更改工时','工时', 0, 0);
INSERT INTO `oa_admin_rule` VALUES (107, 8, 'home/invoice/index', '发票管理','发票', 0, 0); INSERT INTO `oa_admin_rule` VALUES (103, 8, 'home/expense/index', '报销管理','报销', 0, 0);
INSERT INTO `oa_admin_rule` VALUES (108, 107, 'home/invoice/add', '新增/编辑发票','发票', 0, 0); INSERT INTO `oa_admin_rule` VALUES (104, 103, 'home/expense/add', '新增/编辑报销','报销', 0, 0);
INSERT INTO `oa_admin_rule` VALUES (109, 107, 'home/invoice/delete', '删除发票','发票', 0, 0); INSERT INTO `oa_admin_rule` VALUES (105, 103, 'home/expense/delete', '删除报销','报销', 0, 0);
INSERT INTO `oa_admin_rule` VALUES (110, 107, 'home/invoice/view', '查看发票信息','发票', 0, 0); INSERT INTO `oa_admin_rule` VALUES (106, 103, 'home/expense/view', '查看报销信息','报销', 0, 0);
INSERT INTO `oa_admin_rule` VALUES (111, 107, 'home/invoice/check', '设置发票状态','发票状态', 0, 0); INSERT INTO `oa_admin_rule` VALUES (107, 103, 'home/expense/check', '设置报销状态','报销状态', 0, 0);
INSERT INTO `oa_admin_rule` VALUES (112, 8, 'home/income/index', '到账管理','到账', 0, 0); INSERT INTO `oa_admin_rule` VALUES (108, 8, 'home/invoice/index', '发票管理','发票', 0, 0);
INSERT INTO `oa_admin_rule` VALUES (113, 112, 'home/income/add', '新增到账','到账', 0, 0); INSERT INTO `oa_admin_rule` VALUES (109, 108, 'home/invoice/add', '新增/编辑发票','发票', 0, 0);
INSERT INTO `oa_admin_rule` VALUES (114, 112, 'home/income/check', '设置到账状态','到账状态', 0, 0); INSERT INTO `oa_admin_rule` VALUES (110, 108, 'home/invoice/delete', '删除发票','发票', 0, 0);
INSERT INTO `oa_admin_rule` VALUES (111, 108, 'home/invoice/view', '查看发票信息','发票', 0, 0);
INSERT INTO `oa_admin_rule` VALUES (112, 108, 'home/invoice/check', '设置发票状态','发票状态', 0, 0);
INSERT INTO `oa_admin_rule` VALUES (113, 8, 'home/income/index', '到账管理','到账', 0, 0);
INSERT INTO `oa_admin_rule` VALUES (114, 113, 'home/income/add', '新增到账','到账', 0, 0);
INSERT INTO `oa_admin_rule` VALUES (115, 113, 'home/income/check', '设置到账状态','到账状态', 0, 0);
-- ---------------------------- -- ----------------------------
-- Table structure for oa_article -- Table structure for oa_article
@ -334,19 +336,19 @@ DROP TABLE IF EXISTS `oa_article`;
CREATE TABLE `oa_article` ( CREATE TABLE `oa_article` (
`id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT, `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL DEFAULT '' COMMENT '知识文章标题', `title` varchar(255) NOT NULL DEFAULT '' COMMENT '知识文章标题',
`article_cate_id` int(11) NOT NULL DEFAULT 0 COMMENT '关联分类id',
`keywords` varchar(255) NULL DEFAULT '' COMMENT '关键字', `keywords` varchar(255) NULL DEFAULT '' COMMENT '关键字',
`desc` varchar(1000) NULL DEFAULT '' COMMENT '摘要', `desc` varchar(1000) NULL DEFAULT '' COMMENT '摘要',
`status` int(1) NOT NULL DEFAULT 1 COMMENT '状态:1正常-1下架',
`thumb` int(11) NOT NULL DEFAULT 0 COMMENT '缩略图id', `thumb` int(11) NOT NULL DEFAULT 0 COMMENT '缩略图id',
`original` int(1) NOT NULL DEFAULT 0 COMMENT '是否原创1原创', `uid` int(11) NOT NULL DEFAULT 0 COMMENT '作者',
`origin` varchar(255) NOT NULL DEFAULT '' COMMENT '来源或作者', `did` int(11) NOT NULL DEFAULT 0 COMMENT '部门',
`origin_url` varchar(255) NOT NULL DEFAULT '' COMMENT '来源地址', `origin_url` varchar(255) NOT NULL DEFAULT '' COMMENT '来源地址',
`content` text NOT NULL, `content` text NOT NULL COMMENT '文章内容',
`read` int(11) NOT NULL DEFAULT 0 COMMENT '阅读量', `read` int(11) NOT NULL DEFAULT 0 COMMENT '阅读量',
`type` tinyint(2) NOT NULL DEFAULT 0 COMMENT '属性1精华 2热门 3推荐', `type` tinyint(2) NOT NULL DEFAULT 0 COMMENT '属性1精华 2热门 3推荐',
`is_share` tinyint(1) NOT NULL DEFAULT 1 COMMENT '是否分享0否1是', `is_share` tinyint(1) NOT NULL DEFAULT 1 COMMENT '是否分享0否1是',
`status` int(1) NOT NULL DEFAULT 1 COMMENT '状态:1正常-1下架',
`sort` int(11) NOT NULL DEFAULT 0 COMMENT '排序', `sort` int(11) NOT NULL DEFAULT 0 COMMENT '排序',
`article_cate_id` int(11) NOT NULL DEFAULT 0,
`create_time` int(11) NOT NULL DEFAULT 0, `create_time` int(11) NOT NULL DEFAULT 0,
`update_time` int(11) NOT NULL DEFAULT 0, `update_time` int(11) NOT NULL DEFAULT 0,
`delete_time` int(11) NOT NULL DEFAULT 0, `delete_time` int(11) NOT NULL DEFAULT 0,

View File

@ -102,4 +102,5 @@
.layui-anim-rl.layui-layer-iframe{ .layui-anim-rl.layui-layer-iframe{
overflow:inherit!important; overflow:inherit!important;
} }
.right-popup-close{position: absolute;width:50px;height:44px;line-height:44px;text-align:center; left: -50px;right:0; top: 50px;background-color:#FF5722;color:#fff;border-radius:4px 0 0 4px; cursor:pointer} .right-popup-close{position: absolute;width:50px;height:44px;line-height:44px;text-align:center; left: -52px;right:0; top: 50px;background-color:#FF5722;color:#fff;border-radius:6px 0 0 6px; cursor:pointer; border:2px solid #fff;}
.h3-title{font-size:18px; height:36px; font-weight:800}