style: 优化css样式,全局使用show.xx消息提示

This commit is contained in:
Ying
2023-08-04 11:06:34 +08:00
parent 515212e5d7
commit 066307c800
39 changed files with 566 additions and 751 deletions

View File

@@ -129,10 +129,11 @@
<div class="layui-input-block">
<div class="layui-upload-logo">
<dl>
<dt> <img class="logo" src="{$config.site_logo}" alt="{:__('站点LOGO')}">
<dt>
<img class="logo" src="{$config.site_logo|default='/static/images/loading/loading-form.gif'}"
alt="{:__('站点LOGO')}">
</dt>
<dd class="layui-badge"
onclick="javascript:layer.msg('好像没写代码!','error')">{:__('删除')}</dd>
<dd class="layui-badge" id="delLogo">{:__('删除')}</dd>
</dl>
</div>
</div>
@@ -1805,32 +1806,34 @@
<include file="/public/footer" />
<script>
layui.use(['form', 'jquery', 'admin'], function () {
layui.use(['jquery'], function () {
let $ = layui.jquery;
var form = layui.form;
var admin = layui.admin;
var jquery = layui.jquery;
$('#delLogo').click(function() {
$('input.logo').val('');
$('img.logo').attr('src', '/static/images/loading/loading-form.gif');
});
// 增加变量
jquery('.layui-variable-add').on('click', function () {
var html = '<tr>';
$('.layui-variable-add').on('click', function () {
let html = '<tr>';
html += '<td><input type="text" class="layui-input layui-variable-key" lay-verify="required" ><\/td>';
html += '<td><input type="text" class="layui-input layui-variable-value"><\/td>';
html += '<td><button type="button" class="layui-btn layui-btn-primary layui-btn-sm"><i class="layui-icon layui-icon-delete"><\/i><\/button><\/td>';
html += '<\/tr>';
jquery('#layui-variable-content').append(html);
$('#layui-variable-content').append(html);
})
// 改变表单值
jquery('body').on('change', '.layui-variable-key', function () {
var that = jquery(this),
$('body').on('change', '.layui-variable-key', function () {
let that = $(this),
name = 'variable[' + that.val() + ']';
jquery(that).parents('tr').find('.layui-variable-value').attr('name', name);
$(that).parents('tr').find('.layui-variable-value').attr('name', name);
})
// 删除自定义变量
jquery('body').on('click', '#layui-variable-content .layui-btn', function () {
jquery(this).parents('tr').remove();
$('body').on('click', '#layui-variable-content .layui-btn', function () {
$(this).parents('tr').remove();
})
});
</script>

View File

@@ -33,22 +33,22 @@
<div class="layui-col-md4">
<div class="layui-admin-workplace">
<div class="workplace-header">
<span><i class="layui-icon layui-icon-list"></i>文章数</span>
<span><i class="layui-icon layui-icon-list"></i>通知</span>
</div>
<div class="workplace-content">{$workplace.article|default=26}</div>
<div class="workplace-content">{$workplace.notice|default=26}</div>
</div>
<div class="layui-admin-workplace">
<div class="workplace-header">
<span><i class="layui-icon layui-icon-date date"></i>审核</span>
<span><i class="layui-icon layui-icon-date date"></i>办项</span>
</div>
<div class="workplace-content">{$workplace.check|default="12/56"}</div>
<div class="workplace-content">{$todoList}/{$workplace.todo}</div>
</div>
<div class="layui-admin-workplace">
<div class="workplace-header">
<span><i class="layui-icon layui-icon-notice notice"></i>评论数</span>
<span><i class="layui-icon layui-icon-notice notice"></i>消息</span>
</div>
<div class="workplace-content">{$workplace.comment|default="2,352"}</div>
<div class="workplace-content">{$workplace.message|default="2,352"}</div>
</div>
</div>
</div>
@@ -99,7 +99,7 @@
</div>
</div>
<div class="layui-col-xs6 layui-col-sm6">
<div class="layui-card smallblock" sa-event="tabs" data-url="{:url('/index/analysis')}"
<div class="layui-card smallblock" sa-event="tabs" data-url="{:url('/Index/analysis')}"
data-title="{:__('分析页')}">
<div class="layui-card-body">
<div class="layui-small-block">
@@ -114,7 +114,7 @@
<div class="layui-col-md4">
<div class="layui-row layui-col-space10" style="margin-bottom: 5px;">
<div class="layui-col-xs6 layui-col-sm6">
<div class="layui-card smallblock" sa-event="tabs" data-url="{:url('/index/monitor')}"
<div class="layui-card smallblock" sa-event="tabs" data-url="{:url('/Index/monitor')}"
data-title="{:__('监控页')}">
<div class="layui-card-body">
<div class="layui-small-block">
@@ -151,7 +151,7 @@
</div>
</div>
<div class="layui-col-xs6 layui-col-sm6">
<div class="layui-card smallblock" sa-event="tabs" data-url="{:url('/index/baseCfg')}"
<div class="layui-card smallblock" sa-event="tabs" data-url="{:url('/Index/baseCfg')}"
data-title="{:__('基本设置')}">
<div class="layui-card-body">
<div class="layui-small-block">
@@ -290,7 +290,6 @@
</div>
</div>
</div>
<table class="layui-hide" id="ID-treeTable-demo"></table>
</div>
<script src="__STATICADMIN__module/echarts/echarts.js"></script>
<script src="__STATICADMIN__module/echarts/echarts-wordcloud.js"></script>
@@ -299,36 +298,11 @@
<include file="/public/footer"/>
<script>
layui.use(['jquery','layer','treeTable'], function () {
layui.use(['jquery','show'], function () {
let $ = layui.jquery;
let layer = layui.layer;
let treeTable = layui.treeTable;
var inst = treeTable.render({
elem: '#ID-treeTable-demo',
url: '/static/demo-1.json?page=1&limit=10', // 此处为静态模拟数据,实际使用时需换成真实接口
tree: {
customName: {
icon: 'icon2',
name: 'title'
},
},
maxHeight: '501px',
toolbar: '#TPL-treeTable-demo',
cols: [[
{type: 'checkbox', fixed: 'left'},
{field: 'id', title: 'ID', width: 80, sort: true, fixed: 'left'},
{field: 'name', title: '用户名', width: 180, fixed: 'left'},
{field: 'experience', title: '积分', width: 90, sort: true},
{field: 'sex', title: '性别', width: 80, sort: true},
{field: 'score', title: '评分', width: 80, sort: true},
{field: 'city', title: '城市'},
{ fixed: "right", title: "操作", width: 181, align: "center", toolbar: "#TPL-treeTable-demo-tools"}
]],
page: true
});
let show = layui.show;
/**
* 用户统计报表
* @type {string}
@@ -354,7 +328,7 @@
$(that).addClass('active');
}
else {
layer.info(res.msg);
show.info(res.msg);
}
}
})

View File

@@ -28,14 +28,15 @@
}
</style>
<script>
let _global_ = {
let app_Config = {
app: "{$app|default='admin.php'}",
controller: "{$controller|default='index'}",
action: "{$action|default='index'}",
api: "{:config('app.api_url')}"
api: "{:config('app.api_url')}",
version: "{:config('app.version')}",
};
let _upload_chunkSize = {:saenv('upload_chunk_size')};
let upload_chunkSize = {:saenv('upload_chunk_size')};
</script>
<body class="layui-layout-body">
<div class="layui-layout layui-layout-admin">

View File

@@ -192,10 +192,11 @@
<script src="__STATICADMIN__js/common.js?v={:release()}"></script>
<script>
window.sessionStorage.clear();
layui.use(['layer','form'],function() {
layui.use(['layer','form','show'],function() {
var $ = layui.jquery,
layer = layui.layer,
form = layui.form,
show = layui.show,
captchaUrl = '{:captcha_src()}';
// 登录操作
@@ -223,11 +224,11 @@
email = $('input[name="email"]').val();
if (pass !== repass) {
layer.msg("{:__('两次输入密码不同')}",'error');
show.error('两次输入密码不同');
return false;
}
layer.msg("{:__('数据提交中...')}",'warning');
show.info('数据提交中...');
that.prop('disabled', true);
$_ajax(that,{name: name, pwd: pass, email:email,captcha: captcha});
return false;
@@ -310,7 +311,7 @@
valicode = $('input[name="valicode"]').val();
if (pass != repass) {
layer.msg("{:__('两次输入密码不同')}",'error')
show.error('两次输入密码不同');
return false;
}
@@ -319,12 +320,12 @@
url: "{:url('/login/setpwd')}",
data: {name:name,pass:pass,valicode:valicode},
success: function (res) {
if(res.code == 200){
if(res.code === 200){
layer.msg(res.msg,function(){
location.reload();
});
}else {
layer.error(res.msg);
show.error(res.msg);
}
}
})
@@ -352,7 +353,7 @@
}
}else {
layer.error(res.msg);
layui.show.error(res.msg);
that.prop('disabled', false);
$("#captchaImg,#captchaImg2,#captchaImg3").attr('src',captchaUrl+'?rand='+Math.random()).parents('.layui-form-item').show();
return false;

View File

@@ -17,14 +17,15 @@
<![endif]-->
</head>
<script>
var _global_ = {
let app_Config = {
app: "{$app|default='/admin'}",
controller: "{$controller|default='index'}",
action: "{$action|default='index'}",
api: "{:config('app.api_url')}"
version: "{:config('app.version')}",
api: "{:config('app.api_url')}",
};
var _upload_chunkSize = {:saenv('upload_chunk_size')};
let upload_chunkSize = {:saenv('upload_chunk_size')};
</script>
<body>

View File

@@ -297,7 +297,7 @@
layer.msg("{:__('上传成功')}");
})
} else {
layer.error(res.msg);
layui.show.error(res.msg);
}
}
@@ -348,7 +348,7 @@
elem += '</span>';
$('.layui-badge-list').append(elem);
} else {
layer.error(res.msg);
layui.show.error(res.msg);
}
})
})
@@ -365,7 +365,7 @@
if (res.code === 200) {
that.parent('span').remove();
} else {
layer.error(res.msg);
layui.show.error(res.msg);
}
})
})

View File

@@ -190,7 +190,7 @@
_pageUrl = _form.attr("action") || pageThat.data('url');
pageThat.attr("disabled",true);
if (typeof(_pageUrl) === 'undefined') {
layer.msg('缺少URL属性','error');
layer.msg('缺少URL属性');
return false;
}
@@ -211,7 +211,7 @@
// 关闭当前窗口
layer.close(colletction.index);
}else{
layer.error(res.msg);
layui.show.error(res.msg);
}
}, 'json');
@@ -263,7 +263,7 @@
_pageUrl = _form.attr("action") || pageThat.data('url');
pageThat.attr("disabled",true);
if (typeof(_pageUrl) === 'undefined') {
layer.msg('缺少URL属性','error');
layer.msg('缺少URL属性');
return false;
}
@@ -284,7 +284,7 @@
// 关闭当前窗口
layer.close(colletction.index);
}else{
layer.error(res.msg);
layui.show.error(res.msg);
}
}, 'json');

View File

@@ -186,9 +186,9 @@
<!-- // 列表编辑框 -->
<script type="text/html" id="tableBar">
<if (check_admin_auth(url("/system/admin/edit")))>
<a class="layui-table-text" data-title="{:__('编辑')} {{d.name}}" callback="edits" data-url="#adminforms" data-area="690px,500px" lay-event="edit" >{:__('编辑')}</a>
<div class="layui-divider layui-divider-vertical"></div>
<if (has_admin_auth(url("/system/admin/edit")))>
<a class="layui-table-text" data-title="{:__('编辑')} {{d.name}}" callback="edits" data-url="#adminforms" data-area="690px,500px" lay-event="edit" >{:__('编辑')}</a>
<div class="layui-divider layui-divider-vertical"></div>
</if>
<a class="layui-table-text" data-title="{:__('访问权限')}"
callback="rulecates" data-url="#authForms" data-area="300px,80%" lay-event="rules" >{:__('权限')}</a>
@@ -343,7 +343,7 @@
pageThat.attr("disabled",true);
}
else {
layer.error(res.msg);
layui.show.error(res.msg);
}
}, 'json');
@@ -373,8 +373,6 @@
showCheckbox: true,
})
// tree.setChecked('authTree', tableThis.data[event].length ? tableThis.data[event].map(Number): []);
// 监听权限提交
form.on("submit(submitPage)", function (post) {
@@ -396,7 +394,7 @@
layer.close(colletction.index);
clickthis.attr("disabled", true);
} else {
layer.error(res.msg);
layui.show.error(res.msg);
}
}, 'json');

View File

@@ -25,8 +25,7 @@
lay-filter="treeSearch" lay-submit><i class="layui-icon layui-icon-search"></i>{:__('搜索')}
</button>
<!-- // 打开添加页面 -->
<button class="layui-btn icon-btn" lay-open="" data-title="{:__('添加菜单')}"
callback="add" data-disable="true" data-area="680px,380px" data-url="#editforms" >
<button class="layui-btn icon-btn" lay-open="" data-title="{:__('添加菜单')}" data-area="700px,410px" data-url="{:url('/system/AdminRules/add')}" >
<i class="layui-icon layui-icon-add-1"></i>{:__('添加')}
</button>
<button class="layui-btn layui-btn-primary icon-btn" id="expandAll" ><i class="layui-icon layui-icon-templeate-1"></i>{:__('展开全部')}</button>
@@ -38,103 +37,33 @@
<!-- // 创建数据表实例 -->
<table class="layui-hide" id="lay-tableList" lay-filter="lay-tableList"></table>
</div>
</div>
<!-- // 添加编辑数据 -->
<script type="text/html" id="editforms" >
<div class="layui-fluid layui-bg-white">
<form class="layui-form" lay-filter="editforms" >
<input type="text" name="id" hidden="">
<div class="layui-form-item">
<label class="layui-form-label">{:__('上级菜单')}</label>
<div class="layui-input-inline">
<div id="treeNode" name="pid" lay-filter="treeNode" ></div>
</div>
<label class="layui-form-label"><font color="red">* </font>{:__('')}</label>
<div class="layui-input-inline">
<input name="alias" placeholder="{:__('system:Target:index')}" type="text" disabled class="layui-input alias layui-disabled" lay-verify="required" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span style="color: red; ">* </span>{:__('')}</label>
<div class="layui-input-inline">
<input name="title" placeholder="{:__('请输入菜单名称')}" type="text" class="layui-input" lay-verify="required" />
</div>
<label class="layui-form-label">{:__('排序号')}</label>
<div class="layui-input-inline">
<input name="sort" placeholder="{:__('默认自动生成')}" type="number" class="layui-input" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">{:__('菜单图标')}</label>
<div class="layui-input-inline">
<input name="icon" placeholder="{:__('请选择菜单图标')}" id="iconPicker" type="text" class="layui-input" />
</div>
<label class="layui-form-label">{:__('菜单类型')}</label>
<div class="layui-input-inline" style="white-space: nowrap;">
<input name="type" type="radio" value="0" title="{:__('菜单')}" lay-tips="* 菜单默认就是路由地址!" />
<input name="type" type="radio" value="1" title="{:__('按钮')}" lay-tips="* 按钮不会当作菜单显示!" checked />
<input name="type" type="radio" value="2" title="{:__('接口')}" lay-tips="* 接口用户上传等API场景"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span style="color: red; ">* </span>{:__('')}</label>
<div class="layui-input-inline">
<input name="router" placeholder="{:__('/system/Target/index')}" type="text" class="layui-input router" lay-verify="required" />
</div>
<label class="layui-form-label"><span style="color: red; ">* </span>{:__('')}</label>
<div class="layui-input-inline">
<input name="auth" type="radio" value="1" title="{:__('开启')}" checked/>
<input name="auth" type="radio" value="0" title="{:__('关闭')}"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span style="color: red; ">* </span>{:__('')}</label>
<div class="layui-input-inline" style="width: 500px">
<input name="condition" placeholder="{:__('请输入正则表达式,适合通配符校验')}" type="text" class="layui-input" />
</div>
</div>
<div class="layui-footer layui-form-item layui-center " >
<button class="layui-btn layui-btn-primary" type="button" sa-event="closePageDialog" >{:__('取消')}</button>
<button class="layui-btn" lay-add="{:url('/system/AdminRules/add')}" lay-edit="{:url('/system/AdminRules/edit')}" lay-filter="submitPage" lay-submit>{:__('提交')}</button>
</div>
</form>
</div>
</script>
<!-- // 列表工具栏 -->
<script type="text/html" id="tableBar">
<!-- 注意添加的回调函数里面 增加了data-disable="true"属性也就是不会执行form.val方法 -->
<a class="layui-table-text" data-title="{:__('添加菜单')}" data-url="#editforms"
data-area="668px,380px" callback="add" data-disable="true" lay-event="add" >{:__('添加')}</a>
<a class="layui-table-text" lay-open data-title="{:__('添加菜单')}" data-url="{:url('/system/AdminRules/add')}?pid={{d.id}}"
data-area="700px,410px" >{:__('添加')}</a>
<div class="layui-divider layui-divider-vertical"></div>
<a class="layui-table-text" data-title="{:__('编辑菜单')}" data-area="668px,380px" data-url="#editforms" lay-event="edit" callback="edit" >{:__('编辑')}</a>
<a class="layui-table-text" lay-open data-title="{:__('编辑菜单')}" data-url="{:url('/system/AdminRules/edit')}?id={{d.id}}"
data-area="700px,410px" >{:__('编辑')}</a>
<div class="layui-divider layui-divider-vertical"></div>
<a class="layui-table-text" data-url="{:url('/system/AdminRules/del')}?id={{d.id}}" lay-event="del" >{:__('删除')}</a>
</script>
<script src="__STATICADMIN__module/xmselect/xmselect.js?v={:release()}"></script>
<include file="/public/footer" />
<script>
layui.use(['admin','form','treeTable','iconPicker'], function () {
layui.use(['form','treeTable'], function () {
var jquery = layui.jquery;
var admin = layui.admin;
var form = layui.form;
var table = layui.table;
var treeTable = layui.treeTable;
var iconPicker = layui.iconPicker;
var tableURL = "{:url('/system/AdminRules/index')}";
let $ = layui.jquery;
let form = layui.form;
let treeTable = layui.treeTable;
let tableURL = "{:url('/system/AdminRules/index')}";
// 渲染初始化表格
var renderTable = function (tableURL) {
let renderTable = function (tableURL) {
treeTable.render({
id: 'lay-tableList',
elem: '#lay-tableList',
url: tableURL,
tree: {
@@ -156,13 +85,13 @@
{field: 'router', title: '{:__("路由地址")}'},
{field: 'alias', title: '{:__("权限标识")}'},
{field: 'auth', width: 80,title: '{:__("鉴权")}',templet: function(d) {
var strs = ['<font color="red">{:__("否")}</font>', '<span>{:__("是")}</span>'];
let strs = ['<font color="red">{:__("否")}</font>', '<span>{:__("是")}</span>'];
return strs[d.auth];
}, align: 'center'
},
{
field: 'type',title: '{:__("类型")}', width: 80, templet: function (d) {
var strs = ['<span class="layui-badge layui-bg-blue">{:__("菜单")}</span>',
let strs = ['<span class="layui-badge layui-bg-blue">{:__("菜单")}</span>',
'<span class="layui-badge layui-bg-gray">{:__("按钮")}</span>',
'<span class="layui-badge layui-bg-cyan">{:__("接口")}</span>',
'<span class="layui-badge">{:__("系统")}</span>'
@@ -180,9 +109,9 @@
// 监听搜索 serialize
form.on('submit(treeSearch)',function(data) {
var whereURL = '',
let whereURL = '',
field = data.field;
for (var key in field ) {
for (let key in field ) {
whereURL += key + '=' + field[key];
whereURL += '&';
}
@@ -193,177 +122,19 @@
renderTable(whereURL);
})
/*
* 编辑回调函数示例
* 这个是默认编辑框的回调函数
* 默认返回当前点击元素对象、数据合集、配置项
*/
admin.callback.edit = function(clickthis,colletction,config) {
// 渲染选择器
draSelect(colletction.tableThis);
// 渲染图标
draIcon();
// 监听改变
inputchange();
// 监听提交
listenPost(colletction);
}
/*
* 添加的回调函数
*/
admin.callback.add = function(clickthis,colletction,config) {
// 渲染选择器
draSelect(colletction.tableThis);
// 渲染图标
draIcon();
// 监听改变
inputchange();
// 监听提交
listenPost(colletction);
}
// 渲染权限select元素
var draSelect = function(tableThis, subadd) {
var checkedId = [];
if (typeof(tableThis) !== "undefined") {
if (tableThis.event === 'add') {
checkedId.push(tableThis.data.id);
} else {
// 这里需要自己判断pid是否等于0否则会报错
if (tableThis.data.pid !== 0) {
checkedId.push(tableThis.data.pid);
}
}
}
var select = xmSelect.render({
el: '#treeNode',
tips: '请选择上级菜单',
name: 'pid',
height: 'auto',
data: table.cache['lay-tableList'],
radio: true,
clickClose: true,
initValue: checkedId,
prop: {
value: 'id',
name:'title'
},
tree: {
show: true,
strict: false,
showLine: false,
clickExpand: false,
},
model: {
icon: 'hidden',
label: {
type: 'text'
}
},
theme: {
color: '#1890FF'
}
})
}
// 渲染图标元素
var draIcon = function() {
iconPicker.render({
elem: '#iconPicker',
type: 'fontClass',
search: true,
cellWidth: "19%",
page: true,
limit: 12,
click: function(data) { // 点击回调
jquery('#iconPicker').val(data.icon);
},
success: function(d) { // 渲染成功后的回调
//console.log(d);
}
});
}
// 监听input表单
var inputchange = function() {
jquery('.router').bind('input propertychange change',function(data){
let router = jquery('.router').val();
let first = router.substr(0, 1);
if (first !== '/') {
jquery('.router').val('/');
return layui.layer.error('路由必须以/符号开始');
}
router = router.substring(1);
jquery('.alias').val(router.replaceAll('/',':'));
})
}
// 监听提交
var listenPost = function(colletction) {
var tableThis = colletction.tableThis;
form.on("submit(submitPage)",function(post){
var pageThat = jquery(this);
pageThat.attr("disabled",true);
// 获取提交地址
var _pageUrl;
if (typeof (tableThis) !== 'undefined') {
_pageUrl = tableThis.event === 'edit' ? pageThat.attr('lay-edit') : pageThat.attr('lay-add');
} else {
_pageUrl = pageThat.attr('lay-add');
}
if (typeof(_pageUrl) === 'undefined') {
layer.msg('按钮缺少 url 属性','info');
return false;
}
// 开始POST提交数据
jquery.post(_pageUrl,
post.field, function(res){
if (res.code === 200) {
layer.msg(res.msg);
treeTable.reloadData('lay-tableList');
// 调用接口更新菜单
top.layui.admin.reloadLayout();
// 关闭当前窗口
layer.close(colletction.index);
}else {
layer.error(res.msg);
}
}, 'json');
return false;
})
}
// 展开所有
jquery('#expandAll').click(function(){
$('#expandAll').click(function(){
treeTable.expandAll('lay-tableList', true);
})
// 折叠所有
jquery('#foldAll').click(function () {
$('#foldAll').click(function () {
treeTable.expandAll('lay-tableList',false);
});
// 执行初始化
renderTable(tableURL);
});
</script>

View File

@@ -0,0 +1,164 @@
<include file="/public/header"/>
<div class="layui-fluid">
<form class="layui-form layui-form-fixed">
<input type="text" name="id" value="{$data.id|default=0}" hidden="">
<div class="layui-form-item">
<label class="layui-form-label">{:__('上级菜单')}</label>
<div class="layui-input-inline">
<div id="treeNode" name="pid" lay-filter="treeNode" data-pid="{$data.pid|default=0}"></div>
</div>
<label class="layui-form-label">{:__('排序号')}</label>
<div class="layui-input-inline">
<input name="sort" placeholder="{:__('默认自动生成')}" type="number" value="{$data.sort}" class="layui-input"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span style="color: red; ">* </span>{:__('菜单名称')}</label>
<div class="layui-input-inline">
<input name="title" placeholder="{:__('请输入菜单名称')}" type="text" class="layui-input"
value="{$data.title}"
lay-verify="required"/>
</div>
<label class="layui-form-label">{:__('菜单图标')}</label>
<div class="layui-input-inline">
<input name="icon" placeholder="{:__('请选择菜单图标')}" id="iconPicker" type="text"
value="{$data.icon}"
class="layui-input"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span style="color: red; ">* </span>{:__('路由地址')}</label>
<div class="layui-input-inline">
<input name="router" placeholder="{:__('/system/Target/index')}" type="text" class="layui-input router"
value="{$data.router}"
lay-verify="required"/>
</div>
<label class="layui-form-label"><font color="red">* </font>{:__('菜单类型')}</label>
<div class="layui-input-inline" style="white-space: nowrap;">
<input name="type" type="radio" value="0" title="{:__('菜单')}"
<if condition="$data.type eq 0">checked</if>
lay-tips="* 菜单默认就是路由地址!"/>
<input name="type" type="radio" value="1" title="{:__('按钮')}"
<if condition="$data.type eq 1">checked</if>
lay-tips="* 按钮不会当作菜单显示!" >
<input name="type" type="radio" value="2" title="{:__('接口')}"
<if condition="$data.type eq 2">checked</if>
lay-tips="* 接口用户上传等API场景"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">{:__('权限标识')}</label>
<div class="layui-input-inline">
<input name="alias" placeholder="{:__('system:Target:index')}" type="text" disabled
value="{$data.alias}"
class="layui-input alias layui-disabled" lay-verify="required"/>
</div>
<label class="layui-form-label"><span style="color: red; ">* </span>{:__('是否鉴权')}</label>
<div class="layui-input-inline">
<input name="auth" type="radio" value="1" title="{:__('开启')}"
<if condition="$data.auth eq 1">checked</if> />
<input name="auth" type="radio" value="0" title="{:__('关闭')}"
<if condition="$data.auth eq 0">checked</if> />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span style="color: red; ">* </span>{:__('正则模式')}</label>
<div class="layui-input-inline" style="width: 500px">
<input name="condition" placeholder="{:__('请输入正则表达式,适合通配符校验')}" type="text"
value="{$data.condition}"
class="layui-input"/>
</div>
</div>
<div class="layui-footer layui-form-item layui-center ">
<button class="layui-btn layui-btn-primary" type="button" sa-event="closePageDialog">{:__('取消')}</button>
<button class="layui-btn" lay-filter="submit" lay-submit >{:__('提交')}</button>
</div>
</form>
</div>
<script src="__STATICADMIN__module/xmselect/xmselect.js?v={:release()}"></script>
<include file="/public/footer"/>
<script>
layui.use(['jquery', 'iconPicker','form'],function() {
let $ = layui.jquery;
let show = layui.show;
let form = layui.form;
let iconPicker = layui.iconPicker;
let data = {$rules|raw};
// 提交参数
form.on("submit(submit)",function(data){
$.post("{:Url('/system/AdminRules/')}"+app_Config.action,data.field,function(res){
if(res.code === 200){
show.msg(res.msg);
parent.layui.table.reloadData('lay-tableList');
parent.layer.closeAll();
// 调用接口更新菜单
top.layui.admin.reloadLayout();
}else{
show.error(res.msg);
}
});
return false;
})
xmSelect.render({
el: '#treeNode',
tips: '请选择上级菜单',
name: 'pid',
height: '260px',
data: data,
radio: true,
clickClose: true,
initValue:[$('#treeNode').data('pid')],
prop: {
value: 'id',
name:'title'
},
tree: {
show: true,
strict: false,
showLine: false,
clickExpand: false,
},
model: {
icon: 'hidden',
label: {
type: 'text'
}
},
theme: {
color: '#1890FF'
}
})
iconPicker.render({
elem: '#iconPicker',
type: 'fontClass',
search: true,
cellWidth: "19%",
page: true,
limit: 12,
// 点击回调
click: function(data) { // 点击回调
$('#iconPicker').val(data.icon);
},
success: function(d) { // 渲染成功后的回调
}
});
$('.router').bind('input change',function(data){
let router = $('.router').val();
router = router.substring(1);
$('.alias').val(router.replaceAll('/',':'));
})
})
</script>

View File

@@ -197,7 +197,7 @@
let layout = admin.getStorage('layout')
if (layout === 'top' || layout === 'hybrid') {
$(".moreLabel").prop("checked", true);
layer.msg('当前菜单布局不支持该操作!','error');
layer.msg('当前菜单布局不支持该操作!');
form.render();
return false;
}

View File

@@ -230,7 +230,7 @@
if (res.code === 200) {
layer.msg(res.msg);
} else {
layer.error(res.msg);
layui.show.error(res.msg);
}
}
});
@@ -249,7 +249,7 @@
layer.msg(res.msg);
$('.layui-instant-list-item').removeClass('active_0').addClass('active_1');
} else {
layer.error(res.msg);
layui.show.error(res.msg);
}
}
});

View File

@@ -44,56 +44,4 @@
<a class="layui-table-text" data-url="{{d.url}}" lay-event="choose" >{:__('选择')}</a>
</script>
<include file="/public/footer" />
<script>
layui.use(['layer','fileManager','jquery'], function () {
let $ = layui.jquery;
/**
* 选择文件
*/
/*table.on('tool(lay-tableList)', function (obj) {
let field = $('#choose_filed').val() || undefined;
let type = $('#choose_type').val() || undefined;
if (!field) {
return layer.info('图片信息不存在');
}
if (type === 'images') {
let o = parent.layui.$('img.' + field);
o.prop('src', obj.data.url);
o.parent('div').removeClass('layui-hide');
parent.layui.$(o).parents('.layui-upload-drag').find('p,i,hr').addClass('layui-hide');
parent.layui.$('input.' + field).val(obj.data.url);
} else if (type === 'multiple') {
let boxList = parent.layui.$('[lay-choose="' + field + '"]').parents('.layui-imagesbox').find('.layui-input-inline');
let length = boxList.length;
$(boxList).each(function (i, item) {
$(item).find('input.layui-hide').prop('name', field + '[' + i + '][src]');
$(item).find('input.layui-input').prop('name', field + '[' + i + '][title]');
})
let html = '<div class="layui-input-inline layui-uplpad-image">';
html += '<img src="' + obj.data.url + '" >';
html += '<input type="text" name="' + field + '[' + (length - 1) + '][src]" class="layui-hide" value="' + obj.data.url + '">';
html += '<input type="text" name="' + field + '[' + (length - 1) + '][title]" class="layui-input" placeholder="图片简介">';
html += '<span class="layui-badge layui-badge-red" onclick="layui.$(this).parent().remove();">删除</span></div>';
let elem = parent.layui.$('[lay-upload="' + field + '"]');
parent.layui.$(elem).parent().before(html);
parent.layui.$(elem).parents('form').find('input#' + field + '_clear').remove();
} else {
parent.layui.$('input.' + field).val(obj.data.url);
}
parent.layer.closeAll();
});
*/
})
</script>
<include file="/public/footer" />

View File

@@ -228,7 +228,7 @@
if (typeof(_pageUrl) === 'undefined') {
layer.msg('按钮缺少 url 属性','info');
layer.msg('按钮缺少 url 属性');
return false;
}
@@ -242,7 +242,7 @@
layer.close(colletction.index);
}
else {
layer.error(res.msg);
layui.show.error(res.msg);
}
}, 'json');

View File

@@ -248,7 +248,7 @@
pageThat.attr("disabled",true);
}
else {
layer.error(res.msg,'error');
layui.show.error(res.msg);
}
}, 'json');

View File

@@ -8,8 +8,7 @@
<div class="layui-card-header layadmin-card-header-auto ">
<blockquote class="layui-elem-quote pluginCenter"> 插件管理:
<span style="margin-left: 12px">在线安装、卸载、禁用、启用、配置、升级插件,插件升级前请做好备份并确保服务器读写权限正确</span>
<span class="fr"><i class="layui-icon fa-user" onclick="layui.plugin.clearLogin();"
title="退出登录"></i></span>
<span class="fr"><i class="layui-icon fa-sign-out" onclick="layui.plugin.clearLogin();" title="退出登录"></i></span>
</blockquote>
<div class="layui-form">
<div class="layui-form-item">
@@ -83,19 +82,20 @@
{{# } }}
{{# if(d.version > item.version) { }}
<span class="layui-upgrade-elem">
<a class="layui-table-text upgrade"
data-url="{:url('/system/plugin/config')}?name={{d.name}}">{:__('升级')} <span
class="layui-badge-dot"></span></a>
<div class="layui-divider layui-divider-vertical"></div>
</span>
<a class="layui-table-text upgrade"
data-url="{:url('/system/plugin/config')}?name={{d.name}}">{:__('升级')} <span
class="layui-badge-dot"></span></a>
<div class="layui-divider layui-divider-vertical"></div>
</span>
{{# } }}
<a class="layui-table-text uninstall" style="color:red"
data-url="{:url('/system/plugin/uninstall')}?name={{d.name}}">{:__('卸载')}</a>
{{# } else { }}
<a class="layui-table-text install" data-url="{:url('/system/plugin/install')}?name={{d.name}}">{:__('安装')}</a>
{{# if(d.demourl) { }}
<a class="layui-table-text install" data-url="{:url('/system/plugin/install')}?name={{d.name}}">
{:__('安装')} <i class="layui-icon layui-icon-down layui-hide"></i></a>
{{# if(d.demo_url) { }}
<div class="layui-divider layui-divider-vertical"></div>
<a class="layui-table-text" target="_blank" href="{{d.demourl}}">{:__('演示')}</a>
<a class="layui-table-text" target="_blank" href="{{d.demo_url}}">{:__('演示')}</a>
{{# } }}
{{# } }}
</script>
@@ -104,11 +104,10 @@
<script>
layui.use(['admin', 'table', 'plugin', 'dropdown', 'jquery'], function () {
let plugin = layui.plugin;
let $ = layui.jquery;
let plugin = layui.plugin;
let table = layui.table;
let dropdown = layui.dropdown;
window.framework = "{:config('app.version')}";
window.plugins = {$plugin|raw};
/*
* 初始化表格
@@ -136,7 +135,7 @@
},
{
field: 'title', align: 'left', width: 200, templet: function (d) {
let html = '<a target="_blank" href="' + d.readurl + '">' + d.title + '</a>';
let html = '<a target="_blank" href="' + d.read_url + '">' + d.title + '</a>';
if (d.album) {
html += '<i class="layui-icon layui-icon-picture"></i>';
}
@@ -189,38 +188,59 @@
, done: function (res, curr, count) {
let data = res.data;
for (const dataKey in data) {
let dropArray = [];
let item = plugins[data[dataKey].name];
if (typeof item == 'undefined') {
continue;
}
let verInfo = data[dataKey].verInfo;
for (const verInfoKey in verInfo) {
let v1 = item.version.replaceAll('.', '');
let v2 = verInfo[verInfoKey].version.replaceAll('.', '');
if (v2 > v1) {
dropArray.push({
name: data[dataKey].name,
title: verInfo[verInfoKey].version,
v: verInfo[verInfoKey].version,
pluginName: data[dataKey].title,
for (const index in data) {
let value = data[index];
let item = plugins[value.name];
let dropList = [];
let versionList = value.versions;
if (typeof item == 'undefined' && versionList.length) {
if (versionList.length === 1) {
continue;
}
for (const key in versionList) {
dropList.push({
name: value.name,
title: versionList[key].version,
version: versionList[key].version
});
}
}
if (dropArray.length >= 1) {
let elem = $('tr[data-index="' + index + '"]').find('.install');
$(elem).find('i').removeClass('layui-hide');
dropdown.render({
elem: $('tr[data-index="' + dataKey + '"]').find('.upgrade')
elem: elem
, trigger: 'hover'
, align: 'center'
, data: dropArray
, data: dropList
, className: 'install-version'
, click: function (data) {
plugin.upgrade(data);
plugin.install(data.name, data.version);
}
, className: 'upgrade-version'
});
} else {
for (const key in versionList) {
let v1 = item.version.replaceAll('.', '');
let v2 = versionList[key].version.replaceAll('.', '');
if (v2 > v1) {
dropList.push({
name: value.name,
pluginName: value.title,
title: versionList[key].version,
version: versionList[key].version
});
}
}
if (dropList.length) {
dropdown.render({
elem: $('tr[data-index="' + index + '"]').find('.upgrade')
, trigger: 'hover'
, align: 'center'
, data: dropList
, className: 'upgrade-version'
, click: function (data) {
plugin.upgrade(data); // 传递给升级按钮即可
}
});
}
}
}
}

View File

@@ -103,21 +103,21 @@
</script>
<!-- // 列表工具栏 -->
<script type="text/html" id="tableBar">
<a class="layui-table-text" data-title="{:__('编辑会员')}" data-url="#editforms" lay-event="edit">{:__('编辑')}</a>
<script type="text/html" id="tableBar">
<a class="layui-table-text" data-title="{:__('编辑会员')}" lay-auth data-url="#editforms" lay-event="edit">{:__('编辑')}</a>
<div class="layui-divider layui-divider-vertical"></div>
<a class="layui-table-text" data-url="{:url('/system/User/del')}?id={{d.id}}" lay-event="del">{:__('删除')}</a>
</script>
<include file="/public/footer" />
<script>
layui.use(['table'], function () {
layui.use(['table', 'show', 'notice'], function () {
var table = layui.table;
let table = layui.table;
/*
* 初始化表格
*/
var isTable = table.render({
let isTable = table.render({
elem: "#lay-tableList"
,url: "{:url('/system/User/index')}"
,page: true

View File

@@ -52,7 +52,7 @@
layer.msg(res.msg);
admin.event.closeDialog();
}else {
layer.error(res.msg);
layui.show.error(res.msg);
}
}
})