2017-04-21 18:20:35 +08:00
|
|
|
|
<!DOCTYPE html>
|
|
|
|
|
<html lang="zh-cn">
|
|
|
|
|
<head>
|
|
|
|
|
<meta charset="utf-8">
|
2022-07-20 15:04:01 +08:00
|
|
|
|
<link rel="shortcut icon" href="{{cdnimg "/static/favicon.ico"}}">
|
2017-04-21 18:20:35 +08:00
|
|
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
|
|
|
|
|
<meta name="renderer" content="webkit" />
|
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
2018-09-19 16:12:32 +08:00
|
|
|
|
<meta name="author" content="MinDoc" />
|
2024-07-10 15:32:19 +08:00
|
|
|
|
<title>{{i18n .Lang "common.login"}} - Powered by SSHotRiver</title>
|
2018-09-19 16:12:32 +08:00
|
|
|
|
<meta name="keywords" content="MinDoc,文档在线管理系统,WIKI,wiki,wiki在线,文档在线管理,接口文档在线管理,接口文档管理">
|
|
|
|
|
<meta name="description" content="MinDoc文档在线管理系统 {{.site_description}}">
|
2017-04-21 18:20:35 +08:00
|
|
|
|
<!-- Bootstrap -->
|
2017-05-13 13:47:26 +08:00
|
|
|
|
<link href="{{cdncss "/static/bootstrap/css/bootstrap.min.css"}}" rel="stylesheet">
|
|
|
|
|
<link href="{{cdncss "/static/font-awesome/css/font-awesome.min.css"}}" rel="stylesheet">
|
2018-08-15 15:33:22 +08:00
|
|
|
|
<link href="{{cdncss "/static/css/main.css" "version"}}" rel="stylesheet">
|
2023-04-20 13:24:28 +08:00
|
|
|
|
<style>
|
|
|
|
|
.line {
|
|
|
|
|
height:0;
|
|
|
|
|
border-top: 1px solid #cccccc;
|
|
|
|
|
text-align:center;
|
|
|
|
|
margin: 14px 0;
|
2022-05-07 18:06:46 +08:00
|
|
|
|
}
|
2023-04-20 13:24:28 +08:00
|
|
|
|
.line > .text {
|
|
|
|
|
position:relative;
|
|
|
|
|
top:-12px;
|
|
|
|
|
background-color:#fff;
|
|
|
|
|
padding: 5px;
|
|
|
|
|
}
|
|
|
|
|
.icon-box {
|
|
|
|
|
align-items: center;
|
|
|
|
|
justify-content: center;
|
|
|
|
|
display: flex;
|
|
|
|
|
display: -webkit-flex;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.icon {
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
display: inline-block;
|
|
|
|
|
padding: 10px;
|
|
|
|
|
border-radius: 50%;
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
margin: 0 5px;
|
|
|
|
|
}
|
|
|
|
|
.icon-disable {
|
|
|
|
|
background-color: #cccccc;
|
|
|
|
|
cursor: not-allowed;
|
|
|
|
|
}
|
|
|
|
|
.icon-disable:hover {
|
|
|
|
|
background-color: #bbbbbb;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.icon > img {
|
|
|
|
|
height: 24px;
|
2022-05-07 18:06:46 +08:00
|
|
|
|
}
|
|
|
|
|
</style>
|
2024-07-10 15:32:19 +08:00
|
|
|
|
<!-- 滚动条样式 -->
|
|
|
|
|
<style>
|
|
|
|
|
/* 滚动条动画,从右到左循环 */
|
|
|
|
|
@keyframes scroll-left {
|
|
|
|
|
0% {
|
|
|
|
|
transform: translateX(50%);
|
|
|
|
|
}
|
|
|
|
|
100% {
|
|
|
|
|
transform: translateX(-100%);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 滚动条容器 */
|
|
|
|
|
.scrolling-text {
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
white-space: nowrap;
|
|
|
|
|
width: 100%;
|
|
|
|
|
box-sizing: border-box;
|
|
|
|
|
background-color: #f0f0f0;
|
|
|
|
|
border: 1px solid #5cb85c;
|
|
|
|
|
margin: 80px 0 0px 0;
|
|
|
|
|
position: relative;
|
|
|
|
|
height: 40px;
|
|
|
|
|
border-radius: 15px;
|
|
|
|
|
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 滚动的文本内容 */
|
|
|
|
|
.scrolling-content {
|
|
|
|
|
display: inline-block;
|
|
|
|
|
animation: scroll-left 30s linear infinite;
|
|
|
|
|
color: #555;
|
|
|
|
|
font-size: 18px;
|
|
|
|
|
font-weight: bold;
|
|
|
|
|
line-height: 40px;
|
|
|
|
|
padding: 0 0px;
|
|
|
|
|
transform: translateX(100%);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 渐变效果,用于遮盖滚动条的两端 */
|
|
|
|
|
.scrolling-text::before,
|
|
|
|
|
.scrolling-text::after {
|
|
|
|
|
content: '';
|
|
|
|
|
position: absolute;
|
|
|
|
|
top: 0;
|
|
|
|
|
width: 40px;
|
|
|
|
|
height: 100%;
|
|
|
|
|
background: linear-gradient(to right, #f0f0f0, rgba(240, 240, 240, 0));
|
|
|
|
|
z-index: 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.scrolling-text::after {
|
|
|
|
|
right: 0;
|
|
|
|
|
background: linear-gradient(to left, #f0f0f0, rgba(240, 240, 240, 0));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.scrolling-text::before {
|
|
|
|
|
left: 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* 新添加的类,用于触发动画 */
|
|
|
|
|
.start-animation .scrolling-content {
|
|
|
|
|
animation-play-state: running;
|
|
|
|
|
}
|
|
|
|
|
</style>
|
|
|
|
|
<script>
|
|
|
|
|
document.addEventListener("DOMContentLoaded", function () {
|
|
|
|
|
document.querySelector(".scrolling-content").classList.add("start-animation");
|
|
|
|
|
});
|
|
|
|
|
</script>
|
2017-04-21 18:20:35 +08:00
|
|
|
|
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
|
2017-05-13 13:47:26 +08:00
|
|
|
|
<script src="{{cdnjs "/static/jquery/1.12.4/jquery.min.js"}}"></script>
|
2017-04-21 18:20:35 +08:00
|
|
|
|
</head>
|
|
|
|
|
<body class="manual-container">
|
|
|
|
|
<header class="navbar navbar-static-top smart-nav navbar-fixed-top manual-header" role="banner">
|
|
|
|
|
<div class="container">
|
|
|
|
|
<div class="navbar-header col-sm-12 col-md-6 col-lg-5">
|
2018-02-05 13:41:24 +08:00
|
|
|
|
<a href="{{.BaseUrl}}" class="navbar-brand">{{.SITE_NAME}}</a>
|
2017-04-21 18:20:35 +08:00
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</header>
|
|
|
|
|
<div class="container manual-body">
|
|
|
|
|
<div class="row login">
|
|
|
|
|
<div class="login-body">
|
|
|
|
|
<form role="form" method="post">
|
2018-11-14 12:02:52 +08:00
|
|
|
|
{{ .xsrfdata }}
|
2021-03-30 16:18:02 +08:00
|
|
|
|
<h3 class="text-center">{{i18n .Lang "common.login"}}</h3>
|
2017-04-21 18:20:35 +08:00
|
|
|
|
<div class="form-group">
|
|
|
|
|
<div class="input-group">
|
|
|
|
|
<div class="input-group-addon">
|
|
|
|
|
<i class="fa fa-user"></i>
|
|
|
|
|
</div>
|
2021-03-30 16:18:02 +08:00
|
|
|
|
<input type="text" class="form-control" placeholder="{{i18n .Lang "common.email"}} / {{i18n .Lang "common.username"}}" name="account" id="account" autocomplete="off">
|
2017-04-21 18:20:35 +08:00
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
<div class="input-group">
|
|
|
|
|
<div class="input-group-addon">
|
|
|
|
|
<i class="fa fa-lock"></i>
|
|
|
|
|
</div>
|
2021-03-30 16:18:02 +08:00
|
|
|
|
<input type="password" class="form-control" placeholder="{{i18n .Lang "common.password"}}" name="password" id="password" autocomplete="off">
|
2017-04-21 18:20:35 +08:00
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2017-05-01 19:33:09 +08:00
|
|
|
|
{{if .ENABLED_CAPTCHA }}
|
2017-04-21 18:20:35 +08:00
|
|
|
|
{{if ne .ENABLED_CAPTCHA "false"}}
|
|
|
|
|
<div class="form-group">
|
2017-05-01 12:15:55 +08:00
|
|
|
|
<div class="input-group" style="float: left;width: 195px;">
|
2017-04-21 18:20:35 +08:00
|
|
|
|
<div class="input-group-addon">
|
|
|
|
|
<i class="fa fa-check-square"></i>
|
|
|
|
|
</div>
|
2021-03-30 16:18:02 +08:00
|
|
|
|
<input type="text" name="code" id="code" class="form-control" style="width: 150px" maxlength="5" placeholder="{{i18n .Lang "common.captcha"}}" autocomplete="off">
|
2017-04-21 18:20:35 +08:00
|
|
|
|
</div>
|
2021-03-30 16:18:02 +08:00
|
|
|
|
<img id="captcha-img" style="width: 140px;height: 40px;display: inline-block;float: right" src="{{urlfor "AccountController.Captcha"}}" onclick="this.src='{{urlfor "AccountController.Captcha"}}?key=login&t='+(new Date()).getTime();" title={{i18n .Lang "message.click_to_change"}}>
|
2017-05-01 12:15:55 +08:00
|
|
|
|
<div class="clearfix"></div>
|
2017-04-21 18:20:35 +08:00
|
|
|
|
</div>
|
|
|
|
|
{{end}}
|
2017-05-01 19:33:09 +08:00
|
|
|
|
{{end}}
|
2017-04-21 18:20:35 +08:00
|
|
|
|
<div class="checkbox">
|
|
|
|
|
<label>
|
2021-03-30 16:18:02 +08:00
|
|
|
|
<input type="checkbox" name="is_remember" value="yes"> {{i18n .Lang "common.keep_login"}}
|
2017-04-21 18:20:35 +08:00
|
|
|
|
</label>
|
2021-03-30 16:18:02 +08:00
|
|
|
|
<a href="{{urlfor "AccountController.FindPassword" }}" style="display: inline-block;float: right">{{i18n .Lang "common.forgot_password"}}</a>
|
2017-04-21 18:20:35 +08:00
|
|
|
|
</div>
|
|
|
|
|
<div class="form-group">
|
2021-03-30 16:18:02 +08:00
|
|
|
|
<button type="button" id="btn-login" class="btn btn-success" style="width: 100%" data-loading-text="{{i18n .Lang "common.logging_in"}}" autocomplete="off">{{i18n .Lang "common.login"}}</button>
|
2017-04-21 18:20:35 +08:00
|
|
|
|
</div>
|
2017-05-01 19:33:09 +08:00
|
|
|
|
{{if .ENABLED_REGISTER}}
|
2023-04-20 13:24:28 +08:00
|
|
|
|
{{if ne .ENABLED_REGISTER "false"}}
|
|
|
|
|
<div class="form-group">
|
|
|
|
|
{{i18n .Lang "message.no_account_yet"}} <a href="{{urlfor "AccountController.Register" }}" title={{i18n .Lang "common.register"}}>{{i18n .Lang "common.register"}}</a>
|
|
|
|
|
</div>
|
|
|
|
|
{{end}}
|
2017-05-01 19:33:09 +08:00
|
|
|
|
{{end}}
|
2017-04-21 18:20:35 +08:00
|
|
|
|
</form>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="clearfix"></div>
|
|
|
|
|
</div>
|
2024-07-10 15:32:19 +08:00
|
|
|
|
<!-- 滚动条 -->
|
|
|
|
|
<div class="container">
|
|
|
|
|
<div class="scrolling-text">
|
|
|
|
|
<div class="scrolling-content">
|
|
|
|
|
本站内容涵盖:创业知识,副业兼职,项目拆解,职场技能,认知提升,个人成长,新媒体运营,兴趣爱好,AI使用等创业的方方面面。现在仅需99元便可开通永久特权账号,享受本站全部内容和服务,请添加微信号(hjyfa01)并备注“黄敬尧掘金频道”创建登录账号!
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2017-04-21 18:20:35 +08:00
|
|
|
|
{{template "widgets/footer.tpl" .}}
|
|
|
|
|
<!-- Include all compiled plugins (below), or include individual files as needed -->
|
2017-05-13 13:47:26 +08:00
|
|
|
|
<script src="{{cdnjs "/static/bootstrap/js/bootstrap.min.js"}}" type="text/javascript"></script>
|
|
|
|
|
<script src="{{cdnjs "/static/layer/layer.js"}}" type="text/javascript"></script>
|
2021-03-25 16:30:12 +08:00
|
|
|
|
|
2017-04-21 18:20:35 +08:00
|
|
|
|
<script type="text/javascript">
|
2022-05-07 18:06:46 +08:00
|
|
|
|
$(document).ready(function () {
|
2018-01-18 19:54:05 +08:00
|
|
|
|
$("#account,#password,#code").on('focus', function () {
|
2018-01-09 18:15:40 +08:00
|
|
|
|
$(this).tooltip('destroy').parents('.form-group').removeClass('has-error');
|
2017-04-21 18:20:35 +08:00
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
$(document).keydown(function (e) {
|
|
|
|
|
var event = document.all ? window.event : e;
|
2018-01-09 18:15:40 +08:00
|
|
|
|
if (event.keyCode === 13) {
|
2017-04-21 18:20:35 +08:00
|
|
|
|
$("#btn-login").click();
|
|
|
|
|
}
|
|
|
|
|
});
|
2018-01-09 18:15:40 +08:00
|
|
|
|
|
2023-04-20 13:24:28 +08:00
|
|
|
|
$(".icon").on('click', function (){
|
|
|
|
|
if ($(this).hasClass("icon-disable")) {
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
window.location.href = $(this).data("url");
|
|
|
|
|
})
|
|
|
|
|
|
2018-01-09 18:15:40 +08:00
|
|
|
|
$("#btn-login").on('click', function () {
|
2018-01-18 19:54:05 +08:00
|
|
|
|
$(this).tooltip('destroy').parents('.form-group').removeClass('has-error');
|
2017-04-21 18:20:35 +08:00
|
|
|
|
var $btn = $(this).button('loading');
|
|
|
|
|
|
|
|
|
|
var account = $.trim($("#account").val());
|
2017-04-24 18:25:17 +08:00
|
|
|
|
var password = $.trim($("#password").val());
|
2017-04-21 18:20:35 +08:00
|
|
|
|
var code = $("#code").val();
|
2018-01-09 18:15:40 +08:00
|
|
|
|
|
|
|
|
|
if (account === "") {
|
2021-03-30 16:18:02 +08:00
|
|
|
|
$("#account").tooltip({ placement: "auto", title: "{{i18n .Lang "message.account_empty"}}", trigger: 'manual' })
|
2017-04-21 18:20:35 +08:00
|
|
|
|
.tooltip('show')
|
|
|
|
|
.parents('.form-group').addClass('has-error');
|
|
|
|
|
$btn.button('reset');
|
|
|
|
|
return false;
|
2018-01-09 18:15:40 +08:00
|
|
|
|
} else if (password === "") {
|
2021-03-30 16:18:02 +08:00
|
|
|
|
$("#password").tooltip({ title: '{{i18n .Lang "message.password_empty"}}', trigger: 'manual' })
|
2017-04-21 18:20:35 +08:00
|
|
|
|
.tooltip('show')
|
|
|
|
|
.parents('.form-group').addClass('has-error');
|
|
|
|
|
$btn.button('reset');
|
|
|
|
|
return false;
|
2018-01-09 18:15:40 +08:00
|
|
|
|
} else if (code !== undefined && code === "") {
|
2021-03-30 16:18:02 +08:00
|
|
|
|
$("#code").tooltip({ title: '{{i18n .Lang "message.captcha_empty"}}', trigger: 'manual' })
|
2017-04-21 18:20:35 +08:00
|
|
|
|
.tooltip('show')
|
|
|
|
|
.parents('.form-group').addClass('has-error');
|
|
|
|
|
$btn.button('reset');
|
|
|
|
|
return false;
|
2018-01-09 18:15:40 +08:00
|
|
|
|
} else {
|
2017-04-21 18:20:35 +08:00
|
|
|
|
$.ajax({
|
2018-01-26 17:17:38 +08:00
|
|
|
|
url: "{{urlfor "AccountController.Login" "url" .url}}",
|
2018-01-09 18:15:40 +08:00
|
|
|
|
data: $("form").serializeArray(),
|
|
|
|
|
dataType: "json",
|
|
|
|
|
type: "POST",
|
|
|
|
|
success: function (res) {
|
|
|
|
|
if (res.errcode !== 0) {
|
2017-04-21 18:20:35 +08:00
|
|
|
|
$("#captcha-img").click();
|
|
|
|
|
$("#code").val('');
|
|
|
|
|
layer.msg(res.message);
|
|
|
|
|
$btn.button('reset');
|
2018-01-09 18:15:40 +08:00
|
|
|
|
} else {
|
2018-01-26 17:17:38 +08:00
|
|
|
|
turl = res.data;
|
2018-01-09 18:15:40 +08:00
|
|
|
|
if (turl === "") {
|
|
|
|
|
turl = "/";
|
|
|
|
|
}
|
|
|
|
|
window.location = turl;
|
2017-04-21 18:20:35 +08:00
|
|
|
|
}
|
|
|
|
|
},
|
2018-01-09 18:15:40 +08:00
|
|
|
|
error: function () {
|
2017-04-21 18:20:35 +08:00
|
|
|
|
$("#captcha-img").click();
|
|
|
|
|
$("#code").val('');
|
2021-03-30 16:18:02 +08:00
|
|
|
|
layer.msg('{{i18n .Lang "message.system_error"}}');
|
2017-04-21 18:20:35 +08:00
|
|
|
|
$btn.button('reset');
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
</script>
|
|
|
|
|
</body>
|
|
|
|
|
</html>
|