公告,知识库模块体验优化

This commit is contained in:
hdm 2021-11-23 23:09:15 +08:00
parent ea132bfc00
commit 7763f3b26f
18 changed files with 312 additions and 248 deletions

View File

@ -158,6 +158,7 @@ function get_department_son($did = 0, $is_self = 1)
function get_keywords() function get_keywords()
{ {
$keywords = Db::name('Keywords')->where(['status' => 1])->order('id desc')->select()->toArray(); $keywords = Db::name('Keywords')->where(['status' => 1])->order('id desc')->select()->toArray();
return $keywords;
} }
//读取公告分类列表 //读取公告分类列表
@ -167,6 +168,19 @@ function get_note_cate()
return $cate; return $cate;
} }
//读取公告分类子分类ids
function get_note_son($id = 0, $is_self = 1)
{
$note = get_note_cate();
$note_list = get_data_node($note, $id);
$note_array = array_column($note_list, 'id');
if ($is_self == 1) {
//包括自己在内
$note_array[] = $id;
}
return $note_array;
}
//读取知识分类列表 //读取知识分类列表
function get_article_cate() function get_article_cate()
{ {
@ -174,6 +188,19 @@ function get_article_cate()
return $cate; return $cate;
} }
//读取知识分类子分类ids
function get_article_son($id = 0, $is_self = 1)
{
$article = get_article_cate();
$article_list = get_data_node($article, $id);
$article_array = array_column($article_list, 'id');
if ($is_self == 1) {
//包括自己在内
$article_array[] = $id;
}
return $article_array;
}
//读取开票主体 //读取开票主体
function get_invoice_subject() function get_invoice_subject()
{ {

View File

@ -159,31 +159,31 @@ class Api extends BaseController
public function get_department_tree() public function get_department_tree()
{ {
$department = get_department(); $department = get_department();
$list = get_tree($department, 0,2); $list = get_tree($department, 0, 2);
$data['trees'] = $list; $data['trees'] = $list;
return json($data); return json($data);
} }
//获取子部门所有员工 //获取子部门所有员工
public function get_employee($did=0) public function get_employee($did = 0)
{ {
$did=get_params('did'); $did = get_params('did');
$department=get_department_son($did); $department = get_department_son($did);
$employee = Db::name('admin') $employee = Db::name('admin')
->field('a.id,a.did,a.position_id,a.mobile,a.name,a.nickname,a.sex,a.status,a.thumb,a.username,d.title as department') ->field('a.id,a.did,a.position_id,a.mobile,a.name,a.nickname,a.sex,a.status,a.thumb,a.username,d.title as department')
->alias('a') ->alias('a')
->join('Department d', 'a.did = d.id') ->join('Department d', 'a.did = d.id')
->where(['a.status'=>1]) ->where(['a.status' => 1])
->where('a.did',"in",$department) ->where('a.did', "in", $department)
->select(); ->select();
return to_assign(0,'',$employee); return to_assign(0, '', $employee);
} }
//获取角色列表 //获取角色列表
public function get_position() public function get_position()
{ {
$position = Db::name('Position')->field('id,title as name')->where([['status','=',1],['id','>',1]])->select(); $position = Db::name('Position')->field('id,title as name')->where([['status', '=', 1], ['id', '>', 1]])->select();
return to_assign(0,'',$position); return to_assign(0, '', $position);
} }
//首页公告 //首页公告
@ -222,7 +222,6 @@ class Api extends BaseController
return table_assign(0, '', $res); return table_assign(0, '', $res);
} }
//修改个人信息 //修改个人信息
public function edit_personal() public function edit_personal()
{ {
@ -289,20 +288,19 @@ class Api extends BaseController
public function del_expense_interfix() public function del_expense_interfix()
{ {
$id = get_params("id"); $id = get_params("id");
$admin_id = Db::name('ExpenseInterfix')->where('id',$id)->value('admin_id'); $admin_id = Db::name('ExpenseInterfix')->where('id', $id)->value('admin_id');
if($admin_id == $this->uid){ if ($admin_id == $this->uid) {
if (Db::name('ExpenseInterfix')->where('id',$id)->delete() !== false) { if (Db::name('ExpenseInterfix')->where('id', $id)->delete() !== false) {
return to_assign(0, "删除成功"); return to_assign(0, "删除成功");
} else { } else {
return to_assign(1, "删除失败"); return to_assign(1, "删除失败");
} }
}else{ } else {
return to_assign(1, "您没权限删除该报销数据"); return to_assign(1, "您没权限删除该报销数据");
} }
} }
//系统操作日志 //系统操作日志
public function log_list() public function log_list()
{ {
@ -324,16 +322,16 @@ class Api extends BaseController
$param = get_params(); $param = get_params();
$first_time = time(); $first_time = time();
$second_time = $first_time - 86400; $second_time = $first_time - 86400;
$three_time = $first_time - 86400*365; $three_time = $first_time - 86400 * 365;
$begin_first = strtotime(date('Y-m-d', $first_time) . " 00:00:00"); $begin_first = strtotime(date('Y-m-d', $first_time) . " 00:00:00");
$end_first = strtotime(date('Y-m-d', $first_time) . " 23:59:59"); $end_first = strtotime(date('Y-m-d', $first_time) . " 23:59:59");
$begin_second = strtotime(date('Y-m-d', $second_time) . " 00:00:00"); $begin_second = strtotime(date('Y-m-d', $second_time) . " 00:00:00");
$end_second = strtotime(date('Y-m-d', $second_time) . " 23:59:59"); $end_second = strtotime(date('Y-m-d', $second_time) . " 23:59:59");
$begin_three = strtotime(date('Y-m-d', $three_time) . " 00:00:00"); $begin_three = strtotime(date('Y-m-d', $three_time) . " 00:00:00");
$data_first = Db::name('AdminLog')->field('create_time')->whereBetween('create_time', "$begin_first,$end_first")->select(); $data_first = Db::name('AdminLog')->field('create_time')->whereBetween('create_time', "$begin_first,$end_first")->select();
$data_second = Db::name('AdminLog')->field('create_time')->whereBetween('create_time', "$begin_second,$end_second")->select(); $data_second = Db::name('AdminLog')->field('create_time')->whereBetween('create_time', "$begin_second,$end_second")->select();
$data_three = Db::name('AdminLog')->field('create_time')->whereBetween('create_time', "$begin_three,$end_first")->select(); $data_three = Db::name('AdminLog')->field('create_time')->whereBetween('create_time', "$begin_three,$end_first")->select();
return to_assign(0, '', ['data_first' => hour_document($data_first), 'data_second' => hour_document($data_second), 'data_three'=>date_document($data_three)]); return to_assign(0, '', ['data_first' => hour_document($data_first), 'data_second' => hour_document($data_second), 'data_three' => date_document($data_three)]);
} }
} }

