实现view的扩展架构;调整think-view依赖;发布新版本

This commit is contained in:
2023-09-25 10:35:03 +08:00
parent 9f43e11f81
commit 5955a03d2c
94 changed files with 244 additions and 48 deletions

View File

@@ -1,33 +0,0 @@
<!--[if lt IE 9]>
<script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
<script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<link rel="stylesheet" href="__STATIC__/admin/css/public.css" media="all">
<link rel="stylesheet" href="__STATIC__/common/css/theme/index.css">
<!-- 基础js -->
<script src="__STATIC__/plugs/jquery-3.4.1/jquery-3.4.1.min.js"></script>
<script src="__STATIC__/common/js/app.js"></script>
<script src="__STATIC__/plugs/layui-v2.8.16/layui.js" charset="utf-8"></script>
<!-- 其他js -->
<script src="__STATIC__/plugs/jq-module/jquery.particleground.min.js"></script>
<script src="__STATIC__/plugs/echarts/echarts.min.js"></script>
<script src="__STATIC__/plugs/echarts/echarts-theme.js"></script>
<script src="__STATIC__/plugs/lay-module/layuimini/miniMenu.js"></script>
<script src="__STATIC__/plugs/lay-module/layuimini/miniTab.js"></script>
<script src="__STATIC__/plugs/lay-module/layuimini/miniTheme.js"></script>
<script src="__STATIC__/plugs/lay-module/layuimini/miniAdmin.js"></script>
<script src="__STATIC__/plugs/lay-module/treetable-lay/treetable.js"></script>
<script src="__STATIC__/plugs/lay-module/tableData/tableData.js"></script>
<script src="__STATIC__/plugs/lay-module/tagInput/tagInput.js"></script>
<script src="__STATIC__/plugs/lay-module/propertyInput/propertyInput.js"></script>
<script src="__STATIC__/plugs/lay-module/iconPicker/iconPickerFa.js"></script>
<script src="__STATIC__/plugs/lay-module/autocomplete/autocomplete.js"></script>
<script src="__STATIC__/plugs/vue-2.6.10/vue.min.js"></script>
<script src="__STATIC__/plugs/ckeditor4/ckeditor.js"></script>
<script src="__STATIC__/plugs/jq-module/city-picker/js/city-picker.data.min.js"></script>
<script src="__STATIC__/plugs/jq-module/city-picker/js/city-picker.min.js"></script>
<script src="__STATIC__/plugs/clipboard.js/clipboard.min.js"></script>
<script src="__STATIC__/plugs/ulthon-admin/ulthon-admin.js"></script>

View File

@@ -1,25 +0,0 @@
<div class="layuimini-container">
<div class="layuimini-main">
<table id="currentTable" class="layui-table layui-hide" data-auth-add="{:auth('debug.log/add')}" data-auth-edit="{:auth('debug.log/edit')}" data-auth-delete="{:auth('debug.log/delete')}" lay-filter="currentTable">
</table>
</div>
</div>
<style>
[data-field="content"] .layui-table-cell {
white-space: normal !important;
height: auto !important;
color: #333;
}
.log-group-0 {
background-color: #e6e6e6;
}
.log-group-1 {
background-color: #f9f9f9;
}
.layui-table-view .layui-table td {
padding: 0
}
</style>

View File

@@ -1,51 +0,0 @@
$(function () {
var init = {
table_elem: '#currentTable',
table_render_id: 'currentTableRenderId',
index_url: 'debug.log/index',
add_url: 'debug.log/add',
edit_url: 'debug.log/edit',
delete_url: 'debug.log/delete',
export_url: 'debug.log/export',
modify_url: 'debug.log/modify',
};
var uidList = [];
ua.table.render({
init: init,
size: 'sm',
limit: 50,
cols: [[
{ type: 'checkbox' },
{ field: 'id', title: 'id', search: 'number_limit' },
{ field: 'id', title: 'id模糊匹配', trueHide: true, fieldAlias: '[id]like' },
{ field: 'id', title: '最大id', trueHide: true, fieldAlias: '[id]max', searchOp: 'max' },
{
field: 'uid', title: 'uid', minWidth: 120,
},
{ field: 'level', title: 'level', minWidth: 70 },
{
field: 'content', title: '日志内容', minWidth: 450, align: 'left', templet: function (data) {
if (uidList.indexOf(data.uid) < 0) {
uidList.push(data.uid);
}
var currentUidIndex = uidList.indexOf(data.uid);
var className = 'log-group log-group-' + (currentUidIndex % 2);
return '<div class="' + className + '">' + data.content + '</div>';
}
},
{ field: 'create_time', title: '记录时间', minWidth: 160, search: 'time_limit' },
{ field: 'app_name', title: 'app_name' },
{ field: 'controller_name', title: 'controller_name', },
{ field: 'action_name', title: 'action_name' },
]],
toolbar: [
'refresh',
'export'
]
});
ua.listen();
});

View File

@@ -1,5 +0,0 @@
<div class="layuimini-container">
<div class="layuimini-main">
</div>
</div>

View File

@@ -1,49 +0,0 @@
<div class="layuimini-container">
<div class="layuimini-main">
<form id="app-form" class="layui-form layuimini-form">
<div class="layui-form-item">
<label class="layui-form-label required">用户头像</label>
<div class="layui-input-block layuimini-upload">
<input name="head_img" class="layui-input layui-col-xs6" lay-reqtext="请上传用户头像" placeholder="请上传用户头像" value="{$row.head_img|default=''}">
<div class="layuimini-upload-btn">
<span><a class="layui-btn" data-upload="head_img" data-upload-number="one" data-upload-exts="*image"><i class="fa fa-upload"></i> 上传</a></span>
<span><a class="layui-btn layui-btn-normal" id="select_head_img" data-upload-select="head_img" data-upload-number="one"><i class="fa fa-list"></i> 选择</a></span>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required">登录账户</label>
<div class="layui-input-block">
<input type="text" name="username" class="layui-input" readonly value="{$row.username|default=''}">
<tip>填写登录账户。</tip>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">用户手机</label>
<div class="layui-input-block">
<input type="text" name="phone" class="layui-input" lay-reqtext="请输入用户手机" placeholder="请输入用户手机" value="{$row.phone|default=''}">
<tip>填写用户手机。</tip>
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">备注信息</label>
<div class="layui-input-block">
<textarea name="remark" class="layui-textarea" placeholder="请输入备注信息">{$row.remark|default=''}</textarea>
</div>
</div>
<div class="hr-line"></div>
<div class="layui-form-item text-center">
<button type="submit" class="layui-btn layui-btn-normal layui-btn-sm" lay-submit>确认</button>
<button type="reset" class="layui-btn layui-btn-primary layui-btn-sm">重置</button>
</div>
</form>
</div>
</div>

View File

@@ -1,3 +0,0 @@
$(function () {
ua.listen();
});

View File

@@ -1,38 +0,0 @@
<div class="layuimini-container">
<div class="layuimini-main">
<form id="app-form" class="layui-form layuimini-form">
<div class="layui-form-item">
<label class="layui-form-label required">登录账户</label>
<div class="layui-input-block">
<input type="text" name="username" class="layui-input" readonly value="{$row.username|default=''}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">登录密码</label>
<div class="layui-input-block">
<input type="password" name="password" class="layui-input" lay-verify="required" lay-reqtext="请输入登录密码" placeholder="请输入登录密码" value="">
<tip>填写登录密码。</tip>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">确认密码</label>
<div class="layui-input-block">
<input type="password" name="password_again" class="layui-input" lay-verify="required" lay-reqtext="请输入确认密码" placeholder="请输入确认密码" value="">
<tip>填写再次登录密码。</tip>
</div>
</div>
<div class="hr-line"></div>
<div class="layui-form-item text-center">
<button type="submit" class="layui-btn layui-btn-normal layui-btn-sm" lay-submit>确认</button>
<button type="reset" class="layui-btn layui-btn-primary layui-btn-sm">重置</button>
</div>
</form>
</div>
</div>

View File

@@ -1,3 +0,0 @@
$(function () {
ua.listen();
});

View File

@@ -1,114 +0,0 @@
<link rel="stylesheet" href="__STATIC__/plugs/lay-module/layuimini/layuimini.css?v={$version}" media="all">
<link rel="stylesheet" href="__STATIC__/plugs/lay-module/layuimini/themes/default.css?v={$version}" media="all">
<style id="layuimini-bg-color">
</style>
<body class="layui-layout-body layuimini-all">
<div class="layui-layout layui-layout-admin">
<div class="layui-header header">
<div class="layui-logo layuimini-logo"></div>
<div class="layuimini-header-content">
<a>
<div class="layuimini-tool"><i title="展开" class="fa fa-outdent" data-side-fold="1"></i></div>
</a>
<!--电脑端头部菜单-->
<ul class="layui-nav layui-layout-left layuimini-header-menu layuimini-menu-header-pc layuimini-pc-show" lay-bar="disabled">
</ul>
<!--手机端头部菜单-->
<ul class="layui-nav layui-layout-left layuimini-header-menu layuimini-mobile-show">
<li class="layui-nav-item">
<a href="javascript:;"><i class="fa fa-list-ul"></i> 选择模块</a>
<dl class="layui-nav-child layuimini-menu-header-mobile">
</dl>
</li>
</ul>
<ul class="layui-nav layui-layout-right">
<li class="layui-nav-item" lay-unselect>
<a href="/"><i class="fa fa-home"></i></a>
</li>
<li class="layui-nav-item" lay-unselect>
<a href="javascript:;" data-refresh="刷新"><i class="fa fa-refresh"></i></a>
</li>
<li class="layui-nav-item" lay-unselect>
<a href="javascript:;" data-clear="清理" class="layuimini-clear"><i class="fa fa-trash-o"></i></a>
</li>
<li class="layui-nav-item mobile layui-hide-xs" lay-unselect>
<a href="javascript:;" data-check-screen="full"><i class="fa fa-arrows-alt"></i></a>
</li>
<li class="layui-nav-item layuimini-setting">
<a href="javascript:;">
<img src="{$session_admin.head_img}" class="layui-nav-img" width="50" height="50">
<cite class="adminName">{$session_admin.username}</cite>
<span class="layui-nav-more"></span>
</a>
<dl class="layui-nav-child">
<dd>
<a href="javascript:;" layuimini-content-href="{:__url('index/editAdmin')}" data-title="基本资料" data-icon="fa fa-gears">基本资料<span class="layui-badge-dot"></span></a>
</dd>
<dd>
<a href="javascript:;" layuimini-content-href="{:__url('index/editPassword')}" data-title="修改密码" data-icon="fa fa-gears">修改密码</a>
</dd>
<dd>
<hr>
</dd>
<dd>
<a href="javascript:;" class="login-out">退出登录</a>
</dd>
</dl>
</li>
<li class="layui-nav-item layuimini-select-bgcolor" lay-unselect>
<a href="javascript:;" data-bgcolor="配色方案"><i class="fa fa-ellipsis-v"></i></a>
</li>
</ul>
</div>
</div>
<!--无限极左侧菜单-->
<div class="layui-side layui-bg-black layuimini-menu-left">
</div>
<!--初始化加载层-->
<div class="layuimini-loader">
<div class="layuimini-loader-inner"></div>
</div>
<!--手机端遮罩层-->
<div class="layuimini-make"></div>
<!-- 移动导航 -->
<div class="layuimini-site-mobile"><i class="layui-icon"></i></div>
<div class="layui-body">
<div class="layuimini-tab layui-tab-rollTool layui-tab" lay-filter="layuiminiTab" lay-allowclose="true">
<ul class="layui-tab-title">
<li class="layui-this" id="layuiminiHomeTabId" lay-id=""></li>
</ul>
<div class="layui-tab-control">
<li class="layuimini-tab-roll-left layui-icon layui-icon-left"></li>
<li class="layuimini-tab-roll-right layui-icon layui-icon-right"></li>
<li class="layui-tab-tool layui-icon layui-icon-down">
<ul class="layui-nav close-box">
<li class="layui-nav-item">
<a href="javascript:;"><span class="layui-nav-more"></span></a>
<dl class="layui-nav-child">
<dd><a href="javascript:;" layuimini-tab-close="current"> </a></dd>
<dd><a href="javascript:;" layuimini-tab-close="other"> </a></dd>
<dd><a href="javascript:;" layuimini-tab-close="all"> </a></dd>
</dl>
</li>
</ul>
</li>
</div>
<div class="layui-tab-content">
<div id="layuiminiHomeTabIframe" class="layui-tab-item layui-show"></div>
</div>
</div>
</div>
</div>
</body>

View File

