调整系统字体图标,改用 iconfont

This commit is contained in:
邹景立 2021-04-09 18:26:39 +08:00
parent c3093b487f
commit c7e5408da0
29 changed files with 4514 additions and 5312 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,5 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="zh"> <html lang="zh">
<head> <head>
<title>{block name="title"}{$title|default=''}{if !empty($title)} · {/if}{:sysconf('site_name')}{/block}</title> <title>{block name="title"}{$title|default=''}{if !empty($title)} · {/if}{:sysconf('site_name')}{/block}</title>
<meta charset="utf-8"> <meta charset="utf-8">
@ -11,14 +10,13 @@
<meta name="apple-mobile-web-app-status-bar-style" content="black"> <meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=0.4"> <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=0.4">
<link rel="shortcut icon" href="{:sysconf('site_icon')}"> <link rel="shortcut icon" href="{:sysconf('site_icon')}">
<link rel="stylesheet" href="__ROOT__/static/plugs/awesome/fonts.css?at={:date('md')}">
<link rel="stylesheet" href="__ROOT__/static/plugs/layui/css/layui.css?at={:date('md')}"> <link rel="stylesheet" href="__ROOT__/static/plugs/layui/css/layui.css?at={:date('md')}">
<link rel="stylesheet" href="__ROOT__/static/theme/css/iconfont.css?at={:date('md')}">
<link rel="stylesheet" href="__ROOT__/static/theme/css/console.css?at={:date('md')}"> <link rel="stylesheet" href="__ROOT__/static/theme/css/console.css?at={:date('md')}">
{block name="style"}{/block} {block name="style"}{/block}
<script>window.tapiRoot = '{:sysuri("admin/index/index",[],false)}'</script> <script>window.tapiRoot = '{:sysuri("admin/index/index",[],false)}'</script>
<script src="__ROOT__/static/plugs/jquery/pace.min.js"></script> <script src="__ROOT__/static/plugs/jquery/pace.min.js"></script>
</head> </head>
<body class="layui-layout-body"> <body class="layui-layout-body">
{block name='body'} {block name='body'}
<div class="layui-layout layui-layout-admin layui-layout-left-hide"> <div class="layui-layout layui-layout-admin layui-layout-left-hide">
@ -30,5 +28,4 @@
<script src="__ROOT__/static/admin.js"></script> <script src="__ROOT__/static/admin.js"></script>
{block name='script'}{/block} {block name='script'}{/block}
</body> </body>
</html> </html>

View File

@ -10,8 +10,8 @@
<meta name="apple-mobile-web-app-status-bar-style" content="black"> <meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=0.4"> <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=0.4">
<link rel="shortcut icon" href="{:sysconf('site_icon')}"> <link rel="shortcut icon" href="{:sysconf('site_icon')}">
<link rel="stylesheet" href="__ROOT__/static/plugs/awesome/fonts.css?at={:date('md')}">
<link rel="stylesheet" href="__ROOT__/static/plugs/layui/css/layui.css?at={:date('md')}"> <link rel="stylesheet" href="__ROOT__/static/plugs/layui/css/layui.css?at={:date('md')}">
<link rel="stylesheet" href="__ROOT__/static/theme/css/iconfont.css?at={:date('md')}">
<link rel="stylesheet" href="__ROOT__/static/theme/css/console.css?at={:date('md')}"> <link rel="stylesheet" href="__ROOT__/static/theme/css/console.css?at={:date('md')}">
{block name="style"}{/block} {block name="style"}{/block}
<script>window.tapiRoot = '{:sysuri("admin/index/index",[],false)}'</script> <script>window.tapiRoot = '{:sysuri("admin/index/index",[],false)}'</script>
@ -105,6 +105,10 @@
<div class="layui-body layui-bg-gray">{block name='content'}{/block}</div> <div class="layui-body layui-bg-gray">{block name='content'}{/block}</div>
<!-- 主体内容 结束 --> <!-- 主体内容 结束 -->
</div> </div>
<!-- 页面加载动画 -->
<div class="think-page-loader">
<div class="loader"></div>
</div>
{/block} {/block}
<script src="__ROOT__/static/plugs/layui/layui.all.js"></script> <script src="__ROOT__/static/plugs/layui/layui.all.js"></script>
<script src="__ROOT__/static/plugs/require/require.js"></script> <script src="__ROOT__/static/plugs/require/require.js"></script>