View File

@ -36,22 +36,23 @@ class Article extends BaseController
$param = get_params(); $param = get_params();
if (request()->isAjax()) { if (request()->isAjax()) {
if (!empty($param['id']) && $param['id'] > 0) { if (!empty($param['id']) && $param['id'] > 0) {
$data[$param['field']] = $param['value']; try {
$data['id'] = $param['id']; validate(ArticleCateCheck::class)->scene('edit')->check($param);
$data['update_time'] = time(); } catch (ValidateException $e) {
if (!empty($data['title'])) { // 验证失败 输出错误信息
try { return to_assign(1, $e->getError());
validate(ArticleCateCheck::class)->scene('edit')->check($data); }
} catch (ValidateException $e) { $note_array = get_article_son($param['id']);
// 验证失败 输出错误信息 if (in_array($param['pid'], $note_array)) {
return to_assign(1, $e->getError()); return to_assign(1, '父级分类不能是该分类本身或其子分类');
} else {
$param['update_time'] = time();
$res = ArticleCate::strict(false)->field(true)->update($param);
if($res){
add_log('edit', $param['id'], $param);
return to_assign();
} }
} }
$res = ArticleCate::strict(false)->field(true)->update($data);
if ($res) {
add_log('edit', $data['id'], $data);
}
return to_assign();
} else { } else {
try { try {
validate(ArticleCateCheck::class)->scene('add')->check($param); validate(ArticleCateCheck::class)->scene('add')->check($param);
@ -67,7 +68,13 @@ class Article extends BaseController
return to_assign(); return to_assign();
} }
} else { } else {
$id = isset($param['id']) ? $param['id'] : 0;
$pid = isset($param['pid']) ? $param['pid'] : 0; $pid = isset($param['pid']) ? $param['pid'] : 0;
if ($id > 0) {
$detail = Db::name('ArticleCate')->where(['id' => $id])->find();
View::assign('detail', $detail);
}
View::assign('id', $id);
View::assign('pid', $pid); View::assign('pid', $pid);
return view(); return view();
} }

View File

@ -51,6 +51,7 @@ class Department extends BaseController
} else { } else {
Db::name('Department')->strict(false)->field(true)->update($param); Db::name('Department')->strict(false)->field(true)->update($param);
add_log('edit', $param['id'], $param); add_log('edit', $param['id'], $param);
return to_assign();
} }
} else { } else {
try { try {
@ -61,8 +62,8 @@ class Department extends BaseController
} }
$did = Db::name('Department')->strict(false)->field(true)->insertGetId($param); $did = Db::name('Department')->strict(false)->field(true)->insertGetId($param);
add_log('add', $did, $param); add_log('add', $did, $param);
return to_assign();
} }
return to_assign();
} else { } else {
$id = isset($param['id']) ? $param['id'] : 0; $id = isset($param['id']) ? $param['id'] : 0;
$pid = isset($param['pid']) ? $param['pid'] : 0; $pid = isset($param['pid']) ? $param['pid'] : 0;

View File

@ -33,25 +33,26 @@ class Note extends BaseController
//分类添加 //分类添加
public function cate_add() public function cate_add()
{ {
$param = get_params();
if (request()->isAjax()) { if (request()->isAjax()) {
$param = get_params();
if (!empty($param['id']) && $param['id'] > 0) { if (!empty($param['id']) && $param['id'] > 0) {
$data[$param['field']] = $param['value']; try {
$data['id'] = $param['id']; validate(NoteCateCheck::class)->scene('edit')->check($param);
$data['update_time'] = time(); } catch (ValidateException $e) {
if (!empty($data['title'])) { // 验证失败 输出错误信息
try { return to_assign(1, $e->getError());
validate(NoteCateCheck::class)->scene('edit')->check($data); }
} catch (ValidateException $e) { $note_array = get_note_son($param['id']);
// 验证失败 输出错误信息 if (in_array($param['pid'], $note_array)) {
return to_assign(1, $e->getError()); return to_assign(1, '父级分类不能是该分类本身或其子分类');
} else {
$param['update_time'] = time();
$res = NoteCate::strict(false)->field(true)->update($param);
if ($res) {
add_log('edit', $param['id'], $param);
} }
return to_assign();
} }
$res = NoteCate::strict(false)->field(true)->update($data);
if ($res) {
add_log('edit', $data['id'], $data);
}
return to_assign();
} else { } else {
try { try {
validate(NoteCateCheck::class)->scene('add')->check($param); validate(NoteCateCheck::class)->scene('add')->check($param);
@ -67,7 +68,13 @@ class Note extends BaseController
return to_assign(); return to_assign();
} }
} else { } else {
$id = isset($param['id']) ? $param['id'] : 0;
$pid = isset($param['pid']) ? $param['pid'] : 0; $pid = isset($param['pid']) ? $param['pid'] : 0;
if ($id > 0) {
$detail = Db::name('NoteCate')->where(['id' => $id])->find();
View::assign('detail', $detail);
}
View::assign('id', $id);
View::assign('pid', $pid); View::assign('pid', $pid);
return view(); return view();
} }

View File

@ -2,7 +2,7 @@
<!-- 主体 --> <!-- 主体 -->
{block name="body"} {block name="body"}
<form class="layui-form body-content"> <form class="layui-form body-content">
<h3 class="h3-title">新增文章</h3> <h3 class="h3-title">新增知识文章</h3>
<table class="layui-table"> <table class="layui-table">
<tr> <tr>
<td class="layui-td-gray">文章标题 <span style="color: red">*</span></td> <td class="layui-td-gray">文章标题 <span style="color: red">*</span></td>

View File

@ -10,8 +10,8 @@
<!-- 主体 --> <!-- 主体 -->
{block name="body"} {block name="body"}
<div class="body-content" style="height: 100%"> <div class="body-content" style="height: 100%">
<div style="height:39px;"> <div style="height:42px;">
<a class="layui-btn layui-btn-normal layui-btn-sm" href="{:url('home/article/cate_add')}">+ 添加分类</a><span style="color:#999;margin-left:20px">点击表格内容可编辑</span> <button class="layui-btn layui-btn-normal layui-btn-sm add-menu">+ 添加分类</button>
</div> </div>
<div style="height: calc(100% - 30px)"> <div style="height: calc(100% - 30px)">
<table class="layui-hide" id="treeTable" lay-filter="treeTable"></table> <table class="layui-hide" id="treeTable" lay-filter="treeTable"></table>
@ -26,14 +26,13 @@
<!-- 脚本 --> <!-- 脚本 -->
{block name="script"} {block name="script"}
<script> <script>
var editObj=null,ptable=null,treeGrid=null,tableId='treeTable',layer=null; function init(layui) {
function init(layui){ var treeGrid = layui.treeGrid,
var table=layui.table,form = layui.form; layer = layui.layer,
treeGrid = layui.treeGrid;//很重要 rightpage = layui.rightpage,
layer=layui.layer; ptable = treeGrid.render({
ptable=treeGrid.render({ id:'treeTable'
id:tableId ,elem: '#treeTable'
,elem: '#'+tableId
,idField:'id' ,idField:'id'
,url:"{:url('home/article/cate')}" ,url:"{:url('home/article/cate')}"
,cellMinWidth: 100 ,cellMinWidth: 100
@ -42,55 +41,48 @@
,treeShowName:'title'//以树形式显示的字段 ,treeShowName:'title'//以树形式显示的字段
,cols: [[ ,cols: [[
{field:'id',width:80, title: 'ID号', align:'center'} {field:'id',width:80, title: 'ID号', align:'center'}
,{field: 'sort', title: '排序', edit: "text", align:'center', style:'cursor: pointer;', width:80} ,{field: 'sort', title: '排序',align:'center', width:80}
,{field:'title', edit:'text',width:240, title: '分类名称'} ,{field:'title', edit:'text',width:240, title: '分类名称'}
,{field:'pid', title: '父级ID', edit:"text",width:80, align:'center'} ,{field:'pid', title: '父级ID', width:80, align:'center'}
,{field:'desc', title: '描述', edit:"text"} ,{field:'desc', title: '描述', }
,{width:100,title: '操作', align:'center' ,{width:160,title: '操作', align:'center',templet: function(d){
,templet: function(d){ var html = '<span class="layui-btn-group"><button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="add">添加子分类</button><button class="layui-btn layui-btn-xs" lay-event="edit">编辑</button><button class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</button></span>';
var html=''; return html;
var addBtn='<a class="layui-btn layui-btn-normal layui-btn-xs" title="添加分类" href="/home/article/cate_add?pid='+d.id+'">添加</a>';
var delBtn='<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>';
return addBtn+delBtn;
} }
} }
]] ]]
,page:false ,page:false
//,skin:'line' //,skin:'line'
}); });
//单元格编辑
treeGrid.on('edit('+tableId+')', function(obj){ //表头工具栏事件
layer.confirm('确定要提交修改吗?', {icon: 3, title:'提示'}, function(index){ $('.body-content').on('click','.add-menu', function(){
$.ajax({ rightpage.open("{:url('home/article/cate_add')}");
url:"{:url('home/article/cate_add')}", return;
type:'post',
data:{id:obj.data.id,field:obj.field,value:obj.value},
success:function(res){
layer.msg(res.msg);
if(res.code == 0){
setTimeout(function(){
location.reload()
},1200)
}
}
})
layer.close(index);
});
}); });
//删除
treeGrid.on('tool('+tableId+')',function (obj) { //操作按钮
if(obj.event === 'del'){ treeGrid.on('tool(treeTable)', function (obj) {
layer.confirm('确定要删除吗?', {icon: 3, title:'提示'}, function(index){ if (obj.event === 'add') {
rightpage.open('/home/article/cate_add?pid='+obj.data.id);
return;
}
if (obj.event === 'edit') {
rightpage.open('/home/article/cate_add?id='+obj.data.id);
return;
}
if (obj.event === 'del') {
layer.confirm('确定要删除吗?', { icon: 3, title: '提示' }, function (index) {
$.ajax({ $.ajax({
url:"{:url('home/article/cate_delete')}", url: "{:url('home/article/cate_delete')}",
type:'post', type: 'post',
data:{id:obj.data.id}, data: { id: obj.data.id },
success:function(res){ success: function (e) {
layer.msg(res.msg); layer.msg(e.msg);
if(res.code == 0){ if (e.code == 0) {
obj.del(); obj.del();
}
} }
}
}) })
layer.close(index); layer.close(index);
}); });
@ -98,6 +90,6 @@
}); });
} }
</script> </script>
{include file="common/layui" base='base' extend="['treeGrid']" callback="init" /} {include file="common/layui" base='base' extend="['treeGrid','rightpage']" callback="init" /}
{/block} {/block}
<!-- /脚本 --> <!-- /脚本 -->

View File

@ -2,14 +2,16 @@
<!-- 主体 --> <!-- 主体 -->
{block name="body"} {block name="body"}
<form class="layui-form body-content"> <form class="layui-form body-content">
<table class="layui-table layui-table-form"> <h3 class="h3-title">知识分类</h3>
{eq name="$id" value="0"}
<table class="layui-table">
<tr> <tr>
<td class="layui-td-gray2">父级分类<font>*</font></td> <td class="layui-td-gray2">父级分类<font>*</font></td>
<td> <td>
<select name="pid" lay-verify="required" lay-reqText="请选择父级分类"> <select name="pid" lay-verify="required" lay-reqText="请选择父级分类">
<option value="0">作为顶级分类</option> <option value="0">作为顶级分类</option>
{volist name=":set_recursion(get_article_cate())" id="v"} {volist name=":set_recursion(get_article_cate())" id="v"}
<option value="{$v.id}" {eq name="pid" value="$v.id"}selected=""{/eq}>{$v.title}</option> <option value="{$v.id}" {eq name="$pid" value="$v.id"}selected=""{/eq}>{$v.title}</option>
{/volist} {/volist}
</select> </select>
</td> </td>
@ -27,10 +29,37 @@
<td colspan="5"><textarea name="desc" placeholder="请输入描述,可空" class="layui-textarea"></textarea></td> <td colspan="5"><textarea name="desc" placeholder="请输入描述,可空" class="layui-textarea"></textarea></td>
</tr> </tr>
</table> </table>
{else/}
<table class="layui-table">
<tr>
<td class="layui-td-gray2">父级分类<font>*</font></td>
<td>
<select name="pid" lay-verify="required" lay-reqText="请选择父级分类">
<option value="0">作为顶级分类</option>
{volist name=":set_recursion(get_article_cate())" id="v"}
<option value="{$v.id}" {eq name="$detail.pid" value="$v.id"}selected=""{/eq}>{$v.title}</option>
{/volist}
</select>
</td>
<td class="layui-td-gray2">分类名称<font>*</font></td>
<td>
<input type="text" name="title" value="{$detail.title}" lay-verify="required" autocomplete="off" placeholder="请输入分类名称" lay-reqText="请输入分类名称" class="layui-input">
</td>
<td class="layui-td-gray2">排序</td>
<td>
<input type="text" name="sort" value="{$detail.sort}" placeholder="请输入排序,数字" value="0" autocomplete="off" class="layui-input">
</td>
</tr>
<tr>
<td class="layui-td-gray2">描述</td>
<td colspan="5"><textarea name="desc" placeholder="请输入描述,可空" class="layui-textarea">{$detail.desc}</textarea></td>
</tr>
</table>
{/eq}
<div style="padding: 10px 0"> <div style="padding: 10px 0">
<input type="hidden" name="id" value="{$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>
</form> </form>
{/block} {/block}
@ -51,9 +80,8 @@
data:data.field, data:data.field,
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) {
history.back(-1); parent.location.reload();
layer.close(index);
}); });
}else{ }else{
layer.msg(e.msg); layer.msg(e.msg);
@ -62,11 +90,6 @@
}) })
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="[]" callback="init" /} {include file="common/layui" base='base' extend="[]" callback="init" /}