@@ -1,25 +0,0 @@
$(function () {
var options = {
iniUrl: ua.url('ajax/initAdmin'), // 初始化接口
clearUrl: ua.url("ajax/clearCache"), // 缓存清理接口
urlHashLocation: true, // 是否打开hash定位
bgColorDefault: false, // 主题默认配置
multiModule: true, // 是否开启多模块
menuChildOpen: false, // 是否默认展开菜单
loadingTime: 0, // 初始化加载时间
pageAnim: true, // iframe窗口动画
maxTabNum: 20, // 最大的tab打开数量
};
miniAdmin.render(options);
$('.login-out').on("click", function () {
ua.request.get({
url: 'login/out',
prefix: true,
}, function (res) {
ua.msg.success(res.msg, function () {
window.location = ua.url('login/index');
});
});
});
});

View File

@@ -1,181 +0,0 @@
<link rel="stylesheet" href="__STATIC__/admin/css/welcome.css?v={:time()}" media="all">
<div class="layuimini-container">
<div class="layuimini-main">
<div class="layui-row layui-col-space15">
<div class="layui-col-md8">
<div class="layui-row layui-col-space15">
<div class="layui-col-md6">
<div class="layui-card">
<div class="layui-card-header"><i class="fa fa-warning icon"></i>数据统计</div>
<div class="layui-card-body">
<div class="welcome-module">
<div class="layui-row layui-col-space10">
<div class="layui-col-xs6">
<div class="panel layui-bg-number">
<div class="panel-body">
<div class="panel-title">
<span class="label pull-right layui-bg-blue">实时</span>
<h5>用户统计</h5>
</div>
<div class="panel-content">
<h1 class="no-margins">1234</h1>
<small>当前分类总记录数</small>
</div>
</div>
</div>
</div>
<div class="layui-col-xs6">
<div class="panel layui-bg-number">
<div class="panel-body">
<div class="panel-title">
<span class="label pull-right layui-bg-cyan">实时</span>
<h5>商品统计</h5>
</div>
<div class="panel-content">
<h1 class="no-margins">1234</h1>
<small>当前分类总记录数</small>
</div>
</div>
</div>
</div>
<div class="layui-col-xs6">
<div class="panel layui-bg-number">
<div class="panel-body">
<div class="panel-title">
<span class="label pull-right layui-bg-orange">实时</span>
<h5>浏览统计</h5>
</div>
<div class="panel-content">
<h1 class="no-margins">1234</h1>
<small>当前分类总记录数</small>
</div>
</div>
</div>
</div>
<div class="layui-col-xs6">
<div class="panel layui-bg-number">
<div class="panel-body">
<div class="panel-title">
<span class="label pull-right layui-bg-green">实时</span>
<h5>订单统计</h5>
</div>
<div class="panel-content">
<h1 class="no-margins">1234</h1>
<small>当前分类总记录数</small>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="layui-col-md6">
<div class="layui-card">
<div class="layui-card-header"><i class="fa fa-credit-card icon icon-blue"></i>快捷入口</div>
<div class="layui-card-body">
<div class="welcome-module">
<div class="layui-row layui-col-space10 layuimini-qiuck">
{foreach $quicks as $vo}
<div class="layui-col-xs3 layuimini-qiuck-module">
<a layuimini-content-href="{:url($vo['href'])}" data-title="{$vo['title']}">
<i class="{$vo['icon']|raw}"></i>
<cite>{$vo['title']}</cite>
</a>
</div>
{/foreach}
</div>
</div>
</div>
</div>
</div>
<div class="layui-col-md12">
<div class="layui-card">
<div class="layui-card-header"><i class="fa fa-line-chart icon"></i>报表统计</div>
<div class="layui-card-body">
<div id="echarts-records" style="width: 100%;min-height:500px"></div>
</div>
</div>
</div>
</div>
</div>
<div class="layui-col-md4">
<div class="layui-card">
<div class="layui-card-header"><i class="fa fa-fire icon"></i>版本信息</div>
<div class="layui-card-body layui-text">
<table class="layui-table">
<colgroup>
<col width="100">
<col>
</colgroup>
<tbody>
<tr>
<td>框架名称</td>
<td data-toggle="copy-text" data-clipboard-text="ulthon_admin">
ulthon_admin <i class="fa fa-copy"></i>
</td>
</tr>
<tr>
<td>当前版本</td>
<td data-toggle="copy-text" data-clipboard-text="{:\\app\\common\\command\\admin\\Version::VERSION}">{:\\app\\common\\command\\admin\\Version::VERSION} <i class="fa fa-copy"></i></td>
</tr>
<tr>
<td>最新修改</td>
<td>{:implode('<br />',\\app\\common\\command\\admin\\Version::COMMENT)}</td>
</tr>
<tr>
<td>主要特色</td>
<td>零门槛 / 响应式 / 清爽 / 极简</td>
</tr>
<tr>
<td>Gitee</td>
<td style="padding-bottom: 0;">
<div class="layui-btn-container">
<a href='https://gitee.com/ulthon/ulthon_admin/stargazers'><img src='https://gitee.com/ulthon/ulthon_admin/badge/star.svg?theme=dark' alt='star'></img></a>
<a href='https://gitee.com/ulthon/ulthon_admin/members'><img src='https://gitee.com/ulthon/ulthon_admin/badge/fork.svg?theme=dark' alt='fork'></img></a>
</div>
</td>
</tr>
<tr>
<td>Layui版本</td>
<td>{:\\app\\common\\command\\admin\\Version::LAYUI_VERSION}</td>
</tr>
<tr>
<td>ThinkPHP</td>
<td>{:\\think\\App::VERSION}</td>
</tr>
<tr>
<td>PHP</td>
<td>{:PHP_VERSION}</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="layui-card">
<div class="layui-card-header"><i class="fa fa-paper-plane-o icon"></i>作者心语</div>
<div class="layui-card-body layui-text layadmin-text">
<p>本模板基于layui{:\\app\\common\\command\\admin\\Version::LAYUI_VERSION}以及font-awesome-4.7.0进行实现。layui开发文档地址<a class="layui-btn layui-btn-xs layui-btn-danger" target="_blank" href="https://layui.gitee.io/v2/">layui文档</a></p>
<p>技术交流QQ群<a target="_blank" href="https://jq.qq.com/?_wv=1027&k=TULvsosz"><img border="0" src="//pub.idqqimg.com/wpa/images/group.png" alt="ulthon_admin" title="ulthon_admin"></a>加群请备注来源如gitee、github、官网等</p>
<p>喜欢此后台模板的可以给我的GitHub和Gitee加个Star支持一下</p>
<p class="layui-red">备注:此后台框架永久开源,但请勿进行出售或者上传到任何素材网站,否则将追究相应的责任。</p>
</div>
</div>
<div class="git-container">
<script src='https://gitee.com/ulthon/ulthon_admin/widget_preview' async defer></script>
<div id="osc-gitee-widget-tag" class="layui-card"></div>
</div>
</div>
</div>
</div>
</div>

View File

@@ -1,83 +0,0 @@
$(function () {
/**
* 报表功能
*/
var echartsRecords = echarts.init(document.getElementById('echarts-records'), 'walden');
var optionRecords = {
title: {
text: '访问统计'
},
tooltip: {
trigger: 'axis'
},
legend: {
data: ['邮件营销', '联盟广告', '视频广告', '直接访问', '搜索引擎']
},
grid: {
left: '3%',
right: '4%',
bottom: '3%',
containLabel: true
},
toolbox: {
feature: {
saveAsImage: {}
}
},
xAxis: {
type: 'category',
boundaryGap: false,
data: ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
},
yAxis: {
type: 'value'
},
series: [
{
name: '邮件营销',
type: 'line',
stack: '总量',
data: [120, 132, 101, 134, 90, 230, 210]
},
{
name: '联盟广告',
type: 'line',
stack: '总量',
data: [220, 182, 191, 234, 290, 330, 310]
},
{
name: '视频广告',
type: 'line',
stack: '总量',
data: [150, 232, 201, 154, 190, 330, 410]
},
{
name: '直接访问',
type: 'line',
stack: '总量',
data: [320, 332, 301, 334, 390, 330, 320]
},
{
name: '搜索引擎',
type: 'line',
stack: '总量',
data: [820, 932, 901, 934, 1290, 1330, 1320]
}
]
};
var checkChartVisibleTimer = setInterval(() => {
var isChartVisible = $('#echarts-records').is(':visible');
if (isChartVisible) {
echartsRecords.setOption(optionRecords);
echartsRecords.resize();
window.addEventListener("resize", function () {
echartsRecords.resize();
});
clearInterval(checkChartVisibleTimer);
}
}, 3000);
ua.listen();
});

View File

@@ -1,37 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>{:sysconfig('site','site_name')}</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
{include file='common/_require'/}
<script>
window.CONFIG = {
ADMIN: "{$adminModuleName|default='admin'}",
CONTROLLER_JS_PATH: "{$thisControllerJsPath|default=''}",
ACTION: "{$thisAction|default=''}",
AUTOLOAD_JS: "{$autoloadJs|default='false'}",
IS_SUPER_ADMIN: "{$isSuperAdmin|default='false'}",
VERSION: "{$version|default='1.0.0'}",
CSRF_TOKEN: "{:token()}",
};
var PATH_CONFIG = {
iconLess: "__STATIC__/plugs/font-awesome-4.7.0/less/variables.less",
};
window.PATH_CONFIG = PATH_CONFIG;
</script>
{$content_js|raw}
</head>
<body>
{__CONTENT__}
<script style="display: none;" id="data-brage" type="text/plain">{$data_brage|raw|default='[]'}</script>
</body>
</html>

View File

@@ -1,7 +0,0 @@
<div class="layui-btn layui-btn-xs" id="demo-login-btn">演示账号一键填写</div>
<script>
$('#demo-login-btn').click(function() {
$('[name="username"]').val('admin')
$('[name="password"]').val('123456')
})
</script>

View File

@@ -1,52 +0,0 @@
<link rel="stylesheet" href="__STATIC__/admin/css/login.css?v={$version}" media="all">
<div class="main-body">
<div class="login-main">
<div class="login-top">
<span>{:sysconfig('site','site_name')}</span>
<span class="bg1"></span>
<span class="bg2"></span>
</div>
<form class="layui-form login-bottom">
<div class="demo{if !$demo} layui-hide{/if}">用户名:admin 密码:123456</div>
<div class="center">
<div class="item">
<span class="icon icon-2"></span>
<input type="text" name="username" lay-verify="required" placeholder="请输入登录账号" maxlength="24" />
</div>
<div class="item">
<span class="icon icon-3"></span>
<input type="password" name="password" lay-verify="required" placeholder="请输入密码" maxlength="20">
<span class="bind-password icon icon-4"></span>
</div>
{if $captcha == 1}
<div id="validatePanel" class="item" style="width: 137px;">
<input type="text" name="captcha" placeholder="请输入验证码" maxlength="4">
<img id="refreshCaptcha" class="validateImg" src="{:url('login/captcha')}" onclick="this.src='{:url(\'login/captcha\')}?seed='+Math.random()">
</div>
{/if}
</div>
<div class="tip">
<span class="icon-nocheck"></span>
<span class="login-tip">保持登录</span>
{:event_view_replace('<a href="javascript:" class="forget-password">忘记密码?</a>','AdminLoginForget')}
{:event_view_replace_js('AdminLoginForget')}
</div>
<div class="layui-form-item" style="text-align:center; width:100%;height:100%;margin:0px;">
<button class="login-btn" lay-submit>立即登录</button>
</div>
<div class="layui-form-item" style="padding: 10px;text-align: right;">
<div class="layui-btn-container">
{:event_view_content("AdminLoginType")}
</div>
</div>
</form>
</div>
</div>
<div class="footer">
{:sysconfig('site','site_copyright')}<span class="padding-5">|</span><a target="_blank" href="http://www.miitbeian.gov.cn">{:sysconfig('site','site_beian')}</a>
</div>

View File

@@ -1,48 +0,0 @@
$(function () {
if (top.location !== self.location) {
top.location = self.location;
}
$('.bind-password').on('click', function () {
if ($(this).hasClass('icon-5')) {
$(this).removeClass('icon-5');
$("input[name='password']").attr('type', 'password');
} else {
$(this).addClass('icon-5');
$("input[name='password']").attr('type', 'text');
}
});
$('.icon-nocheck').on('click', function () {
if ($(this).hasClass('icon-check')) {
$(this).removeClass('icon-check');
} else {
$(this).addClass('icon-check');
}
});
$('.login-tip').on('click', function () {
$('.icon-nocheck').click();
});
ua.listen(function (data) {
data['keep_login'] = $('.icon-nocheck').hasClass('icon-check') ? 1 : 0;
return data;
}, function (res) {
ua.msg.success(res.msg, function () {
window.location = ua.url('index');
});
}, function (res) {
ua.msg.error(res.msg, function () {
$('#refreshCaptcha').trigger("click");
});
});
ua.triggerEventReplaceJs('AdminLoginForget', () => {
$('.forget-password').click(function () {
layer.msg('可以使用重置密码命令设置:<br/>php think admin:reset:password<br><a target="_blank" href="http://doc.ulthon.com/home/read/ulthon_admin/reset_password/15/16.html"> 参考文档</a>');
});
}, (code) => {
eval(code);
});
});