View File

@ -21,11 +21,10 @@
{block name="content"} {block name="content"}
<div class="layui-tab layui-tab-card think-bg-white"> <div class="layui-tab layui-tab-card think-bg-white">
<ul class="layui-tab-title"> <ul class="layui-tab-title">
{foreach ['all'=>'系统用户','recycle'=>'回 收 站'] as $k=>$v} {foreach ['all'=>'系统用户','recycle'=>'回 收 站'] as $k=>$v}{if isset($type) and $type eq $k}
{if isset($type) and $type eq $k} <li data-open="{:url('index')}?type={$k}" class="layui-this"><b>{$v}</b></li>
<li data-open="{:url('index')}?type={$k}" class="layui-this">{$v}</li>
{else} {else}
<li data-open="{:url('index')}?type={$k}">{$v}</li> <li data-open="{:url('index')}?type={$k}"><b>{$v}</b></li>
{/if}{/foreach} {/if}{/foreach}
</ul> </ul>
<div class="layui-tab-content think-box-shadow'amount''amount'"> <div class="layui-tab-content think-box-shadow'amount''amount'">

View File

@ -216,6 +216,8 @@ $(function () {
}; };
/*! 异步加载的数据 */ /*! 异步加载的数据 */
this.load = function (url, data, method, callback, loading, tips, time, headers) { this.load = function (url, data, method, callback, loading, tips, time, headers) {
// 如果主页面 loader 显示中,绝对不显示 loading 图标
loading = $('.think-page-loader').is(':visible') ? false : loading;
var index = loading !== false ? $.msg.loading(tips) : 0; var index = loading !== false ? $.msg.loading(tips) : 0;
if (typeof data === 'object' && typeof data['_token_'] === 'string') { if (typeof data === 'object' && typeof data['_token_'] === 'string') {
headers = headers || {}, headers['User-Form-Token'] = data['_token_'], delete data['_token_']; headers = headers || {}, headers['User-Form-Token'] = data['_token_'], delete data['_token_'];
@ -256,7 +258,7 @@ $(function () {
}; };
/*! 打开一个iframe窗口 */ /*! 打开一个iframe窗口 */
this.iframe = function (url, title, area) { this.iframe = function (url, title, area) {
return layer.open({title: title || '窗口', type: 2, area: area || ['800px', '580px'], fix: true, maxmin: false, content: url}); return layer.open({title: title || '窗口', type: 2, area: area || ['800px', '580px'], anim: 2, fixed: true, maxmin: false, content: url});
}; };
/*! 加载 HTML 到弹出层 */ /*! 加载 HTML 到弹出层 */
this.modal = function (url, data, title, callback, loading, tips, area) { this.modal = function (url, data, title, callback, loading, tips, area) {
@ -742,7 +744,7 @@ $(function () {
/*! 注册 data-icon 事件行为 */ /*! 注册 data-icon 事件行为 */
$body.on('click', '[data-icon]', function () { $body.on('click', '[data-icon]', function () {
var location = tapiRoot + '/api.plugs/icon', field = this.dataset.icon || this.dataset.field || 'icon'; var location = tapiRoot + '/api.plugs/icon', field = this.dataset.icon || this.dataset.field || 'icon';
$.form.iframe(location + (location.indexOf('?') > -1 ? '&' : '?') + 'field=' + field, '图标选择'); $.form.iframe(location + (location.indexOf('?') > -1 ? '&' : '?') + 'field=' + field, '图标选择', ['800px', '600px']);
}); });
/*! 注册 data-copy 事件行为 */ /*! 注册 data-copy 事件行为 */
@ -889,6 +891,11 @@ $(function () {
} }
}, true); }, true);
/*! 延时关闭加载动画 */
setTimeout(function () {
$('.think-page-loader').fadeOut();
}, 600);
/*! 系统菜单表单页面初始化 */ /*! 系统菜单表单页面初始化 */
$.menu.listen(), $.vali.listen(), $.form.reInit($body); $.menu.listen(), $.vali.listen(), $.form.reInit($body);
}); });

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 434 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,4 @@
@import "console.dynamic.less"; @import "console.config.less";
.notdata { .notdata {
padding: 15px; padding: 15px;
@ -448,204 +448,6 @@
} }
} }
/** 手机盒子及微信菜单 */
.mobile-preview {
width: 317px;
height: 580px;
position: relative;
background: url(../img/wechat/mobile_head.png) no-repeat 0 0;
box-shadow: @minShadow;
border-radius: @borderRadius;
.mobile-header {
color: #fff;
width: auto;
margin: 0 30px;
overflow: hidden;
font-size: 15px;
padding-top: 30px;
text-align: center;
white-space: nowrap;
text-overflow: ellipsis;
word-wrap: normal;
user-select: none;
-moz-user-select: none;
-webkit-user-select: none;
pointer-events: none;
-webkit-pointer-events: none;
}
.mobile-body {
top: 60px;
left: 0;
right: 0;
bottom: 0;
border: 1px solid #ccc;
position: absolute;
background: #f5f5f5;
border-radius: 0 0 @borderRadius @borderRadius;
iframe {
width: 100%;
height: 100%
}
}
.mobile-footer {
left: 0;
right: 0;
bottom: 0;
margin: 0;
border: 1px solid #ccc;
position: absolute;
padding-left: 43px;
background: url(../img/wechat/mobile_foot.png) no-repeat 0 0;
list-style-type: none;
border-radius: 0 0 @borderRadius @borderRadius;
li {
float: left;
width: 33.33%;
position: relative;
text-align: center;
line-height: 50px;
a {
width: auto;
color: #616161;
border: 1px solid hsla(0, 0%, 100%, 0);
display: block;
overflow: hidden;
word-wrap: normal;
margin-top: -1px;
border-left: 1px solid #e7e7eb;
white-space: nowrap;
text-overflow: ellipsis;
margin-bottom: -1px;
text-decoration: none;
&:hover {
background: rgba(0, 0, 0, .02)
}
&.active {
border: 1px solid #44b549 !important;
box-shadow: 0 0 1px #44b549
}
span:before {
width: 1px;
height: 1px;
content: '';
display: inline-block
}
}
> .close {
top: 1px;
right: 1px;
width: 18px;
height: 18px;
display: none;
cursor: pointer;
position: absolute;
text-align: center;
line-height: 18px
}
&:hover > .close {
display: inline-block;
&:hover {
color: #fff !important;
background: #999 !important
}
}
}
.icon {
&-add, &-sub {
display: inline-block;
vertical-align: middle
}
&-add {
width: 14px;
height: 14px;
border-bottom: none !important;
background: url(../img/wechat/index.png) 0 0 no-repeat
}
&-sub {
width: 7px;
height: 7px;
margin-right: 2px;
background: url(../img/wechat/index.png) 0 -3pc no-repeat
}
}
.sub-menu {
width: 100%;
bottom: 60px;
margin: -1px;
display: block;
position: absolute;
border: 1px solid #d0d0d0;
background-color: #fafafa;
ul li {
float: none;
width: 100%;
padding: 0;
z-index: 11;
display: block;
a {
padding: 0 5px;
border: 1px solid hsla(0, 0%, 100%, 0);
&.bottom-border {
margin: -1px -1px 0;
border-bottom: 1px solid #e7e7eb
}
}
&:last-child a.bottom-border {
border-bottom-color: #fff
}
}
}
.arrow {
left: 50%;
position: absolute;
margin-left: -6px;
}
.arrow_in, .arrow_out {
width: 0;
height: 0;
z-index: 10;
border: 6px dashed transparent;
display: inline-block;
border-top-style: solid;
border-bottom-width: 0;
}
.arrow_in {
z-index: 3;
bottom: -5px;
border-top-color: #fafafa
}
.arrow_out {
z-index: 2;
bottom: -6px;
border-top-color: #d0d0d0
}
}
}
.border { .border {
&-0 { &-0 {
border: 0 !important border: 0 !important

View File

@ -1,4 +1,4 @@
@import "console.dynamic.less"; @import "console.config.less";
fieldset { fieldset {
margin: 0 0 10px 0; margin: 0 0 10px 0;
@ -143,8 +143,8 @@ fieldset {
.layui-input-inline { .layui-input-inline {
width: 170px; width: 170px;
display: inline-block!important; display: inline-block !important;
margin: 0 10px 0 -1px!important; margin: 0 10px 0 -1px !important;
input, select { input, select {
width: 100%; width: 100%;

View File

@ -1,4 +1,4 @@
@import "console.dynamic.less"; @import "console.config.less";
.layui-layout { .layui-layout {
> .layui-side { > .layui-side {
@ -10,7 +10,7 @@
> .layui-body { > .layui-body {
top: 50px; top: 50px;
bottom: 0; bottom: 0;
overflow:auto; overflow: auto;
> .layui-card { > .layui-card {
overflow: visible; overflow: visible;
@ -188,7 +188,6 @@
} }
} }
.layui-nav-tree-top a { .layui-nav-tree-top a {
height: 28px !important; height: 28px !important;
line-height: 28px !important line-height: 28px !important
@ -267,6 +266,204 @@
} }
} }
/** 手机盒子及微信菜单 */
.mobile-preview {
width: 317px;
height: 580px;
position: relative;
background: url(../img/wechat/mobile_head.png) no-repeat 0 0;
box-shadow: @minShadow;
border-radius: @borderRadius;
.mobile-header {
color: #fff;
width: auto;
margin: 0 30px;
overflow: hidden;
font-size: 15px;
padding-top: 30px;
text-align: center;
white-space: nowrap;
text-overflow: ellipsis;
word-wrap: normal;
user-select: none;
-moz-user-select: none;
-webkit-user-select: none;
pointer-events: none;
-webkit-pointer-events: none;
}
.mobile-body {
top: 60px;
left: 0;
right: 0;
bottom: 0;
border: 1px solid #ccc;
position: absolute;
background: #f5f5f5;
border-radius: 0 0 @borderRadius @borderRadius;
iframe {
width: 100%;
height: 100%
}
}
.mobile-footer {
left: 0;
right: 0;
bottom: 0;
margin: 0;
border: 1px solid #ccc;
position: absolute;
padding-left: 43px;
background: url(../img/wechat/mobile_foot.png) no-repeat 0 0;
list-style-type: none;
border-radius: 0 0 @borderRadius @borderRadius;
li {
float: left;
width: 33.33%;
position: relative;
text-align: center;
line-height: 50px;
a {
width: auto;
color: #616161;
border: 1px solid hsla(0, 0%, 100%, 0);
display: block;
overflow: hidden;
word-wrap: normal;
margin-top: -1px;
border-left: 1px solid #e7e7eb;
white-space: nowrap;
text-overflow: ellipsis;
margin-bottom: -1px;
text-decoration: none;
&:hover {
background: rgba(0, 0, 0, .02)
}
&.active {
border: 1px solid #44b549 !important;
box-shadow: 0 0 1px #44b549
}
span:before {
width: 1px;
height: 1px;
content: '';
display: inline-block
}
}
> .close {
top: 1px;
right: 1px;
width: 18px;
height: 18px;
display: none;
cursor: pointer;
position: absolute;
text-align: center;
line-height: 18px
}
&:hover > .close {
display: inline-block;
&:hover {
color: #fff !important;
background: #999 !important
}
}
}
.icon {
&-add, &-sub {
display: inline-block;
vertical-align: middle
}
&-add {
width: 14px;
height: 14px;
border-bottom: none !important;
background: url(../img/wechat/index.png) 0 0 no-repeat
}
&-sub {
width: 7px;
height: 7px;
margin-right: 2px;
background: url(../img/wechat/index.png) 0 -3pc no-repeat
}
}
.sub-menu {
width: 100%;
bottom: 60px;
margin: -1px;
display: block;
position: absolute;
border: 1px solid #d0d0d0;
background-color: #fafafa;
ul li {
float: none;
width: 100%;
padding: 0;
z-index: 11;
display: block;
a {
padding: 0 5px;
border: 1px solid hsla(0, 0%, 100%, 0);
&.bottom-border {
margin: -1px -1px 0;
border-bottom: 1px solid #e7e7eb
}
}
&:last-child a.bottom-border {
border-bottom-color: #fff
}
}
}
.arrow {
left: 50%;
position: absolute;
margin-left: -6px;
}
.arrow_in, .arrow_out {
width: 0;
height: 0;
z-index: 10;
border: 6px dashed transparent;
display: inline-block;
border-top-style: solid;
border-bottom-width: 0;
}
.arrow_in {
bottom: -5px;
z-index: 3;
border-top-color: #fafafa
}
.arrow_out {
bottom: -6px;
z-index: 2;
border-top-color: #d0d0d0
}
}
}
/* 下拉样式 */ /* 下拉样式 */
.layui-nav { .layui-nav {
.layui-nav-item { .layui-nav-item {
@ -300,6 +497,7 @@
} }
} }
/*! 重置 Iframe 页面样式 */
.iframe-pagination { .iframe-pagination {
padding: 20px 20px 45px 20px; padding: 20px 20px 45px 20px;
@ -313,3 +511,106 @@
border-top: 1px solid #ddd; border-top: 1px solid #ddd;
} }
} }
/*! 首页加载动画 */
.think-page-loader {
top: 0;
width: 100%;
height: 100%;
z-index: 9999999;
position: fixed;
background-color: whitesmoke;
.loader {
top: 50%;
width: 50px;
height: 50px;
margin: -30px auto 40px;
z-index: 999999;
position: relative;
background-color: whitesmoke;
}
.loader:before {
top: 59px;
left: 0;
width: 50px;
height: 7px;
opacity: 0.1;
content: "";
background: #000;
border-radius: 50%;
position: absolute;
animation: shadow .5s linear infinite;
}
.loader:after {
top: 0;
left: 0;
width: 50px;
height: 50px;
content: "";
position: absolute;
border-radius: 3px;
background-color: #5FB878;
animation: loading .5s linear infinite;
}
}
@-webkit-keyframes loading {
17% {
border-bottom-right-radius: 3px;
}
25% {
transform: translateY(9px) rotate(22.5deg);
}
50% {
transform: translateY(18px) scale(1, 0.9) rotate(45deg);
border-bottom-right-radius: 40px;
}
75% {
transform: translateY(9px) rotate(67.5deg);
}
100% {
transform: translateY(0) rotate(90deg);
}
}
@keyframes loading {
17% {
border-bottom-right-radius: 3px;
}
25% {
transform: translateY(9px) rotate(22.5deg);
}
50% {
border-bottom-right-radius: 40px;
transform: translateY(18px) scale(1, 0.9) rotate(45deg);
}
75% {
transform: translateY(9px) rotate(67.5deg);
}
100% {
transform: translateY(0) rotate(90deg);
}
}
@-webkit-keyframes shadow {
0%,
100% {
transform: scale(1, 1);
}
50% {
transform: scale(1.2, 1);
}
}
@keyframes shadow {
0%,
100% {
transform: scale(1, 1);
}
50% {
transform: scale(1.2, 1);
}
}

View File

@ -1,5 +1,6 @@
@charset "UTF-8"; @charset "UTF-8";
@import "console.dynamic.less"; @import "console.config.less";
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
// | ThinkAdmin // | ThinkAdmin
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
@ -78,4 +79,4 @@ body {
@import "console.custom.less"; @import "console.custom.less";
@import 'console.layout.less'; @import 'console.layout.less';
@import "console.layui.less"; @import "console.display.less";

File diff suppressed because it is too large Load Diff

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 476 KiB

Binary file not shown.

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

View File

@ -1,5 +1,5 @@
@charset "UTF-8"; @charset "UTF-8";
@import "console.dynamic.less"; @import "console.config.less";
// +---------------------------------------------------------------------- // +----------------------------------------------------------------------
// | ThinkAdmin // | ThinkAdmin

View File

@ -4,6 +4,6 @@
"description": "ThinkAdmin v6 theme less-style build", "description": "ThinkAdmin v6 theme less-style build",
"scripts": { "scripts": {
"install": "npm install less less-plugin-clean-css -g", "install": "npm install less less-plugin-clean-css -g",
"build": "lessc --clean-css --source-map login.less login.css && lessc --clean-css --source-map mobile.less mobile.css && lessc --clean-css --source-map console.less console.css" "build": "lessc --clean-css --source-map login.less login.css && lessc --clean-css --source-map mobile.less mobile.css && lessc --clean-css --source-map console.less console.css && lessc --clean-css --source-map iconfont.less iconfont.css"
} }
} }