View File

@ -2,7 +2,7 @@
<!-- 主体 --> <!-- 主体 -->
{block name="body"} {block name="body"}
<form class="layui-form body-content"> <form class="layui-form body-content">
<h3 class="h3-title">编辑文章</h3> <h3 class="h3-title">编辑知识文章</h3>
<table class="layui-table"> <table class="layui-table">
<tr> <tr>
<td class="layui-td-gray">文章标题 <span style="color: red">*</span></td> <td class="layui-td-gray">文章标题 <span style="color: red">*</span></td>

View File

@ -5,7 +5,7 @@
<form class="layui-form"> <form class="layui-form">
<div class="layui-input-inline"> <div class="layui-input-inline">
<select name="article_cate_id"> <select name="article_cate_id">
<option value="">请选择文章分类</option> <option value="">请选择知识文章分类</option>
{volist name=":set_recursion(get_article_cate())" id="v"} {volist name=":set_recursion(get_article_cate())" id="v"}
<option value="{$v.id}">{$v.title}</option> <option value="{$v.id}">{$v.title}</option>
{/volist} {/volist}
@ -21,7 +21,7 @@
<script type="text/html" id="toolbarDemo"> <script type="text/html" id="toolbarDemo">
<div class="layui-btn-container"> <div class="layui-btn-container">
<span class="layui-btn layui-btn-normal layui-btn-sm" title="添加文章" lay-event="add">+ 添加文章</span> <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">

