初始化提交
This commit is contained in:
143
app/admin/view/auth/form.html
Normal file
143
app/admin/view/auth/form.html
Normal file
@@ -0,0 +1,143 @@
|
||||
{extend name='main'}
|
||||
|
||||
{block name="button"}
|
||||
<button data-target-submit class='layui-btn layui-btn-sm'>{:lang('保存数据')}</button>
|
||||
<button data-target-backup class="layui-btn layui-btn-sm layui-btn-danger">{:lang('取消编辑')}</button>
|
||||
{/block}
|
||||
|
||||
{block name="content"}
|
||||
<div class="think-box-shadow">
|
||||
<form method="post" id="RoleForm" class="layui-form layui-card">
|
||||
<div class="layui-card-body">
|
||||
<label class="layui-form-item relative block">
|
||||
<span class="help-label"><b>{:lang('权限名称')}</b>Auth Name</span>
|
||||
<input maxlength="100" class="layui-input" name="title" value='{$vo.title|default=""}' required vali-name="{:lang('权限名称')}" placeholder="{:lang('请输入权限名称')}">
|
||||
<span class="help-block">{:lang('访问权限名称需要保持不重复,在给用户授权时需要根据名称选择!')}</span>
|
||||
</label>
|
||||
<label class="layui-form-item relative block">
|
||||
<span class="help-label"><b>{:lang('权限描述')}</b>Auth Remark</span>
|
||||
<textarea placeholder="{:lang('请输入权限描述')}" maxlength="200" class="layui-textarea" name="desc">{$vo.desc|default=""}</textarea>
|
||||
</label>
|
||||
<div class="layui-form-item">
|
||||
<span class="help-label label-required-prev"><b>{:lang('功能节点')}</b>Auth Nodes</span>
|
||||
<ul id="zTree" class="ztree notselect"></ul>
|
||||
</div>
|
||||
<div class="hr-line-dashed"></div>
|
||||
{notempty name='vo.id'}<input name="id" value="{$vo.id}" type="hidden"/>{/notempty}
|
||||
<div class="layui-form-item text-center">
|
||||
<button data-target-submit class="layui-btn">{:lang('保存数据')}</button>
|
||||
<button data-target-backup class="layui-btn layui-btn-danger" type="button">{:lang('取消编辑')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
{/block}
|
||||
|
||||
{block name="script"}
|
||||
<script>
|
||||
require(['jquery.ztree'], function () {
|
||||
new function () {
|
||||
let that = this;
|
||||
this.data = {}, this.ztree = null, this.setting = {
|
||||
view: {showLine: false, showIcon: false, dblClickExpand: false},
|
||||
check: {enable: true, nocheck: false, chkboxType: {"Y": "ps", "N": "ps"}}, callback: {
|
||||
beforeClick: function (id, node) {
|
||||
node.children.length < 1 ? that.ztree.checkNode(node, !node.checked, true, true) : that.ztree.expandNode(node);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
};
|
||||
this.renderChildren = function (list, level) {
|
||||
let childrens = [];
|
||||
for (let i in list) childrens.push({
|
||||
open: true, node: list[i].node, name: list[i].title || list[i].node,
|
||||
checked: list[i].checked || false, children: this.renderChildren(list[i]._sub_, level + 1)
|
||||
});
|
||||
return childrens;
|
||||
};
|
||||
this.syncData = function () {
|
||||
$.form.load('{:sysuri()}', {id: '{$vo.id|default=0}', action: 'json'}, 'post', function (ret) {
|
||||
return (that.data = that.renderChildren(ret.data, 1)), that.showTree(), false;
|
||||
});
|
||||
};
|
||||
this.showTree = function () {
|
||||
this.ztree = $.fn.zTree.init($("#zTree"), this.setting, this.data);
|
||||
while (true) {
|
||||
let nodes = this.ztree.getNodesByFilter(function (node) {
|
||||
return (!node.node && node.children.length < 1);
|
||||
});
|
||||
if (nodes.length < 1) break;
|
||||
for (let i in nodes) this.ztree.removeNode(nodes[i]);
|
||||
}
|
||||
};
|
||||
// 刷新数据
|
||||
this.syncData();
|
||||
// 监听表单提交
|
||||
$('#RoleForm').vali(function (form) {
|
||||
let data = that.ztree.getCheckedNodes(true);
|
||||
Object.assign(form, {nodes: [], action: 'save'})
|
||||
for (let i in data) if (data[i].node) form.nodes.push(data[i].node);
|
||||
$.form.load('{:sysuri()}', form, 'post');
|
||||
});
|
||||
};
|
||||
});
|
||||
</script>
|
||||
{/block}
|
||||
|
||||
{block name="style"}
|
||||
<style>
|
||||
ul.ztree li {
|
||||
line-height: 24px;
|
||||
white-space: normal !important;
|
||||
}
|
||||
|
||||
ul.ztree li span.button.switch {
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
ul.ztree ul ul li {
|
||||
display: inline-block;
|
||||
white-space: normal;
|
||||
}
|
||||
|
||||
ul.ztree > li {
|
||||
border: 1px solid rgba(0, 0, 0, 0.10);
|
||||
padding: 15px;
|
||||
background: rgba(0, 0, 0, 0.05);
|
||||
border-radius: 3px;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
ul.ztree > li > ul {
|
||||
padding: 10px;
|
||||
margin-top: 10px;
|
||||
background: rgba(0, 0, 0, 0.05);
|
||||
border-radius: 3px;
|
||||
}
|
||||
|
||||
ul.ztree > li > ul > li {
|
||||
padding: 5px 0;
|
||||
}
|
||||
|
||||
ul.ztree > li > a > span {
|
||||
font-size: 15px;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
ul.ztree .level2 .button.level2 {
|
||||
width: 0;
|
||||
}
|
||||
|
||||
ul.ztree li span.button.noline_open {
|
||||
background-position-y: -73px;
|
||||
}
|
||||
|
||||
ul.ztree li span.button.noline_close {
|
||||
background-position-y: -73px;
|
||||
}
|
||||
|
||||
ul.ztree .level1 > .node_name {
|
||||
font-weight: bold;
|
||||
}
|
||||
</style>
|
||||
{/block}
|
||||
76
app/admin/view/auth/index.html
Normal file
76
app/admin/view/auth/index.html
Normal file
@@ -0,0 +1,76 @@
|
||||
{extend name='table'}
|
||||
|
||||
{block name="button"}
|
||||
<!--{if auth("add")}-->
|
||||
<button data-open='{:url("add")}' data-table-id="RoleTable" class='layui-btn layui-btn-sm layui-btn-primary'>{:lang('添加权限')}</button>
|
||||
<!--{/if}-->
|
||||
|
||||
<!--{if auth("remove")}-->
|
||||
<button data-action='{:url("remove")}' data-rule="id#{id}" data-table-id="RoleTable" data-confirm="{:lang('确定要批量删除权限吗?')}" class='layui-btn layui-btn-sm layui-btn-primary'>{:lang('批量删除')}</button>
|
||||
<!--{/if}-->
|
||||
{/block}
|
||||
|
||||
{block name="content"}
|
||||
<div class="think-box-shadow">
|
||||
{include file='auth/index_search'}
|
||||
<table id="RoleTable" data-url="{:request()->url()}" data-target-search="form.form-search"></table>
|
||||
</div>
|
||||
{/block}
|
||||
|
||||
{block name='script'}
|
||||
<script>
|
||||
$(function () {
|
||||
// 初始化表格组件
|
||||
$('#RoleTable').layTable({
|
||||
even: true, height: 'full',
|
||||
sort: {field: 'sort desc,id', type: 'desc'},
|
||||
cols: [[
|
||||
{checkbox: true, fixed: true},
|
||||
{field: 'sort', title: '{:lang("排序权重")}', align: 'center', width: 100, sort: true, templet: '#SortInputRoleTableTpl'},
|
||||
{field: 'title', title: '{:lang("权限名称")}', align: 'center', minWidth: 140},
|
||||
{field: 'desc', title: '{:lang("权限描述")}', align: 'center', minWidth: 110, templet: '<div>{{d.desc||"-"}}</div>'},
|
||||
{field: 'status', title: '{:lang("使用状态")}', align: 'center', minWidth: 110, templet: '#StatusSwitchRoleTableTpl'},
|
||||
{field: 'create_at', title: '{:lang("创建时间")}', align: 'center', minWidth: 170, sort: true},
|
||||
{toolbar: '#ToolbarRoleTableTpl', title: '{:lang("操作面板")}', align: 'center', minWidth: 210, fixed: 'right'},
|
||||
]]
|
||||
});
|
||||
|
||||
// 数据状态切换操作
|
||||
layui.form.on('switch(StatusSwitchRoleTable)', function (obj) {
|
||||
let data = {id: obj.value, status: obj.elem.checked > 0 ? 1 : 0};
|
||||
$.form.load("{:url('state')}", data, 'post', function (ret) {
|
||||
if (ret.code < 1) $.msg.error(ret.info, 3, function () {
|
||||
$('#RoleTable').trigger('reload');
|
||||
});
|
||||
return false;
|
||||
}, false);
|
||||
});
|
||||
});
|
||||
|
||||
</script>
|
||||
|
||||
<!-- 列表排序权重模板 -->
|
||||
<script type="text/html" id="SortInputRoleTableTpl">
|
||||
<input type="number" min="0" data-blur-number="0" data-action-blur="{:request()->url()}" data-value="id#{{d.id}};action#sort;sort#{value}" data-loading="false" value="{{d.sort}}" class="layui-input text-center">
|
||||
</script>
|
||||
|
||||
<!-- 数据状态切换模板 -->
|
||||
<script type="text/html" id="StatusSwitchRoleTableTpl">
|
||||
<!--{if auth("state")}-->
|
||||
<input type="checkbox" value="{{d.id}}" lay-skin="switch" lay-text="{:lang('已激活')}|{:lang('已禁用')}" lay-filter="StatusSwitchRoleTable" {{-d.status>0?'checked':''}}>
|
||||
<!--{else}-->
|
||||
{{-d.status ? '<b class="color-green">{:lang("已启用")}</b>' : '<b class="color-red">{:lang("已禁用")}</b>'}}
|
||||
<!--{/if}-->
|
||||
</script>
|
||||
|
||||
<!-- 数据操作工具条模板 -->
|
||||
<script type="text/html" id="ToolbarRoleTableTpl">
|
||||
<!--{if auth('edit')}-->
|
||||
<a class="layui-btn layui-btn-primary layui-btn-sm" data-open='{:url("edit")}?id={{d.id}}'>{:lang("编 辑")}</a>
|
||||
<!--{/if}-->
|
||||
|
||||
<!--{if auth("remove")}-->
|
||||
<a class="layui-btn layui-btn-danger layui-btn-sm" data-action="{:url('remove')}" data-value="id#{{d.id}}" data-confirm="{:lang('确定要删除权限吗?')}">{:lang("删 除")}</a>
|
||||
<!--{/if}-->
|
||||
</script>
|
||||
{/block}
|
||||
45
app/admin/view/auth/index_search.html
Normal file
45
app/admin/view/auth/index_search.html
Normal file
@@ -0,0 +1,45 @@
|
||||
<fieldset>
|
||||
<legend>{:lang('条件搜索')}</legend>
|
||||
<form class="layui-form layui-form-pane form-search" action="{:sysuri()}" onsubmit="return false" method="get" autocomplete="off">
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">{:lang('权限名称')}</label>
|
||||
<div class="layui-input-inline">
|
||||
<input name="title" value="{$get.title|default=''}" placeholder="{:lang('请输入权限名称')}" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">{:lang('权限描述')}</label>
|
||||
<div class="layui-input-inline">
|
||||
<input name="desc" value="{$get.desc|default=''}" placeholder="{:lang('请输入权限描述')}" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">{:lang('使用状态')}</label>
|
||||
<div class="layui-input-inline">
|
||||
<select class="layui-select" name="status">
|
||||
<option value=''>-- {:lang('全部')} --</option>
|
||||
{foreach [lang('已禁用记录'),lang('已激活记录')] as $k=>$v}
|
||||
{if isset($get.status) and $get.status eq $k.""}
|
||||
<option selected value="{$k}">{$v}</option>
|
||||
{else}
|
||||
<option value="{$k}">{$v}</option>
|
||||
{/if}{/foreach}
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<label class="layui-form-label">{:lang('创建时间')}</label>
|
||||
<div class="layui-input-inline">
|
||||
<input data-date-range name="create_at" value="{$get.create_at|default=''}" placeholder="{:lang('请选择创建时间')}" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item layui-inline">
|
||||
<button class="layui-btn layui-btn-primary"><i class="layui-icon"></i> {:lang('搜 索')}</button>
|
||||
</div>
|
||||
</form>
|
||||
</fieldset>
|
||||
Reference in New Issue
Block a user