123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472 |
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
- <meta http-equiv="Cache" content="no-cache">
- <meta http-equiv="Pragma" content="no-cache" />
- <meta http-equiv="Expires" content="0" />
- <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
- <title> 管理后台 </title>
- </head>
- <style>
- html,body{
- margin: 0;
- height: 100%;
- }
- body{
- background-color: #F2F2F4;
- }
- * {
- font-family: 'SF-Medium';
- }
- @-webkit-keyframes rotation{
- from {-webkit-transform: rotate(0deg);}
- to {-webkit-transform: rotate(360deg);}
- }
- .sf-loop{
- -webkit-transform: rotate(360deg);
- animation: rotation 3s linear infinite;
- -moz-animation: rotation 3s linear infinite;
- -webkit-animation: rotation 3s linear infinite;
- -o-animation: rotation 3s linear infinite;
- }
- .sf-set{
- position: relative;
- }
- .sf-set img{
- position:absolute;
- }
- .sf-set-1{
- height: 80px;
- left:0;
- top:0;
- z-index:1;
- }
- .sf-set-2{
- height: 64px;
- left:8px;
- top:8px;
- z-index:2;
- }
- .sf-group{
- position: relative;
- margin-left: 10px;
- margin-top: 10px;
- color:#000000;
- height: 400px;
- }
- .sf-group-btn{
- position: relative;
- height: 40px;
- font-size: 16px;
- margin-top: 10px;
- margin-left: 10px;
- }
- .layui-fluid .layui-card{
- border-radius: 12px
- }
- .sf-set-font{
- position: absolute;
- left:100px;
- font-size: 17px;
- font-weight: 600;
- }
- .sf-set-font .sf-text{
- font-weight: normal;
- font-size: 14px;
- }
- .sf-set-introduce{
- position: absolute;
- top:100px;
- font-size: 16px;
- margin: 10px auto;
- height:240px;
- overflow: hidden;
- text-overflow: ellipsis;
- display: -webkit-box;
- -webkit-line-clamp: 3;
- -webkit-box-orient: vertical;
- }
- .sf-set-more{
- position: absolute;
- bottom:10px;
- font-size: 16px;
- }
- .sf-group-btn .sf-download{
- position: absolute;
- bottom:10px;
- left:10px;
- }
- a{
- color:#007aff;
- }
- a:hover{
- color:#D8E7FD;
- }
- .layui-progress-bar {
- height: 3px;
- color:#007aff;
- }
- .layui-layer .layui-layer-admin .layui-layer-title{
- text-align: center;
- color:#000000;
- }
- .layui-anim-downbit{
- animation-name:layui-downbit
- }
- @keyframes layui-downbit{
- 0%{opacity:.3;transform:translate3d(0,-10px,0)}
- 100%{opacity:1;transform:translate3d(0,0,0)}
- }
- .loading{
- position: absolute;
- }
- .loading>div{
- position: absolute;
- width: 5px;
- height: 15px;
- border-radius: 10px;
- background-color: white;
- }
- .loading>div:nth-child(1){
- top: 15px;
- left: 0px;
- background-color: #D9D8DD;
- animation: loading infinite 1s 0.5s;
- }
- .loading>div:nth-child(2){
- top: 10.1442px;
- left: 10.1442px;
- transform: rotate(-45deg);
- background-color: #C9C8CD;
- animation: loading infinite 1s 0.375s;
- }
- .loading>div:nth-child(3){
- top: 0px;
- left: 15px;
- transform: rotate(90deg);
- background-color: #B8B7BC;
- animation: loading infinite 1s 0.25s;
- }
- .loading>div:nth-child(4){
- top: -10.1442px;
- left: 10.1442px;
- transform: rotate(45deg);
- background-color: #ADACB1;
- animation: loading infinite 1s 0.125s;
- }
- .loading>div:nth-child(5){
- top: -15px;
- left: 0px;
- transform: rotate(0deg);
- background-color: #A09FA4;
- animation: loading infinite 1s;
- }
- .loading>div:nth-child(6){
- top: -10.1442px;
- left: -10.1442px;
- transform: rotate(-45deg);
- background-color: white;
- animation: loading infinite 1s 0.875s;
- }
- .loading>div:nth-child(7){
- top: 0px;
- left: -15px;
- transform: rotate(90deg);
- background-color: white;
- animation: loading infinite 1s 0.75s;
- }
- .loading>div:nth-child(8){
- top: 10.1442px;
- left: -10.1442px;
- transform: rotate(45deg);
- background-color: white;
- animation: loading infinite 1s 0.625s;
- }
- @keyframes loading {
- 100%{
- opacity: 0.8;
- background-color: #D9D8DD;
- }
- 75%{
- opacity: 0.8;
- background-color: #C9C8CD;
- }
- 50% {
- opacity: 0.8;
- background-color: #B8B7BC;
- }
- 25%{
- opacity: 0.8;
- background-color: #ADACB1;
- }
- 0% {
- opacity: 0.8;
- background-color: #A09FA4;
- }
- }
- .sf-loading{
- position: relative;
- display: flex;
- justify-content: center;
- align-items: center;
- top:300px;
- }
- .sf-loading .sf-loading-font{
- position: absolute;
- top:70px;
- font-size: 18px;
- color:#626166;
- }
- /* @font-face{
- font-family: SF;
- src: url("{__FONT__}PingFang Bold.ttf");
- }
- @font-face{
- font-family: SF-Medium;
- src: url("{__FONT__}PingFang Medium.ttf");
- } */
- .sf-loading .sf-new-font{
- position: absolute;
- top:70px;
- font-size: 18px;
- color:#808A87;
- }
- .sf-loading .sf-new-font2{
- position: absolute;
- top:92px;
- font-size: 15px;
- color:#808A87;
- }
- </style>
- <body class="laytp-container">
- <div class="layui-row">
- <div class="layui-col-md6 layui-col-md-offset3 layui-col-sm8 layui-col-sm-offset2 layui-col-xs12">
- <div class="layui-fluid">
- <div id="sf_update" class="layui-anim layui-anim-downbit" style="display: none">
- <div class="layui-card">
- <div class="layui-card-body">
- <div id="sf_progress" style="display: none">
- <div class="layui-progress" lay-filter="uploadProgress" style="height:3px;margin-left:110px;top:68px">
- <div class="layui-progress-bar" lay-percent="0%"></div>
- </div>
- </div>
- <div class="sf-group">
- <div class="sf-set">
- <img class="sf-set-1" src="https://source.iduomi.cc/sf_set.png">
- <img id="sf_set" class="sf-set-2" src="https://source.iduomi.cc/sf_set2.png">
- </div>
- <div class="sf-set-font">
- <span class="module_title"></span> <span id="sf_edition">1.0</span>
- <div class="sf-text" style="padding-top: 2px">荣誉出品</div>
- <div class="sf-text" style="padding-top: 8px"><span id="sf_msg">3.3 GB</span></div>
- </div>
- <div class="sf-set-introduce">
- <div id="sf_introduce">暂无更新内容</div>
- </div>
- <div class="sf-set-more">
- <a lay-filter="uplog" lay-submit>了解更多...</a>
- </div>
- </div>
- </div>
- </div>
- <div id="sf_update_btn_group" class="layui-card">
- <div class="sf-group-btn">
- <div class="sf-download">
- <a id="sf_update_btn" lay-filter="update" lay-submit>下载并安装</a>
- </div>
- </div>
- </div>
- </div>
- <div id="sf_loading" class="sf-loading" style="display: none">
- <div class="loading">
- <div></div>
- <div></div>
- <div></div>
- <div></div>
- <div></div>
- <div></div>
- <div></div>
- <div></div>
- </div>
- <div class="sf-loading-font">正在检查更新...</div>
- </div>
- <div id="sf_new_version" class="sf-loading" style="display: none">
- <div class="sf-new-font"><span class="module_title"></span> <span id="sf_current_edition"></span></div>
- <div class="sf-new-font2">已是最新版本<span id="sf_edition_now"></span></div>
- </div>
- </div>
- </div>
- </div>
- <script type="application/javascript">
- document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") + "/admin/css/sf-style.css?v=" + localStorage.getItem("version") + "'>");
- document.write("<link rel='stylesheet' href='" + localStorage.getItem("staticDomain") +
- "/component/layui/css/layui.css?v=" + localStorage.getItem("version") + "'>");
- document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/layui/layui.js?v=" +
- localStorage.getItem("version") + "'><\/script>");
- document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/laytp/layuiConfig.js?v=" +
- localStorage.getItem("version") + "'><\/script>");
- document.write("<script src='" + localStorage.getItem("staticDomain") + "/component/jquery_3.3.1.js?v=" +
- localStorage.getItem("version") + "'><\/script>");
- </script>
- <script type="text/html" id="SF_Uplog"></script>
- <script>
- layui.use(['element', 'form', 'notice', 'admin'], function () {
- var $ = layui.jquery;
- var form = layui.form;
- var admin = layui.admin;
- var element = layui.element;
- var layer = layui.layer;
- $("#sf_loading").show();
- facade.ajax({route: '/admin.console/check',successAlert:false}).done(function(res){
- $("#sf_loading").hide();
- if (res.code == 0) {
- var data = res.data;
- $("#sf_edition_now").text(data.mudule_info.edition);
- $(".module_title").text(data.mudule_info.module_title);
- if(data && data.data && data.data.code == 1){
- $("#sf_update").show();
- $("#sf_edition").text(data.data.data.edition);
- $("#sf_msg").text(data.data.data.filesize + ' MB');
- $("#sf_introduce").text('本次更新:' + data.data.data.introduce);
- var html = '<div class="layui-card layui-card-body"><ul class="layui-timeline">';
- $.each(data.data.data.update_log, function(index, value){
- html += '<li class="layui-timeline-item">\n' +
- ' <i class="layui-icon layui-timeline-axis"></i>\n' +
- ' <div class="layui-timeline-content layui-text">\n' +
- ' <h3 class="layui-timeline-title">'+index+'</h3>\n' +
- ' <p>\n';
- $.each(value, function(index, value){
- html += value + '<br>';
- });
- html +=' </p>\n' +
- ' </div>\n' +
- ' </li>';
- });
- html += '</ul></div>';
- $("#SF_Uplog").html(html);
- }else{
- $("#sf_new_version").show();
- }
- }else{
- $("#sf_loading").hide();
- }
- })
- form.on('submit(uplog)', function (data) {
- layer.open({
- title: '关于本更新',
- type: 1,
- shade: .1,
- area:['100%','100%'],
- anim: 2,
- content: $("#SF_Uplog").html()
- });
- return false;
- });
- function updateStatus(type = false){
- if(type){
- $("sf_msg").css('display','none');
- $("#sf_msg").text('正在准备下载...');
- $("#sf_update_btn").css('color','#8B8B8D');
- $("#sf_update_btn").text('正在下载...');
- $("#sf_set").addClass('sf-loop');
- }else{
- $("#sf_update_btn").css('color','#007aff');
- $("#sf_update_btn").text('下载并安装');
- $("#sf_set").removeClass('sf-loop');
- }
- }
- var percentage = 100;
- var progressNum = 0;
- function updateVersion(){
- facade.ajax({route: '/admin.console/updateVersion',SF_Action:true,successAlert:false}).done(function(res){
- console.log(res)
- if(res.code == 0){
- // var data = res.data;
- if(res.data.code == 0){
- setTimeout(function (){
- // updateStatus();
- },1000);
- }else if(res.data.code == 1){
- if(progressNum == 0){
- percentage = (100 / res.data.count);
- }
- $("#sf_progress").css('display','inherit');
- $("#sf_msg").text(res.data.msg);
- progressNum = percentage + progressNum;
- element.progress('uploadProgress', progressNum + '%');
- updateStatus();
- // updateVersion();
- $("#sf_update").hide();
- $("#sf_new_version").show();
- return;
- }else if(res.data.code == 2){
- $("#sf_msg").text(data.msg);
- element.progress('uploadProgress', '100%');
- $("#sf_update_btn_group").css('display','none');
- updateStatus();
- }else{
- facade.error('服务器错误!'+res.data.msg)
- $("#sf_msg").text(res.data.msg);
- updateStatus();
- }
- }
- })
- // $.ajax({
- // type: "POST",
- // url: '{:url("/Set/updateVersion")}',
- // dataType: "json",
- // success: function(data) {
- // if(data.data.code == 1){
- // if(progressNum == 0){
- // percentage = (100 / data.data.count);
- // }
- // $("#sf_progress").css('display','inherit');
- // $("#sf_msg").text(data.msg);
- // progressNum = percentage + progressNum;
- // element.progress('uploadProgress', progressNum + '%');
- // updateVersion();
- // }else if(data.data.code == 2){
- // $("#sf_msg").text(data.msg);
- // element.progress('uploadProgress', '100%');
- // $("#sf_update_btn_group").css('display','none');
- // updateStatus();
- // }else{
- // facade.error('服务器错误!')
- // $("#sf_msg").text(data.msg);
- // updateStatus();
- // }
- // },
- // error: function() {
- // $("#sf_loading").hide();
- // facade.error('服务器错误!')
- // updateStatus();
- // }
- // });
- }
- form.on('submit(update)', function (data) {
- let layerConfirm = layui.layer.confirm('更新前,请务必做好网站与数据的备份,如果因更新导致问题,本团队概不负责.', {
- title: "提示",
- skin: "laytp"
- }, function() {
- updateStatus(true);
- updateVersion()
- layui.layer.close(layerConfirm);
- return false;
- });
- });
- });
- </script>
|