更新于 07-05 20:48

This commit is contained in:
root
2021-07-05 20:48:46 -04:00
parent 25756cc34b
commit 69a8dc9325
7 changed files with 1585 additions and 0 deletions

72
panel/public/add.html Executable file
View File

@@ -0,0 +1,72 @@
<!DOCTYPE html>
<html lang="zh-cn">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>在线登入</title>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"
integrity="sha256-/xUj+3OJU5yExlq6GSYGSHk7tPXikynS7ogEvDej/m4=" crossorigin="anonymous"></script>
<script type="text/javascript" src="./js/jquery.base64.js"></script>
<script type="text/javascript" src="./js/skel.min.js"></script>
<script type="text/javascript" src="./js/main.js"></script>
<script type="text/javascript"
src="https://cdn.jsdelivr.net/npm/sweetalert2@10.15.5/dist/sweetalert2.all.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/davidshimjs-qrcodejs@0.0.2/qrcode.min.js"></script>
<link rel="stylesheet" type="text/css" href="./css/other.css?12345">
</head>
<body class="landing">
<div id="page-wrapper">
<section id="banner">
<div class="inner">
<!-- <h1>啊</h1>-->
<h2>JSTOOL</h2>
<p>点击下方按钮开始使用</p>
<ul class="actions">
<li><a id="GetQrCode" class="button special" title="手机扫描二维码登录">二维码登录</a>
<li><a id="JumpToApp" class="button special" title="APP登录">跳转APP登录</a>
<li><a id="BeanChange" class="button special" title="走势图" href="./BeanChange.html">走势图</a>
</li>
</ul>
<p>
<!--<a href="http://www.highdimen.com" target="_blank" style="color:yellow;font-weight:bold">[备用扫码]</a>-->
<!--<a href="https://t.me/jstool" target="_blank" style="color:red;font-weight:bold"> [TG群]</a><br>-->
<!--<a style="color:#00effb;font-weight:bold"> [全自动运行]</a>-->
<br /> <a style="font-size:12px;"> App确认后即可无视升级提示 </a>
</p>
<div class="more">
<a class="qq_group" id="qq_group" target="_blank" href="https://t.me/jstool">
<!--<img border="0" src="static/image/qq.png" alt="联系客服" title="联系客服">-->
</a>
<br />TG群
</div>
</div>
</section>
</div>
<div id="qrcontainer" class="hidden">
<div class="qframe" id="qframe">
<div id="refresh_qrcode" class="hidden">
<div>
<h3>二维码已失效</h3>
<div class="refresh">刷新</div>
</div>
</div>
<div id="qrcode"></div>
<div class="ps-box">
<input type="text" id="ps" placeholder="扫码前可输入联系方式QQ/微信">
</div>
<div class="info">
<a style="color:red;">请使用京东APP扫码【可截图扫】</a>
<br> <a style="color:#fe2d46;font-weight:bold">CK有效期一个月过期请重扫</a>
<br>
</div>
<div class="qframe-close" title="关闭"></div>
</div>
</div>
<script type="text/javascript" src="./js/jd1.js?1234567"></script>
</body>
</html>

336
panel/public/css/css.css Executable file
View File

