first commit
This commit is contained in:
35
catch/permissions/view/role/create.html
Normal file
35
catch/permissions/view/role/create.html
Normal file
@@ -0,0 +1,35 @@
|
||||
{$form|raw}
|
||||
<script>
|
||||
layui.use(['layer', 'form', 'admin', 'formX', 'authtree'], function () {
|
||||
var $ = layui.jquery;
|
||||
var layer = layui.layer;
|
||||
var form = layui.form;
|
||||
var admin = layui.admin;
|
||||
var authtree = layui.authtree;
|
||||
var mUser = admin.getLayerData('#role'); // 列表页面传递的数据,#modelUserForm这个只要写弹窗内任意一个元素的id即可
|
||||
// 回显数据
|
||||
form.val('role', mUser);
|
||||
// 表单提交事件
|
||||
form.on('submit(submitRole)', function (data) {
|
||||
admin.req('{:url("role")}', data.field, function (response) {
|
||||
layer.msg(response.msg, {icon: 1});
|
||||
admin.putLayerData('formOk', true, '#role'); // 设置操作成功的标识,#modelUserForm这个只要写弹窗内任意一个元素的id即可
|
||||
admin.closeDialog('#role'); // 关闭页面层弹窗
|
||||
}, 'post');
|
||||
return false;
|
||||
});
|
||||
admin.req('{:url("/role/get/permissions")}',{parent_id:"{$parent_id}"}, function (response) {
|
||||
authtree.render('#permissions', response.data.permissions,{
|
||||
inputname: 'permissionids[]',
|
||||
layfilter: 'lay-check-auth',
|
||||
autowidth: true,
|
||||
nameKey: 'permission_name',
|
||||
valueKey: 'id',
|
||||
childKey: 'children',
|
||||
collapseLeafNode: true,
|
||||
theme: 'auth-skin-default',
|
||||
});
|
||||
})
|
||||
|
||||
});
|
||||
</script>
|
36
catch/permissions/view/role/edit.html
Normal file
36
catch/permissions/view/role/edit.html
Normal file
@@ -0,0 +1,36 @@
|
||||
{$form|raw}
|
||||
<script>
|
||||
layui.use(['layer', 'form', 'admin', 'formX', 'authtree'], function () {
|
||||
var $ = layui.jquery;
|
||||
var layer = layui.layer;
|
||||
var form = layui.form;
|
||||
var admin = layui.admin;
|
||||
var mUser = admin.getLayerData('#role'); // 列表页面传递的数据,#modelUserForm这个只要写弹窗内任意一个元素的id即可
|
||||
var authtree = layui.authtree;
|
||||
|
||||
// 回显数据
|
||||
form.val('role', mUser);
|
||||
admin.req('{:url("/role/get/permissions")}',{role_id:"{$role_id}", parent_id:"{$parent_id}"}, function (response) {
|
||||
authtree.render('#permissions', response.data.permissions,{
|
||||
inputname: 'permissionids[]',
|
||||
layfilter: 'lay-check-auth',
|
||||
autowidth: true,
|
||||
nameKey: 'permission_name',
|
||||
valueKey: 'id',
|
||||
childKey: 'children',
|
||||
collapseLeafNode: true,
|
||||
theme: 'auth-skin-default',
|
||||
checkedKey: response.data.hasPermissions
|
||||
});
|
||||
})
|
||||
// 表单提交事件
|
||||
form.on('submit(submitRole)', function (data) {
|
||||
admin.req('role/'+ "{$role_id}", data.field, function (response) {
|
||||
layer.msg(response.msg, {icon: 1});
|
||||
admin.putLayerData('formOk', true, '#role'); // 设置操作成功的标识,#modelUserForm这个只要写弹窗内任意一个元素的id即可
|
||||
admin.closeDialog('#role'); // 关闭页面层弹窗
|
||||
}, 'put');
|
||||
return false;
|
||||
});
|
||||
});
|
||||
</script>
|
178
catch/permissions/view/role/index.html
Normal file
178
catch/permissions/view/role/index.html
Normal file
@@ -0,0 +1,178 @@
|
||||
{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"></i>搜索
|
||||
</button>-->
|
||||
<button id="btnAddAuth" class="layui-btn icon-btn"><i class="layui-icon"></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}
|
Reference in New Issue
Block a user