mirror of https://github.com/helloxz/onenav.git
39 changed files with 27393 additions and 66 deletions
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1,325 @@ |
|||||||
|
/*! |
||||||
|
* Bootstrap Reboot v4.6.1 (https://getbootstrap.com/) |
||||||
|
* Copyright 2011-2021 The Bootstrap Authors |
||||||
|
* Copyright 2011-2021 Twitter, Inc. |
||||||
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) |
||||||
|
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md) |
||||||
|
*/ |
||||||
|
*, |
||||||
|
*::before, |
||||||
|
*::after { |
||||||
|
box-sizing: border-box; |
||||||
|
} |
||||||
|
|
||||||
|
html { |
||||||
|
font-family: sans-serif; |
||||||
|
line-height: 1.15; |
||||||
|
-webkit-text-size-adjust: 100%; |
||||||
|
-webkit-tap-highlight-color: rgba(0, 0, 0, 0); |
||||||
|
} |
||||||
|
|
||||||
|
article, aside, figcaption, figure, footer, header, hgroup, main, nav, section { |
||||||
|
display: block; |
||||||
|
} |
||||||
|
|
||||||
|
body { |
||||||
|
margin: 0; |
||||||
|
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; |
||||||
|
font-size: 1rem; |
||||||
|
font-weight: 400; |
||||||
|
line-height: 1.5; |
||||||
|
color: #212529; |
||||||
|
text-align: left; |
||||||
|
background-color: #fff; |
||||||
|
} |
||||||
|
|
||||||
|
[tabindex="-1"]:focus:not(:focus-visible) { |
||||||
|
outline: 0 !important; |
||||||
|
} |
||||||
|
|
||||||
|
hr { |
||||||
|
box-sizing: content-box; |
||||||
|
height: 0; |
||||||
|
overflow: visible; |
||||||
|
} |
||||||
|
|
||||||
|
h1, h2, h3, h4, h5, h6 { |
||||||
|
margin-top: 0; |
||||||
|
margin-bottom: 0.5rem; |
||||||
|
} |
||||||
|
|
||||||
|
p { |
||||||
|
margin-top: 0; |
||||||
|
margin-bottom: 1rem; |
||||||
|
} |
||||||
|
|
||||||
|
abbr[title], |
||||||
|
abbr[data-original-title] { |
||||||
|
text-decoration: underline; |
||||||
|
-webkit-text-decoration: underline dotted; |
||||||
|
text-decoration: underline dotted; |
||||||
|
cursor: help; |
||||||
|
border-bottom: 0; |
||||||
|
-webkit-text-decoration-skip-ink: none; |
||||||
|
text-decoration-skip-ink: none; |
||||||
|
} |
||||||
|
|
||||||
|
address { |
||||||
|
margin-bottom: 1rem; |
||||||
|
font-style: normal; |
||||||
|
line-height: inherit; |
||||||
|
} |
||||||
|
|
||||||
|
ol, |
||||||
|
ul, |
||||||
|
dl { |
||||||
|
margin-top: 0; |
||||||
|
margin-bottom: 1rem; |
||||||
|
} |
||||||
|
|
||||||
|
ol ol, |
||||||
|
ul ul, |
||||||
|
ol ul, |
||||||
|
ul ol { |
||||||
|
margin-bottom: 0; |
||||||
|
} |
||||||
|
|
||||||
|
dt { |
||||||
|
font-weight: 700; |
||||||
|
} |
||||||
|
|
||||||
|
dd { |
||||||
|
margin-bottom: .5rem; |
||||||
|
margin-left: 0; |
||||||
|
} |
||||||
|
|
||||||
|
blockquote { |
||||||
|
margin: 0 0 1rem; |
||||||
|
} |
||||||
|
|
||||||
|
b, |
||||||
|
strong { |
||||||
|
font-weight: bolder; |
||||||
|
} |
||||||
|
|
||||||
|
small { |
||||||
|
font-size: 80%; |
||||||
|
} |
||||||
|
|
||||||
|
sub, |
||||||
|
sup { |
||||||
|
position: relative; |
||||||
|
font-size: 75%; |
||||||
|
line-height: 0; |
||||||
|
vertical-align: baseline; |
||||||
|
} |
||||||
|
|
||||||
|
sub { |
||||||
|
bottom: -.25em; |
||||||
|
} |
||||||
|
|
||||||
|
sup { |
||||||
|
top: -.5em; |
||||||
|
} |
||||||
|
|
||||||
|
a { |
||||||
|
color: #007bff; |
||||||
|
text-decoration: none; |
||||||
|
background-color: transparent; |
||||||
|
} |
||||||
|
|
||||||
|
a:hover { |
||||||
|
color: #0056b3; |
||||||
|
text-decoration: underline; |
||||||
|
} |
||||||
|
|
||||||
|
a:not([href]):not([class]) { |
||||||
|
color: inherit; |
||||||
|
text-decoration: none; |
||||||
|
} |
||||||
|
|
||||||
|
a:not([href]):not([class]):hover { |
||||||
|
color: inherit; |
||||||
|
text-decoration: none; |
||||||
|
} |
||||||
|
|
||||||
|
pre, |
||||||
|
code, |
||||||
|
kbd, |
||||||
|
samp { |
||||||
|
font-family: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; |
||||||
|
font-size: 1em; |
||||||
|
} |
||||||
|
|
||||||
|
pre { |
||||||
|
margin-top: 0; |
||||||
|
margin-bottom: 1rem; |
||||||
|
overflow: auto; |
||||||
|
-ms-overflow-style: scrollbar; |
||||||
|
} |
||||||
|
|
||||||
|
figure { |
||||||
|
margin: 0 0 1rem; |
||||||
|
} |
||||||
|
|
||||||
|
img { |
||||||
|
vertical-align: middle; |
||||||
|
border-style: none; |
||||||
|
} |
||||||
|
|
||||||
|
svg { |
||||||
|
overflow: hidden; |
||||||
|
vertical-align: middle; |
||||||
|
} |
||||||
|
|
||||||
|
table { |
||||||
|
border-collapse: collapse; |
||||||
|
} |
||||||
|
|
||||||
|
caption { |
||||||
|
padding-top: 0.75rem; |
||||||
|
padding-bottom: 0.75rem; |
||||||
|
color: #6c757d; |
||||||
|
text-align: left; |
||||||
|
caption-side: bottom; |
||||||
|
} |
||||||
|
|
||||||
|
th { |
||||||
|
text-align: inherit; |
||||||
|
text-align: -webkit-match-parent; |
||||||
|
} |
||||||
|
|
||||||
|
label { |
||||||
|
display: inline-block; |
||||||
|
margin-bottom: 0.5rem; |
||||||
|
} |
||||||
|
|
||||||
|
button { |
||||||
|
border-radius: 0; |
||||||
|
} |
||||||
|
|
||||||
|
button:focus:not(:focus-visible) { |
||||||
|
outline: 0; |
||||||
|
} |
||||||
|
|
||||||
|
input, |
||||||
|
button, |
||||||
|
select, |
||||||
|
optgroup, |
||||||
|
textarea { |
||||||
|
margin: 0; |
||||||
|
font-family: inherit; |
||||||
|
font-size: inherit; |
||||||
|
line-height: inherit; |
||||||
|
} |
||||||
|
|
||||||
|
button, |
||||||
|
input { |
||||||
|
overflow: visible; |
||||||
|
} |
||||||
|
|
||||||
|
button, |
||||||
|
select { |
||||||
|
text-transform: none; |
||||||
|
} |
||||||
|
|
||||||
|
[role="button"] { |
||||||
|
cursor: pointer; |
||||||
|
} |
||||||
|
|
||||||
|
select { |
||||||
|
word-wrap: normal; |
||||||
|
} |
||||||
|
|
||||||
|
button, |
||||||
|
[type="button"], |
||||||
|
[type="reset"], |
||||||
|
[type="submit"] { |
||||||
|
-webkit-appearance: button; |
||||||
|
} |
||||||
|
|
||||||
|
button:not(:disabled), |
||||||
|
[type="button"]:not(:disabled), |
||||||
|
[type="reset"]:not(:disabled), |
||||||
|
[type="submit"]:not(:disabled) { |
||||||
|
cursor: pointer; |
||||||
|
} |
||||||
|
|
||||||
|
button::-moz-focus-inner, |
||||||
|
[type="button"]::-moz-focus-inner, |
||||||
|
[type="reset"]::-moz-focus-inner, |
||||||
|
[type="submit"]::-moz-focus-inner { |
||||||
|
padding: 0; |
||||||
|
border-style: none; |
||||||
|
} |
||||||
|
|
||||||
|
input[type="radio"], |
||||||
|
input[type="checkbox"] { |
||||||
|
box-sizing: border-box; |
||||||
|
padding: 0; |
||||||
|
} |
||||||
|
|
||||||
|
textarea { |
||||||
|
overflow: auto; |
||||||
|
resize: vertical; |
||||||
|
} |
||||||
|
|
||||||
|
fieldset { |
||||||
|
min-width: 0; |
||||||
|
padding: 0; |
||||||
|
margin: 0; |
||||||
|
border: 0; |
||||||
|
} |
||||||
|
|
||||||
|
legend { |
||||||
|
display: block; |
||||||
|
width: 100%; |
||||||
|
max-width: 100%; |
||||||
|
padding: 0; |
||||||
|
margin-bottom: .5rem; |
||||||
|
font-size: 1.5rem; |
||||||
|
line-height: inherit; |
||||||
|
color: inherit; |
||||||
|
white-space: normal; |
||||||
|
} |
||||||
|
|
||||||
|
progress { |
||||||
|
vertical-align: baseline; |
||||||
|
} |
||||||
|
|
||||||
|
[type="number"]::-webkit-inner-spin-button, |
||||||
|
[type="number"]::-webkit-outer-spin-button { |
||||||
|
height: auto; |
||||||
|
} |
||||||
|
|
||||||
|
[type="search"] { |
||||||
|
outline-offset: -2px; |
||||||
|
-webkit-appearance: none; |
||||||
|
} |
||||||
|
|
||||||
|
[type="search"]::-webkit-search-decoration { |
||||||
|
-webkit-appearance: none; |
||||||
|
} |
||||||
|
|
||||||
|
::-webkit-file-upload-button { |
||||||
|
font: inherit; |
||||||
|
-webkit-appearance: button; |
||||||
|
} |
||||||
|
|
||||||
|
output { |
||||||
|
display: inline-block; |
||||||
|
} |
||||||
|
|
||||||
|
summary { |
||||||
|
display: list-item; |
||||||
|
cursor: pointer; |
||||||
|
} |
||||||
|
|
||||||
|
template { |
||||||
|
display: none; |
||||||
|
} |
||||||
|
|
||||||
|
[hidden] { |
||||||
|
display: none !important; |
||||||
|
} |
||||||
|
/*# sourceMappingURL=bootstrap-reboot.css.map */ |
File diff suppressed because one or more lines are too long
@ -0,0 +1,8 @@ |
|||||||
|
/*! |
||||||
|
* Bootstrap Reboot v4.6.1 (https://getbootstrap.com/) |
||||||
|
* Copyright 2011-2021 The Bootstrap Authors |
||||||
|
* Copyright 2011-2021 Twitter, Inc. |
||||||
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) |
||||||
|
* Forked from Normalize.css, licensed MIT (https://github.com/necolas/normalize.css/blob/master/LICENSE.md) |
||||||
|
*/*,::after,::before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}article,aside,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:left;background-color:#fff}[tabindex="-1"]:focus:not(:focus-visible){outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem}p{margin-top:0;margin-bottom:1rem}abbr[data-original-title],abbr[title]{text-decoration:underline;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;border-bottom:0;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#007bff;text-decoration:none;background-color:transparent}a:hover{color:#0056b3;text-decoration:underline}a:not([href]):not([class]){color:inherit;text-decoration:none}a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;font-size:1em}pre{margin-top:0;margin-bottom:1rem;overflow:auto;-ms-overflow-style:scrollbar}figure{margin:0 0 1rem}img{vertical-align:middle;border-style:none}svg{overflow:hidden;vertical-align:middle}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit;text-align:-webkit-match-parent}label{display:inline-block;margin-bottom:.5rem}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important} |
||||||
|
/*# sourceMappingURL=bootstrap-reboot.min.css.map */ |
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -0,0 +1,487 @@ |
|||||||
|
/** |
||||||
|
* iconHhysFa 1.0 字体图标选择 |
||||||
|
* User: jackhhy |
||||||
|
* Date: 2020/06/23-11:09 |
||||||
|
* Link: https://gitee.com/luckygyl/iconFonts
|
||||||
|
*/ |
||||||
|
layui.define(['laypage', 'form'], function (exports) { |
||||||
|
"use strict"; |
||||||
|
|
||||||
|
var IconHhys =function () { |
||||||
|
this.v = '1.0'; |
||||||
|
}, _MOD = 'iconHhysFa', |
||||||
|
_this = this, |
||||||
|
$ = layui.jquery, |
||||||
|
laypage = layui.laypage, |
||||||
|
form = layui.form, |
||||||
|
BODY = 'body', |
||||||
|
TIPS = '请选择图标'; |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* 渲染组件 |
||||||
|
*/ |
||||||
|
IconHhys.prototype.render = function (options) { |
||||||
|
var opts = options, |
||||||
|
// DOM选择器
|
||||||
|
elem = opts.elem, |
||||||
|
// 数据类型:fontClass/awesome
|
||||||
|
type = opts.type == null ? 'fontClass' : opts.type, |
||||||
|
//当数据类型为awesome 的时候 需要配置 url
|
||||||
|
url = opts.url , |
||||||
|
// 是否分页:true/false
|
||||||
|
page = opts.page == null ? true : opts.page, |
||||||
|
// 每页显示数量
|
||||||
|
limit = opts.limit == null ? 12 : opts.limit, |
||||||
|
// 是否开启搜索:true/false
|
||||||
|
search = opts.search == null ? true : opts.search, |
||||||
|
// 每个图标格子的宽度:'43px'或'20%'
|
||||||
|
cellWidth = opts.cellWidth == null ? '20%':opts.cellWidth, |
||||||
|
// 点击回调
|
||||||
|
click = opts.click, |
||||||
|
// 渲染成功后的回调
|
||||||
|
success = opts.success, |
||||||
|
// json数据
|
||||||
|
data = {}, |
||||||
|
value = opts.value == null ? '' : opts.value, |
||||||
|
// 唯一标识
|
||||||
|
tmp = new Date().getTime(), |
||||||
|
// 初始化时input的值
|
||||||
|
ORIGINAL_ELEM_VALUE = value, |
||||||
|
TITLE = 'layui-select-title', |
||||||
|
TITLE_ID = 'layui-select-title-' + tmp, |
||||||
|
ICON_BODY = 'layui-iconpicker-' + tmp, |
||||||
|
PICKER_BODY = 'layui-iconpicker-body-' + tmp, |
||||||
|
PAGE_ID = 'layui-iconpicker-page-' + tmp, |
||||||
|
LIST_BOX = 'layui-iconpicker-list-box', |
||||||
|
selected = 'layui-form-selected', |
||||||
|
unselect = 'layui-unselect'; |
||||||
|
|
||||||
|
var a = { |
||||||
|
init: function () { |
||||||
|
if (type.indexOf("fontClass") > -1){ |
||||||
|
data = common.getfont[type](); |
||||||
|
}else{ |
||||||
|
data = common.getData(url); |
||||||
|
} |
||||||
|
a.hideElem().createSelect().createBody().toggleSelect(); |
||||||
|
a.preventEvent().inputListen(); |
||||||
|
common.loadCss(); |
||||||
|
if (success) { |
||||||
|
success(this.successHandle()); |
||||||
|
} |
||||||
|
return a; |
||||||
|
}, |
||||||
|
successHandle: function () { |
||||||
|
var d = { |
||||||
|
options: opts, |
||||||
|
data: data, |
||||||
|
id: tmp, |
||||||
|
elem: $('#' + ICON_BODY) |
||||||
|
}; |
||||||
|
return d; |
||||||
|
}, |
||||||
|
/** |
||||||
|
* 隐藏elem |
||||||
|
*/ |
||||||
|
hideElem: function () { |
||||||
|
$(elem).hide(); |
||||||
|
return a; |
||||||
|
}, |
||||||
|
/** |
||||||
|
* 绘制select下拉选择框 |
||||||
|
*/ |
||||||
|
createSelect: function () { |
||||||
|
if (type.indexOf("fontClass") > -1){ |
||||||
|
var oriIcon = '<i class="layui-icon">'; |
||||||
|
|
||||||
|
// 默认图标
|
||||||
|
if(ORIGINAL_ELEM_VALUE === '') { |
||||||
|
ORIGINAL_ELEM_VALUE = 'layui-icon-circle-dot'; |
||||||
|
} |
||||||
|
oriIcon = '<i class="layui-icon '+ ORIGINAL_ELEM_VALUE +'">'; |
||||||
|
oriIcon += '</i>'; |
||||||
|
|
||||||
|
var selectHtml = '<div class="layui-iconpicker layui-unselect layui-form-select" id="'+ ICON_BODY +'">' + |
||||||
|
'<div class="'+ TITLE +'" id="'+ TITLE_ID +'">' + |
||||||
|
'<div class="layui-iconpicker-item">'+ |
||||||
|
'<span class="layui-iconpicker-icon layui-unselect">' + |
||||||
|
oriIcon + |
||||||
|
'</span>'+ |
||||||
|
'<i class="layui-edge"></i>' + |
||||||
|
'</div>'+ |
||||||
|
'</div>' + |
||||||
|
'<div class="layui-anim layui-anim-upbit" style="">' + |
||||||
|
'123' + |
||||||
|
'</div>'; |
||||||
|
$(elem).after(selectHtml); |
||||||
|
return a; |
||||||
|
}else{ |
||||||
|
var oriIcon = '<i class="fa">'; |
||||||
|
// 默认图标
|
||||||
|
if (ORIGINAL_ELEM_VALUE === '') { |
||||||
|
ORIGINAL_ELEM_VALUE = 'fa-adjust'; |
||||||
|
} |
||||||
|
oriIcon = '<i class="fa ' + ORIGINAL_ELEM_VALUE + '">'; |
||||||
|
oriIcon += '</i>'; |
||||||
|
|
||||||
|
var selectHtml = '<div class="layui-iconpicker layui-unselect layui-form-select" id="' + ICON_BODY + '">' + |
||||||
|
'<div class="' + TITLE + '" id="' + TITLE_ID + '">' + |
||||||
|
'<div class="layui-iconpicker-item">' + |
||||||
|
'<span class="layui-iconpicker-icon layui-unselect">' + |
||||||
|
oriIcon + |
||||||
|
'</span>' + |
||||||
|
'<i class="layui-edge"></i>' + |
||||||
|
'</div>' + |
||||||
|
'</div>' + |
||||||
|
'<div class="layui-anim layui-anim-upbit" style="">' + |
||||||
|
'123' + |
||||||
|
'</div>'; |
||||||
|
$(elem).after(selectHtml); |
||||||
|
return a; |
||||||
|
} |
||||||
|
|
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 展开/折叠下拉框 |
||||||
|
*/ |
||||||
|
toggleSelect: function () { |
||||||
|
var item = '#' + TITLE_ID + ' .layui-iconpicker-item,#' + TITLE_ID + ' .layui-iconpicker-item .layui-edge'; |
||||||
|
a.event('click', item, function (e) { |
||||||
|
var $icon = $('#' + ICON_BODY); |
||||||
|
if ($icon.hasClass(selected)) { |
||||||
|
$icon.removeClass(selected).addClass(unselect); |
||||||
|
} else { |
||||||
|
// 隐藏其他picker
|
||||||
|
$('.layui-form-select').removeClass(selected); |
||||||
|
// 显示当前picker
|
||||||
|
$icon.addClass(selected).removeClass(unselect); |
||||||
|
} |
||||||
|
e.stopPropagation(); |
||||||
|
}); |
||||||
|
return a; |
||||||
|
|
||||||
|
}, |
||||||
|
|
||||||
|
/** |
||||||
|
* 绘制主体部分 |
||||||
|
*/ |
||||||
|
createBody: function () { |
||||||
|
// 获取数据
|
||||||
|
var searchHtml = ''; |
||||||
|
|
||||||
|
if (search) { |
||||||
|
searchHtml = '<div class="layui-iconpicker-search">' + |
||||||
|
'<input class="layui-input">' + |
||||||
|
'<i class="layui-icon"></i>' + |
||||||
|
'</div>'; |
||||||
|
} |
||||||
|
// 组合dom
|
||||||
|
var bodyHtml = '<div class="layui-iconpicker-body" id="'+ PICKER_BODY +'">' + |
||||||
|
searchHtml + |
||||||
|
'<div class="'+ LIST_BOX +'"></div> '+ |
||||||
|
'</div>'; |
||||||
|
$('#' + ICON_BODY).find('.layui-anim').eq(0).html(bodyHtml); |
||||||
|
a.search().createList().check().page(); |
||||||
|
return a; |
||||||
|
}, |
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* 绘制图标列表 |
||||||
|
* @param text 模糊查询关键字 |
||||||
|
* @returns {string} |
||||||
|
*/ |
||||||
|
createList: function (text) { |
||||||
|
var d = data, |
||||||
|
l = d.length, |
||||||
|
pageHtml = '', |
||||||
|
listHtml = $('<div class="layui-iconpicker-list">')//'<div class="layui-iconpicker-list">';
|
||||||
|
|
||||||
|
// 计算分页数据
|
||||||
|
var _limit = limit, // 每页显示数量
|
||||||
|
_pages = l % _limit === 0 ? l / _limit : parseInt(l / _limit + 1), // 总计多少页
|
||||||
|
_id = PAGE_ID; |
||||||
|
|
||||||
|
// 图标列表
|
||||||
|
var icons = []; |
||||||
|
|
||||||
|
for (var i = 0; i < l; i++) { |
||||||
|
var obj = d[i]; |
||||||
|
|
||||||
|
// 判断是否模糊查询
|
||||||
|
if (text && obj.indexOf(text) === -1) { |
||||||
|
continue; |
||||||
|
} |
||||||
|
|
||||||
|
// 是否自定义格子宽度
|
||||||
|
var style = ''; |
||||||
|
if (cellWidth !== null) { |
||||||
|
style += ' style="width:' + cellWidth + '"'; |
||||||
|
} |
||||||
|
// 每个图标dom
|
||||||
|
var icon = '<div class="layui-iconpicker-icon-item" title="'+ obj +'" '+ style +'>'; |
||||||
|
|
||||||
|
if(type.indexOf("fontClass") >-1){ |
||||||
|
icon += '<i class="layui-icon '+ obj +'"></i>'; |
||||||
|
}else { |
||||||
|
icon += '<i class="fa ' + obj + '"></i>'; |
||||||
|
} |
||||||
|
icon += '</div>'; |
||||||
|
|
||||||
|
icons.push(icon); |
||||||
|
} |
||||||
|
|
||||||
|
// 查询出图标后再分页
|
||||||
|
l = icons.length; |
||||||
|
_pages = l % _limit === 0 ? l / _limit : parseInt(l / _limit + 1); |
||||||
|
for (var i = 0; i < _pages; i++) { |
||||||
|
// 按limit分块
|
||||||
|
var lm = $('<div class="layui-iconpicker-icon-limit" id="layui-iconpicker-icon-limit-' + tmp + (i+1) +'">'); |
||||||
|
|
||||||
|
for (var j = i * _limit; j < (i+1) * _limit && j < l; j++) { |
||||||
|
lm.append(icons[j]); |
||||||
|
} |
||||||
|
listHtml.append(lm); |
||||||
|
} |
||||||
|
// 无数据
|
||||||
|
if (l === 0) { |
||||||
|
listHtml.append('<p class="layui-iconpicker-tips">无数据</p>'); |
||||||
|
} |
||||||
|
// 判断是否分页
|
||||||
|
if (page){ |
||||||
|
$('#' + PICKER_BODY).addClass('layui-iconpicker-body-page'); |
||||||
|
pageHtml = '<div class="layui-iconpicker-page" id="'+ PAGE_ID +'">' + |
||||||
|
'<div class="layui-iconpicker-page-count">' + |
||||||
|
'<span id="'+ PAGE_ID +'-current">1</span>/' + |
||||||
|
'<span id="'+ PAGE_ID +'-pages">'+ _pages +'</span>' + |
||||||
|
' (<span id="'+ PAGE_ID +'-length">'+ l +'</span>)' + |
||||||
|
'</div>' + |
||||||
|
'<div class="layui-iconpicker-page-operate">' + |
||||||
|
'<i class="layui-icon" id="'+ PAGE_ID +'-prev" data-index="0" prev></i> ' + |
||||||
|
'<i class="layui-icon" id="'+ PAGE_ID +'-next" data-index="2" next></i> ' + |
||||||
|
'</div>' + |
||||||
|
'</div>'; |
||||||
|
} |
||||||
|
|
||||||
|
$('#' + ICON_BODY).find('.layui-anim').find('.' + LIST_BOX).html('').append(listHtml).append(pageHtml); |
||||||
|
return a; |
||||||
|
}, |
||||||
|
// 阻止Layui的一些默认事件
|
||||||
|
preventEvent: function() { |
||||||
|
var item = '#' + ICON_BODY + ' .layui-anim'; |
||||||
|
a.event('click', item, function (e) { |
||||||
|
e.stopPropagation(); |
||||||
|
}); |
||||||
|
return a; |
||||||
|
}, |
||||||
|
|
||||||
|
// 分页
|
||||||
|
page: function () { |
||||||
|
var icon = '#' + PAGE_ID + ' .layui-iconpicker-page-operate .layui-icon'; |
||||||
|
|
||||||
|
$(icon).unbind('click'); |
||||||
|
a.event('click', icon, function (e) { |
||||||
|
var elem = e.currentTarget, |
||||||
|
total = parseInt($('#' +PAGE_ID + '-pages').html()), |
||||||
|
isPrev = $(elem).attr('prev') !== undefined, |
||||||
|
// 按钮上标的页码
|
||||||
|
index = parseInt($(elem).attr('data-index')), |
||||||
|
$cur = $('#' +PAGE_ID + '-current'), |
||||||
|
// 点击时正在显示的页码
|
||||||
|
current = parseInt($cur.html()); |
||||||
|
|
||||||
|
// 分页数据
|
||||||
|
if (isPrev && current > 1) { |
||||||
|
current=current-1; |
||||||
|
$(icon + '[prev]').attr('data-index', current); |
||||||
|
} else if (!isPrev && current < total){ |
||||||
|
current=current+1; |
||||||
|
$(icon + '[next]').attr('data-index', current); |
||||||
|
} |
||||||
|
$cur.html(current); |
||||||
|
|
||||||
|
// 图标数据
|
||||||
|
$('#'+ ICON_BODY + ' .layui-iconpicker-icon-limit').hide(); |
||||||
|
$('#layui-iconpicker-icon-limit-' + tmp + current).show(); |
||||||
|
e.stopPropagation(); |
||||||
|
}); |
||||||
|
return a; |
||||||
|
}, |
||||||
|
/** |
||||||
|
* 搜索 |
||||||
|
*/ |
||||||
|
search: function () { |
||||||
|
var item = '#' + PICKER_BODY + ' .layui-iconpicker-search .layui-input'; |
||||||
|
a.event('input propertychange', item, function (e) { |
||||||
|
var elem = e.target, |
||||||
|
t = $(elem).val(); |
||||||
|
a.createList(t); |
||||||
|
}); |
||||||
|
return a; |
||||||
|
}, |
||||||
|
/** |
||||||
|
* 点击选中图标 |
||||||
|
*/ |
||||||
|
check: function () { |
||||||
|
if(type.indexOf("fontClass") >-1){ |
||||||
|
var item = '#' + PICKER_BODY + ' .layui-iconpicker-icon-item'; |
||||||
|
a.event('click', item, function (e) { |
||||||
|
var el = $(e.currentTarget).find('.layui-icon'), |
||||||
|
icon = ''; |
||||||
|
|
||||||
|
var clsArr = el.attr('class').split(/[\s\n]/), |
||||||
|
cls = clsArr[1], |
||||||
|
icon = cls; |
||||||
|
$('#' + TITLE_ID).find('.layui-iconpicker-item .layui-icon').html('').attr('class', clsArr.join(' ')); |
||||||
|
|
||||||
|
|
||||||
|
$('#' + ICON_BODY).removeClass(selected).addClass(unselect); |
||||||
|
$(elem).val(icon).attr('value', icon); |
||||||
|
// 回调
|
||||||
|
if (click) { |
||||||
|
click({ |
||||||
|
icon: icon |
||||||
|
}); |
||||||
|
} |
||||||
|
}); |
||||||
|
}else{ |
||||||
|
var item = '#' + PICKER_BODY + ' .layui-iconpicker-icon-item'; |
||||||
|
a.event('click', item, function (e) { |
||||||
|
var el = $(e.currentTarget).find('.fa'), |
||||||
|
icon = ''; |
||||||
|
|
||||||
|
var clsArr = el.attr('class').split(/[\s\n]/), |
||||||
|
cls = clsArr[1], |
||||||
|
icon = cls; |
||||||
|
$('#' + TITLE_ID).find('.layui-iconpicker-item .fa').html('').attr('class', clsArr.join(' ')); |
||||||
|
|
||||||
|
$('#' + ICON_BODY).removeClass(selected).addClass(unselect); |
||||||
|
$(elem).val(icon).attr('value', icon); |
||||||
|
// 回调
|
||||||
|
if (click) { |
||||||
|
click({ |
||||||
|
icon: icon |
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
}); |
||||||
|
} |
||||||
|
|
||||||
|
return a; |
||||||
|
|
||||||
|
}, |
||||||
|
|
||||||
|
|
||||||
|
// 监听原始input数值改变
|
||||||
|
inputListen: function(){ |
||||||
|
var el = $(elem); |
||||||
|
a.event('change', elem, function(){ |
||||||
|
var value = el.val(); |
||||||
|
}) |
||||||
|
// el.change(function(){
|
||||||
|
|
||||||
|
// });
|
||||||
|
return a; |
||||||
|
}, |
||||||
|
event: function (evt, el, fn) { |
||||||
|
$(BODY).on(evt, el, fn); |
||||||
|
} |
||||||
|
|
||||||
|
}; |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
var common = { |
||||||
|
/** |
||||||
|
* 加载样式表 |
||||||
|
*/ |
||||||
|
loadCss: function () { |
||||||
|
var css = '.layui-iconpicker {max-width: 280px;}.layui-iconpicker .layui-anim{display:none;position:absolute;left:0;top:42px;padding:5px 0;z-index:899;min-width:100%;border:1px solid #d2d2d2;max-height:300px;overflow-y:auto;background-color:#fff;border-radius:2px;box-shadow:0 2px 4px rgba(0,0,0,.12);box-sizing:border-box;}.layui-iconpicker-item{border:1px solid #e6e6e6;width:90px;height:36px;border-radius:4px;cursor:pointer;position:relative;}.layui-iconpicker-icon{border-right:1px solid #e6e6e6;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;display:block;width:60px;height:100%;float:left;text-align:center;background:#fff;transition:all .3s;}.layui-iconpicker-icon i{line-height:38px;font-size:18px;}.layui-iconpicker-item > .layui-edge{left:70px;}.layui-iconpicker-item:hover{border-color:#D2D2D2!important;}.layui-iconpicker-item:hover .layui-iconpicker-icon{border-color:#D2D2D2!important;}.layui-iconpicker.layui-form-selected .layui-anim{display:block;}.layui-iconpicker-body{padding:6px;}.layui-iconpicker .layui-iconpicker-list{background-color:#fff;border:1px solid #ccc;border-radius:4px;}.layui-iconpicker .layui-iconpicker-icon-item{display:inline-block;width:21.1%;line-height:36px;text-align:center;cursor:pointer;vertical-align:top;height:36px;margin:4px;border:1px solid #ddd;border-radius:2px;transition:300ms;}.layui-iconpicker .layui-iconpicker-icon-item i.layui-icon{font-size:17px;}.layui-iconpicker .layui-iconpicker-icon-item:hover{background-color:#eee;border-color:#ccc;-webkit-box-shadow:0 0 2px #aaa,0 0 2px #fff inset;-moz-box-shadow:0 0 2px #aaa,0 0 2px #fff inset;box-shadow:0 0 2px #aaa,0 0 2px #fff inset;text-shadow:0 0 1px #fff;}.layui-iconpicker-search{position:relative;margin:0 0 6px 0;border:1px solid #e6e6e6;border-radius:2px;transition:300ms;}.layui-iconpicker-search:hover{border-color:#D2D2D2!important;}.layui-iconpicker-search .layui-input{cursor:text;display:inline-block;width:86%;border:none;padding-right:0;margin-top:1px;}.layui-iconpicker-search .layui-icon{position:absolute;top:11px;right:4%;}.layui-iconpicker-tips{text-align:center;padding:8px 0;cursor:not-allowed;}.layui-iconpicker-page{margin-top:6px;margin-bottom:-6px;font-size:12px;padding:0 2px;}.layui-iconpicker-page-count{display:inline-block;}.layui-iconpicker-page-operate{display:inline-block;float:right;cursor:default;}.layui-iconpicker-page-operate .layui-icon{font-size:12px;cursor:pointer;}.layui-iconpicker-body-page .layui-iconpicker-icon-limit{display:none;}.layui-iconpicker-body-page .layui-iconpicker-icon-limit:first-child{display:block;}'; |
||||||
|
var $style = $('head').find('style[iconpicker]'); |
||||||
|
if ($style.length === 0) { |
||||||
|
$('head').append('<style rel="stylesheet" iconpicker>'+css+'</style>'); |
||||||
|
} |
||||||
|
}, |
||||||
|
/** |
||||||
|
* 获取数据 |
||||||
|
*/ |
||||||
|
getfont: { |
||||||
|
fontClass: function () { |
||||||
|
var arr = ["layui-icon-rate-half","layui-icon-rate","layui-icon-rate-solid","layui-icon-cellphone","layui-icon-vercode","layui-icon-login-wechat","layui-icon-login-qq","layui-icon-login-weibo","layui-icon-password","layui-icon-username","layui-icon-refresh-3","layui-icon-auz","layui-icon-spread-left","layui-icon-shrink-right","layui-icon-snowflake","layui-icon-tips","layui-icon-note","layui-icon-home","layui-icon-senior","layui-icon-refresh","layui-icon-refresh-1","layui-icon-flag","layui-icon-theme","layui-icon-notice","layui-icon-website","layui-icon-console","layui-icon-face-surprised","layui-icon-set","layui-icon-template-1","layui-icon-app","layui-icon-template","layui-icon-praise","layui-icon-tread","layui-icon-male","layui-icon-female","layui-icon-camera","layui-icon-camera-fill","layui-icon-more","layui-icon-more-vertical","layui-icon-rmb","layui-icon-dollar","layui-icon-diamond","layui-icon-fire","layui-icon-return","layui-icon-location","layui-icon-read","layui-icon-survey","layui-icon-face-smile","layui-icon-face-cry","layui-icon-cart-simple","layui-icon-cart","layui-icon-next","layui-icon-prev","layui-icon-upload-drag","layui-icon-upload","layui-icon-download-circle","layui-icon-component","layui-icon-file-b","layui-icon-user","layui-icon-find-fill","layui-icon-loading","layui-icon-loading-1","layui-icon-add-1","layui-icon-play","layui-icon-pause","layui-icon-headset","layui-icon-video","layui-icon-voice","layui-icon-speaker","layui-icon-fonts-del","layui-icon-fonts-code","layui-icon-fonts-html","layui-icon-fonts-strong","layui-icon-unlink","layui-icon-picture","layui-icon-link","layui-icon-face-smile-b","layui-icon-align-left","layui-icon-align-right","layui-icon-align-center","layui-icon-fonts-u","layui-icon-fonts-i","layui-icon-tabs","layui-icon-radio","layui-icon-circle","layui-icon-edit","layui-icon-share","layui-icon-delete","layui-icon-form","layui-icon-cellphone-fine","layui-icon-dialogue","layui-icon-fonts-clear","layui-icon-layer","layui-icon-date","layui-icon-water","layui-icon-code-circle","layui-icon-carousel","layui-icon-prev-circle","layui-icon-layouts","layui-icon-util","layui-icon-templeate-1","layui-icon-upload-circle","layui-icon-tree","layui-icon-table","layui-icon-chart","layui-icon-chart-screen","layui-icon-engine","layui-icon-triangle-d","layui-icon-triangle-r","layui-icon-file","layui-icon-set-sm","layui-icon-add-circle","layui-icon-404","layui-icon-about","layui-icon-up","layui-icon-down","layui-icon-left","layui-icon-right","layui-icon-circle-dot","layui-icon-search","layui-icon-set-fill","layui-icon-group","layui-icon-friends","layui-icon-reply-fill","layui-icon-menu-fill","layui-icon-log","layui-icon-picture-fine","layui-icon-face-smile-fine","layui-icon-list","layui-icon-release","layui-icon-ok","layui-icon-help","layui-icon-chat","layui-icon-top","layui-icon-star","layui-icon-star-fill","layui-icon-close-fill","layui-icon-close","layui-icon-ok-circle","layui-icon-add-circle-fine"]; |
||||||
|
return arr; |
||||||
|
} |
||||||
|
}, |
||||||
|
/** |
||||||
|
* 获取数据 |
||||||
|
*/ |
||||||
|
getData: function (url) { |
||||||
|
var iconlist = []; |
||||||
|
$.ajax({ |
||||||
|
url: url, |
||||||
|
type: 'get', |
||||||
|
contentType: "application/x-www-form-urlencoded; charset=UTF-8", |
||||||
|
async: false, |
||||||
|
success: function (ret) { |
||||||
|
var exp = /fa-var-(.*):/ig; |
||||||
|
var result; |
||||||
|
while ((result = exp.exec(ret)) != null) { |
||||||
|
iconlist.push('fa-' + result[1]); |
||||||
|
} |
||||||
|
}, |
||||||
|
error: function (xhr, textstatus, thrown) { |
||||||
|
layer.msg('fa图标接口有误'); |
||||||
|
} |
||||||
|
}); |
||||||
|
return iconlist; |
||||||
|
} |
||||||
|
|
||||||
|
}; |
||||||
|
|
||||||
|
a.init(); |
||||||
|
return new IconHhys(); |
||||||
|
|
||||||
|
} |
||||||
|
|
||||||
|
/** |
||||||
|
* 选中图标 |
||||||
|
* @param filter lay-filter |
||||||
|
* @param iconName 图标名称,自动识别fontClass/unicode |
||||||
|
*/ |
||||||
|
/** IconHhys.prototype.checkIcon = function (filter, iconName){ |
||||||
|
var el = $('*[lay-filter='+ filter +']'), |
||||||
|
p = el.next().find('.layui-iconpicker-item .layui-icon'), |
||||||
|
c = iconName; |
||||||
|
if (c.indexOf('#xe') > -1){ |
||||||
|
p.html(c); |
||||||
|
} else { |
||||||
|
p.html('').attr('class', 'layui-icon ' + c); |
||||||
|
} |
||||||
|
el.attr('value', c).val(c); |
||||||
|
};*/ |
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/** |
||||||
|
* 选中图标auwosome |
||||||
|
* @param filter lay-filter |
||||||
|
* @param iconName 图标名称,自动识别fontClass/unicode |
||||||
|
*/ |
||||||
|
/** IconHhys.prototype.checkAwesome = function (filter, iconName) { |
||||||
|
var el = $('*[lay-filter=' + filter + ']'), |
||||||
|
p = el.next().find('.layui-iconpicker-item .fa'), |
||||||
|
c = iconName; |
||||||
|
|
||||||
|
if (c.indexOf('#xe') > 0) { |
||||||
|
p.html(c); |
||||||
|
} else { |
||||||
|
p.html('').attr('class', 'fa ' + c); |
||||||
|
} |
||||||
|
el.attr('value', c).val(c); |
||||||
|
};*/ |
||||||
|
|
||||||
|
|
||||||
|
var iconHhys = new IconHhys(); |
||||||
|
exports(_MOD, iconHhys); |
||||||
|
}); |
@ -0,0 +1,231 @@ |
|||||||
|
<!-- 站点设置 --> |
||||||
|
<!-- 主题设置 --> |
||||||
|
<?php require_once(dirname(__DIR__).'/header.php'); ?> |
||||||
|
<?php include_once(dirname(__DIR__).'/left.php'); ?> |
||||||
|
<div class="layui-body"> |
||||||
|
<!-- 内容主体区域 --> |
||||||
|
<div class="layui-row content-body place-holder" style="padding-bottom: 3em;"> |
||||||
|
<!-- 说明提示框 --> |
||||||
|
<div class="layui-col-lg12"> |
||||||
|
<div class="setting-msg"> |
||||||
|
<ol> |
||||||
|
<li>您可以前往:<a href="https://dwz.ovh/69h9q" rel = "nofollow" target = "_blank" title = "购买订阅服务">https://dwz.ovh/69h9q</a> 购买订阅服务,订阅后可以:</li> |
||||||
|
<li>1. 享受一键更新OneNav</li> |
||||||
|
<li>2. 可在线更新和下载主题(实现中...)</li> |
||||||
|
<li>3. 可享受一对一售后服务(仅限高级版和商业版)</li> |
||||||
|
<li>4. 可帮助OneNav持续发展,让OneNav变得更加美好</li> |
||||||
|
<li>5. 更多高级功能(自定义版权、广告管理等)</li> |
||||||
|
</ol> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<!-- 说明提示框END --> |
||||||
|
<!-- 订阅表格 --> |
||||||
|
<div class="layui-col-lg6"> |
||||||
|
<h2 style = "margin-bottom:1em;">我的订阅:</h2> |
||||||
|
<form class="layui-form layui-form-pane" action=""> |
||||||
|
|
||||||
|
<div class="layui-form-item"> |
||||||
|
<label class="layui-form-label">订单号</label> |
||||||
|
<div class="layui-input-block"> |
||||||
|
<input type="text" id = "order_id" name="order_id" value = "<?php echo $subscribe['order_id']; ?>" required lay-verify="required" autocomplete="off" placeholder="请输入订单号" class="layui-input"> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="layui-form-item"> |
||||||
|
<label class="layui-form-label">订阅邮箱</label> |
||||||
|
<div class="layui-input-block"> |
||||||
|
<input type="email" name="email" id = "email" value = "<?php echo $subscribe['email']; ?>" required lay-verify="required|email" autocomplete="off" placeholder="订阅邮箱" class="layui-input"> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="layui-form-item" style = "display:none;"> |
||||||
|
<label class="layui-form-label">域名</label> |
||||||
|
<div class="layui-input-block"> |
||||||
|
<input type="text" name="domain" id = "domain" value = "<?php echo $_SERVER['HTTP_HOST']; ?>" autocomplete="off" placeholder="网站域名" 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="end_time" id = "end_time" readonly="readonly" value = "<?php echo date("Y-m-d",$subscribe['end_time']); ?>" autocomplete="off" placeholder="订阅到期时间" class="layui-input"> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
<div class="layui-form-item"> |
||||||
|
<button class="layui-btn" lay-submit="" lay-filter="set_subscribe">保存设置</button> |
||||||
|
<button class="layui-btn" lay-submit="" lay-filter="reset_subscribe">删除订阅</button> |
||||||
|
<a class="layui-btn layui-btn-danger" rel = "nofollow" target = "_blank" title = "点此购买订阅" href="https://dwz.ovh/69h9q"><i class="fa fa-shopping-cart"></i> 购买订阅</a> |
||||||
|
</div> |
||||||
|
|
||||||
|
</form> |
||||||
|
</div> |
||||||
|
<!-- 订阅表格END --> |
||||||
|
<hr> |
||||||
|
<div class="layui-col-lg12"> |
||||||
|
<!-- <h3>更新</h3> --> |
||||||
|
<form class="layui-form layui-form-pane" action=""> |
||||||
|
|
||||||
|
<div class="layui-form-item"> |
||||||
|
<div class="layui-inline"> |
||||||
|
<label class="layui-form-label">当前版本</label> |
||||||
|
<div class="layui-input-inline"> |
||||||
|
<input type="text" readonly = "readonly" id = "current_version" name="current_version" value = "<?php echo $current_version; ?>" required lay-verify="required" autocomplete="off" placeholder="当前版本" class="layui-input"> |
||||||
|
</div> |
||||||
|
<label class="layui-form-label">可用版本</label> |
||||||
|
<div class="layui-input-inline"> |
||||||
|
<input type="text" readonly = "readonly" name="new_version" id = "new_version" value = "" required lay-verify="required" autocomplete="off" placeholder="无可用版本" class="layui-input"> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
|
||||||
|
</form> |
||||||
|
<div class="layui-input-inline"> |
||||||
|
<button id = "btn_update" class="layui-btn" lay-submit="" onclick = "update_main()">立即更新</button> |
||||||
|
<button id = "btn_updating" style = "display:none;" class="layui-btn layui-btn-disabled" >更新中,请勿关闭窗口</button> |
||||||
|
<a href="https://dwz.ovh/7q4z6" title = "点此查看更新失败的原因" rel = "nofollow" target = "_blank">更新失败?</a> |
||||||
|
</div> |
||||||
|
<!-- 更新进度条 --> |
||||||
|
<div id="progress"> |
||||||
|
<div class="layui-progress layui-progress-big" lay-filter="update_progress" lay-showPercent="true"> |
||||||
|
<div class="layui-progress-bar layui-bg-blue" lay-percent="0%"></div> |
||||||
|
</div> |
||||||
|
<div id="msg" style = "margin-top:1em;"></div> |
||||||
|
</div> |
||||||
|
<!-- 更新进度条END --> |
||||||
|
</div> |
||||||
|
|
||||||
|
<!-- 日志面板 --> |
||||||
|
<div class="layui-col-lg12" style = "margin-top:1em;"> |
||||||
|
<div class="layui-collapse"> |
||||||
|
<div class="layui-colla-item"> |
||||||
|
<h2 class="layui-colla-title">日志输出:</h2> |
||||||
|
<div class="layui-colla-content"> |
||||||
|
<div id = "update_log"></div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<!-- 日志面板END --> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
|
||||||
|
|
||||||
|
<?php include_once(dirname(__DIR__).'/footer.php'); ?> |
||||||
|
|
||||||
|
<script> |
||||||
|
|
||||||
|
//获取可更新版本 |
||||||
|
function available_version() { |
||||||
|
var current_version = $("#current_version").val(); |
||||||
|
$.get("https://onenav.xiaoz.top/v1/get_version.php",{version:current_version},function(data,status){ |
||||||
|
$("#new_version").val(data); |
||||||
|
}); |
||||||
|
} |
||||||
|
available_version(); |
||||||
|
//立即更新按钮 |
||||||
|
function update_main() { |
||||||
|
//清空日志面板 |
||||||
|
var update_log = $("#update_log").html(); |
||||||
|
var current_version = $("#current_version").val(); |
||||||
|
var new_version = $("#new_version").val(); |
||||||
|
//如果当前版本和最新版本相同,则不能更新 |
||||||
|
if (current_version >= new_version) { |
||||||
|
layer.msg("已经是最新版本,无需更新!",{icon:5}); |
||||||
|
return false; |
||||||
|
} |
||||||
|
//如果可用版本为空 |
||||||
|
if ( new_version == '' ) { |
||||||
|
layer.msg("无可用版本,无需更新!",{icon:5}); |
||||||
|
return false; |
||||||
|
} |
||||||
|
|
||||||
|
//否则可以更新 |
||||||
|
else { |
||||||
|
$("#btn_update").hide(); |
||||||
|
$("#btn_updating").show(); |
||||||
|
update_status("1%","准备更新..."); |
||||||
|
$("#update_log").append("准备更新...\n"); |
||||||
|
//第一步检查更新信息 |
||||||
|
$.get("/index.php?c=api&method=check_subscribe",function(data,status){ |
||||||
|
update_status("10%","正在验证订阅信息..."); |
||||||
|
$("#update_log").append("正在验证订阅信息...<br />"); |
||||||
|
if( data.code == 200 ) { |
||||||
|
update_status("30%","订阅信息验证通过..."); |
||||||
|
$("#update_log").append("订阅信息验证通过...<br />"); |
||||||
|
//取得必要的变量 |
||||||
|
var email = data.data.email; |
||||||
|
var domain = data.data.domain; |
||||||
|
var key = data.data.key; |
||||||
|
var value = data.data.value; |
||||||
|
//下载更新程序 |
||||||
|
$.get("/index.php?c=api&method=up_updater",function(data,status) { |
||||||
|
update_status("50%","正在检查更新程序..."); |
||||||
|
$("#update_log").append("正在检查更新程序...<br />"); |
||||||
|
if( data.code == 200 ) { |
||||||
|
//继续往下执行 |
||||||
|
update_status("70%","更新程序准备完成..."); |
||||||
|
$("#update_log").append("更新程序准备完成...<br />"); |
||||||
|
//准备下载升级包 |
||||||
|
update_status("80%","准备下载升级包..."); |
||||||
|
$("#update_log").append("准备下载升级包...<br />"); |
||||||
|
$.get("/update.php",{version:new_version,key:key,value:value,type:'main'},function(data,stauts){ |
||||||
|
update_status("90%","升级包下载完毕,正在校验版本..."); |
||||||
|
$("#update_log").append("升级包下载完毕,正在校验版本...<br />"); |
||||||
|
if( data.code == 200 ) { |
||||||
|
//校验新版本 |
||||||
|
$.get("/index.php?c=api&method=check_version",{version:new_version},function(data,status){ |
||||||
|
if(data.code == 200) { |
||||||
|
update_status("100%","更新完成,请前往后台检查<a href = '/index.php?c=admin'>更新数据库</a>!"); |
||||||
|
$("#update_log").append("更新完成,请前往后台检查<a href = '/index.php?c=admin'>更新数据库</a>!<br />"); |
||||||
|
//$("#btn_update").show(); |
||||||
|
//$("#btn_updating").hide(); |
||||||
|
$("#btn_updating").show(); |
||||||
|
} |
||||||
|
else { |
||||||
|
update_error(data.msg); |
||||||
|
//layer.msg(data.msg,{icon:5,time: 0}); |
||||||
|
} |
||||||
|
}); |
||||||
|
} |
||||||
|
else{ |
||||||
|
update_error(data.msg); |
||||||
|
//layer.msg(data.msg,{icon:5,time: 0}); |
||||||
|
} |
||||||
|
}); |
||||||
|
} |
||||||
|
else { |
||||||
|
update_error(data.msg); |
||||||
|
//layer.msg(data.msg,{icon:5,time: 0}); |
||||||
|
} |
||||||
|
}); |
||||||
|
} |
||||||
|
else{ |
||||||
|
update_error(data.msg); |
||||||
|
//layer.msg(data.msg,{icon:5,time: 0}); |
||||||
|
} |
||||||
|
}); |
||||||
|
} |
||||||
|
} |
||||||
|
//进度和更新提示函数 |
||||||
|
function update_status(progress,msg) { |
||||||
|
layui.use('element', function(){ |
||||||
|
var element = layui.element; |
||||||
|
$("#progress").show(); |
||||||
|
element.progress('update_progress', progress); |
||||||
|
$("#msg").html(msg); |
||||||
|
}); |
||||||
|
|
||||||
|
} |
||||||
|
//更新失败时的提示 |
||||||
|
function update_error(msg) { |
||||||
|
layer.open({ |
||||||
|
title: '更新失败:' |
||||||
|
,content: msg |
||||||
|
,icon:5 |
||||||
|
}); |
||||||
|
$("#progress").hide(); |
||||||
|
$("#btn_update").show(); |
||||||
|
$("#btn_updating").hide(); |
||||||
|
} |
||||||
|
</script> |
Loading…
Reference in new issue