@@ -0,0 +1,336 @@
/* cyrillic-ext */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 400;
src: url(../font/mem6YaGs126MiZpBA-UFUK0Udc1UAw.woff2) format('woff2');
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 400;
src: url(../font/mem6YaGs126MiZpBA-UFUK0ddc1UAw.woff2) format('woff2');
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 400;
src: url(../font/mem6YaGs126MiZpBA-UFUK0Vdc1UAw.woff2) format('woff2');
unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 400;
src: url(../font/mem6YaGs126MiZpBA-UFUK0adc1UAw.woff2) format('woff2');
unicode-range: U+0370-03FF;
}
/* vietnamese */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 400;
src: url(../font/mem6YaGs126MiZpBA-UFUK0Wdc1UAw.woff2) format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 400;
src: url(../font/mem6YaGs126MiZpBA-UFUK0Xdc1UAw.woff2) format('woff2');
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 400;
src: url(../font/mem6YaGs126MiZpBA-UFUK0Zdc0.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 600;
src: url(../font/memnYaGs126MiZpBA-UFUKXGUdhmIqOjjg.woff2) format('woff2');
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 600;
src: url(../font/memnYaGs126MiZpBA-UFUKXGUdhvIqOjjg.woff2) format('woff2');
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 600;
src: url(../font/memnYaGs126MiZpBA-UFUKXGUdhnIqOjjg.woff2) format('woff2');
unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 600;
src: url(../font/memnYaGs126MiZpBA-UFUKXGUdhoIqOjjg.woff2) format('woff2');
unicode-range: U+0370-03FF;
}
/* vietnamese */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 600;
src: url(../font/memnYaGs126MiZpBA-UFUKXGUdhkIqOjjg.woff2) format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 600;
src: url(../font/memnYaGs126MiZpBA-UFUKXGUdhlIqOjjg.woff2) format('woff2');
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 600;
src: url(../font/memnYaGs126MiZpBA-UFUKXGUdhrIqM.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 800;
src: url(../font/memnYaGs126MiZpBA-UFUKW-U9hmIqOjjg.woff2) format('woff2');
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 800;
src: url(../font/memnYaGs126MiZpBA-UFUKW-U9hvIqOjjg.woff2) format('woff2');
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 800;
src: url(../font/memnYaGs126MiZpBA-UFUKW-U9hnIqOjjg.woff2) format('woff2');
unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 800;
src: url(../font/memnYaGs126MiZpBA-UFUKW-U9hoIqOjjg.woff2) format('woff2');
unicode-range: U+0370-03FF;
}
/* vietnamese */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 800;
src: url(../font/memnYaGs126MiZpBA-UFUKW-U9hkIqOjjg.woff2) format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 800;
src: url(../font/memnYaGs126MiZpBA-UFUKW-U9hlIqOjjg.woff2) format('woff2');
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Open Sans';
font-style: italic;
font-weight: 800;
src: url(../font/memnYaGs126MiZpBA-UFUKW-U9hrIqM.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
src: url(../font/mem8YaGs126MiZpBA-UFWJ0bbck.woff2) format('woff2');
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
src: url(../font/mem8YaGs126MiZpBA-UFUZ0bbck.woff2) format('woff2');
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
src: url(../font/mem8YaGs126MiZpBA-UFWZ0bbck.woff2) format('woff2');
unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
src: url(../font/mem8YaGs126MiZpBA-UFVp0bbck.woff2) format('woff2');
unicode-range: U+0370-03FF;
}
/* vietnamese */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
src: url(../font/mem8YaGs126MiZpBA-UFWp0bbck.woff2) format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
src: url(../font/mem8YaGs126MiZpBA-UFW50bbck.woff2) format('woff2');
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 400;
src: url(../font/mem8YaGs126MiZpBA-UFVZ0b.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 600;
src: url(../font/mem5YaGs126MiZpBA-UNirkOX-hpOqc.woff2) format('woff2');
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 600;
src: url(../font/mem5YaGs126MiZpBA-UNirkOVuhpOqc.woff2) format('woff2');
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 600;
src: url(../font/mem5YaGs126MiZpBA-UNirkOXuhpOqc.woff2) format('woff2');
unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 600;
src: url(../font/mem5YaGs126MiZpBA-UNirkOUehpOqc.woff2) format('woff2');
unicode-range: U+0370-03FF;
}
/* vietnamese */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 600;
src: url(../font/mem5YaGs126MiZpBA-UNirkOXehpOqc.woff2) format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 600;
src: url(../font/mem5YaGs126MiZpBA-UNirkOXOhpOqc.woff2) format('woff2');
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 600;
src: url(../font/mem5YaGs126MiZpBA-UNirkOUuhp.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 800;
src: url(../font/mem5YaGs126MiZpBA-UN8rsOX-hpOqc.woff2) format('woff2');
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 800;
src: url(../font/mem5YaGs126MiZpBA-UN8rsOVuhpOqc.woff2) format('woff2');
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek-ext */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 800;
src: url(../font/mem5YaGs126MiZpBA-UN8rsOXuhpOqc.woff2) format('woff2');
unicode-range: U+1F00-1FFF;
}
/* greek */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 800;
src: url(../font/mem5YaGs126MiZpBA-UN8rsOUehpOqc.woff2) format('woff2');
unicode-range: U+0370-03FF;
}
/* vietnamese */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 800;
src: url(../font/mem5YaGs126MiZpBA-UN8rsOXehpOqc.woff2) format('woff2');
unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 800;
src: url(../font/mem5YaGs126MiZpBA-UN8rsOXOhpOqc.woff2) format('woff2');
unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
font-family: 'Open Sans';
font-style: normal;
font-weight: 800;
src: url(../font/mem5YaGs126MiZpBA-UN8rsOUuhp.woff2) format('woff2');
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