View File

@@ -1,10 +0,0 @@
var init = {
table_elem: '#currentTable',
table_render_id: 'currentTableRenderId',
index_url: 'mall.cate/index',
add_url: 'mall.cate/add',
edit_url: 'mall.cate/edit',
delete_url: 'mall.cate/delete',
export_url: 'mall.cate/export',
modify_url: 'mall.cate/modify',
};

View File

@@ -1,43 +0,0 @@
<div class="layuimini-container">
<form id="app-form" class="layui-form layuimini-form">
<div class="layui-form-item">
<label class="layui-form-label">分类名称</label>
<div class="layui-input-block">
<input type="text" name="title" class="layui-input" lay-verify="required" placeholder="请输入分类名称" value="">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required">分类图片</label>
<div class="layui-input-block layuimini-upload">
<input name="image" class="layui-input layui-col-xs6" lay-verify="required" placeholder="请上传分类图片" value="">
<div class="layuimini-upload-btn">
<span><a class="layui-btn" data-upload="image" data-upload-number="one" data-upload-exts="*image" data-upload-icon="image"><i class="fa fa-upload"></i> 上传</a></span>
<span><a class="layui-btn layui-btn-normal" id="select_image" data-upload-select="image" data-upload-number="one" data-upload-mimetype="image/*"><i class="fa fa-list"></i> 选择</a></span>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">分类排序</label>
<div class="layui-input-block">
<input type="number" name="sort" class="layui-input" placeholder="请输入分类排序" value="0">
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">备注信息</label>
<div class="layui-input-block">
<textarea name="remark" class="layui-textarea" placeholder="请输入备注信息"></textarea>
</div>
</div>
<div class="hr-line"></div>
<div class="layui-form-item text-center">
<button type="submit" class="layui-btn layui-btn-normal layui-btn-sm" lay-submit>确认</button>
<button type="reset" class="layui-btn layui-btn-primary layui-btn-sm">重置</button>
</div>
</form>
</div>

View File

@@ -1,3 +0,0 @@
$(function(){
ua.listen();
})

View File

@@ -1,43 +0,0 @@
<div class="layuimini-container">
<form id="app-form" class="layui-form layuimini-form">
<div class="layui-form-item">
<label class="layui-form-label">分类名称</label>
<div class="layui-input-block">
<input type="text" name="title" class="layui-input" lay-verify="required" placeholder="请输入分类名称" value="{$row.title|default=''}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required">分类图片</label>
<div class="layui-input-block layuimini-upload">
<input name="image" class="layui-input layui-col-xs6" lay-verify="required" lay-reqtext="请上传分类图片" placeholder="请上传分类图片" value="{$row.image|default=''}">
<div class="layuimini-upload-btn">
<span><a class="layui-btn" data-upload="image" data-upload-number="one" data-upload-exts="*image" data-upload-icon="image"><i class="fa fa-upload"></i> 上传</a></span>
<span><a class="layui-btn layui-btn-normal" id="select_image" data-upload-select="image" data-upload-number="one" data-upload-mimetype="image/*"><i class="fa fa-list"></i> 选择</a></span>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">分类排序</label>
<div class="layui-input-block">
<input type="number" name="sort" class="layui-input" placeholder="请输入分类排序" value="{$row.sort|default=''}">
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">备注信息</label>
<div class="layui-input-block">
<textarea name="remark" class="layui-textarea" placeholder="请输入备注信息">{$row.remark|default=''}</textarea>
</div>
</div>
<div class="hr-line"></div>
<div class="layui-form-item text-center">
<button type="submit" class="layui-btn layui-btn-normal layui-btn-sm" lay-submit>确认</button>
<button type="reset" class="layui-btn layui-btn-primary layui-btn-sm">重置</button>
</div>
</form>
</div>

View File

@@ -1,3 +0,0 @@
$(function () {
ua.listen();
});

View File

@@ -1,11 +0,0 @@
<div class="layuimini-container">
<div class="layuimini-main">
<table id="currentTable" class="layui-table layui-hide"
data-auth-add="{:auth('mall.cate/add')}"
data-auth-edit="{:auth('mall.cate/edit')}"
data-auth-delete="{:auth('mall.cate/delete')}"
data-auth-modify="{:auth('mall.cate/modify')}"
lay-filter="currentTable">
</table>
</div>
</div>

View File

@@ -1,20 +0,0 @@
$(function () {
ua.table.render({
init: init,
cols: [[
{ type: "checkbox" },
{ field: 'id', width: 80, title: 'ID' },
{ field: 'sort', width: 80, title: '排序', edit: 'text' },
{ field: 'title', minWidth: 80, title: '分类名称' },
{ field: 'image', minWidth: 80, title: '分类图片', search: false, templet: ua.table.image },
{ field: 'remark', minWidth: 80, title: '备注信息' },
{ field: 'status', title: '状态', width: 85, search: 'select', selectList: { 0: '禁用', 1: '启用' }, templet: ua.table.switch },
{ field: 'create_time', minWidth: 80, title: '创建时间', search: 'range' },
{ width: 250, title: '操作', templet: ua.table.tool }
]],
});
ua.listen();
});

View File

@@ -1,13 +0,0 @@
var init = {
table_elem: '#currentTable',
table_render_id: 'currentTableRenderId',
index_url: 'mall.goods/index',
add_url: 'mall.goods/add',
edit_url: 'mall.goods/edit',
delete_url: 'mall.goods/delete',
export_url: 'mall.goods/export',
modify_url: 'mall.goods/modify',
stock_url: 'mall.goods/stock',
read_url: 'mall.goods/read',
formFullScreen: true,
};

View File

@@ -1,120 +0,0 @@
<div class="layuimini-container">
<form id="app-form" class="layui-form layuimini-form">
<div class="layui-form-item">
<label class="layui-form-label">商品分类</label>
<div class="layui-input-block">
<select name="cate_id" lay-verify="required" data-select="{:url('mall.cate/index')}" data-fields="id,title">
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">商品标题</label>
<div class="layui-input-block">
<input type="text" name="title" class="layui-input" lay-verify="required" placeholder="请输入商品标题" value="">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required">商品LOGO</label>
<div class="layui-input-block layuimini-upload">
<input name="logo" class="layui-input layui-col-xs6" lay-verify="required" placeholder="请上传分类图片" value="">
<div class="layuimini-upload-btn">
<span><a class="layui-btn" data-upload="logo" data-upload-number="one" data-upload-exts="*image" data-upload-icon="image"><i class="fa fa-upload"></i> 上传</a></span>
<span><a class="layui-btn layui-btn-normal" id="select_logo" data-upload-select="logo" data-upload-number="one" data-upload-mimetype="image/*"><i class="fa fa-list"></i> 选择</a></span>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required">商品图片</label>
<div class="layui-input-block layuimini-upload">
<input name="images" class="layui-input layui-col-xs6" lay-verify="required" placeholder="请上传商品图片" value="">
<div class="layuimini-upload-btn">
<span><a class="layui-btn" data-upload="images" data-upload-number="more" data-upload-exts="*image" data-upload-icon="image"><i class="fa fa-upload"></i> 上传</a></span>
<span><a class="layui-btn layui-btn-normal" id="select_images" data-upload-select="images" data-upload-number="more" data-upload-mimetype="image/*"><i class="fa fa-list"></i> 选择</a></span>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">市场价格</label>
<div class="layui-input-block">
<input type="text" name="market_price" class="layui-input" lay-verify="required" placeholder="请输入市场价格" value="0">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">折扣价格</label>
<div class="layui-input-block">
<input type="text" name="discount_price" class="layui-input" lay-verify="required" placeholder="请输入折扣价格" value="0">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">虚拟销量</label>
<div class="layui-input-block">
<input type="text" name="virtual_sales" class="layui-input" lay-verify="required" placeholder="请输入虚拟销量" value="0">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">标签</label>
<div class="layui-input-block">
<div data-toggle="table-data" data-index="{:__url('mall.Tag/index')}" data-select-type="checkbox" data-select-value="" data-value-field="id" data-name="tag" data-field-name="title">
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">属性</label>
<div class="layui-input-block">
<div data-toggle="property-input" data-name="property">
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">商品描述</label>
<div class="layui-input-block">
<textarea name="describe" rows="20" class="layui-textarea editor" placeholder="请输入商品描述"></textarea>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">授权文件名称</label>
<div class="layui-input-block">
<input type="text" name="license_name" class="layui-input" lay-verify="required" placeholder="请输入授权文件名称" value="">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required">授权文件</label>
<div class="layui-input-block layuimini-upload">
<input name="license" class="layui-input layui-col-xs6" lay-verify="required" placeholder="请上传授权文件" value="">
<div class="layuimini-upload-btn">
<span><a class="layui-btn" data-upload="license" data-upload-number="one" data-upload-exts="*office" data-upload-icon="file" data-upload-disable-preview="0" data-upload-filename-field="license_name"><i class="fa fa-upload"></i> 上传</a></span>
<span><a class="layui-btn layui-btn-normal" id="select_license" data-upload-select="license" data-upload-number="one" data-upload-mimetype="*" data-upload-filename-field="license_name"><i class="fa fa-list"></i> 选择</a></span>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">分类排序</label>
<div class="layui-input-block">
<input type="number" name="sort" class="layui-input" placeholder="请输入分类排序" value="0">
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">备注信息</label>
<div class="layui-input-block">
<textarea name="remark" class="layui-textarea" placeholder="请输入备注信息"></textarea>
</div>
</div>
<div class="hr-line"></div>
<div class="layui-form-item text-center">
<button type="submit" class="layui-btn layui-btn-normal layui-btn-sm" lay-submit>确认</button>
<button type="reset" class="layui-btn layui-btn-primary layui-btn-sm">重置</button>
</div>
</form>
</div>

View File

@@ -1,3 +0,0 @@
$(function(){
ua.listen();
})

View File

