初始化提交
This commit is contained in:
97
app/admin/view/menu/form.html
Normal file
97
app/admin/view/menu/form.html
Normal file
@@ -0,0 +1,97 @@
|
||||
<form action="{:sysuri()}" method="post" data-auto="true" class="layui-form layui-card" data-table-id="MenuTable">
|
||||
|
||||
<div class="layui-card-body">
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label label-required-next">{:lang('上级菜单')}</label>
|
||||
<div class="layui-input-block">
|
||||
<select name='pid' class='layui-select' lay-search>
|
||||
{foreach $menus as $menu}{eq name='menu.id' value='$vo.pid|default=0'}
|
||||
<option selected value='{$menu.id}'>{$menu.spl|raw}{$menu.title}</option>
|
||||
{else}
|
||||
<option value='{$menu.id}'>{$menu.spl|raw}{$menu.title}</option>
|
||||
{/eq}{/foreach}
|
||||
</select>
|
||||
<p class="help-block"><b>必选</b>,请选择上级菜单或顶级菜单 ( 目前最多支持三级菜单 )</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{:lang('菜单名称')}</label>
|
||||
<div class="layui-input-block">
|
||||
<input name="title" value='{$vo.title|default=""}' required vali-name="菜单名称" placeholder="请输入菜单名称" class="layui-input">
|
||||
<p class="help-block"><b>必选</b>,请填写菜单名称 ( 如:系统管理 ),建议字符不要太长,一般 4-6 个汉字</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{:lang('菜单链接')}</label>
|
||||
<div class="layui-input-block">
|
||||
<input onblur="this.value=this.value === ''?'#':this.value" name="url" required vali-name="菜单链接" placeholder="请输入菜单链接" value="{$vo.url|default='#'}" class="layui-input">
|
||||
<p class="help-block">
|
||||
<b>必选</b>,请填写链接地址或选择系统节点 ( 如:https://domain.com/admin/user/index.html 或 admin/user/index )
|
||||
<br>当填写链接地址时,以下面的 “权限节点” 来判断菜单自动隐藏或显示,注意未填写 “权限节点” 时将不会隐藏该菜单哦
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{:lang('链接参数')}</label>
|
||||
<div class="layui-input-block">
|
||||
<input name="params" placeholder="请输入链接参数" value="{$vo.params|default=''}" class="layui-input">
|
||||
<p class="help-block"><b>可选</b>,设置菜单链接的 GET 访问参数 ( 如:name=1&age=3 )</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{:lang('权限节点')}</label>
|
||||
<div class="layui-input-block">
|
||||
<input name="node" placeholder="请输入权限节点" value="{$vo.node|default=''}" class="layui-input">
|
||||
<p class="help-block"><b>可选</b>,请填写系统权限节点 ( 如:admin/user/index ),未填写时默认解释"菜单链接"判断是否拥有访问权限;</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">{:lang('菜单图标')}</label>
|
||||
<div class="layui-input-block">
|
||||
<div class="layui-input-inline">
|
||||
<input placeholder="请输入或选择图标" name="icon" value='{$vo.icon|default=""}' class="layui-input">
|
||||
</div>
|
||||
<span style="padding:0 12px;min-width:45px" class='layui-btn layui-btn-primary'>
|
||||
<i style="font-size:1.2em;margin:0;float:none" class='{$vo.icon|default=""}'></i>
|
||||
</span>
|
||||
<button data-icon='icon' type='button' class='layui-btn layui-btn-primary'>{:lang('选择图标')}</button>
|
||||
<p class="help-block"><b>可选</b>,设置菜单选项前置图标,目前支持 layui 字体图标及 iconfont 定制字体图标。</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="hr-line-dashed"></div>
|
||||
{notempty name='vo.id'}<input type='hidden' value='{$vo.id}' name='id'>{/notempty}
|
||||
|
||||
<div class="layui-form-item text-center">
|
||||
<button class="layui-btn" type='submit'>{:lang('保存数据')}</button>
|
||||
<button class="layui-btn layui-btn-danger" type='button' data-confirm="{:lang('确定要取消编辑吗?')}" data-close>{:lang('取消编辑')}</button>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
<script>
|
||||
require(['jquery.autocompleter'], function () {
|
||||
$('[name="icon"]').on('change', function () {
|
||||
$(this).parent().next().find('i').get(0).className = this.value
|
||||
}), $('input[name=url]').autocompleter({
|
||||
limit: 6, highlightMatches: true, template: '{{ label }} <span> {{ title }} </span>', callback: function (node) {
|
||||
$('input[name=node]').val(node);
|
||||
}, source: (function (subjects, data) {
|
||||
for (var i in subjects) data.push({value: subjects[i].node, label: subjects[i].node, title: subjects[i].title});
|
||||
return data;
|
||||
})(JSON.parse('{$nodes|raw|json_encode}'), [])
|
||||
}), $('input[name=node]').autocompleter({
|
||||
limit: 5, highlightMatches: true, template: '{{ label }} <span> {{ title }} </span>', source: (function (subjects, data) {
|
||||
for (var i in subjects) data.push({value: subjects[i].node, label: subjects[i].node, title: subjects[i].title});
|
||||
return data;
|
||||
})(JSON.parse('{$auths|raw|json_encode}'), [])
|
||||
});
|
||||
});
|
||||
</script>
|
||||
114
app/admin/view/menu/index.html
Normal file
114
app/admin/view/menu/index.html
Normal file
@@ -0,0 +1,114 @@
|
||||
{extend name='table'}
|
||||
|
||||
{block name="button"}
|
||||
<!--{if $type eq 'index' and auth("add")}-->
|
||||
<button data-modal='{:url("add")}' data-table-id="MenuTable" class='layui-btn layui-btn-sm layui-btn-primary'>{:lang('添加菜单')}</button>
|
||||
<!--{/if}-->
|
||||
|
||||
<!--{if $type eq 'index' and auth("state")}-->
|
||||
<button data-action='{:url("state")}' data-table-id="MenuTable" data-rule="id#{sps};status#0" class='layui-btn layui-btn-sm layui-btn-primary'>{:lang('禁用菜单')}</button>
|
||||
<!--{/if}-->
|
||||
|
||||
<!--{if $type eq 'recycle' and auth("state")}-->
|
||||
<button data-action='{:url("state")}' data-table-id="MenuTable" data-rule="id#{spp};status#1" class='layui-btn layui-btn-sm layui-btn-primary'>{:lang('激活菜单')}</button>
|
||||
<!--{/if}-->
|
||||
{/block}
|
||||
|
||||
{block name="content"}
|
||||
<div class="layui-tab layui-tab-card">
|
||||
<ul class="layui-tab-title">
|
||||
{foreach ['index'=>lang('系统菜单'),'recycle'=>lang('回 收 站')] as $k=>$v}
|
||||
{if isset($type) and $type eq $k}
|
||||
<li class="layui-this" data-open="{:url('index')}?type={$k}">{$v}</li>
|
||||
{else}
|
||||
<li data-open="{:url('index')}?type={$k}">{$v}</li>
|
||||
{/if}{/foreach}
|
||||
</ul>
|
||||
<div class="layui-tab-content">
|
||||
<table id="MenuTable" data-url="{:request()->url()}" data-target-search="form.form-search"></table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
$(function () {
|
||||
$('#MenuTable').layTable({
|
||||
even: true, height: 'full', page: false,
|
||||
sort: {field: 'sort desc,id', type: 'asc'},
|
||||
where: {type: '{$type|default="index"}'},
|
||||
filter: function (items) {
|
||||
var type = this.where.type;
|
||||
return items.filter(function (item) {
|
||||
return !(type === 'index' && parseInt(item.status) === 0);
|
||||
});
|
||||
},
|
||||
cols: [[
|
||||
{checkbox: true, field: 'sps'},
|
||||
{field: 'sort', title: '{:lang("排序权重")}', width: 100, align: 'center', templet: '#SortInputTpl'},
|
||||
{field: 'icon', title: '{:lang("图 标")}', width: 80, align: 'center', templet: '<div><i class="{{d.icon}} font-s18"></i></div>'},
|
||||
{field: 'title', title: '{:lang("菜单名称")}', minWidth: 220, templet: '<div><span class="color-desc">{{d.spl}}</span>{{d.title}}</div>'},
|
||||
{field: 'url', title: '{:lang("跳转链接")}', minWidth: 200},
|
||||
{field: 'status', title: '{:lang("使用状态")}', minWidth: 120, align: 'center', templet: '#StatusSwitchTpl'},
|
||||
{toolbar: '#toolbar', title: '{:lang("操作面板")}', minWidth: 150, align: 'center', fixed: 'right'},
|
||||
]]
|
||||
});
|
||||
|
||||
// 数据状态切换操作
|
||||
layui.form.on('switch(StatusSwitch)', function (object) {
|
||||
object.data = {status: object.elem.checked > 0 ? 1 : 0};
|
||||
object.data.id = object.value.split('|')[object.data.status] || object.value;
|
||||
$.form.load("{:url('state')}", object.data, 'post', function (ret) {
|
||||
if (ret.code < 1) $.msg.error(ret.info, 3, function () {
|
||||
$('#MenuTable').trigger('reload');
|
||||
}); else {
|
||||
$('#MenuTable').trigger('reload');
|
||||
}
|
||||
return false;
|
||||
}, false);
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- 数据状态切换模板 -->
|
||||
<script type="text/html" id="StatusSwitchTpl">
|
||||
<!--{if auth("state")}-->
|
||||
{{# if( "{$type|default='index'}"==='index' || (d.spc<1 || d.status<1)){ }}
|
||||
<input type="checkbox" value="{{d.sps}}|{{d.spp}}" lay-text="{:lang('已激活')}|{:lang('已禁用')}" lay-filter="StatusSwitch" lay-skin="switch" {{-d.status>0?'checked':''}}>
|
||||
{{# }else{ }}
|
||||
{{-d.status ? '<b class="color-green">{:lang('已激活')}</b>' : '<b class="color-red">{:lang('已禁用')}</b>'}}
|
||||
{{# } }}
|
||||
<!--{else}-->
|
||||
{{-d.status ? '<b class="color-green">{:lang('已激活')}</b>' : '<b class="color-red">{:lang('已禁用')}</b>'}}
|
||||
<!--{/if}-->
|
||||
</script>
|
||||
|
||||
<!-- 列表排序权重模板 -->
|
||||
<script type="text/html" id="SortInputTpl">
|
||||
<input type="number" min="0" data-blur-number="0" data-action-blur="{:sysuri()}" 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="toolbar">
|
||||
|
||||
<!-- {if isset($type) and $type eq 'index'} -->
|
||||
<!-- {if auth('add')} -->
|
||||
{{# if(d.spt<2){ }}
|
||||
<a class="layui-btn layui-btn-sm layui-btn-primary" data-title="添加系统菜单" data-modal='{:url("add")}?pid={{d.id}}'>{:lang('添 加')}</a>
|
||||
{{# }else{ }}
|
||||
<a class="layui-btn layui-btn-sm layui-btn-disabled">{:lang('添 加')}</a>
|
||||
{{# } }}
|
||||
<!-- {/if} -->
|
||||
{if auth('edit')}
|
||||
<a class="layui-btn layui-btn-sm" data-event-dbclick data-title="编辑系统菜单" data-modal='{:url("edit")}?id={{d.id}}'>{:lang('编 辑')}</a>
|
||||
{/if}
|
||||
<!-- {else} -->
|
||||
{if auth('remove')}
|
||||
{{# if( (d.spc<1 || d.status<1)){ }}
|
||||
<a class="layui-btn layui-btn-sm layui-btn-danger" data-confirm="确定要删除菜单吗?" data-action="{:url('remove')}" data-value="id#{{d.sps}}">删 除</a>
|
||||
{{# }else{ }}
|
||||
<a class="layui-btn layui-btn-disabled layui-btn-sm">删 除</a>
|
||||
{{# } }}
|
||||
{/if}
|
||||
<!-- {/if} -->
|
||||
|
||||
</script>
|
||||
{/block}
|
||||
Reference in New Issue
Block a user