865
panel/public/css/other.css Executable file
View File

@@ -0,0 +1,865 @@
@import url(font-awesome.min.css);
@import url("css.css");
/*body,
html {
margin: 10;
padding: 0;
} */
body {
/* background: url("../img/banner.jpg") no-repeat; */
background: #2e3842;
}
html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
margin: 0;
/* padding: 0; */
/* border: 0; */
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
button {
color: #444444;
background: #f3f3f3;
border: 1px #dadada solid;
padding: 5px 10px;
border-radius: 2px;
font-weight: bold;
font-size: 32pt;
outline: none;
}
h2 {
font-size: 1.35em;
line-height: 1.75em;
}
button:hover {
border: 1px #c6c6c6 solid;
box-shadow: 1px 1px 1px #eaeaea;
color: #333333;
background: #f7f7f7;
}
button:active {
box-shadow: inset 1px 1px 1px #dfdfdf;
}
/* Blue button as seen on translate.google.com*/
button.blue {
color: white;
background: #4c8ffb;
border: 1px #3079ed solid;
box-shadow: inset 0 1px 0 #80b0fb;
}
button.blue:hover {
border: 1px #2f5bb7 solid;
box-shadow: 0 1px 1px #eaeaea, inset 0 1px 0 #5a94f1;
background: #3f83f1;
}
button.blue:active {
box-shadow: inset 0 2px 5px #2370fe;
}
.container {
display: flex;
flex-direction: column;
height: 100vh;
margin: 0 0.5em;
}
.container p {
font-size: 0.875rem;
margin: 0;
line-height: 1.5em;
}
#qrcontainer {
position: fixed;
width: 100%;
height: 100%;
left: 0;
top: 0;
z-index: 1000;
display: flex;
align-items: center;
justify-content: center;
background: rgba(255, 255, 255, 0.8);
text-align: center;
transition: all 0.3s;
}
#qrcontainer.hidden {
opacity: 0;
visibility: hidden;
}
#qrcontainer .qframe {
background-color: #ffffff;
padding: 1rem;
border-radius: 0.5rem;
border: #6d8a88 1px solid;
-webkit-box-shadow: 0px 0px 7px 3px rgba(0, 0, 0, 0.2);
box-shadow: 0px 0px 7px 3px rgba(0, 0, 0, 0.2);
position: relative;
}
#qrcontainer .qframe #refresh_qrcode {
width: 256px;
height: 256px;
position: absolute;
background-color: rgba(0, 0, 0, 0.5);
left: 1rem;
top: 1rem;
color: #ffffff;
display: flex;
justify-content: center;
align-items: center;
}
#qrcontainer .qframe #refresh_qrcode.hidden {
opacity: 0;
visibility: hidden;
}
#qrcontainer .qframe #refresh_qrcode h3 {
font-weight: normal;
}
#qrcontainer .qframe #refresh_qrcode .refresh {
display: block;
background: #e4393c;
width: 80px;
height: 30px;
margin: 0 auto;
line-height: 30px;
opacity: 1;
z-index: 19;
color: #fbfbfb;
text-decoration: none;
cursor: pointer;
}
#qrcontainer .qframe .info {
padding: 5px;
background-color: #f8f8f8;
/* line-height: 1.5; */
border-radius: 10px;
border: 0px solid rgba(12,0,51,.1);
margin-top: 3px;
}
#qrcontainer .qframe-close{
/* padding-top: 5px; */
}
#qrcontainer .ps-box {
padding: 5px 0;
border-radius: 10px;
}
#qrcontainer .ps-box input{
width: 100%;
-webkit-border-radius: .08rem;
border-radius: .08rem;
border: 1px solid rgba(12,0,51,.1);
margin-top: .24rem;
text-align: center;
color: #aaaaaa;
border-radius: 6px;
background-color: #f8f8f8;
/* box-shadow: 0 0 0 1px #21b2a6; */
font-size: 16px;
line-height: 2.5em;
}
#qrcontainer .ps-box input:focus {
outline: none;
box-shadow: 0 0 0 2px #21b2a6;
}
.qq_group img{
box-shadow: 0 0 0 1px #ffffff;
padding: 2px 8px;
border-radius: 6px;
}
@media screen and (max-width: 480px) {
.container p {
font-size: 0.75rem;
margin: 0;
line-height: 1.5em;
}
}
@media (min-width: 992px) {
.elk-app {
height: 100%;
}
.elk-side {
width: 20rem;
}
.elk-container,
.elk-main,
.elk-side {
overflow-y: auto;
}
}
.elk-app,
body > .ember-view {
margin-top: 8rem;
}
.bg-log {
background: #f5f2f0;
}
.bg-light {
background-color: #f8f9fa !important;
}
.text-dark {
color: #343a40 !important;
}
p {
margin: 0 0 2em 0;
}
input, select, textarea {
color: #fff;
font-family: "Open Sans", "微软雅黑", Helvetica, sans-serif;
font-size: 15pt;
font-weight: 400;
letter-spacing: 0.075em;
line-height: 1.65em;
}
h1, h2, h3, h4, h5, h6 {
color: #fff;
font-weight: 800;
letter-spacing: 0.225em;
/* line-height: 1em; */
margin: 0 0 1em 0;
text-transform: uppercase;
}
/* Banner */
#banner {
display: -moz-flex;
display: -webkit-flex;
display: -ms-flex;
display: flex;
-moz-flex-direction: column;
-webkit-flex-direction: column;
-ms-flex-direction: column;
flex-direction: column;
-moz-justify-content: center;
-webkit-justify-content: center;
-ms-justify-content: center;
justify-content: center;
cursor: default;
height: 100vh;
min-height: 35em;
overflow: hidden;
position: relative;
text-align: center;
}
#banner h1 {
font-size: 2.0em;
color: orange;
}
#banner h2 {
-moz-transform: scale(1);
-webkit-transform: scale(1);
-ms-transform: scale(1);
transform: scale(1);
-moz-transition: -moz-transform 0.5s ease, opacity 0.5s ease;
-webkit-transition: -webkit-transform 0.5s ease, opacity 0.5s ease;
-ms-transition: -ms-transform 0.5s ease, opacity 0.5s ease;
transition: transform 0.5s ease, opacity 0.5s ease;
display: inline-block;
font-size: 1.75em;
opacity: 1;
padding: 0.35em 1em;
position: relative;
z-index: 1;
}
#banner h2:before, #banner h2:after {
-moz-transition: width 0.85s ease;
-webkit-transition: width 0.85s ease;
-ms-transition: width 0.85s ease;
transition: width 0.85s ease;
-moz-transition-delay: 0.25s;
-webkit-transition-delay: 0.25s;
-ms-transition-delay: 0.25s;
transition-delay: 0.25s;
background: #fff;
content: '';
display: block;
height: 2px;
position: absolute;
width: 100%;
}
#banner h2:before {
top: 0;
left: 0;
}
#banner h2:after {
bottom: 0;
right: 0;
}
#banner p {
letter-spacing: 0.225em;
text-transform: uppercase;
color: #fff;
}
#banner p a {
color: inherit;
}
#banner .more {
-moz-transition: -moz-transform 0.75s ease, opacity 0.75s ease;
-webkit-transition: -webkit-transform 0.75s ease, opacity 0.75s ease;
-ms-transition: -ms-transform 0.75s ease, opacity 0.75s ease;
transition: transform 0.75s ease, opacity 0.75s ease;
-moz-transition-delay: 3.5s;
-webkit-transition-delay: 3.5s;
-ms-transition-delay: 3.5s;
transition-delay: 3.5s;
-moz-transform: translateY(0);
-webkit-transform: translateY(0);
-ms-transform: translateY(0);
transform: translateY(0);
border: none;
/* bottom: 8em; */
color: #fff;
font-size: 0.8em;
height: 8.5em;
left: 50%;
letter-spacing: 0.225em;
margin-left: -8.5em;
opacity: 1;
outline: 0;
padding-left: 0.225em;
position: absolute;
text-align: center;
text-transform: uppercase;
width: 16em;
z-index: 1;
}
#banner .more:after {
background-image: url("../image/qqqun.jpg");
background-position: center;
background-repeat: no-repeat;
background-size: contain;
bottom: -7em;
content: '';
display: block;
height: 10em;
left: 46%;
margin: 0 0 0 -4.5em;
position: absolute;
width: 10em;
border-radius: 11px;
}
#banner:after {
-moz-pointer-events: none;
-webkit-pointer-events: none;
-ms-pointer-events: none;
pointer-events: none;
-moz-transition: opacity 3s ease-in-out;
-webkit-transition: opacity 3s ease-in-out;
-ms-transition: opacity 3s ease-in-out;
transition: opacity 3s ease-in-out;
-moz-transition-delay: 1.25s;
-webkit-transition-delay: 1.25s;
-ms-transition-delay: 1.25s;
transition-delay: 1.25s;
content: '';
background: #2e3842;
display: block;
width: 100%;
height: 100%;
position: absolute;
left: 0;
top: 0;
opacity: 0;
}
@media screen and (max-width: 736px) {
#banner {
padding: 0em 3em 5em 3em ;
/* height: auto; */
min-height: 0;
}
#banner h2 {
font-size: 1.25em;
}
#banner br {
/* display: none; */
}
#banner .more {
/* display: none; */
}
}
body.is-loading #banner h2 {
-moz-transform: scale(0.95);
-webkit-transform: scale(0.95);
-ms-transform: scale(0.95);
transform: scale(0.95);
opacity: 0;
}
body.is-loading #banner h2:before, body.is-loading #banner h2:after {
width: 0;
}
body.is-loading #banner .more {
-moz-transform: translateY(8.5em);
-webkit-transform: translateY(8.5em);
-ms-transform: translateY(8.5em);
transform: translateY(8.5em);
opacity: 0;
}
body.is-loading #banner:after {
opacity: 1;
}
/* List */
ol {
list-style: decimal;
margin: 0 0 2em 0;
padding-left: 1.25em;
}
ol li {
padding-left: 0.25em;
}
ul {
list-style: disc;
margin: 0 0 2em 0;
padding-left: 1em;
}
ul li {
padding-left: 0.5em;
}
ul.alt {
list-style: none;
padding-left: 0;
}
ul.alt li {
border-top: solid 1px #fff;
padding: 0.5em 0;
}
ul.alt li:first-child {
border-top: 0;
padding-top: 0;
}
ul.icons {
cursor: default;
list-style: none;
padding-left: 0;
}
ul.icons li {
display: inline-block;
padding: 0 1em 0 0;
}
ul.icons li:last-child {
padding-right: 0 !important;
}
ul.icons.major {
padding: 1em 0;
}
ul.icons.major li {
padding-right: 3.5em;
}
@media screen and (max-width: 736px) {
ul.icons.major li {
padding: 0 1em !important;
}
}
ul.actions {
cursor: default;
list-style: none;
padding-left: 0;
}
ul.actions li {
display: inline-block;
padding: 0 1.5em 0 0;
vertical-align: middle;
}
ul.actions li:last-child {
padding-right: 0;
}
ul.actions.small li {
padding: 0 0.75em 0 0;
}
ul.actions.vertical li {
display: block;
padding: 1.5em 0 0 0;
}
ul.actions.vertical li:first-child {
padding-top: 0;
}
ul.actions.vertical li > * {
margin-bottom: 0;
}
ul.actions.vertical.small li {
padding: 0.75em 0 0 0;
}
ul.actions.vertical.small li:first-child {
padding-top: 0;
}
ul.actions.fit {
display: table;
margin-left: -1.5em;
padding: 0;
table-layout: fixed;
width: calc(100% + 1.5em);
}
ul.actions.fit li {
display: table-cell;
padding: 0 0 0 1.5em;
}
ul.actions.fit li > * {
margin-bottom: 0;
}
ul.actions.fit.small {
margin-left: -0.75em;
width: calc(100% + 0.75em);
}
ul.actions.fit.small li {
padding: 0 0 0 0.75em;
}
@media screen and (max-width: 736px) {
ul.actions li {
display: block;
padding: 1em 0 0 0;
text-align: center;
width: 100%;
}
ul.actions li:first-child {
padding-top: 0;
}
ul.actions li > * {
margin: 0 auto !important;
max-width: 30em;
/* width: 100%; */
}
ul.actions li > *.icon:before {
margin-left: -1em;
}
ul.actions.small li {
padding: 0.5em 0 0 0;
}
ul.actions.small li:first-child {
padding-top: 0;
}
}
dl {
margin: 0 0 2em 0;
}
/* Button */
input[type="submit"],
input[type="reset"],
input[type="button"],
button,
.button {
-moz-appearance: none;
-webkit-appearance: none;
-ms-appearance: none;
appearance: none;
-moz-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
-webkit-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
-ms-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
background-color: transparent;
border-radius: 3px;
border: 0;
box-shadow: inset 0 0 0 2px #fff;
color: #fff;
cursor: pointer;
display: inline-block;
font-size: 0.8em;
font-weight: 600;
height: 3em;
letter-spacing: 0.225em;
line-height: 3em;
padding: 0 2.75em;
text-align: center;
text-decoration: none;
text-transform: uppercase;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
input[type="submit"]:hover,
input[type="reset"]:hover,
input[type="button"]:hover,
button:hover,
.button:hover {
background-color: rgba(144, 144, 144, 0.25);
}
input[type="submit"]:active,
input[type="reset"]:active,
input[type="button"]:active,
button:active,
.button:active {
background-color: rgba(144, 144, 144, 0.5);
}
input[type="submit"].icon:before,
input[type="reset"].icon:before,
input[type="button"].icon:before,
button.icon:before,
.button.icon:before {
margin-right: 0.5em;
}
input[type="submit"].fit,
input[type="reset"].fit,
input[type="button"].fit,
button.fit,
.button.fit {
display: block;
margin: 0 0 1em 0;
width: 100%;
}
input[type="submit"].small,
input[type="reset"].small,
input[type="button"].small,
button.small,
.button.small {
font-size: 0.8em;
}
input[type="submit"].big,
input[type="reset"].big,
input[type="button"].big,
button.big,
.button.big {
font-size: 1.35em;
}
input[type="submit"].special,
input[type="reset"].special,
input[type="button"].special,
button.special,
.button.special {
background-color: #ed4933;
box-shadow: none !important;
color: #ffffff !important;
}
input[type="submit"].special:hover,
input[type="reset"].special:hover,
input[type="button"].special:hover,
button.special:hover,
.button.special:hover {
background-color: #ef5e4a !important;
}
input[type="submit"].special:active,
input[type="reset"].special:active,
input[type="button"].special:active,
button.special:active,
.button.special:active {
background-color: #eb341c !important;
}
input[type="submit"].disabled, input[type="submit"]:disabled,
input[type="reset"].disabled,
input[type="reset"]:disabled,
input[type="button"].disabled,
input[type="button"]:disabled,
button.disabled,
button:disabled,
.button.disabled,
.button:disabled {
-moz-pointer-events: none;
-webkit-pointer-events: none;
-ms-pointer-events: none;
pointer-events: none;
opacity: 0.25;
}
@media screen and (max-width: 736px) {
input[type="submit"],
input[type="reset"],
input[type="button"],
button,
.button {
height: 3.75em;
line-height: 3.75em;
}
}
/* Landing */
body.landing #page-wrapper {
background-image: -moz-linear-gradient(top, rgba(0,0,0,0.5), rgba(0,0,0,0.5)), url("../img/banner.jpg");
background-image: -webkit-linear-gradient(top, rgba(0,0,0,0.5), rgba(0,0,0,0.5)), url("../img/banner.jpg");
background-image: -ms-linear-gradient(top, rgba(0,0,0,0.5), rgba(0,0,0,0.5)), url("../img/banner.jpg");
background-image: linear-gradient(top, rgba(0,0,0,0.5), rgba(0,0,0,0.5)), url("../img/banner.jpg");
background-attachment: fixed;
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
padding-top: 0;
}
body.landing #footer {
background-color: rgba(29, 36, 42, 0.9);
}
body.is-mobile.landing #page-wrapper {
background: none;
}
body.is-mobile.landing #banner,
body.is-mobile.landing .wrapper.style4 {
background-image: -moz-linear-gradient(top, rgba(0,0,0,0.5), rgba(0,0,0,0.5)), url("../img/banner.jpg");
background-image: -webkit-linear-gradient(top, rgba(0,0,0,0.5), rgba(0,0,0,0.5)), url("../img/banner.jpg");
background-image: -ms-linear-gradient(top, rgba(0,0,0,0.5), rgba(0,0,0,0.5)), url("../img/banner.jpg");
background-image: linear-gradient(top, rgba(0,0,0,0.5), rgba(0,0,0,0.5)), url("../img/banner.jpg");
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
}
body.is-mobile.landing #footer {
background-color: #1d242a;
}
/* Basic */
@-ms-viewport {
width: device-width;
}
body.is-loading *, body.is-loading *:before, body.is-loading *:after {
-moz-animation: none !important;
-webkit-animation: none !important;
-ms-animation: none !important;
animation: none !important;
-moz-transition: none !important;
-webkit-transition: none !important;
-ms-transition: none !important;
transition: none !important;
}