@@ -1,119 +0,0 @@
<div class="layuimini-container">
<form id="app-form" class="layui-form layuimini-form multiple-columns">
<div class="layui-form-item">
<label class="layui-form-label">商品分类</label>
<div class="layui-input-block">
<select name="cate_id" lay-verify="required" data-select="{:url('mall.cate/index')}" data-fields="id,title" data-value="{$row.cate_id|default=''}">
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">商品标题</label>
<div class="layui-input-block">
<input type="text" name="title" class="layui-input" lay-verify="required" placeholder="请输入商品标题" value="{$row.title|default=''}">
</div>
</div>
<div class="layui-form-item full-line">
<label class="layui-form-label required">商品LOGO</label>
<div class="layui-input-block layuimini-upload">
<input name="logo" class="layui-input layui-col-xs6" lay-verify="required" placeholder="请上传分类图片" value="{$row.logo|default=''}">
<div class="layuimini-upload-btn">
<span><a class="layui-btn" data-upload="logo" data-upload-number="one" data-upload-exts="*image" data-upload-icon="image"><i class="fa fa-upload"></i> 上传</a></span>
<span><a class="layui-btn layui-btn-normal" id="select_logo" data-upload-select="logo" data-upload-number="one" data-upload-mimetype="image/*"><i class="fa fa-list"></i> 选择</a></span>
</div>
</div>
</div>
<div class="layui-form-item full-line">
<label class="layui-form-label required">商品图片</label>
<div class="layui-input-block layuimini-upload">
<input name="images" class="layui-input layui-col-xs6" lay-verify="required" placeholder="请上传商品图片" value="{$row.images|default=''}">
<div class="layuimini-upload-btn">
<span><a class="layui-btn" data-upload="images" data-upload-number="more" data-upload-exts="*image" data-upload-icon="image"><i class="fa fa-upload"></i> 上传</a></span>
<span><a class="layui-btn layui-btn-normal" id="select_images" data-upload-select="images" data-upload-number="more" data-upload-mimetype="image/*"><i class="fa fa-list"></i> 选择</a></span>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">市场价格</label>
<div class="layui-input-block">
<input type="text" name="market_price" class="layui-input" lay-verify="required" placeholder="请输入市场价格" value="{$row.market_price|default=''}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">折扣价格</label>
<div class="layui-input-block">
<input type="text" name="discount_price" class="layui-input" lay-verify="required" placeholder="请输入折扣价格" value="{$row.discount_price|default=''}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">虚拟销量</label>
<div class="layui-input-block">
<input type="text" name="virtual_sales" class="layui-input" lay-verify="required" placeholder="请输入虚拟销量" value="{$row.virtual_sales|default=''}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">标签</label>
<div class="layui-input-block">
<div data-toggle="table-data" data-index="{:__url('mall.Tag/index')}" data-select-type="checkbox" data-select-value="{$row.tag|default=''}" data-value-field="id" data-name="tag" data-field-name="title">
</div>
</div>
</div>
<div class="layui-form-item full-line">
<label class="layui-form-label">属性</label>
<div class="layui-input-block">
<div data-toggle="property-input" data-name="property">{$row.property|raw|default=''}</div>
</div>
</div>
<div class="layui-form-item full-line">
<label class="layui-form-label">商品描述</label>
<div class="layui-input-block">
<textarea name="describe" rows="20" class="layui-textarea editor" placeholder="请输入商品描述">{$row.describe|raw|default=''}</textarea>
</div>
</div>
<div class="layui-form-item full-line">
<label class="layui-form-label">授权文件名称</label>
<div class="layui-input-block">
<input type="text" name="license_name" class="layui-input" lay-verify="required" placeholder="请输入授权文件名称" value="{$row.license_name|default=''}">
</div>
</div>
<div class="layui-form-item full-line">
<label class="layui-form-label required">授权文件</label>
<div class="layui-input-block layuimini-upload">
<input name="license" class="layui-input layui-col-xs6" lay-verify="required" placeholder="请上传授权文件" value="{$row.license|default=''}">
<div class="layuimini-upload-btn">
<span><a class="layui-btn" data-upload="license" data-upload-number="true" data-upload-exts="*office" data-upload-icon="file" data-upload-disable-preview="0" data-upload-filename-field="license_name"><i class="fa fa-upload"></i> 上传</a></span>
<span><a class="layui-btn layui-btn-normal" id="select_license" data-upload-select="license" data-upload-number="true" data-upload-mimetype="*" data-upload-filename-field="license_name"><i class="fa fa-list"></i> 选择</a></span>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">分类排序</label>
<div class="layui-input-block">
<input type="number" name="sort" class="layui-input" placeholder="请输入分类排序" value="{$row.sort|default=''}">
</div>
</div>
<div class="layui-form-item layui-form-text full-line">
<label class="layui-form-label">备注信息</label>
<div class="layui-input-block">
<textarea name="remark" class="layui-textarea" placeholder="请输入备注信息">{$row.remark|default=''}</textarea>
</div>
</div>
<div class="hr-line"></div>
<div class="layui-form-item text-center">
<button type="submit" class="layui-btn layui-btn-normal layui-btn-sm" lay-submit>确认</button>
<button type="reset" class="layui-btn layui-btn-primary layui-btn-sm">重置</button>
</div>
</form>
</div>

View File

@@ -1,3 +0,0 @@
$(function () {
ua.listen();
});

View File

@@ -1,12 +0,0 @@
<div class="layuimini-container">
<div class="layuimini-main">
<table id="currentTable" class="layui-table layui-hide"
data-auth-add="{:auth('mall.goods/add')}"
data-auth-edit="{:auth('mall.goods/edit')}"
data-auth-delete="{:auth('mall.goods/delete')}"
data-auth-stock="{:auth('mall.goods/stock')}"
data-auth-modify="{:auth('mall.goods/modify')}"
lay-filter="currentTable">
</table>
</div>
</div>

View File

@@ -1,69 +0,0 @@
$(function () {
ua.table.render({
init: init,
totalRow: true,
cols: [[
{ type: "checkbox" },
{ field: 'id', width: 80, title: 'ID', totalRowText: '合计:' },
{ field: 'sort', width: 80, title: '排序', edit: 'text' },
{ field: 'cate_id', minWidth: 80, title: '商品分类', selectList: ua.getDataBrage('select_list_cate'), selectValue: 'id', selectLabel: 'title', defaultSearchValue: ua.getQueryVariable('cate_id', '') },
{ field: 'cate.image', minWidth: 80, title: '分类图片', search: false, templet: ua.table.image },
{ field: 'title', minWidth: 80, title: '商品名称', },
{ field: 'logo', minWidth: 80, title: '商品图片', search: false, templet: ua.table.image },
{ field: 'market_price', width: 100, title: '市场价', templet: ua.table.price },
{
field: 'discount_price', width: 120, title: '折扣价', templet: ua.table.price, totalRow: true,
templet: ua.table.copyText,
valueParser(value) {
return '¥' + value;
},
copyText(value, data) {
return data.discount_price;
}
},
{ field: 'total_stock', width: 100, title: '库存统计', totalRow: '{{= parseInt(d.TOTAL_NUMS) }} 个' },
{
field: 'stock',
width: 100,
title: '剩余库存',
valueParser(value, data) {
if (value >= 20) {
return value;
}
return value + '(缺货)';
}
},
{ field: 'virtual_sales', width: 100, title: '虚拟销量' },
{ field: 'sales', width: 80, title: '销量' },
{ field: 'status', title: '状态', width: 85, selectList: { 0: '禁用', 1: '启用' }, templet: ua.table.switch },
{ field: 'create_time', minWidth: 80, title: '创建时间', search: 'range' },
{
width: 250,
title: '操作',
templet: ua.table.tool,
fixed: 'right',
operat: [
'edit',
[{
text: '入库',
url: init.stock_url,
method: 'open',
auth: 'stock',
class: 'layui-btn layui-btn-xs layui-btn-normal',
}, {
text: '详情',
url: init.read_url,
method: 'open',
auth: 'edit',
extend: 'data-full="true"',
class: 'layui-btn layui-btn-xs layui-btn-primary',
},],
'delete']
}
]],
});
ua.listen();
});

View File

@@ -1,113 +0,0 @@
<link rel="stylesheet" href="//layui.ulthon.com/cdn/layui-ul.css">
<div class="layuimini-container">
<div class="layui-row">
<div class="layui-col-md8 layui-col-md-offset2 layui-col-lg6 layui-col-lg-offset3">
<div class="ul-descriptions border">
<div class="item">
<div class="label">
商品分类
</div>
<div class="value">
{$row->cate->title}
</div>
</div>
<div class="item short-line">
<div class="label">
商品标题
</div>
<div class="value">
{$row->title}
</div>
</div>
<div class="item poster">
<div class="label">
封面
</div>
<div class="value">
<img class="poster-item" src="{$row.logo}" alt="">
</div>
</div>
<div class="item">
<div class="label">
市场价格
</div>
<div class="value">
{$row->market_price}
</div>
</div>
<div class="item ">
<div class="label">
折扣价格
</div>
<div class="value">
{$row->discount_price}
</div>
</div>
<div class="item">
<div class="label">
虚拟销量
</div>
<div class="value">
{$row->virtual_sales}
</div>
</div>
<div class="item">
<div class="label">
添加时间
</div>
<div class="value">
{$row->create_time}
</div>
</div>
<div class="item">
<div class="label">
库存统计
</div>
<div class="value">
{$row->total_stock}
</div>
</div>
<div class="item short-line">
<div class="label">
剩余库存
</div>
<div class="value">
{$row->stock}
</div>
</div>
<div class="item tag line">
<div class="label">
标签
</div>
<div class="value">
{volist name='$row->tag_list_title' id='vo'}
<div class="tag-item">{$vo}</div>
{/volist}
</div>
</div>
<div class="item line">
<div class="label">
备注信息
</div>
<div class="value">
{$row.remark}
</div>
</div>
<div class="item article">
<div class="label">
商品详情
</div>
<div class="value">
<div class="article-item">
{$row.describe|raw}
</div>
</div>
</div>
</div>
</div>
</div>
</div>

View File

@@ -1,3 +0,0 @@
$(function () {
ua.listen();
});

View File

@@ -1,39 +0,0 @@
<div class="layuimini-container">
<form id="app-form" class="layui-form layuimini-form">
<div class="layui-form-item">
<label class="layui-form-label">商品标题</label>
<div class="layui-input-block">
<input type="text" class="layui-input" disabled value="{$row.title|default=''}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">库存统计</label>
<div class="layui-input-block">
<input type="text" class="layui-input" disabled value="{$row.total_stock|default=''}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">剩余库存</label>
<div class="layui-input-block">
<input type="text" class="layui-input" disabled value="{$row.stock|default=''}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">入库数量</label>
<div class="layui-input-block">
<input type="number" name="stock" class="layui-input" lay-verify="required" placeholder="请输入入库数量" value="0">
</div>
</div>
<div class="hr-line"></div>
<div class="layui-form-item text-center">
<button type="submit" class="layui-btn layui-btn-normal layui-btn-sm" lay-submit>确认</button>
<button type="reset" class="layui-btn layui-btn-primary layui-btn-sm">重置</button>
</div>
</form>
</div>

View File

@@ -1,3 +0,0 @@
$(function () {
ua.listen();
});

View File

@@ -1,10 +0,0 @@
var init = {
table_elem: '#currentTable',
table_render_id: 'currentTableRenderId',
index_url: 'mall.tag/index',
add_url: 'mall.tag/add',
edit_url: 'mall.tag/edit',
delete_url: 'mall.tag/delete',
export_url: 'mall.tag/export',
modify_url: 'mall.tag/modify',
};

View File

@@ -1,17 +0,0 @@
<div class="layuimini-container">
<form id="app-form" class="layui-form layuimini-form">
<div class="layui-form-item">
<label class="layui-form-label">名称</label>
<div class="layui-input-block">
<input type="text" name="title" class="layui-input" lay-verify="required" placeholder="请输入名称" value="">
</div>
</div>
<div class="hr-line"></div>
<div class="layui-form-item text-center">
<button type="submit" class="layui-btn layui-btn-normal layui-btn-sm" lay-submit>确认</button>
<button type="reset" class="layui-btn layui-btn-primary layui-btn-sm">重置</button>
</div>
</form>
</div>

View File

@@ -1,3 +0,0 @@
$(function () {
ua.listen();
});

View File

@@ -1,17 +0,0 @@
<div class="layuimini-container">
<form id="app-form" class="layui-form layuimini-form">
<div class="layui-form-item">
<label class="layui-form-label">名称</label>
<div class="layui-input-block">
<input type="text" name="title" class="layui-input" lay-verify="required" placeholder="请输入名称" value="{$row.title|default=''}">
</div>
</div>
<div class="hr-line"></div>
<div class="layui-form-item text-center">
<button type="submit" class="layui-btn layui-btn-normal layui-btn-sm" lay-submit>确认</button>
<button type="reset" class="layui-btn layui-btn-primary layui-btn-sm">重置</button>
</div>
</form>
</div>

View File

@@ -1,3 +0,0 @@
$(function () {
ua.listen();
});

View File

@@ -1,11 +0,0 @@
<div class="layuimini-container">
<div class="layuimini-main">
<table id="currentTable" class="layui-table layui-hide"
data-auth-add="{:auth('mall.tag/add')}"
data-auth-edit="{:auth('mall.tag/edit')}"
data-auth-delete="{:auth('mall.tag/delete')}"
lay-filter="currentTable">
</table>
</div>
</div>

View File

@@ -1,13 +0,0 @@
$(function () {
ua.table.render({
init: init,
cols: [[
{ type: 'checkbox' },
{ field: 'id', title: 'id' },
{ field: 'title', title: '名称' },
{ width: 250, title: '操作', templet: ua.table.tool },
]],
});
ua.listen();
});

View File

@@ -1,11 +0,0 @@
var init = {
table_elem: '#currentTable',
table_render_id: 'currentTableRenderId',
index_url: 'system.admin/index',
add_url: 'system.admin/add',
edit_url: 'system.admin/edit',
delete_url: 'system.admin/delete',
modify_url: 'system.admin/modify',
export_url: 'system.admin/export',
password_url: 'system.admin/password',
};

View File

