update
This commit is contained in:
parent
f995fc07c5
commit
442212bfb8
|
|
@ -0,0 +1,227 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Loading示例</title>
|
||||
<meta http-equiv="Content-type" content="text/html; charset=utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
|
||||
<link href="/jscss/style.css" rel="stylesheet" type="text/css" />
|
||||
<style>
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body class="px4 py4">
|
||||
<blockquote>pulse-loader</blockquote>
|
||||
<div class="pulse-loader"></div>
|
||||
|
||||
<style>
|
||||
.pulse-loader {
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
border-radius: 50%;
|
||||
background: var(--man6);
|
||||
box-shadow: 0 0 0 0 var(--man6);
|
||||
animation: pulse 1.5s infinite;
|
||||
}
|
||||
|
||||
@keyframes pulse {
|
||||
0% {
|
||||
transform: scale(0.95);
|
||||
box-shadow: 0 0 0 0 var(--man6);
|
||||
}
|
||||
|
||||
70% {
|
||||
transform: scale(1);
|
||||
box-shadow: 0 0 0 15px #ffffff00;
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: scale(0.95);
|
||||
box-shadow: 0 0 0 0 #ffffff00;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<blockquote>ring-loader</blockquote>
|
||||
<div class="ring-loader"></div>
|
||||
<style>
|
||||
.ring-loader {
|
||||
width: 4em;
|
||||
height: 4em;
|
||||
border: 0.2em solid var(--man3);
|
||||
border-radius: 50%;
|
||||
border-top-color: var(--man6);
|
||||
border-left-color: var(--man4);
|
||||
animation: spin 1s ease-in-out infinite;
|
||||
}
|
||||
|
||||
|
||||
@keyframes spin {
|
||||
to {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<blockquote>bounce-loader</blockquote>
|
||||
<div class="bounce-loader">
|
||||
<div></div>
|
||||
<div></div>
|
||||
<div></div>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
.bounce-loader {
|
||||
display: flex;
|
||||
gap: 6px;
|
||||
}
|
||||
|
||||
.bounce-loader div {
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
border-radius: 50%;
|
||||
background-color: var(--man6);
|
||||
animation: bounce 1.4s infinite ease-in-out;
|
||||
}
|
||||
|
||||
.bounce-loader div:nth-child(1) {
|
||||
animation-delay: -0.32s;
|
||||
}
|
||||
|
||||
.bounce-loader div:nth-child(2) {
|
||||
animation-delay: -0.16s;
|
||||
}
|
||||
|
||||
@keyframes bounce {
|
||||
|
||||
0%,
|
||||
80%,
|
||||
100% {
|
||||
transform: scale(0);
|
||||
}
|
||||
|
||||
40% {
|
||||
transform: scale(1);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<blockquote>neon-loader</blockquote>
|
||||
<div class="neon-bounce">
|
||||
<span></span>
|
||||
<span></span>
|
||||
<span></span>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
.neon-bounce {
|
||||
display: flex;
|
||||
gap: 8px;
|
||||
}
|
||||
|
||||
.neon-bounce span {
|
||||
width: 12px;
|
||||
height: 12px;
|
||||
border-radius: 50%;
|
||||
background: var(--man4);
|
||||
box-shadow: 0 0 10px var(--man4), 0 0 20px var(--man4);
|
||||
animation: neon-bounce 1.2s infinite ease-in-out;
|
||||
}
|
||||
|
||||
.neon-bounce span:nth-child(2) {
|
||||
background: var(--man5);
|
||||
box-shadow: 0 0 10px var(--man5), 0 0 20px var(--man5);
|
||||
animation-delay: 0.2s;
|
||||
}
|
||||
|
||||
.neon-bounce span:nth-child(3) {
|
||||
background: var(--man6);
|
||||
box-shadow: 0 0 10px var(--man6), 0 0 20px var(--man6);
|
||||
animation-delay: 0.4s;
|
||||
}
|
||||
|
||||
@keyframes neon-bounce {
|
||||
|
||||
0%,
|
||||
100% {
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
50% {
|
||||
transform: translateY(-20px);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<blockquote>fluid-loader</blockquote>
|
||||
<div class="fluid-bounce"></div>
|
||||
<style>
|
||||
.fluid-bounce {
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
border-radius: 50%;
|
||||
background: linear-gradient(45deg, var(--man6), var(--man3));
|
||||
animation:
|
||||
fluid-bounce 1.2s infinite ease-in-out,
|
||||
color-shift 3s infinite alternate;
|
||||
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.2);
|
||||
}
|
||||
|
||||
@keyframes fluid-bounce {
|
||||
|
||||
0%,
|
||||
100% {
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
50% {
|
||||
transform: translateY(-30px) scale(1.1);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes color-shift {
|
||||
0% {
|
||||
filter: hue-rotate(0deg);
|
||||
}
|
||||
|
||||
100% {
|
||||
filter: hue-rotate(360deg);
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<blockquote>minimal-loader</blockquote>
|
||||
<div class="minimal-bounce">
|
||||
<div class="line"></div>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
.minimal-bounce {
|
||||
width: 60px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.line {
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
height: 3px;
|
||||
background: var(--man6);
|
||||
border-radius: 3px;
|
||||
animation: stretch 1.5s infinite cubic-bezier(0.4, 0, 0.2, 1);
|
||||
}
|
||||
|
||||
@keyframes stretch {
|
||||
|
||||
0%,
|
||||
100% {
|
||||
transform: scaleX(0.3);
|
||||
opacity: 0.6;
|
||||
}
|
||||
|
||||
50% {
|
||||
transform: scaleX(1);
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<script type="text/javascript" src="/jscss/ciy.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
|
@ -143,6 +143,10 @@
|
|||
<a class="btn sm" href="demo_css.html" target="_blank">css</a>
|
||||
当前CSS示例。
|
||||
</div>
|
||||
<div>
|
||||
<a class="btn sm" href="demo_loading.html" target="_blank">loading</a>
|
||||
Loading CSS3动画。
|
||||
</div>
|
||||
<div>
|
||||
<a class="btn sm" href="demo_cssn.html" target="_blank">cssn</a>
|
||||
未来关注的CSS。
|
||||
|
|
|
|||
|
|
@ -460,13 +460,40 @@
|
|||
.btn-menu-caret.show:after {
|
||||
transform: rotate(180deg);
|
||||
}
|
||||
|
||||
.ring-loader {
|
||||
width: 3em;
|
||||
height: 3em;
|
||||
margin: auto;
|
||||
border: 0.2em solid var(--man3);
|
||||
border-radius: 50%;
|
||||
border-top-color: var(--man6);
|
||||
border-left-color: var(--man4);
|
||||
animation: spin 2s ease-in-out infinite;
|
||||
}
|
||||
|
||||
@keyframes spin {
|
||||
to {
|
||||
transform: rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
.ciy-pageload {
|
||||
margin-top: 5em;
|
||||
text-align: center;
|
||||
font-size: 1.5em;
|
||||
color: var(--dag5);
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="id_body" oncontextmenu="return false;" onselectstart="return false">
|
||||
<div class="menu" onclick="Glob.manage.page_shrink();">MENU</div>
|
||||
<div class="ciy-layout">
|
||||
<div class="ciy-pageload">
|
||||
<div class="ring-loader"></div>
|
||||
</div>
|
||||
<div class="ciy-layout" style="display:none;">
|
||||
<div class="menu" onclick="Glob.manage.page_shrink();">MENU</div>
|
||||
<div class="ciy-navheader">
|
||||
<ul class="ciy-nav" style="height:calc(4em - 1px);">
|
||||
<div class="ciy-logo" style="line-height: 4em;" ondblclick="Glob.manage.page_shrink();">
|
||||
|
|
@ -915,7 +942,13 @@
|
|||
if (!ciyfn) return setTimeout(function () { location.reload(); }, 1000);
|
||||
Glob.ciysvg = '<svg viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"><path class="svgfill" d="M987.136 384.512C919.552 131.584 668.16-22.528 415.232 27.136c219.648-41.984 434.176 79.36 488.96 283.136 57.344 214.016-82.944 437.76-313.344 499.2-49.664 13.312-78.848 64-65.536 113.152 13.312 49.664 64 78.848 113.152 65.536 263.168-70.144 418.816-340.48 348.672-603.648zM116.224 713.216C58.88 499.2 199.68 275.456 430.08 214.016c49.664-13.312 78.848-64 65.536-113.152C482.816 51.2 432.128 21.504 382.464 34.816c-263.68 70.656-419.84 340.992-349.184 604.16 67.584 252.928 319.488 407.04 571.392 356.864-219.648 42.496-433.664-78.848-488.448-282.624z m93.184-203.776L291.84 449.536c44.544-32.256 90.112-32.256 133.12-0.512l83.456 60.928-149.504-230.4-149.504 229.888z m516.096-60.416L808.96 509.952l-149.504-229.888-149.504 229.376 82.432-59.904c44.544-32.256 90.112-32.256 133.12-0.512z m-366.08 291.84L441.856 680.96c44.544-32.256 90.112-32.256 133.12-0.512l83.456 60.928-149.504-230.4-149.504 229.888z"></path></svg>';
|
||||
ciyfn.callfunc("init", {}, function (json) {
|
||||
$5('.ciy-pageload').hide();
|
||||
$5('.ciy-layout').show();
|
||||
Glob.manage = new ciyclass.managepage(json);
|
||||
}, {
|
||||
fail: function (json, xhr) {
|
||||
$5('.ciy-pageload').html(json.errmsg);
|
||||
}
|
||||
});
|
||||
});
|
||||
window.addEventListener('message', function (event) {
|
||||
|
|
@ -945,7 +978,7 @@
|
|||
if (e.ctrlKey && e.keyCode == 83) {//Ctrl+S
|
||||
e.preventDefault();
|
||||
var save_s = $5('.ctrl_s');
|
||||
if(save_s.length == 1)
|
||||
if (save_s.length == 1)
|
||||
save_s.trigger('click');
|
||||
}
|
||||
if (e.ctrlKey && e.keyCode == 69) {//Ctrl+E
|
||||
|
|
|
|||
|
|
@ -13,6 +13,8 @@ class index {
|
|||
$csql = new \ciy\sql('zc_menu');
|
||||
$csql->where('isuse', 1)->order('csort desc,id')->column('id,upid,name,url,pow');
|
||||
$ret['menu'] = $db->get($csql);
|
||||
if($ret['menu'] === false)
|
||||
return errjson('菜单获取失败:' . $db->error);
|
||||
if (count($ret['menu']) == 0)
|
||||
$ret['menu'][] = array('id' => 2, 'upid' => 0, 'name' => '您无任何菜单权限', 'url' => '', 'pow' => '', 'csort' => 0);
|
||||
|
||||
|
|
|
|||
|
|
@ -104,7 +104,7 @@
|
|||
</ul>
|
||||
</a>
|
||||
</div>
|
||||
<h1 class="ciy-title lang">Ciyon SaaS 总控台</h1>
|
||||
<h1 class="ciy-title lang">Ciyon SaaS总控台</h1>
|
||||
<div class="cmain">
|
||||
<fieldset class="tips">
|
||||
<legend class="lang">管理员登录</legend>
|
||||
|
|
|
|||
|
|
@ -447,7 +447,7 @@ _ciydomclas.prototype.on = function (evt, selector, func, isone) {
|
|||
}
|
||||
if (target) {
|
||||
ev.currentTarget = target;
|
||||
|
||||
|
||||
func.call(target, ev);
|
||||
if (isone)
|
||||
dom.removeEventListener(evt, listenfn);
|
||||
|
|
@ -544,7 +544,7 @@ _ciydomclas.prototype.winheight = function () {
|
|||
return this[0].ownerDocument.defaultView.innerHeight;
|
||||
};
|
||||
_ciydomclas.prototype._getdisplay = function (dom) {
|
||||
if(!iselement(dom))
|
||||
if (!iselement(dom))
|
||||
return 'block';
|
||||
var dp = window.getComputedStyle(dom).display;
|
||||
if (dp != 'none')
|
||||
|
|
@ -1075,7 +1075,7 @@ ciyfn.ajax = function (opn) { //IE8 OK
|
|||
var timeout = opn.timeout || 10;
|
||||
if (timeout < 1)
|
||||
timeout = 3;
|
||||
if(timeout > 20)
|
||||
if (timeout > 20)
|
||||
header['ciy-timeout'] = timeout;
|
||||
|
||||
var method = opn.method || 'POST';
|
||||
|
|
@ -1122,7 +1122,7 @@ ciyfn.ajax = function (opn) { //IE8 OK
|
|||
}
|
||||
}
|
||||
request.timeout = timeout * 1000;
|
||||
request.ontimeout = function() {
|
||||
request.ontimeout = function () {
|
||||
clearTimeout(aborttime);
|
||||
console.warn('request timeout: ' + timeout + 's');
|
||||
};
|
||||
|
|
@ -1136,18 +1136,19 @@ ciyfn.ajax = function (opn) { //IE8 OK
|
|||
if (typeof opn.success === 'function')
|
||||
opn.success(this.responseText, this);
|
||||
} else {
|
||||
if (typeof opn.fail === 'function') {
|
||||
var errtxt = '';
|
||||
if (this.status == 200)
|
||||
errtxt = 'Server Error: ' + this.responseText;
|
||||
else if (this.status == 404)
|
||||
errtxt = "404 Not Found: " + this.responseURL;
|
||||
else if (this.status == 0)
|
||||
errtxt = "Server No Response.";
|
||||
else
|
||||
errtxt = 'ErrCode:' + this.status + "," + this.statusText;
|
||||
opn.fail(errtxt, this);
|
||||
}
|
||||
var errtxt = 'ErrCode:' + this.status;
|
||||
if (this.status == 200)
|
||||
errtxt = 'Server Error: ' + this.responseText;
|
||||
else if (this.status == 404)
|
||||
errtxt = "404 Not Found: " + this.responseURL;
|
||||
else if (this.status == 0)
|
||||
errtxt = "Server No Response.";
|
||||
else
|
||||
errtxt = 'ErrCode:' + this.status + "," + this.statusText;
|
||||
if (typeof opn.fail === 'function')
|
||||
opn.fail({ errmsg: errtxt }, this);
|
||||
else
|
||||
ciyfn.alert(errtxt);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -304,5 +304,39 @@
|
|||
,"三":"Wed."
|
||||
,"四":"Thu."
|
||||
,"五":"Fri."
|
||||
,"六":"Sat."
|
||||
,"六":"Sat.",
|
||||
"平台业务":"Platform Biz",
|
||||
"客服工作":"CS Work",
|
||||
"运营工作":"Ops Work",
|
||||
"财务工作":"Finance Work",
|
||||
"用户数据":"User Data",
|
||||
"工单处理":"Tickets",
|
||||
"意见建议":"Feedback",
|
||||
"用户服务":"User Service",
|
||||
"提现审核":"Withdrawal Review",
|
||||
"金币购买记录":"Coin Purchase",
|
||||
"收支记录":"Income/Expense",
|
||||
"付费会员记录":"Premium Members",
|
||||
"金币流水记录":"Coin Flow",
|
||||
"板块文章":"Section Articles",
|
||||
"广告图管理":"Banner Mgmt",
|
||||
"金币奖励埋点":"Coin Rewards",
|
||||
"付费会员定价":"Premium Pricing",
|
||||
"金币购买定价":"Coin Pricing",
|
||||
"提现支付":"Withdrawal Pay",
|
||||
"发票开票":"Invoicing",
|
||||
"付费会员流水":"Premium Flow",
|
||||
"金币购买流水":"Coin Buy Flow",
|
||||
"充值流水":"Top-up Flow",
|
||||
"用户资料":"User Profile",
|
||||
"用户实名认证":"Real-name Auth",
|
||||
"用户发票抬头":"Invoice Title",
|
||||
"用户收件地址":"Shipping Address",
|
||||
"验证码":"Verification Code",
|
||||
"AI辅助决策":"AI Decision",
|
||||
"审批事项":"Approval",
|
||||
"产业官网":"Ind. Portal",
|
||||
"AI私域":"AI Private",
|
||||
"AI自媒体":"AI Media",
|
||||
"接入管理":"Access Mgmt"
|
||||
}
|
||||
|
|
@ -305,6 +305,39 @@
|
|||
,"三":"水"
|
||||
,"四":"木"
|
||||
,"五":"金"
|
||||
,"六":"土"
|
||||
|
||||
,"六":"土",
|
||||
"平台业务":"プラット業務",
|
||||
"客服工作":"カスタマー対応",
|
||||
"运营工作":"運営業務",
|
||||
"財務工作":"財務業務",
|
||||
"用户数据":"ユーザーデータ",
|
||||
"工单处理":"チケット処理",
|
||||
"意见建议":"意見・提案",
|
||||
"用户服务":"ユーザーサポート",
|
||||
"提现审核":"出金審査",
|
||||
"金币购买记录":"コイン購入記録",
|
||||
"收支记录":"収支記録",
|
||||
"付费会员记录":"有料会員記録",
|
||||
"金币流水记录":"コイン流水",
|
||||
"板块文章":"掲示板記事",
|
||||
"广告图管理":"広告画像管理",
|
||||
"金币奖励埋点":"コイン報酬ポイント",
|
||||
"付费会员定价":"有料会員価格",
|
||||
"金币购买定价":"コイン購入価格",
|
||||
"提现支付":"出金支払い",
|
||||
"发票开票":"請求書発行",
|
||||
"付费会员流水":"有料会員流水",
|
||||
"金币购买流水":"コイン購入流水",
|
||||
"充值流水":"チャージ流水",
|
||||
"用户资料":"ユーザー情報",
|
||||
"用户实名认证":"本人確認",
|
||||
"用户发票抬头":"請求書宛名",
|
||||
"用户收件地址":"配送先住所",
|
||||
"验证码":"認証コード",
|
||||
"AI辅助决策":"AI意思決定支援",
|
||||
"审批事项":"承認事項",
|
||||
"产业官网":"産業HP",
|
||||
"AI私域":"AIプライベート",
|
||||
"AI自媒体":"AI自メディア",
|
||||
"接入管理":"アクセス管理"
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user