2019-12-17 09:02:09 +08:00

178 lines
7.0 KiB
HTML
Raw 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.

{extend name="$layout"}
{block name="title"}角色管理{/block}
{block name="search"}
<div class="layui-form toolbar">
<div class="layui-form-item">
<!--<div class="layui-inline">
<div class="layui-input-inline mr0">
<input id="edtSearchAuth" class="layui-input" type="text" placeholder="输入角色名称"/>
</div>
</div>
<div class="layui-inline">
<button id="btnSearchAuth" class="layui-btn icon-btn"><i class="layui-icon">&#xe615;</i>搜索
</button>-->
<button id="btnAddAuth" class="layui-btn icon-btn"><i class="layui-icon">&#xe654;</i>添加</button>
<!--</div>-->
</div>
</div>
{/block}
{block name="table"}
<table class="layui-table" id="tableRole"></table>
<!-- 表格操作列 -->
<script type="text/html" id="tableBarAuth">
{:editButton()}
{:addButton('新增子角色')}
{:deleteButton()}
</script>
{/block}
{block name="script"}
<script>
layui.use(['layer', 'form', 'table', 'admin', 'util', 'treeTable'], function () {
var $ = layui.jquery;
var layer = layui.layer;
var form = layui.form;
var table = layui.table;
var util = layui.util;
var admin = layui.admin;
var treeTable = layui.treeTable;
var treeTb = treeTable.render({
tree: {
arrowType: 'arrow2',
iconIndex: 1, // 折叠图标显示在第几列
idName: 'id', // 自定义id字段的名称
childName: 'children', // 自定义标识是否还有子节点的字段名称
pidName: 'parent_id',
isPidData: true,
getIcon: function(d) { // 自定义图标
// d是当前行的数据
if (d.children.length) { // 判断是否有子集
return '<i class="ew-tree-icon ew-tree-icon-folder"></i>';
} else {
return '<i class="ew-tree-icon ew-tree-icon-file"></i>';
}
}
},
elem: '#tableRole',
cellMinWidth: 100,
cols: [
{type: 'numbers', title: '#'},
{field: 'role_name', title: '角色名称', minWidth: 100},
{field: 'description', title: '角色描述'},
{
field: 'created_at', sort: true, templet: function (d) {
return util.toDateString(d.created_at);
}, title: '创建时间', maxWidth: 100
},
{templet: '#tableBarAuth', title: '操作', align: 'center', minWidth: 120}
],
reqData: function(data, callback) {
// 在这里写ajax请求通过callback方法回调数据
$.get('{:url("roles")}', function (res) {
callback(res.data); // 参数是数组类型
});
}
});
// 添加按钮点击事件
$('#btnAddAuth').click(function () {
showEditModel();
});
// 工具条点击事件
treeTable.on('tool(tableRole)', function (obj) {
var data = obj.data;
var layEvent = obj.event;
if (layEvent === 'edit') { // 修改
showEditModel(data);
} else if (layEvent === 'del') { // 删除
doDel(obj);
} else {
showEditModel(data, true);
}
});
// 删除
function doDel(obj) {
layer.confirm('确定要删除“' + obj.data.role_name + '”吗?', {
skin: 'layui-layer-admin',
shade: .1
}, function (index) {
layer.close(index);
admin.req('/role/'+ obj.data.id, {}, function (response) {
if (response.code === 10000) {
layer.msg(response.msg, {icon: 1});
obj.del()
} else {
layer.msg(response.msg, {icon: 2});
}
}, 'delete');
});
}
// 显示表单弹窗
// 显示表单弹窗
function showEditModel(mRole, addRole = false) {
var layIndex = admin.open({
title: addRole ? '新增子角色' : ((mRole ? '修改' : '添加') + '角色'),
url: addRole ? '/role/create' + '?id='+mRole.id : (mRole ? '/role/'+mRole.id + '/edit': '/role/create'),
data: addRole ? '' : mRole, // 传递数据到表单页面
area: '700px',
end: function () {
if (admin.getLayerData(layIndex, 'formOk')) { // 判断表单操作成功标识
if (addRole) {
treeTb.reload();
setTimeout(function () {
treeTb.expand(mRole.id)
}, 200)
} else {
if (mRole) {
treeTb.reload();
setTimeout(function () {
treeTb.expand(mRole.id)
}, 200)
} else {
treeTb.reload(); // 成功刷新表格
}
}
}
},
success: function (layero, dIndex) {
// 弹窗超出范围不出现滚动条
$(layero).children('.layui-layer-content').css('overflow', 'visible');
}
});
}
// 搜索按钮点击事件
$('#btnSearchAuth').click(function () {
$('#edtSearchAuth').removeClass('layui-form-danger');
var keyword = $('#edtSearchAuth').val();
var $tds = $('#tableAuth').next('.treeTable').find('.layui-table-body tbody tr td');
$tds.css('background-color', 'transparent');
if (!keyword) {
layer.tips('请输入关键字', '#edtSearchAuth', {tips: [1, '#ff4c4c']});
$('#edtSearchAuth').addClass('layui-form-danger');
$('#edtSearchAuth').focus();
return;
}
var searchCount = 0;
$tds.each(function () {
if ($(this).text().indexOf(keyword) >= 0) {
$(this).css('background-color', '#FAE6A0');
if (searchCount == 0) {
$('body,html').stop(true);
$('body,html').animate({scrollTop: $(this).offset().top - 150}, 500);
}
searchCount++;
}
});
if (searchCount == 0) {
layer.msg("没有匹配结果", {icon: 5, anim: 6});
} else {
treetable.expandAll('#tableAuth');
}
});
});
</script>
{/block}