@@ -1,54 +0,0 @@
<div class="layuimini-container">
<form id="app-form" class="layui-form layuimini-form">
<div class="layui-form-item">
<label class="layui-form-label required">用户头像</label>
<div class="layui-input-block layuimini-upload">
<input name="head_img" class="layui-input layui-col-xs6" lay-verify="required" lay-reqtext="请上传用户头像" placeholder="请上传用户头像" value="/static/common/images/head.png">
<div class="layuimini-upload-btn">
<span><a class="layui-btn" data-upload="head_img" data-upload-number="one" data-upload-exts="*image" data-upload-icon="image"><i class="fa fa-upload"></i> 上传</a></span>
<span><a class="layui-btn layui-btn-normal" id="select_head_img" data-upload-select="head_img" data-upload-number="one" data-upload-mimetype="image/*"><i class="fa fa-list"></i> 选择</a></span>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required">登录账户</label>
<div class="layui-input-block">
<input type="text" name="username" class="layui-input" lay-verify="required" lay-reqtext="请输入登录账户" placeholder="请输入登录账户" value="">
<tip>填写登录账户。</tip>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">用户手机</label>
<div class="layui-input-block">
<input type="text" name="phone" class="layui-input" lay-reqtext="请输入用户手机" placeholder="请输入用户手机" value="">
<tip>填写用户手机。</tip>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">角色权限</label>
<div class="layui-input-block">
{foreach auth_list as $key=>$val}
<input type="checkbox" name="auth_ids[{$key}]" lay-skin="primary" title="{$val}">
{/foreach}
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">备注信息</label>
<div class="layui-input-block">
<textarea name="remark" class="layui-textarea" placeholder="请输入备注信息"></textarea>
</div>
</div>
<div class="hr-line"></div>
<div class="layui-form-item text-center">
<button type="submit" class="layui-btn layui-btn-normal layui-btn-sm" lay-submit>确认</button>
<button type="reset" class="layui-btn layui-btn-primary layui-btn-sm">重置</button>
</div>
</form>
</div>

View File

@@ -1,3 +0,0 @@
$(function () {
ua.listen();
});

View File

@@ -1,54 +0,0 @@
<div class="layuimini-container">
<form id="app-form" class="layui-form layuimini-form">
<div class="layui-form-item">
<label class="layui-form-label required">用户头像</label>
<div class="layui-input-block layuimini-upload">
<input name="head_img" class="layui-input layui-col-xs6" lay-verify="required" lay-reqtext="请上传用户头像" placeholder="请上传用户头像" value="{$row.head_img|default=''}">
<div class="layuimini-upload-btn">
<span><a class="layui-btn" data-upload="head_img" data-upload-number="one" data-upload-exts="*image"><i class="fa fa-upload"></i> 上传</a></span>
<span><a class="layui-btn layui-btn-normal" id="select_head_img" data-upload-select="head_img" data-upload-number="one"><i class="fa fa-list"></i> 选择</a></span>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required">登录账户</label>
<div class="layui-input-block">
<input type="text" name="username" class="layui-input" readonly value="{$row.username|default=''}">
<tip>填写登录账户。</tip>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">用户手机</label>
<div class="layui-input-block">
<input type="text" name="phone" class="layui-input" lay-reqtext="请输入用户手机" placeholder="请输入用户手机" value="{$row.phone|default=''}">
<tip>填写用户手机。</tip>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">角色权限</label>
<div class="layui-input-block">
{foreach auth_list as $key=>$val}
<input type="checkbox" name="auth_ids[{$key}]" lay-skin="primary" title="{$val}" {if in_array($key,$row.auth_ids)}checked="" {/if}>
{/foreach}
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">备注信息</label>
<div class="layui-input-block">
<textarea name="remark" class="layui-textarea" placeholder="请输入备注信息">{$row.remark|default=''}</textarea>
</div>
</div>
<div class="hr-line"></div>
<div class="layui-form-item text-center">
<button type="submit" class="layui-btn layui-btn-normal layui-btn-sm" lay-submit>确认</button>
<button type="reset" class="layui-btn layui-btn-primary layui-btn-sm">重置</button>
</div>
</form>
</div>

View File

@@ -1,3 +0,0 @@
$(function () {
ua.listen();
});

View File

@@ -1,6 +0,0 @@
<div class="layuimini-container">
<div class="layuimini-main">
<table id="currentTable" class="layui-table layui-hide" data-auth-add="{:auth('system.admin/add')}" data-auth-edit="{:auth('system.admin/edit')}" data-auth-delete="{:auth('system.admin/delete')}" data-auth-password="{:auth('system.admin/password')}" data-auth-modify="{:auth('system.admin/modify')}" lay-filter="currentTable">
</table>
</div>
</div>

View File

@@ -1,38 +0,0 @@
$(function () {
ua.table.render({
init: init,
cols: [[
{ type: "checkbox" },
{ field: 'id', width: 80, title: 'ID' },
{ field: 'sort', width: 80, title: '排序', edit: 'text' },
{ field: 'username', minWidth: 80, title: '登录账户' },
{ field: 'head_img', minWidth: 80, title: '头像', search: false, templet: ua.table.image },
{ field: 'phone', minWidth: 80, title: '手机' },
{ field: 'login_num', minWidth: 80, title: '登录次数' },
{ field: 'remark', minWidth: 80, title: '备注信息', defaultValue: '无' },
{ field: 'status', title: '状态', width: 85, search: 'select', selectList: { 0: '禁用', 1: '启用' }, templet: ua.table.switch },
{ field: 'create_time', minWidth: 80, title: '创建时间', search: 'range' },
{
width: 250,
title: '操作',
fixed: 'right',
templet: ua.table.tool,
operat: [
'edit',
[{
text: '设置密码',
titleField: 'username',
url: init.password_url,
method: 'open',
auth: 'password',
class: 'layui-btn layui-btn-normal layui-btn-xs',
}],
'delete'
]
}
]],
});
ua.listen();
});

View File

@@ -1,34 +0,0 @@
<div class="layuimini-container">
<form id="app-form" class="layui-form layuimini-form">
<div class="layui-form-item">
<label class="layui-form-label required">登录账户</label>
<div class="layui-input-block">
<input type="text" name="username" class="layui-input" readonly value="{$row.username|default=''}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">登录密码</label>
<div class="layui-input-block">
<input type="password" name="password" class="layui-input" lay-verify="required" lay-reqtext="请输入登录密码" placeholder="请输入登录密码" value="">
<tip>填写登录密码。</tip>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">确认密码</label>
<div class="layui-input-block">
<input type="password" name="password_again" class="layui-input" lay-verify="required" lay-reqtext="请输入确认密码" placeholder="请输入确认密码" value="">
<tip>填写再次登录密码。</tip>
</div>
</div>
<div class="hr-line"></div>
<div class="layui-form-item text-center">
<button type="submit" class="layui-btn layui-btn-normal layui-btn-sm" lay-submit>确认</button>
<button type="reset" class="layui-btn layui-btn-primary layui-btn-sm">重置</button>
</div>
</form>
</div>

View File

@@ -1,3 +0,0 @@
$(function () {
ua.listen();
});

View File

@@ -1,11 +0,0 @@
var init = {
table_elem: '#currentTable',
table_render_id: 'currentTableRenderId',
index_url: 'system.auth/index',
add_url: 'system.auth/add',
edit_url: 'system.auth/edit',
delete_url: 'system.auth/delete',
export_url: 'system.auth/export',
modify_url: 'system.auth/modify',
authorize_url: 'system.auth/authorize',
};

View File

@@ -1,26 +0,0 @@
<div class="layuimini-container">
<form id="app-form" class="layui-form layuimini-form">
<div class="layui-form-item">
<label class="layui-form-label">权限名称</label>
<div class="layui-input-block">
<input type="text" name="title" class="layui-input" lay-verify="required" placeholder="请输入权限名称" value="">
<tip>填写权限名称。</tip>
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">备注信息</label>
<div class="layui-input-block">
<textarea name="remark" class="layui-textarea" placeholder="请输入备注信息"></textarea>
</div>
</div>
<div class="hr-line"></div>
<div class="layui-form-item text-center">
<button type="submit" class="layui-btn layui-btn-normal layui-btn-sm" lay-submit>确认</button>
<button type="reset" class="layui-btn layui-btn-primary layui-btn-sm">重置</button>
</div>
</form>
</div>

View File

@@ -1,3 +0,0 @@
$(function () {
ua.listen();
});

View File

@@ -1,27 +0,0 @@
<div class="layuimini-container">
<form id="app-form" class="layui-form layuimini-form">
<div class="layui-form-item">
<label class="layui-form-label required">权限名称</label>
<div class="layui-input-block">
<input type="text" name="title" readonly class="layui-input" value="{$row.title|default=''}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required">分配节点</label>
<div class="layui-input-block">
<div id="node_ids" class="demo-tree-more"></div>
</div>
</div>
<input type="hidden" name="id" readonly class="layui-input" value="{$row.id}">
<div class="hr-line"></div>
<div class="layui-form-item text-center">
<button type="submit" class="layui-btn layui-btn-normal layui-btn-sm" lay-submit="system.auth/saveAuthorize">确认</button>
<button type="reset" class="layui-btn layui-btn-primary layui-btn-sm">重置</button>
</div>
</form>
</div>

View File

@@ -1,32 +0,0 @@
$(function () {
var tree = layui.tree;
ua.request.get(
{
url: window.location.href,
}, function (res) {
res.data = res.data || [];
tree.render({
elem: '#node_ids',
data: res.data,
showCheckbox: true,
id: 'nodeDataId',
});
}
);
ua.listen(function (data) {
var checkedData = tree.getChecked('nodeDataId');
var ids = [];
$.each(checkedData, function (i, v) {
ids.push(v.id);
if (v.children !== undefined && v.children.length > 0) {
$.each(v.children, function (ii, vv) {
ids.push(vv.id);
});
}
});
data.node = JSON.stringify(ids);
return data;
});
});

View File

@@ -1,26 +0,0 @@
<div class="layuimini-container">
<form id="app-form" class="layui-form layuimini-form">
<div class="layui-form-item">
<label class="layui-form-label required">权限名称</label>
<div class="layui-input-block">
<input type="text" name="title" class="layui-input" lay-verify="required" lay-reqtext="请输入权限名称" placeholder="请输入权限名称" value="{$row.title|default=''}">
<tip>填写权限名称。</tip>
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">备注信息</label>
<div class="layui-input-block">
<textarea name="remark" class="layui-textarea" placeholder="请输入备注信息">{$row.remark|default=''}</textarea>
</div>
</div>
<div class="hr-line"></div>
<div class="layui-form-item text-center">
<button type="submit" class="layui-btn layui-btn-normal layui-btn-sm" lay-submit>确认</button>
<button type="reset" class="layui-btn layui-btn-primary layui-btn-sm">重置</button>
</div>
</form>
</div>

View File

@@ -1,3 +0,0 @@
$(function () {
ua.listen();
});

View File

@@ -1,12 +0,0 @@
<div class="layuimini-container">
<div class="layuimini-main">
<table id="currentTable" class="layui-table layui-hide"
data-auth-add="{:auth('system.auth/add')}"
data-auth-edit="{:auth('system.auth/edit')}"
data-auth-delete="{:auth('system.auth/delete')}"
data-auth-authorize="{:auth('system.auth/authorize')}"
data-auth-modify="{:auth('system.auth/modify')}"
lay-filter="currentTable">
</table>
</div>
</div>

View File

@@ -1,33 +0,0 @@
$(function () {
ua.table.render({
init: init,
cols: [[
{ type: "checkbox" },
{ field: 'id', width: 80, title: 'ID' },
{ field: 'sort', width: 80, title: '排序', edit: 'text' },
{ field: 'title', minWidth: 80, title: '权限名称' },
{ field: 'remark', minWidth: 80, title: '备注信息' },
{ field: 'status', title: '状态', width: 85, search: 'select', selectList: { 0: '禁用', 1: '启用' }, templet: ua.table.switch },
{ field: 'create_time', minWidth: 80, title: '创建时间', search: 'range' },
{
width: 250,
title: '操作',
templet: ua.table.tool,
operat: [
'edit',
[{
text: '授权',
url: init.authorize_url,
method: 'open',
auth: 'authorize',
class: 'layui-btn layui-btn-normal layui-btn-xs',
}],
'delete'
]
}
]],
});
ua.listen();
});

View File

@@ -1,24 +0,0 @@
<div class="layuimini-container">
<div class="layuimini-main" id="app">
<div class="layui-tab layui-tab-brief" lay-filter="docDemoTabBrief">
<ul class="layui-tab-title">
<li class="layui-this">网站设置</li>
<li>LOGO配置</li>
<li>上传配置</li>
</ul>
<div class="layui-tab-content">
<div class="layui-tab-item layui-show">
{include file="system/config/site" /}
</div>
<div class="layui-tab-item">
{include file="system/config/logo" /}
</div>
<div class="layui-tab-item">
{include file="system/config/upload" /}
</div>
</div>
</div>
</div>
</div>

View File

@@ -1,12 +0,0 @@
$(function () {
var form = layui.form;
$('.show-type-item').hide();
$('.show-type-item.' + upload_type).show();
form.on("radio(upload_type)", function (data) {
$('.show-type-item').hide();
$('.show-type-item.' + this.value).show();
});
ua.listen();
});

View File