136
panel/public/js/jd1.js Executable file
View File

@@ -0,0 +1,136 @@
var qrcode, userCookie, timeId;
$.ajaxSetup({
cache: false
});
$("#login").click(function () {
$user = $(".username").val();
$password = $(".password").val();
if (!$user || !$password) return;
$.post('./auth', {
username: $user,
password: $password
}, function (data) {
if (data.err == 0) {
window.location.href = "./usrconfig";
} else {
Swal.fire({
text: data.msg,
icon: 'error'
})
}
});
return false;
});
$(document).ready(function () {
qrcode = new QRCode(document.getElementById('qrcode'), {
text: 'sample',
correctLevel: QRCode.CorrectLevel.L,
});
function checkLogin(user) {
var timeId = setInterval(() => {
let timeStamp = new Date().getTime();
var msg = $('#ps').val();
console.log(user);
$.post(`./cookie2?t=${timeStamp}`, { user, msg }, function (data) {
if (data.err == 0) {
clearInterval(timeId);
$('#qrcontainer').addClass('hidden');
$('#refresh_qrcode').addClass('hidden');
userCookie = data.cookie;
msg = data.msg || '无备注';
Swal.fire({
title: msg || '🎈添加成功🎈',
/*
html:
'<div class="cookieCon" style="font-size:12px;">' +
userCookie +
'</div>',
text: userCookie,
*/
icon: 'success',
confirmButtonText: '返回',
}).then((result) => {
do_landing();
});
} else if (data.err == 21) {
clearInterval(timeId);
$('#refresh_qrcode').removeClass('hidden');
}
});
}, 3000);
}
function GetQrCode() {
let timeStamp = new Date().getTime();
$.get('./qrcode?t=' + timeStamp, function (data) {
if (data.err == 0) {
$('#qrcontainer').removeClass('hidden');
$('#refresh_qrcode').addClass('hidden');
$('.landing').addClass('is-loading');
qrcode.clear();
qrcode.makeCode(data.qrcode);
checkLogin(data.user);
} else {
Swal.fire({
text: data.msg,
icon: 'error',
});
}
});
}
function JumpToApp() {
let timeStamp = new Date().getTime();
$.get('./qrcode?t=' + timeStamp, function (data) {
if (data.err == 0) {
$('#qrcontainer').removeClass('hidden');
$('#refresh_qrcode').addClass('hidden');
$('.landing').addClass('is-loading');
window.location.href = `openapp.jdmobile://virtual/ad?params=${encodeURI(
JSON.stringify({
category: 'jump',
des: 'ThirdPartyLogin',
action: 'to',
onekeylogin: 'return',
url: data.qrcode,
authlogin_returnurl: 'weixin://',
browserlogin_fromurl: window.location.host,
})
)}`;
checkLogin(data.user);
} else {
Swal.fire({
text: data.msg,
icon: 'error',
});
}
});
}
$('.refresh').click(GetQrCode);
$('#GetQrCode').click(GetQrCode);
$('#JumpToApp').click(JumpToApp);
$('.qframe-close').click(function () {
qframe_close();
});
function do_landing() {
window.setTimeout(function () {
$('.landing').removeClass('is-loading');
}, 100);
}
function qframe_close() {
$("#qrcontainer").addClass("hidden");
$("#refresh_qrcode").addClass("hidden");
//window.location.reload();
clearInterval(timeId);
do_landing();
}
});

