first commit

This commit is contained in:
2025-06-25 10:53:11 +08:00
commit 9f374011ae
1240 changed files with 181139 additions and 0 deletions
+121
View File
@@ -0,0 +1,121 @@
<form class="layui-form page-content p-4">
<h3 class="h3-title">功能菜单/节点</h3>
{if condition="$id eq 0"}
<table class="layui-table">
<tr>
<td class="layui-td-gray-3">父级菜单/节点<font>*</font></td>
<td>
<select name="pid" lay-verify="required" lay-reqText="请选择父级菜单/节点">
<option value="0">作为顶级菜单/节点</option>
{volist name=":set_recursion(admin_rule())" id="v"}
<option value="{$v.id}" {eq name="pid" value="$v.id" }selected="" {/eq}>{$v.title} </option>
{/volist}
</select>
</td>
<td class="layui-td-gray-3">菜单排序</td>
<td>
<input type="text" name="sort" value="0" placeholder="请输入数字,越小越靠前" autocomplete="off" class="layui-input">
</td>
</tr>
<tr>
<td class="layui-td-gray-3">菜单/节点名称<font>*</font></td>
<td>
<input type="text" name="title" lay-verify="required" autocomplete="off" placeholder="请输入菜单/节点名称" lay-reqText="请输入菜单/节点名称" class="layui-input">
</td>
<td class="layui-td-gray-3">菜单/节点URL</td>
<td>
<input type="text" name="src" placeholder="请输入菜单/节点URL,可空" autocomplete="off" class="layui-input">
</td>
</tr>
<tr>
<td class="layui-td-gray-3">操作日志名称<font>*</font></td>
<td>
<input type="text" name="name" lay-verify="required" placeholder="请输入操作日志名称" lay-reqText="请输入操作日志名称" autocomplete="off" class="layui-input">
</td>
<td class="layui-td-gray-3">是否左侧菜单<font>*</font></td>
<td>
<input type="radio" name="menu" value="1" title="是">
<input type="radio" name="menu" value="2" title="不是">
</td>
</tr>
<tr>
<td class="layui-td-gray-3">左侧图标</td>
<td colspan="3">
<input type="text" name="icon" style="width:150px; display:inline" placeholder="请输入图标,可空" autocomplete="off" class="layui-input">
如:icon-jichuguanli<a href="{__METE__}/icon/index.html" target="_blank" style="margin-left:10px; color:#007AFF">[查看图标]</a>
</td>
</tr>
</table>
{else/}
<table class="layui-table">
<tr>
<td class="layui-td-gray-3">父级菜单/节点<font>*</font></td>
<td>
<select name="pid" lay-verify="required" lay-reqText="请选择父级菜单/节点">
<option value="0">作为顶级节点</option>
{volist name=":set_recursion(admin_rule())" 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-gray-3">菜单排序</td>
<td>
<input type="text" name="sort" value="{$detail.sort}" placeholder="请输入数字,越小越靠前" autocomplete="off" class="layui-input">
</td>
</tr>
<tr>
<td class="layui-td-gray-3">菜单/节点名称<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-gray-3">菜单/节点URL</td>
<td>
<input type="text" name="src" value="{$detail.src}" placeholder="请输入菜单/节点URL,可空" autocomplete="off" class="layui-input">
</td>
</tr>
<tr>
<td class="layui-td-gray-3">操作日志名称<font>*</font></td>
<td>
<input type="text" name="name" value="{$detail.name}" lay-verify="required" placeholder="请输入操作日志名称" lay-reqText="请输入操作日志名称" autocomplete="off" class="layui-input">
</td>
<td class="layui-td-gray-3">是否左侧菜单<font>*</font></td>
<td>
<input type="radio" name="menu" value="1" title="是" {eq name="$detail.menu" value="1"} checked{/eq}>
<input type="radio" name="menu" value="2" title="不是" {eq name="$detail.menu" value="2"} checked{/eq}>
</td>
</tr>
<tr>
<td class="layui-td-gray-3">左侧图标</td>
<td colspan="3">
<input style="width:150px; display:inline" type="text" name="icon" value="{$detail.icon}" placeholder="请输入图标,可空" autocomplete="off" class="layui-input">
如:icon-jichuguanli<a href="{__METE__}/icon/index.html" target="_blank" style="margin-left:10px; color:#007AFF">[查看图标]</a>
</td>
</tr>
</table>
{/if}
<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 type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</form>
<!-- /主体 -->
<script>
function openInit() {
let form = layui.form,
layer = layui.layer,
tool = layui.tool;
form.render();
//监听提交
form.on('submit(webform)', function (data) {
let callback = function (e) {
layer.msg(e.msg);
if (e.code == 0) {
location.reload();
}
}
tool.post("/admin/rule/add",data.field,callback);
return false;
});
}
</script>
+105
View File
@@ -0,0 +1,105 @@
{extend name="../../base/view/common/base"/}
{block name="breadcrumb"}
<span class="layui-breadcrumb">
<a href="http://www.meteteme.com/" target="_blank">江苏美天科技</a>
<a href="/home/user/setting">信息设置</a>
<a><cite>菜单节点</cite></a>
</span>
{/block}
<!-- 主体 -->
{block name="body"}
<div class="main-content">
{include file="../../base/view/common/submenu" /}
<div class="main-page-content">
<div class="layui-form-bar">
<button class="layui-btn layui-btn-sm add-menu">+ 添加菜单/节点</button>
</div>
<div>
<table class="layui-hide" id="treeTable" lay-filter="treeTable"></table>
</div>
</div>
</div>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script>
var ptable = null, treeGrid = null,rightpage=null, layer = null, tableId = "treeTable";
const moduleInit = ['tool','treeGrid'];
function gouguInit() {
treeGrid = layui.treeGrid;
tool = layui.tool;
layer = layui.layer;
ptable = treeGrid.render({
id: tableId
, elem: '#' + tableId
, idField: 'id'
, url: "/admin/rule/index"
, method :"get"
, cellMinWidth: 180
, treeId: 'id'//树形id字段名称
, treeUpId: 'pid'//树形父id字段名称
, treeShowName: 'title'//以树形式显示的字段
,heightRemove:[".dHead",24]//不计算的高度,表格设定的是固定高度,此项不生效
,height:'100%'
, cols: [[
{ field: 'id', width: 80, title: 'ID号', align: 'center'}
, { field: 'sort', width: 60, title: '排序',align: 'center'}
,{field:'icon',title: '菜单图标',width: 80, align: 'center' ,templet: function(d){
var html='<strong class="iconfont '+d.icon+'"></strong>';
return html;
}}
, { field: 'title', width: 150, title: '菜单/节点名称'}
, { field: 'pid', title: '父ID', width: 80, align: 'center' }
, { field: 'src', title: 'URL链接'}
, { field: 'menu', width: 90, title: '是否菜单',align: 'center', templet: function (d) {
var html = '<span style="color:#fbbc05">否</span>';
if(d.menu=='1'){
html = '<span style="color:#12bb37">是</span>';
}
return html;
}
}
, {field: 'name', width: 90, title: '日志名称',align: 'center'}
, {width: 200, title: '操作', align: 'center'
, templet: function (d) {
var html = '<span class="layui-btn-group"><button class="layui-btn layui-btn-xs" lay-event="add">添加子菜单/节点</button><button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="edit">编辑</button><button class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</button></span>';
return html;
}
}
]]
, page: false
});
//表头工具栏事件
$('.add-menu').on('click',function(){
tool.open('/admin/rule/add');
return;
});
//操作按钮
treeGrid.on('tool(' + tableId + ')', function (obj) {
if (obj.event === 'add') {
tool.open('/admin/rule/add?pid='+obj.data.id);
}
if (obj.event === 'edit') {
tool.open('/admin/rule/add?id='+obj.data.id);
}
if (obj.event === 'del') {
layer.confirm('确定要删除吗?', { icon: 3, title: '提示' }, function (index) {
let callback = function (e) {
layer.msg(e.msg);
if (e.code == 0) {
obj.del();
}
}
tool.delete("/admin/rule/delete",{ id: obj.data.id },callback);
layer.close(index);
});
}
return;
});
}
</script>
{/block}
<!-- /脚本 -->