@@ -1,28 +0,0 @@
<form id="app-form" class="layui-form layuimini-form">
<div class="layui-form-item">
<label class="layui-form-label">LOGO标题</label>
<div class="layui-input-block">
<input type="text" name="logo_title" class="layui-input" lay-verify="required" placeholder="请输入LOGO标题" value="{:sysconfig('site','logo_title')}">
<tip>填写站点名称。</tip>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">LOGO图标</label>
<div class="layui-input-block layuimini-upload">
<input name="logo_image" class="layui-input layui-col-xs6" placeholder="请上传LOGO图标" value="{:sysconfig('site','logo_image')}">
<div class="layuimini-upload-btn">
<span><a class="layui-btn" data-upload="logo_image" data-upload-number="one" data-upload-exts="*image"><i class="fa fa-upload"></i> 上传</a></span>
<span><a class="layui-btn layui-btn-normal" id="select_logo_image" data-upload-select="logo_image" data-upload-number="one"><i class="fa fa-list"></i> 选择</a></span>
</div>
</div>
</div>
<div class="hr-line"></div>
<div class="layui-form-item text-center">
<button type="submit" class="layui-btn layui-btn-normal layui-btn-sm" lay-submit="system.config/save" data-refresh="false">确认</button>
<button type="reset" class="layui-btn layui-btn-primary layui-btn-sm">重置</button>
</div>
</form>

View File

@@ -1,72 +0,0 @@
<form id="app-form" class="layui-form layuimini-form">
<input type="hidden" name="group_name" value="site">
<div class="layui-form-item">
<label class="layui-form-label">站点名称</label>
<div class="layui-input-block">
<input type="text" name="site_name" class="layui-input" lay-verify="required" placeholder="请输入站点名称" value="{:sysconfig('site','site_name')}">
<tip>填写站点名称。</tip>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">浏览器图标</label>
<div class="layui-input-block layuimini-upload">
<input name="site_ico" class="layui-input layui-col-xs6" lay-verify="required" placeholder="请上传浏览器图标,ico类型" value="{:sysconfig('site','site_ico')}">
<div class="layuimini-upload-btn">
<span><a class="layui-btn" data-upload="site_ico" data-upload-number="one" data-upload-exts="ico"><i class="fa fa-upload"></i> 上传</a></span>
<span><a class="layui-btn layui-btn-normal" id="select_site_ico" data-upload-select="site_ico" data-upload-number="one"><i class="fa fa-list"></i> 选择</a></span>
</div>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">版本信息</label>
<div class="layui-input-block">
<input type="text" name="site_version" class="layui-input" lay-verify="required" placeholder="请输入版本信息" value="{:sysconfig('site','site_version')}">
<tip>填写版本信息。</tip>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">备案信息</label>
<div class="layui-input-block">
<input type="text" name="site_beian" class="layui-input" lay-verify="required" placeholder="请输入备案信息" value="{:sysconfig('site','site_beian')}">
<tip>填写备案信息。</tip>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">版权信息</label>
<div class="layui-input-block">
<input type="text" name="site_copyright" class="layui-input" lay-verify="required" placeholder="请输入版权信息" value="{:sysconfig('site','site_copyright')}">
<tip>填写版权信息。</tip>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">站点域名</label>
<div class="layui-input-block">
<input type="text" name="site_domain" class="layui-input" lay-verify="required" placeholder="请输入站点名称" value="{:sysconfig('site','site_domain')}">
<tip>填写站点域名。以http://或https://开头,内置的定时任务用到了这个配置项,修改之后需要重启定时任务</tip>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">默认密码</label>
<div class="layui-input-block">
<input type="text" name="site_default_password" class="layui-input" placeholder="请输入默认密码" value="{:sysconfig('site','site_default_password')}">
<tip>添加账号时自动填充的密码默认为123456 。建议填写为您系统特有的默认密码规则比如ul-aa@@123</tip>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">js脚本</label>
<div class="layui-input-block">
<textarea name="site_js_insert" class="layui-textarea">{:sysconfig('site','site_js_insert')}</textarea>
<tip>统计代码等脚本</tip>
</div>
</div>
<div class="hr-line"></div>
<div class="layui-form-item text-center">
<button type="submit" class="layui-btn layui-btn-normal layui-btn-sm" lay-submit="system.config/save" data-refresh="false">确认</button>
<button type="reset" class="layui-btn layui-btn-primary layui-btn-sm">重置</button>
</div>
</form>

View File

@@ -1,161 +0,0 @@
<form id="app-form" class="layui-form layuimini-form show-type">
<input type="hidden" name="group_name" value="upload">
<div class="layui-form-item">
<label class="layui-form-label required">存储方式</label>
<div class="layui-input-block">
{foreach ['local_public'=>'本地存储','alioss'=>'阿里云oss','qnoss'=>'七牛云oss','txcos'=>'腾讯云cos'] as $key=>$val}
<input type="radio" name="upload_type" lay-filter="upload_type" value="{$key}" title="{$val}" {if $key==sysconfig('upload','upload_type')}checked="" {/if}>
{/foreach}
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required">允许类型</label>
<div class="layui-input-block">
<input type="text" name="upload_allow_ext" class="layui-input" lay-verify="required" lay-reqtext="请输入允许类型" placeholder="请输入允许类型" value="{:sysconfig('upload','upload_allow_ext')}">
<tip>英文逗号做分隔符。</tip>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required">允许大小</label>
<div class="layui-input-block">
<input type="text" name="upload_allow_size" class="layui-input" lay-verify="required" lay-reqtext="请输入允许上传大小" placeholder="请输入允许上传大小" value="{:sysconfig('upload','upload_allow_size')}">
<tip>设置允许上传大小。</tip>
</div>
</div>
<div class="layui-form-item show-type-item local_public">
<label class="layui-form-label">站点域名</label>
<div class="layui-input-block">
<input type="text" name="local_domain" class="layui-input" placeholder="请输入站点域名" value="{:sysconfig('upload','local_domain')}">
<tip>例子:{$Request.domain},如果不填写,那么自动获取当前站点域名,但是在命令行调用上传时不能正确生成地址。</tip>
</div>
</div>
<div class="layui-form-item show-type-item alioss">
<label class="layui-form-label required">公钥信息</label>
<div class="layui-input-block">
<input type="text" name="alioss_access_key_id" class="layui-input" lay-verify="required" lay-reqtext="请输入公钥信息" placeholder="请输入公钥信息" value="{:sysconfig('upload','alioss_access_key_id')}">
<tip>例子FSGGshu64642THSk</tip>
</div>
</div>
<div class="layui-form-item show-type-item alioss">
<label class="layui-form-label required">私钥信息</label>
<div class="layui-input-block">
<input type="text" name="alioss_access_key_secret" class="layui-input" lay-verify="required" lay-reqtext="请输入私钥信息" placeholder="请输入私钥信息" value="{:sysconfig('upload','alioss_access_key_secret')}">
<tip>例子5fsfPReYKkFSGGshu64642THSkmTInaIm</tip>
</div>
</div>
<div class="layui-form-item show-type-item alioss">
<label class="layui-form-label required">数据中心</label>
<div class="layui-input-block">
<input type="text" name="alioss_endpoint" class="layui-input" lay-verify="required" lay-reqtext="请输入数据中心" placeholder="请输入数据中心" value="{:sysconfig('upload','alioss_endpoint')}">
<tip>endpoint例子oss-cn-shenzhen.aliyuncs.com</tip>
</div>
</div>
<div class="layui-form-item show-type-item alioss">
<label class="layui-form-label required">空间名称</label>
<div class="layui-input-block">
<input type="text" name="alioss_bucket" class="layui-input" lay-verify="required" lay-reqtext="请输入空间名称" placeholder="请输入空间名称" value="{:sysconfig('upload','alioss_bucket')}">
<tip>例子ulthon-admin</tip>
</div>
</div>
<div class="layui-form-item show-type-item alioss">
<label class="layui-form-label required">访问域名</label>
<div class="layui-input-block">
<input type="text" name="alioss_domain" class="layui-input" lay-verify="required" lay-reqtext="请输入访问域名" placeholder="请输入访问域名" value="{:sysconfig('upload','alioss_domain')}">
<tip>例子http://ulthon-admin.oss-cn-shenzhen.aliyuncs.com</tip>
</div>
</div>
<div class="layui-form-item show-type-item txcos">
<label class="layui-form-label required">APPID</label>
<div class="layui-input-block">
<input type="text" name="txcos_appid" class="layui-input" lay-verify="required" lay-reqtext="请输入APPID" placeholder="请输入APPID" value="{:sysconfig('upload','txcos_appid')}">
<tip>开发者访问 COS 服务时拥有的用户维度唯一资源标识,用以标识资源,可在 API 密钥管理 页面获取</tip>
</div>
</div>
<div class="layui-form-item show-type-item txcos">
<label class="layui-form-label required">公钥信息</label>
<div class="layui-input-block">
<input type="text" name="txcos_secret_id" class="layui-input" lay-verify="required" lay-reqtext="请输入公钥信息" placeholder="请输入公钥信息" value="{:sysconfig('upload','txcos_secret_id')}">
<tip>例子AKIDta6OQCbALQGrCI6ngKwQffR3dfsfrwrfs</tip>
</div>
</div>
<div class="layui-form-item show-type-item txcos">
<label class="layui-form-label required">私钥信息</label>
<div class="layui-input-block">
<input type="text" name="txcos_secret_key" class="layui-input" lay-verify="required" lay-reqtext="请输入私钥信息" placeholder="请输入私钥信息" value="{:sysconfig('upload','txcos_secret_key')}">
<tip>例子VllEWYKtClAbpqfFdTqysXxGQM6dsfs</tip>
</div>
</div>
<div class="layui-form-item show-type-item txcos">
<label class="layui-form-label required">存储桶地域</label>
<div class="layui-input-block">
<input type="text" name="txcos_region" class="layui-input" lay-verify="required" lay-reqtext="请输入存储桶地域" placeholder="请输入存储桶地域" value="{:sysconfig('upload','txcos_region')}">
<tip>例子ap-guangzhou</tip>
</div>
</div>
<div class="layui-form-item show-type-item txcos">
<label class="layui-form-label required">存储桶名称</label>
<div class="layui-input-block">
<input type="text" name="txcos_bucket" class="layui-input" lay-verify="required" lay-reqtext="请输入存储桶名称" placeholder="请输入存储桶名称" value="{:sysconfig('upload','txcos_bucket')}">
<tip>例子ulthon-admin ,注意不需要拼接appid等数字</tip>
</div>
</div>
<div class="layui-form-item show-type-item txcos">
<label class="layui-form-label required">访问域名</label>
<div class="layui-input-block">
<input type="text" name="txcos_domain" class="layui-input" lay-verify="required" lay-reqtext="请输入访问域名" placeholder="请输入访问域名" value="{:sysconfig('upload','txcos_domain')}">
<tip>例子https://xh-1255063857.cos.ap-chengdu.myqcloud.com</tip>
</div>
</div>
<div class="layui-form-item show-type-item qnoss">
<label class="layui-form-label required">公钥信息</label>
<div class="layui-input-block">
<input type="text" name="qnoss_access_key" class="layui-input" lay-verify="required" lay-reqtext="请输入公钥信息" placeholder="请输入公钥信息" value="{:sysconfig('upload','qnoss_access_key')}">
<tip>例子v-lV3tXev7yyfsfa1jRc6_8rFOhFYGQvvjsAQxdrB</tip>
</div>
</div>
<div class="layui-form-item show-type-item qnoss">
<label class="layui-form-label required">私钥信息</label>
<div class="layui-input-block">
<input type="text" name="qnoss_secret_key" class="layui-input" lay-verify="required" lay-reqtext="请输入私钥信息" placeholder="请输入私钥信息" value="{:sysconfig('upload','qnoss_secret_key')}">
<tip>例子XOhYRR9JNqxsWVEO-mHWB4193vfsfsQADuORaXzr</tip>
</div>
</div>
<div class="layui-form-item show-type-item qnoss">
<label class="layui-form-label required">存储空间</label>
<div class="layui-input-block">
<input type="text" name="qnoss_bucket" class="layui-input" lay-verify="required" lay-reqtext="请输入存储桶地域" placeholder="请输入存储桶地域" value="{:sysconfig('upload','qnoss_bucket')}">
<tip>例子ulthon-admin</tip>
</div>
</div>
<div class="layui-form-item show-type-item qnoss">
<label class="layui-form-label required">访问域名</label>
<div class="layui-input-block">
<input type="text" name="qnoss_domain" class="layui-input" lay-verify="required" lay-reqtext="请输入访问域名" placeholder="请输入访问域名" value="{:sysconfig('upload','qnoss_domain')}">
<tip>例子http://q0xqzappp.bkt.clouddn.com</tip>
</div>
</div>
<div class="hr-line"></div>
<div class="layui-form-item text-center">
<button type="submit" class="layui-btn layui-btn-normal layui-btn-sm" lay-submit="system.config/save" data-refresh="false">确认</button>
<button type="reset" class="layui-btn layui-btn-primary layui-btn-sm">重置</button>
</div>
</form>
<script>
var upload_type = "{:sysconfig('upload','upload_type')}";
</script>

