2023-10-27 14:25:12 +08:00

474 lines
20 KiB
PHP
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
/**
* @author Any
* @description KISS
* @date 2021年6月30日
* @version 1.0.0
*
* _____LOG_____
*
*/
use yii\widgets\LinkPager;
use app\models\cms\Notice;
$this->title = '公告列表';
$this->params['breadcrumbs'][] = $this->title;
$status_labels = Notice::statusLabels();
$status = \Yii::$app->request->get('status');
?>
<div class="layui-fluid">
<div class="layui-card">
<div class="layui-card-header">
<?= $this->title ?>
</div>
<div class="layui-card-header layuiadmin-card-header-auto">
<div class="layui-form-item">
<div class="layui-inline">
<a class=" layui-btn" href="<?=\Yii::$app->urlManager->createUrl(["admin/cms/notice/edit"])?>">添加公告</a>
</div>
<div class="layui-inline layui-float-right layui-form">
<div class="layui-inline layui-form-item">
<div class="layui-input-inline">
<select class="layui-select" name="status">
<option value="" <?=$status === null ? 'selected' : ''?>>全部状态</option>
<?php foreach ($status_labels as $key => $val):?>
<option value="<?=$key?>" <?=$status == $key && $status != null ? 'selected' : ''?>><?=$val?></option>
<?php endforeach;?>
</select>
</div>
</div>
<div class="layui-inline layui-form-item">
<label class="layui-form-label">关键词</label>
<div class="layui-input-block">
<input type="text" name="keywords" placeholder="搜索标题" autocomplete="off" class="layui-input" value="<?=\Yii::$app->request->get("keywords")?>">
</div>
</div>
<div class="layui-inline">
<button class="layui-btn layuiadmin-btn-useradmin" lay-submit lay-filter="dtable-search">
<i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>
</button>
</div>
</div>
</div>
</div>
<div class="layui-card-body">
<table id="dtable" lay-filter="dtable"></table>
</div>
</div>
</div>
<!--工具栏模板-->
<script type="text/html" id="toolBarTpl">
<div class="layui-btn-container">
<!--<button class="layui-btn layui-btn-sm" lay-event="add">添加</button>-->
<button class="layui-btn layui-btn-sm" lay-event="batch_publish">批量发布</button>
<button class="layui-btn layui-btn-sm layui-btn-warm" lay-event="batch_trash">批量移入回收站</button>
<button class="layui-btn layui-btn-sm" lay-event="batch_cancel_trash">批量移出回收站</button>
<button class="layui-btn layui-btn-sm " lay-event="batch_top">批量标记置顶</button>
<button class="layui-btn layui-btn-sm layui-btn-warm" lay-event="batch_cancel_top">批量取消标记置顶</button>
<button class="layui-btn layui-btn-sm " lay-event="batch_show_index">批量首页展示</button>
<button class="layui-btn layui-btn-sm layui-btn-warm" lay-event="batch_hide_index">批量取消首页展示</button>
<button class="layui-btn layui-btn-sm layui-btn-danger" lay-event="batch_delete">批量删除</button>
</div>
</script>
<!--行操作列模板-->
<script type="text/html" id="rowBarTpl">
<button class="layui-btn layui-btn-xs" lay-event="edit">编辑</button>
{{# if(d.status == 2){ }}
<button class="layui-btn layui-btn-xs layui-btn-danger" lay-event="delete">删除</button>
{{# } }}
</script>
<script type="text/html" id="topTpl">
<input type="checkbox" name="is_top" value="{{ d.id }}" {{ d.is_top == 1 ? 'checked' : '' }} lay-skin="switch" lay-text="是|否" lay-filter="switch_top">
</script>
<script type="text/html" id="indexTpl">
<input type="checkbox" name="is_index" value="{{ d.id }}" {{ d.is_index == 1 ? 'checked' : '' }} lay-skin="switch" lay-text="是|否" lay-filter="switch_index">
</script>
<script>
<?php $this->beginBlock('js_script_wrap') ?>
layui.config({
base: '/statics/layuiadmin/' //静态资源所在路径
}).extend({
index: 'lib/index' //主入口模块
}).use(['index', 'user', 'table'], function () {
var $ = layui.$
, form = layui.form
, table = layui.table
, admin = layui.admin;
form.render();
//search
form.on('submit(dtable-search)', function (obj) {
var field = obj.field;
reload_table_data(field);
});
form.on('select(batch-action)', function (obj) {
var lay_event = obj.value;
var check_status = table.checkStatus('dtable');
var id = [];
$(check_status.data).each(function(index){
id.push(check_status.data[index]['id']);
});
var confirm_url = null;
var confirm_tip = null;
if(confirm_url != null){
layer.confirm(confirm_tip, {
btn: ['确定','取消']
}, function(){
$.ajax(confirm_url,{
type:"POST",
dataType:"json",
data:{
notice_id:id,
_csrf:_csrf
},
success:function(res){
if(res.code == 0){
layer.msg(res.msg, {
offset: '15px'
,icon: 1
,time: 1000
}, function(){
location.reload();
});
} else {
layer.msg(res.msg, {
offset: '15px'
,icon: 2
,time: 1000
}, function(){
});
}
},
error:function(xhr,type,err){
layer.msg(xhr.responseText, {
offset: '15px'
,icon: 2
,time: 1000
}, function(){
});
}
})
}, function(){
});
}
});
//重新加载表格数据
function reload_table_data(conf){
table.reload('dtable', {
url:'<?=\Yii::$app->urlManager->createUrl(['admin/cms/notice/index'])?>'
,page: true
,where: conf
});
};
//执行渲染
table.render({
//指定原始表格元素选择器推荐id选择器
elem: '#dtable'
//容器高度
//,height: 315
//容器宽度
//,width: 720
//设置表头
,cols: [[
{checkbox: true}
, {field: 'id', title: 'ID', width: 80}
, {field: 'title', title: '标题', width: 280}
, {field: 'status_cn', title: '状态', width: 120 }
, {field: 'is_top', title: '是否置顶', templet:'#topTpl', width: 120}
, {field: 'is_index', title: '首页展示', templet:'#indexTpl', width: 120}
, {field: 'viewed_num', title: '浏览量', width: 120}
, {field: 'sort', title: '排序'}
, {field: 'created_at_cn', title: '添加时间', width: 180}
, {field: 'published_at_cn', title: '发布时间', width: 180}
, {title: '操作',fixed: 'right', toolbar: '#rowBarTpl', width:200}
]
]
, url:'<?=\Yii::$app->urlManager->createUrl(['admin/cms/notice/index'])?>'
, page:true
//指向自定义工具栏模板选择器
, toolbar:'#toolBarTpl'
//头部工具栏右侧的图标按钮
, defaultToolbar:['filter', 'print', 'exports']
, limit: 20
, limits:[10,20,30,40,50,60,70,80,90,100]
, title:'<?=$this->title?>'
, data:[]
});
//监听工具栏
table.on('toolbar(dtable)', function(obj){
var lay_event = obj.event;
var check_status = table.checkStatus('dtable');
var id = [];
$(check_status.data).each(function(index){
id.push(check_status.data[index]['id']);
});
if(id.length == 0){
return layer.msg("请选择需要操作项");
}
var confirm_url = null;
var confirm_tip = null;
if(lay_event == 'batch_publish'){
confirm_url = "<?=\Yii::$app->urlManager->createUrl(['admin/cms/notice/publish'])?>";
confirm_tip = "确定发布选中公告吗";
}
if(lay_event == 'batch_trash'){
confirm_url = "<?=\Yii::$app->urlManager->createUrl(['admin/cms/notice/trash'])?>";
confirm_tip = "确定将选中公告移入回收站吗";
}
if(lay_event == 'batch_cancel_trash'){
confirm_url = "<?=\Yii::$app->urlManager->createUrl(['admin/cms/notice/cancel-trash'])?>";
confirm_tip = "确定将选中公告移出回收站吗";
}
if(lay_event == 'batch_top'){
confirm_url = "<?=\Yii::$app->urlManager->createUrl(['admin/cms/notice/top'])?>";
confirm_tip = "确定将选中公告标记置顶吗";
}
if(lay_event == 'batch_cancel_top'){
confirm_url = "<?=\Yii::$app->urlManager->createUrl(['admin/cms/notice/cancel-top'])?>";
confirm_tip = "确定将选中公告取消标记置顶吗";
}
if(lay_event == 'batch_show_index'){
confirm_url = "<?=\Yii::$app->urlManager->createUrl(['admin/cms/notice/show-index'])?>";
confirm_tip = "确定将选中公告首页展示吗";
}
if(lay_event == 'batch_hide_index'){
confirm_url = "<?=\Yii::$app->urlManager->createUrl(['admin/cms/notice/hide-index'])?>";
confirm_tip = "确定将选中公告取消首页展示吗";
}
if(lay_event == 'batch_delete'){
confirm_url = "<?=\Yii::$app->urlManager->createUrl(['admin/cms/notice/delete'])?>";
confirm_tip = "确定将选中公告删除吗";
}
if(confirm_url != null){
layer.confirm(confirm_tip, {
btn: ['确定','取消']
}, function(){
$.ajax(confirm_url,{
type:"POST",
dataType:"json",
data:{
notice_id:id,
_csrf:_csrf
},
success:function(res){
if(res.code == 0){
layer.msg(res.msg, {
offset: '15px'
,icon: 1
,time: 1000
}, function(){
location.reload();
});
} else {
layer.msg(res.msg, {
offset: '15px'
,icon: 2
,time: 1000
}, function(){
});
}
},
error:function(xhr,type,err){
layer.msg(xhr.responseText, {
offset: '15px'
,icon: 2
,time: 1000
}, function(){
});
}
})
}, function(){
});
}
});
//监听工具条
table.on('tool(dtable)', function(obj){
var row_data = obj.data;
var lay_event = obj.event;
var id = row_data.id;
if(lay_event == 'edit'){
var url = "<?=\Yii::$app->urlManager->createUrl(['admin/cms/notice/edit'])?>" + "?id=" + id;
location.href= url;
return;
}
var confirm_url = null;
var confirm_tip = null;
if(lay_event == "delete"){
confirm_url = "<?=\Yii::$app->urlManager->createUrl(['admin/cms/notice/delete'])?>";
confirm_tip = "确定删除此公告吗";
}
if(confirm_url != null){
layer.confirm(confirm_tip, {
btn: ['确定','取消']
}, function(){
$.ajax(confirm_url,{
type:"POST",
dataType:"json",
data:{
notice_id:id,
_csrf:_csrf
},
success:function(res){
if(res.code == 0){
layer.msg(res.msg, {
offset: '15px'
,icon: 1
,time: 1000
}, function(){
location.reload();
});
} else {
layer.msg(res.msg, {
offset: '15px'
,icon: 2
,time: 1000
}, function(){
});
}
},
error:function(xhr,type,err){
layer.msg(xhr.responseText, {
offset: '15px'
,icon: 2
,time: 1000
}, function(){
});
}
})
}, function(){
});
}
});
form.on('switch(switch_top)', function(obj){
var lay_event = obj.elem.checked ? 'top' : 'cancel_top';
var id = this.value;
var confirm_url = null;
var confirm_tip = null;
if(lay_event == "top"){
confirm_url = "<?=\Yii::$app->urlManager->createUrl(['admin/cms/notice/top'])?>";
confirm_tip = "确定标记此公告为置顶吗";
}
if(lay_event == "cancel_top"){
confirm_url = "<?=\Yii::$app->urlManager->createUrl(['admin/cms/notice/cancel-top'])?>";
confirm_tip = "确定取消标记此公告为置顶吗";
}
if(confirm_url == null){
return;
}
$.ajax(confirm_url,{
type:"POST",
dataType:"json",
data:{
notice_id:id,
_csrf:_csrf
},
success:function(res){
if(res.code == 0){
layer.msg(res.msg, {
offset: '15px'
,icon: 1
,time: 1000
}, function(){
location.reload();
});
} else {
layer.msg(res.msg, {
offset: '15px'
,icon: 2
,time: 1000
}, function(){
});
}
},
error:function(xhr,type,err){
layer.msg(xhr.responseText, {
offset: '15px'
,icon: 2
,time: 1000
}, function(){
});
}
})
});
form.on('switch(switch_index)', function(obj){
var lay_event = obj.elem.checked ? 'show_index' : 'hide_index';
var id = this.value;
var confirm_url = null;
var confirm_tip = null;
if(lay_event == "show_index"){
confirm_url = "<?=\Yii::$app->urlManager->createUrl(['admin/cms/notice/show-index'])?>";
confirm_tip = "确定标记此公告首页展示吗";
}
if(lay_event == "hide_index"){
confirm_url = "<?=\Yii::$app->urlManager->createUrl(['admin/cms/notice/hide-index'])?>";
confirm_tip = "确定取消标记此公告首页展示吗";
}
if(confirm_url == null){
return;
}
$.ajax(confirm_url,{
type:"POST",
dataType:"json",
data:{
notice_id:id,
_csrf:_csrf
},
success:function(res){
if(res.code == 0){
layer.msg(res.msg, {
offset: '15px'
,icon: 1
,time: 1000
}, function(){
location.reload();
});
} else {
layer.msg(res.msg, {
offset: '15px'
,icon: 2
,time: 1000
}, function(){
});
}
},
error:function(xhr,type,err){
layer.msg(xhr.responseText, {
offset: '15px'
,icon: 2
,time: 1000
}, function(){
});
}
})
});
});
<?php $this->endBlock(); ?>
</script>
<?php $this->registerJs($this->blocks['js_script_wrap'], \yii\web\View::POS_END); ?>