View File

@ -5,7 +5,7 @@
<form class="layui-form"> <form class="layui-form">
<div class="layui-input-inline"> <div class="layui-input-inline">
<select name="article_cate_id"> <select name="article_cate_id">
<option value="">请选择文章分类</option> <option value="">请选择知识文章分类</option>
{volist name=":set_recursion(get_article_cate())" id="v"} {volist name=":set_recursion(get_article_cate())" id="v"}
<option value="{$v.id}">{$v.title}</option> <option value="{$v.id}">{$v.title}</option>
{/volist} {/volist}
@ -27,7 +27,7 @@
</script> </script>
<script type="text/html" id="toolbarDemo"> <script type="text/html" id="toolbarDemo">
<div class="layui-btn-container"> <div class="layui-btn-container">
<span class="layui-btn layui-btn-normal layui-btn-sm" title="添加文章" lay-event="add">+ 添加文章</span> <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">

View File

@ -2,7 +2,7 @@
<!-- 主体 --> <!-- 主体 -->
{block name="body"} {block name="body"}
<div class="body-content"> <div class="body-content">
<h3 class="h3-title">文章详情</h3> <h3 class="h3-title">知识文章详情</h3>
<table class="layui-table layui-table-form"> <table class="layui-table layui-table-form">
<tr> <tr>
<td class="layui-td-gray">文章标题</td> <td class="layui-td-gray">文章标题</td>