View File

@@ -1,14 +0,0 @@
var table = layui.table,
treetable = layui.treetable,
iconPickerFa = layui.iconPickerFa,
autocomplete = layui.autocomplete;
var init = {
table_elem: '#currentTable',
table_render_id: 'currentTableRenderId',
index_url: 'system.menu/index',
add_url: 'system.menu/add',
delete_url: 'system.menu/delete',
edit_url: 'system.menu/edit',
modify_url: 'system.menu/modify',
};

View File

@@ -1,81 +0,0 @@
<style>
.layui-iconpicker-body.layui-iconpicker-body-page .hide {
display: none;
}
</style>
<link rel="stylesheet" href="__STATIC__/plugs/lay-module/autocomplete/autocomplete.css?v={$version}" media="all">
<div class="layuimini-container">
<form id="app-form" class="layui-form layuimini-form">
<div class="layui-form-item layui-row layui-col-xs12">
<label class="layui-form-label required">上级菜单</label>
<div class="layui-input-block">
<select name="pid">
{foreach $pidMenuList as $vo}
<option value="{$vo.id}" {if $id==$vo.id}selected=""{/if}>{$vo.title|raw}</option>
{/foreach}
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required">菜单名称</label>
<div class="layui-input-block">
<input type="text" name="title" class="layui-input" lay-verify="required" lay-reqtext="请输入菜单名称" placeholder="请输入菜单名称" value="">
<tip>填写菜单名称。</tip>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">菜单链接</label>
<div class="layui-input-block">
<input type="text" id="href" name="href" class="layui-input" lay-reqtext="请输入菜单链接" placeholder="请输入菜单链接" value="">
<tip>填写菜单链接。</tip>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">选择图标</label>
<div class="layui-input-block">
<input type="text" id="icon" name="icon" lay-filter="icon" class="hide" value="fa fa-list">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required">target属性</label>
<div class="layui-input-block">
{foreach ['_self','_blank','_parent','_top'] as $vo}
<input type="radio" name="target" value="{$vo}" title="{$vo}" {if $vo=='_self'}checked=""{/if}>
{/foreach}
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">权限标志</label>
<div class="layui-input-block">
<input type="text" name="auth_node" class="layui-input" placeholder="请输入权限标志" value="">
<tip>明确指定一个权限标志,判断权限时按照该值判断。默认按照菜单链接判断权限。</tip>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">菜单排序</label>
<div class="layui-input-block">
<input type="number" name="sort" lay-reqtext="菜单排序不能为空" placeholder="请输入菜单排序" value="0" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">备注信息</label>
<div class="layui-input-block">
<textarea name="remark" class="layui-textarea" placeholder="请输入备注信息"></textarea>
</div>
</div>
<div class="hr-line"></div>
<div class="layui-form-item text-center">
<button type="submit" class="layui-btn layui-btn-normal layui-btn-sm" lay-submit>确认</button>
<button type="reset" class="layui-btn layui-btn-primary layui-btn-sm">重置</button>
</div>
</form>
</div>

View File

@@ -1,31 +0,0 @@
$(function () {
iconPickerFa.render({
elem: '#icon',
url: PATH_CONFIG.iconLess,
limit: 12,
click: function (data) {
$('#icon').val('fa ' + data.icon);
},
success: function (d) {
}
});
autocomplete.render({
elem: $('#href')[0],
url: ua.url('system.menu/getMenuTips'),
template_val: '{{-d.node}}',
template_txt: '{{-d.node}} <span class=\'layui-badge layui-bg-gray\'>{{-d.title}}</span>',
onselect: function (resp) {
}
});
ua.listen(function (data) {
return data;
}, function (res) {
ua.msg.success(res.msg, function () {
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
parent.$('[data-treetable-refresh]').trigger("click");
});
});
});

View File

@@ -1,81 +0,0 @@
<style>
.layui-iconpicker-body.layui-iconpicker-body-page .hide {
display: none;
}
</style>
<link rel="stylesheet" href="__STATIC__/plugs/lay-module/autocomplete/autocomplete.css?v={$version}" media="all">
<div class="layuimini-container">
<form id="app-form" class="layui-form layuimini-form">
<div class="layui-form-item layui-row layui-col-xs12">
<label class="layui-form-label required">上级菜单</label>
<div class="layui-input-block">
<select name="pid">
{foreach $pidMenuList as $vo}
<option value="{$vo.id}" {if $row.pid==$vo.id}selected=""{/if}>{$vo.title|raw}</option>
{/foreach}
</select>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required">菜单名称</label>
<div class="layui-input-block">
<input type="text" name="title" class="layui-input" lay-verify="required" lay-reqtext="请输入菜单名称" placeholder="请输入菜单名称" value="{$row.title|default=''}">
<tip>填写菜单名称。</tip>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">菜单链接</label>
<div class="layui-input-block">
<input type="text" name="href" id="href" class="layui-input" lay-reqtext="请输入菜单链接" placeholder="请输入菜单链接" value="{$row.href|default=''}">
<tip>填写菜单链接。</tip>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">选择图标</label>
<div class="layui-input-block">
<input type="text" id="icon" name="icon" lay-filter="icon" class="hide" value="{$row.icon|default=''}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label required">target属性</label>
<div class="layui-input-block">
{foreach ['_self','_blank','_parent','_top'] as $vo}
<input type="radio" name="target" value="{$vo}" title="{$vo}" {if $row.target==$vo}checked=""{/if}>
{/foreach}
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">菜单排序</label>
<div class="layui-input-block">
<input type="number" name="sort" lay-reqtext="菜单排序不能为空" placeholder="请输入菜单排序" value="{$row.sort|default=''}" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">权限标志</label>
<div class="layui-input-block">
<input type="text" name="auth_node" class="layui-input" placeholder="请输入权限标志" value="{$row.auth_node|default=''}">
<tip>明确指定一个权限标志,判断权限时按照该值判断。默认按照菜单链接判断权限。</tip>
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">备注信息</label>
<div class="layui-input-block">
<textarea name="remark" class="layui-textarea" placeholder="请输入备注信息">{$row.remark|default=''}</textarea>
</div>
</div>
<div class="hr-line"></div>
<div class="layui-form-item text-center">
<button type="submit" class="layui-btn layui-btn-normal layui-btn-sm" lay-submit>确认</button>
<button type="reset" class="layui-btn layui-btn-primary layui-btn-sm">重置</button>
</div>
</form>
</div>

View File

@@ -1,31 +0,0 @@
$(function () {
iconPickerFa.render({
elem: '#icon',
url: PATH_CONFIG.iconLess,
limit: 12,
click: function (data) {
$('#icon').val('fa ' + data.icon);
},
success: function (d) {
console.log(d);
}
});
autocomplete.render({
elem: $('#href')[0],
url: ua.url('system.menu/getMenuTips'),
template_val: '{{-d.node}}',
template_txt: '{{-d.node}} <span class=\'layui-badge layui-bg-gray\'>{{-d.title}}</span>',
onselect: function (resp) {
}
});
ua.listen(function (data) {
return data;
}, function (res) {
ua.msg.success(res.msg, function () {
var index = parent.layer.getFrameIndex(window.name);
parent.layer.close(index);
parent.$('[data-treetable-refresh]').trigger("click");
});
});
});

View File

@@ -1,24 +0,0 @@
<link rel="stylesheet" href="__STATIC__/plugs/lay-module/treetable-lay/treetable.css?v={:time()}" media="all">
<style>
.layui-btn:not(.layui-btn-lg ):not(.layui-btn-sm):not(.layui-btn-xs) {
height: 34px;
line-height: 34px;
padding: 0 8px;
}
</style>
<div class="layuimini-container">
<div class="layuimini-main">
<table id="currentTable" class="layui-table layui-hide"
data-auth-add="{:auth('system.menu/add')}"
data-auth-edit="{:auth('system.menu/edit')}"
data-auth-delete="{:auth('system.menu/delete')}"
data-auth-modify="{:auth('system.menu/modify')}"
lay-filter="currentTable">
</table>
</div>
</div>
<script type="text/html" id="toolbar">
<button class="layui-btn layui-btn-sm layuimini-btn-primary" data-treetable-refresh><i class="fa fa-refresh"></i> </button>
<button class="layui-btn layui-btn-normal layui-btn-sm {if !auth('system.menu/add')}layui-hide{/if}" data-open="system.menu/add" data-title="添加" data-full="true"><i class="fa fa-plus"></i> 添加</button>
<button class="layui-btn layui-btn-sm layui-btn-danger {if !auth('system.menu/del')}layui-hide{/if}" data-url="system.menu/del" data-treetable-delete="currentTableRenderId"><i class="fa fa-trash-o"></i> 删除</button>
</script>

View File

@@ -1,162 +0,0 @@
$(function () {
var renderTable = function () {
layer.load(2);
treetable.render({
treeColIndex: 1,
treeSpid: 0,
homdPid: 99999999,
treeIdName: 'id',
treePidName: 'pid',
url: ua.url(init.index_url),
elem: init.table_elem,
id: init.table_render_id,
toolbar: '#toolbar',
page: false,
skin: 'line',
// @todo 不直接使用ua.table.render(); 进行表格初始化, 需要使用 ua.table.formatCols(); 方法格式化`cols`列数据
cols: ua.table.formatCols([[
{ type: 'checkbox' },
{ field: 'title', sort: false, width: 250, title: '菜单名称', align: 'left' },
{ field: 'icon', sort: false, width: 80, title: '图标', templet: ua.table.icon },
{ field: 'href', sort: false, minWidth: 120, title: '菜单链接' },
{
field: 'is_home', sort: false,
width: 80,
title: '类型',
templet: function (d) {
if (d.pid === 99999999) {
return '<span class="layui-badge layui-bg-blue">首页</span>';
}
if (d.pid === 0) {
return '<span class="layui-badge layui-bg-gray">模块</span>';
} else {
return '<span class="layui-badge-rim">菜单</span>';
}
}
},
{ field: 'status', sort: false, title: '状态', width: 85, templet: ua.table.switch },
{ field: 'sort', sort: false, width: 80, title: '排序', edit: 'text' },
{
width: 220,
title: '操作',
fixed: 'right',
templet: ua.table.tool,
operat: [
[{
text: '添加下级',
url: init.add_url,
method: 'open',
auth: 'add',
class: 'layui-btn layui-btn-xs layui-btn-normal',
extend: 'data-full="true"',
_if: function (data) {
if (data.pid == 99999999) {
return false;
}
return true;
}
}, {
text: '编辑',
url: init.edit_url,
method: 'open',
auth: 'edit',
class: 'layui-btn layui-btn-xs layui-btn-success',
extend: 'data-full="true"',
_if: 'status'
}, {
text: '删除',
method: 'none',
auth: 'delete',
class: 'layui-btn layui-btn-xs layui-btn-danger',
extend: 'data-treetable-delete-item="1" data-url="' + init.delete_url + '"',
data: ['id', 'title'],
_if(data) {
if (data.pid == ua.getDataBrage('menu_home_pid')) {
return false
}
return true;
}
},],
]
}
]], init),
done: function () {
layer.closeAll('loading');
$(".layui-table-main tr").each(function (index, val) {
$(".layui-table-fixed").each(function () {
$($(this).find(".layui-table-body tbody tr")[index]).height($(val).height());
});
});
}
});
};
renderTable();
$('body').on('click', '[data-treetable-refresh]', function () {
renderTable();
});
$('body').on('click', '[data-treetable-delete-item]', function () {
var id = $(this).data('id');
var url = $(this).attr('data-url');
url = url != undefined ? ua.url(url) : window.location.href;
ua.msg.confirm('确定删除?', function () {
ua.request.post({
url: url,
data: {
id: id
},
}, function (res) {
ua.msg.success(res.msg, function () {
renderTable();
});
});
});
return false;
})
$('body').on('click', '[data-treetable-delete]', function () {
var tableId = $(this).attr('data-treetable-delete'),
url = $(this).attr('data-url');
tableId = tableId || init.table_render_id;
url = url != undefined ? ua.url(url) : window.location.href;
var checkStatus = table.checkStatus(tableId),
data = checkStatus.data;
if (data.length <= 0) {
ua.msg.error('请勾选需要删除的数据');
return false;
}
var ids = [];
$.each(data, function (i, v) {
ids.push(v.id);
});
ua.msg.confirm('确定删除?', function () {
ua.request.post({
url: url,
data: {
id: ids
},
}, function (res) {
ua.msg.success(res.msg, function () {
renderTable();
});
});
});
return false;
});
ua.table.listenSwitch({ filter: 'status', url: init.modify_url });
ua.table.listenEdit(init, 'currentTable', init.table_render_id, false);
ua.listen();
});

