let time_format = "YYYY-MM-DD HH:mm:ss";
//获取地址栏参数
function getUrlParam(name) {
let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)"); //构造一个含有目标参数的正则表达式对象
let r = window.location.search.substr(1).match(reg); //匹配目标参数
if (r != null) return decodeURI(r[2]);
return null; //返回参数值
}
//构建文章列表
function build_article_list(articles, position) {
position.empty();
$.each(articles, function (index, item) {
let h = $("
");
let p1 = $("
").append(item.summary);
let p2 = $("
").append("分类:" + item.category.name + " ").append("" + item.simpleUser.username + " 最后修改于 " + moment(new Date(item.lastEditTime)).format(time_format) + " ");
$("
").css("padding-bottom", "3px").css("padding-top", "3px").append(h).append(p1).append(p2).appendTo(position);
});
}
//构建分页数据
function build_page_info(pageIndex, pageSize, totalCount) {
let _pages = Math.floor((totalCount - 1) / pageSize) + 1;
let result = {
page: pageIndex,
size: pageSize,
total: totalCount,
pages: _pages,
hasPreviousPage: pageIndex !== 1,
hasNextPage: pageIndex < _pages,
beforePages: [],
afterPages: [],
}
for (let i = (pageIndex <= 3 ? 1 : pageIndex - 2); i < pageIndex; i++) {
result.beforePages.push(i);
}
for (let i = pageIndex + 1; i <= (pageIndex <= result.pages - 2 ? pageIndex + 2 : _pages); i++) {
result.afterPages.push(i);
}
return result;
}
//构建分页条
function build_page_nav(page_info, position) {
position.empty();
let ul = $("").addClass("pagination");
let firstPageLi = $(" ").append("首页 ").val(1);
let prePageLi = $(" ").append($(" ").append("«")).val(page_info.page - 1);
if (!page_info.hasPreviousPage) {
firstPageLi.addClass("disabled");
prePageLi.addClass("disabled");
}
let lastPageLi = $(" ").append($(" ").append("末页")).val(page_info.pages);
let nextPageLi = $(" ").append($(" ").append("»")).val(page_info.page + 1);
if (page_info.hasNextPage === false) {
lastPageLi.addClass("disabled");
nextPageLi.addClass("disabled");
}
ul.append(firstPageLi).append(prePageLi);
$.each(page_info.beforePages, function (index, item) {
let numLi = $(" ").append("" + item + " ").val(item);
numLi.appendTo(ul);
});
ul.append("" + page_info.page + " ");
$.each(page_info.afterPages, function (index, item) {
let numLi = $(" ").append("" + item + " ").val(item);
numLi.appendTo(ul);
});
ul.append(nextPageLi).append(lastPageLi);
let navEle = $(" ").append(ul);
navEle.appendTo(position);
}
//注销
function logout() {
$.ajax("/logout", {
type: "POST",
success: function () {
$(window).attr('location', '/login.html');
},
statusCode: {
403: function () {
$(window).attr('location', '/login.html');
}
}
})
}
//检查是否已登录
function check_login() {
$.ajax({
url: "/account/online",
type: "GET",
async: false,
statusCode: {
403: function () {
$(window).attr('location', '/login.html');
}
}
});
}
/**
* str { String } 完整字符串
* target { String } 目标对象,要查找的字符串
*/
function searchStrEach(str, target) {
let sum = 0;
for (let key of str) {
if (key == target) {
sum++;
}
}
return sum;
}
/**
* 获取邮箱验证码
*/
function getCode(flag) {
let _data = "email=" + $("#new_email").val();
let btn = $(this);
btn.attr("disabled", true);
if (flag) {
_data += "qq=" + $("#qq_number").val() + "&signup_code=" + $("#signup_code").val() + "&signup=true";
} else {
_data += "&signup=false";
}
$.ajax("/account/email_code", {
type: "POST",
data: _data,
dataType: 'json',
success: function () {
toastr.success("邮件已发送,请查收");
setTimeout(function () {
btn.attr('disabled', false);
}, 30000);
},
statusCode: {
400: function (XMLHttpRequest) {
toastr.warning(XMLHttpRequest.responseJSON);
btn.attr('disabled', true);
},
401: function (XMLHttpRequest) {
toastr.warning(XMLHttpRequest.responseJSON);
btn.attr('disabled', true);
},
403: function (XMLHttpRequest) {
toastr.warning(XMLHttpRequest.responseJSON);
btn.attr('disabled', true);
}
}
})
}
//显示捐赠模态框
function show_donate() {
$("#donate_form")[0].reset();
$("#donate_modal").modal({
backdrop: "static"
});
}
//捐赠表单提交点击事件
$("#donate_btn").on("click", function () {
$("#donate_form").submit();
});
//搜索按钮点击事件
function to_search() {
$(window).attr("location","/search.html?key=" + $("#search_key").val());
}