feat(templates): 新增绿色主题模版,并设置为默认模版
和文档站点 docs.xxyopen.com 风格保持一致
BIN
doc/sql.zip
Normal file
@ -3005,4 +3005,10 @@ VALUES (1, 410);
|
||||
INSERT INTO `sys_menu` (`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`)
|
||||
VALUES (305, '301', '修改', null, 'novel:websiteInfo:edit', '2', null, '6');
|
||||
INSERT INTO sys_role_menu (role_id, menu_id)
|
||||
VALUES (1, 305);
|
||||
VALUES (1, 305);
|
||||
|
||||
|
||||
update website_info
|
||||
set logo = 'https://youdoc.gitee.io/resource/images/logo%20(1).png',
|
||||
logo_dark='https://youdoc.gitee.io/resource/images/logo%20(1).png'
|
||||
where id = 1;
|
@ -12,7 +12,7 @@ spring:
|
||||
|
||||
#模版配置
|
||||
templates:
|
||||
name: orange
|
||||
name: green
|
||||
|
||||
|
||||
pic:
|
||||
|
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 162 KiB |
@ -3,7 +3,7 @@
|
||||
.my_l { width: 198px; float: left; font-size: 13px;
|
||||
padding-top: 20px; }
|
||||
.my_l li a { display: block; height: 48px; line-height: 48px; padding-left: 40px; border-left: 2px solid transparent; font-size: 14px; margin: 0 0 2px; }
|
||||
.my_l li .on { border-left: 2px solid #f80; background: #f8f8f8 }
|
||||
.my_l li .on { border-left: 2px solid #3eaf7c; background: #f8f8f8 }
|
||||
.my_r { width: 739px; padding: 30px; float: right; border-left: 1px solid #ededed; min-height: 470px; background: #fff }
|
||||
.my_r .title { padding: 15px 0 }
|
||||
.my_r h4 { font-size: 15px; color: #666; font-weight: bold }
|
||||
|
@ -1,155 +1,813 @@
|
||||
@charset "utf-8";
|
||||
.Interaction_tab a, .Interaction_tab a .icon, .Interaction_tab a.fr .icon, .dashang_bar .l_bar .list li, .btn_pc, .btn_flw, .fansBox .fans_bg, .icon_hg { background: url(../images/icon_interation.png) no-repeat }
|
||||
.InteractionBox { padding: 15px 14px 11px }
|
||||
.Interaction_tab a { width: 339px; height: 60px; line-height: 60px; font-size: 14px; color: #000 }
|
||||
.Interaction_tab a, .Interaction_tab a .icon, .Interaction_tab a.fr .icon, .dashang_bar .l_bar .list li, .btn_pc, .btn_flw, .fansBox .fans_bg, .icon_hg {
|
||||
background: url(../images/icon_interation.png) no-repeat
|
||||
}
|
||||
|
||||
.InteractionBox {
|
||||
padding: 15px 14px 11px
|
||||
}
|
||||
|
||||
.Interaction_tab a {
|
||||
width: 339px;
|
||||
height: 60px;
|
||||
line-height: 60px;
|
||||
font-size: 14px;
|
||||
color: #000
|
||||
}
|
||||
|
||||
/*.Interaction_tab a:hover, .Interaction_tab a.on { background-position: 0 -60px; color: #000 }*/
|
||||
.Interaction_tab a .icon { width: 38px; height: 60px; float: left; margin: 0 10px 0 64px; background-position: -348px 0 }
|
||||
.Interaction_tab a.fr .icon { background-position: -348px -60px }
|
||||
.Interaction_tab h4 { font-size: 17px; margin-right: 8px; display: inline }
|
||||
.InteractionBox .l_bar, .InteractionBox .r_bar { width: 335px; margin: 0 2px; float: left }
|
||||
.InteractionBox .r_bar .time { padding-right: 1px }
|
||||
.InteractionBox .l_bar .tit { padding: 22px 14px 0 4px }
|
||||
.InteractionBox .l_bar .tit .red, .InteractionBox .r_bar .tit .red { padding: 0 5px }
|
||||
.InteractionBox .l_bar .tit .fl { font-size: 17px }
|
||||
.InteractionBox .l_bar .tit .fr { padding-top: 7px }
|
||||
.dashang_bar .l_bar .list { padding-top: 20px }
|
||||
.dashang_bar .l_bar .list li { width: 90px; height: 134px; line-height: 1; float: left; margin: 0 20px 0 6px; text-align: center; background-position: 0 -130px }
|
||||
.dashang_bar .l_bar .list li img { width: 60px; height: 60px; background: #fff; margin: 35px 15px 10px; border-radius: 50%; box-shadow: 0 1px 0 rgba(0,0,0,.3) }
|
||||
.dashang_bar .l_bar .list li .user_name { line-height: 1!important; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; display: block; padding: 0 10px }
|
||||
.dashang_bar .l_bar .list .li_1 { }
|
||||
.dashang_bar .l_bar .list .li_2 { background-position: -100px -130px }
|
||||
.dashang_bar .l_bar .list .li_3 { background-position: -200px -130px; margin-right: 0 }
|
||||
.InteractionBox .r_bar .tit { padding: 14px 1px 12px 1px }
|
||||
.InteractionBox .r_bar .tit strong { display: block; font-size: 13px }
|
||||
.InteractionBox .r_bar .list, .InteractionBox .r_bar .sum { margin: 0 1px }
|
||||
.InteractionBox .r_bar .list li { height: 27px; line-height: 27px; overflow: hidden; border-top: 1px dotted #ccc; color: #999 }
|
||||
.InteractionBox .r_bar .list li .user_name { margin-right: 8px }
|
||||
.InteractionBox .r_bar .sum { border-top: 1px dotted #ccc; line-height: 34px }
|
||||
.btn_pc, .btn_flw { width: 140px; height: 44px; display: inline-block; background-position: 0 -270px }
|
||||
.btn_flw { width: 122px; background-position: -150px -270px }
|
||||
.flower_bar .l_bar .list { padding: 0 14px 0 4px }
|
||||
.flower_bar .l_bar li { padding: 15px 0 6px; overflow: hidden; clear: both }
|
||||
.flower_bar .l_bar .book_intro { width: 265px }
|
||||
.flower_bar .l_bar .cover img { width: 45px; height: 56px; background: #f6f6f6; margin: 2px 16px 0 0 }
|
||||
.flower_bar .l_bar .book_intro .txt { height: 38px; line-height: 18px; padding-top: 2px; color: #999; overflow: hidden; display: block }
|
||||
.r_fansBrank .book_intro { float: inherit!important }
|
||||
.user_level1, .user_level2, .user_level3, .user_level4, .user_level5, .user_level6, .user_level7, .user_level8, .user_level9, .user_level10, .user_level11 { width: 30px; height: 16px; line-height: 16px; text-align: center; border-radius: 2px; margin: 11px 0 0; color: #fff }
|
||||
.user_level1 { background: #d0d0d0 }
|
||||
.user_level2 { background: #c0c0c0 }
|
||||
.user_level3 { background: #b4b3b3 }
|
||||
.user_level4 { background: #a0dfe6 }
|
||||
.user_level5 { background: #77d2db }
|
||||
.user_level6 { background: #b4d894 }
|
||||
.user_level7 { background: #94c766 }
|
||||
.user_level8 { background: #ffc24c }
|
||||
.user_level9 { background: #ffa800 }
|
||||
.user_level10 { background: #ff6e26 }
|
||||
.user_level11 { background: #ff0000 }
|
||||
.Interaction_tab a .icon {
|
||||
width: 38px;
|
||||
height: 60px;
|
||||
float: left;
|
||||
margin: 0 10px 0 64px;
|
||||
background-position: -348px 0
|
||||
}
|
||||
|
||||
.Interaction_tab a.fr .icon {
|
||||
background-position: -348px -60px
|
||||
}
|
||||
|
||||
.Interaction_tab h4 {
|
||||
font-size: 17px;
|
||||
margin-right: 8px;
|
||||
display: inline
|
||||
}
|
||||
|
||||
.InteractionBox .l_bar, .InteractionBox .r_bar {
|
||||
width: 335px;
|
||||
margin: 0 2px;
|
||||
float: left
|
||||
}
|
||||
|
||||
.InteractionBox .r_bar .time {
|
||||
padding-right: 1px
|
||||
}
|
||||
|
||||
.InteractionBox .l_bar .tit {
|
||||
padding: 22px 14px 0 4px
|
||||
}
|
||||
|
||||
.InteractionBox .l_bar .tit .red, .InteractionBox .r_bar .tit .red {
|
||||
padding: 0 5px
|
||||
}
|
||||
|
||||
.InteractionBox .l_bar .tit .fl {
|
||||
font-size: 17px
|
||||
}
|
||||
|
||||
.InteractionBox .l_bar .tit .fr {
|
||||
padding-top: 7px
|
||||
}
|
||||
|
||||
.dashang_bar .l_bar .list {
|
||||
padding-top: 20px
|
||||
}
|
||||
|
||||
.dashang_bar .l_bar .list li {
|
||||
width: 90px;
|
||||
height: 134px;
|
||||
line-height: 1;
|
||||
float: left;
|
||||
margin: 0 20px 0 6px;
|
||||
text-align: center;
|
||||
background-position: 0 -130px
|
||||
}
|
||||
|
||||
.dashang_bar .l_bar .list li img {
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
background: #fff;
|
||||
margin: 35px 15px 10px;
|
||||
border-radius: 50%;
|
||||
box-shadow: 0 1px 0 rgba(0, 0, 0, .3)
|
||||
}
|
||||
|
||||
.dashang_bar .l_bar .list li .user_name {
|
||||
line-height: 1 !important;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
display: block;
|
||||
padding: 0 10px
|
||||
}
|
||||
|
||||
.dashang_bar .l_bar .list .li_1 {
|
||||
}
|
||||
|
||||
.dashang_bar .l_bar .list .li_2 {
|
||||
background-position: -100px -130px
|
||||
}
|
||||
|
||||
.dashang_bar .l_bar .list .li_3 {
|
||||
background-position: -200px -130px;
|
||||
margin-right: 0
|
||||
}
|
||||
|
||||
.InteractionBox .r_bar .tit {
|
||||
padding: 14px 1px 12px 1px
|
||||
}
|
||||
|
||||
.InteractionBox .r_bar .tit strong {
|
||||
display: block;
|
||||
font-size: 13px
|
||||
}
|
||||
|
||||
.InteractionBox .r_bar .list, .InteractionBox .r_bar .sum {
|
||||
margin: 0 1px
|
||||
}
|
||||
|
||||
.InteractionBox .r_bar .list li {
|
||||
height: 27px;
|
||||
line-height: 27px;
|
||||
overflow: hidden;
|
||||
border-top: 1px dotted #ccc;
|
||||
color: #999
|
||||
}
|
||||
|
||||
.InteractionBox .r_bar .list li .user_name {
|
||||
margin-right: 8px
|
||||
}
|
||||
|
||||
.InteractionBox .r_bar .sum {
|
||||
border-top: 1px dotted #ccc;
|
||||
line-height: 34px
|
||||
}
|
||||
|
||||
.btn_pc, .btn_flw {
|
||||
width: 140px;
|
||||
height: 44px;
|
||||
display: inline-block;
|
||||
background-position: 0 -270px
|
||||
}
|
||||
|
||||
.btn_flw {
|
||||
width: 122px;
|
||||
background-position: -150px -270px
|
||||
}
|
||||
|
||||
.flower_bar .l_bar .list {
|
||||
padding: 0 14px 0 4px
|
||||
}
|
||||
|
||||
.flower_bar .l_bar li {
|
||||
padding: 15px 0 6px;
|
||||
overflow: hidden;
|
||||
clear: both
|
||||
}
|
||||
|
||||
.flower_bar .l_bar .book_intro {
|
||||
width: 265px
|
||||
}
|
||||
|
||||
.flower_bar .l_bar .cover img {
|
||||
width: 45px;
|
||||
height: 56px;
|
||||
background: #f6f6f6;
|
||||
margin: 2px 16px 0 0
|
||||
}
|
||||
|
||||
.flower_bar .l_bar .book_intro .txt {
|
||||
height: 38px;
|
||||
line-height: 18px;
|
||||
padding-top: 2px;
|
||||
color: #999;
|
||||
overflow: hidden;
|
||||
display: block
|
||||
}
|
||||
|
||||
.r_fansBrank .book_intro {
|
||||
float: inherit !important
|
||||
}
|
||||
|
||||
.user_level1, .user_level2, .user_level3, .user_level4, .user_level5, .user_level6, .user_level7, .user_level8, .user_level9, .user_level10, .user_level11 {
|
||||
width: 30px;
|
||||
height: 16px;
|
||||
line-height: 16px;
|
||||
text-align: center;
|
||||
border-radius: 2px;
|
||||
margin: 11px 0 0;
|
||||
color: #fff
|
||||
}
|
||||
|
||||
.user_level1 {
|
||||
background: #d0d0d0
|
||||
}
|
||||
|
||||
.user_level2 {
|
||||
background: #c0c0c0
|
||||
}
|
||||
|
||||
.user_level3 {
|
||||
background: #b4b3b3
|
||||
}
|
||||
|
||||
.user_level4 {
|
||||
background: #a0dfe6
|
||||
}
|
||||
|
||||
.user_level5 {
|
||||
background: #77d2db
|
||||
}
|
||||
|
||||
.user_level6 {
|
||||
background: #b4d894
|
||||
}
|
||||
|
||||
.user_level7 {
|
||||
background: #94c766
|
||||
}
|
||||
|
||||
.user_level8 {
|
||||
background: #ffc24c
|
||||
}
|
||||
|
||||
.user_level9 {
|
||||
background: #ffa800
|
||||
}
|
||||
|
||||
.user_level10 {
|
||||
background: #ff6e26
|
||||
}
|
||||
|
||||
.user_level11 {
|
||||
background: #ff0000
|
||||
}
|
||||
|
||||
/*固定悬浮图层*/
|
||||
.readPopup { border: 1px solid #D9D9D9; border-radius: 3px; background: #FFF; box-shadow: 0 1px 2px #999; overflow: hidden; padding-bottom: 20px; z-index: 9999; position: fixed; left: 50%; top: 50% }
|
||||
.icon_check { position: absolute; width: 29px; height: 25px; right: -1px; top: -1px; z-index: 2; background: url(../images/icon_readpage.png) no-repeat 0 -142px }
|
||||
.on .icon_check { display: block }
|
||||
.closePopup { position: absolute; top: 20px; right: 20px; width: 16px; height: 15px; background: url(../images/icon_readpage.png) no-repeat -43px -126px }
|
||||
.chapterBox { width: 600px; margin-left: -300px; margin-top: -260px }
|
||||
.chapterBox .scrollWrap { height: 540px }
|
||||
.readPopup {
|
||||
border: 1px solid #D9D9D9;
|
||||
border-radius: 3px;
|
||||
background: #FFF;
|
||||
box-shadow: 0 1px 2px #999;
|
||||
overflow: hidden;
|
||||
padding-bottom: 20px;
|
||||
z-index: 9999;
|
||||
position: fixed;
|
||||
left: 50%;
|
||||
top: 50%
|
||||
}
|
||||
|
||||
.icon_check {
|
||||
position: absolute;
|
||||
width: 29px;
|
||||
height: 25px;
|
||||
right: -1px;
|
||||
top: -1px;
|
||||
z-index: 2;
|
||||
background: url(../images/icon_readpage.png) no-repeat 0 -142px
|
||||
}
|
||||
|
||||
.on .icon_check {
|
||||
display: block
|
||||
}
|
||||
|
||||
.closePopup {
|
||||
position: absolute;
|
||||
top: 20px;
|
||||
right: 20px;
|
||||
width: 16px;
|
||||
height: 15px;
|
||||
background: url(../images/icon_readpage.png) no-repeat -43px -126px
|
||||
}
|
||||
|
||||
.chapterBox {
|
||||
width: 600px;
|
||||
margin-left: -300px;
|
||||
margin-top: -260px
|
||||
}
|
||||
|
||||
.chapterBox .scrollWrap {
|
||||
height: 540px
|
||||
}
|
||||
|
||||
/*弹窗内容*/
|
||||
.popupTit h2 { text-align: center; letter-spacing: 15px; color: #333; font: 700 20px/30px "Microsoft Yahei"; margin: 30px 0 }
|
||||
.popupTit h3 { font-size: 16px; margin: 15px 20px }
|
||||
.scrollWrap { overflow-y: scroll; position: relative }
|
||||
.dirWrap { padding: 0 40px }
|
||||
.scrollWrap h3 { padding-left: 26px; font-size: 14px; background: #e6e6e6; height: 30px; line-height: 30px; font-weight: normal; position: relative; cursor: pointer; margin: 0 0 15px; border-radius: 3px }
|
||||
.readPopup .tc .btn_gray { margin-left: 30px }
|
||||
.popupTit h2 {
|
||||
text-align: center;
|
||||
letter-spacing: 15px;
|
||||
color: #333;
|
||||
font: 700 20px/30px "Microsoft Yahei";
|
||||
margin: 30px 0
|
||||
}
|
||||
|
||||
.popupTit h3 {
|
||||
font-size: 16px;
|
||||
margin: 15px 20px
|
||||
}
|
||||
|
||||
.scrollWrap {
|
||||
overflow-y: scroll;
|
||||
position: relative
|
||||
}
|
||||
|
||||
.dirWrap {
|
||||
padding: 0 40px
|
||||
}
|
||||
|
||||
.scrollWrap h3 {
|
||||
padding-left: 26px;
|
||||
font-size: 14px;
|
||||
background: #e6e6e6;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
font-weight: normal;
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
margin: 0 0 15px;
|
||||
border-radius: 3px
|
||||
}
|
||||
|
||||
.readPopup .tc .btn_gray {
|
||||
margin-left: 30px
|
||||
}
|
||||
|
||||
/*捧场、送鲜花*/
|
||||
.pcBox, .flowerBox { width: 500px; margin-left: -251px; margin-top: -215px }
|
||||
.propsList { padding: 15px 0 10px 20px }
|
||||
.propsList li { float: left; cursor: pointer; margin: 0 8px 16px; text-align: center }
|
||||
.propWrap { width: 134px; height: 54px; line-height: 54px; text-align: center; font-size: 15px; color: #000; display: block; border: 1px solid #e6e6e6; background: #fafafa; position: relative }
|
||||
.on .propWrap, .propWrap:hover { width: 132px; height: 52px; line-height: 52px; color: #f70; border: 2px solid #f80; background: #fff }
|
||||
.propsList li i { display: none; line-height: 1 }
|
||||
.propsList li .propsBox { padding-top: 20px }
|
||||
.have_num { padding: 0 30px 10px; font-size: 14px; color: #999 }
|
||||
.have_num .red { margin: 0 4px }
|
||||
.popup_text { width: 418px; height: 62px; padding: 8px 10px; margin: 8px 30px 20px; color: #555; border: 1px solid #e6e6e6; }
|
||||
.pcBox, .flowerBox {
|
||||
width: 500px;
|
||||
margin-left: -251px;
|
||||
margin-top: -215px
|
||||
}
|
||||
|
||||
.propsList {
|
||||
padding: 15px 0 10px 20px
|
||||
}
|
||||
|
||||
.propsList li {
|
||||
float: left;
|
||||
cursor: pointer;
|
||||
margin: 0 8px 16px;
|
||||
text-align: center
|
||||
}
|
||||
|
||||
.propWrap {
|
||||
width: 134px;
|
||||
height: 54px;
|
||||
line-height: 54px;
|
||||
text-align: center;
|
||||
font-size: 15px;
|
||||
color: #000;
|
||||
display: block;
|
||||
border: 1px solid #e6e6e6;
|
||||
background: #fafafa;
|
||||
position: relative
|
||||
}
|
||||
|
||||
.on .propWrap, .propWrap:hover {
|
||||
width: 132px;
|
||||
height: 52px;
|
||||
line-height: 52px;
|
||||
color: #3eaf7c;
|
||||
border: 2px solid #3eaf7c;
|
||||
background: #fff
|
||||
}
|
||||
|
||||
.propsList li i {
|
||||
display: none;
|
||||
line-height: 1
|
||||
}
|
||||
|
||||
.propsList li .propsBox {
|
||||
padding-top: 20px
|
||||
}
|
||||
|
||||
.have_num {
|
||||
padding: 0 30px 10px;
|
||||
font-size: 14px;
|
||||
color: #999
|
||||
}
|
||||
|
||||
.have_num .red {
|
||||
margin: 0 4px
|
||||
}
|
||||
|
||||
.popup_text {
|
||||
width: 418px;
|
||||
height: 62px;
|
||||
padding: 8px 10px;
|
||||
margin: 8px 30px 20px;
|
||||
color: #555;
|
||||
border: 1px solid #e6e6e6;
|
||||
}
|
||||
|
||||
/*消息提示*/
|
||||
.newsTipBox { width: 400px; padding-bottom: 30px; margin-left: -200px; margin-top: -105px }
|
||||
.tipWrap { padding: 30px; font-size: 14px }
|
||||
.newsTipBox {
|
||||
width: 400px;
|
||||
padding-bottom: 30px;
|
||||
margin-left: -200px;
|
||||
margin-top: -105px
|
||||
}
|
||||
|
||||
.tipWrap {
|
||||
padding: 30px;
|
||||
font-size: 14px
|
||||
}
|
||||
|
||||
/*遮罩层*/
|
||||
.maskBox { position: fixed; left: 0; top: 0; z-index: 995; width: 100%; height: 100%; background: black; filter: alpha(opacity=30); opacity: 0.3; animation: mask 2s ease-out 0s 1 normal }
|
||||
@keyframes mask { 0% {
|
||||
filter:alpha(opacity=0);
|
||||
opacity:0
|
||||
.maskBox {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
top: 0;
|
||||
z-index: 995;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: black;
|
||||
filter: alpha(opacity=30);
|
||||
opacity: 0.3;
|
||||
animation: mask 2s ease-out 0s 1 normal
|
||||
}
|
||||
100% {
|
||||
filter:alpha(opacity=30);
|
||||
opacity:0.3
|
||||
|
||||
@keyframes mask {
|
||||
0% {
|
||||
filter: alpha(opacity=0);
|
||||
opacity: 0
|
||||
}
|
||||
100% {
|
||||
filter: alpha(opacity=30);
|
||||
opacity: 0.3
|
||||
}
|
||||
}
|
||||
|
||||
.fansBox {
|
||||
width: 998px;
|
||||
border: 1px solid #eaeaea
|
||||
}
|
||||
|
||||
.fansHead {
|
||||
height: 54px;
|
||||
line-height: 54px;
|
||||
margin: 0 14px;
|
||||
border-bottom: 1px solid #eaeaea;
|
||||
font-weight: normal
|
||||
}
|
||||
|
||||
.fansHead h2 {
|
||||
font-size: 20px;
|
||||
font-weight: normal
|
||||
}
|
||||
|
||||
.fansCon {
|
||||
padding: 20px
|
||||
}
|
||||
|
||||
.fansCon .r_bar {
|
||||
width: 204px
|
||||
}
|
||||
|
||||
.fansCon .cover {
|
||||
width: 200px;
|
||||
height: 250px;
|
||||
background: #f6f6f6;
|
||||
border: 1px solid #ebebeb;
|
||||
padding: 1px;
|
||||
}
|
||||
|
||||
.fansCon .btn_red {
|
||||
width: 202px;
|
||||
margin: 2px 0 14px;
|
||||
padding: 10px 0
|
||||
}
|
||||
|
||||
.fansCon .l_bar {
|
||||
width: 750px
|
||||
}
|
||||
|
||||
.fansCon .l_bar .list1 {
|
||||
padding-top: 4px
|
||||
}
|
||||
|
||||
.fansCon .list1 li {
|
||||
width: 33%;
|
||||
line-height: 1;
|
||||
float: left
|
||||
}
|
||||
|
||||
.fansCon .list1 .fans_bg {
|
||||
width: 90px;
|
||||
height: 112px;
|
||||
background-position: 0 -320px;
|
||||
position: relative;
|
||||
margin-right: 18px
|
||||
}
|
||||
|
||||
.fansCon .list1 .fans_bg img {
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
background: #fff;
|
||||
margin: 39px 15px 0;
|
||||
border-radius: 50%;
|
||||
box-shadow: 0 1px 0 rgba(0, 0, 0, .3)
|
||||
}
|
||||
|
||||
.fansCon .list1 h5 {
|
||||
font-size: 16px;
|
||||
padding: 9px 0;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.fansCon .list1 li .user_name {
|
||||
line-height: 1 !important
|
||||
}
|
||||
|
||||
.fansCon .list1 .li_2 .fans_bg {
|
||||
background-position: -100px -320px
|
||||
}
|
||||
|
||||
.fansCon .list1 .li_3 .fans_bg {
|
||||
background-position: -200px -320px
|
||||
}
|
||||
|
||||
.fansCon .fans_info {
|
||||
width: 136px;
|
||||
font-size: 14px
|
||||
}
|
||||
|
||||
.fansCon .fans_info .fans_pointer {
|
||||
padding: 14px 0 22px
|
||||
}
|
||||
|
||||
.fans_level span {
|
||||
padding: 1px 10px 2px
|
||||
}
|
||||
|
||||
.icon_hg {
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
display: inline-block;
|
||||
background-position: -300px -320px;
|
||||
position: absolute;
|
||||
top: -13px;
|
||||
right: -13px
|
||||
}
|
||||
|
||||
.fansCon .list2 {
|
||||
padding: 0
|
||||
}
|
||||
|
||||
.fansCon .list2 li {
|
||||
width: 250px;
|
||||
float: left;
|
||||
height: 59px;
|
||||
padding: 0 0 19px;
|
||||
display: inline
|
||||
}
|
||||
|
||||
.fansCon .list2 .num {
|
||||
font: 16px/59px "microsoft yahei", Arial, "宋体";
|
||||
width: 32px;
|
||||
color: #666;
|
||||
font-weight: bold
|
||||
}
|
||||
|
||||
.fansCon .list2 .img {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
margin-top: 10px;
|
||||
position: relative
|
||||
}
|
||||
|
||||
.fansCon .list2 .img img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-radius: 50%
|
||||
}
|
||||
|
||||
.fansCon .list2 .img span {
|
||||
display: block;
|
||||
margin: 0;
|
||||
position: absolute;
|
||||
left: 5px;
|
||||
bottom: 0
|
||||
}
|
||||
|
||||
.fansCon .list2 .msg {
|
||||
display: inline;
|
||||
width: 164px;
|
||||
padding: 8px 0 0 12px;
|
||||
}
|
||||
|
||||
.fansCon .list2 .msg h4 {
|
||||
line-height: 24px;
|
||||
font-weight: normal;
|
||||
font-size: 16px;
|
||||
overflow: hidden;
|
||||
height: 24px;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.fansCon .list2 .msg p {
|
||||
font-size: 12px;
|
||||
line-height: 16px;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.fansTop {
|
||||
margin-bottom: 8px;
|
||||
border-bottom: 1px solid #eaeaea
|
||||
}
|
||||
|
||||
.fans_tab {
|
||||
width: 1005px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.fans_tab ul {
|
||||
float: left;
|
||||
width: 280px;
|
||||
margin-right: 55px;
|
||||
}
|
||||
|
||||
.fans_tab li {
|
||||
line-height: 39px;
|
||||
overflow: hidden;
|
||||
font-size: 14px;
|
||||
height: 39px;
|
||||
border-bottom: 1px solid #ebebeb;
|
||||
}
|
||||
|
||||
.fans_tab li .num {
|
||||
float: left;
|
||||
width: 40px;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.fans_tab li a {
|
||||
float: left;
|
||||
overflow: hidden;
|
||||
width: 200px;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.fans_tab li .fans_level {
|
||||
float: left;
|
||||
font-size: 12px;
|
||||
width: 40px;
|
||||
text-align: right;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.fansRule dl {
|
||||
padding: 20px 20px 30px
|
||||
}
|
||||
|
||||
.fansRule dt {
|
||||
line-height: 24px;
|
||||
margin-bottom: 6px;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.fansRule dd {
|
||||
font-size: 12px;
|
||||
line-height: 20px;
|
||||
margin-bottom: 16px;
|
||||
color: #777;
|
||||
}
|
||||
|
||||
.fansRule table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
.fansRule table th, .fansRule table td {
|
||||
font-weight: 400;
|
||||
min-width: 40px;
|
||||
padding: 12px 0;
|
||||
text-align: left;
|
||||
border-top: 1px solid #ebebeb;
|
||||
border-bottom: 1px solid #ebebeb;
|
||||
}
|
||||
|
||||
.fansRule ol li {
|
||||
list-style-type: decimal;
|
||||
list-style-position: inside;
|
||||
}
|
||||
|
||||
.InteractionBox .l_bar, .flower_bar .l_bar {
|
||||
display: none
|
||||
}
|
||||
|
||||
.dashang_bar {
|
||||
float: left
|
||||
}
|
||||
|
||||
.flower_bar {
|
||||
float: right
|
||||
}
|
||||
|
||||
.author_head {
|
||||
text-align: center
|
||||
}
|
||||
|
||||
.author_head .head img {
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
border-radius: 50%;
|
||||
background: #f6f6f6;
|
||||
display: block;
|
||||
margin: 0 auto
|
||||
}
|
||||
|
||||
.author_head .msg {
|
||||
margin-top: -4px
|
||||
}
|
||||
|
||||
.author_head .msg h4 {
|
||||
font-size: 14px;
|
||||
line-height: 2.4
|
||||
}
|
||||
|
||||
.icon_qyzz {
|
||||
padding: 5px;
|
||||
line-height: 1;
|
||||
background: #3eaf7c;
|
||||
color: #fff;
|
||||
border-radius: 3px;
|
||||
display: inline-block
|
||||
}
|
||||
|
||||
.author_intro, .author_book {
|
||||
border-top: 1px dotted #e0e0e0
|
||||
}
|
||||
|
||||
.author_intro h4, .author_book h4 {
|
||||
font-weight: normal;
|
||||
font-size: 12px;
|
||||
padding: 10px 0 5px
|
||||
}
|
||||
|
||||
.author_intro .intro_txt, .author_book .book_txt {
|
||||
line-height: 1.8;
|
||||
padding-bottom: 10px
|
||||
}
|
||||
|
||||
.author_book .rightList ul {
|
||||
padding: 0
|
||||
}
|
||||
.fansBox { width: 998px; border: 1px solid #eaeaea }
|
||||
.fansHead { height: 54px; line-height: 54px; margin: 0 14px; border-bottom: 1px solid #eaeaea; font-weight: normal }
|
||||
.fansHead h2 { font-size: 20px; font-weight: normal }
|
||||
.fansCon { padding: 20px }
|
||||
.fansCon .r_bar { width: 204px }
|
||||
.fansCon .cover { width: 200px; height: 250px; background: #f6f6f6; border: 1px solid #ebebeb; padding: 1px; }
|
||||
.fansCon .btn_red { width: 202px; margin: 2px 0 14px; padding: 10px 0 }
|
||||
.fansCon .l_bar { width: 750px }
|
||||
.fansCon .l_bar .list1 { padding-top: 4px }
|
||||
.fansCon .list1 li { width: 33%; line-height: 1; float: left }
|
||||
.fansCon .list1 .fans_bg { width: 90px; height: 112px; background-position: 0 -320px; position: relative; margin-right: 18px }
|
||||
.fansCon .list1 .fans_bg img { width: 60px; height: 60px; background: #fff; margin: 39px 15px 0; border-radius: 50%; box-shadow: 0 1px 0 rgba(0,0,0,.3) }
|
||||
.fansCon .list1 h5 { font-size: 16px; padding: 9px 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
|
||||
.fansCon .list1 li .user_name { line-height: 1!important }
|
||||
.fansCon .list1 .li_2 .fans_bg { background-position: -100px -320px }
|
||||
.fansCon .list1 .li_3 .fans_bg { background-position: -200px -320px }
|
||||
.fansCon .fans_info { width: 136px; font-size: 14px }
|
||||
.fansCon .fans_info .fans_pointer { padding: 14px 0 22px }
|
||||
.fans_level span { padding: 1px 10px 2px }
|
||||
.icon_hg { width: 30px; height: 30px; display: inline-block; background-position: -300px -320px; position: absolute; top: -13px; right: -13px }
|
||||
.fansCon .list2 { padding: 0 }
|
||||
.fansCon .list2 li { width: 250px; float: left; height: 59px; padding: 0 0 19px; display: inline }
|
||||
.fansCon .list2 .num { font: 16px/59px "microsoft yahei", Arial, "宋体"; width: 32px; color: #666; font-weight: bold }
|
||||
.fansCon .list2 .img { width: 40px; height: 40px; margin-top: 10px; position: relative }
|
||||
.fansCon .list2 .img img { width: 100%; height: 100%; border-radius: 50% }
|
||||
.fansCon .list2 .img span { display: block; margin: 0; position: absolute; left: 5px; bottom: 0 }
|
||||
.fansCon .list2 .msg { display: inline; width: 164px; padding: 8px 0 0 12px; }
|
||||
.fansCon .list2 .msg h4 { line-height: 24px; font-weight: normal; font-size: 16px; overflow: hidden; height: 24px; white-space: nowrap; text-overflow: ellipsis; }
|
||||
.fansCon .list2 .msg p { font-size: 12px; line-height: 16px; color: #999; }
|
||||
.fansTop { margin-bottom: 8px; border-bottom: 1px solid #eaeaea }
|
||||
.fans_tab { width: 1005px; overflow: hidden; }
|
||||
.fans_tab ul { float: left; width: 280px; margin-right: 55px; }
|
||||
.fans_tab li { line-height: 39px; overflow: hidden; font-size: 14px; height: 39px; border-bottom: 1px solid #ebebeb; }
|
||||
.fans_tab li .num { float: left; width: 40px; color: #666; }
|
||||
.fans_tab li a { float: left; overflow: hidden; width: 200px; white-space: nowrap; text-overflow: ellipsis; }
|
||||
.fans_tab li .fans_level { float: left; font-size: 12px; width: 40px; text-align: right; color: #999; }
|
||||
.fansRule dl { padding: 20px 20px 30px }
|
||||
.fansRule dt { line-height: 24px; margin-bottom: 6px; font-size: 16px; }
|
||||
.fansRule dd { font-size: 12px; line-height: 20px; margin-bottom: 16px; color: #777; }
|
||||
.fansRule table { width: 100%; border-collapse: collapse; }
|
||||
.fansRule table th, .fansRule table td { font-weight: 400; min-width: 40px; padding: 12px 0; text-align: left; border-top: 1px solid #ebebeb; border-bottom: 1px solid #ebebeb; }
|
||||
.fansRule ol li { list-style-type: decimal; list-style-position: inside; }
|
||||
.InteractionBox .l_bar, .flower_bar .l_bar { display: none }
|
||||
.dashang_bar { float: left }
|
||||
.flower_bar { float: right }
|
||||
.author_head { text-align: center }
|
||||
.author_head .head img { width:64px; height:64px; border-radius: 50%; background:#f6f6f6; display: block; margin: 0 auto }
|
||||
.author_head .msg { margin-top: -4px }
|
||||
.author_head .msg h4 { font-size:14px; line-height:2.4 }
|
||||
.icon_qyzz { padding: 5px; line-height:1; background:#f70; color:#fff; border-radius:3px; display:inline-block }
|
||||
.author_intro, .author_book { border-top:1px dotted #e0e0e0 }
|
||||
.author_intro h4,.author_book h4 { font-weight: normal; font-size: 12px; padding:10px 0 5px }
|
||||
.author_intro .intro_txt, .author_book .book_txt { line-height:1.8; padding-bottom:10px }
|
||||
.author_book .rightList ul { padding:0 }
|
||||
|
||||
|
||||
.tj_bar .cover { float: left; display: block; margin-right: 10px }
|
||||
.tj_bar .cover img { width: 64px; height: auto; background: #f6f6f6 }
|
||||
.tj_bar .book_intro { padding: 15px 0; clear: both; word-break: break-all; zoom: 1; overflow: hidden }
|
||||
.tj_bar .dec { width: 136px; float: right }
|
||||
.tj_bar .book_intro .book_name { display: block; font-size: 14px; line-height: 1; white-space: nowrap; text-overflow: ellipsis; overflow: hidden }
|
||||
.tj_bar .book_intro .txt { height: 54px; line-height: 1.5; color: #808080; overflow: hidden; display: block; margin-top: 10px; }
|
||||
.tj_bar li { border-bottom: 1px solid #eee }
|
||||
.tj_bar li:last-child { border: none }
|
||||
.tj_bar li:last-child .book_intro { padding: 15px 0 2px }
|
||||
.tj_bar .cover {
|
||||
float: left;
|
||||
display: block;
|
||||
margin-right: 10px
|
||||
}
|
||||
|
||||
.friend_link { display: none }
|
||||
.footer { background: #fff; padding: 16px 0 20px }
|
||||
.tj_bar .cover img {
|
||||
width: 64px;
|
||||
height: auto;
|
||||
background: #f6f6f6
|
||||
}
|
||||
|
||||
.tj_bar .book_intro {
|
||||
padding: 15px 0;
|
||||
clear: both;
|
||||
word-break: break-all;
|
||||
zoom: 1;
|
||||
overflow: hidden
|
||||
}
|
||||
|
||||
.tj_bar .dec {
|
||||
width: 136px;
|
||||
float: right
|
||||
}
|
||||
|
||||
.tj_bar .book_intro .book_name {
|
||||
display: block;
|
||||
font-size: 14px;
|
||||
line-height: 1;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden
|
||||
}
|
||||
|
||||
.tj_bar .book_intro .txt {
|
||||
height: 54px;
|
||||
line-height: 1.5;
|
||||
color: #808080;
|
||||
overflow: hidden;
|
||||
display: block;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.tj_bar li {
|
||||
border-bottom: 1px solid #eee
|
||||
}
|
||||
|
||||
.tj_bar li:last-child {
|
||||
border: none
|
||||
}
|
||||
|
||||
.tj_bar li:last-child .book_intro {
|
||||
padding: 15px 0 2px
|
||||
}
|
||||
|
||||
.friend_link {
|
||||
display: none
|
||||
}
|
||||
|
||||
.footer {
|
||||
background: #fff;
|
||||
padding: 16px 0 20px }
|
||||
|
||||
|
@ -38,7 +38,7 @@
|
||||
/*userinfo*/
|
||||
.my_l { width:198px; float:left; font-size: 13px; padding-top: 20px; }
|
||||
.my_l li a { display:block; height:42px; line-height:42px; padding-left:62px; border-left:4px solid #fff; background:url(../images/icon_user.png) no-repeat; margin-bottom:5px; color: #666 }
|
||||
.my_l li .on { background-color:#fafafa; border-left:2px solid #f80; color:#000; border-radius: 0 2px 2px 0 }
|
||||
.my_l li .on { background-color:#fafafa; border-left:2px solid #3eaf7c; color:#000; border-radius: 0 2px 2px 0 }
|
||||
.my_l .link_1 { background-position:32px -188px }
|
||||
.my_l .link_2 { background-position:32px -230px }
|
||||
.my_l .link_3 { background-position:32px -272px }
|
||||
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 582 B |
Before Width: | Height: | Size: 4.9 KiB After Width: | Height: | Size: 3.2 KiB |
@ -457,8 +457,8 @@ html #layuicss-layer {
|
||||
}
|
||||
|
||||
.layui-layer-btn .layui-layer-btn0 {
|
||||
border-color: #f70;
|
||||
background-color: #f70;
|
||||
border-color: #3eaf7c;
|
||||
background-color: #3eaf7c;
|
||||
color: #fff
|
||||
}
|
||||
|
||||
|
@ -1510,7 +1510,7 @@ a cite {
|
||||
margin-bottom: 10px;
|
||||
padding: 8px;
|
||||
line-height: 22px;
|
||||
border-left: 5px solid #f80;
|
||||
border-left: 5px solid #3eaf7c;
|
||||
border-radius: 0 2px 2px 0;
|
||||
background-color: #f2f2f2
|
||||
}
|
||||
@ -1713,7 +1713,7 @@ a cite {
|
||||
}
|
||||
|
||||
.layui-bg-cyan {
|
||||
background-color: #f80 !important
|
||||
background-color: #3eaf7c !important
|
||||
}
|
||||
|
||||
.layui-bg-blue {
|
||||
@ -1787,7 +1787,7 @@ a cite {
|
||||
height: 38px;
|
||||
line-height: 38px;
|
||||
padding: 0 18px;
|
||||
background-color: #f80;
|
||||
background-color: #3eaf7c;
|
||||
color: #fff;
|
||||
white-space: nowrap;
|
||||
text-align: center;
|
||||
@ -1847,7 +1847,7 @@ a cite {
|
||||
}
|
||||
|
||||
.layui-btn-primary:hover {
|
||||
border-color: #f80;
|
||||
border-color: #3eaf7c;
|
||||
color: #333
|
||||
}
|
||||
|
||||
@ -2230,11 +2230,11 @@ a cite {
|
||||
}
|
||||
|
||||
.layui-form-checked span, .layui-form-checked:hover span {
|
||||
background-color: #f80
|
||||
background-color: #3eaf7c
|
||||
}
|
||||
|
||||
.layui-form-checked i, .layui-form-checked:hover i {
|
||||
color: #f80
|
||||
color: #3eaf7c
|
||||
}
|
||||
|
||||
.layui-form-item .layui-form-checkbox {
|
||||
@ -2276,13 +2276,13 @@ a cite {
|
||||
}
|
||||
|
||||
.layui-form-checkbox[lay-skin=primary]:hover i {
|
||||
border-color: #f80;
|
||||
border-color: #3eaf7c;
|
||||
color: #fff
|
||||
}
|
||||
|
||||
.layui-form-checked[lay-skin=primary] i {
|
||||
border-color: #f80;
|
||||
background-color: #f80;
|
||||
border-color: #3eaf7c;
|
||||
background-color: #3eaf7c;
|
||||
color: #fff
|
||||
}
|
||||
|
||||
@ -2699,7 +2699,7 @@ a cite {
|
||||
padding: 1px;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: #f80
|
||||
background-color: #3eaf7c
|
||||
}
|
||||
|
||||
.layui-laypage-em {
|
||||
@ -3489,7 +3489,7 @@ body .layui-table-tips .layui-layer-content {
|
||||
.layui-nav {
|
||||
position: relative;
|
||||
padding: 0 20px;
|
||||
background-color: #f80;
|
||||
background-color: #3eaf7c;
|
||||
color: #fff;
|
||||
border-radius: 2px;
|
||||
font-size: 0;
|
||||
@ -3604,7 +3604,7 @@ body .layui-table-tips .layui-layer-content {
|
||||
}
|
||||
|
||||
.layui-nav .layui-nav-child dd.layui-this a, .layui-nav-child dd.layui-this {
|
||||
background-color: #f80;
|
||||
background-color: #3eaf7c;
|
||||
}
|
||||
|
||||
.layui-nav-child dd.layui-this:after {
|
||||
|
@ -12,8 +12,8 @@
|
||||
.redBtn {
|
||||
padding: 5px;
|
||||
border-radius: 20px;
|
||||
border: 1px solid #f80;
|
||||
background: #f80;
|
||||
border: 1px solid #3eaf7c;
|
||||
background: #3eaf7c;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
|
@ -12,8 +12,8 @@
|
||||
.redBtn {
|
||||
padding: 5px;
|
||||
border-radius: 20px;
|
||||
border: 1px solid #f80;
|
||||
background: #f80;
|
||||
border: 1px solid #3eaf7c;
|
||||
background: #3eaf7c;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
|
@ -159,9 +159,9 @@
|
||||
|
||||
<div style="text-align: center;height: 45px;line-height: 45px">
|
||||
<a th:href="'/book/'+${book.id}+'/'+${firstBookIndexId}+'.html'" type="button"
|
||||
style="background-color:#ff8900!important" class="layui-btn layui-btn-sm layui-btn-radius">开始阅读</a>
|
||||
style="background-color:#3eaf7c!important" class="layui-btn layui-btn-sm layui-btn-radius">开始阅读</a>
|
||||
<button type="button" id="cFavs" onclick="addInShell()"
|
||||
style="border: 1px solid #f80;color: #f80;background-color:#fff!important"
|
||||
style="border: 1px solid #3eaf7c;color: #3eaf7c;background-color:#fff!important"
|
||||
class="layui-btn layui-btn-sm layui-btn-radius ">加入书架
|
||||
</button>
|
||||
|
||||
@ -214,7 +214,7 @@
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
if (data.data) {
|
||||
$("#cFavs").replaceWith("<button type=\"button\" id=\"cFavs\" style=\"border: 1px solid #f80;color: #f80;background-color:#fff!important\" class=\"layui-btn layui-btn-sm layui-btn-radius layui-btn-warm\">已在书架</button>");
|
||||
$("#cFavs").replaceWith("<button type=\"button\" id=\"cFavs\" style=\"border: 1px solid #3eaf7c;color: #3eaf7c;background-color:#fff!important\" class=\"layui-btn layui-btn-sm layui-btn-radius layui-btn-warm\">已在书架</button>");
|
||||
}
|
||||
|
||||
|
||||
@ -269,7 +269,7 @@
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
$("#cFavs").replaceWith("<button type=\"button\" id=\"cFavs\" style=\"border: 1px solid #f80;color: #f80;background-color:#fff!important\" class=\"layui-btn layui-btn-sm layui-btn-radius layui-btn-warm\">已在书架</button>");
|
||||
$("#cFavs").replaceWith("<button type=\"button\" id=\"cFavs\" style=\"border: 1px solid #3eaf7c;color: #3eaf7c;background-color:#fff!important\" class=\"layui-btn layui-btn-sm layui-btn-radius layui-btn-warm\">已在书架</button>");
|
||||
|
||||
|
||||
} else if (data.code == 1001) {
|
||||
|
@ -108,7 +108,7 @@
|
||||
<div id="body" class="layui-row">
|
||||
<div class="payHead cf">
|
||||
<div class="fl">
|
||||
充值账号:<span class="user_name" id="my_name">13560421324</span> 余额:<em style="color: #f80" id="accountBalance">10</em> 屋币<!--<em class="red">+0</em>代金券-->
|
||||
充值账号:<span class="user_name" id="my_name">13560421324</span> 余额:<em style="color: #3eaf7c" id="accountBalance">10</em> 屋币<!--<em class="red">+0</em>代金券-->
|
||||
</div>
|
||||
</div>
|
||||
<div id="payAmount" class="pay_way layui-row layui-col-space15" style="text-align: center;padding-top: 20px;">
|
||||
|
@ -103,7 +103,7 @@
|
||||
fill="#d4237a" p-id="3687"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div style="padding: 5px;">账户余额:<span id="accountBalance" style="color: #f80">3000</span> 屋币</div>
|
||||
<div style="padding: 5px;">账户余额:<span id="accountBalance" style="color: #3eaf7c">3000</span> 屋币</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@ -119,15 +119,15 @@
|
||||
<svg t="1697073258970" class="icon" viewBox="0 0 1024 1024" version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg" p-id="4079" width="25px" height="25px">
|
||||
<path d="M768 30.72 283.306667 30.72c-51.2 0-98.986667 44.373333-98.986667 98.986667l0 747.52c0 51.2 44.373333 95.573333 98.986667 95.573333l300.373333 0c0 0 71.68 0 116.053333 23.893333 3.413333 0 3.413333 3.413333 6.826667 3.413333 6.826667 0 10.24-3.413333 13.653333-6.826667 3.413333-6.826667 0-17.066667-6.826667-20.48-51.2-30.72-126.293333-30.72-129.706667-30.72L283.306667 942.08c-37.546667 0-64.853333-30.72-64.853333-64.853333L218.453333 129.706667c0-37.546667 30.72-64.853333 64.853333-64.853333l484.693333 0c37.546667 0 68.266667 30.72 68.266667 64.853333l0 747.52c0 37.546667-30.72 64.853333-68.266667 64.853333-6.826667 0-17.066667 6.826667-17.066667 17.066667s6.826667 17.066667 17.066667 17.066667c51.2 0 98.986667-44.373333 98.986667-95.573333L866.986667 129.706667C866.986667 78.506667 819.2 30.72 768 30.72z"
|
||||
fill="#ff8800" p-id="4080"></path>
|
||||
fill="#3eaf7c" p-id="4080"></path>
|
||||
<path d="M604.16 102.4 443.733333 102.4c-6.826667 0-17.066667 6.826667-17.066667 17.066667S436.906667 136.533333 443.733333 136.533333l160.426667 0c6.826667 0 17.066667-6.826667 17.066667-17.066667S610.986667 102.4 604.16 102.4z"
|
||||
fill="#ff8800" p-id="4081"></path>
|
||||
fill="#3eaf7c" p-id="4081"></path>
|
||||
<path d="M344.746667 307.2c-6.826667 6.826667-6.826667 17.066667 0 20.48l81.92 81.92c3.413333 3.413333 6.826667 3.413333 10.24 3.413333s6.826667 0 10.24-3.413333c6.826667-6.826667 6.826667-17.066667 0-20.48L365.226667 307.2C358.4 300.373333 351.573333 300.373333 344.746667 307.2z"
|
||||
fill="#ff8800" p-id="4082"></path>
|
||||
fill="#3eaf7c" p-id="4082"></path>
|
||||
<path d="M604.16 409.6c3.413333 3.413333 6.826667 3.413333 10.24 3.413333s6.826667 0 10.24-3.413333l81.92-81.92c6.826667-6.826667 6.826667-17.066667 0-20.48s-17.066667-6.826667-20.48 0l-81.92 81.92C597.333333 395.946667 597.333333 402.773333 604.16 409.6z"
|
||||
fill="#ff8800" p-id="4083"></path>
|
||||
fill="#3eaf7c" p-id="4083"></path>
|
||||
<path d="M716.8 460.8c6.826667 0 17.066667-6.826667 17.066667-17.066667s-6.826667-17.066667-17.066667-17.066667L334.506667 426.666667c-6.826667 0-17.066667 6.826667-17.066667 17.066667s6.826667 17.066667 17.066667 17.066667L512 460.8l0 105.813333L334.506667 566.613333c-6.826667 0-17.066667 6.826667-17.066667 17.066667s6.826667 17.066667 17.066667 17.066667L512 600.746667l0 139.946667c0 6.826667 6.826667 17.066667 17.066667 17.066667s17.066667-6.826667 17.066667-17.066667l0-139.946667L716.8 600.746667c6.826667 0 17.066667-6.826667 17.066667-17.066667s-6.826667-17.066667-17.066667-17.066667l-174.08 0 0-105.813333L716.8 460.8z"
|
||||
fill="#ff8800" p-id="4084"></path>
|
||||
fill="#3eaf7c" p-id="4084"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div style="float: left; margin-left: 20px">充值</div>
|
||||
@ -146,7 +146,7 @@
|
||||
<svg t="1693622464904" class="icon" viewBox="0 0 1097 1024" version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg" p-id="3653" width="25px" height="25px">
|
||||
<path d="M998.58390632 852.14701166H126.84569332A41.51236 41.51236 0 0 0 85.33333332 893.65937166v62.26854a41.51236 41.51236 0 0 0 41.51236 41.51236h871.738213a41.51236 41.51236 0 0 0 41.51236-41.51236v-62.26854a41.51236 41.51236 0 0 0-41.51236-41.51236z m-29.293426 83.014048h-813.172704a8.537246 8.537246 0 0 1-8.537246-8.537246v-3.681687a8.537246 8.537246 0 0 1 8.537246-8.537247h813.172704a8.537246 8.537246 0 0 1 8.537246 8.537247v3.681687a8.537246 8.537246 0 0 1-8.537246 8.537246zM126.84569332 810.63465166h124.537079a41.51236 41.51236 0 0 0 41.51236-41.51236V229.47228566a41.51236 41.51236 0 0 0-41.51236-41.51236H126.84569332A41.51236 41.51236 0 0 0 85.33333332 229.47228566v539.650006a41.51236 41.51236 0 0 0 41.51236 41.51236zM156.72605532 246.49342066h64.883071a12.805869 12.805869 0 0 1 12.805869 12.805869v479.995998a12.805869 12.805869 0 0 1-12.805869 12.80587H156.72605532a12.805869 12.805869 0 0 1-12.80587-12.80587V259.29928966a12.805869 12.805869 0 0 1 12.80587-12.805869z m239.939305 564.141231h124.53708a41.51236 41.51236 0 0 0 41.51236-41.51236V278.62548066l291.653674 510.335237 0.266789 0.480221a41.619075 41.619075 0 0 0 56.826045 15.527116l107.932136-62.962191A42.600859 42.600859 0 0 0 1034.18422332 684.02729066L727.73976932 147.49337866l-0.266789-0.48022a41.619075 41.619075 0 0 0-56.826045-15.527116l-107.932135 62.962191V84.17902666A41.51236 41.51236 0 0 0 521.20244032 42.66666666h-124.53708a41.51236 41.51236 0 0 0-41.51236 41.51236v684.943265a41.51236 41.51236 0 0 0 41.51236 41.51236z m296.295802-597.938055a3.735045 3.735045 0 0 1 5.122348 1.376631l259.841761 454.608363a12.805869 12.805869 0 0 1-4.663471 17.415982l-56.271124 32.825712a12.805869 12.805869 0 0 1-17.544041-4.663471L624.11894332 267.59109066a12.805869 12.805869 0 0 1 4.663471-17.415983zM426.49236432 101.20016166h64.883072a12.805869 12.805869 0 0 1 12.805869 12.805869v625.289257a12.805869 12.805869 0 0 1-12.805869 12.80587h-64.883072a12.805869 12.805869 0 0 1-12.805869-12.80587V114.00603066a12.805869 12.805869 0 0 1 12.805869-12.805869z m0 0"
|
||||
p-id="3654" fill="#ff8800"></path>
|
||||
p-id="3654" fill="#3eaf7c"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div style="float: left; margin-left: 20px">我的书架</div>
|
||||
@ -166,7 +166,7 @@
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
p-id="1877" width="25px" height="25px">
|
||||
<path d="M876.8 709.12H738.56V591.36c0-15.36-10.24-25.6-25.6-25.6-15.36 0-25.6 10.24-25.6 25.6v143.36c0 15.36 10.24 25.6 25.6 25.6H876.8c15.36 0 25.6-10.24 25.6-25.6s-12.8-25.6-25.6-25.6zM705.28 463.36c-153.6 0-279.04 125.44-279.04 279.04 0 153.6 125.44 279.04 279.04 279.04 153.6 0 279.04-125.44 279.04-279.04 0-153.6-125.44-276.48-279.04-279.04z m0 506.88c-125.44 0-227.84-102.4-227.84-227.84s102.4-227.84 227.84-227.84 227.84 102.4 227.84 227.84c-2.56 128-102.4 227.84-227.84 227.84z m25.6-622.08c0-15.36-10.24-25.6-25.6-25.6h-473.6c-15.36 0-25.6 10.24-25.6 25.6 0 15.36 10.24 25.6 25.6 25.6h473.6c12.8 0 25.6-10.24 25.6-25.6z m-307.2 207.36c0-15.36-10.24-25.6-25.6-25.6h-166.4c-15.36 0-25.6 10.24-25.6 25.6s10.24 25.6 25.6 25.6h166.4c15.36 0 25.6-12.8 25.6-25.6z m-192 153.6c-15.36 0-25.6 10.24-25.6 25.6s10.24 25.6 25.6 25.6h128c15.36 0 25.6-10.24 25.6-25.6s-10.24-25.6-25.6-25.6h-128zM482.56 972.8H90.88V51.2h174.08v38.4c0 33.28 25.6 64 58.88 64 12.8 0 343.04 2.56 373.76 0 33.28 0 58.88-28.16 56.32-61.44v-38.4H928v437.76c0 15.36 10.24 25.6 25.6 25.6 15.36 0 25.6-10.24 25.6-25.6V28.16c0-15.36-10.24-25.6-25.6-25.6H728.32c-15.36 0-25.6 10.24-25.6 25.6v64c0 7.68-5.12 12.8-10.24 12.8H326.4c-7.68 0-12.8-5.12-12.8-12.8V25.6C313.6 10.24 303.36 0 288 0H65.28c-15.36 0-25.6 10.24-25.6 25.6v972.8c0 15.36 10.24 25.6 25.6 25.6h417.28c15.36 0 25.6-10.24 25.6-25.6 0-15.36-12.8-25.6-25.6-25.6zM395.52 51.2h230.4c15.36 0 25.6-10.24 25.6-25.6 0-15.36-10.24-25.6-25.6-25.6h-230.4c-15.36 0-25.6 10.24-25.6 25.6 0 15.36 12.8 25.6 25.6 25.6z"
|
||||
fill="#ff8800" p-id="1878"></path>
|
||||
fill="#3eaf7c" p-id="1878"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div style="float: left; margin-left: 20px">阅读历史</div>
|
||||
@ -181,7 +181,7 @@
|
||||
|
||||
<blockquote class="layui-elem-quote"
|
||||
style="background-color:#fafafa;border-left:0px;margin-bottom: 0px;text-align: left;padding:15px 10px;color: #000;font-size: 18px">
|
||||
<i style="font-size: 25px;padding-right: 20px;color:#f80"
|
||||
<i style="font-size: 25px;padding-right: 20px;color:#3eaf7c"
|
||||
class="layui-icon">
|
||||
</i>
|
||||
我的书评
|
||||
@ -196,7 +196,7 @@
|
||||
href="javascript:logout()">
|
||||
|
||||
<blockquote class="layui-elem-quote"
|
||||
style="background-color:#fafafa;border-left:0px;margin-top:10px;margin-bottom: 10px;text-align: center;padding:15px 10px;color: #f80;font-size: 16px">
|
||||
style="background-color:#fafafa;border-left:0px;margin-top:10px;margin-bottom: 10px;text-align: center;padding:15px 10px;color: #3eaf7c;font-size: 16px">
|
||||
|
||||
退出登录
|
||||
</blockquote>
|
||||
|
17
templates/green/html/404.html
Normal file
@ -0,0 +1,17 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Page Not Found</title>
|
||||
<script>
|
||||
setTimeout(function () {
|
||||
location.href = '/';
|
||||
},1000)
|
||||
|
||||
</script>
|
||||
</head>
|
||||
<body style="background: url(/images/404.jpeg) no-repeat;" >
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
112
templates/green/html/about/news.html
Normal file
@ -0,0 +1,112 @@
|
||||
<!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">
|
||||
<head th:replace="common/header :: common_head(~{::title},~{::meta},~{::link},~{})">
|
||||
<title th:text="'新闻公共_'+${application.website.name}"></title>
|
||||
<meta name="keywords" content="新闻公告,小说,小说网,言情小说,都市小说,玄幻小说,穿越小说,青春小说,总裁豪门小说,网络小说,免费小说,全本小说,原创网络文学"/>
|
||||
<meta name="description"
|
||||
th:content="${application.website.name}+'小说每日更新小说连载,小说排行榜,提供言情小说,都市小说,玄幻小说,穿越小说,青春小说,总裁豪门小说,网络小说,免费小说,全本小说,首发小说,最新章节免费小说阅读,精彩尽在'+${application.website.name}+'小说!'"/>
|
||||
<link rel="stylesheet" href="/css/about.css"/>
|
||||
</head>
|
||||
<body class="body">
|
||||
|
||||
<div th:replace="common/top :: top('')">
|
||||
</div>
|
||||
<!--主体 start-->
|
||||
<div class="main box_center cf">
|
||||
|
||||
|
||||
<div class="my_r" style="width: 960px">
|
||||
<div class="newsBox">
|
||||
<ul class="news_list" id="newsList">
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
</div>
|
||||
<div class="pageBox cf" id="newsPage">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<!--主体 end-->
|
||||
|
||||
<div th:replace="common/footer :: footer">
|
||||
</div>
|
||||
v
|
||||
<div th:replace="common/js :: js"></div>
|
||||
<script src="/javascript/bookdetail.js" type="text/javascript"></script>
|
||||
<script language="javascript" type="text/javascript">
|
||||
search(1, 5);
|
||||
|
||||
function search(curr, limit) {
|
||||
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/news/listByPage",
|
||||
data: {'curr': curr, 'limit': limit},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
var newsList = data.data.list;
|
||||
if (newsList.length > 0) {
|
||||
var newsListHtml = "";
|
||||
for (var i = 0; i < newsList.length; i++) {
|
||||
var news = newsList[i];
|
||||
newsListHtml += (" <li>\n" +
|
||||
" <h5><i class=\"dot\"></i><a href=\"newsInfo-" + news.id + ".html\" >" + news.title + "</a></h5>\n" +
|
||||
" <p>" + news.createTime + "</p>\n" +
|
||||
" </li>");
|
||||
}
|
||||
$("#newsList").html(newsListHtml);
|
||||
|
||||
layui.use('laypage', function () {
|
||||
var laypage = layui.laypage;
|
||||
|
||||
//执行一个laypage实例
|
||||
laypage.render({
|
||||
elem: 'newsPage' //注意,这里的 test1 是 ID,不用加 # 号
|
||||
, count: data.data.total //数据总数,从服务端得到,
|
||||
, curr: data.data.pageNum
|
||||
, limit: data.data.pageSize
|
||||
, jump: function (obj, first) {
|
||||
|
||||
|
||||
//obj包含了当前分页的所有参数,比如:
|
||||
console.log(obj.curr); //得到当前页,以便向服务端请求对应页的数据。
|
||||
console.log(obj.limit); //得到每页显示的条数
|
||||
|
||||
|
||||
//首次不执行
|
||||
if (!first) {
|
||||
search(obj.curr, obj.limit);
|
||||
} else {
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
} else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
|
41
templates/green/html/about/news_info.html
Normal file
@ -0,0 +1,41 @@
|
||||
<!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">
|
||||
<head th:replace="common/header :: common_head(~{::title},~{::meta},~{::link},~{})">
|
||||
<title th:text="'新闻公告_'+${application.website.name}"></title>
|
||||
<meta name="keywords" content="新闻公告,小说,小说网,言情小说,都市小说,玄幻小说,穿越小说,青春小说,总裁豪门小说,网络小说,免费小说,全本小说,原创网络文学"/>
|
||||
<meta name="description" th:content="${application.website.name}+'小说每日更新小说连载,小说排行榜,提供言情小说,都市小说,玄幻小说,穿越小说,青春小说,总裁豪门小说,网络小说,免费小说,全本小说,首发小说,最新章节免费小说阅读,精彩尽在'+${application.website.name}+'小说!'" />
|
||||
<link rel="stylesheet" href="/css/about.css" />
|
||||
</head>
|
||||
<body class="body">
|
||||
|
||||
<div th:replace="common/top :: top('')">
|
||||
</div>
|
||||
<input type="hidden" id="newsId" th:value="${news.id}"/>
|
||||
<div class="main box_center cf">
|
||||
<div class="newsMain cf">
|
||||
<div class="nav_sub">
|
||||
当前位置:<a href="/" > 首页 </a> > <a href="/about/news.html" > 新闻公告 </a> > <span th:utext="${news.title}"> </span>
|
||||
</div>
|
||||
<div class="channelWrap channelNews cf">
|
||||
<div class="news_title">
|
||||
<h2 th:utext="${news.title}"></h2>
|
||||
<!--while [[...]] corresponds to th:text (i.e. result will be HTML-escaped), [(...)] corresponds to th:utext-->
|
||||
<p class="from">来源:[[${news.sourceName}]] <span class="time" th:text="'时间:'+${#dates.format(news.createTime, 'yy-MM-dd')}"></span> <span class="time" th:text="'阅读量:'+${news.readCount}"></span></p>
|
||||
</div>
|
||||
<div class="news_info" th:utext="${news.content}">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div th:replace="common/footer :: footer">
|
||||
</div>
|
||||
|
||||
</body>
|
||||
<div th:replace="common/js :: js"></div>
|
||||
<script src="/javascript/bookdetail.js" type="text/javascript"></script>
|
||||
<script type="text/javascript">
|
||||
$.post("/news/addReadCount", {"newsId": $("#newsId").val()}, function () {
|
||||
});
|
||||
</script>
|
||||
</html>
|
227
templates/green/html/author/author_income.html
Normal file
@ -0,0 +1,227 @@
|
||||
|
||||
<!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">
|
||||
<head>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
|
||||
<title>作家管理系统-小说精品屋</title>
|
||||
<link rel="stylesheet" href="/css/base.css?v=1"/>
|
||||
<link rel="stylesheet" href="/css/user.css" />
|
||||
</head>
|
||||
</head>
|
||||
<body class="">
|
||||
|
||||
<div class="header">
|
||||
<div class="mainNav" id="mainNav">
|
||||
<div class="box_center cf" style="text-align: center;height: 44px;line-height: 48px;color: #fff;font-size: 16px;">
|
||||
|
||||
小说精品屋作家管理
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="main box_center cf">
|
||||
<div class="userBox cf">
|
||||
<div class="my_l">
|
||||
|
||||
<ul class="log_list">
|
||||
<li><a class="link_4" href="/author/index.html">小说管理</a></li>
|
||||
<li><a class="link_2 on" href="/author/author_income_detail.html">稿费收入</a></li>
|
||||
<!-- <li><a class="link_1 " href="/user/userinfo.html">批量小说爬取</a></li>
|
||||
<li><a class="link_4 " href="/user/favorites.html">单本小说爬取</a></li>-->
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<div class="my_r">
|
||||
<div class="my_bookshelf">
|
||||
<div class="title cf">
|
||||
<h2 class="fl ml10"><a href="/author/author_income_detail.html">订阅明细</a></h2><i class="fl ml20 mr20 font16">|</i><h2 class="fl"><a href="/author/author_income.html" class="red">稿费汇总</a></h2>
|
||||
</div>
|
||||
|
||||
<div id="divData" class="updateTable">
|
||||
<table cellpadding="0" cellspacing="0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="goread">
|
||||
月份
|
||||
</th>
|
||||
<th class="goread">
|
||||
税前收入
|
||||
</th>
|
||||
<th class="goread">
|
||||
税后收入
|
||||
</th>
|
||||
<th class="goread">
|
||||
支付状态
|
||||
</th>
|
||||
</tr>
|
||||
|
||||
</thead>
|
||||
<tbody id="bookList">
|
||||
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="pageBox cf" id="shellPage">
|
||||
</div>
|
||||
</div>
|
||||
<!--<div id="divData" class="updateTable">
|
||||
<table cellpadding="0" cellspacing="0">
|
||||
<thead>
|
||||
<tr>
|
||||
|
||||
<th class="name">
|
||||
爬虫源(已开启的爬虫源)
|
||||
</th>
|
||||
<th class="chapter">
|
||||
成功爬取数量(websocket实现)
|
||||
</th>
|
||||
<th class="time">
|
||||
目标爬取数量
|
||||
</th>
|
||||
<th class="goread">
|
||||
状态(正在运行,已停止)(一次只能运行一个爬虫源)
|
||||
</th>
|
||||
<th class="goread">
|
||||
操作(启动,停止)
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="bookShelfList">
|
||||
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="pageBox cf" id="shellPage">
|
||||
</div>
|
||||
</div>-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</body>
|
||||
<script src="/javascript/jquery-1.8.0.min.js" type="text/javascript"></script>
|
||||
<script src="/layui/layui.all.js" type="text/javascript"></script>
|
||||
<script src="/javascript/header.js" type="text/javascript"></script>
|
||||
<script src="/javascript/user.js" type="text/javascript"></script>
|
||||
|
||||
<script language="javascript" type="text/javascript">
|
||||
search(1, 10);
|
||||
|
||||
function search(curr, limit) {
|
||||
|
||||
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/author/listIncomeMonthByPage",
|
||||
data: {'curr':curr,'limit':limit},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
var bookList = data.data.list;
|
||||
if (bookList.length > 0) {
|
||||
var bookListHtml = "";
|
||||
for(var i=0;i<bookList.length;i++){
|
||||
var book = bookList[i];
|
||||
bookListHtml+=(" <tr class=\"book_list\" >\n" +
|
||||
" <td class=\"goread\">\n" +
|
||||
" "+book.incomeMonth+"</td>\n" +
|
||||
" <td class=\"goread\" >"
|
||||
+book.preTaxIncome/100+"</td>\n" +
|
||||
" <td class=\"goread\">\n" +
|
||||
" "+book.afterTaxIncome/100+"\n" +
|
||||
" </td>\n" +
|
||||
" <td class=\"goread\">"+(book.payStatus == 1 ? '已支付' : '待支付')+
|
||||
" </td>\n" +
|
||||
|
||||
" </tr>");
|
||||
}
|
||||
$("#bookList").html(bookListHtml);
|
||||
|
||||
layui.use('laypage', function () {
|
||||
var laypage = layui.laypage;
|
||||
|
||||
//执行一个laypage实例
|
||||
laypage.render({
|
||||
elem: 'shellPage' //注意,这里的 test1 是 ID,不用加 # 号
|
||||
, count: data.data.total //数据总数,从服务端得到,
|
||||
, curr: data.data.pageNum
|
||||
, limit: data.data.pageSize
|
||||
, jump: function (obj, first) {
|
||||
|
||||
|
||||
//obj包含了当前分页的所有参数,比如:
|
||||
console.log(obj.curr); //得到当前页,以便向服务端请求对应页的数据。
|
||||
console.log(obj.limit); //得到每页显示的条数
|
||||
|
||||
|
||||
//首次不执行
|
||||
if (!first) {
|
||||
search(obj.curr, obj.limit);
|
||||
} else {
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
} else if (data.code == 1001) {
|
||||
//未登录
|
||||
location.href = '/user/login.html?originUrl=' + decodeURIComponent(location.href);
|
||||
|
||||
}else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
|
||||
function updateBookStatus(bookId,status) {
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/author/updateBookStatus",
|
||||
data: {'bookId':bookId,'status':status==0?1:0},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
|
||||
location.reload();
|
||||
|
||||
|
||||
} else if (data.code == 1001) {
|
||||
//未登录
|
||||
location.href = '/user/login.html?originUrl=' + decodeURIComponent(location.href);
|
||||
|
||||
}else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
</script>
|
||||
</html>
|
233
templates/green/html/author/author_income_detail.html
Normal file
@ -0,0 +1,233 @@
|
||||
|
||||
<!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">
|
||||
<head>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
|
||||
<title>作家管理系统-小说精品屋</title>
|
||||
<link rel="stylesheet" href="/css/base.css?v=1"/>
|
||||
<link rel="stylesheet" href="/css/user.css" />
|
||||
</head>
|
||||
</head>
|
||||
<body class="">
|
||||
|
||||
<div class="header">
|
||||
<div class="mainNav" id="mainNav">
|
||||
<div class="box_center cf" style="text-align: center;height: 44px;line-height: 48px;color: #fff;font-size: 16px;">
|
||||
|
||||
小说精品屋作家管理
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="main box_center cf">
|
||||
<div class="userBox cf">
|
||||
<div class="my_l">
|
||||
|
||||
<ul class="log_list">
|
||||
<li><a class="link_4" href="/author/index.html">小说管理</a></li>
|
||||
<li><a class="link_2 on" href="/author/author_income_detail.html">稿费收入</a></li>
|
||||
<!-- <li><a class="link_1 " href="/user/userinfo.html">批量小说爬取</a></li>
|
||||
<li><a class="link_4 " href="/user/favorites.html">单本小说爬取</a></li>-->
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<div class="my_r">
|
||||
<div class="my_bookshelf">
|
||||
<div class="title cf">
|
||||
<h2 class="fl ml10"><a href="/author/author_income_detail.html" class="red">订阅明细</a></h2><i class="fl ml20 mr20 font16">|</i><h2 class="fl"><a href="/author/author_income.html">稿费汇总</a></h2>
|
||||
</div>
|
||||
|
||||
<div id="divData" class="updateTable">
|
||||
<table cellpadding="0" cellspacing="0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="goread">
|
||||
日期
|
||||
</th>
|
||||
<th class="goread">
|
||||
订阅总额
|
||||
</th>
|
||||
<th class="goread">
|
||||
订阅次数
|
||||
</th>
|
||||
<th class="goread">
|
||||
订阅人数
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="bookList">
|
||||
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="pageBox cf" id="shellPage">
|
||||
</div>
|
||||
</div>
|
||||
<!--<div id="divData" class="updateTable">
|
||||
<table cellpadding="0" cellspacing="0">
|
||||
<thead>
|
||||
<tr>
|
||||
|
||||
<th class="name">
|
||||
爬虫源(已开启的爬虫源)
|
||||
</th>
|
||||
<th class="chapter">
|
||||
成功爬取数量(websocket实现)
|
||||
</th>
|
||||
<th class="time">
|
||||
目标爬取数量
|
||||
</th>
|
||||
<th class="goread">
|
||||
状态(正在运行,已停止)(一次只能运行一个爬虫源)
|
||||
</th>
|
||||
<th class="goread">
|
||||
操作(启动,停止)
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="bookShelfList">
|
||||
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="pageBox cf" id="shellPage">
|
||||
</div>
|
||||
</div>-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</body>
|
||||
<script src="/javascript/jquery-1.8.0.min.js" type="text/javascript"></script>
|
||||
<script src="/layui/layui.all.js" type="text/javascript"></script>
|
||||
<script src="/javascript/header.js" type="text/javascript"></script>
|
||||
<script src="/javascript/user.js" type="text/javascript"></script>
|
||||
<script src="/javascript/common.js" type="text/javascript"></script>
|
||||
|
||||
<script language="javascript" type="text/javascript">
|
||||
var bookId = getSearchString("bookId");
|
||||
search(1, 10);
|
||||
|
||||
function search(curr, limit) {
|
||||
|
||||
var data = {'curr':curr,'limit':limit};
|
||||
|
||||
if(bookId){
|
||||
data.bookId = bookId;
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/author/listIncomeDailyByPage",
|
||||
data: data,
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
var bookList = data.data.list;
|
||||
if (bookList.length > 0) {
|
||||
var bookListHtml = "";
|
||||
for(var i=0;i<bookList.length;i++){
|
||||
var book = bookList[i];
|
||||
bookListHtml+=(" <tr class=\"book_list\" >\n" +
|
||||
" <td class=\"goread\">\n" +
|
||||
" "+book.incomeDate+"</td>\n" +
|
||||
" <td class=\"goread\" >"
|
||||
+book.incomeAccount+"</td>\n" +
|
||||
" <td class=\"goread\">\n" +
|
||||
" "+book.incomeCount+"\n" +
|
||||
" </td>\n" +
|
||||
" <td class=\"goread\">"+book.incomeNumber+
|
||||
" </td>\n" +
|
||||
|
||||
" </tr>");
|
||||
}
|
||||
$("#bookList").html(bookListHtml);
|
||||
|
||||
layui.use('laypage', function () {
|
||||
var laypage = layui.laypage;
|
||||
|
||||
//执行一个laypage实例
|
||||
laypage.render({
|
||||
elem: 'shellPage' //注意,这里的 test1 是 ID,不用加 # 号
|
||||
, count: data.data.total //数据总数,从服务端得到,
|
||||
, curr: data.data.pageNum
|
||||
, limit: data.data.pageSize
|
||||
, jump: function (obj, first) {
|
||||
|
||||
|
||||
//obj包含了当前分页的所有参数,比如:
|
||||
console.log(obj.curr); //得到当前页,以便向服务端请求对应页的数据。
|
||||
console.log(obj.limit); //得到每页显示的条数
|
||||
|
||||
|
||||
//首次不执行
|
||||
if (!first) {
|
||||
search(obj.curr, obj.limit);
|
||||
} else {
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
} else if (data.code == 1001) {
|
||||
//未登录
|
||||
location.href = '/user/login.html?originUrl=' + decodeURIComponent(location.href);
|
||||
|
||||
}else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
|
||||
function updateBookStatus(bookId,status) {
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/author/updateBookStatus",
|
||||
data: {'bookId':bookId,'status':status==0?1:0},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
|
||||
location.reload();
|
||||
|
||||
|
||||
} else if (data.code == 1001) {
|
||||
//未登录
|
||||
location.href = '/user/login.html?originUrl=' + decodeURIComponent(location.href);
|
||||
|
||||
}else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
</script>
|
||||
</html>
|
232
templates/green/html/author/book_add.html
Normal file
@ -0,0 +1,232 @@
|
||||
<!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">
|
||||
<head>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
|
||||
<title>作家管理系统-小说精品屋</title>
|
||||
<link rel="stylesheet" href="/css/base.css?v=1"/>
|
||||
<link rel="stylesheet" href="/css/user.css"/>
|
||||
<style type="text/css">
|
||||
.opacity{-khtml-opacity:0.0;-moz-opacity:0.0;filter:alpha(opacity=0);filter:"alpha(opacity=0)";opacity:0.0; filter: progid:DXImageTransform.Microsoft.Alpha(opacity=0);/*兼容ie8及以下*/}
|
||||
</style>
|
||||
</head>
|
||||
</head>
|
||||
<body class="">
|
||||
|
||||
<div class="header">
|
||||
<div class="mainNav" id="mainNav">
|
||||
<div class="box_center cf"
|
||||
style="text-align: center;height: 44px;line-height: 48px;color: #fff;font-size: 16px;">
|
||||
|
||||
小说精品屋作家管理
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="main box_center cf">
|
||||
<div class="userBox cf">
|
||||
<div class="my_l">
|
||||
|
||||
<ul class="log_list">
|
||||
<li><a class="link_4 on" href="/author/index.html">小说管理</a></li>
|
||||
<li><a class="link_2 " href="/author/author_income_detail.html">稿费收入</a></li>
|
||||
<!--<li><a class="link_1 " href="/user/userinfo.html">批量小说爬取</a></li>
|
||||
<li><a class="link_4 " href="/user/favorites.html">单本小说爬取</a></li>-->
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<div class="my_r">
|
||||
<div class="my_bookshelf">
|
||||
|
||||
<div class="userBox cf">
|
||||
<form method="post" action="./register.html" id="form2">
|
||||
<div class="user_l">
|
||||
<div></div>
|
||||
<h3>小说基本信息填写</h3>
|
||||
<ul class="log_list">
|
||||
<li><span id="LabErr"></span></li>
|
||||
<b>作品方向:</b>
|
||||
<li><select class="s_input" id="workDirection" name="workDirection">
|
||||
<option value="0">男频</option>
|
||||
<option value="1">女频</option>
|
||||
</select>
|
||||
</li>
|
||||
<b>分类:</b>
|
||||
<li><select class="s_input" id="catId" name="catId">
|
||||
<option value="1">玄幻奇幻</option>
|
||||
<option value="2">武侠仙侠</option>
|
||||
<option value="3">都市言情</option>
|
||||
<option value="4">历史军事</option>
|
||||
<option value="5">科幻灵异</option>
|
||||
<option value="6">网游竞技</option>
|
||||
<option value="7">女生频道</option>
|
||||
</select></li>
|
||||
<input type="hidden" id="catName" name="catName" value="玄幻奇幻"/>
|
||||
<b>小说名:</b>
|
||||
<li><input type="text" id="bookName" name="bookName" class="s_input" ></li>
|
||||
<b>小说封面:</b>
|
||||
<li style="position: relative">
|
||||
<input class="opacity" onchange="picChange()"
|
||||
type="file" id="file0" name="file"
|
||||
title="点击更换图片"
|
||||
style="z-index: 100;cursor: pointer;left: 0px; top: 0px; width: 100px; height: 130px; opacity: 0; position: absolute; "
|
||||
/>
|
||||
<img style="width:100px;height: 130px" id="picImage" src="/images/pic_upload.png" alt="">
|
||||
<input type="hidden" id="picUrl" name="picUrl" class="s_input" value="/images/default.gif"></li>
|
||||
<b>小说介绍:</b>
|
||||
|
||||
<li><textarea name="bookDesc" rows="5" cols="53" id="bookDesc"
|
||||
class="textarea"></textarea></li>
|
||||
|
||||
<li><input type="button" onclick="addBook()" name="btnRegister" value="提交"
|
||||
id="btnRegister" class="btn_red"></li>
|
||||
</ul>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<!--<div id="divData" class="updateTable">
|
||||
<table cellpadding="0" cellspacing="0">
|
||||
<thead>
|
||||
<tr>
|
||||
|
||||
<th class="name">
|
||||
爬虫源(已开启的爬虫源)
|
||||
</th>
|
||||
<th class="chapter">
|
||||
成功爬取数量(websocket实现)
|
||||
</th>
|
||||
<th class="time">
|
||||
目标爬取数量
|
||||
</th>
|
||||
<th class="goread">
|
||||
状态(正在运行,已停止)(一次只能运行一个爬虫源)
|
||||
</th>
|
||||
<th class="goread">
|
||||
操作(启动,停止)
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="bookShelfList">
|
||||
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="pageBox cf" id="shellPage">
|
||||
</div>
|
||||
</div>-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</body>
|
||||
<script src="/javascript/jquery-1.8.0.min.js" type="text/javascript"></script>
|
||||
<script src="/javascript/ajaxfileupload.js" type="text/javascript"></script>
|
||||
|
||||
<script src="/layui/layui.all.js" type="text/javascript"></script>
|
||||
<script src="/javascript/header.js" type="text/javascript"></script>
|
||||
<script src="/javascript/user.js" type="text/javascript"></script>
|
||||
<script src="/javascript/common.js" type="text/javascript"></script>
|
||||
<script language="javascript" type="text/javascript">
|
||||
|
||||
function picChange() {
|
||||
var file = $("#file0").val(); //文件名称
|
||||
if (file != "") {
|
||||
|
||||
if(checkPicUpload($("#file0")[0])) {
|
||||
$.ajaxFileUpload({
|
||||
url: "/file/picUpload", //用于文件上传的服务器端请求地址
|
||||
secureuri: false, //是否需要安全协议,一般设置为false
|
||||
fileElementId: "file0", //文件上传域的ID
|
||||
dataType: "json", //返回值类型 一般设置为json
|
||||
type: "post",
|
||||
success: function (data) { //服务器成功响应处理函数
|
||||
if (data.code == 200) {
|
||||
$("#picImage").attr("src", data.data);
|
||||
$("#picUrl").val(data.data);
|
||||
} else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
} else {
|
||||
alert("请选择上传文件!");
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
var lock = false;
|
||||
function addBook() {
|
||||
if(lock){
|
||||
return;
|
||||
}
|
||||
lock = true;
|
||||
|
||||
|
||||
|
||||
var bookName = $("#bookName").val();
|
||||
if(!bookName){
|
||||
$("#LabErr").html("小说名不能为空!");
|
||||
lock = false;
|
||||
return;
|
||||
}
|
||||
if(bookName.length > 20){
|
||||
$("#LabErr").html("小说名太长!");
|
||||
lock = false;
|
||||
return;
|
||||
}
|
||||
|
||||
var picUrl = $("#picUrl").val();
|
||||
if(!picUrl){
|
||||
$("#LabErr").html("封面图片不能为空!");
|
||||
lock = false;
|
||||
return;
|
||||
}
|
||||
|
||||
var bookDesc = $("#bookDesc").val();
|
||||
if(!bookDesc){
|
||||
$("#LabErr").html("简介不能为空!");
|
||||
lock = false;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/author/addBook",
|
||||
data: {'workDirection': $("#workDirection").val(),
|
||||
'catId':$("#catId").val(),'catName':$("#catId").find("option[value="+$("#catId").val()+"]").html(),
|
||||
'bookName':bookName,'picUrl':picUrl,'bookDesc':bookDesc},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
|
||||
window.location.href = '/author/index.html';
|
||||
|
||||
|
||||
} else {
|
||||
lock = false;
|
||||
$("#LabErr").html(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
lock = false;
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
</script>
|
||||
</html>
|
173
templates/green/html/author/content_add.html
Normal file
@ -0,0 +1,173 @@
|
||||
<!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">
|
||||
<head>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
|
||||
<title>作家管理系统-小说精品屋</title>
|
||||
<link rel="stylesheet" href="/css/base.css?v=1"/>
|
||||
<link rel="stylesheet" href="/css/user.css"/>
|
||||
</head>
|
||||
</head>
|
||||
<body class="">
|
||||
|
||||
<div class="header">
|
||||
<div class="mainNav" id="mainNav">
|
||||
<div class="box_center cf"
|
||||
style="text-align: center;height: 44px;line-height: 48px;color: #fff;font-size: 16px;">
|
||||
|
||||
小说精品屋作家管理
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="main box_center cf">
|
||||
<div class="userBox cf">
|
||||
<div class="my_l">
|
||||
|
||||
<ul class="log_list">
|
||||
<li><a class="link_4 on" href="/author/index.html">小说管理</a></li>
|
||||
<li><a class="link_2 " href="/author/author_income_detail.html">稿费收入</a></li>
|
||||
<!--<li><a class="link_1 " href="/user/userinfo.html">批量小说爬取</a></li>
|
||||
<li><a class="link_4 " href="/user/favorites.html">单本小说爬取</a></li>-->
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<div class="my_r">
|
||||
<div class="my_bookshelf">
|
||||
|
||||
<div class="userBox cf">
|
||||
<form method="post" action="./register.html" id="form2">
|
||||
<div class="user_l">
|
||||
<div></div>
|
||||
<h3>小说章节内容填写</h3>
|
||||
<ul class="log_list">
|
||||
<li><span id="LabErr"></span></li>
|
||||
<b>章节名:</b>
|
||||
<li><input type="text" id="bookIndex" name="bookIndex" class="s_input" ></li>
|
||||
<b>章节内容:</b><li id="contentLi">
|
||||
<textarea name="bookContent" rows="30" cols="80" id="bookContent"
|
||||
class="textarea"></textarea></li><br/>
|
||||
|
||||
<b>是否收费:</b>
|
||||
<li><input type="radio" name="isVip" value="0" checked >免费
|
||||
<input type="radio" name="isVip" value="1" >收费</li>
|
||||
|
||||
|
||||
<li style="margin-top: 10px"><input type="button" onclick="addBookContent()" name="btnRegister" value="提交"
|
||||
id="btnRegister" class="btn_red">
|
||||
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<!--<div id="divData" class="updateTable">
|
||||
<table cellpadding="0" cellspacing="0">
|
||||
<thead>
|
||||
<tr>
|
||||
|
||||
<th class="name">
|
||||
爬虫源(已开启的爬虫源)
|
||||
</th>
|
||||
<th class="chapter">
|
||||
成功爬取数量(websocket实现)
|
||||
</th>
|
||||
<th class="time">
|
||||
目标爬取数量
|
||||
</th>
|
||||
<th class="goread">
|
||||
状态(正在运行,已停止)(一次只能运行一个爬虫源)
|
||||
</th>
|
||||
<th class="goread">
|
||||
操作(启动,停止)
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="bookShelfList">
|
||||
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="pageBox cf" id="shellPage">
|
||||
</div>
|
||||
</div>-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</body>
|
||||
<script src="/javascript/jquery-1.8.0.min.js" type="text/javascript"></script>
|
||||
<script src="/layui/layui.all.js" type="text/javascript"></script>
|
||||
<script src="/javascript/header.js" type="text/javascript"></script>
|
||||
<script src="/javascript/user.js" type="text/javascript"></script>
|
||||
<script src="/javascript/common.js" type="text/javascript"></script>
|
||||
|
||||
<script language="javascript" type="text/javascript">
|
||||
|
||||
|
||||
var lock = false;
|
||||
function addBookContent() {
|
||||
|
||||
if(lock){
|
||||
return;
|
||||
}
|
||||
lock = true;
|
||||
|
||||
|
||||
var bookId = getSearchString("bookId");
|
||||
|
||||
|
||||
var indexName = $("#bookIndex").val();
|
||||
if(!indexName){
|
||||
$("#LabErr").html("章节名不能为空!");
|
||||
lock = false;
|
||||
return;
|
||||
}
|
||||
|
||||
var content = $("#bookContent").val();
|
||||
if(!content){
|
||||
$("#LabErr").html("章节内容不能为空!");
|
||||
lock = false;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
var isVip = $("input:checked[name=isVip]").val();
|
||||
|
||||
|
||||
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/author/addBookContent",
|
||||
data: {'bookId':bookId,'indexName':indexName,'content':content,'isVip':isVip},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
|
||||
window.location.href = '/author/index_list.html?bookId='+bookId;
|
||||
|
||||
|
||||
} else {
|
||||
lock = false;
|
||||
$("#LabErr").html(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
lock = false;
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
</script>
|
||||
</html>
|
209
templates/green/html/author/content_update.html
Normal file
@ -0,0 +1,209 @@
|
||||
<!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">
|
||||
<head>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
|
||||
<title>作家管理系统-小说精品屋</title>
|
||||
<link rel="stylesheet" href="/css/base.css?v=1"/>
|
||||
<link rel="stylesheet" href="/css/user.css"/>
|
||||
</head>
|
||||
</head>
|
||||
<body class="">
|
||||
|
||||
<div class="header">
|
||||
<div class="mainNav" id="mainNav">
|
||||
<div class="box_center cf"
|
||||
style="text-align: center;height: 44px;line-height: 48px;color: #fff;font-size: 16px;">
|
||||
|
||||
小说精品屋作家管理
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="main box_center cf">
|
||||
<div class="userBox cf">
|
||||
<div class="my_l">
|
||||
|
||||
<ul class="log_list">
|
||||
<li><a class="link_4 on" href="/author/index.html">作品管理</a></li>
|
||||
<li><a class="link_2 " href="/author/author_income_detail.html">稿费收入</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<div class="my_r">
|
||||
<div class="my_bookshelf">
|
||||
|
||||
<div class="userBox cf">
|
||||
<form method="post" action="./register.html" id="form2">
|
||||
<div class="user_l">
|
||||
<div></div>
|
||||
<h3>小说章节内容填写</h3>
|
||||
<ul class="log_list">
|
||||
<li><span id="LabErr"></span></li>
|
||||
<b>章节名:</b>
|
||||
<li><input type="text" id="bookIndex" name="bookIndex" class="s_input" ></li>
|
||||
<b>章节内容:</b>
|
||||
<li id="contentLi">
|
||||
<textarea name="bookContent" rows="30" cols="80" id="bookContent"
|
||||
class="textarea"></textarea>
|
||||
</li>
|
||||
<li style="margin-top: 10px"><input type="button" onclick="addBookContent()" name="btnRegister" value="提交"
|
||||
id="btnRegister" class="btn_red">
|
||||
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<!--<div id="divData" class="updateTable">
|
||||
<table cellpadding="0" cellspacing="0">
|
||||
<thead>
|
||||
<tr>
|
||||
|
||||
<th class="name">
|
||||
爬虫源(已开启的爬虫源)
|
||||
</th>
|
||||
<th class="chapter">
|
||||
成功爬取数量(websocket实现)
|
||||
</th>
|
||||
<th class="time">
|
||||
目标爬取数量
|
||||
</th>
|
||||
<th class="goread">
|
||||
状态(正在运行,已停止)(一次只能运行一个爬虫源)
|
||||
</th>
|
||||
<th class="goread">
|
||||
操作(启动,停止)
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="bookShelfList">
|
||||
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="pageBox cf" id="shellPage">
|
||||
</div>
|
||||
</div>-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</body>
|
||||
<script src="/javascript/jquery-1.8.0.min.js" type="text/javascript"></script>
|
||||
<script src="/layui/layui.all.js" type="text/javascript"></script>
|
||||
<script src="/javascript/header.js" type="text/javascript"></script>
|
||||
<script src="/javascript/user.js" type="text/javascript"></script>
|
||||
<script src="/javascript/common.js" type="text/javascript"></script>
|
||||
|
||||
<script language="javascript" type="text/javascript">
|
||||
|
||||
var bookId = getSearchString("bookId");
|
||||
var indexId = getSearchString("indexId");
|
||||
var indexName = decodeURI(decodeURI(getSearchString("indexName")));
|
||||
var isVip = getSearchString("isVip");
|
||||
|
||||
$("#bookIndex").val(indexName);
|
||||
if(isVip == 1){
|
||||
$("#contentLi").after("<b>是否收费:</b>\n" +
|
||||
" <li><input type=\"radio\" disabled name=\"isVip\" value=\"0\" >免费\n" +
|
||||
" <input type=\"radio\" disabled name=\"isVip\" value=\"1\" checked >收费</li><br/>");
|
||||
}else{
|
||||
$("#contentLi").after("<b>是否收费:</b>\n" +
|
||||
" <li><input type=\"radio\" disabled name=\"isVip\" value=\"0\" checked >免费\n" +
|
||||
" <input type=\"radio\" disabled name=\"isVip\" value=\"1\" >收费</li><br/>");
|
||||
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/author/queryIndexContent/"+indexId,
|
||||
data: {},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
|
||||
$("#bookContent").html(data.data);
|
||||
|
||||
|
||||
|
||||
} else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
lock = false;
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
var lock = false;
|
||||
function addBookContent() {
|
||||
|
||||
if(lock){
|
||||
return;
|
||||
}
|
||||
lock = true;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
var indexName = $("#bookIndex").val();
|
||||
if(!indexName){
|
||||
$("#LabErr").html("章节名不能为空!");
|
||||
lock = false;
|
||||
return;
|
||||
}
|
||||
|
||||
var content = $("#bookContent").val();
|
||||
if(!content){
|
||||
$("#LabErr").html("章节内容不能为空!");
|
||||
lock = false;
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/author/updateBookContent",
|
||||
data: {'indexId':indexId,'indexName':indexName,'content':content},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
|
||||
window.location.href = '/author/index_list.html?bookId='+bookId;
|
||||
|
||||
|
||||
} else {
|
||||
lock = false;
|
||||
$("#LabErr").html(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
lock = false;
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
</script>
|
||||
</html>
|
330
templates/green/html/author/index.html
Normal file
@ -0,0 +1,330 @@
|
||||
<!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">
|
||||
<head>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
|
||||
<title>作家管理系统-小说精品屋</title>
|
||||
<link rel="stylesheet" href="/css/base.css?v=1"/>
|
||||
<link rel="stylesheet" href="/css/user.css"/>
|
||||
<style type="text/css">
|
||||
.redBtn {
|
||||
padding: 5px;
|
||||
border-radius: 20px;
|
||||
border: 1px solid #3eaf7c;
|
||||
background: #3eaf7c;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
a.redBtn:hover {
|
||||
|
||||
color: #fff;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
</head>
|
||||
<body class="">
|
||||
|
||||
<div class="header">
|
||||
<div class="mainNav" id="mainNav">
|
||||
<div class="box_center cf"
|
||||
style="text-align: center;height: 44px;line-height: 48px;color: #fff;font-size: 16px;">
|
||||
|
||||
小说精品屋作家管理
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="main box_center cf">
|
||||
<div class="userBox cf">
|
||||
<div class="my_l">
|
||||
|
||||
<ul class="log_list">
|
||||
<li><a class="link_4 on" href="/author/index.html">小说管理</a></li>
|
||||
<li><a class="link_2 " href="/author/author_income_detail.html">稿费收入</a></li>
|
||||
<!-- <li><a class="link_1 " href="/user/userinfo.html">批量小说爬取</a></li>
|
||||
<li><a class="link_4 " href="/user/favorites.html">单本小说爬取</a></li>-->
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<div class="my_r">
|
||||
<div id="noContentDiv">
|
||||
<div class="tc" style="margin-top: 200px"><a href="/author/book_add.html" class="btn_red">创建作品</a></div>
|
||||
|
||||
</div>
|
||||
<div class="my_bookshelf" id="hasContentDiv" style="display: none">
|
||||
<div class="title cf">
|
||||
<h2 class="fl">小说列表</h2>
|
||||
<div class="fr"><a href="/author/book_add.html" class="btn_red">发布小说</a></div>
|
||||
</div>
|
||||
|
||||
<div id="divData" class="updateTable">
|
||||
<table cellpadding="0" cellspacing="0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="goread">
|
||||
书名
|
||||
</th>
|
||||
<th class="goread">
|
||||
分类
|
||||
</th>
|
||||
<th class="goread">
|
||||
点击量
|
||||
</th>
|
||||
<th class="goread">
|
||||
昨日订阅数
|
||||
</th>
|
||||
<th class="goread">
|
||||
更新时间
|
||||
</th>
|
||||
<th class="goread">
|
||||
总字数
|
||||
</th>
|
||||
<th class="goread">
|
||||
操作
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="bookList">
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="pageBox cf" id="shellPage">
|
||||
</div>
|
||||
</div>
|
||||
<!--<div id="divData" class="updateTable">
|
||||
<table cellpadding="0" cellspacing="0">
|
||||
<thead>
|
||||
<tr>
|
||||
|
||||
<th class="name">
|
||||
爬虫源(已开启的爬虫源)
|
||||
</th>
|
||||
<th class="chapter">
|
||||
成功爬取数量(websocket实现)
|
||||
</th>
|
||||
<th class="time">
|
||||
目标爬取数量
|
||||
</th>
|
||||
<th class="goread">
|
||||
状态(正在运行,已停止)(一次只能运行一个爬虫源)
|
||||
</th>
|
||||
<th class="goread">
|
||||
操作(启动,停止)
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="bookShelfList">
|
||||
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="pageBox cf" id="shellPage">
|
||||
</div>
|
||||
</div>-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</body>
|
||||
<script src="/javascript/jquery-1.8.0.min.js" type="text/javascript"></script>
|
||||
<script src="/javascript/ajaxfileupload.js" type="text/javascript"></script>
|
||||
<script src="/layui/layui.all.js" type="text/javascript"></script>
|
||||
<script src="/javascript/header.js" type="text/javascript"></script>
|
||||
<script src="/javascript/user.js" type="text/javascript"></script>
|
||||
<script src="/javascript/date.js" type="text/javascript"></script>
|
||||
<script src="/javascript/common.js" type="text/javascript"></script>
|
||||
|
||||
<script language="javascript" type="text/javascript">
|
||||
search(1, 5);
|
||||
|
||||
function search(curr, limit) {
|
||||
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/author/listBookByPage",
|
||||
data: {'curr': curr, 'limit': limit},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
var bookList = data.data.list;
|
||||
if (bookList.length > 0) {
|
||||
$("#hasContentDiv").css("display", "block");
|
||||
$("#noContentDiv").css("display", "none");
|
||||
var bookListHtml = "";
|
||||
for (var i = 0; i < bookList.length; i++) {
|
||||
var book = bookList[i];
|
||||
bookListHtml += (" <tr class=\"book_list\" vals=\"291\">\n" +
|
||||
/* " <td class=\"style bookclass\">\n" +
|
||||
" ["+(i+1)+"]\n" +
|
||||
" </td>\n" +*/
|
||||
|
||||
" <td style=\"position: relative\" class=\"goread\">\n" +
|
||||
"<input class=\"opacity\" onchange=\"picChange('" + book.id + "'," + i + ")\"\n" +
|
||||
" type=\"file\" id=\"file" + i + "\" name=\"file\"\n" +
|
||||
" title=\"点击上传图片\"\n" +
|
||||
" style=\"z-index: 100;cursor: pointer;left: 30px; top: 0px; width: 60px; height: 80px; opacity: 0; position: absolute; \"\n" +
|
||||
" />" +
|
||||
"<img width='50' height='70' src='" + book.picUrl + "'/><br/>" +
|
||||
" " + book.bookName + "</td>\n" +
|
||||
|
||||
|
||||
" <td class=\"goread\" >"
|
||||
+ book.catName + "</td>\n" +
|
||||
|
||||
" <td class=\"goread\" valsc=\"291|2037554|1\">"
|
||||
+ book.visitCount + "</td>\n" +
|
||||
|
||||
" <td class=\"goread\" valsc=\"291|2037554|1\">"
|
||||
+ book.yesterdayBuy + "</td>\n" +
|
||||
|
||||
" <td class=\"goread\">\n" +
|
||||
" " + new Date(Date.parse(book.lastIndexUpdateTime ? book.lastIndexUpdateTime : book.updateTime)).Format("yyyy-MM-dd hh:mm") + "更新\n" +
|
||||
" </td>\n" +
|
||||
|
||||
" <td class=\"goread\" valsc=\"291|2037554|1\">"
|
||||
+ book.wordCount + "</td>\n" +
|
||||
|
||||
" <td class=\"goread\" id='opt" + book.id + "'>" +
|
||||
"<a target='_blank' class='redBtn' href='/author/index_list.html?bookId=" + book.id + "'>章节管理 </a><br/>" +
|
||||
"<a target='_blank' href='/author/author_income_detail.html?bookId=" + book.id + "'>薪酬查询 </a><br/>" +
|
||||
"<a target='_blank' href='/book/" + book.id + ".html'>作品信息</a>" +
|
||||
"</td> </tr>");
|
||||
}
|
||||
$("#bookList").html(bookListHtml);
|
||||
|
||||
layui.use('laypage', function () {
|
||||
var laypage = layui.laypage;
|
||||
|
||||
//执行一个laypage实例
|
||||
laypage.render({
|
||||
elem: 'shellPage' //注意,这里的 test1 是 ID,不用加 # 号
|
||||
, count: data.data.total //数据总数,从服务端得到,
|
||||
, curr: data.data.pageNum
|
||||
, limit: data.data.pageSize
|
||||
, jump: function (obj, first) {
|
||||
|
||||
|
||||
//obj包含了当前分页的所有参数,比如:
|
||||
console.log(obj.curr); //得到当前页,以便向服务端请求对应页的数据。
|
||||
console.log(obj.limit); //得到每页显示的条数
|
||||
|
||||
|
||||
//首次不执行
|
||||
if (!first) {
|
||||
search(obj.curr, obj.limit);
|
||||
} else {
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
} else if (data.code == 1001) {
|
||||
//未登录
|
||||
location.href = '/user/login.html?originUrl=' + decodeURIComponent(location.href);
|
||||
|
||||
} else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
|
||||
function updateBookStatus(bookId, status) {
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/author/updateBookStatus",
|
||||
data: {'bookId': bookId, 'status': status == 0 ? 1 : 0},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
|
||||
location.reload();
|
||||
|
||||
|
||||
} else if (data.code == 1001) {
|
||||
//未登录
|
||||
location.href = '/user/login.html?originUrl=' + decodeURIComponent(location.href);
|
||||
|
||||
} else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
function picChange(bookId, i) {
|
||||
var file = $("#file" + i).val(); //文件名称
|
||||
if (file != "") {
|
||||
if (checkPicUpload($("#file" + i)[0])) {
|
||||
|
||||
$.ajaxFileUpload({
|
||||
url: "/file/picUpload", //用于文件上传的服务器端请求地址
|
||||
secureuri: false, //是否需要安全协议,一般设置为false
|
||||
fileElementId: "file" + i, //文件上传域的ID
|
||||
dataType: "json", //返回值类型 一般设置为json
|
||||
type: "post",
|
||||
success: function (data) { //服务器成功响应处理函数
|
||||
if (data.code == 200) {
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/author/updateBookPic",
|
||||
data: {'bookId': bookId, 'bookPic': data.data},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
|
||||
location.reload();
|
||||
|
||||
} else {
|
||||
lock = false;
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
lock = false;
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
|
||||
} else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
} else {
|
||||
alert("请选择上传文件!");
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
</script>
|
||||
</html>
|
330
templates/green/html/author/index_list.html
Normal file
@ -0,0 +1,330 @@
|
||||
<!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">
|
||||
<head>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
|
||||
<title>作家管理系统-小说精品屋</title>
|
||||
<link rel="stylesheet" href="/css/base.css?v=1"/>
|
||||
<link rel="stylesheet" href="/css/user.css"/>
|
||||
<style type="text/css">
|
||||
.redBtn {
|
||||
padding: 5px;
|
||||
border-radius: 20px;
|
||||
border: 1px solid #3eaf7c;
|
||||
background: #3eaf7c;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
a.redBtn:hover {
|
||||
|
||||
color: #fff;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
</head>
|
||||
<body class="">
|
||||
|
||||
<div class="header">
|
||||
<div class="mainNav" id="mainNav">
|
||||
<div class="box_center cf"
|
||||
style="text-align: center;height: 44px;line-height: 48px;color: #fff;font-size: 16px;">
|
||||
|
||||
小说精品屋作家管理
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="main box_center cf">
|
||||
<div class="userBox cf">
|
||||
<div class="my_l">
|
||||
|
||||
<ul class="log_list">
|
||||
<li><a class="link_4 on" href="/author/index.html">作品管理</a></li>
|
||||
<li><a class="link_2 " href="/author/author_income_detail.html">稿费收入</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<div class="my_r">
|
||||
<div id="noContentDiv">
|
||||
<div class="tc" style="margin-top: 200px"><a href="javascript:addContent()" class="btn_red">新建章节</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="my_bookshelf" id="hasContentDiv" style="display: none">
|
||||
<div class="title cf">
|
||||
<h2 class="fl">章节列表</h2>
|
||||
<div class="fr"><a href="javascript:addContent()" class="btn_red">新建章节</a></div>
|
||||
</div>
|
||||
|
||||
<div id="divData" class="updateTable">
|
||||
<table cellpadding="0" cellspacing="0">
|
||||
<thead>
|
||||
<tr>
|
||||
<!-- <th class="style">
|
||||
序号
|
||||
</th>-->
|
||||
<th class="name">
|
||||
章节名
|
||||
</th>
|
||||
<th class="goread">
|
||||
更新时间
|
||||
</th>
|
||||
<th class="goread">
|
||||
是否收费
|
||||
</th>
|
||||
<th class="goread">
|
||||
操作
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="bookList">
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="pageBox cf" id="shellPage">
|
||||
</div>
|
||||
</div>
|
||||
<!--<div id="divData" class="updateTable">
|
||||
<table cellpadding="0" cellspacing="0">
|
||||
<thead>
|
||||
<tr>
|
||||
|
||||
<th class="name">
|
||||
爬虫源(已开启的爬虫源)
|
||||
</th>
|
||||
<th class="chapter">
|
||||
成功爬取数量(websocket实现)
|
||||
</th>
|
||||
<th class="time">
|
||||
目标爬取数量
|
||||
</th>
|
||||
<th class="goread">
|
||||
状态(正在运行,已停止)(一次只能运行一个爬虫源)
|
||||
</th>
|
||||
<th class="goread">
|
||||
操作(启动,停止)
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="bookShelfList">
|
||||
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="pageBox cf" id="shellPage">
|
||||
</div>
|
||||
</div>-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</body>
|
||||
<script src="/javascript/jquery-1.8.0.min.js" type="text/javascript"></script>
|
||||
<script src="/layui/layui.all.js" type="text/javascript"></script>
|
||||
<script src="/javascript/header.js" type="text/javascript"></script>
|
||||
<script src="/javascript/user.js" type="text/javascript"></script>
|
||||
<script src="/javascript/date.js" type="text/javascript"></script>
|
||||
<script src="/javascript/common.js" type="text/javascript"></script>
|
||||
|
||||
<script language="javascript" type="text/javascript">
|
||||
|
||||
var bookId = getSearchString("bookId");
|
||||
|
||||
var indexCount = 0;
|
||||
|
||||
search(1, 5);
|
||||
|
||||
function search(curr, limit) {
|
||||
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/book/queryIndexList",
|
||||
data: {'bookId': bookId, 'curr': curr, 'limit': limit, 'orderBy': 'index_num desc'},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
var bookList = data.data.list;
|
||||
if (bookList.length > 0) {
|
||||
indexCount = bookList.length;
|
||||
$("#hasContentDiv").css("display", "block");
|
||||
$("#noContentDiv").css("display", "none");
|
||||
var bookListHtml = "";
|
||||
for (var i = 0; i < bookList.length; i++) {
|
||||
var book = bookList[i];
|
||||
bookListHtml += (" <tr class=\"book_list\" vals=\"291\">\n" +
|
||||
/* " <td class=\"style bookclass\">\n" +
|
||||
" ["+(i+1)+"]\n" +
|
||||
" </td>\n" +*/
|
||||
|
||||
" <td id='name" + book.id + "' class=\"name\">\n" +
|
||||
" " + book.indexName + "</td>\n" +
|
||||
|
||||
|
||||
" <td class=\"goread\">\n" +
|
||||
" " + new Date(Date.parse(book.updateTime)).Format("yyyy-MM-dd hh:mm") + "<br/>更新\n" +
|
||||
" </td>\n" +
|
||||
|
||||
" <td class=\"goread\" valsc=\"291|2037554|1\">"
|
||||
+ (book.isVip == 1 ? '收费' : '免费') + "</td>\n" +
|
||||
|
||||
" <td class=\"goread\" id='opt" + book.id + "'>" +
|
||||
"<a class='redBtn' href='javascript:updateIndex(\"" + book.id + "\"," + book.isVip + ")'>修改 </a><br/>" +
|
||||
"<a href='javascript:deleteIndex(\"" + book.id + "\")'>删除 </a><br/>" +
|
||||
"</td> </tr>");
|
||||
}
|
||||
$("#bookList").html(bookListHtml);
|
||||
|
||||
layui.use('laypage', function () {
|
||||
var laypage = layui.laypage;
|
||||
|
||||
//执行一个laypage实例
|
||||
laypage.render({
|
||||
elem: 'shellPage' //注意,这里的 test1 是 ID,不用加 # 号
|
||||
, count: data.data.total //数据总数,从服务端得到,
|
||||
, curr: data.data.pageNum
|
||||
, limit: data.data.pageSize
|
||||
, jump: function (obj, first) {
|
||||
|
||||
|
||||
//obj包含了当前分页的所有参数,比如:
|
||||
console.log(obj.curr); //得到当前页,以便向服务端请求对应页的数据。
|
||||
console.log(obj.limit); //得到每页显示的条数
|
||||
|
||||
|
||||
//首次不执行
|
||||
if (!first) {
|
||||
search(obj.curr, obj.limit);
|
||||
} else {
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
} else if (data.code == 1001) {
|
||||
//未登录
|
||||
location.href = '/user/login.html?originUrl=' + decodeURIComponent(location.href);
|
||||
|
||||
} else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
function addContent() {
|
||||
location.href = "/author/content_add.html?indexCount=" + indexCount + "&bookId=" + bookId;
|
||||
|
||||
}
|
||||
|
||||
function updateIndex(indexId, isVip) {
|
||||
|
||||
var indexName = $.trim($("#name" + indexId).text());
|
||||
|
||||
|
||||
location.href = "/author/content_update.html?bookId=" + bookId
|
||||
+ "&indexId=" + indexId
|
||||
+ "&indexName=" + encodeURI(encodeURI(indexName))
|
||||
+ "&isVip=" + isVip;
|
||||
|
||||
|
||||
/*
|
||||
var indexName = $("#name"+indexId).text();
|
||||
|
||||
var htmlStr = "<input type=\"text\" value=\""+$.trim(indexName)+"\">";
|
||||
|
||||
$("#name"+indexId).html(htmlStr);
|
||||
$("#name"+indexId).find("input").focus();
|
||||
$("#name"+indexId).find("input").select();
|
||||
|
||||
$("#name"+indexId).find("input").keyup(function(event){
|
||||
if(event.keyCode ==13){
|
||||
$(this).blur();
|
||||
}
|
||||
});
|
||||
|
||||
$("#name"+indexId).find("input").blur(function () {
|
||||
var indexName = $(this).val();
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/author/updateIndexName",
|
||||
data: {'indexId':indexId,'indexName':indexName},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
|
||||
$("#name"+indexId).html(indexName);
|
||||
|
||||
|
||||
} else if (data.code == 1001) {
|
||||
//未登录
|
||||
location.href = '/user/login.html?originUrl=' + decodeURIComponent(location.href);
|
||||
|
||||
}else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
|
||||
});*/
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
function deleteIndex(indexId) {
|
||||
|
||||
layer.confirm('确认要删除吗?删除后数据无法找回!', {
|
||||
btn: ['确定', '取消']//按钮
|
||||
}, function (index) {
|
||||
|
||||
layer.close(index);
|
||||
$.ajax({
|
||||
type: "delete",
|
||||
url: "/author/deleteIndex/"+indexId,
|
||||
data: {},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
|
||||
location.reload();
|
||||
|
||||
|
||||
} else if (data.code == 1001) {
|
||||
//未登录
|
||||
location.href = '/user/login.html?originUrl=' + decodeURIComponent(location.href);
|
||||
|
||||
} else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
</script>
|
||||
</html>
|
169
templates/green/html/author/register.html
Normal file
@ -0,0 +1,169 @@
|
||||
|
||||
|
||||
<!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">
|
||||
<head id="Head1"><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>
|
||||
申请作者
|
||||
</title><link rel="stylesheet" type="text/css" href="/css/easyui.css" />
|
||||
<link href="/css/public.css" rel="stylesheet" type="text/css" />
|
||||
<script type="text/javascript" src="/javascript/jquery-1.8.0.min.js"></script>
|
||||
<script type="text/javascript" src="/javascript/jquery.easyui.min.js"></script>
|
||||
<script type="text/javascript" src="/javascript/easyui-lang-zh_CN.js"></script>
|
||||
<script src="/javascript/YT.js" type="text/javascript"></script>
|
||||
<style type="text/css">
|
||||
.ipage a
|
||||
{
|
||||
border: 1px dotted #cccccc;
|
||||
color: #555555;
|
||||
display: block;
|
||||
float: left;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
margin: 0 15px 0 0;
|
||||
text-align: center;
|
||||
width: 122px;
|
||||
}
|
||||
.ipage a:hover,.ahover
|
||||
{
|
||||
background-color: #fff; color: #f00!important; border:1px solid #f00!important
|
||||
}
|
||||
</style>
|
||||
<script src="/javascript/ycUtils.js" type="text/javascript"></script>
|
||||
</head>
|
||||
<body style="background-color: #444;">
|
||||
<div style="width: 800px; margin-left: auto; margin-right: auto; margin-top: 150px;">
|
||||
<form method="post" action="/author/register.html" id="form1" onsubmit="return $(this).form("validate");">
|
||||
<div id="main">
|
||||
<table width="100%" border="0" cellpadding="8" cellspacing="0" class="tableBasic" style="line-height:40px;">
|
||||
<tr>
|
||||
<td colspan="3" style="text-align: left;">
|
||||
<div style="padding-left: 15px; height: 40px; line-height: 40px;">
|
||||
我是网络小说写手,我要注册为小说精品屋签约作者:</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td align="right">邀请码:</td><td><input name="inviteCode" th:value="${author.inviteCode}" type="text" maxlength="12" id="TxtGetCode" class="easyui-validatebox inpMain" data-options="required:true" /></td>
|
||||
<td>
|
||||
<span class="notes"> *</span> 小说精品屋分配给作者的邀请码
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">
|
||||
作者笔名:
|
||||
</td>
|
||||
<td>
|
||||
<input name="penName" th:value="${author.penName}" type="text" maxlength="8" id="TxtNiceName" class="easyui-validatebox inpMain" data-options="required:true" validType="checkPenName" />
|
||||
|
||||
</td>
|
||||
<td>
|
||||
<span class="notes"> *</span> 长度为2到8位的中英文
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">
|
||||
手机号码:
|
||||
</td>
|
||||
<td>
|
||||
<input name="telPhone" th:value="${author.telPhone}" type="text" id="TxtMobile" class="easyui-validatebox inpMain" data-options="required:true" validType="chinaMobile" />
|
||||
</td>
|
||||
<td>
|
||||
<span class="notes"> *</span> 小说精品屋的编辑会通过这个号码与您联系
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">
|
||||
QQ或微信:
|
||||
</td>
|
||||
<td>
|
||||
<input name="chatAccount" th:value="${author.chatAccount}" type="text" id="TxtQQ" class="easyui-validatebox inpMain" data-options="required:true" />
|
||||
</td>
|
||||
<td>
|
||||
<span class="notes"> *</span> 小说精品屋的编辑会通过这个号码与您联系
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">
|
||||
电子邮箱:
|
||||
</td>
|
||||
<td>
|
||||
<input name="email" th:value="${author.email}" type="text" id="TxtEmail" class="easyui-validatebox inpMain w300" data-options="required:true" validType="email" />
|
||||
</td>
|
||||
<td>
|
||||
<span class="notes"> *</span> 长度为2到15位的中英文,数字
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="right">
|
||||
男女主角:
|
||||
</td>
|
||||
<td>
|
||||
<div>
|
||||
<ul class="ipage">
|
||||
<input type="hidden" name="workDirection" id="HidSexclass" /><!-- th:attr="class=${author.workDirection} == '0'? 'ahover':''"-->
|
||||
<a href="javascript:void(0);" val="0">男性主角选男频</a>
|
||||
<a href="javascript:void(0);" val="1">
|
||||
女性主角选女频</a>
|
||||
<div class="clear">
|
||||
</div>
|
||||
</ul>
|
||||
</div>
|
||||
</td>
|
||||
<td>
|
||||
<span class="notes"> *</span> 请选择作品方向
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</div>
|
||||
<table width="100%" border="0" cellpadding="8" cellspacing="0" class="tableBasic">
|
||||
<tr>
|
||||
<td>
|
||||
<div style="padding-left: 110px; margin-top: 10px; margin-bottom: 5px;">
|
||||
|
||||
<input type="submit" name="btnSubmit" value="立即开始您的作者生涯" id="btnSubmit" class="btnGray" />
|
||||
</div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<span id="LabErr" th:text="${LabErr}"></span>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<input type="hidden" name="HidUId" id="HidUId" value="1095" />
|
||||
</form>
|
||||
</div>
|
||||
<script language="javascript" type="text/javascript">
|
||||
|
||||
$(function () {
|
||||
$(".ipage a").click(function () {
|
||||
$(".ipage a").each(function () {
|
||||
$(this).removeClass("ahover");
|
||||
});
|
||||
$(this).addClass("ahover");
|
||||
$("#HidSexclass").val($(this).attr("val"));
|
||||
$("#btnSubmit").removeAttr("disabled");
|
||||
$("#btnSubmit").removeClass("btnGray");
|
||||
$("#btnSubmit").addClass("btn");
|
||||
|
||||
});
|
||||
|
||||
var sexClass = $("#HidSexclass").val();
|
||||
if (sexClass == 1 || sexClass == 2) {
|
||||
$(".ipage a").each(function () {
|
||||
$(this).removeClass("ahover");
|
||||
if (sexClass == $(this).attr("val")) {
|
||||
$(this).addClass("ahover");
|
||||
}
|
||||
});
|
||||
$("#btnSubmit").removeClass("btnGray");
|
||||
$("#btnSubmit").addClass("btn");
|
||||
}
|
||||
else {
|
||||
$("#btnSubmit").attr("disabled", "disabled");
|
||||
}
|
||||
});
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
190
templates/green/html/book/book_comment.html
Normal file
@ -0,0 +1,190 @@
|
||||
|
||||
|
||||
<!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">
|
||||
<head th:replace="common/header :: common_head(~{::title},~{::meta},~{::link},~{})">
|
||||
<title th:text="${book.bookName}+'作品评论区_'+${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 href="/css/main.css" rel="stylesheet" />
|
||||
<link href="/css/book.css" rel="stylesheet" />
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<input type="hidden" id="bookId" th:value="${book.id}"/>
|
||||
|
||||
<div th:replace="common/top :: top('')">
|
||||
</div>
|
||||
|
||||
<div class="main box_center cf mb50">
|
||||
<div class="channelBookContent cf">
|
||||
<!--left start-->
|
||||
<div class="wrap_left fl">
|
||||
<div class="wrap_bg">
|
||||
<div class="pad20">
|
||||
|
||||
<div class="bookComment">
|
||||
<div class="book_tit">
|
||||
<div class="fl">
|
||||
<h3>作品评论区</h3><span id="bookCommentTotal">(0条)</span>
|
||||
</div>
|
||||
<a class="fr" href="#txtComment">发表评论</a>
|
||||
</div>
|
||||
<div class="no_comment" id="noCommentPanel" style="display: none;">
|
||||
<img src="/images/no_comment.png" alt="" />
|
||||
<span class="block">暂无评论</span>
|
||||
</div>
|
||||
<div class="commentBar" id="commentPanel">
|
||||
|
||||
</div>
|
||||
<div class="pageBox cf mt15 mr10" id="commentPage">
|
||||
</div>
|
||||
|
||||
<div class="reply_bar" id="reply_bar">
|
||||
<div class="tit">
|
||||
<span class="fl font16">发表评论</span>
|
||||
<!--未登录状态下不可发表评论,显示以下链接-->
|
||||
<span class="fr black9" style="display:none; ">请先 <a class="orange" href="/user/login.html">登录</a><em class="ml10 mr10">|</em><a class="orange" href="/user/register.html">注册</a></span>
|
||||
</div>
|
||||
<textarea name="txtComment" rows="2" cols="20" id="txtComment" class="replay_text" placeholder="我来说两句..."></textarea>
|
||||
<div class="reply_btn">
|
||||
<span class="fl black9"><em class="ml5" id="emCommentNum">0/1000</em> 字</span>
|
||||
<span class="fr"><a class="btn_ora" href="javascript:void(0);" onclick="javascript:BookDetail.SaveComment(37,0,$('#txtComment').val());">发表</a></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--left end-->
|
||||
|
||||
<!--right start-->
|
||||
<div class="wrap_right fr">
|
||||
|
||||
|
||||
|
||||
<div class="wrap_inner author_info mb20">
|
||||
|
||||
<div class="author_head cf">
|
||||
<a href="javascript:void(0);" class="head"><img src="/images/author_head.png" alt="作者头像"
|
||||
id="authorLogoImg"/></a>
|
||||
<div class="msg">
|
||||
<span class="icon_qyzz">签约作家</span>
|
||||
<h4><a th:href="'javascript:searchByK(\''+${book.authorName}+'\')'"
|
||||
th:text="${book.authorName}"></a></h4>
|
||||
</div>
|
||||
</div>
|
||||
<div class="author_intro cf">
|
||||
<h4>作者有话说</h4>
|
||||
<div class="intro_txt" id="authorNote">
|
||||
亲亲们,你们的支持是我最大的动力!求点击、求推荐、求书评哦!
|
||||
</div>
|
||||
</div>
|
||||
<!--如果作者没有其他作品就下方代码整个不显示-->
|
||||
|
||||
|
||||
</div>
|
||||
<!--作者专栏e-->
|
||||
<script type="text/javascript">
|
||||
var authorUId=8;
|
||||
if(authorUId==0)
|
||||
{$("#authorPanel").hide();}
|
||||
else
|
||||
{
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<!--right end-->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div th:replace="common/footer :: footer">
|
||||
</div>
|
||||
<div th:replace="common/js :: js"></div>
|
||||
<script src="/javascript/bookdetail.js" type="text/javascript"></script>
|
||||
<script language="javascript" type="text/javascript">
|
||||
$('#txtComment').on('input propertychange', function () {
|
||||
var count = $(this).val().length;
|
||||
$('#emCommentNum').html(count + "/1000");
|
||||
if (count > 1000) {
|
||||
$('#txtComment').val($('#txtComment').val().substring(0, 1000));
|
||||
}
|
||||
});
|
||||
searchComments(1, 20);
|
||||
|
||||
function searchComments(curr, limit) {
|
||||
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/book/listCommentByPage",
|
||||
data: {'bookId': $("#bookId").val(),'curr':curr,'limit':limit},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
var commentList = data.data.list;
|
||||
if (commentList.length > 0) {
|
||||
$("#bookCommentTotal").html("("+data.data.total+"条)");
|
||||
var commentListHtml = "";
|
||||
for (var i = 0; i < commentList.length; i++) {
|
||||
var comment = commentList[i];
|
||||
commentListHtml += ("<div class=\"comment_list cf\">" +
|
||||
"<div class=\"user_heads fl\" vals=\"389\">" +
|
||||
"<img src=\""+(comment.createUserPhoto ? comment.createUserPhoto : '/images/man.png')+"\" class=\"user_head\" alt=\"\">" +
|
||||
"<span class=\"user_level1\" style=\"display: none;\">见习</span></div>" +
|
||||
"<ul class=\"pl_bar fr\">\t\t\t<li class=\"name\">"+(comment.createUserName.substr(0, 4) + "****" + comment.createUserName.substr(comment.createUserName.length - 3, 3))+"</li><li class=\"dec\">" +
|
||||
comment.commentContent+
|
||||
"</li><li class=\"other cf\">" +
|
||||
"<span class=\"time fl\">"+comment.createTime+"</span>" +
|
||||
"<span class=\"fr\"><a href=\"javascript:void(0);\" onclick=\"javascript:BookDetail.AddAgreeTotal(77,this);\" class=\"zan\" style=\"display: none;\">赞<i class=\"num\">(0)</i></a>" +
|
||||
"</span></li>\t\t</ul>\t</div>");
|
||||
}
|
||||
$("#commentPanel").html(commentListHtml);
|
||||
|
||||
layui.use('laypage', function () {
|
||||
var laypage = layui.laypage;
|
||||
|
||||
//执行一个laypage实例
|
||||
laypage.render({
|
||||
elem: 'commentPage' //注意,这里的 test1 是 ID,不用加 # 号
|
||||
, count: data.data.total //数据总数,从服务端得到,
|
||||
, curr: data.data.pageNum
|
||||
, limit: data.data.pageSize
|
||||
, jump: function (obj, first) {
|
||||
|
||||
|
||||
//obj包含了当前分页的所有参数,比如:
|
||||
console.log(obj.curr); //得到当前页,以便向服务端请求对应页的数据。
|
||||
console.log(obj.limit); //得到每页显示的条数
|
||||
|
||||
|
||||
//首次不执行
|
||||
if (!first) {
|
||||
searchComments(obj.curr, obj.limit);
|
||||
} else {
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
} else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
401
templates/green/html/book/book_content.html
Normal file
@ -0,0 +1,401 @@
|
||||
<!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"/>
|
||||
|
||||
</head>
|
||||
<link href="/layui/css/layui.css" rel="stylesheet"/>
|
||||
<style type="text/css">
|
||||
.screen_toolbar {
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
left: 0px;
|
||||
bottom: 0px;
|
||||
text-align: center;
|
||||
z-index: 100;
|
||||
}
|
||||
|
||||
</style>
|
||||
<div th:replace="common/js :: js"></div>
|
||||
<script src="/javascript/bookdetail.js" type="text/javascript"></script>
|
||||
<script type="text/javascript">
|
||||
BookDetail.SetReadFontFamilyClear(0);
|
||||
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"
|
||||
ondragstart="return false" onbeforecopy="return false" oncopy="document.selection.empty()"
|
||||
onselect="document.selection.empty()">
|
||||
|
||||
<input type="hidden" id="bookId" th:value="${book.id}"/>
|
||||
<input type="hidden" id="bookName" th:value="${book.bookName}"/>
|
||||
<input type="hidden" id="preIndexName" th:value="${bookIndex.indexName}"/>
|
||||
|
||||
<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>
|
||||
|
||||
<div id="showDetail">
|
||||
|
||||
<div class="readBody cf">
|
||||
<div class="readMain cf">
|
||||
<div class="read_menu">
|
||||
<div class="menu_left" style="">
|
||||
<ul>
|
||||
<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 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>
|
||||
<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="评论">
|
||||
<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>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="readWrap">
|
||||
<div class="bookNav">
|
||||
<a href="/">首页 </a>> <a th:href="'/book/bookclass.html?c='+${book.catId}"
|
||||
th:text="${book.catName}">
|
||||
</a>> <a th:href="'/book/'+${book.id}+'.html'" th:utext="${book.bookName}">
|
||||
|
||||
</a>
|
||||
</div>
|
||||
<div id="readcontent">
|
||||
<div class="textbox cf">
|
||||
|
||||
<div class="book_title">
|
||||
<h1 th:utext="${bookIndex.indexName}">
|
||||
</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>
|
||||
</div>
|
||||
</div>
|
||||
<div class="txtwrap" th:if="${needBuy}">
|
||||
<div id="showReading" class="readBox" style="font-size: 16px; font-family: microsoft yahei">
|
||||
<p>
|
||||
|
||||
</p>
|
||||
|
||||
<div class="pc_bar" style="display: none;">
|
||||
<a href="javascript:void(0);" class="icon_pc"
|
||||
onclick="javascript:uFans.startSupportRead();">
|
||||
<span><i class="icon_yb"></i><em>捧场</em></span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div id="showBooking" class="orderBox">
|
||||
<h3>此章为VIP章节,需要订阅后才能继续阅读</h3>
|
||||
<form method="post" action="./2052117.html?bid=302&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>
|
||||
|
||||
</ul>
|
||||
<input type="hidden" name="HidCId" id="HidCId" value="2052117">
|
||||
<input type="hidden" name="HidBId" id="HidBId" value="302">
|
||||
<input type="hidden" name="HidCRank" id="HidCRank" value="49">
|
||||
</form>
|
||||
</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 class="pc_bar" style="display: none;">
|
||||
<a href="javascript:void(0);" class="icon_pc"
|
||||
onclick="javascript:uFans.startSupportRead();">
|
||||
<span><i class="icon_yb"></i><em>捧场</em></span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</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>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="readPopup qrBox" style="display: none">
|
||||
<a class="closePopup" href="javascript:void(0);" onclick="javascript:$('.maskBox,.qrBox').hide();"></a>
|
||||
<div class="popupTit">
|
||||
<h3>手机阅读</h3>
|
||||
</div>
|
||||
<div class="qrList">
|
||||
<ul>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="readPopup setupBox" style="display: none;">
|
||||
<a class="closePopup" href="javascript:void(0);" onclick="javascript:$('.maskBox,.setupBox').hide();"></a>
|
||||
<div class="popupTit">
|
||||
<h3>设置</h3>
|
||||
</div>
|
||||
<div class="setupList">
|
||||
<ul>
|
||||
<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>
|
||||
<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>
|
||||
<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>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="maskBox" style="display: none">
|
||||
</div>
|
||||
<div id="showError">
|
||||
<span id="LabErrorStatus"></span>
|
||||
</div>
|
||||
|
||||
<div class="maskBox" style="display: none" onclick="javascript:uFans.closeBox();"></div>
|
||||
<div class="readPopup pcBox" style="display: none" id="showPC"></div>
|
||||
<div class="readPopup flowerBox" style="display: none" id="showFlower"></div>
|
||||
<div class="readPopup newsTipBox" style="display: none;" id="showNote"></div>
|
||||
|
||||
<!--
|
||||
<div id="screenInput" class="screen_toolbar" >
|
||||
<div style="height: 5px" class="layui-col-xs2 layui-col-sm3 layui-col-md4 layui-col-lg4"></div>
|
||||
<div class="layui-col-xs6 layui-col-sm4 layui-col-md4 layui-col-lg4">
|
||||
<input type="text" id="screenBulletText" required lay-verify="required" placeholder="请输入弹幕内容,右下角开关可控制弹幕是否开启" autocomplete="off"
|
||||
class="layui-input">
|
||||
|
||||
</div>
|
||||
<div class="layui-col-xs2 layui-col-sm1 layui-col-md1 layui-col-lg1">
|
||||
<button class="layui-btn layui-btn-danger send">发送</button>
|
||||
</div>
|
||||
</div>
|
||||
<form id="screenSwitch" class="layui-form">
|
||||
<div class="layui-form-item" style="position: fixed;right: 0px;bottom: 100px" title="弹幕开关">
|
||||
<!– <label class="layui-form-label" style="opacity:0.5;font-weight: bold;color: red;">弹幕</label>–>
|
||||
<div class="layui-input-block">
|
||||
<input class="clear" type="checkbox" name="switch" lay-skin="switch">
|
||||
</div>
|
||||
</div>
|
||||
</form>-->
|
||||
|
||||
<script language="javascript" type="text/javascript">
|
||||
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);
|
||||
BookDetail.reShowCover();
|
||||
}
|
||||
if (fontNum) {
|
||||
BookDetail.SetReadFontFamily(fontNum);
|
||||
}
|
||||
if (colorNum) {
|
||||
BookDetail.SetBackUpColor(colorNum);
|
||||
if (colorNum == 6) {
|
||||
$(".logo img").attr("src", logoDark);
|
||||
}
|
||||
}
|
||||
//查询是否在书架
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/user/queryIsInShelf",
|
||||
data: {'bookId': $("#bookId").val()},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
if (data.data) {
|
||||
$("#cFavs").html("<a class=\"ico_shelf\" href=\"javascript:void(0);\"><b>已收藏</b></a>");
|
||||
}
|
||||
//添加阅读记录
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/user/addReadHistory",
|
||||
data: {'bookId': $("#bookId").val(), 'preContentId': $("#preContentId").val()},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
|
||||
},
|
||||
error: function () {
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
} else if (data.code == 1001) {
|
||||
//未登录
|
||||
|
||||
} else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
var bookId = $("#bookId").val();
|
||||
var indexId = $("#preContentId").val();
|
||||
var preIndexId = $("#preIndexId").val();
|
||||
var nextIndexId = $("#nextIndexId").val();
|
||||
$(function () {
|
||||
BookDetail.GetReadSet(bookId, indexId, preIndexId, nextIndexId, 1);
|
||||
$(".ico_setup").click(function () {
|
||||
|
||||
$(".maskBox,.setupBox").show();
|
||||
});
|
||||
$(".ico_phone").click(function () {
|
||||
$(".maskBox,.qrBox").show();
|
||||
});
|
||||
|
||||
$(window).scroll(function () {
|
||||
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")
|
||||
}
|
||||
|
||||
if (vbottom < 150) {
|
||||
$(".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", logoDark);
|
||||
}
|
||||
$(".readTheme a").click(function () {
|
||||
$(".logo img").attr("src", logo);
|
||||
})
|
||||
$("#setup_color_night").click(function () {
|
||||
$(".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 {
|
||||
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()
|
||||
},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
location.reload();
|
||||
|
||||
|
||||
} else if (data.code == 1001) {
|
||||
//未登录
|
||||
location.href = '/user/login.html?originUrl=' + decodeURIComponent(location.href);
|
||||
|
||||
} else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
$.post("/book/addVisitCount", {"bookId": $("#bookId").val()}, function () {
|
||||
});
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
353
templates/green/html/book/book_detail.html
Normal file
@ -0,0 +1,353 @@
|
||||
<!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">
|
||||
<head th:replace="common/header :: common_head(~{::title},~{::meta},~{::link},~{})">
|
||||
<title th:utext="${book.bookName}+'_'+${book.authorName}+'_'+${book.bookName}+'txt下载'+'_'+${book.bookName}+'无弹窗_'+${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}+'小说阅读,'+${book.bookName}+'由作家'+${book.authorName}+'创作,'+${application.website.name}+'提供'+${book.bookName}+'首发最新章节及txt下载,'+${book.bookName}+'最新更新章节,精彩尽在'+${application.website.name}+'。'"/>
|
||||
<link rel="stylesheet" href="/css/main.css"/>
|
||||
<link href="/css/book.css?v=2019" rel="stylesheet"/>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<input type="hidden" id="lastBookIndexId" th:value="${book.lastIndexId}"/>
|
||||
<input type="hidden" id="bookCatId" th:value="${book.catId}"/>
|
||||
<input type="hidden" id="bookId" th:value="${book.id}"/>
|
||||
<input type="hidden" id="preContentId" th:value="${firstBookIndexId}"/>
|
||||
|
||||
<div th:replace="common/top :: top('')">
|
||||
</div>
|
||||
|
||||
<div class="main box_center cf mb50">
|
||||
<div class="nav_sub">
|
||||
<a href="/" th:text="${application.website.name}"></a>><a th:href="'/book/bookclass.html?c='+${book.catId}" th:text="${book.catName}"></a>><a
|
||||
th:href="'/book/'+${book.id}+'.html'" th:utext="${book.bookName}"></a>
|
||||
</div>
|
||||
<div class="channelWrap channelBookInfo cf">
|
||||
<div class="bookCover cf">
|
||||
<a th:href="${book.picUrl}" class="book_cover"><img class="cover" th:src="${book.picUrl}"
|
||||
th:attr="alt=${book.bookName}"/></a>
|
||||
<div class="book_info">
|
||||
<div class="tit">
|
||||
<h1 th:utext="${book.bookName}"></h1><!--<i class="vip_b">VIP</i>--><a class="author"
|
||||
th:utext="${book.authorName}+' 著'"></a>
|
||||
</div>
|
||||
<ul class="list">
|
||||
<li><span class="item">类别:<em th:text="${book.catName}"></em></span>
|
||||
<span class="item" th:switch="${book.bookStatus}">状态:<em th:case="'0'">连载中</em><em th:case="*">已完结</em></span>
|
||||
<span class="item">总点击:<em id="cTotal" th:text="${book.visitCount}"></em></span>
|
||||
<span class="item">总字数:<em th:text="${book.wordCount}"></em></span></li>
|
||||
</ul>
|
||||
<div class="intro_txt">
|
||||
<p th:utext="${book.bookDesc}"></p>
|
||||
<a class="icon_hide" href="javascript:void(0)" onclick=""><i></i>收起</a>
|
||||
<a class="icon_show" href="javascript:void(0)" onclick=""><i></i>展开</a>
|
||||
</div>
|
||||
<div class="btns" id="optBtn">
|
||||
<a th:href="'/book/'+${book.id}+'/'+${firstBookIndexId}+'.html'" class="btn_ora">点击阅读</a>
|
||||
<span id="cFavs"><a href="javascript:void(0);" class="btn_ora_white btn_addsj"
|
||||
onclick="javascript:BookDetail.AddFavorites(37,0,0);">加入书架</a>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="channelBookContent cf">
|
||||
<!--left start-->
|
||||
<div class="wrap_left fl">
|
||||
<div class="wrap_bg">
|
||||
|
||||
<!--章节目录 start-->
|
||||
<div class="pad20_nobt">
|
||||
<div class="bookChapter">
|
||||
<div class="book_tit">
|
||||
<div class="fl">
|
||||
<h3>最新章节</h3><span id="bookIndexCount">(0章)</span></div>
|
||||
<a class="fr" th:href="'/book/indexList-'+${book.id}+'.html'">全部目录</a>
|
||||
</div>
|
||||
<ul class="list cf">
|
||||
<li>
|
||||
<span class="fl font16"> <a th:href="'/book/'+${book.id}+'/'+${book.lastIndexId}+'.html'" th:utext="${book.lastIndexName}"><!--<i class="vip">VIP</i>--></a></span>
|
||||
<span class="black9 fr"
|
||||
th:text="'更新时间:'+${#dates.format(book.lastIndexUpdateTime, 'yy/MM/dd HH:mm:ss')}"></span>
|
||||
</li>
|
||||
<li class="zj_yl" id="lastBookContent"> </li>
|
||||
<!--此处是该章节预览,截取最前面的42个字-->
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<!--章节目录 end-->
|
||||
|
||||
<!--作品评论区 start-->
|
||||
<div class="pad20">
|
||||
<div class="bookComment">
|
||||
<div class="book_tit">
|
||||
<div class="fl">
|
||||
<h3>作品评论区</h3><span id="bookCommentTotal" th:text="'('+${bookCommentPageBean.total}+'条)'"></span>
|
||||
</div>
|
||||
<a class="fr" href="#txtComment">发表评论</a>
|
||||
</div>
|
||||
<div class="no_comment" id="noCommentPanel" th:style="${bookCommentPageBean.total > 0}? 'display:none'" >
|
||||
<img src="/images/no_comment.png" alt=""/>
|
||||
<span class="block">暂无评论</span>
|
||||
</div>
|
||||
<div class="commentBar" id="commentPanel" th:style="${bookCommentPageBean.total == 0}? 'display:none'">
|
||||
<div th:each="comment: ${bookCommentPageBean.list}" class="comment_list cf"><div class="user_heads fl" vals="389"><img th:src="${comment.createUserPhoto}?${comment.createUserPhoto}:'/images/man.png'" class="user_head" alt=""><span class="user_level1" style="display: none;">见习</span></div><ul class="pl_bar fr"> <li class="name" th:text="${#strings.substring(comment.createUserName,0,4)}+'****'+${#strings.substring(comment.createUserName,#strings.length(comment.createUserName)-3,#strings.length(comment.createUserName))}"></li><li class="dec" th:utext="${comment.commentContent}"></li><li class="other cf"><span class="time fl" th:text="${#calendars.format(comment.createTime, 'yyyy-MM-dd HH:mm:ss')}"></span><span class="fr"><a href="javascript:void(0);" onclick="javascript:BookDetail.AddAgreeTotal(77,this);" class="zan" style="display: none;">赞<i class="num">(0)</i></a></span></li> </ul> </div>
|
||||
|
||||
</div>
|
||||
|
||||
<!--无评论时此处隐藏-->
|
||||
<div class="more_bar" id="moreCommentPanel" th:style="${bookCommentPageBean.total == 0}? 'display:none'">
|
||||
<a th:href="'/book/comment-'+${book.id}+'.html'">查看全部评论></a>
|
||||
</div>
|
||||
|
||||
<div class="reply_bar" id="reply_bar">
|
||||
<div class="tit">
|
||||
<span class="fl font16">发表评论</span>
|
||||
<!--未登录状态下不可发表评论,显示以下链接-->
|
||||
<span class="fr black9" style="display:none; ">请先 <a class="orange"
|
||||
href="/user/login.html">登录</a><em
|
||||
class="ml10 mr10">|</em><a class="orange"
|
||||
href="/user/register.html">注册</a></span>
|
||||
</div>
|
||||
<textarea name="txtComment" rows="2" cols="20" id="txtComment" class="replay_text"
|
||||
placeholder="我来说两句..."></textarea>
|
||||
<div class="reply_btn">
|
||||
<span class="fl black9"><em class="ml5" id="emCommentNum">0/1000</em> 字</span>
|
||||
<span class="fr"><a class="btn_ora" href="javascript:void(0);"
|
||||
onclick="javascript:BookDetail.SaveComment(37,0,$('#txtComment').val());">发表</a></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!--作品评论区 end-->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!--left end-->
|
||||
|
||||
<!--right start-->
|
||||
<div class="wrap_right fr">
|
||||
|
||||
|
||||
<script src="/javascript/authorinfo.js?uid=8" type="text/javascript"></script>
|
||||
<!--作者专栏s-->
|
||||
<div class="wrap_inner author_info mb20">
|
||||
|
||||
<div class="author_head cf">
|
||||
<a href="javascript:void(0);" class="head"><img src="/images/author_head.png" alt="作者头像"
|
||||
id="authorLogoImg"/></a>
|
||||
<div class="msg">
|
||||
<span class="icon_qyzz">签约作家</span>
|
||||
<h4><a th:href="'javascript:searchByK(\''+${book.authorName}+'\')'"
|
||||
th:utext="${book.authorName}"></a></h4>
|
||||
</div>
|
||||
</div>
|
||||
<div class="author_intro cf">
|
||||
<h4>作者有话说</h4>
|
||||
<div class="intro_txt" id="authorNote">
|
||||
亲亲们,你们的支持是我最大的动力!求点击、求推荐、求书评哦!
|
||||
</div>
|
||||
</div>
|
||||
<!--如果作者没有其他作品就下方代码整个不显示-->
|
||||
|
||||
|
||||
</div>
|
||||
<!--作者专栏e-->
|
||||
<script type="text/javascript">
|
||||
var authorUId = 8;
|
||||
if (authorUId == 0) {
|
||||
$("#authorPanel").hide();
|
||||
} else {
|
||||
}
|
||||
</script>
|
||||
|
||||
<div id="RelateBookOther" class="wrap_inner wrap_right_cont mb20">
|
||||
<div class="title cf">
|
||||
<h3 class="on">同类推荐</h3>
|
||||
</div>
|
||||
<div class="tj_bar">
|
||||
<ul id="recBookList">
|
||||
<li th:each="book : ${recBooks}">
|
||||
<div class="book_intro">
|
||||
<div class="cover">
|
||||
<a th:href="'/book/'+${book.id}+'.html'"><img th:src="${book.picUrl}" th:alt="${book.bookName}"></a>
|
||||
</div>
|
||||
<div class="dec">
|
||||
<a class="book_name" th:href="'/book/'+${book.id}+'.html'" th:text="${book.bookName}"></a>
|
||||
<a class="txt" th:href="'/book/'+${book.id}+'.html'" th:utext="${book.bookDesc}">
|
||||
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--right end-->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div th:replace="common/footer :: footer">
|
||||
</div>
|
||||
<div th:replace="common/js :: js"></div>
|
||||
<script src="/javascript/bookdetail.js?v=1.1" type="text/javascript"></script>
|
||||
<script src="/javascript/ufans.js?v=1" type="text/javascript"></script>
|
||||
|
||||
|
||||
<div class="maskBox" style="display:none" onclick="javascript:uFans.closeBox();"></div>
|
||||
<div class="readPopup pcBox" style="display:none" id="showPC"></div>
|
||||
<div class="readPopup flowerBox" style="display:none" id="showFlower"></div>
|
||||
<div class="readPopup newsTipBox" style="display:none;" id="showNote"></div>
|
||||
<script type="text/javascript">
|
||||
var pathname = window.location.pathname;
|
||||
var bookId = pathname.substring(pathname.lastIndexOf("/") + 1, pathname.lastIndexOf("."))
|
||||
//查询章节信息
|
||||
var lastBookIndexId = $("#lastBookIndexId").val();
|
||||
if(lastBookIndexId){
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/book/queryBookIndexAbout",
|
||||
data: {'bookId': bookId, 'lastBookIndexId': lastBookIndexId},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
var bookIndexData = data.data;
|
||||
$("#bookIndexCount").html("(" + bookIndexData.bookIndexCount + "章)");
|
||||
$("#lastBookContent").html(bookIndexData.lastBookContent + "...");
|
||||
|
||||
|
||||
} else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
}else{
|
||||
$("#optBtn").remove();
|
||||
}
|
||||
</script>
|
||||
<script language="javascript" type="text/javascript">
|
||||
//查询是否在书架
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/user/queryIsInShelf",
|
||||
data: {'bookId': $("#bookId").val()},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
if (data.data) {
|
||||
$("#cFavs").html("<a class=\"btn_ora_white btn_addsj\" href=\"javascript:void(0);\">已在书架</a>");
|
||||
}
|
||||
|
||||
|
||||
} else if (data.code == 1001) {
|
||||
//未登录
|
||||
|
||||
} else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
var currentBId = 37, spmymoney = 0;
|
||||
var relationStep = 0;
|
||||
var authorUId = 8;
|
||||
$(function () {
|
||||
$(".icon_show").click(function () {
|
||||
$(this).hide();
|
||||
$(".icon_hide").show();
|
||||
$(".intro_txt").innerHeight("auto");
|
||||
});
|
||||
$(".icon_hide").click(function () {
|
||||
$(this).hide();
|
||||
$(".icon_show").show();
|
||||
$(".intro_txt").innerHeight("");
|
||||
});
|
||||
|
||||
|
||||
|
||||
$("#AuthorOtherNovel li").unbind("mouseover");
|
||||
|
||||
$('#txtComment').on('input propertychange', function () {
|
||||
var count = $(this).val().length;
|
||||
$('#emCommentNum').html(count + "/1000");
|
||||
if (count > 1000) {
|
||||
$('#txtComment').val($('#txtComment').val().substring(0, 1000));
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
|
||||
$.post("/book/addVisitCount", {"bookId": bookId}, function () {
|
||||
});
|
||||
|
||||
|
||||
function loadCommentList(){
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/book/listCommentByPage",
|
||||
data: {'bookId': $("#bookId").val()},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
var commentList = data.data.list;
|
||||
if (commentList.length > 0) {
|
||||
$("#bookCommentTotal").html("("+data.data.total+"条)");
|
||||
var commentListHtml = "";
|
||||
for (var i = 0; i < commentList.length; i++) {
|
||||
var comment = commentList[i];
|
||||
commentListHtml += ("<div class=\"comment_list cf\">" +
|
||||
"<div class=\"user_heads fl\" vals=\"389\">" +
|
||||
"<img src=\""+(comment.createUserPhoto ? comment.createUserPhoto : '/images/man.png')+"\" class=\"user_head\" alt=\"\">" +
|
||||
"<span class=\"user_level1\" style=\"display: none;\">见习</span></div>" +
|
||||
"<ul class=\"pl_bar fr\">\t\t\t<li class=\"name\">"+(comment.createUserName)+"</li><li class=\"dec\">" +
|
||||
comment.commentContent+
|
||||
"</li><li class=\"other cf\">" +
|
||||
"<span class=\"time fl\">"+comment.createTime+"</span>" +
|
||||
"<span class=\"fr\"><a href=\"javascript:void(0);\" onclick=\"javascript:BookDetail.AddAgreeTotal(77,this);\" class=\"zan\" style=\"display: none;\">赞<i class=\"num\">(0)</i></a>" +
|
||||
"</span></li>\t\t</ul>\t</div>");
|
||||
}
|
||||
$("#commentPanel").html(commentListHtml);
|
||||
$("#noCommentPanel").hide();
|
||||
$("#commentPanel").show();
|
||||
$("#moreCommentPanel").show();
|
||||
|
||||
} else {
|
||||
$("#commentPanel").hide();
|
||||
$("#moreCommentPanel").hide();
|
||||
$("#noCommentPanel").show();
|
||||
}
|
||||
|
||||
|
||||
} else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
66
templates/green/html/book/book_index.html
Normal file
@ -0,0 +1,66 @@
|
||||
<!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">
|
||||
<head th:replace="common/header :: common_head(~{::title},~{::meta},~{::link},~{})">
|
||||
<title th:utext="${book.bookName}+'目录,'+${book.bookName}+'最新章节列表_'+${application.website.name}"></title>
|
||||
<meta name="keywords" th:content="${book.bookName}+','+${book.bookName}+'目录,'+${book.bookName}+'最新章节列表'"/>
|
||||
<meta name="description"
|
||||
th:content="${application.website.name}+'小说为您提供'+${book.bookName}+'目录,'+${book.bookName}+'最新章节列表,'+${book.bookName}+'全文阅读,'+${book.bookName}+'免费阅读,'+${book.bookName}+'下载'"/>
|
||||
<link rel="stylesheet" href="/css/main.css"/>
|
||||
<link rel="stylesheet" href="/css/book.css"/>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div th:replace="common/top :: top('')">
|
||||
</div>
|
||||
|
||||
<div class="main box_center cf">
|
||||
<div class="nav_sub">
|
||||
<a href="/" th:text="${application.website.name}"></a>><a th:href="'/book/bookclass.html?c='+${book.catId}" th:text="${book.catName}"></a>><a
|
||||
th:href="'/book/'+${book.id}+'.html'" th:utext="${book.bookName}"></a>><a
|
||||
th:href="'/book/indexList-'+${book.id}+'.html'">作品目录</a>
|
||||
</div>
|
||||
<div class="channelWrap channelChapterlist cf mb50">
|
||||
|
||||
<div class="bookMain">
|
||||
<div class="bookCover cf">
|
||||
<div class="book_info1">
|
||||
<div class="tit">
|
||||
<h1 th:utext="${book.bookName}"></h1><!--<i class="vip_b">VIP</i>-->
|
||||
</div>
|
||||
<ul class="list">
|
||||
<li>
|
||||
<span>作者:<a href="javascript:void(0)" th:utext="${book.authorName}"></a></span>
|
||||
<span>类别:<a th:href="'/book/bookclass.html?c='+${book.catId}" th:text="${book.catName}"></a></span>
|
||||
<span th:switch="${book.bookStatus}">状态:<em class="black3" th:case="'0'">连载中</em><em class="black3"
|
||||
th:case="*">已完结</em></span>
|
||||
<span>总点击:<em class="black3" id="cTotal" th:text="${book.visitCount}"></em></span>
|
||||
<span>总字数:<em class="black3" th:text="${book.wordCount}"></em></span>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dirWrap cf">
|
||||
<h3 th:text="'正文('+${bookIndexCount}+')'"></h3>
|
||||
<div class="dirList">
|
||||
<ul th:each="bookIndex : ${bookIndexList}">
|
||||
<li><a th:if="${bookIndex.isVip} != '1'" th:href="'/book/'+${book.id}+'/'+${bookIndex.id}+'.html'" >
|
||||
<span th:utext="${bookIndex.indexName}"></span><i class="red" > [免费]</i>
|
||||
</a>
|
||||
<a th:if="${bookIndex.isVip} == '1'" th:href="'/book/'+${book.id}+'/'+${bookIndex.id}+'.html'" th:utext="${bookIndex.indexName}">
|
||||
</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div th:replace="common/footer :: footer">
|
||||
</div>
|
||||
<div th:replace="common/js :: js"></div>
|
||||
<script src="/javascript/bookdetail.js" type="text/javascript"></script>
|
||||
|
||||
</body>
|
||||
</html>
|
150
templates/green/html/book/book_ranking.html
Normal file
@ -0,0 +1,150 @@
|
||||
|
||||
|
||||
<!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">
|
||||
<head th:replace="common/header :: common_head(~{::title},~{::meta},~{::link},~{})">
|
||||
<title th:text="'小说排行榜_'+${application.website.name}"></title>
|
||||
<meta name="keywords" content="小说排行榜,热门小说榜,小说排行榜完结版,完结小说排行榜,完本小说排行榜,最新小说排行榜,网络小说排行榜,排行榜,点击榜,新书榜,推荐榜" />
|
||||
<meta name="description" th:content="'最新热门网络小说排行榜,包含各类热门小说榜,小说排行榜上都是受用户喜爱的小说作品,精彩尽在'+${application.website.name}+'。'" />
|
||||
<link rel="stylesheet" href="/css/main.css" />
|
||||
<link rel="stylesheet" href="/css/book.css" />
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div th:replace="common/top :: top('2')">
|
||||
</div>
|
||||
<div class="main box_center cf mb50">
|
||||
<div class="channelRankingContent cf">
|
||||
<div class="wrap_left fl">
|
||||
<div class="wrap_bg">
|
||||
<!--榜单详情 start-->
|
||||
<div class="pad20">
|
||||
|
||||
<div class="book_tit">
|
||||
<div class="fl">
|
||||
<h3 class="font26 mt5 mb5" id="rankName">点击榜</h3>
|
||||
</div>
|
||||
<a class="fr"></a>
|
||||
</div>
|
||||
<div class="updateTable rankTable">
|
||||
<table cellpadding="0" cellspacing="0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="rank">排名</th>
|
||||
<th class="style">类别</th>
|
||||
<th class="name">书名</th>
|
||||
<th class="chapter">最新章节</th>
|
||||
<th class="author">作者</th>
|
||||
<th class="word">字数</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="bookRankList">
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<!--榜单详情 end-->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="wrap_right fr">
|
||||
<div class="wrap_inner wrap_right_cont mb20">
|
||||
<div class="title cf noborder">
|
||||
<h3 class="on">排行榜</h3>
|
||||
</div>
|
||||
<div class="rightList2">
|
||||
<ul id="rankType">
|
||||
<li><a class="on" href="javascript:listRank(0)">点击榜</a></li>
|
||||
<li><a href="javascript:listRank(1)">新书榜</a></li>
|
||||
<li><a href="javascript:listRank(2)">更新榜</a></li>
|
||||
<li><a href="javascript:listRank(3)">评论榜</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div th:replace="common/footer :: footer">
|
||||
</div>
|
||||
<div th:replace="common/js :: js"></div>
|
||||
|
||||
<script type="text/javascript">
|
||||
$("#rankType a").click(function () {
|
||||
$("#rankType .on").removeClass("on");
|
||||
$(this).addClass("on");
|
||||
})
|
||||
|
||||
var rankType = getSearchString("type");
|
||||
if(rankType==undefined){
|
||||
rankType=0;
|
||||
}else{
|
||||
$("#rankType a").eq(rankType).click();
|
||||
}
|
||||
listRank(rankType);
|
||||
|
||||
function listRank(rankType){
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/book/listRank",
|
||||
data: {'type':rankType,'limit':30},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
var bookRankList = data.data;
|
||||
var bookRankListHtml = "";
|
||||
for(var i=0;i<bookRankList.length;i++){
|
||||
var book = bookRankList[i];
|
||||
var classHtml = "";
|
||||
if(i<3){
|
||||
classHtml="num"+(i+1);
|
||||
}
|
||||
bookRankListHtml+=("<tr>\n" +
|
||||
" <td class=\"rank\"><i class=\""+classHtml+"\">"+(i+1)+"</i></td>\n" +
|
||||
" <td class=\"style\"><a href=\"/book/bookclass.html?c="+book.catId+"\" >["+book.catName+"]</a></td>\n" +
|
||||
" <td class=\"name\"><a href=\"/book/"+book.id+".html\" >"+book.bookName+"</a></td>\n" +
|
||||
" <td class=\"chapter\"><a href=\"/book/"+book.id+".html\" >"+book.lastIndexName+"</a>\n" +
|
||||
" </td>\n" +
|
||||
" <td class=\"author\"><a href=\"javascript:void(0)\">"+book.authorName+"</a></td>\n" +
|
||||
" <td class=\"word\">"+(book.wordCount / 10000).toFixed(2)+"万</td>\n" +
|
||||
" </tr>");
|
||||
}
|
||||
$("#bookRankList").html(bookRankListHtml);
|
||||
|
||||
} else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
switch (rankType) {
|
||||
case 0 : {
|
||||
$("#rankName").html("点击榜");
|
||||
break;
|
||||
}
|
||||
case 1 : {
|
||||
$("#rankName").html("新书榜");
|
||||
break;
|
||||
}
|
||||
case 2 : {
|
||||
$("#rankName").html("更新榜");
|
||||
break;
|
||||
}
|
||||
case 3 : {
|
||||
$("#rankName").html("评论榜");
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
364
templates/green/html/book/bookclass.html
Normal file
@ -0,0 +1,364 @@
|
||||
<!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">
|
||||
<head th:replace="common/header :: common_head(~{::title},~{::meta},~{::link},~{})">
|
||||
<title th:text="'全部作品_'+${application.website.name}"></title>
|
||||
<meta name="keywords" th:content="${application.website.name}+',小说,小说网,言情小说,都市小说,玄幻小说,穿越小说,青春小说,总裁豪门小说,网络小说,免费小说,全本小说,原创网络文学'"/>
|
||||
<meta name="description"
|
||||
th:content="${application.website.name}+'每日更新小说连载,小说排行榜,提供言情小说,都市小说,玄幻小说,穿越小说,青春小说,总裁豪门小说,网络小说,免费小说,全本小说,首发小说,最新章节免费小说阅读,精彩尽在'+${application.website.name}+'。'"/>
|
||||
<link href="favicon.ico" type="image/x-icon" rel="shortcut icon"/>
|
||||
<link href="favicon.ico" type="image/x-icon" rel="Bookmark"/>
|
||||
<link rel="stylesheet" href="/css/main.css"/>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div th:replace="common/top :: top('1')">
|
||||
</div>
|
||||
|
||||
<div class="main box_center cf">
|
||||
<div class="channelWrap classTable cf">
|
||||
<div class="so_tag">
|
||||
<ul class="list">
|
||||
<li class="so_pd" id="workDirection">
|
||||
<span class="tit">作品频道:</span>
|
||||
<a filter-value="0" href="javascript:listBookCategory();search(1,20)" class="on">男频</a>
|
||||
<a filter-value="1" href="javascript:listBookCategory();search(1,20)">女频</a>
|
||||
</li>
|
||||
<li id="idGirl" class="so_class">
|
||||
<span class="tit">作品分类:</span>
|
||||
<span class="so_girl" id="girlCategoryList" style="display: none;">
|
||||
</span>
|
||||
<span class="so_boy" id="boyCategoryList">
|
||||
</span>
|
||||
</li>
|
||||
<!-- <li class="so_free">
|
||||
<span class="tit">是否免费:</span>
|
||||
<a href="?b=0&s=0&wb=0&wd=0&up=0&fr=0&so=0&ms=2" class="on">不限</a>
|
||||
<a href="?b=0&s=0&wb=0&wd=0&up=0&fr=1&so=0&ms=2" class="">免费作品</a>
|
||||
<a href="?b=0&s=0&wb=0&wd=0&up=0&fr=2&so=0&ms=2" class="">收费作品</a>
|
||||
</li>-->
|
||||
<li class="so_progress">
|
||||
<span class="tit">是否完结:</span>
|
||||
<a href="javascript:search(1,20)" class="on">不限</a>
|
||||
<a filter-value="0" href="javascript:search(1,20)" class="">连载中</a>
|
||||
<a filter-value="1" href="javascript:search(1,20)" class="">已完结</a>
|
||||
</li>
|
||||
<li class="so_words">
|
||||
<span class="tit">作品字数:</span>
|
||||
<a href="javascript:search(1,20)" class="on">不限</a>
|
||||
<a filter-value-max="300000" href="javascript:search(1,20)" class="">30万字以下</a>
|
||||
<a filter-value-min="300000" filter-value-max="500000" href="javascript:search(1,20)" class="">30-50万字</a>
|
||||
<a filter-value-min="500000" filter-value-max="1000000" href="javascript:search(1,20)" class="">50-100万字</a>
|
||||
<a filter-value-min="1000000" href="javascript:search(1,20)" class="">100万字以上</a>
|
||||
</li>
|
||||
<li class="so_update">
|
||||
<span class="tit">更新时间:</span>
|
||||
<a href="javascript:search(1,20)" class="on">不限</a>
|
||||
<a filter-value="3" href="javascript:search(1,20)" class="">三日内</a>
|
||||
<a filter-value="7" href="javascript:search(1,20)" class="">七日内</a>
|
||||
<a filter-value="15" href="javascript:search(1,20)" class="">半月内</a>
|
||||
<a filter-value="30" href="javascript:search(1,20)" class="">一月内</a>
|
||||
</li>
|
||||
<li class="so_sort">
|
||||
<span class="tit">排序方式:</span>
|
||||
<a href="javascript:search(1,20)" class="on">不限</a>
|
||||
<a filter-value="last_index_update_time" href="javascript:search(1,20)" class="">更新时间</a>
|
||||
<a filter-value="word_count" href="javascript:search(1,20)" class="">总字数</a>
|
||||
<a filter-value="visit_count" href="javascript:search(1,20)" class="">点击量</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="channelWrap channelClassContent cf">
|
||||
<div class="updateTable rankTable">
|
||||
<table cellpadding="0" cellspacing="0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="rank">序号</th>
|
||||
<th class="style">类别</th>
|
||||
<th class="name">书名</th>
|
||||
<th class="chapter">最新章节</th>
|
||||
<th class="author">作者</th>
|
||||
<th class="word">字数</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="bookList">
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<div class="pageBox cf" id="books">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div th:replace="common/footer :: footer">
|
||||
</div>
|
||||
<div th:replace="common/js :: js"></div>
|
||||
<script src="/javascript/bookclass.js" type="text/javascript"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
var workDirection;
|
||||
var catId = getSearchString('c');
|
||||
|
||||
listBookCategory(catId);
|
||||
|
||||
if(!catId){
|
||||
search(1, 20);
|
||||
}
|
||||
|
||||
function search(curr, limit) {
|
||||
var searchData = {};
|
||||
searchData.curr = curr;
|
||||
searchData.limit = limit;
|
||||
|
||||
searchData.keyword = $("#searchKey").val();
|
||||
var workDirection = $(".so_pd>.on").attr("filter-value");
|
||||
if(workDirection != undefined){
|
||||
searchData.workDirection = workDirection;
|
||||
}
|
||||
|
||||
if(workDirection == 1){
|
||||
var catId = $(".so_girl>.on").attr("filter-value");
|
||||
}else{
|
||||
var catId = $(".so_boy>.on").attr("filter-value");
|
||||
}
|
||||
|
||||
if(catId != undefined){
|
||||
searchData.catId = catId;
|
||||
}
|
||||
|
||||
var bookStatus = $(".so_progress>.on").attr("filter-value");
|
||||
if(bookStatus != undefined){
|
||||
searchData.bookStatus = bookStatus;
|
||||
}
|
||||
|
||||
var wordCountMin = $(".so_words>.on").attr("filter-value-min");
|
||||
if(wordCountMin != undefined){
|
||||
searchData.wordCountMin = wordCountMin;
|
||||
}
|
||||
|
||||
var wordCountMax = $(".so_words>.on").attr("filter-value-max");
|
||||
if(wordCountMax != undefined){
|
||||
searchData.wordCountMax = wordCountMax;
|
||||
}
|
||||
|
||||
var updatePeriod = $(".so_update>.on").attr("filter-value");
|
||||
if(updatePeriod != undefined){
|
||||
searchData.updatePeriod = updatePeriod;
|
||||
}
|
||||
|
||||
var sort = $(".so_sort>.on").attr("filter-value");
|
||||
if(sort != undefined){
|
||||
searchData.sort = sort;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/book/searchByPage",
|
||||
data: searchData,
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
var bookList = data.data.list;
|
||||
var bookListHtml = "";
|
||||
for (var i = 0; i < bookList.length; i++) {
|
||||
var book = bookList[i];
|
||||
var wordCount = (book.wordCount / 10000).toFixed(2);
|
||||
bookListHtml += (" <tr>\n" +
|
||||
" <td class=\"rank\"><i>" + (i + 1) + "</i></td>\n" +
|
||||
" <td class=\"style\"><a href=\"/book/bookclass.html?c="+book.catId+"\" cls=\"13\">[" + book.catName + "]</a></td>\n" +
|
||||
" <td class=\"name\"><a href=\"/book/"+book.id+".html\" >" + book.bookName + "</a></td>\n" +
|
||||
" <td class=\"chapter\"><a href=\"/book/"+book.id+".html\" >" + book.lastIndexName + "</a>\n" +
|
||||
" </td>\n" +
|
||||
" <td class=\"author\"><a href=\"javascript:void(0)\">" + book.authorName + "</a></td>\n" +
|
||||
" <td class=\"word\">" + wordCount + "万</td>\n" +
|
||||
" </tr>");
|
||||
}
|
||||
$("#bookList").html(bookListHtml);
|
||||
|
||||
layui.use('laypage', function () {
|
||||
var laypage = layui.laypage;
|
||||
|
||||
//执行一个laypage实例
|
||||
laypage.render({
|
||||
elem: 'books' //注意,这里的 test1 是 ID,不用加 # 号
|
||||
, count: data.data.total //数据总数,从服务端得到,
|
||||
, curr: data.data.pageNum
|
||||
, limit: data.data.pageSize
|
||||
, jump: function (obj, first) {
|
||||
|
||||
|
||||
//obj包含了当前分页的所有参数,比如:
|
||||
console.log(obj.curr); //得到当前页,以便向服务端请求对应页的数据。
|
||||
console.log(obj.limit); //得到每页显示的条数
|
||||
|
||||
|
||||
//首次不执行
|
||||
if (!first) {
|
||||
search(obj.curr, obj.limit);
|
||||
} else {
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
} else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
|
||||
function listBookCategory(c) {
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/book/listBookCategory",
|
||||
data: {},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
var categoryList = data.data;
|
||||
var boyCategoryListHtml = "";
|
||||
boyCategoryListHtml += " <a href=\"javascript:search(1,20)\" class=\"on\">不限</a>";
|
||||
var girlCategoryListHtml = "";
|
||||
girlCategoryListHtml += " <a href=\"javascript:search(1,20)\" class=\"on\">不限</a>";
|
||||
for (var i = 0; i < categoryList.length; i++) {
|
||||
var category = categoryList[i];
|
||||
if (category.workDirection == 1) {
|
||||
if(category.id==c){
|
||||
workDirection = 1;
|
||||
}
|
||||
girlCategoryListHtml += (" <a filter-value='"+category.id+"' href=\"javascript:search(1,20)\">" + category.name + "</a>");
|
||||
} else {
|
||||
if(category.id==c){
|
||||
workDirection = 0;
|
||||
}
|
||||
boyCategoryListHtml += (" <a filter-value='"+category.id+"' href=\"javascript:search(1,20)\">" + category.name + "</a>");
|
||||
}
|
||||
}
|
||||
$("#boyCategoryList").html(boyCategoryListHtml);
|
||||
$("#girlCategoryList").html(girlCategoryListHtml);
|
||||
$(".so_girl a").click(function () {
|
||||
var index = $(this).index();
|
||||
console.log(index);
|
||||
$(".so_girl>.on").removeClass("on");
|
||||
$(".so_girl a").eq(index).addClass("on");
|
||||
})
|
||||
$(".so_boy a").click(function () {
|
||||
var index = $(this).index();
|
||||
console.log(index);
|
||||
$(".so_boy>.on").removeClass("on");
|
||||
$(".so_boy>.on").removeClass("on");
|
||||
$(".so_boy a").eq(index).addClass("on");
|
||||
})
|
||||
if(c) {
|
||||
if (workDirection === 1) {
|
||||
$(".so_pd a").eq(1).click();
|
||||
$("#girlCategoryList a[filter-value=" + c + "]").click();
|
||||
} else {
|
||||
$("#boyCategoryList a[filter-value=" + c + "]").click();
|
||||
}
|
||||
search(1, 20);
|
||||
}
|
||||
|
||||
|
||||
} else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
</script>
|
||||
<script language="javascript" type="text/javascript">
|
||||
$(function () {
|
||||
$(".so_pd a").click(function () {
|
||||
var index = $(this).index();
|
||||
console.log(index);
|
||||
$(".so_pd>.on").removeClass("on");
|
||||
if (index == 2) {
|
||||
$(".so_pd a").eq(1).addClass("on");
|
||||
$(".so_girl").show();
|
||||
$(".so_boy").hide();
|
||||
} else {
|
||||
$(".so_pd a").eq(0).addClass("on");
|
||||
$(".so_girl").hide();
|
||||
$(".so_boy").show();
|
||||
}
|
||||
})
|
||||
$(".so_progress a").click(function () {
|
||||
var index = $(this).index();
|
||||
console.log(index);
|
||||
$(".so_progress>.on").removeClass("on");
|
||||
$(".so_progress>.on").removeClass("on");
|
||||
$(".so_progress a").eq(index-1).addClass("on");
|
||||
})
|
||||
$(".so_words a").click(function () {
|
||||
var index = $(this).index();
|
||||
console.log(index);
|
||||
$(".so_words>.on").removeClass("on");
|
||||
$(".so_words>.on").removeClass("on");
|
||||
$(".so_words a").eq(index-1).addClass("on");
|
||||
})
|
||||
$(".so_update a").click(function () {
|
||||
var index = $(this).index();
|
||||
console.log(index);
|
||||
$(".so_update>.on").removeClass("on");
|
||||
$(".so_update>.on").removeClass("on");
|
||||
$(".so_update a").eq(index-1).addClass("on");
|
||||
})
|
||||
$(".so_sort a").click(function () {
|
||||
var index = $(this).index();
|
||||
console.log(index);
|
||||
$(".so_sort>.on").removeClass("on");
|
||||
$(".so_sort>.on").removeClass("on");
|
||||
$(".so_sort a").eq(index-1).addClass("on");
|
||||
})
|
||||
|
||||
|
||||
$(".style a").each(function () {
|
||||
var bId = $(this).attr("cls");
|
||||
if (bId > 0) {
|
||||
$(this).html("[" + getBName(bId) + "]");
|
||||
}
|
||||
});
|
||||
|
||||
if (2 == 1) {
|
||||
$(".so_pd>.on").removeClass("on");
|
||||
$(".so_pd a").eq(1).addClass("on");
|
||||
$(".so_girl").hide();
|
||||
$(".so_boy").show();
|
||||
}
|
||||
});
|
||||
|
||||
function getBName(bId) {
|
||||
for (var i = 0; i < bClass.rows.length; i++) {
|
||||
if (bId == bClass.rows[i].BId) {
|
||||
return bClass.rows[i].Name;
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
14
templates/green/html/common/footer.html
Normal file
@ -0,0 +1,14 @@
|
||||
<div th:fragment="footer" class="footer">
|
||||
<div class="box_center cf">
|
||||
<div class="copyright">
|
||||
<ul>
|
||||
<li class="menu"><a href="/?to=mobile">手机站</a><i class="line">|</i><a href="/">网站首页</a><i
|
||||
class="line">|</i><a href="/user/feedback.html">反馈留言</a><i class="line">|</i><a
|
||||
href="/author/index.html">作家专区</a><i class="line">|</i><a
|
||||
href="/mobile/fiction_house.apk">客户端</a></li>
|
||||
<li th:text="'Copyright (C) '+${application.website.domain}+' All rights reserved '+${application.website.name}+'版权所有'"></li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
25
templates/green/html/common/header.html
Normal file
@ -0,0 +1,25 @@
|
||||
<!DOCTYPE html>
|
||||
<html xmlns:th="http://www.thymeleaf.org">
|
||||
<head th:fragment="common_head(title,meta,links,script)">
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"/>
|
||||
<title th:replace="${title}">小说精品屋</title>
|
||||
<link rel="stylesheet" href="/css/base.css?v=1"/>
|
||||
<th:block th:replace="${meta}"/>
|
||||
<th:block th:replace="${links}"/>
|
||||
<th:block th:replace="${script}"/>
|
||||
<script>
|
||||
var _hmt = _hmt || [];
|
||||
(function() {
|
||||
var hm = document.createElement("script");
|
||||
hm.src = "https://hm.baidu.com/hm.js?ecc8b50a3122e6d5e09be7a9e5383e07";
|
||||
var s = document.getElementsByTagName("script")[0];
|
||||
s.parentNode.insertBefore(hm, s);
|
||||
})();
|
||||
</script>
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
</body>
|
||||
</html>
|
4
templates/green/html/common/js.html
Normal file
@ -0,0 +1,4 @@
|
||||
<script th:fragment="js" src="/javascript/jquery-1.8.0.min.js" type="text/javascript"></script>
|
||||
<script th:fragment="js" src="/layui/layui.all.js" type="text/javascript"></script>
|
||||
<script th:fragment="js" src="/javascript/header.js" type="text/javascript"></script>
|
||||
<script th:fragment="js" src="/javascript/common.js" type="text/javascript"></script>
|
52
templates/green/html/common/top.html
Normal file
@ -0,0 +1,52 @@
|
||||
<div th:fragment="top(navType)" class="header">
|
||||
<div class="topBar" style="display: none">
|
||||
<div class="box_center cf">
|
||||
<div class="top_l">
|
||||
<a href="/" class="on" th:text="${application.website.name}"></a><i class="line">|</i><a
|
||||
href="/?m=2">手机女生版</a><i class="line">|</i><a
|
||||
href="/?m=1">手机男生版</a><i class="line">|</i><a
|
||||
href="/">客户端下载</a>
|
||||
</div>
|
||||
<div class="top_r">
|
||||
<div class="top_nearread">
|
||||
<a href="javascript:void(0);" class="nearread" id="headerUserHistoryBtn">最近阅读<i
|
||||
class="icon_down"></i></a>
|
||||
<div class="book_record" style="display:none" id="headerUserHistory">
|
||||
</div>
|
||||
</div>
|
||||
<span>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="topMain">
|
||||
<div class="box_center cf">
|
||||
<a href="/?m=2" class="logo fl"><img th:src="${application.website.logo}"
|
||||
th:alt="${application.website.name}"/></a>
|
||||
<div class="searchBar fl">
|
||||
<div class="search cf">
|
||||
<input type="text" placeholder="书名、作者、关键字" class="s_int" name="searchKey" id="searchKey"/>
|
||||
<label class="search_btn" id="btnSearch" onclick="searchByK()"><i class="icon"></i></label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bookShelf fr" id="headerUserInfo">
|
||||
<a class="sj_link" href="/user/favorites.html">我的书架</a>
|
||||
<span class="user_link"><i class="line mr20">|</i><a href="/user/login.html" class="mr15">登录</a><a
|
||||
href="/user/register.html">注册</a></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mainNav" id="mainNav" th:style="${navType} == 10?'display:none':''">
|
||||
<div class="box_center cf">
|
||||
<ul class="nav" id="navModule">
|
||||
|
||||
<li th:class="${navType}==0?'on':''"><a href="/">首页</a></li>
|
||||
<li th:class="${navType}==1?'on':''"><a href="/book/bookclass.html">全部作品</a></li>
|
||||
<li th:class="${navType}==2?'on':''"><a href="/book/book_ranking.html">排行榜</a></li>
|
||||
<li class=""><a href="/pay/index.html">充值</a></li>
|
||||
<li><a href="/author/index.html" target="_blank">作家专区</a></li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
419
templates/green/html/index.html
Normal file
@ -0,0 +1,419 @@
|
||||
<!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">
|
||||
|
||||
<head th:replace="common/header :: common_head(~{::title},~{::meta},~{::link},~{})">
|
||||
<title th:text="${application.website.name}+'_原创小说网站'"></title>
|
||||
<meta name="keywords" th:content="${application.website.keyword}"/>
|
||||
<meta name="description"
|
||||
th:content="${application.website.description}"/>
|
||||
<link href="favicon.ico" type="image/x-icon" rel="shortcut icon"/>
|
||||
<link href="favicon.ico" type="image/x-icon" rel="Bookmark"/>
|
||||
<link rel="stylesheet" href="/css/main.css"/>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
||||
<div th:replace="common/top :: top('0')">
|
||||
</div>
|
||||
|
||||
<div class="main box_center cf">
|
||||
<div class="channelWrap channelBanner cf">
|
||||
<div class="leftBox">
|
||||
<div class="sliderContent">
|
||||
<dl class="scBigImg" id="carouseBig" th:if="${bookMap['0']}" >
|
||||
<dd th:each="book,iterStat : ${bookMap['0']}" th:class="${iterStat.first}? 'on'"><a th:href="'/book/'+${book.bookId}+'.html'">
|
||||
<img th:src="${book.picUrl}" th:alt="${book.bookName}"/></a></dd>
|
||||
</dl>
|
||||
<div class="scSmallImg" id="carouseSmall" >
|
||||
<ul th:if="${bookMap['0']}">
|
||||
<li th:each="book,iterStat : ${bookMap['0']}" th:class="${iterStat.first}? 'on'">
|
||||
<img th:src="${book.picUrl}" th:alt="${book.bookName}"/></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="hot_articles">
|
||||
<dl class="hot_recommend" id="topBooks1" th:if="${bookMap['1']} and ${#lists.size(bookMap['1']) > 0}">
|
||||
<dt><a th:href="'/book/'+${bookMap['1'][0].bookId}+'.html'" th:text="${bookMap['1'][0].bookName}"></a></dt>
|
||||
<dd th:if="${#lists.size(bookMap['1']) > 1}"><a th:href="'/book/'+${bookMap['1'][1].bookId}+'.html'" th:text="${bookMap['1'][1].bookName}"></a><a th:if="${#lists.size(bookMap['1']) > 2}" th:href="'/book/'+${bookMap['1'][2].bookId}+'.html'" th:text="${bookMap['1'][2].bookName}"></a></dd>
|
||||
<dd th:if="${#lists.size(bookMap['1']) > 3}"><a th:href="'/book/'+${bookMap['1'][3].bookId}+'.html'" th:text="${bookMap['1'][3].bookName}"></a><a th:if="${#lists.size(bookMap['1']) > 4}" th:href="'/book/'+${bookMap['1'][4].bookId}+'.html'" th:text="${bookMap['1'][4].bookName}"></a></dd>
|
||||
</dl>
|
||||
<dl class="hot_recommend" id="topBooks2" th:if="${bookMap['1']} and ${#lists.size(bookMap['1']) > 5}">
|
||||
<dt><a th:href="'/book/'+${bookMap['1'][5].bookId}+'.html'" th:text="${bookMap['1'][5].bookName}"></a></dt>
|
||||
<dd th:if="${#lists.size(bookMap['1']) > 6}"><a th:href="'/book/'+${bookMap['1'][6].bookId}+'.html'" th:text="${bookMap['1'][6].bookName}"></a><a th:if="${#lists.size(bookMap['1']) > 7}" th:href="'/book/'+${bookMap['1'][7].bookId}+'.html'" th:text="${bookMap['1'][7].bookName}"></a></dd>
|
||||
<dd th:if="${#lists.size(bookMap['1']) > 8}"><a th:href="'/book/'+${bookMap['1'][8].bookId}+'.html'" th:text="${bookMap['1'][8].bookName}"></a><a th:if="${#lists.size(bookMap['1']) > 9}" th:href="'/book/'+${bookMap['1'][9].bookId}+'.html'" th:text="${bookMap['1'][9].bookName}"></a></dd>
|
||||
</dl>
|
||||
|
||||
<dl class="hot_notice" id="indexNews">
|
||||
<dd style="text-align:left;" th:each="news : ${newsList}"><span th:text="'['+${news.catName}+']'"></span><a th:href="'/about/newsInfo-'+${news.id}+'.html'" th:utext="${news.title}"></a>
|
||||
</dd>
|
||||
|
||||
</dl>
|
||||
</div>
|
||||
</div>
|
||||
<div class="rightBox">
|
||||
<div class="title cf" id="weekcommend">
|
||||
<h3>本周强推</h3>
|
||||
</div>
|
||||
<div class="rightList">
|
||||
<ul id="currentWeek" th:if="${bookMap['2']}">
|
||||
<li th:each="book,iterStat : ${bookMap['2']}" th:class="${iterStat.first}? 'on num1': (${iterStat.index < 3}? 'num'+${iterStat.index+1})">
|
||||
<div class="book_name"><i th:text="${iterStat.index+1}"></i><a class="name" th:href="'/book/'+${book.bookId}+'.html'" th:text="${book.bookName}"></a></div>
|
||||
<div class="book_intro">
|
||||
<div class="cover"><a th:href="'/book/'+${book.bookId}+'.html'"><img th:src="${book.picUrl}" th:alt="${book.bookName}"></a>
|
||||
</div>
|
||||
<a class="txt" th:href="'/book/'+${book.bookId}+'.html'" th:utext="${book.bookDesc}"></a>
|
||||
</div>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="channelWrap channelPic cf">
|
||||
<div class="leftBox">
|
||||
<div class="title">
|
||||
<h2 class="on">热门推荐</h2>
|
||||
</div>
|
||||
<div class="picRecommend cf" id="hotRecBooks" th:if="${bookMap['3']}">
|
||||
<div class="itemsList" th:each="book : ${bookMap['3']}">
|
||||
<a class="items_img" th:href="'/book/'+${book.bookId}+'.html'">
|
||||
<img class="lazyload" src="/images/default.gif" th:data-src="${book.picUrl}" th:alt="${book.bookName}">
|
||||
</a>
|
||||
<div class="items_txt">
|
||||
<h4><a th:href="'/book/'+${book.bookId}+'.html'" th:text="${book.bookName}"></a></h4>
|
||||
<p class="author"><a href="javascript:void(0)" th:text="'作者:'+${book.authorName}"></a></p>
|
||||
<p class="intro"><a th:href="'/book/'+${book.bookId}+'.html'" th:utext="${book.bookDesc}"></a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="bookrank1_ShowBookRank">
|
||||
<div class="rightBox ">
|
||||
<div class="title cf">
|
||||
<h3 class="on">点击榜单</h3>
|
||||
</div>
|
||||
<div class="rightList">
|
||||
<ul id="clickRankBooks">
|
||||
|
||||
|
||||
</ul>
|
||||
<div class="more"><a href="/book/book_ranking.html">查看更多></a></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="channelWrap channelPic cf">
|
||||
<div class="leftBox">
|
||||
<div class="title">
|
||||
<h2>精品推荐</h2>
|
||||
</div>
|
||||
<div class="picRecommend cf" id="classicBooks" th:if="${bookMap['4']}">
|
||||
<div class="itemsList" th:each="book : ${bookMap['4']}">
|
||||
<a class="items_img" th:href="'/book/'+${book.bookId}+'.html'">
|
||||
<img class="lazyload" src="/images/default.gif" th:data-src="${book.picUrl}" th:alt="${book.bookName}">
|
||||
</a>
|
||||
<div class="items_txt">
|
||||
<h4><a th:href="'/book/'+${book.bookId}+'.html'" th:text="${book.bookName}"></a></h4>
|
||||
<p class="author"><a href="javascript:void(0)" th:text="'作者:'+${book.authorName}"></a></p>
|
||||
<p class="intro"><a th:href="'/book/'+${book.bookId}+'.html'" th:utext="${book.bookDesc}"></a>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div id="bookrank2_ShowBookRank">
|
||||
<div class="rightBox ">
|
||||
<div class="title cf">
|
||||
<h3 class="on">新书榜单</h3>
|
||||
</div>
|
||||
<div class="rightList">
|
||||
<ul id="newRankBooks">
|
||||
|
||||
|
||||
</ul>
|
||||
<div class="more"><a href="/book/book_ranking.html?type=1">查看更多></a></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="channelWrap channelTable cf">
|
||||
<div class="leftBox">
|
||||
<div class="title">
|
||||
<h2>最新更新</h2>
|
||||
</div>
|
||||
<div class="updateTable">
|
||||
<table cellpadding="0" cellspacing="0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="style">类别</th>
|
||||
<th class="name">书名</th>
|
||||
<th class="chapter">最新章节</th>
|
||||
<th class="author">作者</th>
|
||||
<th class="time">更新时间</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="newRankBooks2">
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div id="bookrank5_ShowBookRank">
|
||||
<div class="rightBox mb20">
|
||||
<div class="title cf">
|
||||
<h3 class="on">更新榜单</h3>
|
||||
</div>
|
||||
<div class="rightList">
|
||||
<ul id="updateRankBooks">
|
||||
|
||||
|
||||
</ul>
|
||||
<div class="more"><a href="/book/book_ranking.html?type=2">查看更多></a></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="friend_link">
|
||||
<div class="box_center cf" id="friendLink">
|
||||
<span>友情链接:</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div th:replace="common/footer :: footer">
|
||||
</div>
|
||||
|
||||
|
||||
</body>
|
||||
<div th:replace="common/js :: js"></div>
|
||||
<script src="/javascript/lazyload.js" type="text/javascript"></script>
|
||||
<script language="javascript" type="text/javascript">
|
||||
var $div = $('.scBigImg dl');//放置大图容器
|
||||
var $nav = $('.scSmallImg li');//放置缩略图容器
|
||||
var num = -1;
|
||||
var open;
|
||||
|
||||
function changeKv() {
|
||||
if (num >= $nav.length - 1) {
|
||||
num = 0;
|
||||
} else {
|
||||
num++;
|
||||
}
|
||||
$nav.eq(num).trigger('mouseenter');
|
||||
open = setTimeout(changeKv, 3000);
|
||||
}
|
||||
|
||||
changeKv();
|
||||
$nav.each(function (index) {
|
||||
$(this).off('mouseenter').on('mouseenter', function () {
|
||||
clearTimeout(open);
|
||||
|
||||
$(this).addClass('on').siblings().removeClass('on');
|
||||
$('.scBigImg dd').eq(index).addClass('on').siblings().removeClass('on');
|
||||
$('.scSmallImg').off('mouseleave').on('mouseleave', function () {
|
||||
num = index;
|
||||
setTimeout(function () {
|
||||
changeKv();
|
||||
}, 3000)
|
||||
})
|
||||
});
|
||||
});
|
||||
$div.each(function () {
|
||||
$(this).off('mouseenter').on('mouseenter', function () {
|
||||
clearTimeout(open);
|
||||
});
|
||||
});
|
||||
|
||||
lazyload();
|
||||
$(function () {
|
||||
|
||||
//点击榜单数据查询
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/book/listClickRank",
|
||||
data: {},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
var clickRankBooks = data.data;
|
||||
var clickRankBooksHtml = "";
|
||||
for (var i = 0; i < clickRankBooks.length; i++) {
|
||||
var clickRankBook = clickRankBooks[i];
|
||||
var classHtml = "";
|
||||
var imageHtml = "";
|
||||
if (i == 0) {
|
||||
classHtml = "on";
|
||||
imageHtml = "<img src=\"" + clickRankBook.picUrl + "\" alt=\"" + clickRankBook.bookName + "\"/>";
|
||||
}
|
||||
if (i < 3) {
|
||||
classHtml += (" num" + (i + 1));
|
||||
}
|
||||
clickRankBooksHtml += ("<li class=\"" + classHtml + "\">\n" +
|
||||
" <div class=\"book_name\">\n" +
|
||||
" <i>" + (i + 1) + "</i><a class=\"name\" href=\"/book/" + clickRankBook.id + ".html\">" + clickRankBook.bookName + "</a>\n" +
|
||||
" </div>\n" +
|
||||
" <div class=\"book_intro\">\n" +
|
||||
" <div class=\"cover\">\n" +
|
||||
" <a href=\"book/" + clickRankBook.id + ".html\">"+ imageHtml +"</a>\n" +
|
||||
" </div>\n" +
|
||||
" <a class=\"txt\" href=\"/book/" + clickRankBook.id + ".html\">" + clickRankBook.bookDesc + "</a>\n" +
|
||||
" </div>\n" +
|
||||
"\n" +
|
||||
" </li>");
|
||||
}
|
||||
$("#clickRankBooks").html(clickRankBooksHtml);
|
||||
} else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
//新书榜单查询
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/book/listNewRank",
|
||||
data: {},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
var newRankBooks = data.data;
|
||||
var newRankBooksHtml = "";
|
||||
for (var i = 0; i < newRankBooks.length; i++) {
|
||||
var newRankBook = newRankBooks[i];
|
||||
var classHtml = "";
|
||||
var imageHtml = "";
|
||||
if (i == 0) {
|
||||
classHtml = "on";
|
||||
imageHtml = "<img src=\"" + newRankBook.picUrl + "\" alt=\"" + newRankBook.bookName + "\"/>";
|
||||
}
|
||||
if (i < 3) {
|
||||
classHtml += (" num" + (i + 1));
|
||||
}
|
||||
newRankBooksHtml += ("<li class=\"" + classHtml + "\">\n" +
|
||||
" <div class=\"book_name\">\n" +
|
||||
" <i>" + (i + 1) + "</i><a class=\"name\" href=\"/book/" + newRankBook.id + ".html\">" + newRankBook.bookName + "</a>\n" +
|
||||
" </div>\n" +
|
||||
" <div class=\"book_intro\">\n" +
|
||||
" <div class=\"cover\">\n" +
|
||||
" <a href=\"book/" + newRankBook.id + ".html\">" + imageHtml + "</a>\n" +
|
||||
" </div>\n" +
|
||||
" <a class=\"txt\" href=\"/book/" + newRankBook.id + ".html\">" + newRankBook.bookDesc + "</a>\n" +
|
||||
" </div>\n" +
|
||||
"\n" +
|
||||
" </li>");
|
||||
}
|
||||
$("#newRankBooks").html(newRankBooksHtml);
|
||||
} else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
//更新榜单查询
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/book/listUpdateRank",
|
||||
data: {},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
var updateRankBooks = data.data;
|
||||
var updateRankBookHtml = "";
|
||||
var updateRankBookHtml2 = "";
|
||||
for (var i = 0; i < updateRankBooks.length; i++) {
|
||||
var updateRankBook = updateRankBooks[i];
|
||||
var classHtml = "";
|
||||
var imageHtml = "";
|
||||
if (i == 0) {
|
||||
classHtml = "on";
|
||||
imageHtml = "<img\ src=\"" + updateRankBook.picUrl + "\" alt=\"" + updateRankBook.bookName + "\"/>";
|
||||
}
|
||||
if (i < 3) {
|
||||
classHtml += (" num" + (i + 1));
|
||||
}
|
||||
if (i < 10) {
|
||||
updateRankBookHtml += ("<li class=\"" + classHtml + "\">\n" +
|
||||
" <div class=\"book_name\">\n" +
|
||||
" <i>" + (i + 1) + "</i><a class=\"name\" href=\"/book/" + updateRankBook.id + ".html\">" + updateRankBook.bookName + "</a>\n" +
|
||||
" </div>\n" +
|
||||
" <div class=\"book_intro\">\n" +
|
||||
" <div class=\"cover\">\n" +
|
||||
" <a href=\"book/" + updateRankBook.id + ".html\">" + imageHtml + "</a>\n" +
|
||||
" </div>\n" +
|
||||
" <a class=\"txt\" href=\"/book/" + updateRankBook.id + ".html\">" + updateRankBook.bookDesc + "</a>\n" +
|
||||
" </div>\n" +
|
||||
"\n" +
|
||||
" </li>");
|
||||
}
|
||||
updateRankBookHtml2 += ("<tr>\n" +
|
||||
" <td class=\"style\"><a href=\"book/bookclass.html?c=" + updateRankBook.catId + "\">[" + updateRankBook.catName + "]</a></td>\n" +
|
||||
" <td class=\"name\"><a href=\"/book/" + updateRankBook.id + ".html\">" + updateRankBook.bookName + "</a></td>\n" +
|
||||
" <td class=\"chapter\"><a href=\"/book/" + updateRankBook.id + ".html\">" + updateRankBook.lastIndexName + "</a>\n" +
|
||||
" <i class=\"\"></i>\n" +
|
||||
" </td>\n" +
|
||||
" <td class=\"author\"><a href=\"javascript:void(0)\">" + updateRankBook.authorName + "</a></td>\n" +
|
||||
" <td class=\"time\">" + updateRankBook.lastIndexUpdateTime + "</td>\n" +
|
||||
" </tr>");
|
||||
}
|
||||
$("#updateRankBooks").html(updateRankBookHtml);
|
||||
$("#newRankBooks2").html(updateRankBookHtml2);
|
||||
} else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
}
|
||||
,
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
//友情链接查询
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/friendLink/listIndexLink",
|
||||
data: {},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
var friendLinkList = data.data;
|
||||
var friendLinkHtml = "";
|
||||
for (var i = 0; i < friendLinkList.length; i++) {
|
||||
var friendLink = friendLinkList[i];
|
||||
friendLinkHtml += ("<a target='_blank' href=\"" + friendLink.linkUrl + "\">" + friendLink.linkName + "</a>");
|
||||
}
|
||||
$("#friendLink").append(friendLinkHtml);
|
||||
} else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
$("#weekcommend h3").mouseover(function () {
|
||||
$("#weekcommend h3").removeClass("on");
|
||||
$(this).addClass("on");
|
||||
if ($(this).attr("class").indexOf("fr") >= 0) {
|
||||
$("#currentWeek").hide();
|
||||
$("#currentPreWeek").show();
|
||||
} else {
|
||||
$("#currentPreWeek").hide();
|
||||
$("#currentWeek").show();
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
</html>
|
384
templates/green/html/mobile/book/book_content.html
Normal file
@ -0,0 +1,384 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta th:if="${catId == 9}" name="viewport" content="width=device-width, initial-scale=0.5, maximum-scale=1">
|
||||
<meta th:if="${catId != 9}" name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title th:utext="${book.bookName}+${bookIndex.indexName}"></title>
|
||||
|
||||
<meta name="keywords" th:content="${book.bookName}+','+${bookIndex.indexName}">
|
||||
|
||||
<meta name="description"
|
||||
th:content="${book.bookName}+'最新更新章节免费在线阅读TXT下载'">
|
||||
|
||||
|
||||
|
||||
<div th:include="mobile/common/css :: css"></div>
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
function reinitIframe(){
|
||||
|
||||
var iframe = document.getElementById("frame_content");
|
||||
try{
|
||||
iframe.height = iframe.contentWindow.document.documentElement.scrollHeight;
|
||||
}catch (ex){}
|
||||
}
|
||||
window.setInterval("reinitIframe()", 200);
|
||||
</script>
|
||||
<script th:fragment="js" src="/mobile/js/jquery-1.9.1.js"></script>
|
||||
<script th:fragment="js" src="/mobile/layui/layui.all.js"></script>
|
||||
</div>
|
||||
|
||||
<style type="text/css">
|
||||
.line-limit-length {
|
||||
|
||||
overflow: hidden;
|
||||
|
||||
text-overflow: ellipsis;
|
||||
|
||||
white-space: nowrap;
|
||||
|
||||
}
|
||||
|
||||
.indexP p a {
|
||||
color: #4c6978;
|
||||
}
|
||||
|
||||
.Readarea {
|
||||
font-size: 18px;
|
||||
line-height: 35px;
|
||||
padding: 10px;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
div, p {
|
||||
wrap-work: break-word;
|
||||
word-break: break-all;
|
||||
word-wrap: break-word;
|
||||
word-break: normal;
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
-ms-box-sizing: border-box;
|
||||
}
|
||||
|
||||
.indexDiv a {
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
.Readpage {
|
||||
font-size: 14px;
|
||||
padding: 0;
|
||||
background: #d4eaf2;
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
div, p {
|
||||
wrap-work: break-word;
|
||||
word-break: break-all;
|
||||
word-wrap: break-word;
|
||||
word-break: normal;
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
-ms-box-sizing: border-box;
|
||||
}
|
||||
|
||||
* {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
/* background-attachment: fixed; */
|
||||
}
|
||||
|
||||
user agent stylesheet
|
||||
p {
|
||||
display: block;
|
||||
-webkit-margin-before: 1em;
|
||||
-webkit-margin-after: 1em;
|
||||
-webkit-margin-start: 0px;
|
||||
-webkit-margin-end: 0px;
|
||||
}
|
||||
|
||||
.huyanon {
|
||||
border: 1px solid #64c878;
|
||||
box-shadow: 0 1px 2px #b9ecc4 inset, 0 -1px 0 #6c9f76 inset, 0 -2px 3px #b9ecc4 inset;
|
||||
background: -webkit-linear-gradient(top, #90dfa2, #84d494);
|
||||
background: -moz-linear-gradient(top, #90dfa2, #84d494);
|
||||
background: linear-gradient(top, #90dfa2, #84d494);
|
||||
}
|
||||
|
||||
.Readpage a {
|
||||
font-size: 16px;
|
||||
padding: 2px 2px;
|
||||
line-height: 35px;
|
||||
}
|
||||
|
||||
.lightoff, .huyanoff, .sizebgon {
|
||||
border: 1px solid #333;
|
||||
box-shadow: 0 1px 2px #8b8b8b inset, 0 -1px 0 #3d3d3d inset, 0 -2px 3px #8b8b8b inset;
|
||||
background: -webkit-linear-gradient(top, #656565, #4c4c4c);
|
||||
background: -moz-linear-gradient(top, #656565, #4a4a4a);
|
||||
background: linear-gradient(top, #656565, #4a4a4a);
|
||||
}
|
||||
|
||||
.button {
|
||||
width: 40px;
|
||||
line-height: 38px;
|
||||
text-align: center;
|
||||
font-weight: bold;
|
||||
color: #fff;
|
||||
text-shadow: 1px 1px 1px #333;
|
||||
border-radius: 5px;
|
||||
margin: 3px 0px 0px 0;
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
a {
|
||||
color: #4c6978;
|
||||
text-decoration: none;
|
||||
border: none;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.lighton {
|
||||
border: 1px solid #d2a000;
|
||||
box-shadow: 0 1px 2px #fedd71 inset, 0 -1px 0 #a38b39 inset, 0 -2px 3px #fedd71 inset;
|
||||
background: -webkit-linear-gradient(top, #fece34, #d8a605);
|
||||
background: -moz-linear-gradient(top, #fece34, #d8a605);
|
||||
background: linear-gradient(top, #fece34, #d8a605);
|
||||
}
|
||||
|
||||
.screen_toolbar {
|
||||
position: fixed;
|
||||
width: 100%;
|
||||
left: 0px;
|
||||
bottom: 100px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body id="read">
|
||||
<div id="content">
|
||||
|
||||
|
||||
<input type="hidden" id="bookIdHidden" th:value="${book.id}"/>
|
||||
|
||||
<input type="hidden" id="bookNameHidden" th:value="${book.bookName}"/>
|
||||
|
||||
<input type="hidden" id="contentIdHidden" th:value="${bookIndex.id}"/>
|
||||
|
||||
<input type="hidden" id="indexNameHidden" th:value="${bookIndex.indexName}"/>
|
||||
|
||||
<input type="hidden" id="indexNumHidden" th:value="${bookIndex.indexNum}"/>
|
||||
|
||||
<script>
|
||||
var token = localStorage.getItem("token");
|
||||
</script>
|
||||
|
||||
<div style="height: 50px;line-height: 50px;text-align: center" class="layui-header header header-doc layui-bg-cyan">
|
||||
|
||||
<div style="width:10%;float: left;margin-left: 10px">
|
||||
<a href="javascript:history.go(-1)">
|
||||
<i style="font-size: 20px;color: #fff;" class="layui-icon"></i></a>
|
||||
</div>
|
||||
<a style="color: #ffffff;" th:href="'/book/'+ ${book.id} + '.html'"><b style="padding-left: 5%;float: left;width: 69%" class="line-limit-length" th:utext="${bookIndex.indexName}+' '+${book.bookName}"></b></a>
|
||||
<div style="width:10%;float: right;margin-right: 10px"><a href="/">
|
||||
<i style="font-size: 20px;color: #fff;" class="layui-icon"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<p class="Readpage" style="background:#FFFFFF;padding:2px;">
|
||||
<a id="lightdiv" class="button lightoff" onclick="nr_setbg('light')">关灯</a>
|
||||
<a id="huyandiv" class="button huyanon" onclick="nr_setbg('huyan')">护眼</a>
|
||||
字体:<a id="fontbig" class="sizebg" onclick="nr_setbg('big')">大</a> <a id="fontmiddle" class="button sizebgon"
|
||||
onclick="nr_setbg('middle')">中</a> <a
|
||||
id="fontsmall" class="sizebg" onclick="nr_setbg('small')">小</a>
|
||||
</p>
|
||||
<div class="indexDiv" style="height: 42px;line-height: 42px;text-align:center;background: #f2f2f2">
|
||||
|
||||
<a style="color: #333" th:href="'javascript:enterPreIndexPage(\''+${book.id}+'\',\''+${preBookIndexId}+'\');'">上一章</a>
|
||||
<a style="color: #333" th:href="'/book/indexList-'+${book.id}+'.html'">目录</a>
|
||||
<a style="color: #333" th:href="'javascript:enterNextIndexPage(\''+${book.id}+'\',\''+${nextBookIndexId}+'\');'">下一章</a>
|
||||
</div>
|
||||
<!--<div id="screenInput" class="screen_toolbar" style="display: none">
|
||||
<div style="height: 5px" class="layui-col-xs2 layui-col-sm3 layui-col-md3 layui-col-lg3"></div>
|
||||
<div class="layui-col-xs6 layui-col-sm4 layui-col-md4 layui-col-lg4">
|
||||
<input type="text" id="screenBulletText" required lay-verify="required" placeholder="请输入弹幕内容,右下角开关可控制弹幕是否开启" autocomplete="off"
|
||||
class="layui-input">
|
||||
|
||||
</div>
|
||||
<div class="layui-col-xs2 layui-col-sm1 layui-col-md1 layui-col-lg1">
|
||||
<button class="layui-btn send">发送</button>
|
||||
</div>
|
||||
</div>
|
||||
<form id="screenSwitch" class="layui-form">
|
||||
<div class="layui-form-item" style="position: fixed;right: 0px;bottom: 100px" title="弹幕开关">
|
||||
<!– <label class="layui-form-label" style="opacity:0.5;font-weight: bold;color: red;">弹幕</label>–>
|
||||
<div class="layui-input-block">
|
||||
<input class="clear" type="checkbox" name="switch" lay-skin="switch">
|
||||
</div>
|
||||
</div>
|
||||
</form>-->
|
||||
<div th:replace="mobile/common/js :: js">
|
||||
</div>
|
||||
<div id="chaptercontent" class="Readarea ReadAjax_content screen_container"
|
||||
style="color: rgb(0, 0, 0); font-size: 20px;" th:if="${!needBuy}">
|
||||
<p style="width:100%;text-alight:center; overflow: auto;-webkit-overflow-scrolling:touch;" >
|
||||
<span
|
||||
th:utext="${bookContent.content}"></span></p>
|
||||
</div>
|
||||
<div class="Readarea ReadAjax_content screen_container"
|
||||
style="color: rgb(0, 0, 0); font-size: 20px;background-color: #fff" th:if="${needBuy}">
|
||||
<h5>此章为VIP章节,需要订阅后才能继续阅读</h5>
|
||||
价格:<span style="color: red" th:text="${bookIndex.bookPrice}+'屋币(1元=100屋币)'"></span><br/>
|
||||
<a href="javascript:buyBookIndex()" type="button" class="layui-btn layui-btn-sm layui-btn-radius">购买</a>
|
||||
|
||||
</div>
|
||||
<div class="indexDiv" style="height: 42px;line-height: 42px;text-align:center;background: #f2f2f2">
|
||||
|
||||
<a style="color: #333" th:href="'javascript:enterPreIndexPage(\''+${book.id}+'\',\''+${preBookIndexId}+'\');'">上一章</a>
|
||||
<a style="color: #333" th:href="'/book/indexList-'+${book.id}+'.html'">目录</a>
|
||||
<a style="color: #333" th:href="'javascript:enterNextIndexPage(\''+${book.id}+'\',\''+${nextBookIndexId}+'\');'">下一章</a>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div th:replace="mobile/common/footer :: footer">
|
||||
</div>
|
||||
|
||||
<a name="buttom"></a>
|
||||
</body>
|
||||
|
||||
<script>
|
||||
var ua = navigator.userAgent;
|
||||
|
||||
var ipad = ua.match(/(iPad).*OS\s([\d_]+)/),
|
||||
|
||||
isIphone =!ipad && ua.match(/(iPhone\sOS)\s([\d_]+)/),
|
||||
|
||||
isAndroid = ua.match(/(Android)\s+([\d.]+)/),
|
||||
|
||||
isMobile = isIphone || isAndroid;
|
||||
|
||||
|
||||
|
||||
|
||||
</script>
|
||||
<script>
|
||||
(function () {
|
||||
|
||||
//添加阅读记录
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/user/addReadHistory",
|
||||
data: {'bookId': $("#bookIdHidden").val(), 'preContentId': $("#contentIdHidden").val()},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
|
||||
},
|
||||
error: function () {
|
||||
}
|
||||
})
|
||||
|
||||
$("#content").css("min-height",($(window).height()-60)+"px");
|
||||
|
||||
|
||||
})();
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
<script src="/mobile/js/read.js"></script>
|
||||
<script language="javascript">getset()</script>
|
||||
<script language="javascript">getset1()</script>
|
||||
<script language="javascript">
|
||||
var books = localStorage.getItem("historyBooks");
|
||||
var item = parseInt($("#bookIdHidden").val());
|
||||
if (books) {
|
||||
var booksArr = JSON.parse(books);
|
||||
if (booksArr.length >= 50) {
|
||||
booksArr.splice(0, 1);
|
||||
}
|
||||
booksArr.remove(item);
|
||||
booksArr[booksArr.length] = item;
|
||||
} else {
|
||||
var booksArr = [item];
|
||||
}
|
||||
|
||||
localStorage.setItem("historyBooks", JSON.stringify(booksArr));//
|
||||
|
||||
function toMyCollect() {
|
||||
var token = localStorage.getItem("token");
|
||||
if (token) {
|
||||
window.location.href = "/book/search?token=" + token;
|
||||
} else {
|
||||
window.location.href = "/user/login.html";
|
||||
}
|
||||
}
|
||||
|
||||
function buyBookIndex(){
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/user/buyBookIndex",
|
||||
data: {'bookId':$("#bookIdHidden").val(),"bookName":$("#bookNameHidden").val(),
|
||||
"bookIndexId":$("#contentIdHidden").val(),"bookIndexName":$("#indexNameHidden").val()},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
location.reload();
|
||||
|
||||
|
||||
} else if(data.code == 1001){
|
||||
//未登录
|
||||
location.href = '/user/login.html?originUrl='+decodeURIComponent(location.href);
|
||||
|
||||
|
||||
}else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
$.post("/book/addVisitCount", {"bookId": $("#bookIdHidden").val()}, function () {
|
||||
});
|
||||
|
||||
|
||||
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{
|
||||
window.location.href = '/book/indexList-' + bookId + '.html';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
</html>
|
363
templates/green/html/mobile/book/book_detail.html
Normal file
@ -0,0 +1,363 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title th:utext="${book.bookName}+'小说最新章节免费阅读和下载'"></title>
|
||||
|
||||
<meta name="keywords"
|
||||
th:content="${book.bookName}+','+${book.bookName}+'最新章节,'+${book.bookName}+'免费阅读,'+${book.bookName}+'TXT下载'">
|
||||
|
||||
<meta name="description"
|
||||
th:content="${book.bookName}+'最新章节列表,'+${book.bookName}+'最新更新章节免费无广告无弹窗在线阅读,'+${book.bookName}+'小说TXT免费下载。'">
|
||||
|
||||
|
||||
<div th:include="mobile/common/css :: css"></div>
|
||||
|
||||
<style type="text/css">
|
||||
|
||||
.indexP p a {
|
||||
color: #4c6978;
|
||||
}
|
||||
|
||||
.tag-list {
|
||||
padding-top: 0px;
|
||||
padding-bottom: 20px;
|
||||
position: fixed;
|
||||
top: 50px;
|
||||
right: 0px;
|
||||
width: 120px;
|
||||
z-index: 100000;
|
||||
}
|
||||
|
||||
.tag-list .tag {
|
||||
float: right;
|
||||
width: 100%;
|
||||
text-align: right;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
.tag-list .tag a {
|
||||
display: inline-block;
|
||||
margin-right: 8px;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.tag-list .highlight {
|
||||
padding: 5px 9px;
|
||||
border: 1px solid #f90;
|
||||
color: #f90;
|
||||
border-radius: 50px;
|
||||
}
|
||||
|
||||
.tag-list .highlight .text {
|
||||
color: #f90;
|
||||
}
|
||||
|
||||
.tag-list .tag .text {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
color: #f90;
|
||||
}
|
||||
|
||||
ul, li {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.tag-list .tag a {
|
||||
display: inline-block;
|
||||
margin-right: 8px;
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.tag-list .highlight .icn {
|
||||
color: #f90;
|
||||
}
|
||||
|
||||
.tag-list .tag .icn {
|
||||
margin-right: 5px;
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
.tag-list .highlight .text {
|
||||
padding-left: 3px;
|
||||
color: #f90;
|
||||
}
|
||||
|
||||
.tag-list .tag .text {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
color: #f90;
|
||||
}
|
||||
|
||||
.line-limit-length {
|
||||
|
||||
overflow: hidden;
|
||||
|
||||
text-overflow: ellipsis;
|
||||
|
||||
white-space: nowrap;
|
||||
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<div id="content">
|
||||
|
||||
<ul class="tag-list clearfix" id="tagLi">
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<input type="hidden" id="bookIdHidden" th:value="${bookId}"/>
|
||||
<input type="hidden" id="bookNamedHidden" th:value="${book.bookName}"/>
|
||||
<input type="hidden" id="preContentId" th:value="${firstBookIndexId}"/>
|
||||
|
||||
<div style="height: 50px;line-height: 50px;text-align: center"
|
||||
class="layui-header header header-doc layui-bg-cyan">
|
||||
|
||||
<div style="float: left;margin-left: 10px">
|
||||
<a href="javascript:history.go(-1)">
|
||||
<i style="font-size: 20px;color: #fff;" class="layui-icon"></i></a>
|
||||
</div>
|
||||
<b class="layui-icon" th:utext="${book.bookName}"></b>
|
||||
<div style="float: right;margin-right: 10px">
|
||||
<a href="/"><i style="font-size: 20px;color: #fff;" class="layui-icon"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-row" style="background: #f2f2f2">
|
||||
<div style="padding: 3px" class="layui-col-xs4 layui-col-sm2 layui-col-md2 layui-col-lg2">
|
||||
<img style=" width:130px; height:auto; max-width:100%; max-height:100%;" th:src="${book.picUrl}"/>
|
||||
|
||||
</div>
|
||||
<div style="position:relative;padding: 3px 10px 0px"
|
||||
class="layui-col-xs8 layui-col-sm8 layui-col-md8 layui-col-lg8">
|
||||
<a th:href="'javascript:searchBooks(\''+ ${book.authorName}+'\')'">
|
||||
<div style=";color: #444;" th:utext="'作者:'+ ${book.authorName}"></div>
|
||||
</a>
|
||||
<a th:href="'/book/book_ranking.html?catId='+${book.catId}">
|
||||
<div style="margin-top: 5px;color: #444;" th:text="'类别:'+ ${book.catName}"></div>
|
||||
</a>
|
||||
<div style="margin-top: 5px;color: #444;" th:text="'状态:'+ ${book.bookStatus==0?'连载':'完结'}"></div>
|
||||
<div style="margin-top: 5px;color: #444;">更新:<i
|
||||
th:text="${#dates.format(book.lastIndexUpdateTime, 'yy-MM-dd')}"></i></div>
|
||||
<div style="margin-top: 5px;color: #444;">评分:<i style="font-weight:bold;color: red"
|
||||
th:text="${book.score} + '分'"></i></div>
|
||||
<div style="margin-top: 5px;color: #444;">点击:<i style="font-weight:bold;color: red"
|
||||
th:text="${book.visitCount}"></i></div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div style="text-align: center;height: 45px;line-height: 45px">
|
||||
<a th:href="'/book/'+${book.id}+'/'+${firstBookIndexId}+'.html'" type="button"
|
||||
style="background-color:#3eaf7c!important" class="layui-btn layui-btn-sm layui-btn-radius">开始阅读</a>
|
||||
<button type="button" id="cFavs" onclick="addInShell()"
|
||||
style="border: 1px solid #3eaf7c;color: #3eaf7c;background-color:#fff!important"
|
||||
class="layui-btn layui-btn-sm layui-btn-radius ">加入书架
|
||||
</button>
|
||||
|
||||
<!--
|
||||
<button type="button" onclick="downloadFile()" class="layui-btn layui-btn-sm layui-btn-radius layui-bg-normal">下载TXT</button>
|
||||
-->
|
||||
</div>
|
||||
<p style="line-height: 23px;padding: 10px;font-size: 14px;color: #333;" th:utext="${book.bookDesc}">
|
||||
|
||||
</p>
|
||||
|
||||
<div class="layui-collapse">
|
||||
<div class="layui-colla-item">
|
||||
<h2 class="layui-colla-title">
|
||||
<span>最新章节</span>
|
||||
<span style="margin-left: 30px">
|
||||
更新: <i th:text="${#dates.format(book.lastIndexUpdateTime, 'yy-MM-dd HH:mm:ss')}"></i>
|
||||
</span>
|
||||
</h2>
|
||||
<div class="layui-colla-content layui-show indexP layui-row" id="indexList">
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="height: 42px;color:#4c6978;line-height: 42px;padding-left: 30px;background: #f2f2f2">
|
||||
|
||||
<a th:href="'/book/indexList-'+${book.id}+'.html'">查看完整目录</a>
|
||||
</div>
|
||||
|
||||
<!--
|
||||
<div style="position: fixed;top:0px;left:0px;z-index:-100;opacity: 0" th:utext="${attacDivForSearch}"></div>
|
||||
-->
|
||||
</div>
|
||||
|
||||
<div th:replace="mobile/common/footer :: footer">
|
||||
</div>
|
||||
|
||||
|
||||
</body>
|
||||
<div th:replace="mobile/common/js :: js">
|
||||
</div>
|
||||
<script>
|
||||
//查询是否在书架
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/user/queryIsInShelf",
|
||||
data: {'bookId': $("#bookIdHidden").val()},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
if (data.data) {
|
||||
$("#cFavs").replaceWith("<button type=\"button\" id=\"cFavs\" style=\"border: 1px solid #3eaf7c;color: #3eaf7c;background-color:#fff!important\" class=\"layui-btn layui-btn-sm layui-btn-radius layui-btn-warm\">已在书架</button>");
|
||||
}
|
||||
|
||||
|
||||
} else if (data.code == 1001) {
|
||||
//未登录
|
||||
|
||||
} else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
|
||||
//查询最新目录集合
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/book/queryNewIndexList",
|
||||
data: {'bookId': $("#bookIdHidden").val()},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
var indexListHtml = "";
|
||||
for (var i = 0; i < data.data.length; i++) {
|
||||
var bookIndex = data.data[i];
|
||||
indexListHtml += ("<p class=\"line-limit-length layui-col-xs12 layui-col-sm4 layui-col-md3 layui-col-lg2\" style=\"padding-left:10px;height: 50px;line-height: 50px;\"><a href=\"/book/" + $("#bookIdHidden").val() + "/" + bookIndex.id + ".html\" style='color: #333'>" + bookIndex.indexName + "</a></p>");
|
||||
}
|
||||
|
||||
$("#indexList").html(indexListHtml);
|
||||
|
||||
|
||||
} else if (data.code == 1001) {
|
||||
//未登录
|
||||
|
||||
} else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
|
||||
function addInShell() {
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/user/addToBookShelf",
|
||||
data: {'bookId': $("#bookIdHidden").val(), 'preContentId': $("#preContentId").val()},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
$("#cFavs").replaceWith("<button type=\"button\" id=\"cFavs\" style=\"border: 1px solid #3eaf7c;color: #3eaf7c;background-color:#fff!important\" class=\"layui-btn layui-btn-sm layui-btn-radius layui-btn-warm\">已在书架</button>");
|
||||
|
||||
|
||||
} else if (data.code == 1001) {
|
||||
//未登录
|
||||
location.href = '/user/login.html?originUrl=' + decodeURIComponent(location.href);
|
||||
|
||||
} else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
|
||||
$("#content").css("min-height", ($(window).height() - 60) + "px");
|
||||
|
||||
function downloadFile() {
|
||||
var fileUrl = '/book/download?bookId=' + $("#bookIdHidden").val() + '&bookName=' + $("#bookNamedHidden").val();
|
||||
window.location.href = fileUrl;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
function toMyCollect() {
|
||||
var token = localStorage.getItem("token");
|
||||
if (token) {
|
||||
window.location.href = "/book/search?token=" + token;
|
||||
} else {
|
||||
window.location.href = "/user/login.html";
|
||||
}
|
||||
}
|
||||
|
||||
function addToCollect() {
|
||||
var token = localStorage.getItem("token");
|
||||
|
||||
if (token) {
|
||||
$.get("/user/addToCollect", {"bookId": $("#bookIdHidden").val(), "token": token}, function (data) {
|
||||
layer.alert(data.desc);
|
||||
if (data.code == 1) {
|
||||
$('#collectButton').unbind("click");
|
||||
$("#collectButton").text("撤下书架");
|
||||
$("#collectButton").click(function () {
|
||||
cancelToCollect();
|
||||
});
|
||||
}
|
||||
});
|
||||
} else {
|
||||
window.location.href = "/user/login.html?bookId=" + $("#bookIdHidden").val();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
function cancelToCollect() {
|
||||
var token = localStorage.getItem("token");
|
||||
|
||||
if (token) {
|
||||
$.get("/user/cancelToCollect", {"bookId": $("#bookIdHidden").val(), "token": token}, function (data) {
|
||||
layer.alert(data.desc);
|
||||
if (data.code == 1) {
|
||||
$('#collectButton').unbind("click");
|
||||
$("#collectButton").text("加入书架");
|
||||
$("#collectButton").click(function () {
|
||||
addToCollect();
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
} else {
|
||||
window.location.href = "/user/login.html?bookId=" + $("#bookIdHidden").val();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function searchBooks(keyword) {
|
||||
window.location.href = "/book/book_ranking.html?keyword=" + encodeURI(keyword);
|
||||
}
|
||||
|
||||
$.post("/book/addVisitCount", {"bookId": $("#bookIdHidden").val()}, function () {
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
</html>
|
96
templates/green/html/mobile/book/book_index.html
Normal file
@ -0,0 +1,96 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title th:utext="${book.bookName}+'最新免费章节目录列表'"></title>
|
||||
|
||||
<meta name="keywords" th:content="${book.bookName}+','+${book.bookName}+'最新章节'">
|
||||
|
||||
<meta name="description"
|
||||
th:content="${book.bookName}+'最新章节列表,'+${book.bookName}+'最新更新章节免费无广告无弹窗在线阅读TXT下载。'">
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div th:include="mobile/common/css :: css"></div>
|
||||
|
||||
<style type="text/css">
|
||||
|
||||
.indexP p a {
|
||||
color: #4c6978;
|
||||
}
|
||||
|
||||
.line-limit-length {
|
||||
|
||||
overflow: hidden;
|
||||
|
||||
text-overflow: ellipsis;
|
||||
|
||||
white-space: nowrap;
|
||||
|
||||
}
|
||||
</style>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<div id="content">
|
||||
<input type="hidden" id="bookIdHidden" th:value="${book.id}"/>
|
||||
<div style="height: 50px;line-height: 50px;text-align: center" class="layui-header header header-doc layui-bg-cyan">
|
||||
|
||||
<div style="float: left;margin-left: 10px">
|
||||
<a href="javascript:history.go(-1)">
|
||||
<i style="font-size: 20px;color: #fff;" class="layui-icon"></i></a>
|
||||
</div>
|
||||
<a style="color: #ffffff;" th:href="'/book/'+ ${book.id} + '.html'"><b class="layui-icon" th:utext="${book.bookName}"></b></a>
|
||||
<div style="float: right;margin-right: 10px">
|
||||
<a href="/"><i style="font-size: 20px;color: #fff;" class="layui-icon"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<p style="height: 30px;line-height: 30px;padding: 10px">
|
||||
|
||||
<a href="#buttom" style="color: red"> ↓直达页面底部</a>
|
||||
</p>
|
||||
|
||||
|
||||
<div class="layui-colla-content layui-show indexP layui-row">
|
||||
<p class="line-limit-length layui-col-xs12 layui-col-sm4 layui-col-md3 layui-col-lg2" style="padding-left:10px;height: 50px;line-height: 50px;" th:each="index : ${bookIndexList}">
|
||||
<a style="color:#333;" th:href="'/book/'+${index.bookId}+'/'+${index.id}+'.html'" th:utext="${index.indexName}">
|
||||
|
||||
</a>
|
||||
</p>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div th:replace="mobile/common/footer :: footer">
|
||||
</div>
|
||||
|
||||
<a name="buttom"></a>
|
||||
</body>
|
||||
<div th:replace="mobile/common/js :: js">
|
||||
</div>
|
||||
<script>
|
||||
$("#content").css("min-height",($(window).height()-60)+"px");
|
||||
$.get("/book/addVisit",{"bookId":$("#bookIdHidden").val()},function(){});
|
||||
function toMyCollect(){
|
||||
var token = localStorage.getItem("token");
|
||||
if(token) {
|
||||
window.location.href = "/book/search?token=" + token;
|
||||
}else{
|
||||
window.location.href = "/user/login.html";
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
</html>
|
320
templates/green/html/mobile/book/book_ranking.html
Normal file
@ -0,0 +1,320 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title th:text="${application.website.name}+'列表'"></title>
|
||||
|
||||
<meta name="keywords"
|
||||
th:content="${application.website.name}+',精品小说,弹幕网站,弹幕,弹幕小说网站,免费小说,小说阅读,小说排行,轻小说,txt小说下载,电子书下载,动漫轻小说,日本轻小说'">
|
||||
|
||||
<meta name="description"
|
||||
th:content="${application.website.name}+'是国内优秀的小说弹幕网站,'+${application.website.name}+'提供海量热门网络小说,日本轻小说,国产轻小说,动漫小说,轻小说在线阅读和TXT小说下载,致力于网络精品小说的收集,智能计算小说评分,打造小说精品排行榜,致力于无广告无弹窗的小说阅读环境。'">
|
||||
|
||||
|
||||
<div th:include="mobile/common/css :: css"></div>
|
||||
|
||||
</div>
|
||||
|
||||
<style type="text/css">
|
||||
|
||||
|
||||
.line-limit-length {
|
||||
|
||||
overflow: hidden;
|
||||
|
||||
text-overflow: ellipsis;
|
||||
|
||||
white-space: nowrap;
|
||||
|
||||
}
|
||||
|
||||
.indexP p a {
|
||||
color: #4c6978;
|
||||
}
|
||||
|
||||
.Readarea {
|
||||
font-size: 18px;
|
||||
line-height: 35px;
|
||||
padding: 10px;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
div, p {
|
||||
wrap-work: break-word;
|
||||
word-break: break-all;
|
||||
word-wrap: break-word;
|
||||
word-break: normal;
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
-ms-box-sizing: border-box;
|
||||
}
|
||||
|
||||
.indexDiv a {
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
img {
|
||||
width: 130px;
|
||||
height: 180px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
||||
<input type="hidden" id="limit" th:value="${limit}"/>
|
||||
<input type="hidden" id="curr" th:value="${curr}"/>
|
||||
<input type="hidden" id="total" th:value="${total}"/>
|
||||
<input type="hidden" id="ids" th:value="${ids}"/>
|
||||
<input type="hidden" id="bookStatus" th:value="${bookStatus}"/>
|
||||
<input type="hidden" id="token" th:value="${token}"/>
|
||||
<input type="hidden" id="keyword" th:value="${keyword}"/>
|
||||
<input type="hidden" id="catId" th:value="${catId}"/>
|
||||
<input type="hidden" id="sortBy" th:value="${sortBy}"/>
|
||||
<input type="hidden" id="sort" th:value="${sort}"/>
|
||||
|
||||
<div style="height: 50px;line-height: 50px;text-align: center" class="layui-header header header-doc layui-bg-cyan">
|
||||
|
||||
<div style="float: left;margin-left: 10px">
|
||||
<a href="javascript:history.go(-1)">
|
||||
<i style="font-size: 20px;color: #fff;" class="layui-icon"></i></a>
|
||||
</div>
|
||||
<b class="layui-icon">小说列表</b>
|
||||
<div style="float: right;margin-right: 10px">
|
||||
<a href="/"><i style="font-size: 20px;color: #fff;" class="layui-icon"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-container">
|
||||
<div class="layui-row">
|
||||
|
||||
<div class="layui-col-xs10 layui-col-sm10 layui-col-md11 layui-col-lg11" style="padding-top:1%">
|
||||
<input id="title" type="text" name="title" required lay-verify="required" placeholder="请输入书名·作者"
|
||||
autocomplete="off"
|
||||
class="layui-input" th:value="${keyword}">
|
||||
</div>
|
||||
<div class="layui-col-xs1" style="padding: 1%">
|
||||
<button onclick="search(1,20)" class="layui-btn" lay-submit lay-filter="formDemo">搜索</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div id="bookList">
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div id="books" style="text-align: center"></div>
|
||||
|
||||
|
||||
<div th:replace="mobile/common/footer :: footer">
|
||||
</div>
|
||||
|
||||
<a name="buttom"></a>
|
||||
</body>
|
||||
|
||||
<div th:replace="mobile/common/js :: js"></div>
|
||||
|
||||
<script>
|
||||
|
||||
var catId = getQueryVariable("catId");
|
||||
var bookStatus = getQueryVariable("bookStatus");
|
||||
var sortBy = getQueryVariable("sortBy");
|
||||
var keyword = getQueryVariable("keyword");
|
||||
|
||||
if(keyword != false){
|
||||
$("#title").val(decodeURI(keyword));
|
||||
}else{
|
||||
keyword = "";
|
||||
}
|
||||
|
||||
|
||||
|
||||
search(1,20);
|
||||
|
||||
function search(curr,limit) {
|
||||
|
||||
|
||||
|
||||
var searchData = {};
|
||||
|
||||
searchData.curr = curr;
|
||||
searchData.limit = limit;
|
||||
|
||||
keyword = $("#title").val();
|
||||
|
||||
if(catId != false){
|
||||
searchData.catId = catId;
|
||||
}
|
||||
|
||||
if(bookStatus != false){
|
||||
searchData.bookStatus = bookStatus;
|
||||
}
|
||||
|
||||
if(sortBy != false){
|
||||
searchData.sort = sortBy;
|
||||
}else if(!keyword){
|
||||
sortBy = "last_index_update_time";
|
||||
}
|
||||
|
||||
if(keyword){
|
||||
searchData.keyword = keyword;
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/book/searchByPage",
|
||||
data: searchData,
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
var bookList = data.data.list;
|
||||
var bookListHtml = "";
|
||||
for (var i = 0; i < bookList.length; i++) {
|
||||
var book = bookList[i];
|
||||
|
||||
/*var end = book.bookDesc.indexOf("<");
|
||||
if(end != -1) {
|
||||
book.bookDesc = book.bookDesc.substring(0,end);
|
||||
}*/
|
||||
|
||||
if(book.bookDesc){
|
||||
book.bookDesc = book.bookDesc.replace(/<[^>]+>/g,"").replace(/\s+/g,"").replace(/ /g,"");
|
||||
}
|
||||
|
||||
bookListHtml += ("<div class=\"layui-row\" style=\"margin-bottom:10px;padding:10px;background: #f2f2f2\">\n" +
|
||||
" <a href=\"/book/"+book.id+".html\">\n" +
|
||||
" <div class=\"layui-col-xs6 layui-col-sm3 layui-col-md2 layui-col-lg2\" style=\"text-align: center\">\n" +
|
||||
" <img style='width: 130px;height: 180px' align=\"center\"\n" +
|
||||
" src=\""+book.picUrl+"\"/>\n" +
|
||||
"\n" +
|
||||
" </div>\n" +
|
||||
" </a>\n" +
|
||||
" <div style=\"padding: 10px\" class=\"layui-col-xs6 layui-col-sm8 layui-col-md8 layui-col-lg8\">\n" +
|
||||
" <a href=\"/book/"+book.id+".html\">\n" +
|
||||
" <div class=\"line-limit-length\" style=\";color: #000;font-size: 15px\">"+book.bookName+"</div>\n" +
|
||||
" </a>\n" +
|
||||
" <div style=\";color: #4c6978;float: right;\"><i style=\"color: red\"></i></div>\n" +
|
||||
" <a href=\"/book/book_ranking.html?keyword="+encodeURI(book.authorName)+"\">\n" +
|
||||
" <div style=\";color: #a6a6a6;\" class=\"line-limit-length\">作者:"+book.authorName+"</div>\n" +
|
||||
" </a>\n" +
|
||||
" <div style=\"margin-top: 5px;color: #a6a6a6;\">类别:"+book.catName+"</div>\n" +
|
||||
" <div style=\"margin-top: 5px;color: #a6a6a6;\">状态:"+(book.bookStatus==0?'连载':'完结')+"</div>\n" +
|
||||
" <div style=\"margin-top: 5px;color: #a6a6a6;\">更新:<i style='color: red'>"+book.lastIndexUpdateTime.substr(0,11)+"</i>\n" +
|
||||
" </div>\n" +
|
||||
" <div style=\"margin-top: 5px;color: #a6a6a6;\">简介:"+(book.bookDesc?(book.bookDesc.length>15?(book.bookDesc.substr(0,15)+"..."):book.bookDesc):book.bookDesc)+"</div>\n" +
|
||||
"\n" +
|
||||
"\n" +
|
||||
" </div>\n" +
|
||||
"\n" +
|
||||
" </div>");
|
||||
}
|
||||
$("#bookList").html(bookListHtml);
|
||||
|
||||
layui.use('laypage', function () {
|
||||
var laypage = layui.laypage;
|
||||
|
||||
//执行一个laypage实例
|
||||
laypage.render({
|
||||
elem: 'books' //注意,这里的 test1 是 ID,不用加 # 号
|
||||
, count: data.data.total //数据总数,从服务端得到,
|
||||
, curr: data.data.pageNum
|
||||
, limit: data.data.pageSize
|
||||
, jump: function (obj, first) {
|
||||
|
||||
|
||||
//obj包含了当前分页的所有参数,比如:
|
||||
console.log(obj.curr); //得到当前页,以便向服务端请求对应页的数据。
|
||||
console.log(obj.limit); //得到每页显示的条数
|
||||
|
||||
|
||||
//首次不执行
|
||||
if (!first) {
|
||||
search(obj.curr, obj.limit);
|
||||
} else {
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
} else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
|
||||
function searchByAllCondition(curr, limit, newKeyword) {
|
||||
var toUrl = "/book/search?curr=" + curr + "&limit=" + limit;
|
||||
var ids = $("#ids").val();
|
||||
if (ids) {
|
||||
toUrl += ("&historyBookIds=" + ids);
|
||||
}
|
||||
var token = $("#token").val();
|
||||
if (token) {
|
||||
toUrl += ("&token=" + token);
|
||||
}
|
||||
var keyword = $("#keyword").val();
|
||||
if (newKeyword) {
|
||||
toUrl += encodeURI("&keyword=" + newKeyword);
|
||||
} else if (keyword) {
|
||||
toUrl += encodeURI("&keyword=" + keyword);
|
||||
}
|
||||
var bookStatus = $("#bookStatus").val();
|
||||
if (bookStatus) {
|
||||
toUrl += ("&bookStatus=" + bookStatus);
|
||||
}
|
||||
var catId = $("#catId").val();
|
||||
if (catId) {
|
||||
toUrl += ("&catId=" + catId);
|
||||
}
|
||||
|
||||
var sortBy = $("#sortBy").val();
|
||||
if (sortBy) {
|
||||
toUrl += ("&sortBy=" + sortBy);
|
||||
}
|
||||
|
||||
var sort = $("#sort").val();
|
||||
if (sort) {
|
||||
toUrl += ("&sort=" + sort);
|
||||
}
|
||||
|
||||
window.location.href = toUrl;
|
||||
}
|
||||
|
||||
function searchBooks() {
|
||||
var keywords = $("#title").val();
|
||||
$("#keyword").val("");
|
||||
searchByAllCondition(1, 20, keywords);
|
||||
}
|
||||
|
||||
</script>
|
||||
<script>
|
||||
|
||||
|
||||
|
||||
|
||||
function toMyCollect() {
|
||||
var token = localStorage.getItem("token");
|
||||
if (token) {
|
||||
window.location.href = "/book/search?token=" + token;
|
||||
} else {
|
||||
window.location.href = "/user/login.html";
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
</html>
|
88
templates/green/html/mobile/book/book_submit.html
Normal file
@ -0,0 +1,88 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title>小说提交</title>
|
||||
|
||||
<div th:include="common/css :: css"></div>
|
||||
|
||||
|
||||
|
||||
</head>
|
||||
<body id="read" >
|
||||
|
||||
</div>
|
||||
|
||||
<div style="height: 50px;line-height: 50px;text-align: center" class="layui-header header header-doc layui-bg-cyan">
|
||||
|
||||
<div style="float: left;margin-left: 10px">
|
||||
<a href="javascript:history.go(-1)">
|
||||
<i style="font-size: 20px;color: #92B8B1;" class="layui-icon"></i></a>
|
||||
</div>
|
||||
<b class="layui-icon">单本小说提交</b>
|
||||
<div style="float: right;margin-right: 10px"><a href="/">
|
||||
<i style="font-size: 20px;color: #92B8B1;" class="layui-icon"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div style="height: 800px;padding: 20px;border: 1px solid #eee;">
|
||||
<form class="layui-form" action="">
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">详情页Url:</label>
|
||||
<div class="layui-col-xs7 layui-col-sm6 layui-col-md3 layui-col-lg1" >
|
||||
<input type="text" id="bookUrl" name="bookUrl" required lay-verify="required" placeholder="请输入源站小说详情页Url" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">小说名:</label>
|
||||
<div class="layui-col-xs7 layui-col-sm6 layui-col-md3 layui-col-lg1" >
|
||||
<input type="text" id="bookName" name="bookName" required lay-verify="required" placeholder="请输入小说名" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">小说评分:</label>
|
||||
<div class="layui-col-xs7 layui-col-sm6 layui-col-md3 layui-col-lg1">
|
||||
<input type="number" id="score" name="score" required lay-verify="required" placeholder="请输入小说评分" autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-input-block">
|
||||
<button class="layui-btn" lay-submit lay-filter="formDemo">提交</button>
|
||||
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<div th:replace="common/footer :: footer">
|
||||
</div>
|
||||
|
||||
<a name="buttom"></a>
|
||||
</body>
|
||||
<div th:replace="common/js :: js"></div>
|
||||
|
||||
|
||||
<script>
|
||||
//Demo
|
||||
layui.use('form', function(){
|
||||
var form = layui.form;
|
||||
|
||||
//监听提交
|
||||
form.on('submit(formDemo)', function(){
|
||||
$.post("/book/submit",{"bookUrl":$("#bookUrl").val(),"bookName":$("#bookName").val(),"score":$("#score").val()},function (data) {
|
||||
if(data.code == 1 ){
|
||||
layer.alert("提交成功,任务排队中,请过一段时间后再搜索查看");
|
||||
}else{
|
||||
layer.alert("提交失败");
|
||||
}
|
||||
});
|
||||
return false;
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
</html>
|
270
templates/green/html/mobile/book/mh_book_search.html
Normal file
@ -0,0 +1,270 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title th:text="${application.seoConfig.page['mh-search.title']}"></title>
|
||||
|
||||
<meta name="keywords" th:content="${application.seoConfig.page['mh-search.keyword']}">
|
||||
|
||||
<meta name="description"
|
||||
th:content="${application.seoConfig.page['mh-search.description']}">
|
||||
|
||||
<div th:include="common/css :: css"></div>
|
||||
|
||||
</div>
|
||||
|
||||
<style type="text/css">
|
||||
|
||||
|
||||
.line-limit-length {
|
||||
|
||||
overflow: hidden;
|
||||
|
||||
text-overflow: ellipsis;
|
||||
|
||||
white-space: nowrap;
|
||||
|
||||
}
|
||||
|
||||
.indexP p a {
|
||||
color: #4c6978;
|
||||
}
|
||||
|
||||
.Readarea {
|
||||
font-size: 18px;
|
||||
line-height: 35px;
|
||||
padding: 10px;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
div, p {
|
||||
wrap-work: break-word;
|
||||
word-break: break-all;
|
||||
word-wrap: break-word;
|
||||
word-break: normal;
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
-ms-box-sizing: border-box;
|
||||
}
|
||||
|
||||
.indexDiv a {
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
img {
|
||||
width: 147px;
|
||||
height: 197px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
||||
<input type="hidden" id="limit" th:value="${limit}"/>
|
||||
<input type="hidden" id="curr" th:value="${curr}"/>
|
||||
<input type="hidden" id="total" th:value="${total}"/>
|
||||
<input type="hidden" id="ids" th:value="${ids}"/>
|
||||
<input type="hidden" id="keyword" th:value="${keyword}"/>
|
||||
<input type="hidden" id="softTag" th:value="${softTag}"/>
|
||||
<input type="hidden" id="sortBy" th:value="${sortBy}"/>
|
||||
<input type="hidden" id="sort" th:value="${sort}"/>
|
||||
<input type="hidden" id="bookStatus" th:value="${bookStatus}"/>
|
||||
<input type="hidden" id="softCat" th:value="${softCat}"/>
|
||||
|
||||
<ul class="layui-nav" lay-filter="" style="padding:0 20px;text-align: center" >
|
||||
<li id="menunew" class="layui-nav-item"><a href="/book/searchSoftBook.html?catId=9">最新</a></li>
|
||||
<li id="menu21" class="layui-nav-item"><a href="/book/searchSoftBook.html?catId=9&softCat=3262">少年漫</a></li>
|
||||
<li id="menu22" class="layui-nav-item"><a href="/book/searchSoftBook.html?catId=9&softCat=3263">少女漫</a></li>
|
||||
<li id="menucomplete" class="layui-nav-item"><a >完本</a>
|
||||
<dl class="layui-nav-child"> <!-- 二级菜单 -->
|
||||
<dd><a href="/book/searchSoftBook.html?catId=9&bookStatus=已完成">全部</a></dd>
|
||||
<dd><a href="/book/searchSoftBook.html?catId=9&bookStatus=已完成&softCat=3262">少年漫</a></dd>
|
||||
<dd><a href="/book/searchSoftBook.html?catId=9&bookStatus=已完成&softCat=3263">少女漫</a></dd>
|
||||
</dl>
|
||||
</li>
|
||||
<li id="menuhot" class="layui-nav-item"><a >排行</a>
|
||||
<dl class="layui-nav-child"> <!-- 二级菜单 -->
|
||||
<dd><a href="/book/searchSoftBook.html?catId=9&sortBy=score">全部</a></dd>
|
||||
<dd><a href="/book/searchSoftBook.html?catId=9&sortBy=score&softCat=3262">少年漫</a></dd>
|
||||
<dd><a href="/book/searchSoftBook.html?catId=9&bookStatus=已完成&softCat=3263">少女漫</a></dd>
|
||||
</dl>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<div class="layui-container">
|
||||
<div class="layui-row">
|
||||
|
||||
<div class="layui-col-xs10 layui-col-sm10 layui-col-md11 layui-col-lg11" style="padding-top:1%">
|
||||
<input id="title" type="text" name="title" required lay-verify="required" placeholder="请输入书名·作者"
|
||||
autocomplete="off"
|
||||
class="layui-input" th:value="${keyword}">
|
||||
</div>
|
||||
<div class="layui-col-xs1" style="padding: 1%">
|
||||
<button onclick="searchBooks()" class="layui-btn" lay-submit lay-filter="formDemo">搜索</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div th:each="book : ${books}" class="layui-row" style="margin-bottom:10px;padding:10px;background: #f2f2f2">
|
||||
<a th:href="'/book/'+ ${book.id} + '.html'">
|
||||
<div class="layui-col-xs6 layui-col-sm3 layui-col-md2 layui-col-lg2" style="text-align: center" th:switch = "${application.noLazy}">
|
||||
<img th:case="'1'" align="center"
|
||||
th:attr="data-src=${book.picUrl}"/>
|
||||
<img th:case="*" align="center"
|
||||
class="lazyload" th:attr="data-src=${book.picUrl}"/>
|
||||
</div>
|
||||
</a>
|
||||
<div style="padding: 20px" class="layui-col-xs6 layui-col-sm8 layui-col-md8 layui-col-lg8">
|
||||
<a th:href="'/book/'+ ${book.id} + '.html'">
|
||||
<div class="line-limit-length" style=";color: #4c6978;font-weight: bold;font-size: 15px"
|
||||
th:text="${book.bookName}"></div>
|
||||
</a>
|
||||
<div style=";color: #4c6978;float: right;"><i style="color: red" th:text="${book.score} + '分'"></i></div>
|
||||
<a th:href="'/book/searchSoftBook.html?catId=9&keyword='+ ${book.author}">
|
||||
<div style=";color: #4c6978;" class="line-limit-length" th:text="'作者:'+ ${book.author}"></div>
|
||||
</a>
|
||||
<div style="margin-top: 5px;color: #4c6978;" th:text="'类别:'+ ${book.cateName}"></div>
|
||||
<div style="margin-top: 5px;color: #4c6978;" th:text="'状态:'+ ${book.bookStatus}"></div>
|
||||
<div style="margin-top: 5px;color: #4c6978;">更新:<i th:text="${#dates.format(book.updateTime, 'yy-MM-dd')}"></i>
|
||||
</div>
|
||||
<div class="layui-collapse" style="margin-top: 5px;">
|
||||
<div class="layui-colla-item">
|
||||
<h2 style="color: #4c6978;" class="layui-colla-title">简介:</h2>
|
||||
<div style="color: #4c6978;" class="layui-colla-content" th:utext="${book.bookDesc}">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div id="books" style="text-align: center"></div>
|
||||
|
||||
|
||||
<div th:replace="common/soft_footer :: footer">
|
||||
</div>
|
||||
|
||||
<a name="buttom"></a>
|
||||
</body>
|
||||
|
||||
<div th:replace="common/js :: js"></div>
|
||||
<script src="/js/lazyload.js"></script>
|
||||
|
||||
<script>
|
||||
lazyload();
|
||||
layui.use('laypage', function () {
|
||||
var laypage = layui.laypage;
|
||||
|
||||
//执行一个laypage实例
|
||||
laypage.render({
|
||||
elem: 'books' //注意,这里的 test1 是 ID,不用加 # 号
|
||||
, count: $("#total").val() //数据总数,从服务端得到,
|
||||
, curr: $("#curr").val()
|
||||
, limit: $("#limit").val()
|
||||
, jump: function (obj, first) {
|
||||
|
||||
|
||||
//obj包含了当前分页的所有参数,比如:
|
||||
console.log(obj.curr); //得到当前页,以便向服务端请求对应页的数据。
|
||||
console.log(obj.limit); //得到每页显示的条数
|
||||
|
||||
|
||||
//首次不执行
|
||||
if (!first) {
|
||||
searchByAllCondition(obj.curr,obj.limit);
|
||||
} else {
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
function searchByAllCondition(curr,limit,newKeyword){
|
||||
var toUrl = "/book/searchSoftBook.html?catId=9&curr=" + curr + "&limit=" + limit;
|
||||
var ids = $("#ids").val();
|
||||
if(ids){
|
||||
toUrl += ("&historyBookIds=" + ids);
|
||||
}
|
||||
var keyword = $("#keyword").val();
|
||||
if(newKeyword){
|
||||
toUrl += encodeURI("&keyword=" + newKeyword);
|
||||
}else if (keyword) {
|
||||
toUrl += encodeURI("&keyword=" + keyword);
|
||||
}
|
||||
var bookStatus = $("#bookStatus").val();
|
||||
if(bookStatus){
|
||||
toUrl += ("&bookStatus=" + bookStatus);
|
||||
}
|
||||
var softCat = $("#softCat").val();
|
||||
if (softCat) {
|
||||
toUrl += ("&softCat=" + softCat);
|
||||
}
|
||||
var softTag = $("#softTag").val();
|
||||
if (softTag) {
|
||||
toUrl += ("&softTag=" + softTag);
|
||||
}
|
||||
|
||||
var sortBy = $("#sortBy").val();
|
||||
if (sortBy) {
|
||||
toUrl += ("&sortBy=" + sortBy);
|
||||
}
|
||||
|
||||
var sort = $("#sort").val();
|
||||
if (sort) {
|
||||
toUrl += ("&sort=" + sort);
|
||||
}
|
||||
|
||||
window.location.href = toUrl;
|
||||
}
|
||||
|
||||
function searchBooks() {
|
||||
var keywords = $("#title").val();
|
||||
$("#keyword").val("");
|
||||
searchByAllCondition(1,20,keywords);
|
||||
}
|
||||
|
||||
</script>
|
||||
<script>
|
||||
(function(){
|
||||
|
||||
|
||||
var sortCat = $("#softCat").val();
|
||||
var sortBy = $("#sortBy").val();
|
||||
if(sortBy == 'score'){
|
||||
$("#menuhot").addClass("layui-this");
|
||||
}else if($("#bookStatus").val()){
|
||||
$("#menucomplete").addClass("layui-this");
|
||||
}else if(sortCat){
|
||||
$("#menu"+sortCat).addClass("layui-this");
|
||||
}else{
|
||||
$("#menunew").addClass("layui-this");
|
||||
}
|
||||
|
||||
})();
|
||||
|
||||
|
||||
function toMyCollect(){
|
||||
var token = localStorage.getItem("token");
|
||||
if(token) {
|
||||
window.location.href = "/book/search?token=" + token;
|
||||
}else{
|
||||
window.location.href = "/user/login.html";
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
</html>
|
294
templates/green/html/mobile/book/soft_book_search.html
Normal file
@ -0,0 +1,294 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title th:text="${application.seoConfig.page['soft-search.title']}"></title>
|
||||
|
||||
<meta name="keywords" th:content="${application.seoConfig.page['soft-search.keyword']}">
|
||||
|
||||
<meta name="description"
|
||||
th:content="${application.seoConfig.page['soft-search.description']}">
|
||||
|
||||
<div th:include="common/css :: css"></div>
|
||||
|
||||
</div>
|
||||
|
||||
<style type="text/css">
|
||||
|
||||
|
||||
.line-limit-length {
|
||||
|
||||
overflow: hidden;
|
||||
|
||||
text-overflow: ellipsis;
|
||||
|
||||
white-space: nowrap;
|
||||
|
||||
}
|
||||
|
||||
.indexP p a {
|
||||
color: #4c6978;
|
||||
}
|
||||
|
||||
.Readarea {
|
||||
font-size: 18px;
|
||||
line-height: 35px;
|
||||
padding: 10px;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
div, p {
|
||||
wrap-work: break-word;
|
||||
word-break: break-all;
|
||||
word-wrap: break-word;
|
||||
word-break: normal;
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
-ms-box-sizing: border-box;
|
||||
}
|
||||
|
||||
.indexDiv a {
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
img {
|
||||
width: 147px;
|
||||
height: 197px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
||||
<input type="hidden" id="limit" th:value="${limit}"/>
|
||||
<input type="hidden" id="curr" th:value="${curr}"/>
|
||||
<input type="hidden" id="total" th:value="${total}"/>
|
||||
<input type="hidden" id="ids" th:value="${ids}"/>
|
||||
<input type="hidden" id="keyword" th:value="${keyword}"/>
|
||||
<input type="hidden" id="softTag" th:value="${softTag}"/>
|
||||
<input type="hidden" id="sortBy" th:value="${sortBy}"/>
|
||||
<input type="hidden" id="sort" th:value="${sort}"/>
|
||||
<input type="hidden" id="bookStatus" th:value="${bookStatus}"/>
|
||||
<input type="hidden" id="softCat" th:value="${softCat}"/>
|
||||
|
||||
<ul class="layui-nav" lay-filter="" style="padding:0 20px;text-align: center">
|
||||
<li id="menunew" class="layui-nav-item"><a href="/book/searchSoftBook.html">最新</a></li>
|
||||
<li id="menu21" class="layui-nav-item"><a href="/book/searchSoftBook.html?softCat=21">魔幻</a></li>
|
||||
<li id="menu22" class="layui-nav-item"><a href="/book/searchSoftBook.html?softCat=22">玄幻</a></li>
|
||||
<li id="menu23" class="layui-nav-item"><a href="/book/searchSoftBook.html?softCat=23">古风</a></li>
|
||||
<li id="menu24" class="layui-nav-item"><a href="/book/searchSoftBook.html?softCat=24">科幻</a></li>
|
||||
<li id="menu25" class="layui-nav-item"><a href="/book/searchSoftBook.html?softCat=25">校园</a></li>
|
||||
<li id="menu26" class="layui-nav-item"><a href="/book/searchSoftBook.html?softCat=26">都市</a></li>
|
||||
<li id="menu27" class="layui-nav-item"><a href="/book/searchSoftBook.html?softCat=27">游戏</a></li>
|
||||
<li id="menu28" class="layui-nav-item"><a href="/book/searchSoftBook.html?softCat=28">同人</a></li>
|
||||
<li id="menu29" class="layui-nav-item"><a href="/book/searchSoftBook.html?softCat=29">悬疑</a></li>
|
||||
<li id="menu0" class="layui-nav-item"><a href="/book/searchSoftBook.html?softCat=0">动漫</a></li>
|
||||
<li id="menucomplete" class="layui-nav-item"><a>完本</a>
|
||||
<dl class="layui-nav-child"> <!-- 二级菜单 -->
|
||||
<dd><a href="/book/searchSoftBook.html?bookStatus=已完成">全部</a></dd>
|
||||
<dd><a href="/book/searchSoftBook.html?bookStatus=已完成&softCat=21">魔幻</a></dd>
|
||||
<dd><a href="/book/searchSoftBook.html?bookStatus=已完成&softCat=22">玄幻</a></dd>
|
||||
<dd><a href="/book/searchSoftBook.html?bookStatus=已完成&softCat=23">古风</a></dd>
|
||||
<dd><a href="/book/searchSoftBook.html?bookStatus=已完成&softCat=24">科幻</a></dd>
|
||||
<dd><a href="/book/searchSoftBook.html?bookStatus=已完成&softCat=25">校园</a></dd>
|
||||
<dd><a href="/book/searchSoftBook.html?bookStatus=已完成&softCat=26">都市</a></dd>
|
||||
<dd><a href="/book/searchSoftBook.html?bookStatus=已完成&softCat=27">游戏</a></dd>
|
||||
<dd><a href="/book/searchSoftBook.html?bookStatus=已完成&softCat=28">同人</a></dd>
|
||||
<dd><a href="/book/searchSoftBook.html?bookStatus=已完成&softCat=29">悬疑</a></dd>
|
||||
<dd><a href="/book/searchSoftBook.html?bookStatus=已完成&softCat=0">动漫</a></dd>
|
||||
</dl>
|
||||
</li>
|
||||
<li id="menuhot" class="layui-nav-item"><a>排行</a>
|
||||
<dl class="layui-nav-child"> <!-- 二级菜单 -->
|
||||
<dd><a href="/book/searchSoftBook.html?sortBy=score">全部</a></dd>
|
||||
<dd><a href="/book/searchSoftBook.html?sortBy=score&softCat=21">魔幻</a></dd>
|
||||
<dd><a href="/book/searchSoftBook.html?sortBy=score&softCat=22">玄幻</a></dd>
|
||||
<dd><a href="/book/searchSoftBook.html?sortBy=score&softCat=23">古风</a></dd>
|
||||
<dd><a href="/book/searchSoftBook.html?sortBy=score&softCat=24">科幻</a></dd>
|
||||
<dd><a href="/book/searchSoftBook.html?sortBy=score&softCat=25">校园</a></dd>
|
||||
<dd><a href="/book/searchSoftBook.html?sortBy=score&softCat=26">都市</a></dd>
|
||||
<dd><a href="/book/searchSoftBook.html?sortBy=score&softCat=27">游戏</a></dd>
|
||||
<dd><a href="/book/searchSoftBook.html?sortBy=score&softCat=28">同人</a></dd>
|
||||
<dd><a href="/book/searchSoftBook.html?sortBy=score&softCat=29">悬疑</a></dd>
|
||||
<dd><a href="/book/searchSoftBook.html?sortBy=score&softCat=0">动漫</a></dd>
|
||||
</dl>
|
||||
</li>
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<div class="layui-container">
|
||||
<div class="layui-row">
|
||||
|
||||
<div class="layui-col-xs10 layui-col-sm10 layui-col-md11 layui-col-lg11" style="padding-top:1%">
|
||||
<input id="title" type="text" name="title" required lay-verify="required" placeholder="请输入书名·作者"
|
||||
autocomplete="off"
|
||||
class="layui-input" th:value="${keyword}">
|
||||
</div>
|
||||
<div class="layui-col-xs1" style="padding: 1%">
|
||||
<button onclick="searchBooks()" class="layui-btn" lay-submit lay-filter="formDemo">搜索</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div th:each="book : ${books}" class="layui-row" style="margin-bottom:10px;padding:10px;background: #f2f2f2">
|
||||
<a th:href="'/book/'+ ${book.id} + '.html'">
|
||||
<div class="layui-col-xs6 layui-col-sm3 layui-col-md2 layui-col-lg2" style="text-align: center"
|
||||
th:switch="${application.noLazy}">
|
||||
<img th:case="'1'" align="center"
|
||||
th:attr="data-src=${book.picUrl}"/>
|
||||
<img th:case="*" align="center"
|
||||
class="lazyload" th:attr="data-src=${book.picUrl}"/>
|
||||
</div>
|
||||
</a>
|
||||
<div style="padding: 20px" class="layui-col-xs6 layui-col-sm8 layui-col-md8 layui-col-lg8">
|
||||
<a th:href="'/book/'+ ${book.id} + '.html'">
|
||||
<div class="line-limit-length" style=";color: #4c6978;font-weight: bold;font-size: 15px"
|
||||
th:text="${book.bookName}"></div>
|
||||
</a>
|
||||
<div style=";color: #4c6978;float: right;"><i style="color: red" th:text="${book.score} + '分'"></i></div>
|
||||
<a th:href="'/book/searchSoftBook.html?keyword='+ ${book.author}">
|
||||
<div style=";color: #4c6978;" class="line-limit-length" th:text="'作者:'+ ${book.author}"></div>
|
||||
</a>
|
||||
<div style="margin-top: 5px;color: #4c6978;" th:text="'类别:'+ ${book.cateName}"></div>
|
||||
<div style="margin-top: 5px;color: #4c6978;" th:text="'状态:'+ ${book.bookStatus}"></div>
|
||||
<div style="margin-top: 5px;color: #4c6978;">更新:<i th:text="${#dates.format(book.updateTime, 'yy-MM-dd')}"></i>
|
||||
</div>
|
||||
<div class="layui-collapse" style="margin-top: 5px;">
|
||||
<div class="layui-colla-item">
|
||||
<h2 style="color: #4c6978;" class="layui-colla-title">简介:</h2>
|
||||
<div style="color: #4c6978;" class="layui-colla-content" th:utext="${book.bookDesc}">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div id="books" style="text-align: center"></div>
|
||||
|
||||
|
||||
<div th:replace="common/soft_footer :: footer">
|
||||
</div>
|
||||
|
||||
<a name="buttom"></a>
|
||||
</body>
|
||||
|
||||
<div th:replace="common/js :: js"></div>
|
||||
<script src="/js/lazyload.js"></script>
|
||||
|
||||
<script>
|
||||
lazyload();
|
||||
layui.use('laypage', function () {
|
||||
var laypage = layui.laypage;
|
||||
|
||||
//执行一个laypage实例
|
||||
laypage.render({
|
||||
elem: 'books' //注意,这里的 test1 是 ID,不用加 # 号
|
||||
, count: $("#total").val() //数据总数,从服务端得到,
|
||||
, curr: $("#curr").val()
|
||||
, limit: $("#limit").val()
|
||||
, jump: function (obj, first) {
|
||||
|
||||
|
||||
//obj包含了当前分页的所有参数,比如:
|
||||
console.log(obj.curr); //得到当前页,以便向服务端请求对应页的数据。
|
||||
console.log(obj.limit); //得到每页显示的条数
|
||||
|
||||
|
||||
//首次不执行
|
||||
if (!first) {
|
||||
searchByAllCondition(obj.curr, obj.limit);
|
||||
} else {
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
function searchByAllCondition(curr, limit, newKeyword) {
|
||||
var toUrl = "/book/searchSoftBook.html?curr=" + curr + "&limit=" + limit;
|
||||
var ids = $("#ids").val();
|
||||
if (ids) {
|
||||
toUrl += ("&historyBookIds=" + ids);
|
||||
}
|
||||
var keyword = $("#keyword").val();
|
||||
if (newKeyword) {
|
||||
toUrl += encodeURI("&keyword=" + newKeyword);
|
||||
} else if (keyword) {
|
||||
toUrl += encodeURI("&keyword=" + keyword);
|
||||
}
|
||||
var bookStatus = $("#bookStatus").val();
|
||||
if (bookStatus) {
|
||||
toUrl += ("&bookStatus=" + bookStatus);
|
||||
}
|
||||
var softCat = $("#softCat").val();
|
||||
if (softCat) {
|
||||
toUrl += ("&softCat=" + softCat);
|
||||
}
|
||||
var softTag = $("#softTag").val();
|
||||
if (softTag) {
|
||||
toUrl += ("&softTag=" + softTag);
|
||||
}
|
||||
|
||||
var sortBy = $("#sortBy").val();
|
||||
if (sortBy) {
|
||||
toUrl += ("&sortBy=" + sortBy);
|
||||
}
|
||||
|
||||
var sort = $("#sort").val();
|
||||
if (sort) {
|
||||
toUrl += ("&sort=" + sort);
|
||||
}
|
||||
|
||||
window.location.href = toUrl;
|
||||
}
|
||||
|
||||
function searchBooks() {
|
||||
var keywords = $("#title").val();
|
||||
$("#keyword").val("");
|
||||
searchByAllCondition(1, 20, keywords);
|
||||
}
|
||||
|
||||
</script>
|
||||
<script>
|
||||
(function () {
|
||||
|
||||
|
||||
var sortCat = $("#softCat").val();
|
||||
var sortBy = $("#sortBy").val();
|
||||
if (sortBy == 'score') {
|
||||
$("#menuhot").addClass("layui-this");
|
||||
} else if ($("#bookStatus").val()) {
|
||||
$("#menucomplete").addClass("layui-this");
|
||||
} else if (sortCat) {
|
||||
$("#menu" + sortCat).addClass("layui-this");
|
||||
} else {
|
||||
$("#menunew").addClass("layui-this");
|
||||
}
|
||||
|
||||
})();
|
||||
|
||||
|
||||
function toMyCollect() {
|
||||
var token = localStorage.getItem("token");
|
||||
if (token) {
|
||||
window.location.href = "/book/search?token=" + token;
|
||||
} else {
|
||||
window.location.href = "/user/login.html";
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
</html>
|
24
templates/green/html/mobile/common/css.html
Normal file
@ -0,0 +1,24 @@
|
||||
<div th:fragment="css">
|
||||
<link rel="stylesheet" href="/mobile/layui/css/layui.css">
|
||||
<style type="text/css">
|
||||
.app {
|
||||
display: none;
|
||||
}
|
||||
|
||||
@media (max-width: 500px) {
|
||||
.app {
|
||||
display: block !important;
|
||||
}
|
||||
}
|
||||
|
||||
.pc {
|
||||
display: block;
|
||||
}
|
||||
|
||||
@media (max-width: 500px) {
|
||||
.pc {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</div>
|
14
templates/green/html/mobile/common/footer.html
Normal file
@ -0,0 +1,14 @@
|
||||
<div th:fragment="footer" style="height: 60px;line-height: 60px;text-align: center" class="layui-footer footer footer-demo layui-bg-cyan">
|
||||
<!--<a href="/mobile/book/searchSoftBook.html" style="font-size: 14px;color: #fff;">轻小说</a>
|
||||
<a href="/mobile/book/searchSoftBook.html?catId=9" style="font-size: 14px;color: #fff;margin-left: 8px">漫画</a>-->
|
||||
<a href="/?to=pc" style="font-size: 14px;color: #fff;margin-left: 8px">电脑站</a>
|
||||
<a href="/user/read_history.html" style="font-size: 14px;color: #fff;margin-left: 8px">阅读记录</a>
|
||||
<a href="/user/favorites.html" style="font-size: 14px;color: #fff;margin-left: 8px">书架</a>
|
||||
<a href="/mobile/fiction_house.apk" style="font-size: 14px;color: #fff;margin-left: 8px">客户端</a>
|
||||
<!--<a href="https://www.zinglizingli.xyz/me/index.html" style="font-size: 14px;color: #fff;margin-left: 8px">开发者</a>-->
|
||||
|
||||
|
||||
<div style="float: right"><a href="#top"><i class="layui-icon"
|
||||
style="margin-right:15px;font-size: 30px;color:#fff "></i></a>
|
||||
</div>
|
||||
</div>
|
3
templates/green/html/mobile/common/js.html
Normal file
@ -0,0 +1,3 @@
|
||||
<script th:fragment="js" src="/mobile/js/jquery-1.9.1.js"></script>
|
||||
<script th:fragment="js" src="/mobile/layui/layui.all.js"></script>
|
||||
<script th:fragment="js" src="/mobile/js/common.js"></script>
|
19
templates/green/html/mobile/common/soft_footer.html
Normal file
@ -0,0 +1,19 @@
|
||||
<div th:fragment="footer" style="height: 60px;line-height: 60px;text-align: center" class="layui-footer footer footer-demo layui-bg-cyan">
|
||||
<a href="/book" style="font-size: 14px;color: #92B8B1;">更多小说</a>
|
||||
<a href="javascript:readHistory()" style="font-size: 14px;color: #92B8B1;margin-left: 8px">阅读记录</a>
|
||||
<a href="javascript:toMyCollect()" style="font-size: 14px;color: #92B8B1;margin-left: 8px">书架</a>
|
||||
<a href="/mobile/HotBook.apk" style="font-size: 14px;color: #92B8B1;margin-left: 8px">客户端</a>
|
||||
<!--<a href="https://www.zinglizingli.xyz/me/index.html" style="font-size: 14px;color: #92B8B1;margin-left: 8px">开发者</a>-->
|
||||
|
||||
|
||||
<div style="float: right"><a href="#top"><i class="layui-icon"
|
||||
style="margin-right:15px;font-size: 30px;color:#92B8B1 "></i></a>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
(function(){
|
||||
var src = (document.location.protocol == "http:") ? "http://js.passport.qihucdn.com/11.0.1.js?0acfeb0f37ba0d8942c2bbf459016f21":"https://jspassport.ssl.qhimg.com/11.0.1.js?0acfeb0f37ba0d8942c2bbf459016f21";
|
||||
document.write('<script src="' + src + '" id="sozz"><\/script>');
|
||||
})();
|
||||
</script>
|
||||
</div>
|
325
templates/green/html/mobile/index.html
Normal file
@ -0,0 +1,325 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
|
||||
|
||||
<title th:text="${application.website.name}"></title>
|
||||
|
||||
<meta name="keywords" th:content="${application.website.keyword}"/>
|
||||
<meta name="description"
|
||||
th:content="${application.website.description}"/>
|
||||
|
||||
|
||||
<div th:include="mobile/common/css :: css"></div>
|
||||
|
||||
<style>
|
||||
|
||||
.line-limit-length {
|
||||
|
||||
overflow: hidden;
|
||||
|
||||
text-overflow: ellipsis;
|
||||
|
||||
white-space: nowrap;
|
||||
|
||||
}
|
||||
|
||||
.layui-nav .layui-nav-item {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
line-height: 50px;
|
||||
}
|
||||
|
||||
body ul.layui-nav li.layui-nav-item a {
|
||||
display: block;
|
||||
transition: all .3s;
|
||||
-webkit-transition: all .3s;
|
||||
}
|
||||
|
||||
.user_link {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
line-height: 50px;
|
||||
padding: 0 5px;
|
||||
color: #fff;
|
||||
float: right;
|
||||
}
|
||||
|
||||
.user_link a {
|
||||
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
||||
<!-- 你的HTML代码 -->
|
||||
<a name="top"></a>
|
||||
<ul class="layui-nav app" lay-filter="" style="display:none;padding:0 10px;text-align: center">
|
||||
<li class="layui-nav-item"><a>分类</a>
|
||||
<dl class="layui-nav-child">
|
||||
<dd><a href="/book/book_ranking.html?catId=1&sort=last_index_update_time">玄幻小说</a></dd>
|
||||
<dd><a href="/book/book_ranking.html?catId=2&sort=last_index_update_time">修真小说</a></dd>
|
||||
<dd><a href="/book/book_ranking.html?catId=3&sort=last_index_update_time">都市小说</a></dd>
|
||||
<dd><a href="/book/book_ranking.html?catId=4&sort=last_index_update_time">历史小说</a></dd>
|
||||
<dd><a href="/book/book_ranking.html?catId=6&sort=last_index_update_time">网游小说</a></dd>
|
||||
<dd><a href="/book/book_ranking.html?catId=5&sort=last_index_update_time">科幻小说</a></dd>
|
||||
<dd><a href="/book/book_ranking.html?catId=7&sort=last_index_update_time">女频小说</a></dd>
|
||||
</dl>
|
||||
</li>
|
||||
<li class="layui-nav-item"><a>全本</a>
|
||||
<dl class="layui-nav-child">
|
||||
<dd><a href="/book/book_ranking.html?bookStatus=1">全部小说</a></dd>
|
||||
<dd><a href="/book/book_ranking.html?bookStatus=1&catId=1">玄幻小说</a></dd>
|
||||
<dd><a href="/book/book_ranking.html?bookStatus=1&catId=2">修真小说</a></dd>
|
||||
<dd><a href="/book/book_ranking.html?bookStatus=1&catId=3">都市小说</a></dd>
|
||||
<dd><a href="/book/book_ranking.html?bookStatus=1&catId=4">历史小说</a></dd>
|
||||
<dd><a href="/book/book_ranking.html?bookStatus=1&catId=6">网游小说</a></dd>
|
||||
<dd><a href="/book/book_ranking.html?bookStatus=1&catId=5">科幻小说</a></dd>
|
||||
<dd><a href="/book/book_ranking.html?bookStatus=1&catId=7">女频小说</a></dd>
|
||||
</dl>
|
||||
</li>
|
||||
<li class="layui-nav-item"><a>排行</a>
|
||||
<dl class="layui-nav-child">
|
||||
<dd><a href="/book/book_ranking.html?sortBy=visit_count">全部小说</a></dd>
|
||||
<dd><a href="/book/book_ranking.html?sortBy=visit_count&catId=1">玄幻小说</a></dd>
|
||||
<dd><a href="/book/book_ranking.html?sortBy=visit_count&catId=2">修真小说</a></dd>
|
||||
<dd><a href="/book/book_ranking.html?sortBy=visit_count&catId=3">都市小说</a></dd>
|
||||
<dd><a href="/book/book_ranking.html?sortBy=visit_count&catId=4">历史小说</a></dd>
|
||||
<dd><a href="/book/book_ranking.html?sortBy=visit_count&catId=6">网游小说</a></dd>
|
||||
<dd><a href="/book/book_ranking.html?sortBy=visit_count&catId=5">科幻小说</a></dd>
|
||||
<dd><a href="/book/book_ranking.html?sortBy=visit_count&catId=7">女频小说</a></dd>
|
||||
</dl>
|
||||
</li>
|
||||
<li class="user_link"></li>
|
||||
|
||||
</ul>
|
||||
<ul class="layui-nav pc" lay-filter="" style="padding:0 36px;text-align: center">
|
||||
<li class="layui-nav-item"><a href="/book/book_ranking.html?catId=1&sort=last_index_update_time">玄幻小说</a></li>
|
||||
<li class="layui-nav-item"><a href="/book/book_ranking.html?catId=2&sort=last_index_update_time">修真小说</a></li>
|
||||
<li class="layui-nav-item"><a href="/book/book_ranking.html?catId=3&sort=last_index_update_time">都市小说</a></li>
|
||||
<li class="layui-nav-item"><a href="/book/book_ranking.html?catId=4&sort=last_index_update_time">历史小说</a></li>
|
||||
<li class="layui-nav-item"><a href="/book/book_ranking.html?catId=6&sort=last_index_update_time">网游小说</a></li>
|
||||
<li class="layui-nav-item"><a href="/book/book_ranking.html?catId=5&sort=last_index_update_time">科幻小说</a></li>
|
||||
<li class="layui-nav-item"><a href="/book/book_ranking.html?catId=7&sort=last_index_update_time">女频小说</a></li>
|
||||
<li class="layui-nav-item"><a>完本小说</a>
|
||||
<dl class="layui-nav-child"> <!-- 二级菜单 -->
|
||||
<dd><a href="/book/book_ranking.html?bookStatus=1">全部小说</a></dd>
|
||||
<dd><a href="/book/book_ranking.html?bookStatus=1&catId=1">玄幻小说</a></dd>
|
||||
<dd><a href="/book/book_ranking.html?bookStatus=1&catId=2">修真小说</a></dd>
|
||||
<dd><a href="/book/book_ranking.html?bookStatus=1&catId=3">都市小说</a></dd>
|
||||
<dd><a href="/book/book_ranking.html?bookStatus=1&catId=4">历史小说</a></dd>
|
||||
<dd><a href="/book/book_ranking.html?bookStatus=1&catId=6">网游小说</a></dd>
|
||||
<dd><a href="/book/book_ranking.html?bookStatus=1&catId=5">科幻小说</a></dd>
|
||||
<dd><a href="/book/book_ranking.html?bookStatus=1&catId=7">女频小说</a></dd>
|
||||
</dl>
|
||||
</li>
|
||||
<li class="layui-nav-item"><a>小说排行</a>
|
||||
<dl class="layui-nav-child"> <!-- 二级菜单 -->
|
||||
<dd><a href="/book/book_ranking.html?sortBy=visit_count">全部小说</a></dd>
|
||||
<dd><a href="/book/book_ranking.html?sortBy=visit_count&catId=1">玄幻小说</a></dd>
|
||||
<dd><a href="/book/book_ranking.html?sortBy=visit_count&catId=2">修真小说</a></dd>
|
||||
<dd><a href="/book/book_ranking.html?sortBy=visit_count&catId=3">都市小说</a></dd>
|
||||
<dd><a href="/book/book_ranking.html?sortBy=visit_count&catId=4">历史小说</a></dd>
|
||||
<dd><a href="/book/book_ranking.html?sortBy=visit_count&catId=6">网游小说</a></dd>
|
||||
<dd><a href="/book/book_ranking.html?sortBy=visit_count&catId=5">科幻小说</a></dd>
|
||||
<dd><a href="/book/book_ranking.html?sortBy=visit_count&catId=7">女频小说</a></dd>
|
||||
</dl>
|
||||
</li>
|
||||
<li class="user_link"></li>
|
||||
|
||||
|
||||
</ul>
|
||||
|
||||
|
||||
<div class="layui-container">
|
||||
<div class="layui-row">
|
||||
|
||||
<div class="layui-col-xs10 layui-col-sm10 layui-col-md11 layui-col-lg11" style="padding-top:1%">
|
||||
<input id="title" type="text" name="title" required lay-verify="required" placeholder="请输入书名·作者"
|
||||
autocomplete="off"
|
||||
class="layui-input">
|
||||
</div>
|
||||
<div class="layui-col-xs1" style="padding: 1%">
|
||||
<button onclick="searchBooks()" class="layui-btn" lay-submit lay-filter="formDemo">搜索</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div style="height: 1px" class="layui-col-lg1"></div>
|
||||
<div class="layui-collapse layui-col-lg10">
|
||||
<div class="layui-colla-item">
|
||||
<blockquote class="layui-elem-quote" style="text-align: left;font-size: 16px">
|
||||
精品推荐
|
||||
</blockquote>
|
||||
|
||||
|
||||
<div class="layui-container" style="padding: 0px">
|
||||
|
||||
<div class="layui-row" style="text-align: center" id="currentWeek" th:if="${bookMap['4']}">
|
||||
<span th:each="book,iterStat : ${bookMap['4']}" th:if="${iterStat.index<3}">
|
||||
<a th:href="'/book/'+${book.bookId}+'.html'">
|
||||
<div style="padding: 1%" class="layui-col-xs4 layui-col-sm4 layui-col-md4 layui-col-lg4">
|
||||
<img style=" width:100px; height:125px; max-width:100%; max-height:100%;"
|
||||
th:src="${book.picUrl}">
|
||||
|
||||
<br>
|
||||
<span th:text="${#strings.length(book.bookName) > 5}? (${#strings.substring(book.bookName,0,5)}+'...'): ${book.bookName} "></span>
|
||||
|
||||
</div>
|
||||
</a>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-colla-item">
|
||||
<blockquote class="layui-elem-quote" style="text-align: left;font-size: 16px">
|
||||
热门推荐
|
||||
</blockquote>
|
||||
|
||||
<div class="layui-container">
|
||||
<div class="layui-row" id="hotRecBooks" th:if="${bookMap['3']}">
|
||||
<div th:each="book,iterStat : ${bookMap['3']}" th:if="${iterStat.index<6}" style="margin-bottom: 5px"
|
||||
class="layui-col-xs12 layui-col-sm6 layui-col-md4 layui-col-lg4">
|
||||
<a th:href="'/book/'+${book.bookId}+'.html'">
|
||||
<div class="layui-col-xs5 layui-col-sm4 layui-col-md4 layui-col-lg4">
|
||||
<img style=" width:100px; height:125px;" th:src="${book.picUrl}">
|
||||
|
||||
</div>
|
||||
<div class="layui-col-xs5 layui-col-sm6 layui-col-md6 layui-col-lg6">
|
||||
<ul>
|
||||
<li style="padding-bottom: 2px" class="line-limit-length"
|
||||
th:text="${book.bookName}"></li>
|
||||
<li style="padding-bottom: 2px;color: #a6a6a6" th:text="'作者:'+${book.authorName}"></li>
|
||||
<li style="color: #a6a6a6;width: 180px;height:60px;overflow: hidden"
|
||||
th:utext="${book.bookDesc}"></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div style="font-style: italic;color: red"
|
||||
class="layui-col-xs2 layui-col-sm2 layui-col-md2 layui-col-lg2"></div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div style="clear: both"></div>
|
||||
<div style="height: 1px" class="layui-col-lg1"></div>
|
||||
<div class="layui-colla-item layui-col-lg10"
|
||||
style="border-width: 1px;border-style: solid;border-radius: 2px;border-top-width: 0px"><a
|
||||
href="javascript:moreNewBooks()">
|
||||
<blockquote class="layui-elem-quote" style="text-align: left;color: #000;font-size: 16px">最新更新
|
||||
<div style="float: right; margin-right: 20px"><i style="font-size: 14px;color:#666"
|
||||
class="layui-icon">更多</i>
|
||||
</div>
|
||||
</blockquote>
|
||||
</a>
|
||||
<div class="layui-colla-content layui-show">
|
||||
|
||||
<div class="layui-container" style="padding-left: 2px;padding-right: 5px">
|
||||
<div class="layui-row" id="updateRankBooks">
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div style="clear: both"></div>
|
||||
<div th:replace="mobile/common/footer :: footer">
|
||||
</div>
|
||||
<div th:replace="mobile/common/js :: js">
|
||||
</div>
|
||||
|
||||
<script src="/mobile/js/wap_collect.js"></script>
|
||||
|
||||
|
||||
<script>
|
||||
|
||||
|
||||
//更新榜单查询
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/book/listUpdateRank",
|
||||
data: {},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
var updateRankBooks = data.data;
|
||||
var updateRankBookHtml = "";
|
||||
for (var i = 0; i < 10; i++) {
|
||||
|
||||
var updateRankBook = updateRankBooks[i];
|
||||
if (updateRankBook.bookDesc) {
|
||||
updateRankBook.bookDesc = updateRankBook.bookDesc.replace(/<[^>]+>/g, "").replace(/\s+/g, "");
|
||||
}
|
||||
|
||||
updateRankBookHtml += ("<div style=\"padding-bottom: 30px\"\n" +
|
||||
" class=\"layui-col-xs12 layui-col-sm6 layui-col-md6 layui-col-lg6\">\n" +
|
||||
"\n" +
|
||||
" <a href=\"/book/" + updateRankBook.id + ".html\">\n" +
|
||||
" <div class=\"line-limit-length layui-col-xs8 layui-col-sm6 layui-col-md6 layui-col-lg6\"><span '>" + (i + 1) + "." + updateRankBook.bookName + "</span> - <span class=\"layui-elip\" style='color: #a6a6a6;'>" + updateRankBook.authorName + "</span>\n" +
|
||||
" </div>\n" +
|
||||
" <div class=\"layui-col-sm3 layui-col-md3 layui-col-lg3\"\n" +
|
||||
" style=\"color: #FF5722;float: right;margin-right:5px\"><i>" + updateRankBook.lastIndexUpdateTime + "</i></div>\n" +
|
||||
"\n" +
|
||||
" <div style=\"clear: both\"></div>\n" +
|
||||
" <div style=\"color: #a6a6a6;padding-left: 5px;padding-top: 5px\"\n" +
|
||||
" class=\"layui-elip layui-col-md11 layui-col-sm11 layui-col-lg11\">简介: " + updateRankBook.bookDesc + "" +
|
||||
" </div></a>\n" +
|
||||
" </div>");
|
||||
|
||||
|
||||
}
|
||||
$("#updateRankBooks").html(updateRankBookHtml);
|
||||
} else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
}
|
||||
,
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
function moreNewBooks(event) {
|
||||
window.location.href = "/book/book_ranking.html?sortBy=last_index_update_time";
|
||||
}
|
||||
|
||||
function searchBooks() {
|
||||
var keywords = $("#title").val();
|
||||
window.location.href = "/book/book_ranking.html?keyword=" + encodeURI(keywords);
|
||||
}
|
||||
|
||||
function toMyCollect() {
|
||||
var token = localStorage.getItem("token");
|
||||
if (token) {
|
||||
window.location.href = "/book/book_ranking.html?token=" + token;
|
||||
} else {
|
||||
window.location.href = "/user/login.html";
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
212
templates/green/html/mobile/pay/index.html
Normal file
@ -0,0 +1,212 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title th:text="${application.website.name}+'列表'"></title>
|
||||
|
||||
<meta name="keywords"
|
||||
th:content="${application.website.name}+',精品小说,弹幕网站,弹幕,弹幕小说网站,免费小说,小说阅读,小说排行,轻小说,txt小说下载,电子书下载,动漫轻小说,日本轻小说'">
|
||||
|
||||
<meta name="description"
|
||||
th:content="${application.website.name}+'是国内优秀的小说弹幕网站,'+${application.website.name}+'提供海量热门网络小说,日本轻小说,国产轻小说,动漫小说,轻小说在线阅读和TXT小说下载,致力于网络精品小说的收集,智能计算小说评分,打造小说精品排行榜,致力于无广告无弹窗的小说阅读环境。'">
|
||||
|
||||
|
||||
<div th:include="mobile/common/css :: css"></div>
|
||||
|
||||
<style type="text/css">
|
||||
|
||||
|
||||
.line-limit-length {
|
||||
|
||||
overflow: hidden;
|
||||
|
||||
text-overflow: ellipsis;
|
||||
|
||||
white-space: nowrap;
|
||||
|
||||
}
|
||||
|
||||
.indexP p a {
|
||||
color: #4c6978;
|
||||
}
|
||||
|
||||
.Readarea {
|
||||
font-size: 18px;
|
||||
line-height: 35px;
|
||||
padding: 10px;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
div, p {
|
||||
wrap-work: break-word;
|
||||
word-break: break-all;
|
||||
word-wrap: break-word;
|
||||
word-break: normal;
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
-ms-box-sizing: border-box;
|
||||
}
|
||||
|
||||
.indexDiv a {
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
img {
|
||||
width: 130px;
|
||||
height: 180px;
|
||||
}
|
||||
.payHead {
|
||||
height: 36px;
|
||||
line-height: 36px;
|
||||
padding: 20px 0 50px;
|
||||
margin: 0 24px;
|
||||
font-size: 16px;
|
||||
border-bottom: 1px solid #eaeaea;
|
||||
zoom: 1;
|
||||
}
|
||||
.pay_way li {
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
border: 2px solid #eee;
|
||||
margin: 20px 0px 3px 43px;
|
||||
padding-top: 20px;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
||||
<input type="hidden" id="limit" th:value="${limit}"/>
|
||||
<input type="hidden" id="curr" th:value="${curr}"/>
|
||||
<input type="hidden" id="total" th:value="${total}"/>
|
||||
<input type="hidden" id="ids" th:value="${ids}"/>
|
||||
<input type="hidden" id="bookStatus" th:value="${bookStatus}"/>
|
||||
<input type="hidden" id="token" th:value="${token}"/>
|
||||
<input type="hidden" id="keyword" th:value="${keyword}"/>
|
||||
<input type="hidden" id="catId" th:value="${catId}"/>
|
||||
<input type="hidden" id="sortBy" th:value="${sortBy}"/>
|
||||
<input type="hidden" id="sort" th:value="${sort}"/>
|
||||
|
||||
<div style="height: 50px;line-height: 50px;text-align: center" class="layui-header header header-doc layui-bg-cyan">
|
||||
|
||||
<div style="width:10%;float: left;margin-left: 10px">
|
||||
<a href="javascript:history.go(-1)">
|
||||
<i style="font-size: 20px;color: #fff;" class="layui-icon"></i></a>
|
||||
</div>
|
||||
<b class="layui-icon">充值</b>
|
||||
<div style="width:10%;float: right;margin-right: 10px"><a href="/">
|
||||
<i style="font-size: 20px;color: #fff;" class="layui-icon"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div id="body" class="layui-row">
|
||||
<div class="payHead cf">
|
||||
<div class="fl">
|
||||
充值账号:<span class="user_name" id="my_name">13560421324</span> 余额:<em style="color: #3eaf7c" id="accountBalance">10</em> 屋币<!--<em class="red">+0</em>代金券-->
|
||||
</div>
|
||||
</div>
|
||||
<div id="payAmount" class="pay_way layui-row layui-col-space15" style="text-align: center;padding-top: 20px;">
|
||||
<h5>选择充值金额</h5>
|
||||
<li vals="10" class="layui-col-xs4 layui-col-sm3 layui-col-md2">
|
||||
<div class="layui-panel">
|
||||
<div ><strong>10元</strong><br><span class="pay_mn">1000屋币</span></div>
|
||||
</div>
|
||||
</li>
|
||||
<li vals="30" class="layui-col-xs4 layui-col-sm3 layui-col-md2">
|
||||
<div class="layui-panel">
|
||||
<div ><strong>30元</strong><br><span class="pay_mn">3000屋币</span></div>
|
||||
</div>
|
||||
</li>
|
||||
<li vals="50" class="layui-col-xs4 layui-col-sm3 layui-col-md2">
|
||||
<div class="layui-panel">
|
||||
<div ><strong>50元</strong><br><span class="pay_mn">5000屋币</span></div>
|
||||
</div>
|
||||
</li>
|
||||
<li vals="100" class="layui-col-xs4 layui-col-sm3 layui-col-md2">
|
||||
<div class="layui-panel">
|
||||
<div ><strong>100元</strong><br><span class="pay_mn">10000屋币</span></div>
|
||||
</div>
|
||||
</li>
|
||||
<li vals="200" class="layui-col-xs4 layui-col-sm3 layui-col-md2">
|
||||
<div class="layui-panel">
|
||||
<div ><strong>200元</strong><br><span class="pay_mn">20000屋币</span></div>
|
||||
</div>
|
||||
</li>
|
||||
<li vals="500" class="layui-col-xs4 layui-col-sm3 layui-col-md2">
|
||||
<div class="layui-panel">
|
||||
<div ><strong>500元</strong><br><span class="pay_mn">50000屋币</span></div>
|
||||
</div>
|
||||
</li>
|
||||
|
||||
</div>
|
||||
|
||||
<form action="/pay/aliPay" method="post" id="payform" name="payform">
|
||||
|
||||
<input type="hidden" id="pValue" name="payAmount" />
|
||||
</form>
|
||||
|
||||
|
||||
</div>
|
||||
<div th:replace="mobile/common/footer :: footer">
|
||||
</div>
|
||||
|
||||
<a name="buttom"></a>
|
||||
</body>
|
||||
|
||||
<div th:replace="mobile/common/js :: js"></div>
|
||||
|
||||
<script>
|
||||
$("#body").css("min-height",($(window).height() - 100)+"px")
|
||||
|
||||
//查询用户信息
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/user/userInfo",
|
||||
data: {},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
if(data.data.nickName){
|
||||
$("#my_name").html(data.data.nickName);
|
||||
}else{
|
||||
$("#my_name").html(data.data.username);
|
||||
}
|
||||
|
||||
$("#accountBalance").html(data.data.accountBalance);
|
||||
|
||||
} else if (data.code == 1001) {
|
||||
//未登录
|
||||
location.href = '/user/login.html?originUrl=' + decodeURIComponent(location.href);
|
||||
|
||||
} else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
|
||||
$("#payAmount").find("li").click(function () {
|
||||
|
||||
$("#pValue").val($(this).attr("vals"));
|
||||
|
||||
$("#payform").submit();
|
||||
|
||||
|
||||
|
||||
});
|
||||
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
</html>
|
268
templates/green/html/mobile/user/favorites.html
Normal file
@ -0,0 +1,268 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title th:text="${application.website.name}+'列表'"></title>
|
||||
|
||||
<meta name="keywords"
|
||||
th:content="${application.website.name}+',精品小说,弹幕网站,弹幕,弹幕小说网站,免费小说,小说阅读,小说排行,轻小说,txt小说下载,电子书下载,动漫轻小说,日本轻小说'">
|
||||
|
||||
<meta name="description"
|
||||
th:content="${application.website.name}+'是国内优秀的小说弹幕网站,'+${application.website.name}+'提供海量热门网络小说,日本轻小说,国产轻小说,动漫小说,轻小说在线阅读和TXT小说下载,致力于网络精品小说的收集,智能计算小说评分,打造小说精品排行榜,致力于无广告无弹窗的小说阅读环境。'">
|
||||
|
||||
|
||||
<div th:include="mobile/common/css :: css"></div>
|
||||
|
||||
</div>
|
||||
|
||||
<style type="text/css">
|
||||
|
||||
|
||||
.line-limit-length {
|
||||
|
||||
overflow: hidden;
|
||||
|
||||
text-overflow: ellipsis;
|
||||
|
||||
white-space: nowrap;
|
||||
|
||||
}
|
||||
|
||||
.indexP p a {
|
||||
color: #4c6978;
|
||||
}
|
||||
|
||||
.Readarea {
|
||||
font-size: 18px;
|
||||
line-height: 35px;
|
||||
padding: 10px;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
div, p {
|
||||
wrap-work: break-word;
|
||||
word-break: break-all;
|
||||
word-wrap: break-word;
|
||||
word-break: normal;
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
-ms-box-sizing: border-box;
|
||||
}
|
||||
|
||||
.indexDiv a {
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
img {
|
||||
width: 130px;
|
||||
height: 180px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
||||
<input type="hidden" id="limit" th:value="${limit}"/>
|
||||
<input type="hidden" id="curr" th:value="${curr}"/>
|
||||
<input type="hidden" id="total" th:value="${total}"/>
|
||||
<input type="hidden" id="ids" th:value="${ids}"/>
|
||||
<input type="hidden" id="bookStatus" th:value="${bookStatus}"/>
|
||||
<input type="hidden" id="token" th:value="${token}"/>
|
||||
<input type="hidden" id="keyword" th:value="${keyword}"/>
|
||||
<input type="hidden" id="catId" th:value="${catId}"/>
|
||||
<input type="hidden" id="sortBy" th:value="${sortBy}"/>
|
||||
<input type="hidden" id="sort" th:value="${sort}"/>
|
||||
|
||||
<div style="height: 50px;line-height: 50px;text-align: center" class="layui-header header header-doc layui-bg-cyan">
|
||||
|
||||
<div style="width:10%;float: left;margin-left: 10px">
|
||||
<a href="javascript:history.go(-1)">
|
||||
<i style="font-size: 20px;color: #fff;" class="layui-icon"></i></a>
|
||||
</div>
|
||||
<b class="layui-icon">我的书架</b>
|
||||
<div style="width:10%;float: right;margin-right: 10px"><a href="/">
|
||||
<i style="font-size: 20px;color: #fff;" class="layui-icon"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div id="body">
|
||||
<div id="bookList">
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div id="books" style="text-align: center;"></div>
|
||||
|
||||
</div>
|
||||
<div th:replace="mobile/common/footer :: footer">
|
||||
</div>
|
||||
|
||||
<a name="buttom"></a>
|
||||
</body>
|
||||
|
||||
<div th:replace="mobile/common/js :: js"></div>
|
||||
|
||||
<script>
|
||||
$("#body").css("min-height",($(window).height() - 110)+"px")
|
||||
|
||||
search(1,20);
|
||||
|
||||
function search(curr,limit) {
|
||||
|
||||
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/user/listBookShelfByPage",
|
||||
data: {'curr':curr,'limit':limit},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
var bookList = data.data.list;
|
||||
var bookListHtml = "";
|
||||
for (var i = 0; i < bookList.length; i++) {
|
||||
var book = bookList[i];
|
||||
|
||||
/*var end = book.bookDesc.indexOf("<");
|
||||
if(end != -1) {
|
||||
book.bookDesc = book.bookDesc.substring(0,end);
|
||||
}*/
|
||||
|
||||
if(book.bookDesc){
|
||||
book.bookDesc = book.bookDesc.replace(/<[^>]+>/g,"").replace(/\s+/g,"").replace(/ /g,"");
|
||||
}
|
||||
|
||||
bookListHtml += ("<div class=\"layui-row\" style=\"margin-bottom:10px;padding:10px;background: #f2f2f2\">\n" +
|
||||
" <a href='/book/"+book.bookId+"/"+book.preContentId+".html'>\n" +
|
||||
" <div class=\"layui-col-xs6 layui-col-sm3 layui-col-md2 layui-col-lg2\" style=\"text-align: center\">\n" +
|
||||
" <img style='width: 130px;height: 180px' align=\"center\"\n" +
|
||||
" src=\""+book.picUrl+"\"/>\n" +
|
||||
"\n" +
|
||||
" </div>\n" +
|
||||
" </a>\n" +
|
||||
" <div style=\"padding: 10px\" class=\"layui-col-xs6 layui-col-sm8 layui-col-md8 layui-col-lg8\">\n" +
|
||||
" <a href='/book/"+book.bookId+"/"+book.preContentId+".html'>\n" +
|
||||
" <div class=\"line-limit-length\" style=\";color: #000;font-size: 15px\">"+book.bookName+"</div>\n" +
|
||||
" </a>\n" +
|
||||
" <div style=\";color: #4c6978;float: right;\"><i style=\"color: red\"></i></div>\n" +
|
||||
" <a href='/book/"+book.bookId+"/"+book.preContentId+".html'>\n" +
|
||||
" <div style=\";color: #a6a6a6;\" class=\"line-limit-length\">作者:"+book.authorName+"</div>\n" +
|
||||
" </a>\n" +
|
||||
" <div style=\"margin-top: 5px;color: #a6a6a6;\">类别:"+book.catName+"</div>\n" +
|
||||
" <div style=\"margin-top: 5px;color: #a6a6a6;\">状态:"+(book.bookStatus==0?'连载':'完结')+"</div>\n" +
|
||||
" <div style=\"margin-top: 5px;color: #a6a6a6;\">更新:<i style='color: red'>"+book.lastIndexUpdateTime.substr(0,11)+"</i>\n" +
|
||||
" </div>\n" +
|
||||
" <div style=\"margin-top: 5px;color: #a6a6a6;\">简介:"+(book.bookDesc?(book.bookDesc.length>15?(book.bookDesc.substr(0,15)+"..."):book.bookDesc):book.bookDesc)+"</div>\n" +
|
||||
"\n" +
|
||||
"\n" +
|
||||
" </div>\n" +
|
||||
"\n" +
|
||||
" </div>");
|
||||
}
|
||||
$("#bookList").html(bookListHtml);
|
||||
|
||||
layui.use('laypage', function () {
|
||||
var laypage = layui.laypage;
|
||||
|
||||
//执行一个laypage实例
|
||||
laypage.render({
|
||||
elem: 'books' //注意,这里的 test1 是 ID,不用加 # 号
|
||||
, count: data.data.total //数据总数,从服务端得到,
|
||||
, curr: data.data.pageNum
|
||||
, limit: data.data.pageSize
|
||||
, jump: function (obj, first) {
|
||||
|
||||
|
||||
//obj包含了当前分页的所有参数,比如:
|
||||
console.log(obj.curr); //得到当前页,以便向服务端请求对应页的数据。
|
||||
console.log(obj.limit); //得到每页显示的条数
|
||||
|
||||
|
||||
//首次不执行
|
||||
if (!first) {
|
||||
search(obj.curr, obj.limit);
|
||||
} else {
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
} else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
|
||||
function searchByAllCondition(curr, limit, newKeyword) {
|
||||
var toUrl = "/book/search?curr=" + curr + "&limit=" + limit;
|
||||
var ids = $("#ids").val();
|
||||
if (ids) {
|
||||
toUrl += ("&historyBookIds=" + ids);
|
||||
}
|
||||
var token = $("#token").val();
|
||||
if (token) {
|
||||
toUrl += ("&token=" + token);
|
||||
}
|
||||
var keyword = $("#keyword").val();
|
||||
if (newKeyword) {
|
||||
toUrl += encodeURI("&keyword=" + newKeyword);
|
||||
} else if (keyword) {
|
||||
toUrl += encodeURI("&keyword=" + keyword);
|
||||
}
|
||||
var bookStatus = $("#bookStatus").val();
|
||||
if (bookStatus) {
|
||||
toUrl += ("&bookStatus=" + bookStatus);
|
||||
}
|
||||
var catId = $("#catId").val();
|
||||
if (catId) {
|
||||
toUrl += ("&catId=" + catId);
|
||||
}
|
||||
|
||||
var sortBy = $("#sortBy").val();
|
||||
if (sortBy) {
|
||||
toUrl += ("&sortBy=" + sortBy);
|
||||
}
|
||||
|
||||
var sort = $("#sort").val();
|
||||
if (sort) {
|
||||
toUrl += ("&sort=" + sort);
|
||||
}
|
||||
|
||||
window.location.href = toUrl;
|
||||
}
|
||||
|
||||
function searchBooks() {
|
||||
var keywords = $("#title").val();
|
||||
$("#keyword").val("");
|
||||
searchByAllCondition(1, 20, keywords);
|
||||
}
|
||||
|
||||
</script>
|
||||
<script>
|
||||
|
||||
|
||||
|
||||
|
||||
function toMyCollect() {
|
||||
var token = localStorage.getItem("token");
|
||||
if (token) {
|
||||
window.location.href = "/book/search?token=" + token;
|
||||
} else {
|
||||
window.location.href = "/user/login.html";
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
</html>
|
118
templates/green/html/mobile/user/login.html
Normal file
@ -0,0 +1,118 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title>登录</title>
|
||||
|
||||
<div th:include="mobile/common/css :: css"></div>
|
||||
|
||||
|
||||
</head>
|
||||
<body id="read">
|
||||
|
||||
<div style="height: 50px;line-height: 50px;text-align: center" class="layui-header header header-doc layui-bg-cyan">
|
||||
|
||||
<div style="width:10%;float: left;margin-left: 10px">
|
||||
<a href="javascript:history.go(-1)">
|
||||
<i style="font-size: 20px;color: #fff;" class="layui-icon"></i></a>
|
||||
</div>
|
||||
<b class="layui-icon">登录</b>
|
||||
<div style="width:10%;float: right;margin-right: 10px"><a href="/">
|
||||
<i style="font-size: 20px;color: #fff;" class="layui-icon"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<form lay-filter="loginForm" id="form1" style="height: 500px;padding-top:30px;padding-right: 20px" class="layui-form" action="">
|
||||
<input type="hidden" id="bookIdHidden" name="bookId" th:value="${bookId}"/>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">手机号码</label>
|
||||
<div class="layui-input-inline">
|
||||
<input name="txtUName" type="text" id="txtUName" placeholder="请输入手机号"
|
||||
autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">密码</label>
|
||||
<div class="layui-input-inline">
|
||||
<input name="txtPassword" type="password" id="txtPassword" placeholder="请输入密码"
|
||||
autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-input-block">
|
||||
<input id="autoLogin" type="checkbox" lay-skin="primary" title="下次自动登录">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-input-block">
|
||||
<input type="button" value="登录" id="btnLogin" class="layui-btn" />
|
||||
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
|
||||
<div th:replace="mobile/common/footer :: footer">
|
||||
</div>
|
||||
</body>
|
||||
<div th:replace="mobile/common/js :: js">
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
$("#form1").css("min-height",($(window).height() - 140)+"px")
|
||||
if(localStorage.getItem("autoLogin")==1){
|
||||
$("#autoLogin").prop("checked",'true');
|
||||
layui.form.render('checkbox','loginForm');
|
||||
}else{
|
||||
$("#autoLogin").removeAttr("checked");
|
||||
}
|
||||
$("#btnLogin").click(function () {
|
||||
var username = $("#txtUName").val();
|
||||
if(username.isBlank()){
|
||||
layer.alert("手机号不能为空!");
|
||||
return;
|
||||
}
|
||||
if(!username.isPhone()){
|
||||
layer.alert("手机号格式不正确!");
|
||||
return;
|
||||
}
|
||||
var password = $("#txtPassword").val();
|
||||
if(password.isBlank()){
|
||||
layer.alert("密码不能为空!");
|
||||
return;
|
||||
}
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/user/login",
|
||||
data: {"username": username, "password": password},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
if($("#autoLogin").is(':checked')){
|
||||
$.cookie('Authorization', data.data.token, { expires: 7 ,path: '/' });
|
||||
localStorage.setItem("autoLogin","1");
|
||||
}else {
|
||||
$.cookie('Authorization', data.data.token,{ path: '/' });
|
||||
localStorage.setItem("autoLogin","0");
|
||||
}
|
||||
var orginUrl = getSearchString("originUrl");
|
||||
window.location.href = orginUrl == undefined || orginUrl.isBlank() ? "/" : orginUrl;
|
||||
} else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
|
||||
})
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
</html>
|
266
templates/green/html/mobile/user/read_history.html
Normal file
@ -0,0 +1,266 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title th:text="${application.website.name}+'列表'"></title>
|
||||
|
||||
<meta name="keywords"
|
||||
th:content="${application.website.name}+',精品小说,弹幕网站,弹幕,弹幕小说网站,免费小说,小说阅读,小说排行,轻小说,txt小说下载,电子书下载,动漫轻小说,日本轻小说'">
|
||||
|
||||
<meta name="description"
|
||||
th:content="${application.website.name}+'是国内优秀的小说弹幕网站,'+${application.website.name}+'提供海量热门网络小说,日本轻小说,国产轻小说,动漫小说,轻小说在线阅读和TXT小说下载,致力于网络精品小说的收集,智能计算小说评分,打造小说精品排行榜,致力于无广告无弹窗的小说阅读环境。'">
|
||||
|
||||
|
||||
<div th:include="mobile/common/css :: css"></div>
|
||||
|
||||
</div>
|
||||
|
||||
<style type="text/css">
|
||||
|
||||
|
||||
.line-limit-length {
|
||||
|
||||
overflow: hidden;
|
||||
|
||||
text-overflow: ellipsis;
|
||||
|
||||
white-space: nowrap;
|
||||
|
||||
}
|
||||
|
||||
.indexP p a {
|
||||
color: #4c6978;
|
||||
}
|
||||
|
||||
.Readarea {
|
||||
font-size: 18px;
|
||||
line-height: 35px;
|
||||
padding: 10px;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
div, p {
|
||||
wrap-work: break-word;
|
||||
word-break: break-all;
|
||||
word-wrap: break-word;
|
||||
word-break: normal;
|
||||
-moz-box-sizing: border-box;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
-ms-box-sizing: border-box;
|
||||
}
|
||||
|
||||
.indexDiv a {
|
||||
margin-left: 20px;
|
||||
}
|
||||
|
||||
img {
|
||||
width: 130px;
|
||||
height: 180px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
||||
<input type="hidden" id="limit" th:value="${limit}"/>
|
||||
<input type="hidden" id="curr" th:value="${curr}"/>
|
||||
<input type="hidden" id="total" th:value="${total}"/>
|
||||
<input type="hidden" id="ids" th:value="${ids}"/>
|
||||
<input type="hidden" id="bookStatus" th:value="${bookStatus}"/>
|
||||
<input type="hidden" id="token" th:value="${token}"/>
|
||||
<input type="hidden" id="keyword" th:value="${keyword}"/>
|
||||
<input type="hidden" id="catId" th:value="${catId}"/>
|
||||
<input type="hidden" id="sortBy" th:value="${sortBy}"/>
|
||||
<input type="hidden" id="sort" th:value="${sort}"/>
|
||||
|
||||
<div style="height: 50px;line-height: 50px;text-align: center" class="layui-header header header-doc layui-bg-cyan">
|
||||
|
||||
<div style="width:10%;float: left;margin-left: 10px">
|
||||
<a href="javascript:history.go(-1)">
|
||||
<i style="font-size: 20px;color: #fff;" class="layui-icon"></i></a>
|
||||
</div>
|
||||
<b class="layui-icon">阅读历史</b>
|
||||
<div style="width:10%;float: right;margin-right: 10px"><a href="/">
|
||||
<i style="font-size: 20px;color: #fff;" class="layui-icon"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<div id="body">
|
||||
<div id="bookList">
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div id="books" style="text-align: center;"></div>
|
||||
|
||||
</div>
|
||||
<div th:replace="mobile/common/footer :: footer">
|
||||
</div>
|
||||
|
||||
<a name="buttom"></a>
|
||||
</body>
|
||||
|
||||
<div th:replace="mobile/common/js :: js"></div>
|
||||
|
||||
<script>
|
||||
$("#body").css("min-height", ($(window).height() - 110) + "px")
|
||||
|
||||
search(1, 20);
|
||||
|
||||
function search(curr, limit) {
|
||||
|
||||
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/user/listReadHistoryByPage",
|
||||
data: {'curr': curr, 'limit': limit},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
var bookList = data.data.list;
|
||||
var bookListHtml = "";
|
||||
for (var i = 0; i < bookList.length; i++) {
|
||||
var book = bookList[i];
|
||||
|
||||
/*var end = book.bookDesc.indexOf("<");
|
||||
if(end != -1) {
|
||||
book.bookDesc = book.bookDesc.substring(0,end);
|
||||
}*/
|
||||
|
||||
if (book.bookDesc) {
|
||||
book.bookDesc = book.bookDesc.replace(/<[^>]+>/g, "").replace(/\s+/g, "").replace(/ /g, "");
|
||||
}
|
||||
|
||||
bookListHtml += ("<div class=\"layui-row\" style=\"margin-bottom:10px;padding:10px;background: #f2f2f2\">\n" +
|
||||
" <a href='/book/" + book.bookId + "/" + book.preContentId + ".html'>\n" +
|
||||
" <div class=\"layui-col-xs6 layui-col-sm3 layui-col-md2 layui-col-lg2\" style=\"text-align: center\">\n" +
|
||||
" <img style='width: 130px;height: 180px' align=\"center\"\n" +
|
||||
" src=\"" + book.picUrl + "\"/>\n" +
|
||||
"\n" +
|
||||
" </div>\n" +
|
||||
" </a>\n" +
|
||||
" <div style=\"padding: 10px\" class=\"layui-col-xs6 layui-col-sm8 layui-col-md8 layui-col-lg8\">\n" +
|
||||
" <a href='/book/" + book.bookId + "/" + book.preContentId + ".html'>\n" +
|
||||
" <div class=\"line-limit-length\" style=\";color: #000;font-size: 15px\">" + book.bookName + "</div>\n" +
|
||||
" </a>\n" +
|
||||
" <div style=\";color: #4c6978;float: right;\"><i style=\"color: red\"></i></div>\n" +
|
||||
" <a href='/book/" + book.bookId + "/" + book.preContentId + ".html'>\n" +
|
||||
" <div style=\";color: #a6a6a6;\" class=\"line-limit-length\">作者:" + book.authorName + "</div>\n" +
|
||||
" </a>\n" +
|
||||
" <div style=\"margin-top: 5px;color: #a6a6a6;\">类别:" + book.catName + "</div>\n" +
|
||||
" <div style=\"margin-top: 5px;color: #a6a6a6;\">状态:" + (book.bookStatus == 0 ? '连载' : '完结') + "</div>\n" +
|
||||
" <div style=\"margin-top: 5px;color: #a6a6a6;\">更新:<i style='color: red'>" + book.lastIndexUpdateTime.substr(0, 11) + "</i>\n" +
|
||||
" </div>\n" +
|
||||
" <div style=\"margin-top: 5px;color: #a6a6a6;\">简介:" + (book.bookDesc ? (book.bookDesc.length > 15 ? (book.bookDesc.substr(0, 15) + "...") : book.bookDesc) : book.bookDesc) + "</div>\n" +
|
||||
"\n" +
|
||||
"\n" +
|
||||
" </div>\n" +
|
||||
"\n" +
|
||||
" </div>");
|
||||
}
|
||||
$("#bookList").html(bookListHtml);
|
||||
|
||||
layui.use('laypage', function () {
|
||||
var laypage = layui.laypage;
|
||||
|
||||
//执行一个laypage实例
|
||||
laypage.render({
|
||||
elem: 'books' //注意,这里的 test1 是 ID,不用加 # 号
|
||||
, count: data.data.total //数据总数,从服务端得到,
|
||||
, curr: data.data.pageNum
|
||||
, limit: data.data.pageSize
|
||||
, jump: function (obj, first) {
|
||||
|
||||
|
||||
//obj包含了当前分页的所有参数,比如:
|
||||
console.log(obj.curr); //得到当前页,以便向服务端请求对应页的数据。
|
||||
console.log(obj.limit); //得到每页显示的条数
|
||||
|
||||
|
||||
//首次不执行
|
||||
if (!first) {
|
||||
search(obj.curr, obj.limit);
|
||||
} else {
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
} else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
|
||||
|
||||
function searchByAllCondition(curr, limit, newKeyword) {
|
||||
var toUrl = "/book/search?curr=" + curr + "&limit=" + limit;
|
||||
var ids = $("#ids").val();
|
||||
if (ids) {
|
||||
toUrl += ("&historyBookIds=" + ids);
|
||||
}
|
||||
var token = $("#token").val();
|
||||
if (token) {
|
||||
toUrl += ("&token=" + token);
|
||||
}
|
||||
var keyword = $("#keyword").val();
|
||||
if (newKeyword) {
|
||||
toUrl += encodeURI("&keyword=" + newKeyword);
|
||||
} else if (keyword) {
|
||||
toUrl += encodeURI("&keyword=" + keyword);
|
||||
}
|
||||
var bookStatus = $("#bookStatus").val();
|
||||
if (bookStatus) {
|
||||
toUrl += ("&bookStatus=" + bookStatus);
|
||||
}
|
||||
var catId = $("#catId").val();
|
||||
if (catId) {
|
||||
toUrl += ("&catId=" + catId);
|
||||
}
|
||||
|
||||
var sortBy = $("#sortBy").val();
|
||||
if (sortBy) {
|
||||
toUrl += ("&sortBy=" + sortBy);
|
||||
}
|
||||
|
||||
var sort = $("#sort").val();
|
||||
if (sort) {
|
||||
toUrl += ("&sort=" + sort);
|
||||
}
|
||||
|
||||
window.location.href = toUrl;
|
||||
}
|
||||
|
||||
function searchBooks() {
|
||||
var keywords = $("#title").val();
|
||||
$("#keyword").val("");
|
||||
searchByAllCondition(1, 20, keywords);
|
||||
}
|
||||
|
||||
</script>
|
||||
<script>
|
||||
|
||||
|
||||
function toMyCollect() {
|
||||
var token = localStorage.getItem("token");
|
||||
if (token) {
|
||||
window.location.href = "/book/search?token=" + token;
|
||||
} else {
|
||||
window.location.href = "/user/login.html";
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
</html>
|
122
templates/green/html/mobile/user/register.html
Normal file
@ -0,0 +1,122 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
<title>注册</title>
|
||||
|
||||
<div th:include="mobile/common/css :: css"></div>
|
||||
|
||||
|
||||
</head>
|
||||
<body id="read">
|
||||
|
||||
<div style="height: 50px;line-height: 50px;text-align: center" class="layui-header header header-doc layui-bg-cyan">
|
||||
|
||||
<div style="width:10%;float: left;margin-left: 10px">
|
||||
<a href="javascript:history.go(-1)">
|
||||
<i style="font-size: 20px;color: #fff;" class="layui-icon"></i></a>
|
||||
</div>
|
||||
<b class="layui-icon">注册</b>
|
||||
<div style="width:10%;float: right;margin-right: 10px"><a href="/">
|
||||
<i style="font-size: 20px;color: #fff;" class="layui-icon"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
<form lay-filter="loginForm" id="form1" style="height: 500px;padding-top:30px;padding-right: 20px" class="layui-form" action="">
|
||||
<input type="hidden" id="bookIdHidden" name="bookId" th:value="${bookId}"/>
|
||||
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">手机号码</label>
|
||||
<div class="layui-input-inline">
|
||||
<input name="txtUName" type="text" id="txtUName" placeholder="请输入手机号"
|
||||
autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<label class="layui-form-label">密码</label>
|
||||
<div class="layui-input-inline">
|
||||
<input name="txtPassword" type="password" id="txtPassword" placeholder="请输入密码"
|
||||
autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="layui-form-item ">
|
||||
<label class="layui-form-label">验证码</label>
|
||||
<div class="layui-input-inline">
|
||||
<input name="txtUName" type="text" id="TxtChkCode" placeholder="请输入验证码"
|
||||
autocomplete="off" class="layui-input">
|
||||
</div>
|
||||
<div class="layui-input-inline"><img
|
||||
style="border: 1px solid #eee" class="code_pic" src="" id="chkd"
|
||||
onclick="getVerify(this);"/></div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-input-block">
|
||||
<input type="button" value="注册" id="btnRegister" class="layui-btn" />
|
||||
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
|
||||
|
||||
<div th:replace="mobile/common/footer :: footer">
|
||||
</div>
|
||||
</body>
|
||||
<div th:replace="mobile/common/js :: js">
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
$("#form1").css("min-height",($(window).height() - 140)+"px")
|
||||
$("#chkd").click();
|
||||
|
||||
$("#btnRegister").click(function () {
|
||||
var username = $("#txtUName").val();
|
||||
if (username.isBlank()) {
|
||||
layer.alert("手机号不能为空!");
|
||||
return;
|
||||
}
|
||||
if (!username.isPhone()) {
|
||||
layer.alert("手机号格式不正确!");
|
||||
return;
|
||||
}
|
||||
var password = $("#txtPassword").val();
|
||||
if (password.isBlank()) {
|
||||
layer.alert("密码不能为空!");
|
||||
return;
|
||||
}
|
||||
var velCode = $("#TxtChkCode").val();
|
||||
if (velCode.isBlank()) {
|
||||
layer.alert("验证码不能为空!");
|
||||
return;
|
||||
}
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/user/register",
|
||||
data: {"username": username, "password": password,"velCode":velCode},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
$.cookie('Authorization', data.data.token, {path: '/'});
|
||||
window.location.href="/";
|
||||
} else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
|
||||
})
|
||||
//获取验证码
|
||||
function getVerify(obj) {
|
||||
obj.src = "/file/getVerify?" + Math.random();
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
</html>
|
282
templates/green/html/mobile/user/userinfo.html
Normal file
@ -0,0 +1,282 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||
|
||||
|
||||
<title th:text="${application.website.name}"></title>
|
||||
|
||||
<meta name="keywords" th:content="${application.website.keyword}"/>
|
||||
<meta name="description"
|
||||
th:content="${application.website.description}"/>
|
||||
|
||||
|
||||
<div th:include="mobile/common/css :: css"></div>
|
||||
|
||||
<style>
|
||||
|
||||
.line-limit-length {
|
||||
|
||||
overflow: hidden;
|
||||
|
||||
text-overflow: ellipsis;
|
||||
|
||||
white-space: nowrap;
|
||||
|
||||
}
|
||||
|
||||
.layui-nav .layui-nav-item {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
line-height: 50px;
|
||||
}
|
||||
|
||||
body ul.layui-nav li.layui-nav-item a {
|
||||
display: block;
|
||||
transition: all .3s;
|
||||
-webkit-transition: all .3s;
|
||||
}
|
||||
|
||||
.user_link {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
line-height: 50px;
|
||||
padding: 0 20px;
|
||||
color: #fff;
|
||||
float: right;
|
||||
}
|
||||
|
||||
.user_link a {
|
||||
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.user_big_head {
|
||||
width: 80px;
|
||||
height: 80px;
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
</style>
|
||||
|
||||
|
||||
</head>
|
||||
<body>
|
||||
<div id="body">
|
||||
|
||||
<!-- 你的HTML代码 -->
|
||||
<div style="height: 50px;line-height: 50px;text-align: center"
|
||||
class="layui-header header header-doc layui-bg-cyan">
|
||||
|
||||
<div style="width:10%;float: left;margin-left: 10px">
|
||||
<a href="javascript:history.go(-1)">
|
||||
<i style="font-size: 20px;color: #fff;" class="layui-icon"></i></a>
|
||||
</div>
|
||||
<b class="layui-icon">用户中心</b>
|
||||
<div style="width:10%;float: right;margin-right: 10px"><a href="/">
|
||||
<i style="font-size: 20px;color: #fff;" class="layui-icon"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-colla-item">
|
||||
|
||||
<div class="layui-container" style="padding: 50px;text-align: center">
|
||||
<img id="imgLogo" class="user_big_head" src="/images/man.png">
|
||||
<div style="padding: 10px;font-size: 18px"><span id="my_name">梦入神机</span>
|
||||
<svg id="boyIcon" style="display: none" t="1693635090733" class="icon" viewBox="0 0 1024 1024"
|
||||
version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
p-id="8815" width="15" height="15">
|
||||
<path d="M872.335 421.516V151.71H602.528L702.949 252.13 601.4 353.68c-46.47-32.81-103.174-52.091-164.385-52.091-157.595 0-285.351 127.756-285.351 285.35S279.421 872.29 437.014 872.29s285.352-127.755 285.352-285.35c0-57.78-17.19-111.537-46.711-156.47l102.818-102.814 93.862 93.861zM437.015 782.18c-107.827 0-195.24-87.413-195.24-195.24s87.413-195.24 195.24-195.24 195.24 87.413 195.24 195.24-87.413 195.24-195.24 195.24z"
|
||||
fill="#1296DB" p-id="8816"></path>
|
||||
</svg>
|
||||
<svg id="girlIcon" style="display: none" t="1693635698738" class="icon" viewBox="0 0 1024 1024"
|
||||
version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3685" width="15" height="15">
|
||||
<path d="M513 636.1c-76.4 0-148.2-29.7-202.2-83.8-54-54-83.8-125.8-83.8-202.2s29.7-148.2 83.8-202.2c54-54 125.8-83.8 202.2-83.8s148.2 29.7 202.2 83.8c54 54 83.8 125.8 83.8 202.2s-29.7 148.2-83.8 202.2c-54 54.1-125.8 83.8-202.2 83.8z m0-515.9c-61.4 0-119.2 23.9-162.6 67.4C307 231 283 288.7 283 350.1s23.9 119.2 67.4 162.6 101.2 67.4 162.6 67.4 119.2-23.9 162.6-67.4S743 411.6 743 350.1 719 231 675.6 187.5c-43.4-43.4-101.2-67.3-162.6-67.3z"
|
||||
fill="#d4237a" p-id="3686"></path>
|
||||
<path d="M671.4 712.1H544.7v-104h-56v104H362c-15.5 0-28 12.5-28 28s12.5 28 28 28h126.7v163.3c0 15.5 12.5 28 28 28s28-12.5 28-28V768.1h126.7c15.5 0 28-12.5 28-28s-12.5-28-28-28z"
|
||||
fill="#d4237a" p-id="3687"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div style="padding: 5px;">账户余额:<span id="accountBalance" style="color: #3eaf7c">3000</span> 屋币</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div style="clear: both"></div>
|
||||
<a
|
||||
href="/pay/index.html">
|
||||
|
||||
<div
|
||||
style="background-color:#fafafa;text-align: left;padding:20px 10px 30px;color: #000;font-size: 16px">
|
||||
<div style="float: left;">
|
||||
<svg t="1697073258970" class="icon" viewBox="0 0 1024 1024" version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg" p-id="4079" width="25px" height="25px">
|
||||
<path d="M768 30.72 283.306667 30.72c-51.2 0-98.986667 44.373333-98.986667 98.986667l0 747.52c0 51.2 44.373333 95.573333 98.986667 95.573333l300.373333 0c0 0 71.68 0 116.053333 23.893333 3.413333 0 3.413333 3.413333 6.826667 3.413333 6.826667 0 10.24-3.413333 13.653333-6.826667 3.413333-6.826667 0-17.066667-6.826667-20.48-51.2-30.72-126.293333-30.72-129.706667-30.72L283.306667 942.08c-37.546667 0-64.853333-30.72-64.853333-64.853333L218.453333 129.706667c0-37.546667 30.72-64.853333 64.853333-64.853333l484.693333 0c37.546667 0 68.266667 30.72 68.266667 64.853333l0 747.52c0 37.546667-30.72 64.853333-68.266667 64.853333-6.826667 0-17.066667 6.826667-17.066667 17.066667s6.826667 17.066667 17.066667 17.066667c51.2 0 98.986667-44.373333 98.986667-95.573333L866.986667 129.706667C866.986667 78.506667 819.2 30.72 768 30.72z"
|
||||
fill="#3eaf7c" p-id="4080"></path>
|
||||
<path d="M604.16 102.4 443.733333 102.4c-6.826667 0-17.066667 6.826667-17.066667 17.066667S436.906667 136.533333 443.733333 136.533333l160.426667 0c6.826667 0 17.066667-6.826667 17.066667-17.066667S610.986667 102.4 604.16 102.4z"
|
||||
fill="#3eaf7c" p-id="4081"></path>
|
||||
<path d="M344.746667 307.2c-6.826667 6.826667-6.826667 17.066667 0 20.48l81.92 81.92c3.413333 3.413333 6.826667 3.413333 10.24 3.413333s6.826667 0 10.24-3.413333c6.826667-6.826667 6.826667-17.066667 0-20.48L365.226667 307.2C358.4 300.373333 351.573333 300.373333 344.746667 307.2z"
|
||||
fill="#3eaf7c" p-id="4082"></path>
|
||||
<path d="M604.16 409.6c3.413333 3.413333 6.826667 3.413333 10.24 3.413333s6.826667 0 10.24-3.413333l81.92-81.92c6.826667-6.826667 6.826667-17.066667 0-20.48s-17.066667-6.826667-20.48 0l-81.92 81.92C597.333333 395.946667 597.333333 402.773333 604.16 409.6z"
|
||||
fill="#3eaf7c" p-id="4083"></path>
|
||||
<path d="M716.8 460.8c6.826667 0 17.066667-6.826667 17.066667-17.066667s-6.826667-17.066667-17.066667-17.066667L334.506667 426.666667c-6.826667 0-17.066667 6.826667-17.066667 17.066667s6.826667 17.066667 17.066667 17.066667L512 460.8l0 105.813333L334.506667 566.613333c-6.826667 0-17.066667 6.826667-17.066667 17.066667s6.826667 17.066667 17.066667 17.066667L512 600.746667l0 139.946667c0 6.826667 6.826667 17.066667 17.066667 17.066667s17.066667-6.826667 17.066667-17.066667l0-139.946667L716.8 600.746667c6.826667 0 17.066667-6.826667 17.066667-17.066667s-6.826667-17.066667-17.066667-17.066667l-174.08 0 0-105.813333L716.8 460.8z"
|
||||
fill="#3eaf7c" p-id="4084"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div style="float: left; margin-left: 20px">充值</div>
|
||||
<div style="float: right; margin-right: 20px"><i style="font-size: 14px;color:#666"
|
||||
class="layui-icon"></i>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/user/favorites.html">
|
||||
|
||||
<div
|
||||
style="background-color:#fafafa;text-align: left;padding:30px 10px;color: #000;font-size: 16px">
|
||||
<div style="float: left;">
|
||||
<svg t="1693622464904" class="icon" viewBox="0 0 1097 1024" version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg" p-id="3653" width="25px" height="25px">
|
||||
<path d="M998.58390632 852.14701166H126.84569332A41.51236 41.51236 0 0 0 85.33333332 893.65937166v62.26854a41.51236 41.51236 0 0 0 41.51236 41.51236h871.738213a41.51236 41.51236 0 0 0 41.51236-41.51236v-62.26854a41.51236 41.51236 0 0 0-41.51236-41.51236z m-29.293426 83.014048h-813.172704a8.537246 8.537246 0 0 1-8.537246-8.537246v-3.681687a8.537246 8.537246 0 0 1 8.537246-8.537247h813.172704a8.537246 8.537246 0 0 1 8.537246 8.537247v3.681687a8.537246 8.537246 0 0 1-8.537246 8.537246zM126.84569332 810.63465166h124.537079a41.51236 41.51236 0 0 0 41.51236-41.51236V229.47228566a41.51236 41.51236 0 0 0-41.51236-41.51236H126.84569332A41.51236 41.51236 0 0 0 85.33333332 229.47228566v539.650006a41.51236 41.51236 0 0 0 41.51236 41.51236zM156.72605532 246.49342066h64.883071a12.805869 12.805869 0 0 1 12.805869 12.805869v479.995998a12.805869 12.805869 0 0 1-12.805869 12.80587H156.72605532a12.805869 12.805869 0 0 1-12.80587-12.80587V259.29928966a12.805869 12.805869 0 0 1 12.80587-12.805869z m239.939305 564.141231h124.53708a41.51236 41.51236 0 0 0 41.51236-41.51236V278.62548066l291.653674 510.335237 0.266789 0.480221a41.619075 41.619075 0 0 0 56.826045 15.527116l107.932136-62.962191A42.600859 42.600859 0 0 0 1034.18422332 684.02729066L727.73976932 147.49337866l-0.266789-0.48022a41.619075 41.619075 0 0 0-56.826045-15.527116l-107.932135 62.962191V84.17902666A41.51236 41.51236 0 0 0 521.20244032 42.66666666h-124.53708a41.51236 41.51236 0 0 0-41.51236 41.51236v684.943265a41.51236 41.51236 0 0 0 41.51236 41.51236z m296.295802-597.938055a3.735045 3.735045 0 0 1 5.122348 1.376631l259.841761 454.608363a12.805869 12.805869 0 0 1-4.663471 17.415982l-56.271124 32.825712a12.805869 12.805869 0 0 1-17.544041-4.663471L624.11894332 267.59109066a12.805869 12.805869 0 0 1 4.663471-17.415983zM426.49236432 101.20016166h64.883072a12.805869 12.805869 0 0 1 12.805869 12.805869v625.289257a12.805869 12.805869 0 0 1-12.805869 12.80587h-64.883072a12.805869 12.805869 0 0 1-12.805869-12.80587V114.00603066a12.805869 12.805869 0 0 1 12.805869-12.805869z m0 0"
|
||||
p-id="3654" fill="#3eaf7c"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div style="float: left; margin-left: 20px">我的书架</div>
|
||||
<div style="float: right; margin-right: 20px"><i style="font-size: 14px;color:#666"
|
||||
class="layui-icon"></i>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a
|
||||
href="/user/read_history.html">
|
||||
|
||||
<div
|
||||
style="background-color:#fafafa;text-align: left;padding:30px 10px 50px;color: #000;font-size: 16px">
|
||||
<div style="float: left;">
|
||||
<svg t="1693621172669" class="icon" viewBox="0 0 1024 1024" version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
p-id="1877" width="25px" height="25px">
|
||||
<path d="M876.8 709.12H738.56V591.36c0-15.36-10.24-25.6-25.6-25.6-15.36 0-25.6 10.24-25.6 25.6v143.36c0 15.36 10.24 25.6 25.6 25.6H876.8c15.36 0 25.6-10.24 25.6-25.6s-12.8-25.6-25.6-25.6zM705.28 463.36c-153.6 0-279.04 125.44-279.04 279.04 0 153.6 125.44 279.04 279.04 279.04 153.6 0 279.04-125.44 279.04-279.04 0-153.6-125.44-276.48-279.04-279.04z m0 506.88c-125.44 0-227.84-102.4-227.84-227.84s102.4-227.84 227.84-227.84 227.84 102.4 227.84 227.84c-2.56 128-102.4 227.84-227.84 227.84z m25.6-622.08c0-15.36-10.24-25.6-25.6-25.6h-473.6c-15.36 0-25.6 10.24-25.6 25.6 0 15.36 10.24 25.6 25.6 25.6h473.6c12.8 0 25.6-10.24 25.6-25.6z m-307.2 207.36c0-15.36-10.24-25.6-25.6-25.6h-166.4c-15.36 0-25.6 10.24-25.6 25.6s10.24 25.6 25.6 25.6h166.4c15.36 0 25.6-12.8 25.6-25.6z m-192 153.6c-15.36 0-25.6 10.24-25.6 25.6s10.24 25.6 25.6 25.6h128c15.36 0 25.6-10.24 25.6-25.6s-10.24-25.6-25.6-25.6h-128zM482.56 972.8H90.88V51.2h174.08v38.4c0 33.28 25.6 64 58.88 64 12.8 0 343.04 2.56 373.76 0 33.28 0 58.88-28.16 56.32-61.44v-38.4H928v437.76c0 15.36 10.24 25.6 25.6 25.6 15.36 0 25.6-10.24 25.6-25.6V28.16c0-15.36-10.24-25.6-25.6-25.6H728.32c-15.36 0-25.6 10.24-25.6 25.6v64c0 7.68-5.12 12.8-10.24 12.8H326.4c-7.68 0-12.8-5.12-12.8-12.8V25.6C313.6 10.24 303.36 0 288 0H65.28c-15.36 0-25.6 10.24-25.6 25.6v972.8c0 15.36 10.24 25.6 25.6 25.6h417.28c15.36 0 25.6-10.24 25.6-25.6 0-15.36-12.8-25.6-25.6-25.6zM395.52 51.2h230.4c15.36 0 25.6-10.24 25.6-25.6 0-15.36-10.24-25.6-25.6-25.6h-230.4c-15.36 0-25.6 10.24-25.6 25.6 0 15.36 12.8 25.6 25.6 25.6z"
|
||||
fill="#3eaf7c" p-id="1878"></path>
|
||||
</svg>
|
||||
</div>
|
||||
<div style="float: left; margin-left: 20px">阅读历史</div>
|
||||
<div style="float: right; margin-right: 20px"><i style="font-size: 14px;color:#666"
|
||||
class="layui-icon"></i>
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<!--<a
|
||||
href="/user/comment.html">
|
||||
|
||||
<blockquote class="layui-elem-quote"
|
||||
style="background-color:#fafafa;border-left:0px;margin-bottom: 0px;text-align: left;padding:15px 10px;color: #000;font-size: 18px">
|
||||
<i style="font-size: 25px;padding-right: 20px;color:#3eaf7c"
|
||||
class="layui-icon">
|
||||
</i>
|
||||
我的书评
|
||||
<div style="float: right; margin-right: 20px"><i style="font-size: 14px;color:#666"
|
||||
class="layui-icon"></i>
|
||||
</div>
|
||||
</blockquote>
|
||||
</a>-->
|
||||
|
||||
|
||||
<a
|
||||
href="javascript:logout()">
|
||||
|
||||
<blockquote class="layui-elem-quote"
|
||||
style="background-color:#fafafa;border-left:0px;margin-top:10px;margin-bottom: 10px;text-align: center;padding:15px 10px;color: #3eaf7c;font-size: 16px">
|
||||
|
||||
退出登录
|
||||
</blockquote>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
<div th:replace="mobile/common/footer :: footer">
|
||||
</div>
|
||||
</body>
|
||||
|
||||
<div th:replace="mobile/common/js :: js">
|
||||
</div>
|
||||
|
||||
|
||||
<script>
|
||||
$("#body").css("min-height", ($(window).height() - 50) + "px")
|
||||
|
||||
//查询用户信息
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/user/userInfo",
|
||||
data: {},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
if (data.data.userPhoto) {
|
||||
$("#imgLogo").attr("src", data.data.userPhoto);
|
||||
}
|
||||
if (data.data.nickName) {
|
||||
$("#my_name").html(data.data.nickName);
|
||||
} else {
|
||||
$("#my_name").html(data.data.username);
|
||||
}
|
||||
|
||||
if (data.data.userSex === '0') {
|
||||
$("#boyIcon").css("display", "inline")
|
||||
}
|
||||
|
||||
if (data.data.userSex === '1') {
|
||||
$("#girlIcon").css("display", "inline")
|
||||
}
|
||||
|
||||
$("#accountBalance").html(data.data.accountBalance);
|
||||
|
||||
} else if (data.code == 1001) {
|
||||
//未登录
|
||||
location.href = '/user/login.html?originUrl=' + decodeURIComponent(location.href);
|
||||
|
||||
} else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
function moreNewBooks(event) {
|
||||
window.location.href = "/book/book_ranking.html?sortBy=last_index_update_time";
|
||||
}
|
||||
|
||||
function searchBooks() {
|
||||
var keywords = $("#title").val();
|
||||
window.location.href = "/book/book_ranking.html?keyword=" + encodeURI(keywords);
|
||||
}
|
||||
|
||||
function toMyCollect() {
|
||||
var token = localStorage.getItem("token");
|
||||
if (token) {
|
||||
window.location.href = "/book/book_ranking.html?token=" + token;
|
||||
} else {
|
||||
window.location.href = "/user/login.html";
|
||||
}
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
136
templates/green/html/pay/index.html
Normal file
@ -0,0 +1,136 @@
|
||||
|
||||
|
||||
<!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">
|
||||
<head th:replace="common/header :: common_head(~{::title},~{},~{::link},~{})">
|
||||
<title th:text="'充值_'+${application.website.name}"></title>
|
||||
<link rel="stylesheet" href="/css/base.css"/>
|
||||
<link rel="stylesheet" href="/css/main.css"/>
|
||||
</head>
|
||||
<body class="">
|
||||
|
||||
<div th:replace="common/top :: top('')">
|
||||
</div>
|
||||
|
||||
<form action="/pay/aliPay" method="post" id="payform" name="payform">
|
||||
<div class="main box_center cf">
|
||||
|
||||
<div class="channelWrap channelPay cf">
|
||||
|
||||
<div class="payBox cf">
|
||||
<div class="payHead cf">
|
||||
<div class="fl">
|
||||
充值账号:<span class="user_name" id="my_name"></span>余额:<em class="red" id="accountBalance">0</em>屋币<!--<em class="red">+0</em>代金券-->
|
||||
</div>
|
||||
</div>
|
||||
<div class="payCon">
|
||||
<h5>选择充值方式</h5>
|
||||
<ul class="pay_way cf" id="ulPayType">
|
||||
<li class="on" valp="1"><img class="pay_pic" src="../images/pay_zfb.png" alt="支付宝支付" /></li>
|
||||
<li valp="2"><img class="pay_pic" src="../images/pay_wx.png" alt="微信支付" /></li>
|
||||
|
||||
</ul>
|
||||
<h5>选择充值金额</h5>
|
||||
<ul class="pay_way cf" id="ulZFWX">
|
||||
<li vals="10"><strong>10元</strong><span class="pay_mn">1000屋币</span></li>
|
||||
<li vals="30"><strong>30元</strong><span class="pay_mn">3000屋币</span></li>
|
||||
<li vals="50"><strong>50元</strong><span class="pay_mn">5000屋币<!--<em class="red">+ 送500代金券</em>--></span></li>
|
||||
<li vals="100"><strong>100元</strong><span class="pay_mn">10000屋币<!--<em class="red">+ 送1200代金券</em>--></span></li>
|
||||
<li vals="200"><strong>200元</strong><span class="pay_mn">20000屋币<!--<em class="red">+ 送3000代金券</em>--></span></li>
|
||||
<li vals="500"><strong>500元</strong><span class="pay_mn">50000屋币<!--<em class="red">+ 送10000代金券</em>--></span></li>
|
||||
</ul>
|
||||
<ul class="pay_way cf" style="display:none;" id="ulPayPal">
|
||||
<li vals="20"><strong>20美元</strong><span class="pay_mn">10000屋币</span></li>
|
||||
<li vals="50" class="on"><strong>50美元</strong><span class="pay_mn">25000屋币<em class="red"></em></span></li>
|
||||
<li vals="100"><strong>100美元</strong><span class="pay_mn">50000屋币<em class="red"></em></span></li>
|
||||
</ul>
|
||||
<ul class="pay_Checkout" id="ulZFWXXJ">
|
||||
<li>当前汇率:1元=100屋币</li>
|
||||
<li>总计金额:<em class="red" id="showTotal">¥50元</em> 获得 <em class="red" id="showRemark">5000屋币<!--+500代金券--></em></li>
|
||||
<li style="display:none"><a class="btn_red" href="pay_success.html" onclick="javascript:UserPay.sendPay();">立即支付</a></li>
|
||||
</ul>
|
||||
<ul class="pay_Checkout" style="display:none;" id="ulPayPalXJ">
|
||||
<li>当前汇率:1美元=500屋币</li>
|
||||
<li>总计金额:<em class="red" id="showPayPalTotal">50美元</em> 获得 <em class="red" id="showPayPalRemark">25000屋币</em></li>
|
||||
<li style="display:none"><a class="btn_red" href="javascript:void(0);" onclick="javascript:UserPay.sendPay();">立即支付</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="payFoot">
|
||||
<strong class="tip_tit">温馨提示</strong>
|
||||
<ul class="tip_list">
|
||||
<li>1. 充值阅读权限仅限本书城使用</li>
|
||||
<li>2. 充值支持信用卡、借记卡、支付宝余额、微信零钱等支付</li>
|
||||
<li>3. 包年时间是365天,重复购买时间会累加</li>
|
||||
<li>4. 若充值遇到问题,<a href="/user/feedback.html" target="_blank" class="unlink black9">点此留言</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<input type="hidden" id="pValue" name="payAmount" />
|
||||
</form>
|
||||
|
||||
|
||||
<div th:replace="common/footer :: footer">
|
||||
</div>
|
||||
<div th:replace="common/js :: js"></div>
|
||||
<script src="/javascript/pay.js" type="text/javascript"></script>
|
||||
|
||||
<script type="text/javascript">
|
||||
|
||||
|
||||
|
||||
//查询用户信息
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/user/userInfo",
|
||||
data: {},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
if(data.data.nickName){
|
||||
$("#my_name").html(data.data.nickName);
|
||||
}else{
|
||||
$("#my_name").html(data.data.username);
|
||||
}
|
||||
|
||||
$("#accountBalance").html(data.data.accountBalance);
|
||||
|
||||
} else if (data.code == 1001) {
|
||||
//未登录
|
||||
location.href = '/user/login.html?originUrl=' + decodeURIComponent(location.href);
|
||||
|
||||
} else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
|
||||
$("#ulZFWX").find("li").click(function () {
|
||||
|
||||
var payType = $("#ulPayType").find("li.on").attr("valp");
|
||||
|
||||
if(payType == 2){
|
||||
layer.alert("微信支付暂未开通,敬请期待");
|
||||
return ;
|
||||
}
|
||||
|
||||
$("#pValue").val($(this).attr("vals"));
|
||||
|
||||
$("#payform").submit();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
</body>
|
||||
</html>
|
127
templates/green/html/user/comment.html
Normal file
@ -0,0 +1,127 @@
|
||||
<!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">
|
||||
<head th:replace="common/header :: common_head(~{::title},~{},~{::link},~{})">
|
||||
<title th:text="'我的书评_'+${application.website.name}"></title>
|
||||
<link rel="stylesheet" href="/css/user.css"/>
|
||||
</head>
|
||||
<body class="">
|
||||
|
||||
<div th:replace="common/top :: top('')">
|
||||
</div>
|
||||
<div class="main box_center cf">
|
||||
<div class="userBox cf">
|
||||
<div class="my_l">
|
||||
|
||||
<ul class="log_list">
|
||||
<li><a class="link_1 " href="/user/userinfo.html">个人中心</a></li>
|
||||
<li><a class="link_4" href="/user/favorites.html">我的书架</a></li>
|
||||
<li><a class="link_6 on" href="/user/comment.html">我的书评</a></li>
|
||||
<li><a class="link_7 " href="/user/feedback_list.html">我的反馈</a></li>
|
||||
<li><a class="link_8 " href="/user/setup.html">账号设置</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<div class="my_r">
|
||||
<div class="my_bookshelf">
|
||||
<div class="title cf">
|
||||
<h2 class="fl">我的书评</h2>
|
||||
<div class="fr"></div>
|
||||
</div>
|
||||
<div class="bookComment">
|
||||
<div class="no_contet no_comment" style="display:none">
|
||||
您还没有发表过评论!
|
||||
</div>
|
||||
<div class="commentBar" id="commentBar">
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="pageBox cf" id="commentPage">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div th:replace="common/footer :: footer">
|
||||
</div>
|
||||
<div th:replace="common/js :: js"></div>
|
||||
<script language="javascript" type="text/javascript">
|
||||
search(1, 5);
|
||||
|
||||
function search(curr, limit) {
|
||||
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/user/listCommentByPage",
|
||||
data: {'curr':curr,'limit':limit},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
var commentList = data.data.list;
|
||||
if (commentList.length > 0) {
|
||||
$("#bookCommentTotal").html("("+data.data.total+"条)");
|
||||
var commentListHtml = "";
|
||||
for (var i = 0; i < commentList.length; i++) {
|
||||
var comment = commentList[i];
|
||||
commentListHtml += ("<div class=\"comment_list cf\">" +
|
||||
"<div class=\"user_heads fl\" vals=\"389\">" +
|
||||
"<img src=\""+(comment.createUserPhoto ? comment.createUserPhoto : '/images/man.png')+"\" class=\"user_head\" alt=\"\">" +
|
||||
"<span class=\"user_level1\" style=\"display: none;\">见习</span></div>" +
|
||||
"<ul class=\"pl_bar fr\">\t\t\t<li class=\"name\">"+(comment.createUserName.substr(0, 4) + "****" + comment.createUserName.substr(comment.createUserName.length - 3, 3))+"</li><li class=\"dec\">" +
|
||||
comment.commentContent+
|
||||
"</li><li class=\"other cf\">" +
|
||||
"<span class=\"time fl\">"+comment.createTime+"</span>" +
|
||||
"<span class=\"fr\"><a href=\"javascript:void(0);\" onclick=\"javascript:BookDetail.AddAgreeTotal(77,this);\" class=\"zan\" style=\"display: none;\">赞<i class=\"num\">(0)</i></a>" +
|
||||
"</span></li>\t\t</ul>\t</div>");
|
||||
}
|
||||
$("#commentBar").html(commentListHtml);
|
||||
|
||||
layui.use('laypage', function () {
|
||||
var laypage = layui.laypage;
|
||||
|
||||
//执行一个laypage实例
|
||||
laypage.render({
|
||||
elem: 'commentPage' //注意,这里的 test1 是 ID,不用加 # 号
|
||||
, count: data.data.total //数据总数,从服务端得到,
|
||||
, curr: data.data.pageNum
|
||||
, limit: data.data.pageSize
|
||||
, jump: function (obj, first) {
|
||||
|
||||
|
||||
//obj包含了当前分页的所有参数,比如:
|
||||
console.log(obj.curr); //得到当前页,以便向服务端请求对应页的数据。
|
||||
console.log(obj.limit); //得到每页显示的条数
|
||||
|
||||
|
||||
//首次不执行
|
||||
if (!first) {
|
||||
search(obj.curr, obj.limit);
|
||||
} else {
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
} else if (data.code == 1001) {
|
||||
//未登录
|
||||
location.href = '/user/login.html?originUrl=' + decodeURIComponent(location.href);
|
||||
|
||||
}else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
161
templates/green/html/user/favorites.html
Normal file
@ -0,0 +1,161 @@
|
||||
<!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">
|
||||
<head>
|
||||
<head th:replace="common/header :: common_head(~{::title},~{::meta},~{::link},~{})">
|
||||
<title th:text="'我的书架_'+${application.website.name}"></title>
|
||||
<meta name="keywords" th:content="'我的书架,个人中心,'+${application.website.name}+'小说,'+${application.website.name}" />
|
||||
<meta name="description" th:content="${application.website.name}+'小说每日更新小说连载,小说排行榜,提供言情小说,都市小说,玄幻小说,穿越小说,青春小说,总裁豪门小说,网络小说,免费小说,全本小说,首发小说,最新章节免费小说阅读,精彩尽在'+${application.website.name}+'小说!'" />
|
||||
<link rel="stylesheet" href="/css/user.css" />
|
||||
</head>
|
||||
</head>
|
||||
<body class="">
|
||||
|
||||
<div th:replace="common/top :: top('')">
|
||||
</div>
|
||||
|
||||
<div class="main box_center cf">
|
||||
<div class="userBox cf">
|
||||
<div class="my_l">
|
||||
|
||||
<ul class="log_list">
|
||||
<li><a class="link_1 " href="/user/userinfo.html">个人中心</a></li>
|
||||
<li><a class="link_4 on" href="/user/favorites.html">我的书架</a></li>
|
||||
<li><a class="link_6 " href="/user/comment.html">我的书评</a></li>
|
||||
<li><a class="link_7 " href="/user/feedback_list.html">我的反馈</a></li>
|
||||
<li><a class="link_8 " href="/user/setup.html">账号设置</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<div class="my_r">
|
||||
<div class="my_bookshelf">
|
||||
<div class="title cf">
|
||||
<h2 class="fl"><a href="javascript:void(0);" class="red">我的书架</a></h2><i class="fl ml20 mr20 font16">|</i><h2 class="fl"><a href="/user/read_history.html" >最近阅读</a></h2>
|
||||
</div>
|
||||
|
||||
<div id="divData" class="updateTable">
|
||||
<table cellpadding="0" cellspacing="0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="style">
|
||||
类别
|
||||
</th>
|
||||
<th class="name">
|
||||
书名
|
||||
</th>
|
||||
<th class="chapter">
|
||||
最新章节
|
||||
</th>
|
||||
<th class="time">
|
||||
更新时间
|
||||
</th>
|
||||
<th class="goread">
|
||||
书签
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="bookShelfList">
|
||||
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="pageBox cf" id="shellPage">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div th:replace="common/footer :: footer">
|
||||
</div>
|
||||
|
||||
|
||||
</body>
|
||||
<div th:replace="common/js :: js"></div>
|
||||
<script src="/javascript/user.js" type="text/javascript"></script>
|
||||
<script language="javascript" type="text/javascript">
|
||||
search(1, 10);
|
||||
|
||||
function search(curr, limit) {
|
||||
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/user/listBookShelfByPage",
|
||||
data: {'curr':curr,'limit':limit},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
var bookShelfList = data.data.list;
|
||||
if (bookShelfList.length > 0) {
|
||||
var bookShelfListHtml = "";
|
||||
for(var i=0;i<bookShelfList.length;i++){
|
||||
var book = bookShelfList[i];
|
||||
bookShelfListHtml+=(" <tr class=\"book_list\" vals=\"291\">\n" +
|
||||
" <td class=\"style bookclass\">\n" +
|
||||
" <a href=\"/book/bookclass.html?c="+book.catId+"\" >["+book.catName+"]</a>\n" +
|
||||
" </td>\n" +
|
||||
" <td class=\"name\">\n" +
|
||||
" <a href=\"/book/"+book.bookId+".html\">\n" +
|
||||
" "+book.bookName+"</a>\n" +
|
||||
" </td>\n" +
|
||||
" <td class=\"chapter\" valsc=\"291|2037554|1\">\n" +
|
||||
"<a href='/book/"+book.bookId+"/"+book.lastIndexId+".html'>"+book.lastIndexName+"</a>"+
|
||||
" </td>\n" +
|
||||
" <td class=\"time\">\n" +
|
||||
" "+book.lastIndexUpdateTime+"\n" +
|
||||
" </td>\n" +
|
||||
" <td class=\"goread\">\n" +
|
||||
"<a href='/book/"+book.bookId+"/"+book.preContentId+".html'>继续阅读</a>"+
|
||||
" </td>\n" +
|
||||
" </tr>");
|
||||
}
|
||||
$("#bookShelfList").html(bookShelfListHtml);
|
||||
|
||||
layui.use('laypage', function () {
|
||||
var laypage = layui.laypage;
|
||||
|
||||
//执行一个laypage实例
|
||||
laypage.render({
|
||||
elem: 'shellPage' //注意,这里的 test1 是 ID,不用加 # 号
|
||||
, count: data.data.total //数据总数,从服务端得到,
|
||||
, curr: data.data.pageNum
|
||||
, limit: data.data.pageSize
|
||||
, jump: function (obj, first) {
|
||||
|
||||
|
||||
//obj包含了当前分页的所有参数,比如:
|
||||
console.log(obj.curr); //得到当前页,以便向服务端请求对应页的数据。
|
||||
console.log(obj.limit); //得到每页显示的条数
|
||||
|
||||
|
||||
//首次不执行
|
||||
if (!first) {
|
||||
search(obj.curr, obj.limit);
|
||||
} else {
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
} else if (data.code == 1001) {
|
||||
//未登录
|
||||
location.href = '/user/login.html?originUrl=' + decodeURIComponent(location.href);
|
||||
|
||||
}else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
</script>
|
||||
</html>
|
92
templates/green/html/user/feedback.html
Normal file
@ -0,0 +1,92 @@
|
||||
<!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">
|
||||
<head th:replace="common/header :: common_head(~{::title},~{},~{::link},~{})">
|
||||
<title th:text="'反馈留言_'+${application.website.name}"></title>
|
||||
<link rel="stylesheet" href="/css/user.css"/>
|
||||
</head>
|
||||
<body class="">
|
||||
|
||||
<div th:replace="common/top :: top('')">
|
||||
</div>
|
||||
<div class="main box_center cf">
|
||||
<div class="channelWrap channelFeedback cf">
|
||||
|
||||
<div class="userBox cf">
|
||||
<div class="viewhistoryBox">
|
||||
<div class="my_bookshelf">
|
||||
<div class="title cf">
|
||||
<h2 class="fl ml10">
|
||||
<a href="javascript:void(0);">反馈留言</a></h2>
|
||||
</div>
|
||||
<div class="feedbackBox">
|
||||
|
||||
<form method="post" action="/" id="Form1"
|
||||
onsubmit="javascript:return checkForm();">
|
||||
<ul class="reg_list">
|
||||
<li>
|
||||
<textarea name="txtDescription" rows="2" cols="20" id="txtDescription"
|
||||
class="textarea" placeholder="请说明情况,并留下联系方式,你可以在个人中心【我的反馈】里查看回复~">
|
||||
</textarea></li>
|
||||
<li class="mb20">
|
||||
<input type="submit" name="btnSave" value="提交" id="btnSave"
|
||||
class="btn_red btn_big"/></li>
|
||||
<li>
|
||||
<span id="LabErr"></span></li>
|
||||
</ul>
|
||||
</form>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div th:replace="common/footer :: footer">
|
||||
</div>
|
||||
<div th:replace="common/js :: js"></div>
|
||||
<script src="/javascript/bookdetail.js" type="text/javascript"></script>
|
||||
|
||||
<script language="javascript" type="text/javascript">
|
||||
function checkForm() {
|
||||
var des = $("#txtDescription").val();
|
||||
des = $.trim(des);
|
||||
var errStr = '';
|
||||
if (des == "") {
|
||||
errStr = '反馈内容必须填写';
|
||||
} else if (des.length < 5) {
|
||||
errStr = '反馈内容不能少于5个字';
|
||||
}
|
||||
if (errStr != '') {
|
||||
layer.alert(errStr);
|
||||
return false;
|
||||
}
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/user/addFeedBack",
|
||||
data: {'content': $("#txtDescription").val()},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
location.href = '/user/feedback_list.html'
|
||||
|
||||
} else if (data.code == 1001) {
|
||||
//未登录
|
||||
location.href = '/user/login.html?originUrl=' + decodeURIComponent(location.href);
|
||||
|
||||
} else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
return false;
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
127
templates/green/html/user/feedback_list.html
Normal file
@ -0,0 +1,127 @@
|
||||
|
||||
|
||||
<!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">
|
||||
<head th:replace="common/header :: common_head(~{::title},~{},~{::link},~{})">
|
||||
<title th:text="'我的反馈_'+${application.website.name}"></title>
|
||||
<link rel="stylesheet" href="/css/user.css"/>
|
||||
</head>
|
||||
<body class="">
|
||||
|
||||
<div th:replace="common/top :: top('')">
|
||||
</div>
|
||||
<div class="main box_center cf">
|
||||
<div class="userBox cf">
|
||||
<div class="my_l">
|
||||
|
||||
<ul class="log_list">
|
||||
<li><a class="link_1 " href="/user/userinfo.html">个人中心</a></li>
|
||||
<li><a class="link_4" href="/user/favorites.html">我的书架</a></li>
|
||||
<li><a class="link_6" href="/user/comment.html">我的书评</a></li>
|
||||
<li><a class="link_7 on" href="/user/feedback_list.html">我的反馈</a></li>
|
||||
<li><a class="link_8 " href="/user/setup.html">账号设置</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<div class="my_r">
|
||||
<div class="my_bookshelf">
|
||||
<div class="title cf">
|
||||
<h2 class="fl">我的反馈</h2>
|
||||
<div class="fr"><a href="/user/feedback.html" class="btn_red">写反馈</a></div>
|
||||
</div>
|
||||
|
||||
<dl class="feedback_list cf">
|
||||
<dd id="feedbackList">
|
||||
|
||||
|
||||
|
||||
|
||||
</dd>
|
||||
</dl>
|
||||
<div class="cf">
|
||||
<div class="help_bar fl hidden">
|
||||
<a href=""><span class="txt">读者常见问题(18)</span></a>
|
||||
</div>
|
||||
<div class="pageBox cf" id="feedbackPage">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div th:replace="common/footer :: footer">
|
||||
</div>
|
||||
<div th:replace="common/js :: js"></div>
|
||||
<script language="javascript" type="text/javascript">
|
||||
search(1, 5);
|
||||
|
||||
function search(curr, limit) {
|
||||
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/user/listUserFeedBackByPage",
|
||||
data: {'curr':curr,'limit':limit},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
var feedbackList = data.data.list;
|
||||
if (feedbackList.length > 0) {
|
||||
var feedbackListHtml = "";
|
||||
for (var i = 0; i < feedbackList.length; i++) {
|
||||
var feedback = feedbackList[i];
|
||||
feedbackListHtml += (" <div class=\"comment_list clear\" ><ul>\n" +
|
||||
" <li class=\"li_1\"><span class=\"user_name fl\"></span><span class=\"time fl\">"+feedback.createTime+"</span></li>\n" +
|
||||
" <li class=\"li_2\">"+feedback.content+"</li>\n" +
|
||||
" </ul></div>");
|
||||
}
|
||||
$("#feedbackList").html(feedbackListHtml);
|
||||
|
||||
layui.use('laypage', function () {
|
||||
var laypage = layui.laypage;
|
||||
|
||||
//执行一个laypage实例
|
||||
laypage.render({
|
||||
elem: 'feedbackPage' //注意,这里的 test1 是 ID,不用加 # 号
|
||||
, count: data.data.total //数据总数,从服务端得到,
|
||||
, curr: data.data.pageNum
|
||||
, limit: data.data.pageSize
|
||||
, jump: function (obj, first) {
|
||||
|
||||
|
||||
//obj包含了当前分页的所有参数,比如:
|
||||
console.log(obj.curr); //得到当前页,以便向服务端请求对应页的数据。
|
||||
console.log(obj.limit); //得到每页显示的条数
|
||||
|
||||
|
||||
//首次不执行
|
||||
if (!first) {
|
||||
search(obj.curr, obj.limit);
|
||||
} else {
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
} else if (data.code == 1001) {
|
||||
//未登录
|
||||
location.href = '/user/login.html?originUrl=' + decodeURIComponent(location.href);
|
||||
|
||||
}else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
103
templates/green/html/user/login.html
Normal file
@ -0,0 +1,103 @@
|
||||
|
||||
|
||||
<!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">
|
||||
<head th:replace="common/header :: common_head(~{::title},~{::meta},~{::link},~{})">
|
||||
<title th:text="'会员登录_'+${application.website.name}"></title>
|
||||
<meta name="keywords" th:content="'会员登录,个人中心,'+${application.website.name}+'小说,'+${application.website.name}" />
|
||||
<meta name="description" th:content="${application.website.name}+'小说每日更新小说连载,小说排行榜,提供言情小说,都市小说,玄幻小说,穿越小说,青春小说,总裁豪门小说,网络小说,免费小说,全本小说,首发小说,最新章节免费小说阅读,精彩尽在'+${application.website.name}+'小说!'" />
|
||||
<link rel="stylesheet" href="/css/user.css" />
|
||||
</head>
|
||||
<body class="">
|
||||
|
||||
<div th:replace="common/top :: top('')">
|
||||
</div>
|
||||
|
||||
<div class="main box_center cf">
|
||||
<div class="userBox cf">
|
||||
<div class="user_l">
|
||||
<form method="post" action="./login.html" id="form1">
|
||||
<h3 th:text="'登陆'+${application.website.name}"></h3>
|
||||
<ul class="log_list">
|
||||
<li><span id="LabErr"></span></li>
|
||||
<li><input name="txtUName" type="text" id="txtUName" placeholder="手机号码" class="s_input icon_name" /></li>
|
||||
<li><input name="txtPassword" type="password" id="txtPassword" placeholder="密码" class="s_input icon_key" /></li>
|
||||
<li class="autologin cf"><label class="fl"><input id="autoLogin" type="checkbox" /><em>下次自动登录</em></label></li>
|
||||
<li><input type="button" name="btnLogin" value="登录" id="btnLogin" class="btn_red" /></li>
|
||||
</ul>
|
||||
</form>
|
||||
</div>
|
||||
<div class="user_r">
|
||||
<p class="tit">还没有注册账号?</p>
|
||||
<a href="/user/register.html" class="btn_ora_white">立即注册</a>
|
||||
<div class="fast_login" style="display:none;">
|
||||
<div class="fast_tit">
|
||||
<p class="lines"></p>
|
||||
<span class="title">其他登录方式</span>
|
||||
</div>
|
||||
<ul class="fast_list">
|
||||
<li class="login_wb"><a href="/"><img src="/images/login_weibo.png" alt="微博登录" class="img" /><span>微博登录</span></a></li>
|
||||
<li class="login_qq"><a href="/"><img src="/images/login_qq.png" alt="QQ登录" class="img" /><span>QQ登录</span></a></li>
|
||||
<li class="login_wx"><a href="/"><img src="/images/login_weixin.png" alt="微信登录" class="img" /><span>微信登录</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div th:replace="common/footer :: footer">
|
||||
</div>
|
||||
|
||||
|
||||
</body>
|
||||
<div th:replace="common/js :: js"></div>
|
||||
<script type="text/javascript">
|
||||
if(localStorage.getItem("autoLogin")==1){
|
||||
$("#autoLogin").attr("checked",'true');
|
||||
}else{
|
||||
$("#autoLogin").removeAttr("checked");
|
||||
}
|
||||
$("#btnLogin").click(function () {
|
||||
var username = $("#txtUName").val();
|
||||
if(username.isBlank()){
|
||||
$("#LabErr").html("手机号不能为空!");
|
||||
return;
|
||||
}
|
||||
if(!username.isPhone()){
|
||||
$("#LabErr").html("手机号格式不正确!");
|
||||
return;
|
||||
}
|
||||
var password = $("#txtPassword").val();
|
||||
if(password.isBlank()){
|
||||
$("#LabErr").html("密码不能为空!");
|
||||
return;
|
||||
}
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/user/login",
|
||||
data: {"username": username, "password": password},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
if($("#autoLogin").is(':checked')){
|
||||
$.cookie('Authorization', data.data.token, { expires: 7 ,path: '/' });
|
||||
localStorage.setItem("autoLogin","1");
|
||||
}else {
|
||||
$.cookie('Authorization', data.data.token,{ path: '/' });
|
||||
localStorage.setItem("autoLogin","0");
|
||||
}
|
||||
var orginUrl = getSearchString("originUrl");
|
||||
window.location.href = orginUrl == undefined || orginUrl.isBlank() ? "/" : orginUrl;
|
||||
} else {
|
||||
$("#LabErr").html(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
|
||||
})
|
||||
</script>
|
||||
</html>
|
149
templates/green/html/user/read_history.html
Normal file
@ -0,0 +1,149 @@
|
||||
<!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">
|
||||
<head th:replace="common/header :: common_head(~{::title},~{},~{::link},~{})">
|
||||
<title th:text="'最近阅读_'+${application.website.name}"></title>
|
||||
<link rel="stylesheet" href="/css/user.css"/>
|
||||
</head>
|
||||
<body class="">
|
||||
|
||||
<div th:replace="common/top :: top('')">
|
||||
</div>
|
||||
<div class="main box_center cf">
|
||||
<div class="userBox cf">
|
||||
<div class="viewhistoryBox">
|
||||
<div class="my_bookshelf">
|
||||
<div class="title cf">
|
||||
<h2 class="fl ml10"><a href="javascript:void(0);" class="red">最近阅读</a></h2><i class="fl ml20 mr20 font16">|</i><h2 class="fl"><a href="/user/favorites.html">我的书架</a></h2>
|
||||
</div>
|
||||
<div id="divData" class="updateTable">
|
||||
<table cellpadding="0" cellspacing="0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="style">
|
||||
类别
|
||||
</th>
|
||||
<th class="name">
|
||||
书名
|
||||
</th>
|
||||
<th class="chapter">
|
||||
最新章节
|
||||
</th>
|
||||
<th class="time">
|
||||
更新时间
|
||||
</th>
|
||||
<th class="goread">
|
||||
书签
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="bookHistoryList">
|
||||
|
||||
<!--<tr class="book_list" vals="234">
|
||||
<td class="style bookclass"></td>
|
||||
<td class="name">
|
||||
<a href="/book/234.html"></td>
|
||||
<td class="chapter" valsc="234|2005456|1"></td>
|
||||
<td class="time"></td>
|
||||
<td class="goread"></td>
|
||||
</tr>-->
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
<div class="pageBox cf" id="historyPage">
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div th:replace="common/footer :: footer">
|
||||
</div>
|
||||
<div th:replace="common/js :: js"></div>
|
||||
<script src="/javascript/user.js" type="text/javascript"></script>
|
||||
<script type="text/javascript">
|
||||
search(1, 10);
|
||||
|
||||
function search(curr, limit) {
|
||||
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/user/listReadHistoryByPage",
|
||||
data: {'curr':curr,'limit':limit},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
var bookHistoryList = data.data.list;
|
||||
if (bookHistoryList.length > 0) {
|
||||
var bookHistoryListHtml = "";
|
||||
for(var i=0;i<bookHistoryList.length;i++){
|
||||
var book = bookHistoryList[i];
|
||||
bookHistoryListHtml+=(" <tr class=\"book_list\" vals=\"291\">\n" +
|
||||
" <td class=\"style bookclass\">\n" +
|
||||
" <a href=\"/book/bookclass.html?c="+book.catId+"\" >["+book.catName+"]</a>\n" +
|
||||
" </td>\n" +
|
||||
" <td class=\"name\">\n" +
|
||||
" <a href=\"/book/"+book.bookId+".html\">\n" +
|
||||
" "+book.bookName+"</a>\n" +
|
||||
" </td>\n" +
|
||||
" <td class=\"chapter\" valsc=\"291|2037554|1\">\n" +
|
||||
"<a href='/book/"+book.bookId+"/"+book.lastIndexId+".html'>"+book.lastIndexName+"</a>"+
|
||||
" </td>\n" +
|
||||
" <td class=\"time\">\n" +
|
||||
" "+book.lastIndexUpdateTime+"\n" +
|
||||
" </td>\n" +
|
||||
" <td class=\"goread\">\n" +
|
||||
"<a href='/book/"+book.bookId+"/"+book.preContentId+".html'>继续阅读</a>"+
|
||||
" </td>\n" +
|
||||
" </tr>");
|
||||
}
|
||||
$("#bookHistoryList").html(bookHistoryListHtml);
|
||||
|
||||
layui.use('laypage', function () {
|
||||
var laypage = layui.laypage;
|
||||
|
||||
//执行一个laypage实例
|
||||
laypage.render({
|
||||
elem: 'historyPage' //注意,这里的 test1 是 ID,不用加 # 号
|
||||
, count: data.data.total //数据总数,从服务端得到,
|
||||
, curr: data.data.pageNum
|
||||
, limit: data.data.pageSize
|
||||
, jump: function (obj, first) {
|
||||
|
||||
|
||||
//obj包含了当前分页的所有参数,比如:
|
||||
console.log(obj.curr); //得到当前页,以便向服务端请求对应页的数据。
|
||||
console.log(obj.limit); //得到每页显示的条数
|
||||
|
||||
|
||||
//首次不执行
|
||||
if (!first) {
|
||||
search(obj.curr, obj.limit);
|
||||
} else {
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
} else if (data.code == 1001) {
|
||||
//未登录
|
||||
location.href = '/user/login.html?originUrl=' + decodeURIComponent(location.href);
|
||||
|
||||
}else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
122
templates/green/html/user/register.html
Normal file
@ -0,0 +1,122 @@
|
||||
<!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">
|
||||
<head th:replace="common/header :: common_head(~{::title},~{::meta},~{::link},~{})">
|
||||
<title th:text="'会员注册_'+${application.website.name}"></title>
|
||||
<meta name="keywords" th:content="'会员注册,个人中心,'+${application.website.name}+'小说,'+${application.website.name}"/>
|
||||
<meta name="description"
|
||||
th:content="${application.website.name}+'小说每日更新小说连载,小说排行榜,提供言情小说,都市小说,玄幻小说,穿越小说,青春小说,总裁豪门小说,网络小说,免费小说,全本小说,首发小说,最新章节免费小说阅读,精彩尽在'+${application.website.name}+'小说!'"/>
|
||||
<link rel="stylesheet" href="/css/user.css" />
|
||||
</head>
|
||||
<body class="">
|
||||
|
||||
<div th:replace="common/top :: top('')">
|
||||
</div>
|
||||
|
||||
<div class="main box_center cf">
|
||||
<div class="userBox cf">
|
||||
<form method="post" action="./register.html" id="form2">
|
||||
<div class="user_l">
|
||||
<h3 th:text="'注册'+${application.website.name}+'小说账号'"></h3>
|
||||
<ul class="log_list">
|
||||
<li><span id="LabErr"></span></li>
|
||||
<li><input name="txtUName" type="text" id="txtUName" class="s_input icon_name"
|
||||
placeholder="请输入您的手机号码"/></li>
|
||||
<li><input name="txtPassword" type="password" id="txtPassword" class="s_input icon_key"
|
||||
placeholder="请输入密码:6-20位字母/数字"/></li>
|
||||
<li class="log_code cf"><input name="TxtChkCode" type="text" maxlength="4" id="TxtChkCode"
|
||||
class="s_input icon_code" placeholder="请输入验证码"/><img
|
||||
style="border: 1px solid #eee" class="code_pic" src="" id="chkd"
|
||||
onclick="getVerify(this);"/></li>
|
||||
<li><input type="button" name="btnRegister" value="注册" id="btnRegister" class="btn_red"/></li>
|
||||
</ul>
|
||||
</div>
|
||||
</form>
|
||||
<div class="user_r">
|
||||
<p class="tit">已有账号?</p>
|
||||
<a href="/user/login.html" class="btn_ora_white">立即登录</a>
|
||||
<div class="fast_login" style="display:none;">
|
||||
<div class="fast_tit">
|
||||
<p class="lines"></p>
|
||||
<span class="title">其他登录方式</span>
|
||||
</div>
|
||||
<ul class="fast_list">
|
||||
<li class="login_wb"><a href="/"><img src="/images/login_weibo.png" alt="微博登录"
|
||||
class="img"><span>微博登录</span></a></li>
|
||||
<li class="login_qq"><a href="/"><img src="/images/login_qq.png" alt="QQ登录"
|
||||
class="img"><span>QQ登录</span></a></li>
|
||||
<li class="login_wx"><a href="/"><img src="/images/login_weixin.png" alt="微信登录"
|
||||
class="img"><span>微信登录</span></a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div th:replace="common/footer :: footer">
|
||||
</div>
|
||||
<div th:replace="common/js :: js"></div>
|
||||
<script language="javascript" type="text/javascript">
|
||||
$("#chkd").click();
|
||||
$(function () {
|
||||
$("#form2").submit(function () {
|
||||
if ($("#txtUName").val() != "" && $("#txtPassword").val() != "" && $("#TxtSmsCode").val() != "") {
|
||||
} else {
|
||||
layer.open({
|
||||
content: '请填写全部资料',
|
||||
style: UserUtil.msgStyle,
|
||||
time: 2
|
||||
});
|
||||
return false;
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
//获取验证码
|
||||
function getVerify(obj) {
|
||||
obj.src = "/file/getVerify?" + Math.random();
|
||||
}
|
||||
|
||||
$("#btnRegister").click(function () {
|
||||
var username = $("#txtUName").val();
|
||||
if (username.isBlank()) {
|
||||
$("#LabErr").html("手机号不能为空!");
|
||||
return;
|
||||
}
|
||||
if (!username.isPhone()) {
|
||||
$("#LabErr").html("手机号格式不正确!");
|
||||
return;
|
||||
}
|
||||
var password = $("#txtPassword").val();
|
||||
if (password.isBlank()) {
|
||||
$("#LabErr").html("密码不能为空!");
|
||||
return;
|
||||
}
|
||||
var velCode = $("#TxtChkCode").val();
|
||||
if (velCode.isBlank()) {
|
||||
$("#LabErr").html("验证码不能为空!");
|
||||
return;
|
||||
}
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/user/register",
|
||||
data: {"username": username, "password": password,"velCode":velCode},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
$.cookie('Authorization', data.data.token, {path: '/'});
|
||||
window.location.href="/";
|
||||
} else {
|
||||
$("#LabErr").html(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
|
||||
})
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
114
templates/green/html/user/set_name.html
Normal file
@ -0,0 +1,114 @@
|
||||
<!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">
|
||||
<head th:replace="common/header :: common_head(~{::title},~{},~{::link},~{})">
|
||||
<title th:text="'修改昵称_'+${application.website.name}"></title>
|
||||
<link rel="stylesheet" href="/css/user.css"/>
|
||||
</head>
|
||||
<body class="">
|
||||
|
||||
<div th:replace="common/top :: top('')">
|
||||
</div>
|
||||
<div class="main box_center cf">
|
||||
<div class="userBox cf">
|
||||
<div class="my_l">
|
||||
|
||||
<ul class="log_list">
|
||||
<li><a class="link_1 " href="/user/userinfo.html">个人中心</a></li>
|
||||
<li><a class="link_4" href="/user/favorites.html">我的书架</a></li>
|
||||
<li><a class="link_6" href="/user/comment.html">我的书评</a></li>
|
||||
<li><a class="link_7 " href="/user/feedback_list.html">我的反馈</a></li>
|
||||
<li><a class="link_8 on" href="/user/setup.html">账号设置</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<div class="my_r">
|
||||
<div class="my_info cf">
|
||||
<div class="my_info_txt">
|
||||
<ul class="mytab_list">
|
||||
<li><i class="tit">我的昵称</i><input name="txtNiceName" type="text" value="15171695474"
|
||||
maxlength="20" id="txtNiceName" class="s_input"
|
||||
placeholder=""/></li>
|
||||
<li><i class="tit"> </i>用户名只能包括汉字、英文字母、数字和下划线</li>
|
||||
<li><i class="tit"> </i><input type="button" onclick="updateName()" name="btn" value="修改"
|
||||
id="btn" class="s_btn btn_red"/></li>
|
||||
<li><i class="tit"> </i><span id="LabErr"></span></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div th:replace="common/footer :: footer">
|
||||
</div>
|
||||
<div th:replace="common/js :: js"></div>
|
||||
<script type="text/javascript">
|
||||
//查询用户信息
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/user/userInfo",
|
||||
data: {},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
if (data.data.nickName) {
|
||||
$("#txtNiceName").val(data.data.nickName);
|
||||
} else {
|
||||
$("#txtNiceName").val(data.data.username);
|
||||
}
|
||||
|
||||
|
||||
} else if (data.code == 1001) {
|
||||
//未登录
|
||||
location.href = '/user/login.html?originUrl=' + decodeURIComponent(location.href);
|
||||
|
||||
} else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
|
||||
function updateName() {
|
||||
var nickname = $("#txtNiceName").val();
|
||||
if (nickname.isBlank()) {
|
||||
$("#LabErr").html("昵称不能为空!");
|
||||
return;
|
||||
}
|
||||
if (!nickname.isNickName()) {
|
||||
$("#LabErr").html("昵称格式不正确!");
|
||||
return;
|
||||
}
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/user/updateUserInfo",
|
||||
data: {'nickName': nickname},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
|
||||
$.cookie('Authorization', data.data.token, {path: '/'});
|
||||
window.location.href = '/user/setup.html';
|
||||
|
||||
} else if (data.code == 1001) {
|
||||
//未登录
|
||||
location.href = '/user/login.html?originUrl=' + decodeURIComponent(location.href);
|
||||
|
||||
} else {
|
||||
$("#LabErr").html(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
}
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
90
templates/green/html/user/set_password.html
Normal file
@ -0,0 +1,90 @@
|
||||
<!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">
|
||||
<head th:replace="common/header :: common_head(~{::title},~{},~{::link},~{})">
|
||||
<title th:text="'修改密码_'+${application.website.name}"></title>
|
||||
<link rel="stylesheet" href="/css/user.css"/>
|
||||
</head>
|
||||
<body class="">
|
||||
|
||||
<div th:replace="common/top :: top('')">
|
||||
</div>
|
||||
<div class="main box_center cf">
|
||||
<div class="userBox cf">
|
||||
<div class="my_l">
|
||||
|
||||
<ul class="log_list">
|
||||
<li><a class="link_1 " href="/user/userinfo.html">个人中心</a></li>
|
||||
<li><a class="link_4" href="/user/favorites.html">我的书架</a></li>
|
||||
<li><a class="link_6" href="/user/comment.html">我的书评</a></li>
|
||||
<li><a class="link_7 " href="/user/feedback_list.html">我的反馈</a></li>
|
||||
<li><a class="link_8 on" href="/user/setup.html">账号设置</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<div class="my_r">
|
||||
<div class="my_info cf">
|
||||
<div class="my_info_txt">
|
||||
<ul class="mytab_list">
|
||||
<li><i class="tit">我的密码</i><input name="oldPass" type="password" id="txtOldPass" class="s_input" placeholder="请输入原密码" /></li>
|
||||
<li><i class="tit"> </i><input name="txtNewPass1" type="password" id="txtNewPass1" class="s_input" placeholder="请输入新密码" /></li>
|
||||
<li><i class="tit"> </i><input name="txtNewPass2" type="password" id="txtNewPass2" class="s_input" placeholder="请确认新密码" /></li>
|
||||
<li><i class="tit"> </i><input type="submit" name="btnExchangePassword" value="修改" id="btnExchangePassword" onclick="updatePassword()" class="s_btn btn_red" /></li>
|
||||
<li><i class="tit"> </i><span id="LabErr"></span></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div th:replace="common/footer :: footer">
|
||||
</div>
|
||||
<div th:replace="common/js :: js"></div>
|
||||
<script type="text/javascript">
|
||||
function updatePassword() {
|
||||
var oldPassword = $("#txtOldPass").val();
|
||||
if (oldPassword.isBlank()) {
|
||||
$("#LabErr").html("旧密码不能为空!");
|
||||
return;
|
||||
}
|
||||
var newPassword1 = $("#txtNewPass1").val();
|
||||
if (newPassword1.isBlank()) {
|
||||
$("#LabErr").html("新密码不能为空!");
|
||||
return;
|
||||
}
|
||||
var newPassword2 = $("#txtNewPass2").val();
|
||||
if (newPassword2.isBlank()) {
|
||||
$("#LabErr").html("确认密码不能为空!");
|
||||
return;
|
||||
}
|
||||
if(newPassword1 !== newPassword2){
|
||||
$("#LabErr").html("两次输入的新密码不匹配!");
|
||||
return;
|
||||
}
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/user/updatePassword",
|
||||
data: {'oldPassword':oldPassword,'newPassword1':newPassword1,'newPassword2':newPassword2},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
window.location.href = '/user/setup.html';
|
||||
|
||||
} else if (data.code == 1001) {
|
||||
//未登录
|
||||
location.href = '/user/login.html?originUrl=' + decodeURIComponent(location.href);
|
||||
|
||||
} else {
|
||||
$("#LabErr").html(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
}
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
99
templates/green/html/user/set_sex.html
Normal file
@ -0,0 +1,99 @@
|
||||
<!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">
|
||||
<head th:replace="common/header :: common_head(~{::title},~{},~{::link},~{})">
|
||||
<title th:text="'修改性别_'+${application.website.name}"></title>
|
||||
<link rel="stylesheet" href="/css/user.css"/>
|
||||
</head>
|
||||
<body class="">
|
||||
|
||||
<div th:replace="common/top :: top('')">
|
||||
</div>
|
||||
<div class="main box_center cf">
|
||||
<div class="userBox cf">
|
||||
<div class="my_l">
|
||||
|
||||
<ul class="log_list">
|
||||
<li><a class="link_1 " href="/user/userinfo.html">个人中心</a></li>
|
||||
<li><a class="link_4" href="/user/favorites.html">我的书架</a></li>
|
||||
<li><a class="link_6" href="/user/comment.html">我的书评</a></li>
|
||||
<li><a class="link_7 " href="/user/feedback_list.html">我的反馈</a></li>
|
||||
<li><a class="link_8 on" href="/user/setup.html">账号设置</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<div class="my_r">
|
||||
<div class="my_info cf">
|
||||
<div class="my_info_txt">
|
||||
<ul class="mytab_list">
|
||||
<li><i class="tit">我的性别</i>
|
||||
<label><input type="radio" name="sex" value="0" /> 男生</label>
|
||||
<label><input class="ml20" type="radio" name="sex" value="1" checked /> 女生</label>
|
||||
</li>
|
||||
<li class="mt20"><i class="tit"> </i><input type="button" onclick="updateSex()" name="btn" value="修改" id="btn" class="s_btn btn_red" /></li>
|
||||
<li><i class="tit"> </i><span id="LabErr"></span></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div th:replace="common/footer :: footer">
|
||||
</div>
|
||||
<div th:replace="common/js :: js"></div>
|
||||
<script type="text/javascript">
|
||||
//查询用户信息
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/user/userInfo",
|
||||
data: {},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
if(data.data.userSex === '0'){
|
||||
$("input[name=sex]").eq(0).attr("checked",true);
|
||||
}
|
||||
|
||||
|
||||
|
||||
} else if (data.code == 1001) {
|
||||
//未登录
|
||||
location.href = '/user/login.html?originUrl=' + decodeURIComponent(location.href);
|
||||
|
||||
} else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
function updateSex() {
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/user/updateUserInfo",
|
||||
data: {'userSex':$("input[name=sex]:checked").val()},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
window.location.href = '/user/setup.html';
|
||||
|
||||
} else if (data.code == 1001) {
|
||||
//未登录
|
||||
location.href = '/user/login.html?originUrl=' + decodeURIComponent(location.href);
|
||||
|
||||
} else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
}
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
150
templates/green/html/user/setup.html
Normal file
@ -0,0 +1,150 @@
|
||||
<!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">
|
||||
<head th:replace="common/header :: common_head(~{::title},~{},~{::link},~{})">
|
||||
<title th:text="'账号设置_'+${application.website.name}"></title>
|
||||
<link rel="stylesheet" href="/css/user.css"/>
|
||||
</head>
|
||||
<body class="">
|
||||
|
||||
<div th:replace="common/top :: top('')">
|
||||
</div>
|
||||
<div class="main box_center cf">
|
||||
<div class="userBox cf">
|
||||
<div class="my_l">
|
||||
|
||||
<ul class="log_list">
|
||||
<li><a class="link_1 " href="/user/userinfo.html">个人中心</a></li>
|
||||
<li><a class="link_4" href="/user/favorites.html">我的书架</a></li>
|
||||
<li><a class="link_6" href="/user/comment.html">我的书评</a></li>
|
||||
<li><a class="link_7 " href="/user/feedback_list.html">我的反馈</a></li>
|
||||
<li><a class="link_8 on" href="/user/setup.html">账号设置</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<div class="my_r">
|
||||
<div class="my_info cf">
|
||||
<div class="my_info_txt">
|
||||
<ul class="mytab_list">
|
||||
<li ><i class="tit">我的头像</i>
|
||||
<a style="position: relative" >
|
||||
<img id="imgLogo" class="user_img" alt="我的头像" src="/images/man.png" />
|
||||
<input class="opacity" onchange="picChange()" type="file" id="file0" name="file" title="点击上传图片" style="z-index: 100;cursor: pointer;left: 0px; top: -25px; width: 60px; height: 80px; opacity: 0; position: absolute; "/>
|
||||
|
||||
</a>
|
||||
|
||||
</li>
|
||||
<li><i class="tit">我的昵称</i><a href="/user/set_name.html" id="my_name"></a></li>
|
||||
<li style="display:none"><i class="tit">电子邮箱</i><a href="javascript:void(0);"></a></li>
|
||||
<li><i class="tit">我的性别</i><a href="/user/set_sex.html" id="my_sex"></a></li>
|
||||
<li><i class="tit">我的密码</i><a href="/user/set_password.html">修改密码</a></li>
|
||||
<li><i class="tit">当前状态</i><a href="javascript:logout()">退出登录</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div th:replace="common/footer :: footer">
|
||||
</div>
|
||||
<div th:replace="common/js :: js"></div>
|
||||
<script src="/javascript/user.js" type="text/javascript"></script>
|
||||
<script src="/javascript/ajaxfileupload.js" type="text/javascript"></script>
|
||||
<script type="text/javascript">
|
||||
//查询用户信息
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/user/userInfo",
|
||||
data: {},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
if(data.data.userPhoto){
|
||||
$("#imgLogo").attr("src",data.data.userPhoto);
|
||||
}
|
||||
if(data.data.nickName){
|
||||
$("#my_name").html(data.data.nickName+"<em class=\"ml10\">[修改]</em>");
|
||||
}else{
|
||||
$("#my_name").html(data.data.username+"<em class=\"ml10\">[修改]</em>");
|
||||
}
|
||||
if(data.data.userSex === '0'){
|
||||
$("#my_sex").html("男<em class=\"ml10\">[修改]</em>");
|
||||
}else if(data.data.userSex === '1'){
|
||||
$("#my_sex").html("女<em class=\"ml10\">[修改]</em>");
|
||||
}else{
|
||||
$("#my_sex").html("请选择");
|
||||
}
|
||||
|
||||
|
||||
|
||||
} else if (data.code == 1001) {
|
||||
//未登录
|
||||
location.href = '/user/login.html?originUrl=' + decodeURIComponent(location.href);
|
||||
|
||||
} else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
function picChange() {
|
||||
var file = $("#file0").val(); //文件名称
|
||||
if (file != "") {
|
||||
|
||||
if(checkPicUpload($("#file0")[0])) {
|
||||
|
||||
$.ajaxFileUpload({
|
||||
url: "/file/picUpload", //用于文件上传的服务器端请求地址
|
||||
secureuri: false, //是否需要安全协议,一般设置为false
|
||||
fileElementId: "file0", //文件上传域的ID
|
||||
dataType: "json", //返回值类型 一般设置为json
|
||||
type: "post",
|
||||
success: function (data) { //服务器成功响应处理函数
|
||||
if (data.code == 200) {
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/user/updateUserInfo",
|
||||
data: {'userPhoto': data.data},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
window.location.href = '/user/setup.html';
|
||||
|
||||
} else if (data.code == 1001) {
|
||||
//未登录
|
||||
location.href = '/user/login.html?originUrl=' + decodeURIComponent(location.href);
|
||||
|
||||
} else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
|
||||
} else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
} else {
|
||||
alert("请选择上传文件!");
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
161
templates/green/html/user/userinfo.html
Normal file
@ -0,0 +1,161 @@
|
||||
|
||||
|
||||
<!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">
|
||||
<head th:replace="common/header :: common_head(~{::title},~{},~{::link},~{})">
|
||||
<title th:text="'个人中心_'+${application.website.name}"></title>
|
||||
<link rel="stylesheet" href="/css/user.css"/>
|
||||
</head>
|
||||
<body class="">
|
||||
|
||||
<div th:replace="common/top :: top('')">
|
||||
</div>
|
||||
<div class="main box_center cf">
|
||||
<div class="userBox cf">
|
||||
<div class="my_l">
|
||||
|
||||
<ul class="log_list">
|
||||
<li><a class="link_1 on" href="/user/userinfo.html">个人中心</a></li>
|
||||
<li><a class="link_4" href="/user/favorites.html">我的书架</a></li>
|
||||
<li><a class="link_6" href="/user/comment.html">我的书评</a></li>
|
||||
<li><a class="link_7 " href="/user/feedback_list.html">我的反馈</a></li>
|
||||
<li><a class="link_8 " href="/user/setup.html">账号设置</a></li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
<div class="my_r">
|
||||
<div class="my_info cf">
|
||||
<img id="imgLogo" class="user_big_head" src="/images/man.png" />
|
||||
<div class="my_info_txt">
|
||||
<p class="my_name" id="my_name">
|
||||
</p>
|
||||
<ul class="my_list">
|
||||
<li class="my_gold"><i>账户余额:</i><em class="red" id="accountBalance">0</em>屋币<!--<em class="red">+</em><em class="red">0</em>代金券--><a href="/pay/index.html" class="btn_link">立即充值</a></li>
|
||||
<li class="my_baonian"></li>
|
||||
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<div class="my_bookshelf">
|
||||
<div class="title cf">
|
||||
<h4 class="fl">
|
||||
我的书架</h4>
|
||||
<a href="/user/favorites.html" class="fr">全部收藏 ></a>
|
||||
</div>
|
||||
<div class="updateTable">
|
||||
<table cellpadding="0" cellspacing="0">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="style">
|
||||
类别
|
||||
</th>
|
||||
<th class="name">
|
||||
书名
|
||||
</th>
|
||||
<th class="chapter">
|
||||
最新章节
|
||||
</th>
|
||||
<th class="time">
|
||||
更新时间
|
||||
</th>
|
||||
<th class="goread">
|
||||
书签
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody id="bookShelfList">
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div th:replace="common/footer :: footer">
|
||||
</div>
|
||||
<div th:replace="common/js :: js"></div>
|
||||
<script type="text/javascript" src="/javascript/user.js"></script>
|
||||
<script type="text/javascript">
|
||||
//查询用户信息
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/user/userInfo",
|
||||
data: {},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
if(data.data.userPhoto){
|
||||
$("#imgLogo").attr("src",data.data.userPhoto);
|
||||
}
|
||||
if(data.data.nickName){
|
||||
$("#my_name").html(data.data.nickName);
|
||||
}else{
|
||||
$("#my_name").html(data.data.username);
|
||||
}
|
||||
|
||||
$("#accountBalance").html(data.data.accountBalance);
|
||||
|
||||
} else if (data.code == 1001) {
|
||||
//未登录
|
||||
location.href = '/user/login.html?originUrl=' + decodeURIComponent(location.href);
|
||||
|
||||
} else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
//查询书架列表
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/user/listBookShelfByPage",
|
||||
data: {'limit':2},
|
||||
dataType: "json",
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
var bookShelfList = data.data.list;
|
||||
if (bookShelfList.length > 0) {
|
||||
var bookShelfListHtml = "";
|
||||
for (var i = 0; i < bookShelfList.length; i++) {
|
||||
var book = bookShelfList[i];
|
||||
bookShelfListHtml += (" <tr class=\"book_list\" vals=\"291\">\n" +
|
||||
" <td class=\"style bookclass\">\n" +
|
||||
" <a href=\"/book/bookclass.html?c="+book.catId+"\" >[" + book.catName + "]</a>\n" +
|
||||
" </td>\n" +
|
||||
" <td class=\"name\">\n" +
|
||||
" <a href=\"/book/" + book.bookId + ".html\">\n" +
|
||||
" " + book.bookName + "</a>\n" +
|
||||
" </td>\n" +
|
||||
" <td class=\"chapter\" valsc=\"291|2037554|1\">\n" +
|
||||
"<a href='/book/" + book.bookId + "/" + book.lastIndexId + ".html'>" + book.lastIndexName + "</a>" +
|
||||
" </td>\n" +
|
||||
" <td class=\"time\">\n" +
|
||||
" " + book.lastIndexUpdateTime + "\n" +
|
||||
" </td>\n" +
|
||||
" <td class=\"goread\">\n" +
|
||||
"<a href='/book/" + book.bookId + "/" + book.preContentId + ".html'>继续阅读</a>" +
|
||||
" </td>\n" +
|
||||
" </tr>");
|
||||
}
|
||||
$("#bookShelfList").html(bookShelfListHtml);
|
||||
}
|
||||
|
||||
} else {
|
||||
layer.alert(data.msg);
|
||||
}
|
||||
|
||||
},
|
||||
error: function () {
|
||||
layer.alert('网络异常');
|
||||
}
|
||||
})
|
||||
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
27
templates/green/static/css/about.css
Normal file
@ -0,0 +1,27 @@
|
||||
@charset "utf-8";
|
||||
.userBox { width: 998px; border: 1px solid #eaeaea; margin: 0 auto 50px; background: #fff }
|
||||
.my_l { width: 198px; float: left; font-size: 13px;
|
||||
padding-top: 20px; }
|
||||
.my_l li a { display: block; height: 48px; line-height: 48px; padding-left: 40px; border-left: 2px solid transparent; font-size: 14px; margin: 0 0 2px; }
|
||||
.my_l li .on { border-left: 2px solid #3eaf7c; background: #f8f8f8 }
|
||||
.my_r { width: 739px; padding: 30px; float: right; border-left: 1px solid #ededed; min-height: 470px; background: #fff }
|
||||
.my_r .title { padding: 15px 0 }
|
||||
.my_r h4 { font-size: 15px; color: #666; font-weight: bold }
|
||||
.newsBox { }
|
||||
.news_list .dot { width: 4px; height: 4px; border-radius: 50%; background-color: #999; display: inline-block; margin: 0 10px 3px 0; }
|
||||
.news_list li { padding: 0 0 20px; margin-bottom: 20px; border-bottom: 1px solid #f5f5f5 }
|
||||
.news_list li h5 { font-size: 14px }
|
||||
.news_list li p { color: #999; padding-top: 15px }
|
||||
.news_nav { color: #999; padding: 0px 0; line-height: 2.5; }
|
||||
.news_nav a { font: 12px/1 "Microsoft YaHei"; margin: 0 5px; }
|
||||
.news_title { text-align: center; border-bottom: 1px solid #eee; margin: 30px auto 40px; }
|
||||
.news_title h2 { font-size: 20px; }
|
||||
.news_title .from { color: #999; display: block; margin: 20px 0; }
|
||||
.news_title .time { margin-left: 20px }
|
||||
.news_title .click { margin-left: 40px }
|
||||
.news_info { padding: 0 60px; line-height: 28px; font-size: 14px; min-height:400px }
|
||||
.news_info p { margin-bottom: 30px }
|
||||
.aboutBox h2 { font-size:16px; margin-bottom:15px }
|
||||
.about_info { line-height: 28px; font-size: 14px; min-height:400px }
|
||||
.about_info p, .about_info h4 { margin-bottom: 10px }
|
||||
.news_info img { max-width: 100% }
|
967
templates/green/static/css/base.css
Normal file
@ -0,0 +1,967 @@
|
||||
@charset "utf-8";
|
||||
body, div, dl, dt, dd, ul, ol, li, h1, h2, h3, h4, h5, h6, pre, form, fieldset, input, p, a, blockquote, th {
|
||||
margin: 0;
|
||||
padding: 0
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
font-size: 14px
|
||||
}
|
||||
|
||||
ol, ul, li {
|
||||
list-style: none outside none
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapsse;
|
||||
border-spacing: 0
|
||||
}
|
||||
|
||||
fieldset, img {
|
||||
border: 0 none
|
||||
}
|
||||
|
||||
/*html { background: ##f5f5f5 }*/
|
||||
body {
|
||||
background: #f5f5f5;
|
||||
color: #333;
|
||||
font: 12px/1.5 PingFangSC-Regular, HelveticaNeue-Light, 'Helvetica Neue Light', 'Microsoft YaHei', sans-serif, "宋体";
|
||||
text-align: left
|
||||
}
|
||||
|
||||
input::-moz-focus-inner {
|
||||
border: none;
|
||||
padding: 0
|
||||
}
|
||||
|
||||
a img {
|
||||
border: none
|
||||
}
|
||||
|
||||
a {
|
||||
outline: none;
|
||||
color: #333;
|
||||
text-decoration: none
|
||||
}
|
||||
|
||||
a:hover, .topBar a:hover, .red, .record_list li:hover .read_link a {
|
||||
color: #3eaf7c
|
||||
}
|
||||
|
||||
.red1 {
|
||||
color: #ff4040
|
||||
}
|
||||
|
||||
.unlink {
|
||||
text-decoration: underline
|
||||
}
|
||||
|
||||
.blue {
|
||||
color: #5fc3f3
|
||||
}
|
||||
|
||||
.green {
|
||||
color: #360
|
||||
}
|
||||
|
||||
.black {
|
||||
color: #000
|
||||
}
|
||||
|
||||
.black3 {
|
||||
color: #333
|
||||
}
|
||||
|
||||
.black6 {
|
||||
color: #666
|
||||
}
|
||||
|
||||
.black9 {
|
||||
color: #999
|
||||
}
|
||||
|
||||
.ccc {
|
||||
color: #ccc
|
||||
}
|
||||
|
||||
.orange {
|
||||
color: #f60
|
||||
}
|
||||
|
||||
.font12 {
|
||||
font-size: 12px !important
|
||||
}
|
||||
|
||||
.font14 {
|
||||
font-size: 14px !important
|
||||
}
|
||||
|
||||
.font16 {
|
||||
font-size: 16px !important
|
||||
}
|
||||
|
||||
.font18 {
|
||||
font-size: 18px !important
|
||||
}
|
||||
|
||||
.font20 {
|
||||
font-size: 20px !important
|
||||
}
|
||||
|
||||
.font26 {
|
||||
font-size: 26px !important
|
||||
}
|
||||
|
||||
.ellipsis {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
word-break: keep-all
|
||||
}
|
||||
|
||||
textarea {
|
||||
resize: none;
|
||||
outline: none;
|
||||
border: 1px solid #CCC;
|
||||
font: 12px/1.8 "microsoft yahei", Arial;
|
||||
padding-left: 5px
|
||||
}
|
||||
|
||||
input {
|
||||
outline: none;
|
||||
border: none; /* padding-left: 5px; font-size: 13px;*/
|
||||
font-family: "microsoft yahei", Arial;
|
||||
*background: none
|
||||
}
|
||||
|
||||
i, em, cite {
|
||||
font-style: normal
|
||||
}
|
||||
|
||||
.layui-inline, input, label {
|
||||
vertical-align: middle
|
||||
}
|
||||
|
||||
button, input, optgroup, select, textarea {
|
||||
color: inherit;
|
||||
font: inherit;
|
||||
margin: 0;
|
||||
outline: 0
|
||||
}
|
||||
|
||||
button, select {
|
||||
text-transform: none
|
||||
}
|
||||
|
||||
/*select { -webkit-appearance: none; border: none }*/
|
||||
input {
|
||||
line-height: normal
|
||||
}
|
||||
|
||||
input[type=checkbox], input[type=radio] {
|
||||
box-sizing: border-box;
|
||||
padding: 0
|
||||
}
|
||||
|
||||
input[type=number]::-webkit-inner-spin-button, input[type=number]::-webkit-outer-spin-button {
|
||||
height: auto
|
||||
}
|
||||
|
||||
input[type=search] {
|
||||
-webkit-appearance: textfield;
|
||||
-moz-box-sizing: content-box;
|
||||
-webkit-box-sizing: content-box;
|
||||
box-sizing: content-box
|
||||
}
|
||||
|
||||
input[type=search]::-webkit-search-cancel-button, input[type=search]::-webkit-search-decoration {
|
||||
-webkit-appearance: none
|
||||
}
|
||||
|
||||
input[type="submit"], input[type="reset"], input[type="button"], button {
|
||||
-webkit-appearance: none
|
||||
}
|
||||
|
||||
:-moz-placeholder {
|
||||
color: #999
|
||||
}
|
||||
|
||||
::-moz-placeholder {
|
||||
color: #999
|
||||
}
|
||||
|
||||
input:-ms-input-placeholder, textarea:-ms-input-placeholder {
|
||||
color: #999
|
||||
}
|
||||
|
||||
input::-webkit-input-placeholder, textarea::-webkit-input-placeholder {
|
||||
color: #999
|
||||
}
|
||||
|
||||
.cf {
|
||||
zoom: 1
|
||||
}
|
||||
|
||||
.cf:before, .cf:after {
|
||||
content: "";
|
||||
display: table;
|
||||
display: block;
|
||||
font-size: 0;
|
||||
height: 0;
|
||||
line-height: 0;
|
||||
clear: both;
|
||||
visibility: hidden
|
||||
}
|
||||
|
||||
.cf:after {
|
||||
clear: both
|
||||
}
|
||||
|
||||
.clear {
|
||||
clear: both
|
||||
}
|
||||
|
||||
.tl {
|
||||
text-align: left
|
||||
}
|
||||
|
||||
.tc {
|
||||
text-align: center
|
||||
}
|
||||
|
||||
.tr {
|
||||
text-align: right
|
||||
}
|
||||
|
||||
.fl {
|
||||
float: left
|
||||
}
|
||||
|
||||
.fr {
|
||||
float: right
|
||||
}
|
||||
|
||||
.block {
|
||||
display: block
|
||||
}
|
||||
|
||||
.none, .hidden {
|
||||
display: none
|
||||
}
|
||||
|
||||
/*base end*/
|
||||
.channelWrap {
|
||||
background: #fff;
|
||||
border-radius: 6px;
|
||||
padding: 20px;
|
||||
margin-bottom: 20px
|
||||
}
|
||||
|
||||
.channelWrap.channelBanner {
|
||||
padding-bottom: 14px
|
||||
}
|
||||
|
||||
.wrap_left {
|
||||
width: 750px
|
||||
}
|
||||
|
||||
.wrap_right {
|
||||
width: 250px
|
||||
}
|
||||
|
||||
.wrap_inner {
|
||||
padding: 20px;
|
||||
border-radius: 6px;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.wrap_bg {
|
||||
border-radius: 6px;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
.pad20 {
|
||||
padding: 20px
|
||||
}
|
||||
|
||||
.pad20_nobt {
|
||||
padding: 20px 20px 0
|
||||
}
|
||||
|
||||
.topBar {
|
||||
width: 100%;
|
||||
background: #fbfaf8;
|
||||
border-bottom: 1px solid #eae6e2;
|
||||
height: 35px;
|
||||
line-height: 35px
|
||||
}
|
||||
|
||||
.box_center {
|
||||
width: 1020px;
|
||||
margin: 0 auto
|
||||
}
|
||||
|
||||
.top_l {
|
||||
float: left
|
||||
}
|
||||
|
||||
.top_r {
|
||||
float: right
|
||||
}
|
||||
|
||||
.topBar .line {
|
||||
display: inline-block;
|
||||
padding: 0 12px;
|
||||
color: #e5d9da
|
||||
}
|
||||
|
||||
.topBar a {
|
||||
display: inline-block;
|
||||
color: #8C8C8C
|
||||
}
|
||||
|
||||
.topBar a.on {
|
||||
color: #333
|
||||
}
|
||||
|
||||
.topMain {
|
||||
height: 92px;
|
||||
background: #fff;
|
||||
overflow: hidden
|
||||
}
|
||||
|
||||
.logo {
|
||||
width: 198px;
|
||||
float: left;
|
||||
padding: 23px 130px 0 0;
|
||||
display: block
|
||||
}
|
||||
|
||||
.logo img {
|
||||
width: auto;
|
||||
height: 48px
|
||||
}
|
||||
|
||||
.searchBar {
|
||||
width: 342px;
|
||||
margin-top: 27px;
|
||||
overflow: hidden
|
||||
}
|
||||
|
||||
.searchBar .search /*, .searchBar .hotword*/
|
||||
{
|
||||
width: 342px;
|
||||
overflow: hidden
|
||||
}
|
||||
|
||||
.searchBar .s_int {
|
||||
width: 250px;
|
||||
padding: 0 14px 0 18px;
|
||||
height: 36px;
|
||||
line-height: 36px \9;
|
||||
vertical-align: middle;
|
||||
border: 1px solid #3eaf7c;
|
||||
border-right: none;
|
||||
color: #333;
|
||||
float: left;
|
||||
border-radius: 20px 0 0 20px;
|
||||
font-size: 14px; /*background: #fff;*/
|
||||
background: 0 0
|
||||
}
|
||||
|
||||
/*.searchBar .s_btn { width: 78px; height: 38px; line-height: 38px; background: #f65167; color: #fff; font-size: 16px; text-align: center; float: left; cursor: pointer; padding: 0 }
|
||||
.searchBar .s_btn:hover { background:#E23249 }*/
|
||||
.searchBar .search_btn {
|
||||
float: left;
|
||||
width: 58px;
|
||||
height: 38px;
|
||||
text-align: center;
|
||||
border-radius: 0 20px 20px 0;
|
||||
background-color: #3eaf7c;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.searchBar .search_btn .icon {
|
||||
width: 18px;
|
||||
height: 18px;
|
||||
display: block;
|
||||
margin: 9px auto 0;
|
||||
background: url(../images/search.png) no-repeat;
|
||||
background-size: cover;
|
||||
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/images/search.png', sizingMethod='scale');
|
||||
}
|
||||
|
||||
/*.hotword { padding-top: 3px }
|
||||
.hotword a, .hotword span { color: #999; margin: 0 6px 0 5px }
|
||||
.hotword a:hover { color: #666 }*/
|
||||
.bookShelf {
|
||||
margin-top: 27px;
|
||||
padding-left: 20px;
|
||||
overflow: hidden
|
||||
}
|
||||
|
||||
.bookShelf .sj_link {
|
||||
height: 38px;
|
||||
line-height: 38px;
|
||||
padding-left: 30px;
|
||||
font-size: 15px;
|
||||
color: #404040;
|
||||
background: url(../images/icon_sj.png) no-repeat 6px 50%;
|
||||
float: left
|
||||
}
|
||||
|
||||
.bookShelf .user_link {
|
||||
height: 38px;
|
||||
line-height: 38px;
|
||||
padding-left: 20px;
|
||||
font-size: 15px;
|
||||
color: #404040;
|
||||
float: right
|
||||
}
|
||||
|
||||
.bookShelf .user_head {
|
||||
width: 26px;
|
||||
height: 26px;
|
||||
border-radius: 50%;
|
||||
float: left;
|
||||
margin: 6px 5px 0 0
|
||||
}
|
||||
|
||||
.bookShelf .user_name {
|
||||
max-width: 100px;
|
||||
display: inline-block
|
||||
}
|
||||
|
||||
.bookShelf .line {
|
||||
float: left;
|
||||
color: #ccc
|
||||
}
|
||||
|
||||
/*.bookShelf img { position: absolute; top: 17px; left: 17px; z-index: 10 }*/
|
||||
.mainNav {
|
||||
width: 100%;
|
||||
height: 48px;
|
||||
background: #3eaf7c;
|
||||
margin-bottom: 20px
|
||||
}
|
||||
|
||||
.mainNav .nav li {
|
||||
float: left
|
||||
}
|
||||
|
||||
.mainNav .nav li a {
|
||||
float: left;
|
||||
height: 44px;
|
||||
line-height: 48px;
|
||||
color: #fff;
|
||||
font-size: 16px;
|
||||
margin: 0 34px;
|
||||
border-bottom: 2px solid #3eaf7c;
|
||||
transition: color .3s, background-color .3s, border .3s
|
||||
}
|
||||
|
||||
.mainNav .nav li.on a, .mainNav .nav li a:hover {
|
||||
border-bottom: 2px solid rgba(255, 255, 255, .8)
|
||||
}
|
||||
|
||||
.footer {
|
||||
padding: 0 0 20px; /*margin-top: 20px; background: #fbfaf8; border-top: 1px solid #e0e0e0; */
|
||||
text-align: center;
|
||||
font-size: 12px
|
||||
}
|
||||
|
||||
.copyright ul li {
|
||||
color: #999;
|
||||
line-height: 26px
|
||||
}
|
||||
|
||||
.copyright .menu {
|
||||
padding: 2px 0 6px;
|
||||
font-size: 12px
|
||||
}
|
||||
|
||||
.copyright .line {
|
||||
display: inline-block;
|
||||
padding: 0 12px;
|
||||
color: #e5d9da
|
||||
}
|
||||
|
||||
.copyright p {
|
||||
margin-top: 10px;
|
||||
color: #999
|
||||
}
|
||||
|
||||
.code_bar img {
|
||||
margin-left: 66px
|
||||
}
|
||||
|
||||
.rBar {
|
||||
float: right;
|
||||
width: 268px
|
||||
}
|
||||
|
||||
.btn_gray, .btn_red, .btn_ora, .btn_ora_white, .btn_red1 {
|
||||
border-radius: 20px;
|
||||
font-size: 15px;
|
||||
display: inline-block;
|
||||
text-align: center;
|
||||
cursor: pointer; /*padding: 0 34px; height: 34px; line-height: 34px;*/
|
||||
padding: 11px 36px;
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.btn_gray {
|
||||
border: 1px solid #dedede;
|
||||
background: #fafafa;
|
||||
}
|
||||
|
||||
.btn_red, .btn_ora {
|
||||
border: 1px solid #3eaf7c;
|
||||
background: #3eaf7c;
|
||||
color: #fff
|
||||
}
|
||||
|
||||
.btn_red1 {
|
||||
border: 1px solid #ff4040;
|
||||
background: #ff4040;
|
||||
color: #fff
|
||||
}
|
||||
|
||||
.btn_ora_white {
|
||||
border: 1px solid #3eaf7c;
|
||||
color: #3eaf7c
|
||||
}
|
||||
|
||||
.btn_ora_white:hover {
|
||||
background: #fefaf6
|
||||
}
|
||||
|
||||
.btn_link {
|
||||
padding: 2px 6px;
|
||||
background: #3eaf7c;
|
||||
color: #fff;
|
||||
border-radius: 2px
|
||||
}
|
||||
|
||||
.btn_gray:hover {
|
||||
background: #f0f0f0;
|
||||
color: #333
|
||||
}
|
||||
|
||||
.btn_ora:hover, .btn_red:hover, .btn_link:hover {
|
||||
background: #3eaf7c;
|
||||
color: #fff
|
||||
}
|
||||
|
||||
.btn_red1:hover {
|
||||
background: #fc2525;
|
||||
color: #fff
|
||||
}
|
||||
|
||||
.pay_Checkout .btn_red, .btn_big {
|
||||
font-size: 16px;
|
||||
padding: 15px 0;
|
||||
border-radius: 4px;
|
||||
width: 196px;
|
||||
}
|
||||
|
||||
i.vip {
|
||||
width: 26px;
|
||||
height: 14px;
|
||||
text-align: center;
|
||||
line-height: 14px;
|
||||
font-size: 11px;
|
||||
color: #fff;
|
||||
background: #fe8034;
|
||||
border-radius: 2px;
|
||||
margin: 13px 0 0 3px;
|
||||
display: inline-block;
|
||||
transform: scale(0.88);
|
||||
}
|
||||
|
||||
i.vip_b {
|
||||
width: 36px;
|
||||
height: 22px;
|
||||
text-align: center;
|
||||
line-height: 22px;
|
||||
font-size: 15px;
|
||||
color: #fff;
|
||||
background: #3eaf7c;
|
||||
border-radius: 4px;
|
||||
margin-left: 5px;
|
||||
display: inline-block;
|
||||
vertical-align: 3px
|
||||
}
|
||||
|
||||
.pageBox {
|
||||
text-align: center;
|
||||
padding: 20px 0
|
||||
}
|
||||
|
||||
.pageBox a, .pageBox span {
|
||||
display: inline-block;
|
||||
color: #999;
|
||||
padding: 6px 10px;
|
||||
margin: 0 5px;
|
||||
border-radius: 4px;
|
||||
font-size: 14px;
|
||||
line-height: 1
|
||||
}
|
||||
|
||||
.pageBox .current, .pageBox a:hover {
|
||||
background: #3eaf7c;
|
||||
color: #fff
|
||||
}
|
||||
|
||||
.top_nearread {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
margin-right: 10px;
|
||||
float: left
|
||||
}
|
||||
|
||||
.top_nearread .nearread {
|
||||
padding: 0 9px
|
||||
}
|
||||
|
||||
.top_nearread .nearread.on {
|
||||
border-left: 1px solid #d9d9d9;
|
||||
border-right: 1px solid #d9d9d9;
|
||||
background: #FFF;
|
||||
padding: 0 8px;
|
||||
height: 36px;
|
||||
position: relative;
|
||||
z-index: 8
|
||||
}
|
||||
|
||||
.icon_down {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
margin: 2px 0 0 5px;
|
||||
width: 0px;
|
||||
height: 0px;
|
||||
overflow: hidden;
|
||||
border-width: 4px;
|
||||
border-style: solid dashed dashed;
|
||||
border-color: #7f7f7f transparent transparent;
|
||||
}
|
||||
|
||||
.book_record {
|
||||
width: 382px;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
z-index: 9
|
||||
}
|
||||
|
||||
.record_box {
|
||||
width: 380px;
|
||||
background: #fff;
|
||||
margin-top: 35px;
|
||||
border: 1px solid #d9d9d9
|
||||
}
|
||||
|
||||
.book_record .sp {
|
||||
width: 77px;
|
||||
height: 6px;
|
||||
background: #fff;
|
||||
position: absolute;
|
||||
top: 32px;
|
||||
right: 1px
|
||||
}
|
||||
|
||||
.record_title {
|
||||
padding: 14px 10px
|
||||
}
|
||||
|
||||
.record_title a {
|
||||
border: 1px solid #dedede;
|
||||
background: #fafafa;
|
||||
border-radius: 2px;
|
||||
font-size: 12px;
|
||||
padding: 6px 12px;
|
||||
line-height: 1;
|
||||
margin-right: 14px
|
||||
}
|
||||
|
||||
.record_title a.on {
|
||||
border: 1px solid #f65167;
|
||||
background: #f65167;
|
||||
color: #fff
|
||||
}
|
||||
|
||||
.record_box .all {
|
||||
display: block;
|
||||
height: 28px;
|
||||
line-height: 28px;
|
||||
text-align: center;
|
||||
background: #f6f6f6
|
||||
}
|
||||
|
||||
.record_list ul {
|
||||
margin-bottom: 10px
|
||||
}
|
||||
|
||||
.record_list li {
|
||||
clear: both;
|
||||
padding: 10px;
|
||||
line-height: 1;
|
||||
overflow: hidden
|
||||
}
|
||||
|
||||
.record_list li:hover {
|
||||
background: #f6f6f6
|
||||
}
|
||||
|
||||
.record_list li .cover {
|
||||
width: 50px;
|
||||
height: 63px;
|
||||
background: #f6f6f6
|
||||
}
|
||||
|
||||
.record_list li .cover img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.record_list a {
|
||||
display: inline;
|
||||
color: #333
|
||||
}
|
||||
|
||||
.record_list .book_intro {
|
||||
width: 300px;
|
||||
height: 65px;
|
||||
padding-left: 10px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.record_list .book_intro p {
|
||||
height: 20px;
|
||||
line-height: 20px;
|
||||
overflow: hidden;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.record_list .book_intro .p1 {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.record_list .book_intro .p2 {
|
||||
margin: 2px 0;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis
|
||||
}
|
||||
|
||||
.record_list .book_intro .p3 {
|
||||
}
|
||||
|
||||
.record_list .book_intro i.vip {
|
||||
margin: 0 0 0 3px
|
||||
}
|
||||
|
||||
.record_list .read_link a {
|
||||
color: #fff
|
||||
}
|
||||
|
||||
.manBody {
|
||||
}
|
||||
|
||||
.manBody .mainNav {
|
||||
background: #3e3d43
|
||||
}
|
||||
|
||||
.manBody .searchBar .s_int {
|
||||
border: 1px solid #878689;
|
||||
border-right: none;
|
||||
background-position: 8px -22px
|
||||
}
|
||||
|
||||
.manBody .mainNav .nav li.on a, .manBody .mainNav .nav li a:hover {
|
||||
background: #313035
|
||||
}
|
||||
|
||||
.nav_sub {
|
||||
margin-bottom: 16px
|
||||
}
|
||||
|
||||
.nav_sub a {
|
||||
padding: 0 6px
|
||||
}
|
||||
|
||||
.copyright .menu a {
|
||||
color: #666;
|
||||
font-size: 12px
|
||||
}
|
||||
|
||||
.copyright .menu a:hover, .bookShelf .sj_link:hover {
|
||||
color: #3eaf7c
|
||||
}
|
||||
|
||||
.rightList .more, .more_bar {
|
||||
margin: 1px 0;
|
||||
height: 34px;
|
||||
line-height: 34px;
|
||||
border-radius: 1px;
|
||||
background-color: #f7f7f7;
|
||||
text-align: center
|
||||
}
|
||||
|
||||
.rightList .more a, .more_bar a {
|
||||
display: block;
|
||||
color: #666
|
||||
}
|
||||
|
||||
.header, .footer {
|
||||
min-width: 1020px
|
||||
}
|
||||
|
||||
/*base*/
|
||||
.noborder {
|
||||
border: 0 !important
|
||||
}
|
||||
|
||||
.nomargin {
|
||||
margin: 0 !important
|
||||
}
|
||||
|
||||
.ml {
|
||||
margin-left: 12px
|
||||
}
|
||||
|
||||
.mr {
|
||||
margin-right: 12px
|
||||
}
|
||||
|
||||
.ml5 {
|
||||
margin-left: 5px
|
||||
}
|
||||
|
||||
.ml10 {
|
||||
margin-left: 10px
|
||||
}
|
||||
|
||||
.ml15 {
|
||||
margin-left: 15px
|
||||
}
|
||||
|
||||
.ml20 {
|
||||
margin-left: 20px
|
||||
}
|
||||
|
||||
.mr5 {
|
||||
margin-right: 5px
|
||||
}
|
||||
|
||||
.mr10 {
|
||||
margin-right: 10px
|
||||
}
|
||||
|
||||
.mr15 {
|
||||
margin-right: 15px
|
||||
}
|
||||
|
||||
.mr20 {
|
||||
margin-right: 20px
|
||||
}
|
||||
|
||||
.mt5 {
|
||||
margin-top: 5px
|
||||
}
|
||||
|
||||
.mt10 {
|
||||
margin-top: 10px
|
||||
}
|
||||
|
||||
.mt15 {
|
||||
margin-top: 15px
|
||||
}
|
||||
|
||||
.mt20 {
|
||||
margin-top: 20px
|
||||
}
|
||||
|
||||
.mb5 {
|
||||
margin-bottom: 5px
|
||||
}
|
||||
|
||||
.mb10 {
|
||||
margin-bottom: 10px
|
||||
}
|
||||
|
||||
.mb15 {
|
||||
margin-bottom: 15px
|
||||
}
|
||||
|
||||
.mb20 {
|
||||
margin-bottom: 20px
|
||||
}
|
||||
|
||||
.mb50 {
|
||||
margin-bottom: 50px
|
||||
}
|
||||
|
||||
.pointer {
|
||||
cursor: pointer
|
||||
}
|
||||
|
||||
.notindent {
|
||||
text-indent: inherit !important
|
||||
}
|
||||
|
||||
.vm {
|
||||
vertical-align: middle !important
|
||||
}
|
||||
|
||||
.border_t {
|
||||
border-top: 1px solid #eee
|
||||
}
|
||||
|
||||
.border_b {
|
||||
border-bottom: 1px solid #eee
|
||||
}
|
||||
|
||||
.border_l {
|
||||
border-left: 1px solid #eee
|
||||
}
|
||||
|
||||
.border_r {
|
||||
border-right: 1px solid #eee
|
||||
}
|
||||
|
||||
.layui-laypage-curr {
|
||||
background: #3eaf7c;
|
||||
}
|
||||
|
||||
.layui-laypage-curr em {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.layui-disabled, .layui-disabled:hover {
|
||||
color: #d2d2d2 !important;
|
||||
cursor: not-allowed !important
|
||||
}
|
||||
|
||||
#noFeedbackNote {
|
||||
line-height: 400px;
|
||||
text-align: center;
|
||||
border-top: 1px solid #eee;
|
||||
}
|
||||
|
||||
#txtDescription {
|
||||
/*width: 900px;*/
|
||||
height: 288px;
|
||||
margin: 20px auto 20px;
|
||||
padding: 10px;
|
||||
|
||||
|
||||
/*新增样式*/
|
||||
width: 100%;
|
||||
box-sizing: border-box;
|
||||
border: 1px solid #eee;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.userBox {
|
||||
margin: 0 auto
|
||||
}
|
813
templates/green/static/css/book.css
Normal file
@ -0,0 +1,813 @@
|
||||
@charset "utf-8";
|
||||
.Interaction_tab a, .Interaction_tab a .icon, .Interaction_tab a.fr .icon, .dashang_bar .l_bar .list li, .btn_pc, .btn_flw, .fansBox .fans_bg, .icon_hg {
|
||||
background: url(../images/icon_interation.png) no-repeat
|
||||
}
|
||||
|
||||
.InteractionBox {
|
||||
padding: 15px 14px 11px
|
||||
}
|
||||
|
||||
.Interaction_tab a {
|
||||
width: 339px;
|
||||
height: 60px;
|
||||
line-height: 60px;
|
||||
font-size: 14px;
|
||||
color: #000
|
||||
}
|
||||
|
||||
/*.Interaction_tab a:hover, .Interaction_tab a.on { background-position: 0 -60px; color: #000 }*/
|
||||
.Interaction_tab a .icon {
|
||||
width: 38px;
|
||||
height: 60px;
|
||||
float: left;
|
||||
margin: 0 10px 0 64px;
|
||||
background-position: -348px 0
|
||||
}
|
||||
|
||||
.Interaction_tab a.fr .icon {
|
||||
background-position: -348px -60px
|
||||
}
|
||||
|
||||
.Interaction_tab h4 {
|
||||
font-size: 17px;
|
||||
margin-right: 8px;
|
||||
display: inline
|
||||
}
|
||||
|
||||
.InteractionBox .l_bar, .InteractionBox .r_bar {
|
||||
width: 335px;
|
||||
margin: 0 2px;
|
||||
float: left
|
||||
}
|
||||
|
||||
.InteractionBox .r_bar .time {
|
||||
padding-right: 1px
|
||||
}
|
||||
|
||||
.InteractionBox .l_bar .tit {
|
||||
padding: 22px 14px 0 4px
|
||||
}
|
||||
|
||||
.InteractionBox .l_bar .tit .red, .InteractionBox .r_bar .tit .red {
|
||||
padding: 0 5px
|
||||
}
|
||||
|
||||
.InteractionBox .l_bar .tit .fl {
|
||||
font-size: 17px
|
||||
}
|
||||
|
||||
.InteractionBox .l_bar .tit .fr {
|
||||
padding-top: 7px
|
||||
}
|
||||
|
||||
.dashang_bar .l_bar .list {
|
||||
padding-top: 20px
|
||||
}
|
||||
|
||||
.dashang_bar .l_bar .list li {
|
||||
width: 90px;
|
||||
height: 134px;
|
||||
line-height: 1;
|
||||
float: left;
|
||||
margin: 0 20px 0 6px;
|
||||
text-align: center;
|
||||
background-position: 0 -130px
|
||||
}
|
||||
|
||||
.dashang_bar .l_bar .list li img {
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
background: #fff;
|
||||
margin: 35px 15px 10px;
|
||||
border-radius: 50%;
|
||||
box-shadow: 0 1px 0 rgba(0, 0, 0, .3)
|
||||
}
|
||||
|
||||
.dashang_bar .l_bar .list li .user_name {
|
||||
line-height: 1 !important;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
display: block;
|
||||
padding: 0 10px
|
||||
}
|
||||
|
||||
.dashang_bar .l_bar .list .li_1 {
|
||||
}
|
||||
|
||||
.dashang_bar .l_bar .list .li_2 {
|
||||
background-position: -100px -130px
|
||||
}
|
||||
|
||||
.dashang_bar .l_bar .list .li_3 {
|
||||
background-position: -200px -130px;
|
||||
margin-right: 0
|
||||
}
|
||||
|
||||
.InteractionBox .r_bar .tit {
|
||||
padding: 14px 1px 12px 1px
|
||||
}
|
||||
|
||||
.InteractionBox .r_bar .tit strong {
|
||||
display: block;
|
||||
font-size: 13px
|
||||
}
|
||||
|
||||
.InteractionBox .r_bar .list, .InteractionBox .r_bar .sum {
|
||||
margin: 0 1px
|
||||
}
|
||||
|
||||
.InteractionBox .r_bar .list li {
|
||||
height: 27px;
|
||||
line-height: 27px;
|
||||
overflow: hidden;
|
||||
border-top: 1px dotted #ccc;
|
||||
color: #999
|
||||
}
|
||||
|
||||
.InteractionBox .r_bar .list li .user_name {
|
||||
margin-right: 8px
|
||||
}
|
||||
|
||||
.InteractionBox .r_bar .sum {
|
||||
border-top: 1px dotted #ccc;
|
||||
line-height: 34px
|
||||
}
|
||||
|
||||
.btn_pc, .btn_flw {
|
||||
width: 140px;
|
||||
height: 44px;
|
||||
display: inline-block;
|
||||
background-position: 0 -270px
|
||||
}
|
||||
|
||||
.btn_flw {
|
||||
width: 122px;
|
||||
background-position: -150px -270px
|
||||
}
|
||||
|
||||
.flower_bar .l_bar .list {
|
||||
padding: 0 14px 0 4px
|
||||
}
|
||||
|
||||
.flower_bar .l_bar li {
|
||||
padding: 15px 0 6px;
|
||||
overflow: hidden;
|
||||
clear: both
|
||||
}
|
||||
|
||||
.flower_bar .l_bar .book_intro {
|
||||
width: 265px
|
||||
}
|
||||
|
||||
.flower_bar .l_bar .cover img {
|
||||
width: 45px;
|
||||
height: 56px;
|
||||
background: #f6f6f6;
|
||||
margin: 2px 16px 0 0
|
||||
}
|
||||
|
||||
.flower_bar .l_bar .book_intro .txt {
|
||||
height: 38px;
|
||||
line-height: 18px;
|
||||
padding-top: 2px;
|
||||
color: #999;
|
||||
overflow: hidden;
|
||||
display: block
|
||||
}
|
||||
|
||||
.r_fansBrank .book_intro {
|
||||
float: inherit !important
|
||||
}
|
||||
|
||||
.user_level1, .user_level2, .user_level3, .user_level4, .user_level5, .user_level6, .user_level7, .user_level8, .user_level9, .user_level10, .user_level11 {
|
||||
width: 30px;
|
||||
height: 16px;
|
||||
line-height: 16px;
|
||||
text-align: center;
|
||||
border-radius: 2px;
|
||||
margin: 11px 0 0;
|
||||
color: #fff
|
||||
}
|
||||
|
||||
.user_level1 {
|
||||
background: #d0d0d0
|
||||
}
|
||||
|
||||
.user_level2 {
|
||||
background: #c0c0c0
|
||||
}
|
||||
|
||||
.user_level3 {
|
||||
background: #b4b3b3
|
||||
}
|
||||
|
||||
.user_level4 {
|
||||
background: #a0dfe6
|
||||
}
|
||||
|
||||
.user_level5 {
|
||||
background: #77d2db
|
||||
}
|
||||
|
||||
.user_level6 {
|
||||
background: #b4d894
|
||||
}
|
||||
|
||||
.user_level7 {
|
||||
background: #94c766
|
||||
}
|
||||
|
||||
.user_level8 {
|
||||
background: #ffc24c
|
||||
}
|
||||
|
||||
.user_level9 {
|
||||
background: #ffa800
|
||||
}
|
||||
|
||||
.user_level10 {
|
||||
background: #ff6e26
|
||||
}
|
||||
|
||||
.user_level11 {
|
||||
background: #ff0000
|
||||
}
|
||||
|
||||
/*固定悬浮图层*/
|
||||
.readPopup {
|
||||
border: 1px solid #D9D9D9;
|
||||
border-radius: 3px;
|
||||
background: #FFF;
|
||||
box-shadow: 0 1px 2px #999;
|
||||
overflow: hidden;
|
||||
padding-bottom: 20px;
|
||||
z-index: 9999;
|
||||
position: fixed;
|
||||
left: 50%;
|
||||
top: 50%
|
||||
}
|
||||
|
||||
.icon_check {
|
||||
position: absolute;
|
||||
width: 29px;
|
||||
height: 25px;
|
||||
right: -1px;
|
||||
top: -1px;
|
||||
z-index: 2;
|
||||
background: url(../images/icon_readpage.png) no-repeat 0 -142px
|
||||
}
|
||||
|
||||
.on .icon_check {
|
||||
display: block
|
||||
}
|
||||
|
||||
.closePopup {
|
||||
position: absolute;
|
||||
top: 20px;
|
||||
right: 20px;
|
||||
width: 16px;
|
||||
height: 15px;
|
||||
background: url(../images/icon_readpage.png) no-repeat -43px -126px
|
||||
}
|
||||
|
||||
.chapterBox {
|
||||
width: 600px;
|
||||
margin-left: -300px;
|
||||
margin-top: -260px
|
||||
}
|
||||
|
||||
.chapterBox .scrollWrap {
|
||||
height: 540px
|
||||
}
|
||||
|
||||
/*弹窗内容*/
|
||||
.popupTit h2 {
|
||||
text-align: center;
|
||||
letter-spacing: 15px;
|
||||
color: #333;
|
||||
font: 700 20px/30px "Microsoft Yahei";
|
||||
margin: 30px 0
|
||||
}
|
||||
|
||||
.popupTit h3 {
|
||||
font-size: 16px;
|
||||
margin: 15px 20px
|
||||
}
|
||||
|
||||
.scrollWrap {
|
||||
overflow-y: scroll;
|
||||
position: relative
|
||||
}
|
||||
|
||||
.dirWrap {
|
||||
padding: 0 40px
|
||||
}
|
||||
|
||||
.scrollWrap h3 {
|
||||
padding-left: 26px;
|
||||
font-size: 14px;
|
||||
background: #e6e6e6;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
font-weight: normal;
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
margin: 0 0 15px;
|
||||
border-radius: 3px
|
||||
}
|
||||
|
||||
.readPopup .tc .btn_gray {
|
||||
margin-left: 30px
|
||||
}
|
||||
|
||||
/*捧场、送鲜花*/
|
||||
.pcBox, .flowerBox {
|
||||
width: 500px;
|
||||
margin-left: -251px;
|
||||
margin-top: -215px
|
||||
}
|
||||
|
||||
.propsList {
|
||||
padding: 15px 0 10px 20px
|
||||
}
|
||||
|
||||
.propsList li {
|
||||
float: left;
|
||||
cursor: pointer;
|
||||
margin: 0 8px 16px;
|
||||
text-align: center
|
||||
}
|
||||
|
||||
.propWrap {
|
||||
width: 134px;
|
||||
height: 54px;
|
||||
line-height: 54px;
|
||||
text-align: center;
|
||||
font-size: 15px;
|
||||
color: #000;
|
||||
display: block;
|
||||
border: 1px solid #e6e6e6;
|
||||
background: #fafafa;
|
||||
position: relative
|
||||
}
|
||||
|
||||
.on .propWrap, .propWrap:hover {
|
||||
width: 132px;
|
||||
height: 52px;
|
||||
line-height: 52px;
|
||||
color: #3eaf7c;
|
||||
border: 2px solid #3eaf7c;
|
||||
background: #fff
|
||||
}
|
||||
|
||||
.propsList li i {
|
||||
display: none;
|
||||
line-height: 1
|
||||
}
|
||||
|
||||
.propsList li .propsBox {
|
||||
padding-top: 20px
|
||||
}
|
||||
|
||||
.have_num {
|
||||
padding: 0 30px 10px;
|
||||
font-size: 14px;
|
||||
color: #999
|
||||
}
|
||||
|
||||
.have_num .red {
|
||||
margin: 0 4px
|
||||
}
|
||||
|
||||
.popup_text {
|
||||
width: 418px;
|
||||
height: 62px;
|
||||
padding: 8px 10px;
|
||||
margin: 8px 30px 20px;
|
||||
color: #555;
|
||||
border: 1px solid #e6e6e6;
|
||||
}
|
||||
|
||||
/*消息提示*/
|
||||
.newsTipBox {
|
||||
width: 400px;
|
||||
padding-bottom: 30px;
|
||||
margin-left: -200px;
|
||||
margin-top: -105px
|
||||
}
|
||||
|
||||
.tipWrap {
|
||||
padding: 30px;
|
||||
font-size: 14px
|
||||
}
|
||||
|
||||
/*遮罩层*/
|
||||
.maskBox {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
top: 0;
|
||||
z-index: 995;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: black;
|
||||
filter: alpha(opacity=30);
|
||||
opacity: 0.3;
|
||||
animation: mask 2s ease-out 0s 1 normal
|
||||
}
|
||||
|
||||
@keyframes mask {
|
||||
0% {
|
||||
filter: alpha(opacity=0);
|
||||
opacity: 0
|
||||
}
|
||||
100% {
|
||||
filter: alpha(opacity=30);
|
||||
opacity: 0.3
|
||||
}
|
||||
}
|
||||
|
||||
.fansBox {
|
||||
width: 998px;
|
||||
border: 1px solid #eaeaea
|
||||
}
|
||||
|
||||
.fansHead {
|
||||
height: 54px;
|
||||
line-height: 54px;
|
||||
margin: 0 14px;
|
||||
border-bottom: 1px solid #eaeaea;
|
||||
font-weight: normal
|
||||
}
|
||||
|
||||
.fansHead h2 {
|
||||
font-size: 20px;
|
||||
font-weight: normal
|
||||
}
|
||||
|
||||
.fansCon {
|
||||
padding: 20px
|
||||
}
|
||||
|
||||
.fansCon .r_bar {
|
||||
width: 204px
|
||||
}
|
||||
|
||||
.fansCon .cover {
|
||||
width: 200px;
|
||||
height: 250px;
|
||||
background: #f6f6f6;
|
||||
border: 1px solid #ebebeb;
|
||||
padding: 1px;
|
||||
}
|
||||
|
||||
.fansCon .btn_red {
|
||||
width: 202px;
|
||||
margin: 2px 0 14px;
|
||||
padding: 10px 0
|
||||
}
|
||||
|
||||
.fansCon .l_bar {
|
||||
width: 750px
|
||||
}
|
||||
|
||||
.fansCon .l_bar .list1 {
|
||||
padding-top: 4px
|
||||
}
|
||||
|
||||
.fansCon .list1 li {
|
||||
width: 33%;
|
||||
line-height: 1;
|
||||
float: left
|
||||
}
|
||||
|
||||
.fansCon .list1 .fans_bg {
|
||||
width: 90px;
|
||||
height: 112px;
|
||||
background-position: 0 -320px;
|
||||
position: relative;
|
||||
margin-right: 18px
|
||||
}
|
||||
|
||||
.fansCon .list1 .fans_bg img {
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
background: #fff;
|
||||
margin: 39px 15px 0;
|
||||
border-radius: 50%;
|
||||
box-shadow: 0 1px 0 rgba(0, 0, 0, .3)
|
||||
}
|
||||
|
||||
.fansCon .list1 h5 {
|
||||
font-size: 16px;
|
||||
padding: 9px 0;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.fansCon .list1 li .user_name {
|
||||
line-height: 1 !important
|
||||
}
|
||||
|
||||
.fansCon .list1 .li_2 .fans_bg {
|
||||
background-position: -100px -320px
|
||||
}
|
||||
|
||||
.fansCon .list1 .li_3 .fans_bg {
|
||||
background-position: -200px -320px
|
||||
}
|
||||
|
||||
.fansCon .fans_info {
|
||||
width: 136px;
|
||||
font-size: 14px
|
||||
}
|
||||
|
||||
.fansCon .fans_info .fans_pointer {
|
||||
padding: 14px 0 22px
|
||||
}
|
||||
|
||||
.fans_level span {
|
||||
padding: 1px 10px 2px
|
||||
}
|
||||
|
||||
.icon_hg {
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
display: inline-block;
|
||||
background-position: -300px -320px;
|
||||
position: absolute;
|
||||
top: -13px;
|
||||
right: -13px
|
||||
}
|
||||
|
||||
.fansCon .list2 {
|
||||
padding: 0
|
||||
}
|
||||
|
||||
.fansCon .list2 li {
|
||||
width: 250px;
|
||||
float: left;
|
||||
height: 59px;
|
||||
padding: 0 0 19px;
|
||||
display: inline
|
||||
}
|
||||
|
||||
.fansCon .list2 .num {
|
||||
font: 16px/59px "microsoft yahei", Arial, "宋体";
|
||||
width: 32px;
|
||||
color: #666;
|
||||
font-weight: bold
|
||||
}
|
||||
|
||||
.fansCon .list2 .img {
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
margin-top: 10px;
|
||||
position: relative
|
||||
}
|
||||
|
||||
.fansCon .list2 .img img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
border-radius: 50%
|
||||
}
|
||||
|
||||
.fansCon .list2 .img span {
|
||||
display: block;
|
||||
margin: 0;
|
||||
position: absolute;
|
||||
left: 5px;
|
||||
bottom: 0
|
||||
}
|
||||
|
||||
.fansCon .list2 .msg {
|
||||
display: inline;
|
||||
width: 164px;
|
||||
padding: 8px 0 0 12px;
|
||||
}
|
||||
|
||||
.fansCon .list2 .msg h4 {
|
||||
line-height: 24px;
|
||||
font-weight: normal;
|
||||
font-size: 16px;
|
||||
overflow: hidden;
|
||||
height: 24px;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.fansCon .list2 .msg p {
|
||||
font-size: 12px;
|
||||
line-height: 16px;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.fansTop {
|
||||
margin-bottom: 8px;
|
||||
border-bottom: 1px solid #eaeaea
|
||||
}
|
||||
|
||||
.fans_tab {
|
||||
width: 1005px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.fans_tab ul {
|
||||
float: left;
|
||||
width: 280px;
|
||||
margin-right: 55px;
|
||||
}
|
||||
|
||||
.fans_tab li {
|
||||
line-height: 39px;
|
||||
overflow: hidden;
|
||||
font-size: 14px;
|
||||
height: 39px;
|
||||
border-bottom: 1px solid #ebebeb;
|
||||
}
|
||||
|
||||
.fans_tab li .num {
|
||||
float: left;
|
||||
width: 40px;
|
||||
color: #666;
|
||||
}
|
||||
|
||||
.fans_tab li a {
|
||||
float: left;
|
||||
overflow: hidden;
|
||||
width: 200px;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.fans_tab li .fans_level {
|
||||
float: left;
|
||||
font-size: 12px;
|
||||
width: 40px;
|
||||
text-align: right;
|
||||
color: #999;
|
||||
}
|
||||
|
||||
.fansRule dl {
|
||||
padding: 20px 20px 30px
|
||||
}
|
||||
|
||||
.fansRule dt {
|
||||
line-height: 24px;
|
||||
margin-bottom: 6px;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.fansRule dd {
|
||||
font-size: 12px;
|
||||
line-height: 20px;
|
||||
margin-bottom: 16px;
|
||||
color: #777;
|
||||
}
|
||||
|
||||
.fansRule table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
}
|
||||
|
||||
.fansRule table th, .fansRule table td {
|
||||
font-weight: 400;
|
||||
min-width: 40px;
|
||||
padding: 12px 0;
|
||||
text-align: left;
|
||||
border-top: 1px solid #ebebeb;
|
||||
border-bottom: 1px solid #ebebeb;
|
||||
}
|
||||
|
||||
.fansRule ol li {
|
||||
list-style-type: decimal;
|
||||
list-style-position: inside;
|
||||
}
|
||||
|
||||
.InteractionBox .l_bar, .flower_bar .l_bar {
|
||||
display: none
|
||||
}
|
||||
|
||||
.dashang_bar {
|
||||
float: left
|
||||
}
|
||||
|
||||
.flower_bar {
|
||||
float: right
|
||||
}
|
||||
|
||||
.author_head {
|
||||
text-align: center
|
||||
}
|
||||
|
||||
.author_head .head img {
|
||||
width: 64px;
|
||||
height: 64px;
|
||||
border-radius: 50%;
|
||||
background: #f6f6f6;
|
||||
display: block;
|
||||
margin: 0 auto
|
||||
}
|
||||
|
||||
.author_head .msg {
|
||||
margin-top: -4px
|
||||
}
|
||||
|
||||
.author_head .msg h4 {
|
||||
font-size: 14px;
|
||||
line-height: 2.4
|
||||
}
|
||||
|
||||
.icon_qyzz {
|
||||
padding: 5px;
|
||||
line-height: 1;
|
||||
background: #3eaf7c;
|
||||
color: #fff;
|
||||
border-radius: 3px;
|
||||
display: inline-block
|
||||
}
|
||||
|
||||
.author_intro, .author_book {
|
||||
border-top: 1px dotted #e0e0e0
|
||||
}
|
||||
|
||||
.author_intro h4, .author_book h4 {
|
||||
font-weight: normal;
|
||||
font-size: 12px;
|
||||
padding: 10px 0 5px
|
||||
}
|
||||
|
||||
.author_intro .intro_txt, .author_book .book_txt {
|
||||
line-height: 1.8;
|
||||
padding-bottom: 10px
|
||||
}
|
||||
|
||||
.author_book .rightList ul {
|
||||
padding: 0
|
||||
}
|
||||
|
||||
|
||||
.tj_bar .cover {
|
||||
float: left;
|
||||
display: block;
|
||||
margin-right: 10px
|
||||
}
|
||||
|
||||
.tj_bar .cover img {
|
||||
width: 64px;
|
||||
height: auto;
|
||||
background: #f6f6f6
|
||||
}
|
||||
|
||||
.tj_bar .book_intro {
|
||||
padding: 15px 0;
|
||||
clear: both;
|
||||
word-break: break-all;
|
||||
zoom: 1;
|
||||
overflow: hidden
|
||||
}
|
||||
|
||||
.tj_bar .dec {
|
||||
width: 136px;
|
||||
float: right
|
||||
}
|
||||
|
||||
.tj_bar .book_intro .book_name {
|
||||
display: block;
|
||||
font-size: 14px;
|
||||
line-height: 1;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden
|
||||
}
|
||||
|
||||
.tj_bar .book_intro .txt {
|
||||
height: 54px;
|
||||
line-height: 1.5;
|
||||
color: #808080;
|
||||
overflow: hidden;
|
||||
display: block;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.tj_bar li {
|
||||
border-bottom: 1px solid #eee
|
||||
}
|
||||
|
||||
.tj_bar li:last-child {
|
||||
border: none
|
||||
}
|
||||
|
||||
.tj_bar li:last-child .book_intro {
|
||||
padding: 15px 0 2px
|
||||
}
|
||||
|
||||
.friend_link {
|
||||
display: none
|
||||
}
|
||||
|
||||
.footer {
|
||||
background: #fff;
|
||||
padding: 16px 0 20px }
|
||||
|
3243
templates/green/static/css/easyui.css
Normal file
1
templates/green/static/css/layer.css
Normal file
@ -0,0 +1 @@
|
||||
.layermbox{position:absolute;left:0;top:0;width:100%;z-index:19891014}.layermmain,.laymshade{position:fixed;left:0;top:0;width:100%;height:100%}.layermbtn span,.layermchild{display:inline-block;position:relative}.laymshade{background-color:rgba(0,0,0,.5);pointer-events:auto}.layermmain{display:table;font-family:Helvetica,arial,sans-serif;pointer-events:none}.layermmain .section{display:table-cell;vertical-align:middle;text-align:center}.layermchild{text-align:left;background-color:#fff;font-size:14px;border-radius:6px;box-shadow:0 0 8px rgba(0,0,0,.1);pointer-events:auto;-webkit-animation-fill-mode:both;animation-fill-mode:both;-webkit-animation-duration:.18s;animation-duration:.18s}.layermborder{border:1px solid #999}@-webkit-keyframes bounceIn{0%{opacity:0;-webkit-transform:scale(.5);transform:scale(.5)}100%{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.layermanim{animation-name:bounceIn;-webkit-animation-name:bounceIn}.layermbox0 .layermchild{max-width:260px;min-width:150px}.layermbox1 .layermchild{border:none;border-radius:0}.layermbox2 .layermchild{width:auto;max-width:260px;min-width:40px;border:none;background-color:rgba(0,0,0,.6);color:#fff}.layermchild h3{padding:0 45px 0 10px;height:50px;line-height:50px;font-size:16px;font-weight:400;border-radius:5px 5px 0 0;border-bottom:1px solid #EBEBEB}.layermbtn span,.layermchild h3{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.layermcont{padding:20px 15px;line-height:22px;border-radius:5px}.layermbox1 .layermcont{padding:0}.layermbox2 .layermcont{text-align:center;padding:30px 30px 0;line-height:0}.layermbox2 .layermcont i{width:1.5rem;height:1.5rem;margin-left:8px;display:inline-block;background-color:#fff;border-radius:100%;-webkit-animation:bouncedelay 1.4s infinite ease-in-out;animation:bouncedelay 1.4s infinite ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}@-webkit-keyframes bouncedelay{0%,100%,80%{-webkit-transform:scale(0)}40%{-webkit-transform:scale(1)}}@keyframes bouncedelay{0%,100%,80%{transform:scale(0);-webkit-transform:scale(0)}40%{transform:scale(1);-webkit-transform:scale(1)}}.layermbox2 .layermcont i:first-child{margin-left:0;-webkit-animation-delay:-.32s;animation-delay:-.32s}.layermbox2 .layermcont i.laymloadtwo{-webkit-animation-delay:-.16s;animation-delay:-.16s}.layermbox2 .layermcont>div{line-height:22px;padding-top:7px;margin-bottom:20px;font-size:14px}.layermbtn{position:relative;height:40px;line-height:40px;font-size:0;text-align:center;border-top:1px solid #EBEBEB}.layermbtn span{width:50%;text-align:center;font-size:14px;cursor:pointer;border-radius:0 5px 0 0}.layermbtn span:first-child{height:39px;background-color:#fff;border-radius:0 0 0 5px}.layermbtn:before{content:'\20';position:absolute;width:1px;height:39px;left:50%;top:0;background-color:#EBEBEB}.layermend{position:absolute;right:7px;top:10px;width:30px;height:30px;border:0;font-weight:400;background:0 0;cursor:pointer;-webkit-appearance:none;font-size:30px}.layermend::after,.layermend::before{position:absolute;left:5px;top:13px;content:'';width:20px;height:2px;background-color:rgba(0,0,0,.3);transform:rotate(45deg);-webkit-transform:rotate(45deg);border-radius:3px}.layermend::after{transform:rotate(-45deg);-webkit-transform:rotate(-45deg)}
|
1197
templates/green/static/css/main.css
Normal file
1797
templates/green/static/css/public.css
Normal file
906
templates/green/static/css/read.css
Normal file
@ -0,0 +1,906 @@
|
||||
@charset "utf-8";
|
||||
a {
|
||||
color: #333
|
||||
}
|
||||
|
||||
a:hover, .redFont, .current, .bookNav a:hover, .textinfo a:hover {
|
||||
color: #3eaf7c
|
||||
}
|
||||
|
||||
.read_menu li a, .closePopup, .menu_left li a span, .menu_right li a span, .icon_check, .icon_yb {
|
||||
background: url(../images/icon_readpage.png) no-repeat
|
||||
}
|
||||
|
||||
/* 阅读页背景 */
|
||||
body { /*background-color: #4a4a4a;*/
|
||||
color: #333;
|
||||
font-family: "Microsoft YaHei"
|
||||
}
|
||||
|
||||
.topMain {
|
||||
box-shadow: 0 1px 4px rgba(0, 0, 0, .1);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#66ffffff, endColorstr=#66ffffff);
|
||||
background: none;
|
||||
background: rgba(255, 255, 255, .4)
|
||||
}
|
||||
|
||||
.read_style_6 .topMain {
|
||||
border-bottom: 1px solid #444;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#0cffffff, endColorstr=#0cffffff);
|
||||
background: rgba(255, 255, 255, .05)
|
||||
}
|
||||
|
||||
/*颜色:浅黄白、护眼绿、粉色、浅黄、浅灰、夜间黑*/
|
||||
body, .read_style_1 {
|
||||
background-color: #ebe5d8
|
||||
}
|
||||
|
||||
.read_style_2 {
|
||||
background-color: #cbdec9
|
||||
}
|
||||
|
||||
.read_style_3 {
|
||||
background-color: #edd4d4
|
||||
}
|
||||
|
||||
.read_style_4 {
|
||||
background-color: #e0cfa3
|
||||
}
|
||||
|
||||
.read_style_5 {
|
||||
background-color: #d3d3d3
|
||||
}
|
||||
|
||||
.read_style_6 {
|
||||
background-color: #0e0f0f
|
||||
}
|
||||
|
||||
.read_style_1 .textbox, .read_style_1 .read_menu li a, .read_style_1 .haveRead, .read_style_1 .nextPageBox a {
|
||||
background-color: rgb(244, 241, 234)
|
||||
}
|
||||
|
||||
/*浅黄白*/
|
||||
.read_style_2 .textbox, .read_style_2 .read_menu li a, .read_style_2 .haveRead, .read_style_2 .nextPageBox a {
|
||||
background-color: rgb(224, 235, 223)
|
||||
}
|
||||
|
||||
/*护眼绿*/
|
||||
.read_style_3 .textbox, .read_style_3 .read_menu li a, .read_style_3 .haveRead, .read_style_3 .nextPageBox a {
|
||||
background-color: rgb(244, 229, 229)
|
||||
}
|
||||
|
||||
/*粉色*/
|
||||
.read_style_4 .textbox, .read_style_4 .read_menu li a, .read_style_4 .haveRead, .read_style_4 .nextPageBox a {
|
||||
background-color: rgb(236, 226, 200)
|
||||
}
|
||||
|
||||
/*浅黄*/
|
||||
.read_style_5 .textbox, .read_style_5 .read_menu li a, .read_style_5 .haveRead, .read_style_5 .nextPageBox a {
|
||||
background-color: rgb(229, 229, 229)
|
||||
}
|
||||
|
||||
/*浅灰*/
|
||||
.read_style_6 .textbox, .read_style_6 .read_menu li a, .read_style_6 .haveRead, .read_style_6 .nextPageBox a {
|
||||
background-color: rgb(39, 39, 39)
|
||||
}
|
||||
|
||||
/*夜间黑*/
|
||||
.read_style_1 .textbox, .read_style_1 .read_menu li a, .read_style_1 .haveRead, .read_style_1 .nextPageBox a {
|
||||
background-color: rgba(255, 255, 255, .45)
|
||||
}
|
||||
|
||||
.read_style_2 .textbox, .read_style_2 .read_menu li a, .read_style_2 .haveRead, .read_style_2 .nextPageBox a, .read_style_3 .textbox, .read_style_3 .read_menu li a, .read_style_3 .haveRead, .read_style_3 .nextPageBox a, .read_style_4 .textbox, .read_style_4 .read_menu li a, .read_style_4 .haveRead, .read_style_4 .nextPageBox a, .read_style_5 .textbox, .read_style_5 .read_menu li a, .read_style_5 .haveRead, .read_style_5 .nextPageBox a {
|
||||
background-color: rgba(255, 255, 255, .4)
|
||||
}
|
||||
|
||||
.read_style_6 .textbox, .read_style_6 .read_menu li a, .read_style_6 .haveRead, .read_style_6 .nextPageBox a {
|
||||
background-color: rgba(255, 255, 255, .1)
|
||||
}
|
||||
|
||||
.read_style_1 .author_say, .read_style_1 .orderBox, .read_style_2 .author_say, .read_style_2 .orderBox, .read_style_3 .author_say, .read_style_3 .orderBox, .read_style_4 .author_say, .read_style_4 .orderBox, .read_style_5 .author_say, .read_style_5 .orderBox {
|
||||
background-color: #fcfbfa;
|
||||
background-color: rgba(255, 255, 255, .75)
|
||||
}
|
||||
|
||||
/*.read_style_1 .nextPageBox a { border-color: #e0e0e0 }
|
||||
.read_style_2 .nextPageBox a { border-color: #bad7b7 }
|
||||
.read_style_3 .nextPageBox a { border-color: #e5d3d3 }
|
||||
.read_style_4 .nextPageBox a { border-color: #e0dcd0 }
|
||||
.read_style_5 .nextPageBox a { border-color: #d3d3d3 }
|
||||
.read_style_6 .nextPageBox a { border-color: #555 }*/
|
||||
.read_style_6 .author_say, .read_style_6 .orderBox, .read_style_6 .textbox, .read_style_6 .book_title h1, .read_style_6 .read_menu li, .read_style_6 .haveRead, .read_style_6 .haveRead a, .read_style_6 .topMain a, .read_style_6 .searchBar .s_int, .read_style_6 .bookNav, .read_style_6 .bookNav a, .read_style_6 .textinfo, .read_style_6 .textinfo a, .read_style_6 .textinfo span, .read_style_6 .read_menu li a b {
|
||||
color: #999;
|
||||
box-shadow: none
|
||||
}
|
||||
|
||||
.read_style_6 .bookNav, .read_style_6 .author_say, .read_style_6 .orderBox, .read_style_6 .payFoot {
|
||||
border-color: #444 !important
|
||||
}
|
||||
|
||||
.readBody {
|
||||
height: 100%
|
||||
}
|
||||
|
||||
.readMain {
|
||||
margin: 0 auto;
|
||||
position: relative;
|
||||
z-index: 3;
|
||||
width: 900px
|
||||
}
|
||||
|
||||
/* 左右菜单栏 */
|
||||
.menu_left {
|
||||
width: 60px;
|
||||
z-index: 20;
|
||||
position: absolute;
|
||||
top: 60px;
|
||||
left: 50%;
|
||||
margin-left: -511px
|
||||
}
|
||||
|
||||
.menu_right {
|
||||
width: 60px;
|
||||
z-index: 20;
|
||||
position: absolute;
|
||||
bottom: 81px;
|
||||
right: 50%;
|
||||
margin-right: -511px;
|
||||
display: none
|
||||
}
|
||||
|
||||
.read_menu li {
|
||||
box-shadow: 0 0 1px 0 rgba(0, 0, 0, .05);
|
||||
margin-bottom: 1px;
|
||||
width: 60px;
|
||||
position: relative
|
||||
}
|
||||
|
||||
.read_menu li a {
|
||||
display: block;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
position: relative; /*background-color: #fff;*/
|
||||
opacity: 0.95
|
||||
}
|
||||
|
||||
.read_menu li a i {
|
||||
display: none;
|
||||
width: 60px;
|
||||
text-align: center;
|
||||
color: #999;
|
||||
font-size: 13px;
|
||||
line-height: 1.5;
|
||||
padding-top: 20px
|
||||
}
|
||||
|
||||
.read_menu li a b {
|
||||
font-weight: 400;
|
||||
display: block;
|
||||
height: 60px;
|
||||
width: 60px;
|
||||
text-align: center;
|
||||
line-height: 90px;
|
||||
color: rgba(0, 0, 0, .5);
|
||||
}
|
||||
|
||||
.menu_left li a:hover, .menu_right li a:hover {
|
||||
opacity: 1
|
||||
}
|
||||
|
||||
.menu_left li a span, .menu_right li a span {
|
||||
background-position: -1px -126px;
|
||||
width: 6px;
|
||||
height: 6px;
|
||||
top: 13px;
|
||||
right: 13px;
|
||||
position: absolute
|
||||
}
|
||||
|
||||
.menu_left li a.ico_catalog {
|
||||
background-position: -60px -10px
|
||||
}
|
||||
|
||||
.menu_left li a.ico_page {
|
||||
background-position: 2px -10px
|
||||
}
|
||||
|
||||
.menu_left li a.ico_comment {
|
||||
background-position: -122px -65px
|
||||
}
|
||||
|
||||
.menu_left li a.ico_phone {
|
||||
background-position: -304px -10px
|
||||
}
|
||||
|
||||
.menu_left li a.ico_shelf, .menu_left li a.ico_shelfed {
|
||||
background-position: -182px -10px
|
||||
}
|
||||
|
||||
.menu_left li a.ico_setup {
|
||||
background-position: -122px -10px
|
||||
}
|
||||
|
||||
.menu_left li a.ico_pc {
|
||||
background-position: 1px -62px
|
||||
}
|
||||
|
||||
.menu_left li a.ico_flower {
|
||||
background-position: -62px -64px
|
||||
}
|
||||
|
||||
.menu_right li a.ico_pagePrev {
|
||||
background-position: -184px -60px
|
||||
}
|
||||
|
||||
.menu_right li a.ico_pageNext {
|
||||
background-position: -243px -60px
|
||||
}
|
||||
|
||||
.menu_right li a.ico_goTop {
|
||||
background-position: -304px -56px
|
||||
}
|
||||
|
||||
.menu_right li a.ico_pagePrev:hover, .menu_right li a.ico_pageNext:hover, .menu_right li a.ico_goTop:hover {
|
||||
background-image: none
|
||||
}
|
||||
|
||||
.menu_right li a:hover i {
|
||||
display: block
|
||||
}
|
||||
|
||||
/* 正文栏 */
|
||||
.textbox {
|
||||
border-radius: 2px;
|
||||
width: 98%;
|
||||
margin: 0 auto 20px;
|
||||
padding-bottom: 40px;
|
||||
box-shadow: 0 0 1px 0 rgba(0, 0, 0, .25);
|
||||
color: #111;
|
||||
}
|
||||
|
||||
.bookNav {
|
||||
width: 99%;
|
||||
margin: 0 auto;
|
||||
padding: 18px 0 12px;
|
||||
line-height: 2.5; /*border-bottom: 1px dotted rgba(0,0,0,.1)*/
|
||||
}
|
||||
|
||||
.bookNav a {
|
||||
font: 12px/1 "Microsoft YaHei";
|
||||
margin: 0 5px
|
||||
}
|
||||
|
||||
.readWrap {
|
||||
margin: 0 auto;
|
||||
width: 100%
|
||||
}
|
||||
|
||||
.book_title {
|
||||
width: 90%;
|
||||
margin: 0 auto;
|
||||
padding-bottom: 15px;
|
||||
position: relative
|
||||
}
|
||||
|
||||
.book_title h1 {
|
||||
padding: 60px 0 30px;
|
||||
font: 26px/1 "Microsoft YaHei";
|
||||
color: #000;
|
||||
text-align: center
|
||||
}
|
||||
|
||||
.textinfo {
|
||||
color: rgba(0, 0, 0, .5);
|
||||
font: 12px/1.8 "Microsoft YaHei";
|
||||
text-align: center;
|
||||
position: relative
|
||||
}
|
||||
|
||||
.textinfo a, .textinfo span {
|
||||
color: rgba(0, 0, 0, .5);
|
||||
margin-right: 15px;
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
margin-top: -3px;
|
||||
*margin-top: -1px;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap
|
||||
}
|
||||
|
||||
.readBox {
|
||||
width: 90%;
|
||||
margin: 0 auto;
|
||||
line-height: 2;
|
||||
font-size: 16px;
|
||||
padding: 10px 0 60px; /*min-height: 469px;*/
|
||||
word-wrap: break-word;
|
||||
word-break: break-word
|
||||
}
|
||||
|
||||
.readBox p {
|
||||
line-height: 2;
|
||||
margin-top: 1em;
|
||||
text-indent: 2em;
|
||||
}
|
||||
|
||||
.orderBox {
|
||||
width: 90%;
|
||||
margin: 0 auto 10px;
|
||||
padding: 40px 0;
|
||||
font-size: 14px;
|
||||
min-height: 330px;
|
||||
border: 1px solid rgba(0, 0, 0, .1);
|
||||
border-radius: 2px;
|
||||
}
|
||||
|
||||
.orderBox h3 {
|
||||
padding: 0 50px;
|
||||
font: 18px/1 "Microsoft YaHei";
|
||||
margin: 25px 0
|
||||
}
|
||||
|
||||
.order_list {
|
||||
padding: 0 50px;
|
||||
line-height: 2.6;
|
||||
}
|
||||
|
||||
.order_list .btns {
|
||||
padding: 20px 0
|
||||
}
|
||||
|
||||
/* 作者的话 */
|
||||
.author_say {
|
||||
margin: 35px auto 10px;
|
||||
width: 90%;
|
||||
min-height: 70px;
|
||||
border-radius: 3px;
|
||||
background: url(../images/author_say.png) no-repeat;
|
||||
border: 1px solid #e3e3e3 /*rgba(0,0,0,.1)*/
|
||||
}
|
||||
|
||||
.say_bar {
|
||||
padding: 14px 14px 14px 74px;
|
||||
font-size: 14px
|
||||
}
|
||||
|
||||
/* 翻页 */
|
||||
.nextPageBox {
|
||||
margin: 30px auto;
|
||||
text-align: center;
|
||||
width: 98%
|
||||
}
|
||||
|
||||
.nextPageBox a {
|
||||
width: 26%;
|
||||
height: 58px;
|
||||
line-height: 58px;
|
||||
font-size: 18px;
|
||||
display: inline-block;
|
||||
border-radius: 3px;
|
||||
text-align: center; /*background: rgba(255,255,255,0.5);*/
|
||||
opacity: .95;
|
||||
border: 1px solid rgba(0, 0, 0, .1);
|
||||
}
|
||||
|
||||
.nextPageBox a.prev, .nextPageBox a.dir {
|
||||
margin-right: 40px
|
||||
}
|
||||
|
||||
.nextPageBox a:hover { /*background: rgba(255,255,255,.8);*/
|
||||
opacity: 1;
|
||||
color: #333
|
||||
}
|
||||
|
||||
.read_style_6 .nextPageBox a {
|
||||
color: #999;
|
||||
border: none
|
||||
}
|
||||
|
||||
/*固定悬浮图层*/
|
||||
.readPopup {
|
||||
border: 1px solid #D9D9D9;
|
||||
border-radius: 3px;
|
||||
background: #FFF;
|
||||
box-shadow: 0 1px 2px #999;
|
||||
overflow: hidden;
|
||||
padding-bottom: 20px;
|
||||
z-index: 9999;
|
||||
position: fixed;
|
||||
left: 50%;
|
||||
top: 50%
|
||||
}
|
||||
|
||||
.icon_check {
|
||||
position: absolute;
|
||||
width: 29px;
|
||||
height: 25px;
|
||||
right: -1px;
|
||||
top: -1px;
|
||||
z-index: 2;
|
||||
background-position: 0 -142px
|
||||
}
|
||||
|
||||
.closePopup {
|
||||
position: absolute;
|
||||
top: 20px;
|
||||
right: 20px;
|
||||
width: 16px;
|
||||
height: 15px;
|
||||
background-posion: -43px -126px
|
||||
}
|
||||
|
||||
.chapterBox {
|
||||
width: 600px;
|
||||
margin-left: -300px;
|
||||
margin-top: -260px
|
||||
}
|
||||
|
||||
.chapterBox .scrollWrap {
|
||||
height: 540px
|
||||
}
|
||||
|
||||
/*弹窗内容*/
|
||||
.popupTit h2 {
|
||||
text-align: center;
|
||||
letter-spacing: 15px;
|
||||
color: #333;
|
||||
font: 700 20px/30px "Microsoft Yahei";
|
||||
margin: 30px 0
|
||||
}
|
||||
|
||||
.popupTit h3 {
|
||||
font-size: 16px;
|
||||
margin: 15px 20px
|
||||
}
|
||||
|
||||
.scrollWrap {
|
||||
overflow-y: scroll;
|
||||
position: relative
|
||||
}
|
||||
|
||||
.dirWrap {
|
||||
padding: 0 40px
|
||||
}
|
||||
|
||||
.scrollWrap h3 {
|
||||
padding-left: 26px;
|
||||
font-size: 14px;
|
||||
background: #e6e6e6;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
font-weight: normal;
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
margin: 0 0 15px;
|
||||
border-radius: 3px
|
||||
}
|
||||
|
||||
.readPopup .tc .btn_gray {
|
||||
margin-left: 30px
|
||||
}
|
||||
|
||||
/* 目录 */
|
||||
.dirList {
|
||||
overflow: hidden;
|
||||
*zoom: 1
|
||||
}
|
||||
|
||||
.dirList li {
|
||||
float: left;
|
||||
width: 40%;
|
||||
padding-left: 26px;
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
overflow: hidden;
|
||||
margin-right: 20px;
|
||||
*zoom: 1
|
||||
}
|
||||
|
||||
.dirList li a {
|
||||
float: left;
|
||||
text-overflow: ellipsis;
|
||||
overflow: hidden;
|
||||
white-space: nowrap;
|
||||
width: 220px
|
||||
}
|
||||
|
||||
/* 加书架 */
|
||||
.readTipBox {
|
||||
width: 400px;
|
||||
padding-bottom: 30px;
|
||||
margin-left: -200px;
|
||||
margin-top: -105px
|
||||
}
|
||||
|
||||
.tipWrap {
|
||||
padding: 30px
|
||||
}
|
||||
|
||||
/* 设置 */
|
||||
.setupBox {
|
||||
width: 480px;
|
||||
margin-left: -240px;
|
||||
margin-top: -130px
|
||||
}
|
||||
|
||||
.setupList {
|
||||
padding: 5px 40px
|
||||
}
|
||||
|
||||
.setupList li {
|
||||
font-size: 14px;
|
||||
padding: 15px 0
|
||||
}
|
||||
|
||||
.setupList li a {
|
||||
display: inline-block;
|
||||
vertical-align: middle;
|
||||
margin: 0 6px;
|
||||
text-align: center
|
||||
}
|
||||
|
||||
.readTheme a {
|
||||
width: 34px;
|
||||
height: 34px;
|
||||
border-radius: 50%;
|
||||
position: relative;
|
||||
border: 1px solid rgba(0, 0, 0, .1)
|
||||
}
|
||||
|
||||
.readTheme .white {
|
||||
background-color: #faf6ed;
|
||||
margin-left: 15px
|
||||
}
|
||||
|
||||
.readTheme .green {
|
||||
background-color: #e2efe2
|
||||
}
|
||||
|
||||
/*.readTheme .blue { background-color: #E8FDFE }*/
|
||||
.readTheme .pink {
|
||||
background-color: #FDD9D9
|
||||
}
|
||||
|
||||
.readTheme .yellow {
|
||||
background-color: #F1DEBD
|
||||
}
|
||||
|
||||
.readTheme .gray {
|
||||
background-color: #eee
|
||||
}
|
||||
|
||||
.readTheme .night {
|
||||
background-color: #666
|
||||
}
|
||||
|
||||
/*.readTheme a.current, .readTheme a:hover { box-shadow: 1px 3px 5px #aaa }*/
|
||||
.read_style_1 .readTheme .white, .read_style_2 .readTheme .green, .read_style_3 .readTheme .pink, .read_style_4 .readTheme .yellow, .read_style_5 .readTheme .gray, .read_style_6 .readTheme .night {
|
||||
border-color: #3eaf7c
|
||||
}
|
||||
|
||||
.setBtn a {
|
||||
border: 1px solid #D9D9D9;
|
||||
width: 53px;
|
||||
height: 28px;
|
||||
line-height: 28px;
|
||||
box-shadow: 0 1px 1px #ECECEC;
|
||||
border-radius: 3px
|
||||
}
|
||||
|
||||
.setBtn .act {
|
||||
color: #CC2931
|
||||
}
|
||||
|
||||
.setFont .setSimsun {
|
||||
font-family: Simsun;
|
||||
font-size: 13px
|
||||
}
|
||||
|
||||
.setFont .setKs {
|
||||
font-family: kaiti;
|
||||
font-size: 15px
|
||||
}
|
||||
|
||||
.setupList li.fontSize a {
|
||||
text-align: center;
|
||||
margin: 0;
|
||||
font-size: 16px;
|
||||
width: 70px;
|
||||
box-shadow: 0 1px 0 #ECECEC
|
||||
}
|
||||
|
||||
.setupList li.fontSize a.small {
|
||||
margin-left: 8px;
|
||||
border-right: none;
|
||||
border-radius: 3px 0 0 3px
|
||||
}
|
||||
|
||||
.setupList li.fontSize a.big {
|
||||
border-left: none;
|
||||
border-radius: 0 3px 3px 0
|
||||
}
|
||||
|
||||
.setupList li.fontSize .current_font {
|
||||
display: inline-block;
|
||||
padding: 0 22px;
|
||||
border: 1px solid #D9D9D9;
|
||||
height: 28px;
|
||||
line-height: 28px;
|
||||
box-shadow: 0 1px 1px #ECECEC;
|
||||
vertical-align: middle
|
||||
}
|
||||
|
||||
/* 手机阅读 */
|
||||
.qrBox {
|
||||
width: 280px;
|
||||
margin-left: -140px;
|
||||
margin-top: -120px
|
||||
}
|
||||
|
||||
.qrList {
|
||||
text-align: center;
|
||||
width: 166px;
|
||||
margin: 30px auto 15px
|
||||
}
|
||||
|
||||
.qr_img {
|
||||
width: 160px;
|
||||
height: 160px;
|
||||
margin: 0 auto 10px;
|
||||
display: block
|
||||
}
|
||||
|
||||
.qrCodeBox p {
|
||||
color: #999
|
||||
}
|
||||
|
||||
/*遮罩层*/
|
||||
.maskBox {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
top: 0;
|
||||
z-index: 995;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: black;
|
||||
filter: alpha(opacity=20);
|
||||
opacity: 0.2;
|
||||
animation: mask 2s ease-out 0s 1 normal
|
||||
}
|
||||
|
||||
@keyframes mask {
|
||||
0% {
|
||||
filter: alpha(opacity=0);
|
||||
opacity: 0
|
||||
}
|
||||
100% {
|
||||
filter: alpha(opacity=20);
|
||||
opacity: 0.2
|
||||
}
|
||||
}
|
||||
|
||||
.pc_bar {
|
||||
padding: 30px 0 10px;
|
||||
text-align: center;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.icon_pc {
|
||||
box-shadow: 0 1px 1px rgba(0, 0, 0, .3);
|
||||
padding: 3px;
|
||||
display: inline-block;
|
||||
border-radius: 50%;
|
||||
}
|
||||
|
||||
.icon_pc span {
|
||||
width: 96px;
|
||||
height: 96px;
|
||||
line-height: 1;
|
||||
border-radius: 50%;
|
||||
display: inline-block;
|
||||
background-color: #3eaf7c;
|
||||
color: #fefefe;
|
||||
font-size: 22px;
|
||||
letter-spacing: 0px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.icon_pc:hover span {
|
||||
background: #ed4259
|
||||
}
|
||||
|
||||
.icon_yb {
|
||||
width: 37px;
|
||||
height: 27px;
|
||||
display: block;
|
||||
background-position: 0 -173px;
|
||||
margin: 19px auto 7px
|
||||
}
|
||||
|
||||
.icon_pc em {
|
||||
filter: alpha(opacity=90);
|
||||
-moz-opacity: 0.9;
|
||||
opacity: 0.9;
|
||||
}
|
||||
|
||||
.read_dz {
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
border-radius: 40px;
|
||||
padding: 0 22px;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#0c000000, endColorstr=#0c000000);
|
||||
background: rgba(0, 0, 0, .07);
|
||||
display: block;
|
||||
position: absolute;
|
||||
bottom: 35px;
|
||||
right: 50px;
|
||||
color: #444;
|
||||
font-size: 18px
|
||||
}
|
||||
|
||||
.read_dz:hover {
|
||||
color: #444;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#19000000, endColorstr=#19000000);
|
||||
background: rgba(0, 0, 0, .1)
|
||||
}
|
||||
|
||||
.read_dz i {
|
||||
width: 25px;
|
||||
height: 25px;
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
top: 4px;
|
||||
margin-right: 6px;
|
||||
background: url(../images/icon_readdz.png) no-repeat
|
||||
}
|
||||
|
||||
.read_style_6 .read_dz {
|
||||
color: #aaa
|
||||
}
|
||||
|
||||
.read_dz.on {
|
||||
color: #3eaf7c;
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#0cff8800, endColorstr=#0cff8800);
|
||||
background: rgba(255, 136, 0, .05)
|
||||
}
|
||||
|
||||
.read_dz.on i {
|
||||
background-position: -30px 0
|
||||
}
|
||||
|
||||
.haveRead {
|
||||
border-radius: 2px; /*background: #fff;*/
|
||||
width: 98%;
|
||||
margin: 0 auto 20px;
|
||||
}
|
||||
|
||||
.haveRead h4 {
|
||||
padding: 25px 40px 0;
|
||||
font-weight: normal
|
||||
}
|
||||
|
||||
.haveRead ul {
|
||||
padding: 0 15px 10px
|
||||
}
|
||||
|
||||
.haveRead li {
|
||||
float: left;
|
||||
width: 124px;
|
||||
margin: 15px 23px
|
||||
}
|
||||
|
||||
.haveRead .items_img {
|
||||
display: block
|
||||
}
|
||||
|
||||
.haveRead .items_img img {
|
||||
width: 120px;
|
||||
height: 150px;
|
||||
background: #f6f6f6;
|
||||
border: 1px solid #ebebeb;
|
||||
padding: 1px;
|
||||
}
|
||||
|
||||
.haveRead .items_img:hover img {
|
||||
border-color: #ccc
|
||||
}
|
||||
|
||||
.haveRead .items_link {
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
width: 124px;
|
||||
overflow: hidden;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.payFoot {
|
||||
line-height: 2.4;
|
||||
padding: 30px 0 20px;
|
||||
margin: 10px 50px 0;
|
||||
font-size: 13px;
|
||||
color: #808080;
|
||||
border-top: 1px solid #eee
|
||||
}
|
||||
|
||||
.readBanner {
|
||||
width: 98%;
|
||||
padding-top: 25px
|
||||
}
|
||||
|
||||
.readBanner img {
|
||||
max-width: 100%
|
||||
}
|
||||
|
||||
.read_style_6 .readBanner img, .read_style_6 .haveRead .items_img img {
|
||||
filter: alpha(opacity=80);
|
||||
opacity: .8
|
||||
}
|
||||
|
||||
:root .topMain {
|
||||
filter: none
|
||||
}
|
||||
|
||||
/*全本订阅*/
|
||||
.order_bar {
|
||||
text-align: center;
|
||||
padding-bottom: 30px
|
||||
}
|
||||
|
||||
.order_zj {
|
||||
width: 178px;
|
||||
padding: 15px 0;
|
||||
margin: 0 14px;
|
||||
display: inline-block;
|
||||
transition: width .3s;
|
||||
border: 1px solid #d8d8d8;
|
||||
background: rgba(255, 255, 255, .7);
|
||||
border-radius: 4px
|
||||
}
|
||||
|
||||
.order_zj:hover {
|
||||
color: #333;
|
||||
background: rgba(255, 255, 255, .2);
|
||||
border-color: #d1d1d1
|
||||
}
|
||||
|
||||
.order_zj h4 {
|
||||
font-size: 18px;
|
||||
font-weight: normal
|
||||
}
|
||||
|
||||
.order_zj .price {
|
||||
font-size: 12px;
|
||||
padding-top: 6px
|
||||
}
|
||||
|
||||
.order_zj .price .red {
|
||||
margin-left: 5px
|
||||
}
|
||||
|
||||
.order_allzj {
|
||||
background: #3eaf7c;
|
||||
color: #fff;
|
||||
border-color: #3eaf7c
|
||||
}
|
||||
|
||||
.order_allzj .red {
|
||||
color: #fff
|
||||
}
|
||||
|
||||
.order_allzj:hover {
|
||||
color: #fff;
|
||||
background: #3eaf7c;
|
||||
border-color: #3eaf7c
|
||||
}
|
||||
|
||||
.order_tip {
|
||||
padding: 25px 0 10px;
|
||||
color: #999;
|
||||
font-size: 13px
|
||||
}
|
||||
|
||||
.dqye {
|
||||
font-size:15px }
|
137
templates/green/static/css/user.css
Normal file
@ -0,0 +1,137 @@
|
||||
@charset "utf-8";
|
||||
.updateTable .style a { color:#999 }
|
||||
.updateTable .author a { color:#999; cursor:text }
|
||||
.bind, .updateTable .style a:hover { color:#f65167 }
|
||||
.userBox { /*width: 998px; border: 1px solid #eaeaea;*/ margin:0 auto 50px; background: #fff; border-radius: 6px }
|
||||
.channelViewhistory .userBox { margin: 0 auto }
|
||||
.user_l { width:350px; float:left; padding:100px 124px }
|
||||
.user_l h3 { font-size:23px; font-weight:normal; line-height:1; text-align: center }
|
||||
.user_l #LabErr { color:#ff4040; display:block; height:40px; line-height:40px; text-align: center; font-size: 14px }
|
||||
.user_l .log_list { width:350px }
|
||||
.user_l .s_input { margin-bottom:25px; font-size:14px }
|
||||
.s_input { width:348px; height:38px; line-height:38px\9; vertical-align:middle; border:1px solid #ddd; border-radius:2px }
|
||||
.icon_name, .icon_key, .icon_code { width:312px; padding-left:36px; background:url(../images/icon_user.png) no-repeat 13px 13px }
|
||||
.icon_key { background-position: 13px -51px }
|
||||
.icon_code { background-position: 13px -117px; width:200px; float:left }
|
||||
.code_pic { height:38px; float:right }
|
||||
.btn_phone { height:40px; width:100px; float:right; cursor:pointer; padding:0; text-align:center; border-radius:2px; background:#dfdfdf }
|
||||
.log_code { *padding-bottom:25px }
|
||||
.user_l .btn_red { width:100%; font-size:19px; padding:12px }
|
||||
.autologin { color:#999; line-height:1; margin-bottom:18px }
|
||||
.autologin em { vertical-align:2px; margin-left:4px }
|
||||
.user_r { width:259px; margin:80px 0; padding:20px 70px; border-left:1px dotted #e3e3e3; float:right; text-align:center }
|
||||
.user_r .tit { font-size:16px; line-height:1; padding: 6px 0 25px }
|
||||
.user_r .btn_ora { padding:10px 34px }
|
||||
.fast_login { padding:60px 0 0 }
|
||||
.fast_list { text-align:center; padding:0.5rem }
|
||||
.fast_list li { display:inline-block; *display:inline; zoom:1 }
|
||||
.fast_list li .img { width:48px; height:48px; margin:20px 0 5px }
|
||||
.fast_list li a:hover { opacity:0.8; filter: alpha(opacity=80); -moz-opacity: 0.8 }
|
||||
.fast_list li span { display:block }
|
||||
.fast_list .login_qq { margin:0 42px }
|
||||
.fast_list .login_wb a { color:#f55c5b }
|
||||
.fast_list .login_qq a { color:#51b7ff }
|
||||
.fast_list .login_wx a { color:#66d65e }
|
||||
.fast_tit { position:relative; overflow:hidden }
|
||||
.fast_tit .lines { position:absolute; top:50%; left:0; width:100%; height:1px; line-height:1; background:#eaeaea }
|
||||
.fast_tit .title { background:#fff; font-size:16px; padding:3px 14px; position:relative; display:inline-block; z-index:999 }
|
||||
/*userinfo*/
|
||||
.my_l { width:198px; float:left; font-size: 13px; padding-top: 20px; }
|
||||
.my_l li a { display:block; height:42px; line-height:42px; padding-left:62px; border-left:4px solid #fff; background:url(../images/icon_user.png) no-repeat; margin-bottom:5px; color: #666 }
|
||||
.my_l li .on { background-color:#fafafa; border-left:2px solid #3eaf7c; color:#000; border-radius: 0 2px 2px 0 }
|
||||
.my_l .link_1 { background-position:32px -188px }
|
||||
.my_l .link_2 { background-position:32px -230px }
|
||||
.my_l .link_3 { background-position:32px -272px }
|
||||
.my_l .link_4 { background-position:32px -314px }
|
||||
.my_l .link_5 { background-position:32px -356px }
|
||||
.my_l .link_6 { background-position:32px -397px }
|
||||
.my_l .link_7 { background-position:32px -440px }
|
||||
.my_l .link_8 { background-position:32px -481px }
|
||||
.my_r { width:739px; padding:0 30px 30px; float:right; border-left:1px solid #efefef; min-height:470px }
|
||||
.my_info { padding:30px 0 5px }
|
||||
.user_big_head { /*width:110px; height:110px; padding:4px; border:1px solid #eaeaea;*/ margin-right:30px; float:left; width: 80px;
|
||||
height: 80px;
|
||||
border-radius: 50%; }
|
||||
.my_r .my_name { font-size:18px; line-height:1; padding:5px 0 12px 0 }
|
||||
.my_r .s_input { width:318px; padding:0 10px }
|
||||
.my_list li { line-height:28px }
|
||||
.my_list li i, .my_list li em.red { margin-right:6px }
|
||||
.my_list .binded { color:#999; margin-left:6px }
|
||||
.my_list .btn_link { margin-left:12px }
|
||||
.mytab_list li { line-height:30px; padding:10px 0; font-size:14px }
|
||||
.mytab_list li .tit { width:70px; color: #aaa; text-align:right; display:inline-block; margin-right:18px }
|
||||
.mytab_list .user_img { width:48px; height:48px; vertical-align:middle; border-radius:50% }
|
||||
.my_bookshelf .title { padding:20px 0 15px; line-height:30px }
|
||||
.my_bookshelf h4 { font-size:14px; color:#666 }
|
||||
.my_bookshelf h2 { font-size:18px; font-weight:normal }
|
||||
.updateTable { width: 739px; color: #999 }
|
||||
.updateTable table { width: 100%; margin-bottom:14px }
|
||||
.updateTable th, .updateTable td { height: 40px; line-height: 40px; vertical-align: middle; padding-left: 6px; font-weight:normal; text-align:left }
|
||||
.updateTable th { background:#f9f9f9; color:#333; border-top:1px solid #eee }
|
||||
.updateTable td { height:40px; line-height:40px }
|
||||
.updateTable .style { width:80px; padding-left:10px }
|
||||
.updateTable .name { width: 178px; padding-right: 10px }
|
||||
.updateTable .name a, .updateTable .chapter a { max-width: 168px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap }
|
||||
.updateTable .chapter { padding-right: 5px }
|
||||
.updateTable .chapter a { max-width:220px; float: left }
|
||||
.updateTable .author { width: 72px; text-align: left }
|
||||
.updateTable .goread { width: 80px; text-align:center }
|
||||
.updateTable .time { width: 86px }
|
||||
.updateTable .word { width: 64px; padding-right:10px; text-align: right }
|
||||
.updateTable .rank { width: 30px; padding-right:10px; text-align: center }
|
||||
.updateTable .name a, .updateTable .chapter a, .updateTable .author a { height: 40px; line-height: 40px; display: inline-block; overflow: hidden }
|
||||
.updateTable tr:nth-child(2n) td { background:#fafafa }
|
||||
.dataTable { width: 739px }
|
||||
.dataTable table { width: 100%; margin-bottom:14px; border-collapse:collapse }
|
||||
.dataTable th, .dataTable td { height: 40px; line-height: 40px; vertical-align: middle; padding:0 10px; font-weight:normal; text-align:center; border:1px solid #eaeaea }
|
||||
.dataTable th { background:#f8f8f8 }
|
||||
.nodate { border-top: 1px solid #eaeaea; padding:60px 0 }
|
||||
.viewhistoryBox { /*padding: 0 30px 30px; */ padding: 0 20px 10px }
|
||||
.viewhistoryBox .updateTable { width:100% }
|
||||
/*.btn_gray, .btn_red, .btn_ora { font-size:14px; padding:8px 28px }*/
|
||||
.book_tit { height: 48px; line-height:48px; margin: 0 14px; border-bottom: 1px solid #eaeaea; overflow:hidden }
|
||||
.book_tit .fl { font-size:14px; color:#999 }
|
||||
.book_tit .fl h3 { font-size:18px; color:#333; font-weight:normal; margin-right:5px; display:inline }
|
||||
.book_tit .fr { font-size:14px }
|
||||
|
||||
.commentBar, .feedback_list { border-top:1px solid #eee; margin-bottom:15px }
|
||||
/*.comment_list { padding: 16px 0; border-bottom: 1px solid #eee }
|
||||
.comment_list .user_head { width:54px; height:54px; border-radius:50%; float: left; margin-right: 14px }
|
||||
.comment_list .li_1 { overflow: hidden }
|
||||
.comment_list .user_name { color: #ed4259 }
|
||||
.comment_list .li_2 { padding:3px 0; color:#999 }
|
||||
.comment_list .li_3, .comment_list .li_4 { margin-left:68px }
|
||||
.comment_list .reply { padding-left: 12px }
|
||||
.comment_list .num { color: #ed4259; margin: 0 3px }
|
||||
.comment_list .li_4 { line-height:34px; padding-top:8px; margin-top:15px; border-top:1px solid #eaeaea }
|
||||
.comment_list .li_4 .more { background:#f7f7f7; border-radius:2px; color:#ed4259; text-align:center }*/
|
||||
.no_contet { padding:190px 0 40px; text-align:center; color:#999; border-top:1px solid #eee }
|
||||
.no_comment { background:url(../images/no_comment.png) no-repeat center 80px }
|
||||
|
||||
.comment_list { padding: 20px 0; border-bottom: 1px solid #eee }
|
||||
.comment_list:last-child { border: none }
|
||||
.comment_list .user_heads { /*width: 54px; height: 54px; float: left;*/ position:relative; margin-right: 20px }
|
||||
.comment_list .user_head { width: 50px; height: 50px; border-radius: 50%; background: #f6f6f6 }
|
||||
.comment_list .user_heads span { display: block; margin: 0; position: absolute; left: 12px; bottom: 0 }
|
||||
.comment_list ul { /*width: 640px;*/ width: 660px; }
|
||||
.comment_list .li_0 { font-family: "宋体" }
|
||||
.comment_list .li_0 strong { font-size: 14px; color: #f00 }
|
||||
.comment_list .li_1 { overflow: hidden }
|
||||
.comment_list .user_name { color: #ed4259 }
|
||||
.comment_list .li_2 { padding: 6px 0 }
|
||||
.comment_list .li_3 { color: #999 }
|
||||
.comment_list .reply { padding-left: 12px }
|
||||
.comment_list .num { color: #ed4259; margin: 0 3px }
|
||||
.comment_list .li_4 { line-height: 34px; padding-top: 8px; margin-top: 15px; border-top: 1px solid #eaeaea }
|
||||
.pl_bar li { display: block }
|
||||
.pl_bar .name { color: #666; padding-top: 2px; font-size: 14px }
|
||||
.pl_bar .dec { font-size: 14px; line-height: 1.8; padding: 12px 0 }
|
||||
.pl_bar .other { line-height: 24px; color: #999; font-size: 13px }
|
||||
.pl_bar .other a { display: inline-block; color: #999 }
|
||||
.pl_bar .reply { padding-left: 22px; background: url(../images/icon_reply.png) no-repeat 0 2px }
|
||||
/*.no_comment { padding: 70px 14px 115px; color: #CCCCCC; text-align: center; font-size: 14px; }*/
|
||||
.reply_bar {
|
||||
background: #f9f9f9;
|
||||
border: 1px solid #eee; border-radius: 6px;
|
||||
padding: 10px;
|
||||
line-height: 1.8;}
|
BIN
templates/green/static/images/404.jpeg
Normal file
After Width: | Height: | Size: 9.5 KiB |
BIN
templates/green/static/images/author_head.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
templates/green/static/images/default.gif
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
templates/green/static/images/icon_dt.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
templates/green/static/images/icon_readpage.png
Normal file
After Width: | Height: | Size: 12 KiB |
BIN
templates/green/static/images/icon_reply.png
Normal file
After Width: | Height: | Size: 679 B |
BIN
templates/green/static/images/icon_sj.png
Normal file
After Width: | Height: | Size: 582 B |
BIN
templates/green/static/images/icon_user.png
Normal file
After Width: | Height: | Size: 6.3 KiB |
BIN
templates/green/static/images/login_qq.png
Normal file
After Width: | Height: | Size: 6.2 KiB |
BIN
templates/green/static/images/login_weibo.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
templates/green/static/images/login_weixin.png
Normal file
After Width: | Height: | Size: 8.7 KiB |
BIN
templates/green/static/images/logo.png
Normal file
After Width: | Height: | Size: 3.2 KiB |
BIN
templates/green/static/images/logo_white.png
Normal file
After Width: | Height: | Size: 5.9 KiB |
BIN
templates/green/static/images/man.png
Normal file
After Width: | Height: | Size: 788 B |
BIN
templates/green/static/images/no_comment.png
Normal file
After Width: | Height: | Size: 2.5 KiB |
BIN
templates/green/static/images/pay_wx.png
Normal file
After Width: | Height: | Size: 3.6 KiB |
BIN
templates/green/static/images/pay_zfb.png
Normal file
After Width: | Height: | Size: 5.7 KiB |