You've already forked guangan
1
This commit is contained in:
36
plugs/think-plugs-cms/src/Service.php
Normal file
36
plugs/think-plugs-cms/src/Service.php
Normal file
@ -0,0 +1,36 @@
|
||||
<?php
|
||||
|
||||
namespace plugin\cms;
|
||||
|
||||
use think\admin\Plugin;
|
||||
use think\facade\View;
|
||||
|
||||
class Service extends Plugin
|
||||
{
|
||||
protected $appName = '文章管理';
|
||||
protected $appCode = 'cms';
|
||||
protected $package = 'jerryyan/think-plugs-cms';
|
||||
|
||||
public static function register(): void
|
||||
{
|
||||
View::assign("_YES_OR_NO", [
|
||||
'1' => '是',
|
||||
'0' => '否'
|
||||
]);
|
||||
}
|
||||
|
||||
public static function menu(): array
|
||||
{
|
||||
$code = app(static::class)->appCode;
|
||||
return [
|
||||
[
|
||||
'name' => '文章管理',
|
||||
'subs' => [
|
||||
['name' => '文章分类', 'icon' => 'layui-icon layui-icon-template-1', 'node' => "{$code}/category/index"],
|
||||
['name' => '文章列表', 'icon' => 'layui-icon layui-icon-template-1', 'node' => "{$code}/article/index"],
|
||||
['name' => '轮播图列表', 'icon' => 'layui-icon layui-icon-template-1', 'node' => "{$code}/banner/index"],
|
||||
]
|
||||
]
|
||||
];
|
||||
}
|
||||
}
|
143
plugs/think-plugs-cms/src/controller/Article.php
Normal file
143
plugs/think-plugs-cms/src/controller/Article.php
Normal file
@ -0,0 +1,143 @@
|
||||
<?php
|
||||
|
||||
namespace plugin\cms\controller;
|
||||
|
||||
use plugin\cms\model\CmsArticle;
|
||||
use plugin\cms\model\CmsCateArticle;
|
||||
use plugin\cms\model\CmsCategory;
|
||||
use think\admin\Controller;
|
||||
use think\admin\helper\QueryHelper;
|
||||
|
||||
/**
|
||||
* 文章管理
|
||||
*/
|
||||
class Article extends Controller
|
||||
{
|
||||
/**
|
||||
* 文章管理
|
||||
* @auth true
|
||||
* @menu true
|
||||
* @login true
|
||||
* @return void
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$this->title = '文章管理';
|
||||
CmsArticle::mQuery()->layTable(function () {
|
||||
}, static function (QueryHelper $query) {
|
||||
$query->where('is_deleted', 0);
|
||||
$query->with(['category']);
|
||||
$query->equal('status')->like('title');
|
||||
$query->timeBetween('create_at');
|
||||
});
|
||||
}
|
||||
|
||||
public function _index_page_filter(&$list)
|
||||
{
|
||||
foreach ($list as &$item) {
|
||||
$cate_list = $item['category'];
|
||||
$item['cate_name'] = join(',', array_column($cate_list, 'name'));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加文章
|
||||
* @auth true
|
||||
* @menu true
|
||||
* @login true
|
||||
* @return void
|
||||
*/
|
||||
public function add()
|
||||
{
|
||||
$this->title = '添加文章';
|
||||
$this->cates = CmsCategory::getList();
|
||||
$this->cate_ids = [];
|
||||
CmsArticle::mForm('form');
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑文章
|
||||
* @auth true
|
||||
* @menu true
|
||||
* @login true
|
||||
* @return void
|
||||
*/
|
||||
public function edit()
|
||||
{
|
||||
$this->title = '编辑文章';
|
||||
$this->cates = CmsCategory::getList();
|
||||
$this->id = $this->request->param('id');
|
||||
$this->cate_ids = CmsCateArticle::where(['aid' => $this->id])->column('cid');
|
||||
CmsArticle::mForm('form', "id");
|
||||
}
|
||||
|
||||
public function _form_filter(&$data)
|
||||
{
|
||||
unset($data['cate_ids']);
|
||||
}
|
||||
|
||||
public function _form_result($state, $data)
|
||||
{
|
||||
if (isset($data['id'])) {
|
||||
CmsCateArticle::where(['aid' => $data['id']])->delete();
|
||||
$cate_ids = $this->request->param('cate_ids', []);
|
||||
foreach ($cate_ids as $cid) {
|
||||
CmsCateArticle::create(['aid' => $data['id'], 'cid' => $cid]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除文章
|
||||
* @auth true
|
||||
* @menu true
|
||||
* @login true
|
||||
* @return void
|
||||
*/
|
||||
public function remove()
|
||||
{
|
||||
CmsArticle::mDelete('id');
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改文章状态
|
||||
* @auth true
|
||||
* @menu true
|
||||
* @login true
|
||||
* @return void
|
||||
*/
|
||||
public function status()
|
||||
{
|
||||
CmsArticle::mSave($this->_vali([
|
||||
'id.require' => '文章ID不能为空',
|
||||
'status.in:0,1' => '状态值范围异常!',
|
||||
'status.require' => '状态值不能为空!',
|
||||
]), 'id');
|
||||
}
|
||||
|
||||
public function _status_save_result($state, $data)
|
||||
{
|
||||
if ($state) {
|
||||
$status = $this->request->param('status');
|
||||
$id = $this->request->param('id');
|
||||
if ($status == 1) {
|
||||
CmsArticle::mk()->where('id', $id)->save([
|
||||
'publish_at' => date('Y-m-d H:i:s')
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public function sort()
|
||||
{
|
||||
CmsArticle::mSave($this->_vali([
|
||||
'id.require' => '文章ID不能为空',
|
||||
'sort.require' => '排序值不能为空!',
|
||||
'sort.number' => '排序必须为数字!',
|
||||
'sort.between:0,9999' => '排序值必须为0~9999之间!',
|
||||
]), 'id');
|
||||
}
|
||||
}
|
97
plugs/think-plugs-cms/src/controller/Banner.php
Normal file
97
plugs/think-plugs-cms/src/controller/Banner.php
Normal file
@ -0,0 +1,97 @@
|
||||
<?php
|
||||
|
||||
namespace plugin\cms\controller;
|
||||
|
||||
use plugin\cms\model\CmsBanner;
|
||||
use think\admin\Controller;
|
||||
use think\admin\helper\QueryHelper;
|
||||
|
||||
class Banner extends Controller
|
||||
{
|
||||
/**
|
||||
* 轮播图管理
|
||||
* @auth true
|
||||
* @menu true
|
||||
* @login true
|
||||
* @return void
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$this->title = '轮播图管理';
|
||||
CmsBanner::mQuery()->layTable(function () {
|
||||
}, static function (QueryHelper $query) {
|
||||
$query->equal('status')->like('title');
|
||||
$query->timeBetween('create_at');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加轮播图
|
||||
* @auth true
|
||||
* @menu true
|
||||
* @login true
|
||||
* @return void
|
||||
*/
|
||||
public function add()
|
||||
{
|
||||
$this->title = '添加栏目';
|
||||
$this->_applyFormToken();
|
||||
CmsBanner::mForm('form');
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑轮播图
|
||||
* @auth true
|
||||
* @menu true
|
||||
* @login true
|
||||
* @return void
|
||||
*/
|
||||
public function edit()
|
||||
{
|
||||
$this->title = '编辑栏目';
|
||||
$this->id = $this->request->param('id', 0, 'intval'); //当前栏目ID
|
||||
$this->_applyFormToken();
|
||||
CmsBanner::mForm('form');
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除轮播图
|
||||
* @auth true
|
||||
* @menu true
|
||||
* @login true
|
||||
* @return void
|
||||
*/
|
||||
public function remove()
|
||||
{
|
||||
CmsBanner::mDelete('id');
|
||||
}
|
||||
|
||||
/**
|
||||
* 状态切换
|
||||
* @auth true
|
||||
* @menu true
|
||||
* @login true
|
||||
* @return void
|
||||
*/
|
||||
public function status()
|
||||
{
|
||||
CmsBanner::mSave($this->_vali([
|
||||
'id.require' => '栏目ID不能为空',
|
||||
'status.in:0,1' => '状态值范围异常!',
|
||||
'status.require' => '状态值不能为空!',
|
||||
]), 'id');
|
||||
}
|
||||
|
||||
public function sort()
|
||||
{
|
||||
CmsBanner::mSave($this->_vali([
|
||||
'id.require' => '栏目ID不能为空',
|
||||
'sort.require' => '排序值不能为空!',
|
||||
'sort.number' => '排序必须为数字!',
|
||||
'sort.between:0,9999' => '排序值必须为0~9999之间!',
|
||||
]), 'id');
|
||||
}
|
||||
}
|
111
plugs/think-plugs-cms/src/controller/Category.php
Normal file
111
plugs/think-plugs-cms/src/controller/Category.php
Normal file
@ -0,0 +1,111 @@
|
||||
<?php
|
||||
|
||||
namespace plugin\cms\controller;
|
||||
|
||||
use plugin\cms\model\CmsCateArticle;
|
||||
use plugin\cms\model\CmsCategory;
|
||||
use think\admin\Controller;
|
||||
use think\admin\helper\QueryHelper;
|
||||
|
||||
class Category extends Controller
|
||||
{
|
||||
/**
|
||||
* 栏目管理
|
||||
* @auth true
|
||||
* @menu true
|
||||
* @login true
|
||||
* @return void
|
||||
* @throws \think\db\exception\DataNotFoundException
|
||||
* @throws \think\db\exception\DbException
|
||||
* @throws \think\db\exception\ModelNotFoundException
|
||||
*/
|
||||
public function index()
|
||||
{
|
||||
$this->title = '栏目列表';
|
||||
CmsCategory::mQuery()->layTable(function () {
|
||||
}, static function (QueryHelper $query) {
|
||||
$query->equal('status')->like('name');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加栏目
|
||||
* @auth true
|
||||
* @menu true
|
||||
* @login true
|
||||
* @return void
|
||||
*/
|
||||
public function add()
|
||||
{
|
||||
$this->title = '添加栏目';
|
||||
$this->_applyFormToken();
|
||||
CmsCategory::mForm('form');
|
||||
}
|
||||
|
||||
/**
|
||||
* 编辑栏目
|
||||
* @auth true
|
||||
* @menu true
|
||||
* @login true
|
||||
* @return void
|
||||
*/
|
||||
public function edit()
|
||||
{
|
||||
$this->title = '编辑栏目';
|
||||
$this->id = $this->request->param('id', 0, 'intval'); //当前栏目ID
|
||||
$this->_applyFormToken();
|
||||
CmsCategory::mForm('form');
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除栏目
|
||||
* @auth true
|
||||
* @menu true
|
||||
* @login true
|
||||
* @return void
|
||||
*/
|
||||
public function remove()
|
||||
{
|
||||
CmsCategory::mDelete('id');
|
||||
}
|
||||
|
||||
public function _delete_filter()
|
||||
{
|
||||
$id = $this->request->post('id');
|
||||
$children_count = CmsCategory::where('pid', $id)->count();
|
||||
if ($children_count > 0) {
|
||||
$this->error("该栏目下有子栏目,不能删除!");
|
||||
}
|
||||
$articles_count = CmsCateArticle::where('cid', $id)->count();
|
||||
if ($articles_count > 0) {
|
||||
$this->error("该栏目下有文章,不能删除!");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 状态切换
|
||||
* @auth true
|
||||
* @menu true
|
||||
* @login true
|
||||
* @return void
|
||||
*/
|
||||
public function status()
|
||||
{
|
||||
CmsCategory::mSave($this->_vali([
|
||||
'id.require' => '栏目ID不能为空',
|
||||
'status.in:0,1' => '状态值范围异常!',
|
||||
'status.require' => '状态值不能为空!',
|
||||
]), 'id');
|
||||
}
|
||||
|
||||
public function sort()
|
||||
{
|
||||
CmsCategory::mSave($this->_vali([
|
||||
'id.require' => '栏目ID不能为空',
|
||||
'sort.require' => '排序值不能为空!',
|
||||
'sort.number' => '排序必须为数字!',
|
||||
'sort.between:0,9999' => '排序值必须为0~9999之间!',
|
||||
]), 'id');
|
||||
}
|
||||
}
|
12
plugs/think-plugs-cms/src/controller/Index.php
Normal file
12
plugs/think-plugs-cms/src/controller/Index.php
Normal file
@ -0,0 +1,12 @@
|
||||
<?php
|
||||
|
||||
namespace plugin\cms\controller;
|
||||
|
||||
use think\admin\Controller;
|
||||
|
||||
class Index extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
}
|
||||
}
|
31
plugs/think-plugs-cms/src/controller/api/Article.php
Normal file
31
plugs/think-plugs-cms/src/controller/api/Article.php
Normal file
@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
namespace plugin\cms\controller\api;
|
||||
|
||||
use plugin\cms\model\CmsArticle;
|
||||
use think\admin\Controller;
|
||||
|
||||
class Article extends Controller
|
||||
{
|
||||
public function index() {
|
||||
$categoryId = $this->request->get('cid');
|
||||
$query = CmsArticle::mk()->where('status', 1);
|
||||
if (is_numeric($categoryId)) {
|
||||
$query->hasWhere('cateids', function ($subQuery) use ($categoryId) {
|
||||
$subQuery->where('cid', $categoryId);
|
||||
});
|
||||
}
|
||||
$articles = $query->field('id,title,thumb,author,from,view_count,publish_at')->order('sort asc,id desc')->paginate();
|
||||
$this->success('获取文章列表', $articles);
|
||||
}
|
||||
|
||||
public function info() {
|
||||
$id = $this->request->get('id');
|
||||
CmsArticle::mk()->where('id', $id)->inc('view_count');
|
||||
$article = CmsArticle::mk()->where('id', $id)->find();
|
||||
if (empty($article)) {
|
||||
$this->error('文章不存在');
|
||||
}
|
||||
$this->success('获取文章详情', $article);
|
||||
}
|
||||
}
|
14
plugs/think-plugs-cms/src/controller/api/Banner.php
Normal file
14
plugs/think-plugs-cms/src/controller/api/Banner.php
Normal file
@ -0,0 +1,14 @@
|
||||
<?php
|
||||
|
||||
namespace plugin\cms\controller\api;
|
||||
|
||||
use plugin\cms\model\CmsBanner;
|
||||
use think\admin\Controller;
|
||||
|
||||
class Banner extends Controller
|
||||
{
|
||||
public function index() {
|
||||
$banners = CmsBanner::mk()->where('status', '=', 1)->field("id, image")->order('sort asc,id desc')->select();
|
||||
$this->success('获取轮播图列表', $banners);
|
||||
}
|
||||
}
|
14
plugs/think-plugs-cms/src/controller/api/Category.php
Normal file
14
plugs/think-plugs-cms/src/controller/api/Category.php
Normal file
@ -0,0 +1,14 @@
|
||||
<?php
|
||||
|
||||
namespace plugin\cms\controller\api;
|
||||
|
||||
use plugin\cms\model\CmsCategory;
|
||||
use think\admin\Controller;
|
||||
|
||||
class Category extends Controller
|
||||
{
|
||||
public function index() {
|
||||
$categories = CmsCategory::mk()->where('status', 1)->order('sort asc,id desc')->field("id, name")->select();
|
||||
$this->success('获取分类成功', $categories);
|
||||
}
|
||||
}
|
24
plugs/think-plugs-cms/src/model/CmsArticle.php
Normal file
24
plugs/think-plugs-cms/src/model/CmsArticle.php
Normal file
@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
namespace plugin\cms\model;
|
||||
|
||||
use think\admin\Model;
|
||||
|
||||
class CmsArticle extends Model
|
||||
{
|
||||
public function category()
|
||||
{
|
||||
return $this->belongsToMany(CmsCategory::class, CmsCateArticle::class,
|
||||
'cid', 'aid');
|
||||
}
|
||||
|
||||
public function cateids()
|
||||
{
|
||||
return $this->hasMany(CmsCateArticle::class, 'aid');
|
||||
}
|
||||
|
||||
public function getCateIdsAttr()
|
||||
{
|
||||
return $this->cateids->column('cid');
|
||||
}
|
||||
}
|
10
plugs/think-plugs-cms/src/model/CmsBanner.php
Normal file
10
plugs/think-plugs-cms/src/model/CmsBanner.php
Normal file
@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace plugin\cms\model;
|
||||
|
||||
use think\admin\Model;
|
||||
|
||||
class CmsBanner extends Model
|
||||
{
|
||||
|
||||
}
|
17
plugs/think-plugs-cms/src/model/CmsCateArticle.php
Normal file
17
plugs/think-plugs-cms/src/model/CmsCateArticle.php
Normal file
@ -0,0 +1,17 @@
|
||||
<?php
|
||||
|
||||
namespace plugin\cms\model;
|
||||
|
||||
use think\model\Pivot;
|
||||
|
||||
class CmsCateArticle extends Pivot
|
||||
{
|
||||
public function category()
|
||||
{
|
||||
return $this->belongsTo('CmsCategory', 'cid', 'id');
|
||||
}
|
||||
public function article()
|
||||
{
|
||||
return $this->belongsTo('CmsArtical', 'aid', 'id');
|
||||
}
|
||||
}
|
29
plugs/think-plugs-cms/src/model/CmsCategory.php
Normal file
29
plugs/think-plugs-cms/src/model/CmsCategory.php
Normal file
@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
namespace plugin\cms\model;
|
||||
|
||||
use think\admin\Model;
|
||||
|
||||
class CmsCategory extends Model
|
||||
{
|
||||
public static function getList()
|
||||
{
|
||||
return static::mk()->order('sort asc')->field('id,name')->where('status', 1)->select()->toArray();
|
||||
}
|
||||
|
||||
public function articles()
|
||||
{
|
||||
return $this->hasManyThrough(CmsArticle::class, CmsCateArticle::class,
|
||||
'cid', 'id', 'id', 'aid');
|
||||
}
|
||||
|
||||
public function children()
|
||||
{
|
||||
return $this->hasMany(CmsCategory::class, 'pid', 'id');
|
||||
}
|
||||
|
||||
public function parent()
|
||||
{
|
||||
return $this->belongsTo(CmsCategory::class, 'pid', 'id');
|
||||
}
|
||||
}
|
88
plugs/think-plugs-cms/src/view/article/form.html
Normal file
88
plugs/think-plugs-cms/src/view/article/form.html
Normal file
@ -0,0 +1,88 @@
|
||||
<form class="layui-form layui-card" action="{:sysuri()}" data-auto="true" method="post" autocomplete="off" data-table-id="articleTable">
|
||||
<div class="layui-row">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">文章标题</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="title" value='{$vo.title|default=""}' required placeholder="请输入文章标题" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-row">
|
||||
<div class="layui-col-md6">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">文章作者</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="author" value='{$vo.author|default=""}' placeholder="请输入文章作者" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-col-md6">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">文章来源</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="source" value='{$vo.source|default=""}' placeholder="请输入文章来源" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">缩略图图片</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="hidden" onchange="$(this).nextAll('img').attr('src', this.value)" name="thumb" value='{$vo.thumb|default=""}' placeholder="请上传缩略图图片" class="layui-input layui-hide">
|
||||
<div class="layui-btn-container">
|
||||
<a data-file="btn" data-type="bmp,png,jpeg,jpg" data-field="thumb" class="input-group-addon layui-btn layui-btn-active">
|
||||
<i class="layui-icon layui-icon-upload"></i>
|
||||
点击上传图片
|
||||
</a>
|
||||
<div class="layui-form-mid layui-word-aux">建议尺寸:750px*300px</div>
|
||||
<a onclick="$('input[name=thumb]').val('').trigger('change')" class="layui-btn layui-btn-danger">
|
||||
<i class="layui-icon layui-icon-close"></i>
|
||||
点击清除图片
|
||||
</a>
|
||||
</div>
|
||||
<img data-tips-image src='{$vo.thumb|default=""}' alt="image" style="width: 375px; height: 150px; object-fit: cover">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">文章分类</label>
|
||||
<div class="layui-input-block">
|
||||
{foreach $cates as $cate}
|
||||
<label class="think-checkbox">
|
||||
{if in_array($cate.id, $cate_ids)}
|
||||
<input type="checkbox" checked name="cate_ids[]" value="{$cate.id}" lay-ignore>{$cate.name}
|
||||
{else}
|
||||
<input type="checkbox" name="cate_ids[]" value="{$cate.id}" lay-ignore>{$cate.name}
|
||||
{/if}
|
||||
</label>
|
||||
{/foreach}
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">文章内容</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea data-textarea class="layui-hide" name='content'>{$vo.content|default=""}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{notempty name='id'}<input class="layui-input layui-hide" type='hidden' value='{$id}' name='id'>{/notempty}
|
||||
<div class="layui-form-item text-center">
|
||||
<button class="layui-btn layui-btn-normal" type='submit'>保存数据</button>
|
||||
<button class="layui-btn layui-btn-danger" type='button' data-confirm="确定要取消编辑吗?" data-close>取消编辑</button>
|
||||
</div>
|
||||
</form>
|
||||
<script>
|
||||
$(function () {
|
||||
var editor = window.createEditor('[name="content"]');
|
||||
if (typeof editor !== 'undefined') {
|
||||
editor.on('change', function () {
|
||||
$('[name="content"]').text(editor.getData());
|
||||
});
|
||||
} else {
|
||||
$('[name="content"]').on('editor.init', function (event, myEditor) {
|
||||
editor = myEditor;
|
||||
myEditor.on('change', function () {
|
||||
$('[name="content"]').text(editor.getData());
|
||||
});
|
||||
})
|
||||
}
|
||||
})
|
||||
</script>
|
108
plugs/think-plugs-cms/src/view/article/index.html
Normal file
108
plugs/think-plugs-cms/src/view/article/index.html
Normal file
@ -0,0 +1,108 @@
|
||||
{extend name="table"}
|
||||
|
||||
{block name="button"}
|
||||
<!--{if auth("add")}-->
|
||||
<button type="button" class="layui-btn layui-btn-sm layui-btn-primary" data-modal='{:url("add")}' data-title="添加文章">添加</button>
|
||||
<!--{/if}-->
|
||||
{/block}
|
||||
|
||||
{block name="content"}
|
||||
<div class="layui-tab">
|
||||
<div class="layui-row">
|
||||
<div class="layui-col">
|
||||
<div class="article_list think-bg-white">
|
||||
{include file='article/index_search'}
|
||||
<table class="layui-hide" data-url="{$request->url()}" data-target-search="form.form-search" id="articleTable" lay-filter="articleTable"></table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/html" id="toolbar">
|
||||
<!--{if auth("edit")}-->
|
||||
<a data-modal="{:url('edit')}?id={{ d.id }}" data-height="80%" data-width="80%" class="layui-btn layui-btn-xs layui-btn-normal" title="修改">修改</a>
|
||||
<!--{/if}-->
|
||||
<!--{if auth("status")}-->
|
||||
{{# if(d.status == 0){ }}
|
||||
<a class="layui-btn layui-btn-xs layui-btn-normal" data-title="启用该轮播图" data-modal='{:url("status")}?id={{ d.id }}&status=1'>启 用</a>
|
||||
{{# } else { }}
|
||||
<a class="layui-btn layui-btn-xs layui-btn-primary" data-title="隐藏该轮播图" data-modal='{:url("status")}?id={{ d.id }}&status=0'>隐 藏</a>
|
||||
{{# } }}
|
||||
<!--{/if}-->
|
||||
<!--{if auth("remove")}-->
|
||||
<a data-confirm="确定要永久删除此文章吗?" data-action="{:url('remove')}" data-value="id#{{ d.id }}" data-csrf="{:systoken('remove')}" class="layui-btn layui-btn-xs layui-btn-danger" title="删除">删除</a>
|
||||
<!--{/if}-->
|
||||
</script>
|
||||
{/block}
|
||||
|
||||
{block name='style'}
|
||||
<style>
|
||||
</style>
|
||||
{/block}
|
||||
|
||||
{block name='script'}
|
||||
<script>
|
||||
$(function () {
|
||||
$('#articleTable').layTable({
|
||||
height: 'full-250',
|
||||
toolbar: true,
|
||||
sort: {field: 'sort', type: 'asc'},
|
||||
title: '文章列表',
|
||||
cols: [[
|
||||
{type: 'numbers'},
|
||||
{field: 'sort', title: '排序', width: 80, sort: true, edit: 'text'},
|
||||
{field: 'thumb', title: '轮播图', width: 140, templet:function(item){
|
||||
if (item.thumb) {
|
||||
return '<img data-tips-image src="'+item.thumb+'" alt="image" style="width: 120px;height: 60px;">';
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
}},
|
||||
{field:'title', title:'标题'},
|
||||
{field:'cate_name', title:'栏目', width:120},
|
||||
{field:'status', title:'状态', width:80, templet:function(item){
|
||||
if(item.status == 0){
|
||||
return '<span style="color:red;">隐藏</span>';
|
||||
}else if(item.status == 1){
|
||||
return '<span style="color:green;">显示</span>';
|
||||
}
|
||||
}},
|
||||
{field:'view_count', title:'浏览数', width:100, sort: true},
|
||||
{field:'like_count', title:'点赞数', width:100, sort: true},
|
||||
{field:'share_count', title:'分享数', width:100, sort: true},
|
||||
{fixed: 'right', title:'操作', toolbar: '#toolbar', width:180}
|
||||
]],
|
||||
page: true
|
||||
})
|
||||
layui.use(['table'], function(){
|
||||
var table = layui.table,
|
||||
layer = layui.layer;
|
||||
table.on('edit(articleTable)', function(obj) {
|
||||
if (obj.field == 'sort') {
|
||||
if (obj.value == '') {
|
||||
obj.value = obj.oldValue
|
||||
return false;
|
||||
} else {
|
||||
$.form.load("{:url('sort')}", {sort: obj.value, id: obj.data.id}, 'post', function (ret) {
|
||||
$('#tree-table').trigger('reload');
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
})
|
||||
})
|
||||
layui.use(['table'], function(){
|
||||
var table = layui.table,
|
||||
layer = layui.layer;
|
||||
|
||||
//监听工具条
|
||||
table.on('tool(articleTable)', function(obj){
|
||||
if(obj.event === 'del'){
|
||||
layer.confirm('真的删除行么', function(index){
|
||||
obj.del();
|
||||
layer.close(index);
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
{/block}
|
23
plugs/think-plugs-cms/src/view/article/index_search.html
Normal file
23
plugs/think-plugs-cms/src/view/article/index_search.html
Normal file
@ -0,0 +1,23 @@
|
||||
<fieldset>
|
||||
<legend>条件搜索</legend>
|
||||
<form class="layui-form layui-form-pane form-search" action="{:request()->url()}" onsubmit="return false" method="get" autocomplete="off">
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">文章标题</label>
|
||||
<div class="layui-input-inline">
|
||||
<input name="title" value="{:input('get.title')}" placeholder="请输入文章标题" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">创建时间</label>
|
||||
<div class="layui-input-inline">
|
||||
<input data-date-range name="create_at" value="{:input('get.create_at')}" placeholder="请选择创建时间" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<button class="layui-btn layui-btn-primary" lay-submit lay-filter="searchData"><i class="layui-icon"></i> 搜 索</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</fieldset>
|
33
plugs/think-plugs-cms/src/view/banner/form.html
Normal file
33
plugs/think-plugs-cms/src/view/banner/form.html
Normal file
@ -0,0 +1,33 @@
|
||||
<form class="layui-form layui-card" action="{:sysuri()}" data-auto="true" method="post" autocomplete="off" data-table-id="articleTable">
|
||||
<div class="layui-row layui-col-space15">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">轮播图名称</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="name" value='{$vo.name|default=""}' required placeholder="请输入轮播图名称" class="layui-input">
|
||||
<div class="layui-form-mid layui-word-aux">仅用于后台展示</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">轮播图图片</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="hidden" name="image" data-size="1" value='{$vo.image|default=""}' required placeholder="请上传轮播图图片" class="layui-input layui-hide">
|
||||
<div class="layui-form-mid layui-word-aux">建议尺寸:750*300</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{notempty name='id'}<input class="layui-input layui-hide" type='hidden' value='{$id}' name='id'>{/notempty}
|
||||
<div class="layui-form-item text-center">
|
||||
<button class="layui-btn layui-btn-normal" type='submit'>保存数据</button>
|
||||
<button class="layui-btn layui-btn-danger" type='button' data-confirm="确定要取消编辑吗?" data-close>取消编辑</button>
|
||||
</div>
|
||||
</form>
|
||||
<script>
|
||||
$('[name="image"]').uploadOneImage()
|
||||
layui.use(['form'], function () {
|
||||
var layer = layui.layer,
|
||||
form = layui.form;
|
||||
form.render();
|
||||
});
|
||||
|
||||
|
||||
</script>
|
87
plugs/think-plugs-cms/src/view/banner/index.html
Normal file
87
plugs/think-plugs-cms/src/view/banner/index.html
Normal file
@ -0,0 +1,87 @@
|
||||
{extend name="table"}
|
||||
|
||||
{block name="button"}
|
||||
<!--{if auth("add")}-->
|
||||
<button type="button" class="layui-btn layui-btn-sm layui-btn-primary" data-modal='{:url("add")}' data-title="添加轮播图">添加</button>
|
||||
<!--{/if}-->
|
||||
{/block}
|
||||
|
||||
{block name="content"}
|
||||
<div class="layui-tab layui-tab-card think-bg-white">
|
||||
<div class="layui-tab-content think-box-shadow">
|
||||
{include file='banner/index_search'}
|
||||
<table class="layui-table margin-top-10" data-url="{$request->url()}" data-target-search="form.form-search" lay-skin="line" id="bannerTable"></table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/html" id="toolbar">
|
||||
|
||||
<!--{if auth("edit")}-->
|
||||
<a data-modal="{:url('edit')}?id={{ d.id }}" class="layui-btn layui-btn-xs layui-btn-normal" title="修改">修改</a>
|
||||
<!--{/if}-->
|
||||
|
||||
<!--{if auth("status")}-->
|
||||
{{# if(d.status == 0){ }}
|
||||
<a class="layui-btn layui-btn-xs layui-btn-normal" data-title="启用该轮播图" data-modal='{:url("status")}?id={{ d.id }}&status=1'>启 用</a>
|
||||
{{# } else { }}
|
||||
<a class="layui-btn layui-btn-xs layui-btn-primary" data-title="隐藏该轮播图" data-modal='{:url("status")}?id={{ d.id }}&status=0'>隐 藏</a>
|
||||
{{# } }}
|
||||
<!--{/if}-->
|
||||
|
||||
<!--{if auth("remove")}-->
|
||||
<a data-confirm="确定要永久删除此轮播图吗?" data-action="{:url('remove')}" data-value="id#{{ d.id }}" data-csrf="{:systoken('remove')}" class="layui-btn layui-btn-xs layui-btn-danger" title="删除">删除</a>
|
||||
<!--{/if}-->
|
||||
</script>
|
||||
|
||||
{/block}
|
||||
|
||||
{block name='style'}
|
||||
<style>
|
||||
</style>
|
||||
{/block}
|
||||
|
||||
{block name='script'}
|
||||
<script>
|
||||
$(function () {
|
||||
$('#bannerTable').layTable({
|
||||
height: 'full-240',
|
||||
toolbar: true,
|
||||
sort: {field: 'sort', type: 'asc'},
|
||||
title: '轮播图列表',
|
||||
cols: [[
|
||||
{type: 'numbers'},
|
||||
{field: 'sort', title: '排序', width: 80, sort: true, edit: 'text'},
|
||||
{field: 'image', title: '轮播图', width: 140, templet:function(item){
|
||||
return '<img data-tips-image src="'+item.image+'" alt="image" style="width: 120px;height: 60px;">';
|
||||
}},
|
||||
{field: 'name', title: '轮播图名称', minWidth: 120},
|
||||
{field: 'status', title: '状态', width: 60,templet:function(item){
|
||||
if(item.status == 0){
|
||||
return '<span style="color:red;">隐藏</span>';
|
||||
}else if(item.status == 1){
|
||||
return '<span style="color:green;">显示</span>';
|
||||
}
|
||||
}},
|
||||
{field: 'create_at', title: '创建时间', width: 150},
|
||||
{align: 'center', toolbar: '#toolbar', title: '操作', width: 240}
|
||||
]]
|
||||
})
|
||||
layui.use(['table'], function(){
|
||||
var table = layui.table,
|
||||
layer = layui.layer;
|
||||
table.on('edit(bannerTable)', function(obj) {
|
||||
if (obj.field == 'sort') {
|
||||
if (obj.value == '') {
|
||||
obj.value = obj.oldValue
|
||||
return false;
|
||||
} else {
|
||||
$.form.load("{:url('sort')}", {sort: obj.value, id: obj.data.id}, 'post', function (ret) {
|
||||
$('#bannerTable').trigger('reload');
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
})
|
||||
})
|
||||
</script>
|
||||
{/block}
|
16
plugs/think-plugs-cms/src/view/banner/index_search.html
Normal file
16
plugs/think-plugs-cms/src/view/banner/index_search.html
Normal file
@ -0,0 +1,16 @@
|
||||
<fieldset>
|
||||
<legend>条件搜索</legend>
|
||||
<form class="layui-form layui-form-pane form-search" action="{:request()->url()}" onsubmit="return false" method="get" autocomplete="off">
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">名称</label>
|
||||
<div class="layui-input-inline">
|
||||
<input name="name" value="{:input('get.name')}" placeholder="请输入名称" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<button class="layui-btn layui-btn-primary" lay-submit lay-filter="searchData"><i class="layui-icon"></i> 搜 索</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</fieldset>
|
99
plugs/think-plugs-cms/src/view/category/form.html
Normal file
99
plugs/think-plugs-cms/src/view/category/form.html
Normal file
@ -0,0 +1,99 @@
|
||||
<form class="layui-form layui-card" action="{:request()->url()}" data-auto="true" method="post" autocomplete="off">
|
||||
<div class="layui-card-body">
|
||||
<div class="layui-row layui-col-space15">
|
||||
<!--<div class="layui-form-item">
|
||||
<label class="layui-form-label label-required-next">所属分类</label>
|
||||
<div class="layui-input-block">
|
||||
<select class="layui-input" name="pid" required>
|
||||
<option value="0">作为一级分类</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>-->
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">栏目名称</label>
|
||||
<div class="layui-input-block">
|
||||
<input type="text" name="name" value='{$vo.name|default=""}' required placeholder="请输入栏目名称" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">栏目描述</label>
|
||||
<div class="layui-input-block">
|
||||
<textarea name="description" placeholder="请输入描述" class="layui-textarea">{$vo.description|default=""}</textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">是否为外链</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="layui-col-space15" style="content: none">
|
||||
<div class="layui-col-xs2">
|
||||
{foreach $_YES_OR_NO as $k=>$v}
|
||||
<!--{if (!isset($vo.is_link) and $k eq '0') or (isset($vo.is_link) and $vo.is_link eq $k)}-->
|
||||
<input type="radio" name="is_link" lay-filter="islink_filter" checked value="{$k}" title="{$v}">
|
||||
<!--{else}-->
|
||||
<input type="radio" name="is_link" lay-filter="islink_filter" value="{$k}" title="{$v}">
|
||||
<!--{/if}-->
|
||||
{/foreach}
|
||||
</div>
|
||||
<div class="layui-col-xs8" id="category_link_url" style="display: none;">
|
||||
<input type="text" name="link_url" value='{$vo.link_url|default=""}' pattern="^(http:\/\/|^https:\/\/|^\/\/)((\w|=|\?|\.|\/|&|-)+)" placeholder="请输入跳转链接地址" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="hr-line-dashed"></div>
|
||||
{notempty name='vo.id'}<input type='hidden' value='{$vo.id}' name='id'>{/notempty}
|
||||
<div class="layui-form-item text-center">
|
||||
<button class="layui-btn layui-btn-normal" type='submit'>保存数据</button>
|
||||
<button class="layui-btn layui-btn-danger" type='button' data-confirm="确定要取消编辑吗?" data-close>取消编辑</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<style>
|
||||
.layui-tab-item{ min-height: 400px;}
|
||||
.input-group-addon {
|
||||
top: 0;
|
||||
right: 0;
|
||||
color: #eee;
|
||||
width: 25px;
|
||||
padding: 7px;
|
||||
position: absolute;
|
||||
margin-top: -1px;
|
||||
text-align: center;
|
||||
background: #393D49;
|
||||
}
|
||||
</style>
|
||||
<script>
|
||||
layui.form.render();
|
||||
layui.use(['layer', 'jquery', 'form','element'], function () {
|
||||
var layer = layui.layer,
|
||||
$ = layui.jquery,
|
||||
form = layui.form,
|
||||
element = layui.element;
|
||||
|
||||
//监听是否为跳转链接的选择变化
|
||||
form.on("radio(islink_filter)", function (data) {
|
||||
if(parseInt(data.value)){
|
||||
$('#category_link_url').show();
|
||||
}else{
|
||||
$('#category_link_url').hide();
|
||||
}
|
||||
});
|
||||
//监听指定开关
|
||||
form.on('switch(urlpath_filter)', function(data){
|
||||
if(this.checked){
|
||||
$(this).parent('.layui-input-block').prev().removeClass('label-required-next');
|
||||
$('input[name="url_path"]').next('span').hide();
|
||||
$('input[name="url_path"]').removeAttr('required').attr('disabled',true);
|
||||
}else{
|
||||
$(this).parent('.layui-input-block').prev().addClass('label-required-next');
|
||||
$('input[name="url_path"]').next('span').show();
|
||||
$('input[name="url_path"]').removeAttr('disabled').attr('required',true);
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
84
plugs/think-plugs-cms/src/view/category/index.html
Normal file
84
plugs/think-plugs-cms/src/view/category/index.html
Normal file
@ -0,0 +1,84 @@
|
||||
{extend name="table"}
|
||||
|
||||
{block name="button"}
|
||||
<!--{if auth("add")}-->
|
||||
<button data-modal='{:url("add")}' data-title="添加栏目" class='layui-btn layui-btn-sm layui-btn-primary'>添加栏目</button>
|
||||
<!--{/if}-->
|
||||
{/block}
|
||||
|
||||
{block name="content"}
|
||||
<div class="layui-tab layui-tab-card think-bg-white">
|
||||
<div class="layui-tab-content think-box-shadow">
|
||||
{include file='category/index_search'}
|
||||
<table class="layui-table margin-top-10" data-url="{$request->url()}" data-target-search="form.form-search" lay-skin="line" id="categoryTable"></table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/html" id="toolbar">
|
||||
|
||||
<!--{if auth("edit")}-->
|
||||
<a data-modal="{:url('edit')}?id={{ d.id }}" class="layui-btn layui-btn-xs layui-btn-normal" title="修改">修改</a>
|
||||
<!--{/if}-->
|
||||
|
||||
<!--{if auth("status")}-->
|
||||
{{# if(d.status == 0){ }}
|
||||
<a class="layui-btn layui-btn-xs layui-btn-normal" data-title="显示分类" data-modal='{:url("status")}?id={{ d.id }}&status=1'>显 示</a>
|
||||
{{# } else { }}
|
||||
<a class="layui-btn layui-btn-xs layui-btn-primary" data-title="隐藏分类" data-modal='{:url("status")}?id={{ d.id }}&status=0'>隐 藏</a>
|
||||
{{# } }}
|
||||
<!--{/if}-->
|
||||
|
||||
<!--{if auth("remove")}-->
|
||||
<a data-confirm="确定要永久删除此分类吗?" data-action="{:url('remove')}" data-value="id#{{ d.id }}" data-csrf="{:systoken('remove')}" class="layui-btn layui-btn-xs layui-btn-danger" title="删除">删除</a>
|
||||
<!--{/if}-->
|
||||
</script>
|
||||
{/block}
|
||||
|
||||
{block name='style'}
|
||||
<style>
|
||||
</style>
|
||||
{/block}
|
||||
|
||||
{block name='script'}
|
||||
<script>
|
||||
$(function () {
|
||||
$('#categoryTable').layTable({
|
||||
height: 'full-240',
|
||||
toolbar: true,
|
||||
sort: {field: 'sort', type: 'asc'},
|
||||
cols: [[
|
||||
{type: 'numbers'},
|
||||
{field: 'sort', title: '排序', width: 80, sort: true, edit: 'text'},
|
||||
{field: 'name', title: '栏目名称', minWidth: 165},
|
||||
{field: 'status', title: '状态', width: 60,templet:function(item){
|
||||
if(item.status == 0){
|
||||
return '<span style="color:red;">隐藏</span>';
|
||||
}else if(item.status == 1){
|
||||
return '<span style="color:green;">显示</span>';
|
||||
}
|
||||
}},
|
||||
{field: 'description', title: '分类描述', width: 150},
|
||||
{field: 'is_link', title: '是否为外链', templet: '<p>{{d.is_link?"是":"否"}}</p>', align: 'center', width: 90},
|
||||
{field: 'create_at', title: '创建时间', width: 150},
|
||||
{align: 'center', toolbar: '#toolbar', title: '操作', width: 240}
|
||||
]]
|
||||
})
|
||||
layui.use(['table'], function(){
|
||||
var table = layui.table,
|
||||
layer = layui.layer;
|
||||
table.on('edit(categoryTable)', function(obj) {
|
||||
if (obj.field == 'sort') {
|
||||
if (obj.value == '') {
|
||||
obj.value = obj.oldValue
|
||||
return false;
|
||||
} else {
|
||||
$.form.load("{:url('sort')}", {sort: obj.value, id: obj.data.id}, 'post', function (ret) {
|
||||
$('#categoryTable').trigger('reload');
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
})
|
||||
})
|
||||
</script>
|
||||
{/block}
|
16
plugs/think-plugs-cms/src/view/category/index_search.html
Normal file
16
plugs/think-plugs-cms/src/view/category/index_search.html
Normal file
@ -0,0 +1,16 @@
|
||||
<fieldset>
|
||||
<legend>条件搜索</legend>
|
||||
<form class="layui-form layui-form-pane form-search" action="{:request()->url()}" onsubmit="return false" method="get" autocomplete="off">
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">分类名称</label>
|
||||
<div class="layui-input-inline">
|
||||
<input name="name" value="{:input('get.name')}" placeholder="请输入分类名称" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<button class="layui-btn layui-btn-primary" lay-submit lay-filter="searchData"><i class="layui-icon"></i> 搜 索</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
</fieldset>
|
11
plugs/think-plugs-cms/src/view/main.html
Normal file
11
plugs/think-plugs-cms/src/view/main.html
Normal file
@ -0,0 +1,11 @@
|
||||
<div class="layui-card layui-bg-gray">
|
||||
{block name='style'}{/block}
|
||||
{notempty name='title'}
|
||||
<div class="layui-card-header notselect">
|
||||
<span class="layui-icon layui-icon-next font-s10 color-desc margin-right-5"></span>{$title|default=''}
|
||||
<div class="pull-right">{block name='button'}{/block}</div>
|
||||
</div>
|
||||
{/notempty}
|
||||
<div class="layui-card-body">{block name='content'}{/block}</div>
|
||||
{block name='script'}{/block}
|
||||
</div>
|
23
plugs/think-plugs-cms/src/view/table.html
Normal file
23
plugs/think-plugs-cms/src/view/table.html
Normal file
@ -0,0 +1,23 @@
|
||||
<div class="layui-card">
|
||||
{block name='style'}{/block}
|
||||
{block name='header'}
|
||||
{notempty name='title'}
|
||||
<div class="layui-card-header">
|
||||
<span class="layui-icon font-s10 color-desc ta-mr-5"></span>{$title|lang}
|
||||
<div class="pull-right">{block name='button'}{/block}</div>
|
||||
</div>
|
||||
{/notempty}
|
||||
{/block}
|
||||
<div class="layui-card-line"></div>
|
||||
<div class="layui-card-body">
|
||||
<div class="layui-card-table">
|
||||
{notempty name='showErrorMessage'}
|
||||
<div class="think-box-notify" type="error">
|
||||
<b>系统提示:</b><span>{$showErrorMessage|raw}</span>
|
||||
</div>
|
||||
{/notempty}
|
||||
{block name='content'}{/block}
|
||||
</div>
|
||||
</div>
|
||||
{block name='script'}{/block}
|
||||
</div>
|
Reference in New Issue
Block a user