123
panel/public/js/jquery.base64.js Executable file
View File

@@ -0,0 +1,123 @@
/*!
* jquery.base64.js 0.0.3 - https://github.com/yckart/jquery.base64.js
* Makes Base64 en & -decoding simpler as it is.
*
* Based upon: https://gist.github.com/Yaffle/1284012
*
* Copyright (c) 2012 Yannick Albert (http://yckart.com)
* Licensed under the MIT license (http://www.opensource.org/licenses/mit-license.php).
* 2013/02/10
**/
;(function($) {
var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",
a256 = '',
r64 = [256],
r256 = [256],
i = 0;
var UTF8 = {
/**
* Encode multi-byte Unicode string into utf-8 multiple single-byte characters
* (BMP / basic multilingual plane only)
*
* Chars in range U+0080 - U+07FF are encoded in 2 chars, U+0800 - U+FFFF in 3 chars
*
* @param {String} strUni Unicode string to be encoded as UTF-8
* @returns {String} encoded string
*/
encode: function(strUni) {
// use regular expressions & String.replace callback function for better efficiency
// than procedural approaches
var strUtf = strUni.replace(/[\u0080-\u07ff]/g, // U+0080 - U+07FF => 2 bytes 110yyyyy, 10zzzzzz
function(c) {
var cc = c.charCodeAt(0);
return String.fromCharCode(0xc0 | cc >> 6, 0x80 | cc & 0x3f);
})
.replace(/[\u0800-\uffff]/g, // U+0800 - U+FFFF => 3 bytes 1110xxxx, 10yyyyyy, 10zzzzzz
function(c) {
var cc = c.charCodeAt(0);
return String.fromCharCode(0xe0 | cc >> 12, 0x80 | cc >> 6 & 0x3F, 0x80 | cc & 0x3f);
});
return strUtf;
},
/**
* Decode utf-8 encoded string back into multi-byte Unicode characters
*
* @param {String} strUtf UTF-8 string to be decoded back to Unicode
* @returns {String} decoded string
*/
decode: function(strUtf) {
// note: decode 3-byte chars first as decoded 2-byte strings could appear to be 3-byte char!
var strUni = strUtf.replace(/[\u00e0-\u00ef][\u0080-\u00bf][\u0080-\u00bf]/g, // 3-byte chars
function(c) { // (note parentheses for precence)
var cc = ((c.charCodeAt(0) & 0x0f) << 12) | ((c.charCodeAt(1) & 0x3f) << 6) | (c.charCodeAt(2) & 0x3f);
return String.fromCharCode(cc);
})
.replace(/[\u00c0-\u00df][\u0080-\u00bf]/g, // 2-byte chars
function(c) { // (note parentheses for precence)
var cc = (c.charCodeAt(0) & 0x1f) << 6 | c.charCodeAt(1) & 0x3f;
return String.fromCharCode(cc);
});
return strUni;
}
};
while(i < 256) {
var c = String.fromCharCode(i);
a256 += c;
r256[i] = i;
r64[i] = b64.indexOf(c);
++i;
}
function code(s, discard, alpha, beta, w1, w2) {
s = String(s);
var buffer = 0,
i = 0,
length = s.length,
result = '',
bitsInBuffer = 0;
while(i < length) {
var c = s.charCodeAt(i);
c = c < 256 ? alpha[c] : -1;
buffer = (buffer << w1) + c;
bitsInBuffer += w1;
while(bitsInBuffer >= w2) {
bitsInBuffer -= w2;
var tmp = buffer >> bitsInBuffer;
result += beta.charAt(tmp);
buffer ^= tmp << bitsInBuffer;
}
++i;
}
if(!discard && bitsInBuffer > 0) result += beta.charAt(buffer << (w2 - bitsInBuffer));
return result;
}
var Plugin = $.base64 = function(dir, input, encode) {
return input ? Plugin[dir](input, encode) : dir ? null : this;
};
Plugin.btoa = Plugin.encode = function(plain, utf8encode) {
plain = Plugin.raw === false || Plugin.utf8encode || utf8encode ? UTF8.encode(plain) : plain;
plain = code(plain, false, r256, b64, 8, 6);
return plain + '===='.slice((plain.length % 4) || 4);
};
Plugin.atob = Plugin.decode = function(coded, utf8decode) {
coded = coded.replace(/[^A-Za-z0-9\+\/\=]/g, "");
coded = String(coded).split('=');
var i = coded.length;
do {--i;
coded[i] = code(coded[i], true, r64, a256, 6, 8);
} while (i > 0);
coded = coded.join('');
return Plugin.raw === false || Plugin.utf8decode || utf8decode ? UTF8.decode(coded) : coded;
};
}(jQuery));

51
panel/public/js/main.js Executable file
View File

@@ -0,0 +1,51 @@
/*
Spectral by HTML5 UP
html5up.net | @n33co
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
*/
(function($) {
skel
.breakpoints({
xlarge: '(max-width: 1680px)',
large: '(max-width: 1280px)',
medium: '(max-width: 980px)',
small: '(max-width: 736px)',
xsmall: '(max-width: 480px)'
});
$(function() {
var $window = $(window),
$body = $('body'),
$wrapper = $('#page-wrapper'),
$banner = $('#banner'),
$header = $('#header');
// Disable animations/transitions until the page has loaded.
$body.addClass('is-loading');
$window.on('load', function() {
window.setTimeout(function() {
$body.removeClass('is-loading');
}, 100);
});
// Mobile?
if (skel.vars.mobile)
$body.addClass('is-mobile');
else
skel
.on('-medium !medium', function() {
$body.removeClass('is-mobile');
})
.on('+medium', function() {
$body.addClass('is-mobile');
});
});
})(jQuery);

2
panel/public/js/skel.min.js vendored Executable file

File diff suppressed because one or more lines are too long