View File

@@ -1,9 +0,0 @@
var init = {
table_elem: '#currentTable',
table_render_id: 'currentTableRenderId',
index_url: 'system.node/index',
add_url: 'system.node/add',
edit_url: 'system.node/edit',
delete_url: 'system.node/delete',
modify_url: 'system.node/modify',
};

View File

@@ -1,10 +0,0 @@
<div class="layuimini-container">
<div class="layuimini-main">
<table id="currentTable" class="layui-table layui-hide"
data-auth-refresh="{:auth('system.node/refreshNode')}"
data-auth-clear="{:auth('system.node/clearNode')}"
data-auth-modify="{:auth('system.node/modify')}"
lay-filter="currentTable">
</table>
</div>
</div>

View File

@@ -1,47 +0,0 @@
$(function () {
ua.table.render({
init: init,
search: false,
page: false,
toolbar: ['refresh',
[{
text: '更新节点',
title: '确定更新新节点?',
url: 'system.node/refreshNode?force=0',
method: 'request',
auth: 'refresh',
class: 'layui-btn layui-btn-success layui-btn-sm',
icon: 'fa fa-hourglass',
extend: 'data-table="' + init.table_render_id + '"',
}, {
text: '强制更新节点',
title: '该操作会覆盖已存在的节点信息。<br>确定强制更新节点?',
url: 'system.node/refreshNode?force=1',
method: 'request',
auth: 'refresh',
class: 'layui-btn layui-btn-sm layui-btn-normal',
icon: 'fa fa-hourglass',
extend: 'data-table="' + init.table_render_id + '"',
}, {
text: '清除失效节点',
title: '确定清除失效节点?',
url: 'system.node/clearNode',
method: 'request',
auth: 'clear',
class: 'layui-btn layui-btn-sm layui-btn-danger',
icon: 'fa fa-trash-o',
extend: 'data-table="' + init.table_render_id + '"',
}
]],
cols: [[
{ field: 'node', sort: false, minWidth: 200, align: 'left', title: '系统节点' },
{ field: 'title', sort: false, minWidth: 80, title: '节点名称 <i class="table-edit-tips color-red">*</i>', edit: 'text' },
{ field: 'update_time', sort: false, minWidth: 80, title: '更新时间', search: 'range' },
{ field: 'is_auth', sort: false, title: '节点控制', width: 85, search: 'select', selectList: { 0: '禁用', 1: '启用' }, templet: ua.table.switch },
]],
});
ua.listen();
});

View File

@@ -1,13 +0,0 @@
var iconPickerFa = layui.iconPickerFa,
autocomplete = layui.autocomplete;
var init = {
table_elem: '#currentTable',
table_render_id: 'currentTableRenderId',
index_url: 'system.quick/index',
add_url: 'system.quick/add',
edit_url: 'system.quick/edit',
delete_url: 'system.quick/delete',
export_url: 'system.quick/export',
modify_url: 'system.quick/modify',
};

View File

@@ -1,52 +0,0 @@
<style>
.layui-iconpicker-body.layui-iconpicker-body-page .hide {
display: none;
}
</style>
<link rel="stylesheet" href="__STATIC__/plugs/lay-module/autocomplete/autocomplete.css?v={$version}" media="all">
<div class="layuimini-container">
<form id="app-form" class="layui-form layuimini-form">
<div class="layui-form-item">
<label class="layui-form-label">快捷名称</label>
<div class="layui-input-block">
<input type="text" name="title" class="layui-input" lay-verify="required" lay-reqtext="请输入快捷名称" placeholder="请输入快捷名称" value="">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">快捷链接</label>
<div class="layui-input-block">
<input type="text" id="href" name="href" class="layui-input" lay-verify="required" placeholder="请输入快捷链接" value="">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">选择图标</label>
<div class="layui-input-block">
<input type="text" id="icon" name="icon" lay-filter="icon" class="hide" value="fa fa-list">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">菜单排序</label>
<div class="layui-input-block">
<input type="number" name="sort" lay-reqtext="菜单排序不能为空" placeholder="请输入菜单排序" value="0" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">备注信息</label>
<div class="layui-input-block">
<textarea name="remark" class="layui-textarea" placeholder="请输入备注信息"></textarea>
</div>
</div>
<div class="hr-line"></div>
<div class="layui-form-item text-center">
<button type="submit" class="layui-btn layui-btn-normal layui-btn-sm" lay-submit>确认</button>
<button type="reset" class="layui-btn layui-btn-primary layui-btn-sm">重置</button>
</div>
</form>
</div>

View File

@@ -1,23 +0,0 @@
$(function () {
iconPickerFa.render({
elem: '#icon',
url: PATH_CONFIG.iconLess,
limit: 12,
click: function (data) {
$('#icon').val('fa ' + data.icon);
},
success: function (d) {
console.log(d);
}
});
autocomplete.render({
elem: $('#href')[0],
url: ua.url('system.menu/getMenuTips'),
template_val: '{{d.node}}',
template_txt: '{{d.node}} <span class=\'layui-badge layui-bg-gray\'>{{d.title}}</span>',
onselect: function (resp) {
}
});
ua.listen();
});

View File

@@ -1,52 +0,0 @@
<style>
.layui-iconpicker-body.layui-iconpicker-body-page .hide {
display: none;
}
</style>
<link rel="stylesheet" href="__STATIC__/plugs/lay-module/autocomplete/autocomplete.css?v={$version}" media="all">
<div class="layuimini-container">
<form id="app-form" class="layui-form layuimini-form">
<div class="layui-form-item">
<label class="layui-form-label">快捷名称</label>
<div class="layui-input-block">
<input type="text" name="title" class="layui-input" lay-verify="required" lay-reqtext="请输入快捷名称" placeholder="请输入快捷名称" value="{$row.title|default=''}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">快捷链接</label>
<div class="layui-input-block">
<input type="text" id="href" name="href" class="layui-input" lay-verify="required" placeholder="请输入快捷链接" value="{$row.href|default=''}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">选择图标</label>
<div class="layui-input-block">
<input type="text" id="icon" name="icon" lay-filter="icon" class="hide" value="{$row.icon|default=''}">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">菜单排序</label>
<div class="layui-input-block">
<input type="number" name="sort" lay-reqtext="菜单排序不能为空" placeholder="请输入菜单排序" value="{$row.sort|default=''}" class="layui-input">
</div>
</div>
<div class="layui-form-item layui-form-text">
<label class="layui-form-label">备注信息</label>
<div class="layui-input-block">
<textarea name="remark" class="layui-textarea" placeholder="请输入备注信息">{$row.remark|default=''}</textarea>
</div>
</div>
<div class="hr-line"></div>
<div class="layui-form-item text-center">
<button type="submit" class="layui-btn layui-btn-normal layui-btn-sm" lay-submit>确认</button>
<button type="reset" class="layui-btn layui-btn-primary layui-btn-sm">重置</button>
</div>
</form>
</div>

View File

@@ -1,23 +0,0 @@
$(function () {
iconPickerFa.render({
elem: '#icon',
url: PATH_CONFIG.iconLess,
limit: 12,
click: function (data) {
$('#icon').val('fa ' + data.icon);
},
success: function (d) {
console.log(d);
}
});
autocomplete.render({
elem: $('#href')[0],
url: ua.url('system.menu/getMenuTips'),
template_val: '{{d.node}}',
template_txt: '{{d.node}} <span class=\'layui-badge layui-bg-gray\'>{{d.title}}</span>',
onselect: function (resp) {
}
});
ua.listen();
});

View File

@@ -1,11 +0,0 @@
<div class="layuimini-container">
<div class="layuimini-main">
<table id="currentTable" class="layui-table layui-hide"
data-auth-add="{:auth('system.quick/add')}"
data-auth-edit="{:auth('system.quick/edit')}"
data-auth-delete="{:auth('system.quick/delete')}"
data-auth-modify="{:auth('system.quick/modify')}"
lay-filter="currentTable">
</table>
</div>
</div>

View File

@@ -1,20 +0,0 @@
$(function () {
ua.table.render({
init: init,
cols: [[
{type: "checkbox"},
{field: 'id', width: 80, title: 'ID'},
{field: 'sort', width: 80, title: '排序', edit: 'text'},
{field: 'title', minWidth: 80, title: '权限名称'},
{field: 'icon', width: 80, title: '图标', templet: ua.table.icon},
{field: 'href', minWidth: 120, title: '快捷链接'},
{field: 'remark', minWidth: 80, title: '备注信息'},
{field: 'status', title: '状态', width: 85, search: 'select', selectList: {0: '禁用', 1: '启用'}, templet: ua.table.switch},
{field: 'create_time', minWidth: 80, title: '创建时间', search: 'range'},
{width: 250, title: '操作', templet: ua.table.tool, operat: ['edit', 'delete']}
]],
});
ua.listen();
});

View File

@@ -1,10 +0,0 @@
var init = {
table_elem: '#currentTable',
table_render_id: 'currentTableRenderId',
index_url: 'system.uploadfile/index',
add_url: 'system.uploadfile/add',
edit_url: 'system.uploadfile/edit',
delete_url: 'system.uploadfile/delete',
modify_url: 'system.uploadfile/modify',
export_url: 'system.uploadfile/export',
};

View File

@@ -1,15 +0,0 @@
<div class="layuimini-container">
<form id="app-form" class="layui-form layuimini-form">
<div class="layui-form-item">
<label class="layui-form-label required">文件信息</label>
<div class="layui-input-block layuimini-upload">
<input name="head_img" class="layui-input layui-col-xs6" lay-verify="required" lay-reqtext="请上传文件" placeholder="请上传文件" value="">
<div class="layuimini-upload-btn">
<span><a class="layui-btn" data-upload="head_img" data-upload-number="*" data-upload-exts=""><i class="fa fa-upload"></i> 上传文件</a></span>
</div>
</div>
</div>
</form>
</div>

View File

@@ -1,4 +0,0 @@
$(function () {
ua.listen();
});

View File

@@ -1,10 +0,0 @@
<div class="layuimini-container">
<div class="layuimini-main">
<table id="currentTable" class="layui-table layui-hide"
data-auth-add="{:auth('system.menu/add')}"
data-auth-edit="{:auth('system.menu/edit')}"
data-auth-delete="{:auth('system.menu/delete')}"
lay-filter="currentTable">
</table>
</div>
</div>

View File

@@ -1,34 +0,0 @@
$(function () {
ua.table.render({
init: init,
cols: [[
{ type: "checkbox" },
{ field: 'id', width: 80, title: 'ID' },
{ field: 'upload_type', minWidth: 80, title: '存储位置', search: 'select', selectList: { 'local': '本地', 'alioss': '阿里云', 'qnoss': '七牛云', ',txcos': '腾讯云' } },
{ field: 'url', minWidth: 80, search: false, title: '文件预览', templet: ua.table.filePreview },
{
field: 'url', minWidth: 120, title: '保存地址', templet: ua.table.url, urlNameField: function (data) {
return data.url;
}
},
{ field: 'original_name', minWidth: 80, title: '文件原名' },
{ field: 'mime_type', minWidth: 80, title: 'mime类型' },
{ field: 'file_ext', minWidth: 80, title: '文件后缀' },
{ field: 'create_time', minWidth: 80, title: '创建时间', search: 'range' },
{
width: 250, title: '操作', templet: ua.table.tool, operat: ['delete'], fixed: 'right', hide: function () {
var selectMode = ua.getQueryVariable("select_mode");
console.log(selectMode);
if (selectMode == 'radio' || selectMode == 'checkbox') {
return true;
}
return false;
}
}
]],
});
ua.listen();
});

View File

@@ -12,18 +12,20 @@ use think\console\Output;
class Version extends Command
{
public const VERSION = 'v2.0.43';
public const VERSION = 'v2.0.44';
public const LAYUI_VERSION = '2.8.16';
public const COMMENT = [
'调整更新逻辑',
'实现view的扩展架构',
'调整think-view依赖',
'发布新版本',
];
public const UPDATE_TIPS = [
'本次调整了append类型的更新文件列表',
'建议删除以下目录的内容,再重新获取更新,以便初始化相关类,但如果您定制了相关文件,请不要删除,可以参考最新版本的代码调整文件',
'本次更新调整了composer依赖请根据实际情况调整',
'删除 think-view',
'引入 topthink/think-template-view',
];
protected function configure()