View File

@ -4,7 +4,7 @@
<form class="layui-form body-content"> <form class="layui-form body-content">
<h3 class="h3-title">部门架构</h3> <h3 class="h3-title">部门架构</h3>
{eq name="$id" value="0"} {eq name="$id" value="0"}
<table class="layui-table layui-table-form"> <table class="layui-table">
<tr> <tr>
<td class="layui-td-gray2">部门名称<font>*</font></td> <td class="layui-td-gray2">部门名称<font>*</font></td>
<td> <td>
@ -26,7 +26,7 @@
</tr> </tr>
</table> </table>
{else/} {else/}
<table class="layui-table layui-table-form"> <table class="layui-table">
<tr> <tr>
<td class="layui-td-gray2">部门名称<font>*</font></td> <td class="layui-td-gray2">部门名称<font>*</font></td>
<td> <td>

View File

@ -25,10 +25,10 @@
{block name="script"} {block name="script"}
<script> <script>
function init(layui) { function init(layui) {
var treeGrid = layui.treeGrid, var treeGrid = layui.treeGrid,
layer = layui.layer, layer = layui.layer,
rightpage = layui.rightpage, rightpage = layui.rightpage,
ptable = treeGrid.render({ ptable = treeGrid.render({
id: 'treeTable' id: 'treeTable'
, elem: '#treeTable' , elem: '#treeTable'
, idField: 'id' , idField: 'id'

View File

@ -3,9 +3,9 @@
{block name="body"} {block name="body"}
<form class="layui-form body-content"> <form class="layui-form body-content">
{eq name="$id" value="0"} {eq name="$id" value="0"}
<h3 style="height:36px;">新增公告</h3> <h3 class="h3-title">新增公告</h3>
{else/} {else/}
<h3 style="height:36px;">编辑公告</h3> <h3 class="h3-title">编辑公告</h3>
{/eq} {/eq}
<table class="layui-table layui-table-form"> <table class="layui-table layui-table-form">
<tr> <tr>

View File

@ -10,8 +10,8 @@
<!-- 主体 --> <!-- 主体 -->
{block name="body"} {block name="body"}
<div class="body-content" style="height: 100%"> <div class="body-content" style="height: 100%">
<div style="height:39px;"> <div style="height:42px;">
<a class="layui-btn layui-btn-normal layui-btn-sm" href="{:url('home/note/cate_add')}">+ 添加分类</a><span style="color:#999;margin-left:20px">点击表格内容可编辑</span> <button class="layui-btn layui-btn-normal layui-btn-sm add-menu">+ 添加分类</button>
</div> </div>
<div style="height: calc(100% - 30px)"> <div style="height: calc(100% - 30px)">
<table class="layui-hide" id="treeTable" lay-filter="treeTable"></table> <table class="layui-hide" id="treeTable" lay-filter="treeTable"></table>
@ -25,78 +25,72 @@
<!-- 脚本 --> <!-- 脚本 -->
{block name="script"} {block name="script"}
<script> <script>
var editObj=null,ptable=null,treeGrid=null,tableId='treeTable',layer=null; function init(layui) {
function init(layui){ var treeGrid = layui.treeGrid,
var table=layui.table,form = layui.form; layer = layui.layer,
treeGrid = layui.treeGrid;//很重要 rightpage = layui.rightpage,
layer=layui.layer; ptable = treeGrid.render({
ptable=treeGrid.render({ id:'treeTable'
id:tableId ,elem: '#treeTable'
,elem: '#'+tableId ,idField:'id'
,idField:'id' ,url:"{:url('home/note/cate')}"
,url:"{:url('home/note/cate')}" ,cellMinWidth: 100
,cellMinWidth: 100 ,treeId:'id'//树形id字段名称
,treeId:'id'//树形id字段名称 ,treeUpId:'pid'//树形父id字段名称
,treeUpId:'pid'//树形父id字段名称 ,treeShowName:'title'//以树形式显示的字段
,treeShowName:'title'//以树形式显示的字段 ,isOpenDefault:true
,cols: [[ ,cols: [[
{field:'id',width:80, title: 'ID号', align:'center'} {field:'id',width:80, title: 'ID号', align:'center'}
,{field: 'sort', title: '排序', edit: "text", align:'center', style:'cursor: pointer;', width:80} ,{field: 'sort', title: '排序', align:'center', style:'cursor: pointer;', width:80}
,{field:'title', edit:'text',title: '分类名称'} ,{field:'title', title: '分类名称'}
,{field:'pid', title: '父级ID', edit:"text",width:80, align:'center'} ,{field:'pid', title: '父级ID', width:80, align:'center'}
,{width:100,title: '操作', align:'center' ,{width:160,title: '操作', align:'center',templet: function(d){
,templet: function(d){ var html = '<span class="layui-btn-group"><button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="add">添加子分类</button><button class="layui-btn layui-btn-xs" lay-event="edit">编辑</button><button class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</button></span>';
var html=''; return html;
var addBtn='<a class="layui-btn layui-btn-normal layui-btn-xs" title="添加分类" href="/home/note/cate_add?pid='+d.id+'">添加</a>'; }
var delBtn='<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>'; }
return addBtn+delBtn; ]]
} ,page:false
} //,skin:'line'
]] });
,page:false
//,skin:'line'
}); //表头工具栏事件
//单元格编辑 $('.body-content').on('click','.add-menu', function(){
treeGrid.on('edit('+tableId+')', function(obj){ rightpage.open("{:url('home/note/cate_add')}");
layer.confirm('确定要提交修改吗?', {icon: 3, title:'提示'}, function(index){ return;
});
//操作按钮
treeGrid.on('tool(treeTable)', function (obj) {
if (obj.event === 'add') {
rightpage.open('/home/note/cate_add?pid='+obj.data.id);
return;
}
if (obj.event === 'edit') {
rightpage.open('/home/note/cate_add?id='+obj.data.id);
return;
}
if (obj.event === 'del') {
layer.confirm('确定要删除吗?', { icon: 3, title: '提示' }, function (index) {
$.ajax({ $.ajax({
url:"{:url('home/note/cate_add')}", url: "{:url('home/note/cate_delete')}",
type:'post', type: 'post',
data:{id:obj.data.id,field:obj.field,value:obj.value}, data: { id: obj.data.id },
success:function(res){ success: function (e) {
layer.msg(res.msg); layer.msg(e.msg);
if(res.code == 0){ if (e.code == 0) {
setTimeout(function(){ obj.del();
location.reload() }
},2000)
} }
}
}) })
layer.close(index); layer.close(index);
}); });
}); }
//删除 });
treeGrid.on('tool('+tableId+')',function (obj) { }
if(obj.event === 'del'){ </script>
layer.confirm('确定要删除吗?', {icon: 3, title:'提示'}, function(index){ {include file="common/layui" base='base' extend="['treeGrid','rightpage']" callback="init" /}
$.ajax({
url:"{:url('home/note/cate_delete')}",
type:'post',
data:{id:obj.data.id},
success:function(res){
layer.msg(res.msg);
if(res.code == 0){
obj.del();
}
}
})
layer.close(index);
});
}
});
}
</script>
{include file="common/layui" base='base' extend="['treeGrid']" callback="init" /}
{/block} {/block}
<!-- /脚本 --> <!-- /脚本 -->

View File

@ -2,14 +2,16 @@
<!-- 主体 --> <!-- 主体 -->
{block name="body"} {block name="body"}
<form class="layui-form body-content"> <form class="layui-form body-content">
<table class="layui-table layui-table-form"> <h3 class="h3-title">公告分类</h3>
{eq name="$id" value="0"}
<table class="layui-table">
<tr> <tr>
<td class="layui-td-gray2">父级分类<font>*</font></td> <td class="layui-td-gray2">父级分类<font>*</font></td>
<td> <td>
<select name="pid" lay-verify="required" lay-reqText="请选择父级分类"> <select name="pid" lay-verify="required" lay-reqText="请选择父级分类">
<option value="0">作为顶级分类</option> <option value="0">作为顶级分类</option>
{volist name=":set_recursion(get_note_cate())" id="v"} {volist name=":set_recursion(get_note_cate())" id="v"}
<option value="{$v.id}" {eq name="pid" value="$v.id"}selected=""{/eq}>{$v.title}</option> <option value="{$v.id}" {eq name="$pid" value="$v.id"}selected=""{/eq}>{$v.title}</option>
{/volist} {/volist}
</select> </select>
</td> </td>
@ -23,10 +25,33 @@
</td> </td>
</tr> </tr>
</table> </table>
{else/}
<table class="layui-table">
<tr>
<td class="layui-td-gray2">父级分类<font>*</font></td>
<td>
<select name="pid" lay-verify="required" lay-reqText="请选择父级分类">
<option value="0">作为顶级分类</option>
{volist name=":set_recursion(get_note_cate())" id="v"}
<option value="{$v.id}" {eq name="$detail.pid" value="$v.id"}selected=""{/eq}>{$v.title}</option>
{/volist}
</select>
</td>
<td class="layui-td-gray2">分类名称<font>*</font></td>
<td>
<input type="text" name="title" value="{$detail.title}" lay-verify="required" autocomplete="off" placeholder="请输入分类名称" lay-reqText="请输入分类名称" class="layui-input">
</td>
<td class="layui-td-gray2">排序</td>
<td>
<input type="text" name="sort" value="{$detail.sort}" placeholder="请输入排序,数字" autocomplete="off" class="layui-input">
</td>
</tr>
</table>
{/eq}
<div style="padding: 10px 0"> <div style="padding: 10px 0">
<input type="hidden" name="id" value="{$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>
</form> </form>
{/block} {/block}
@ -34,38 +59,31 @@
<!-- 脚本 --> <!-- 脚本 -->
{block name="script"} {block name="script"}
<script> <script>
function init(layui){ function init(layui){
var form = layui.form var form = layui.form
,layer = layui.layer; ,layer = layui.layer;
//监听提交 //监听提交
form.on('submit(webform)', function(data){ form.on('submit(webform)', function(data){
$.ajax({ $.ajax({
url:"{:url('home/note/cate_add')}", url:"{:url('home/note/cate_add')}",
type:'post', type:'post',
data:data.field, data:data.field,
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) {
history.back(-1); parent.location.reload();
layer.close(index); });
}); }else{
}else{ layer.msg(e.msg);
layer.msg(e.msg); }
} }
}
}) })
return false; return false;
}); });
//监听返回 }
$('.body-content').on('click','[lay-event="back"]',function () { </script>
window.location.href="{:url('home/note/cate')}"; {include file="common/layui" base='base' extend="[]" callback="init" /}
return false;
});
}
</script>
{include file="common/layui" base='base' extend="[]" callback="init" /}
{/block} {/block}
<!-- /脚本 --> <!-- /脚本 -->

View File

@ -3,9 +3,6 @@
{block name="body"} {block name="body"}
<div class="body-content"> <div class="body-content">
<table class="layui-hide" id="test" lay-filter="test"></table> <table class="layui-hide" id="test" lay-filter="test"></table>
<div>
<button lay-event="back" class="layui-btn layui-btn-primary">返回</button>
</div>
</div> </div>
<script type="text/html" id="status"> <script type="text/html" id="status">