feat: 后台网站信息管理

This commit is contained in:
xiongxiaoyang
2023-04-14 14:56:11 +08:00
parent b45b83fdb0
commit 2c3b735d49
37 changed files with 1821 additions and 543 deletions

View File

@ -1,12 +1,14 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:th="http://www.w3.org/1999/xhtml">
<head th:replace="common/header :: common_head(~{::title},~{::meta},~{::link},~{})">
<title th:utext="${book.bookName}+'_'+${bookIndex.indexName}+'_'+${application.website.name}"></title>
<meta name="keywords" th:content="${book.bookName}+'官方首发,'+${book.bookName}+'小说,'+${book.bookName}+'最新章节,'+${book.bookName}+'txt下载,'+${book.bookName}+'无弹窗,'+${book.bookName}+'吧,'+${book.bookName}+'离线完本'" />
<meta name="description" th:content="${book.bookName}+','+${book.bookName}+'小说阅读,'+${application.website.name}+'提供'+${book.bookName}+'首发最新章节及txt下载,'+${book.bookName}+'最新更新章节,精彩尽在'+${application.website.name}+''" />
<link rel="stylesheet" href="/css/read.css" />
<link href="/css/book.css" rel="stylesheet" />
<meta name="keywords"
th:content="${book.bookName}+'官方首发,'+${book.bookName}+'小说,'+${book.bookName}+'最新章节,'+${book.bookName}+'txt下载,'+${book.bookName}+'无弹窗,'+${book.bookName}+'吧,'+${book.bookName}+'离线完本'"/>
<meta name="description"
th:content="${book.bookName}+','+${book.bookName}+'小说阅读,'+${application.website.name}+'提供'+${book.bookName}+'首发最新章节及txt下载,'+${book.bookName}+'最新更新章节,精彩尽在'+${application.website.name}+'。'"/>
<link rel="stylesheet" href="/css/read.css"/>
<link href="/css/book.css" rel="stylesheet"/>
</head>
<link href="/layui/css/layui.css" rel="stylesheet"/>
@ -25,13 +27,13 @@
<script src="/javascript/bookdetail.js" type="text/javascript"></script>
<script type="text/javascript">
BookDetail.SetReadFontFamilyClear(0);
var font = localStorage.getItem("fonts");
var font = localStorage.getItem("fonts");
var colorNum = localStorage.getItem("colorNum");
var fontNum = localStorage.getItem("fontNum");
</script>
<body class="read_style_1" oncontextmenu="return false" onselectstart="return false"
<body class="read_style_1" oncontextmenu="return false" onselectstart="return false"
ondragstart="return false" onbeforecopy="return false" oncopy="document.selection.empty()"
onselect="document.selection.empty()">
@ -42,6 +44,8 @@
<input type="hidden" id="preContentId" th:value="${bookIndex.id}"/>
<input type="hidden" id="preIndexId" th:value="${preBookIndexId}"/>
<input type="hidden" id="nextIndexId" th:value="${nextBookIndexId}"/>
<input type="hidden" id="logo" th:value="${application.website.logo}"/>
<input type="hidden" id="logoDark" th:value="${application.website.logoDark}"/>
<div th:replace="common/top :: top('10')">
</div>
@ -53,29 +57,35 @@
<div class="read_menu">
<div class="menu_left" style="">
<ul>
<li><a class="ico_catalog" th:href="'/book/indexList-'+${book.id}+'.html'" title="目录">
<li><a class="ico_catalog" th:href="'/book/indexList-'+${book.id}+'.html'" title="目录">
<b>目录</b></a></li>
<li><a class="ico_page" th:href="'/book/'+${book.id}+'.html'" title="返回书页"><b>书页</b></a></li>
<li><a class="ico_page" th:href="'/book/'+${book.id}+'.html'" title="返回书页"><b>书页</b></a></li>
<li class="li_shelf" id="cFavs"><a class="ico_shelf" href="javascript:void(0);" title="加入书架"
onclick="javascript:BookDetail.AddFavorites(37,1959973,1);"><b>加书架</b></a></li>
onclick="javascript:BookDetail.AddFavorites(37,1959973,1);"><b>加书架</b></a>
</li>
<li class="li_shelfed" style="display: none;"><a class="ico_shelfed" href="javascript:void(0);"
title="已收藏"><b>已收藏</b></a></li>
<li><a class="ico_comment" th:href="'/book/comment-'+${book.id}+'.html'" title="评论">
<li><a class="ico_comment" th:href="'/book/comment-'+${book.id}+'.html'" title="评论">
<b>评论</b></a></li>
<li><a class="ico_setup" href="javascript:void(0);" title="设置"><b>设置</b></a></li>
</ul>
</div>
<div class="menu_right" style="position: fixed; bottom: 0">
<ul>
<li><a class="ico_pagePrev" th:href="'javascript:enterPreIndexPage(\''+${book.id}+'\',\''+${preBookIndexId}+'\');'" title="上一章"><i>上一章</i></a></li>
<li><a class="ico_pageNext" th:href="'javascript:enterNextIndexPage(\''+${book.id}+'\',\''+${nextBookIndexId}+'\');'" title="下一章"><i>下一章</i></a></li>
<li><a class="ico_pagePrev"
th:href="'javascript:enterPreIndexPage(\''+${book.id}+'\',\''+${preBookIndexId}+'\');'"
title="上一章"><i>上一章</i></a></li>
<li><a class="ico_pageNext"
th:href="'javascript:enterNextIndexPage(\''+${book.id}+'\',\''+${nextBookIndexId}+'\');'"
title="下一章"><i>下一章</i></a></li>
</ul>
</div>
</div>
<div class="readWrap">
<div class="bookNav">
<a href="/" >首页 </a>&gt; <a th:href="'/book/bookclass.html?c='+${book.catId}" th:text="${book.catName}">
<a href="/">首页 </a>&gt; <a th:href="'/book/bookclass.html?c='+${book.catId}"
th:text="${book.catName}">
</a>&gt; <a th:href="'/book/'+${book.id}+'.html'" th:utext="${book.bookName}">
</a>
@ -85,10 +95,13 @@
<div class="book_title">
<h1 th:utext="${bookIndex.indexName}">
</h1>
</h1>
<div class="textinfo">
类别:<a th:href="'/book/bookclass.html?c='+${book.catId}" th:text="${book.catName}"></a>
作者:<a th:href="'javascript:searchByK(\''+${book.authorName}+'\')'" th:utext="${book.authorName}"></a><span th:text="'字数'+${bookIndex.wordCount}"></span><span th:text="'更新时间'+${#dates.format(bookIndex.updateTime, 'yy/MM/dd HH:mm:ss')}"></span>
作者:<a th:href="'javascript:searchByK(\''+${book.authorName}+'\')'"
th:utext="${book.authorName}"></a><span
th:text="'字数'+${bookIndex.wordCount}"></span><span
th:text="'更新时间'+${#dates.format(bookIndex.updateTime, 'yy/MM/dd HH:mm:ss')}"></span>
</div>
</div>
<div class="txtwrap" th:if="${needBuy}">
@ -98,7 +111,8 @@
</p>
<div class="pc_bar" style="display: none;">
<a href="javascript:void(0);" class="icon_pc" onclick="javascript:uFans.startSupportRead();">
<a href="javascript:void(0);" class="icon_pc"
onclick="javascript:uFans.startSupportRead();">
<span><i class="icon_yb"></i><em>捧场</em></span>
</a>
</div>
@ -107,8 +121,10 @@
<h3>此章为VIP章节需要订阅后才能继续阅读</h3>
<form method="post" action="./2052117.html?bid=302&amp;cid=2052117" id="Form1">
<ul class="order_list">
<li>价格:<span class="red" th:text="${bookIndex.bookPrice}+'屋币(1元=100屋币)'"></span></li>
<li id="panelPay" class="btns"><a class="btn_red" href="javascript:buyBookIndex()" >购买</a></li>
<li>价格:<span class="red" th:text="${bookIndex.bookPrice}+'屋币(1元=100屋币)'"></span>
</li>
<li id="panelPay" class="btns"><a class="btn_red"
href="javascript:buyBookIndex()">购买</a></li>
</ul>
<input type="hidden" name="HidCId" id="HidCId" value="2052117">
@ -118,11 +134,13 @@
</div>
</div>
<div class="txtwrap" th:if="${!needBuy}">
<div id="showReading" class="readBox" style="font-size: 16px; font-family: microsoft yahei" th:utext="${bookContent.content}">
<div id="showReading" class="readBox" style="font-size: 16px; font-family: microsoft yahei"
th:utext="${bookContent.content}">
<div class="pc_bar" style="display: none;">
<a href="javascript:void(0);" class="icon_pc" onclick="javascript:uFans.startSupportRead();">
<a href="javascript:void(0);" class="icon_pc"
onclick="javascript:uFans.startSupportRead();">
<span><i class="icon_yb"></i><em>捧场</em></span>
</a>
</div>
@ -133,8 +151,11 @@
</div>
</div>
<div class="nextPageBox">
<a class="prev" th:href="'javascript:enterPreIndexPage(\''+${book.id}+'\',\''+${preBookIndexId}+'\');'">上一章</a> <a class="dir" th:href="'/book/indexList-'+${book.id}+'.html'"
>目录</a> <a class="next" th:href="'javascript:enterNextIndexPage(\''+${book.id}+'\',\''+${nextBookIndexId}+'\');'">一章</a>
<a class="prev"
th:href="'javascript:enterPreIndexPage(\''+${book.id}+'\',\''+${preBookIndexId}+'\');'">一章</a>
<a class="dir" th:href="'/book/indexList-'+${book.id}+'.html'"
>目录</a> <a class="next"
th:href="'javascript:enterNextIndexPage(\''+${book.id}+'\',\''+${nextBookIndexId}+'\');'">下一章</a>
</div>
</div>
</div>
@ -159,18 +180,31 @@
<li class="readTheme">
<em class="tit">阅读主题:</em>
<a id="setup_color_white" class="white current"
href="javascript:void(0);" title="白色" onclick="javascript:BookDetail.SetBackUpColor(1);"></a><a id="setup_color_green" class="green" href="javascript:void(0);" title="绿色"
onclick="javascript:BookDetail.SetBackUpColor(2);"></a><a id="setup_color_pink" class="pink"
href="javascript:void(0);" title="粉色" onclick="javascript:BookDetail.SetBackUpColor(3);"></a><a id="setup_color_yellow" class="yellow" href="javascript:void(0);" title="黄色"
onclick="javascript:BookDetail.SetBackUpColor(4);"></a><a id="setup_color_gray" class="gray"
href="javascript:void(0);" title="灰色" onclick="javascript:BookDetail.SetBackUpColor(5);"></a><a id="setup_color_night" class="night" href="javascript:void(0);" title="夜间"
onclick="javascript:BookDetail.SetBackUpColor(6);"></a></li>
href="javascript:void(0);" title="白色" onclick="javascript:BookDetail.SetBackUpColor(1);"></a><a
id="setup_color_green" class="green" href="javascript:void(0);" title="绿色"
onclick="javascript:BookDetail.SetBackUpColor(2);"></a><a id="setup_color_pink" class="pink"
href="javascript:void(0);" title="粉色"
onclick="javascript:BookDetail.SetBackUpColor(3);"></a><a
id="setup_color_yellow" class="yellow" href="javascript:void(0);" title="黄色"
onclick="javascript:BookDetail.SetBackUpColor(4);"></a><a id="setup_color_gray" class="gray"
href="javascript:void(0);" title="灰色"
onclick="javascript:BookDetail.SetBackUpColor(5);"></a><a
id="setup_color_night" class="night" href="javascript:void(0);" title="夜间"
onclick="javascript:BookDetail.SetBackUpColor(6);"></a></li>
<li class="setFont setBtn"><em class="tit">正文字体:</em> <a id="setup_font_yahei" class="setYahei current"
href="javascript:void(0);" onclick="javascript:BookDetail.SetReadFontFamily(0);">雅黑</a> <a id="setup_font_simsun" class="setSimsun" href="javascript:void(0);" onclick="javascript:BookDetail.SetReadFontFamily(1);">宋体</a> <a id="setup_font_ks" class="setKs" href="javascript:void(0);" onclick="javascript:BookDetail.SetReadFontFamily(2);">楷书</a> </li>
href="javascript:void(0);"
onclick="javascript:BookDetail.SetReadFontFamily(0);">雅黑</a>
<a id="setup_font_simsun" class="setSimsun" href="javascript:void(0);"
onclick="javascript:BookDetail.SetReadFontFamily(1);">宋体</a> <a id="setup_font_ks" class="setKs"
href="javascript:void(0);"
onclick="javascript:BookDetail.SetReadFontFamily(2);">楷书</a>
</li>
<li class="fontSize setBtn"><em class="tit">字体大小:</em> <a class="small" href="javascript:void(0);"
onclick="javascript:BookDetail.SetReadFont(-2);">A-</a><span class="current_font"
id="cFonts">
16</span><a class="big" href="javascript:void(0);" onclick="javascript:BookDetail.SetReadFont(2);">A+</a> </li>
onclick="javascript:BookDetail.SetReadFont(-2);">A-</a><span
class="current_font"
id="cFonts">
16</span><a class="big" href="javascript:void(0);"
onclick="javascript:BookDetail.SetReadFont(2);">A+</a></li>
</ul>
</div>
</div>
@ -208,30 +242,32 @@
</form>-->
<script language="javascript" type="text/javascript">
if(font){
var logo = $("#logo").val();
var logoDark = $("#logoDark").val();
if (font) {
$(".readBox").css("font-size", font + "px");
$("#cFonts").html(font);
$("#ChapterBody").attr("class","article-content font"+font);
$("#ChapterBody").attr("class", "article-content font" + font);
BookDetail.reShowCover();
}
if(fontNum){
if (fontNum) {
BookDetail.SetReadFontFamily(fontNum);
}
if(colorNum){
if (colorNum) {
BookDetail.SetBackUpColor(colorNum);
if(colorNum == 6){
$(".logo img").attr("src", "/images/logo_white.png");
if (colorNum == 6) {
$(".logo img").attr("src", logoDark);
}
}
//查询是否在书架
$.ajax({
type: "get",
url: "/user/queryIsInShelf",
data: {'bookId':$("#bookId").val()},
data: {'bookId': $("#bookId").val()},
dataType: "json",
success: function (data) {
if (data.code == 200) {
if(data.data){
if (data.data) {
$("#cFavs").html("<a class=\"ico_shelf\" href=\"javascript:void(0);\"><b>已收藏</b></a>");
}
//添加阅读记录
@ -248,10 +284,10 @@
})
} else if(data.code == 1001){
} else if (data.code == 1001) {
//未登录
}else {
} else {
layer.alert(data.msg);
}
@ -267,7 +303,7 @@
var preIndexId = $("#preIndexId").val();
var nextIndexId = $("#nextIndexId").val();
$(function () {
BookDetail.GetReadSet(bookId,indexId,preIndexId,nextIndexId,1);
BookDetail.GetReadSet(bookId, indexId, preIndexId, nextIndexId, 1);
$(".ico_setup").click(function () {
$(".maskBox,.setupBox").show();
@ -280,68 +316,73 @@
var vtop = $(document).scrollTop();
var vbottom = $(document).height() - vtop - $(window).height();
if (vtop > 50) {
$(".menu_left").css("position", "fixed"); $(".menu_left").css("top", "2px");
}
else {
$(".menu_left").css("position", "absolute"); $(".menu_left").css("top", "60px")
$(".menu_left").css("position", "fixed");
$(".menu_left").css("top", "2px");
} else {
$(".menu_left").css("position", "absolute");
$(".menu_left").css("top", "60px")
}
if (vbottom < 150) {
$(".menu_right").css("position", "absolute"); $(".menu_right").css("bottom", "150px");
}
else {
$(".menu_right").css("position", "fixed"); $(".menu_right").css("bottom", "2px");
$(".menu_right").css("position", "absolute");
$(".menu_right").css("bottom", "150px");
} else {
$(".menu_right").css("position", "fixed");
$(".menu_right").css("bottom", "2px");
}
});
var bgClass = '1';
if (bgClass == 6) {
$(".logo img").attr("src", "/images/logo_white.png");
$(".logo img").attr("src", logoDark);
}
$(".readTheme a").click(function () {
$(".logo img").attr("src", "/images/logo.png");
$(".logo img").attr("src", logo);
})
$("#setup_color_night").click(function () {
$(".logo img").attr("src", "/images/logo_white.png");
$(".logo img").attr("src", logoDark);
});
});
function enterPreIndexPage(bookId,bookIndexId){
if(bookIndexId != 0){
window.location.href = '/book/'+bookId+'/'+bookIndexId+".html";
}else{
window.location.href = '/book/indexList-' + bookId + '.html';
}
}
function enterNextIndexPage(bookId,bookIndexId){
if(bookIndexId != 0){
window.location.href = '/book/'+bookId+'/'+bookIndexId+".html";
}else{
function enterPreIndexPage(bookId, bookIndexId) {
if (bookIndexId != 0) {
window.location.href = '/book/' + bookId + '/' + bookIndexId + ".html";
} else {
window.location.href = '/book/indexList-' + bookId + '.html';
}
}
function buyBookIndex(){
function enterNextIndexPage(bookId, bookIndexId) {
if (bookIndexId != 0) {
window.location.href = '/book/' + bookId + '/' + bookIndexId + ".html";
} else {
window.location.href = '/book/indexList-' + bookId + '.html';
}
}
function buyBookIndex() {
$.ajax({
type: "POST",
url: "/user/buyBookIndex",
data: {'bookId':$("#bookId").val(),"bookName":$("#bookName").val(),
"bookIndexId":$("#preContentId").val(),"bookIndexName":$("#preIndexName").val()},
data: {
'bookId': $("#bookId").val(), "bookName": $("#bookName").val(),
"bookIndexId": $("#preContentId").val(), "bookIndexName": $("#preIndexName").val()
},
dataType: "json",
success: function (data) {
if (data.code == 200) {
location.reload();
location.reload();
} else if(data.code == 1001){
} else if (data.code == 1001) {
//未登录
location.href = '/user/login.html?originUrl='+decodeURIComponent(location.href);
location.href = '/user/login.html?originUrl=' + decodeURIComponent(location.href);
}else {
} else {
layer.alert(data.msg);
}