فهرست منبع

h5cdn域名替换

pansl 2 سال پیش
والد
کامیت
d0d2b44592

BIN
dist.rar


+ 1 - 1
package.json

@@ -13,7 +13,7 @@
     "axios": "^0.17.1",
     "clipboard": "^2.0.4",
     "fundebug-javascript": "^1.2.3",
-    "html2canvas": "^1.0.0-alpha.12",
+    "html2canvas": "^1.0.0-rc.4",
     "mint-ui": "^2.2.10",
     "qrcodejs2": "0.0.2",
     "vconsole": "^3.2.0",

+ 76 - 17
src/App.vue

@@ -1,13 +1,25 @@
+<!--
+ * @Author: your name
+ * @Date: 2020-09-08 10:49:07
+ * @LastEditTime: 2021-06-29 11:45:03
+ * @LastEditors: your name
+ * @Description: In User Settings Edit
+ * @FilePath: \ydy_wap_front\src\App.vue
+-->
 <template>
-  <div id="app"
-       :class="theme">
+  <div id="app" :class="theme">
     <router-view :key="$route.fullpath" />
-    <div class="package-wrap"
-         @touchmove.prevent
-         v-if="showWrap">
-      <img @click.stop="closeWrap"
-           :src="imgs"
-           alt="">
+    <div class="package-wrap" @touchmove.prevent v-if="showWrap">
+      <img @click.stop="closeWrap" :src="imgs" alt="" />
+    </div>
+
+    <div class="fans-mask" v-if="fansUrl">
+      <div class="fans-box">
+        <!-- <i class="close"></i> -->
+        <img  class="qrcode" alt="迁移新二维码" :src="fansUrl"/>
+        <p class="fans-tips">当前公众号已迁移</p>
+        <p class="fans-des">长按二维码扫描关注新公众号继续阅读</p>
+      </div>
     </div>
     <!-- <template v-if="isTargetChannel&&showIframe">
       <iframe src='//wap.apyingcaisw.com/xingzuo'
@@ -31,7 +43,8 @@ export default {
       showWrap: false,
       // todayDate: new Date().toLocaleDateString(),
       isTargetChannel: window.options.is_show_ad_frame,
-      showIframe: false
+      showIframe: false,
+      fansUrl: window.options.channel_fans_guide_qrcode  //站点迁移新的公众号二维码
     };
   },
   watch: {
@@ -42,14 +55,10 @@ export default {
     }
   },
   created() {
-    let { sex } = window.options;
-    if (sex !== 0) {
+    let { site_gender } = window.options;
+    if (site_gender) {
       // 关注用户 根据用户性别 首页展示不同的频道
-      this.theme = localStorage.getItem("theme")
-        ? localStorage.getItem("theme")
-        : sex === 1
-        ? "boy"
-        : "girl";
+      this.theme = site_gender === "male" ? "boy" : "girl";
     } else this.theme = "girl";
     this.initWrap();
   },
@@ -91,7 +100,7 @@ export default {
   left: 0;
   width: 100%;
   background: rgba($color: #000000, $alpha: 0.6);
-  z-index: 9999;
+  z-index: 999;
 
   img {
     position: absolute;
@@ -101,4 +110,54 @@ export default {
     transform: translate(-50%, -50%);
   }
 }
+
+.fans-mask {
+  position: fixed;
+  top: 0;
+  bottom: 0;
+  left: 0;
+  width: 100%;
+  background: rgba($color: #000000, $alpha: 0.6);
+  z-index: 1000;
+  .fans-box {
+    width: 6rem;
+    height: 6.3rem;
+    box-sizing: border-box;
+    padding: 0.3rem;
+    background: #fff;
+    position: absolute;
+    margin: auto;
+    top: 0;
+    bottom: 0;
+    left: 0;
+    right: 0;
+    .qrcode{
+      width: 4rem;
+      height:4rem;
+      margin: .2rem auto 0;
+      display: block;
+    }
+    .close {
+      display: inline-block;
+      width: 0.5rem;
+      height: 0.5rem;
+      position: absolute;
+      top: 0.2rem;
+      right: 0.2rem;
+      background: url("../src/assets/closed.png") no-repeat;
+      background-size: cover;
+    }
+    .fans-tips {
+      font-size: 0.34rem;
+      font-weight: bold;
+      text-align: center;
+      margin-top: 0.2rem;
+    }
+    .fans-des {
+      font-size: .3rem;
+      color: #666;
+      margin-top: .2rem;
+    }
+  }
+}
 </style>

+ 4 - 5
src/api/index.js

@@ -1,8 +1,8 @@
 /*
  * @Author: ZhengXiaowei
  * @Date: 2019-07-24 17:21:47
- * LastEditors: 晓晓晓晓晓丶vv
- * LastEditTime: 2020-08-25 17:28:21
+ * @LastEditors: Please set LastEditors
+ * @LastEditTime: 2021-06-28 15:51:55
  * @Description: file content
  */
 import Axios from "axios";
@@ -85,10 +85,10 @@ function detailUpdate(id, status) {
     book.result.data.is_on_user_shelf = status;
   }
 }
-export function getDetail(id, s = "") {
+export function getDetail(id, s = "",pos='') {
   return detail
     .getAsync(id, function() {
-      return axios("/book/" + id + "?s=" + s).then(r => {
+      return axios("/book/" + id + "?s=" + s + '&pos=' + pos).then(r => {
         return {
           id,
           data: r
@@ -595,7 +595,6 @@ export function getBookLimitFree() {
 export function getRankListV2() {
   return axios("/books/rankList");
 }
-
 //用户优惠券列表
 export function getUserCoupon() {
   return axios("/user/userCoupon");

BIN
src/assets/alipay.png


BIN
src/assets/closed.png


BIN
src/assets/icon_coupon.png


BIN
src/assets/icon_pay_coupon.png


BIN
src/assets/is_check.png


BIN
src/assets/un_check.png


BIN
src/assets/wechat.png


+ 2 - 0
src/components/index.js

@@ -30,6 +30,7 @@ VueClipboard.config.autoSetContainer = true;
 
 Vue.use(vueTouch);
 Vue.use(VueClipboard);
+
 Vue.component(Swipe.name, Swipe);
 Vue.component(SwipeItem.name, SwipeItem);
 Vue.component(Spinner.name, Spinner);
@@ -43,6 +44,7 @@ Vue.component(TabContainer.name, TabContainer);
 Vue.component(TabContainerItem.name, TabContainerItem);
 Vue.prototype.$Toast = Toast;
 Vue.prototype.$Indicator = Indicator;
+
 Vue.prototype.$MessageBox = MessageBox;
 Vue.component(XPage.name, XPage);
 Vue.use(XBook, {

+ 148 - 75
src/components/prompt/children/book-3.vue

@@ -1,36 +1,67 @@
-// 10019       全本订阅余额不足(充值)
+// 10019 全本订阅余额不足(充值)
 <template>
-  <x-prompt :visible="visible"
-            @close="close">
+  <x-prompt :visible="visible" class="order-confirm-pay" @close="close">
     <div class="head">全本订购提醒</div>
-    <div :class="['body', {'book-order__wrap': !!is_first_book_order}]">
-      <div class="book-name single-line red"
-           v-if="!showBookName">《{{book_name}}》</div>
-      <template v-if="!!is_first_book_order">
-        <div class="first-order list-dot">
-          首订优惠:
-          <span class="red">{{fee}}</span>书币
-          <i>(1399书币)</i>
-        </div>
-        <div class="fee list-dot"
-             :class="{'is-discount': discount}">余额:
-          <span>{{user_balance}}</span>书币
-          <span class="red">(余额不足)</span>
+    <div :class="['body', { 'book-order__wrap': !!is_first_book_order }]">
+      <!-- <div
+        class="book-name single-line"
+        v-if="
+          !showBookName && !(!is_first_book_order && !!book_order_custom_price)
+        "
+
+      >
+        《{{ book_name }}》
+      </div> -->
+      <template v-if="is_first_book_order && !book_order_custom_price">
+        <div class="fee">
+          <p>
+            <i class="round"></i>首订优惠:<span
+              class="red"
+              style="font-weight:bold;padding:0 3px;font-size: .34rem;"
+              >{{ fee }}</span
+            >书币<span style="color:#aaa;font-size:.26rem;text-decoration:line-through">(1399书币)</span>
+          </p>
+          <p>
+            <i class="round"></i>余额:<span
+              style="font-weight:bold;padding:0 3px;"
+              >{{ user_balance }}</span
+            >书币<span class="red" style="font-size:12px">(余额不足)</span>
+          </p>
         </div>
       </template>
       <template v-else>
-        <div class="fee"
-             :class="{'is-discount': discount}">本书价格:
-          <span class="red">{{fee}}</span>书币
+        <!-- <div
+          class="fee"
+          v-if="!book_order_custom_price"
+          :class="{ 'is-discount': discount }"
+        >
+          <i class="round"></i>本书价格: <span class="red">{{ fee }}</span
+          >书币
           <span class="red">(余额不足)</span>
+        </div> -->
+        <div class="fee" :class="{ 'is-discount': discount }">
+          <p>
+            <i class="round"></i>全本仅需:<span
+              class="red"
+              style="padding:0 5px;font-weight: bold;font-size: .34rem;"
+              >{{ fee }}</span
+            >书币
+          </p>
+          <p>
+            <i class="round"></i>余额:<span
+              style="color:#000;padding:0 5px;font-weight: bold;"
+              >{{ user_balance }}</span
+            >书币<span class="red" style="font-size:12px">(余额不足)</span>
+          </p>
+        </div>
+        <div v-if="discount" class="discount">
+          <i class="round"></i>今日特价:
+          <span class="red">{{ discount_fee }}</span
+          >书币({{ discount }})
         </div>
-        <div v-if="discount"
-            class="discount">今日特价:
-          <span class="red">{{discount_fee}}</span>书币({{discount}})</div>
       </template>
     </div>
-    <div class="confirm"
-         @click="confirm">充值</div>
+    <div class="confirm" @click="confirm">充值</div>
   </x-prompt>
 </template>
 <script>
@@ -49,66 +80,108 @@ export default {
   }
 };
 </script>
-<style lang="scss" scoped>
-.book-order__wrap {
-  .book-name {
-    text-align: left;
-    color: #333;
-    font-size: 0.32rem;
-    margin-bottom: 0.3rem;
-  }
-
-  .fee {
-    height: auto;
-    color: #666;
-    text-align: left;
-    font-weight: bold;
-    font-size: 0.28rem;
-    line-height: 1;
-    margin-bottom: 0.3rem;
-
-    span.red {
-      font-size: .24rem;
+<style lang="scss">
+/*顶级的产品只改这2处弹窗,牛逼plus*/
+.order-confirm-pay {
+  .wrap {
+    margin: auto;
+    background-color: #fff;
+    width: 6.6rem;
+    text-align: center;
+    padding-bottom: 0.3rem;
+    border-radius: 0.2rem;
+    overflow: visible !important;
+    position: relative !important;
+    padding-bottom: 0 !important;
+    .confirm {
+      border-radius: 0.6rem;
+      margin-bottom: 0.3rem;
+    }
+    .head {
+      height: 0.6rem;
+      line-height: 0.6rem;
+      font-size: 0.32rem;
+      padding-top: 0.8rem;
+      border-bottom: 0;
+      font-weight: bold;
+    }
+    .fee {
+      text-align: left;
+      height: auto!important;
+      font-size: 0.3rem;
+      color: #666;
+      display: inline-block;
+      margin: 0 auto;
       font-weight: normal;
+      line-height: 1;
+      margin-bottom: 0.2rem;
+      >p{
+        height:.68rem;
+        line-height:.68rem;
+      }
     }
-  }
-
-  .list-dot {
-    position: relative;
-    padding-left: 0.2rem;
-
-    &::before {
-      content: "";
+    .body {
+      padding: 0.1rem 0 0.2rem;
+    }
+    &::after {
       position: absolute;
-      width: 4px;
-      height: 4px;
-      top: 50%;
-      left: 0;
-      transform: translate(0, -50%);
-      background: #ff6060;
-      border-radius: 50%;
+      width: 1.34rem;
+      height: 1.34rem;
+      content: "";
+      display: block;
+      background-image: url("https://cdn-novel.bookkks.com/h5/2022-10-14-reader-tips.png");
+      background-size: cover;
+      top: -0.68rem;
+      left: 50%;
+      margin-left: -0.68rem;
+    }
+    .round {
+      background: #0094ff;
+      border-radius: 100%;
+      width: 0.1rem;
+      height: 0.1rem;
+      display: inline-block;
+      vertical-align: middle;
+      margin-right: 0.1rem;
     }
   }
 
-  .first-order {
-    height: auto;
-    text-align: left;
-    font-size: 0.28rem;
-    font-weight: bold;
-    line-height: 1;
-    margin-bottom: 0.2rem;
+  .book-order__wrap {
+    .book-name {
+      text-align: center;
+      color: #333;
+      font-size: 0.28rem;
+      margin-bottom: 0.1rem;
+    }
 
-    span {
-      font-size: 0.36rem;
+    .fee {
+      span.red {
+        font-size: 0.24rem;
+        font-weight: normal;
+      }
     }
 
-    i {
-      font-weight: normal;
-      font-style: normal;
-      font-size: 0.26rem;
-      color: #999;
-      text-decoration: line-through;
+    .first-order {
+      height: auto;
+      text-align: left;
+      font-size: 0.28rem;
+      line-height: 1;
+      margin-bottom: 0.4rem;
+      padding-left: 1.2rem;
+
+      span {
+        font-size: 0.36rem;
+        color: #666;
+      }
+
+      i {
+        font-weight: normal;
+        font-style: normal;
+        font-size: 0.26rem;
+        color: #333;
+        text-decoration: line-through;
+      }
     }
   }
 }
-</style>
+</style>

+ 90 - 19
src/components/prompt/children/book-4.vue

@@ -1,19 +1,41 @@
 // 改版全本订阅弹窗
 <template>
-  <x-prompt class="order-confirm"
-            :visible="visible">
+  <x-prompt class="order-confirm" :visible="visible">
     <div class="head">全本订阅提醒</div>
     <div class="body">
-      <p class="tips-text"
-         v-if="is_first_book_order">首次订阅仅需{{fee}}<i>(1399)</i>书币即可解锁所有章节</p>
-      <p class="tips-text not-first"
-         v-else>整本仅需<i>{{fee}}</i>书币即可解锁所有章节</p>
+      <p
+        class="tips-text"
+        v-if="is_first_book_order && !book_order_custom_price"
+      >
+        <template>
+          <p style="line-height:200%; font-size:.3rem;">
+            首次订阅仅需<i
+              style="color: #fd555d;padding: 0 5px;font-weight: bold;text-decoration:none;font-size: .34rem"
+              >{{ fee }}</i
+            >书币<span style="color:#aaa;font-size:.26rem;text-decoration:line-through">(1399书币)</span>
+          </p>
+          <p style="line-height:200%; font-size:.3rem;">即可解锁所有章节</p>
+        </template>
+      </p>
+      <p class="tips-text not-first" v-else>
+        <!--  <template v-if="!book_order_custom_price">
+          整本仅需<i>{{ fee }}</i
+          >书币即可解锁所有章节
+        </template> -->
+        <template>
+          <p style="line-height:200%">
+            全本订阅仅需<i
+              style="color: #fd555d;padding: 0 5px;font-weight: bold;"
+              >{{ fee }}</i
+            >书币
+          </p>
+          <p style="line-height:200%">即可解锁所有章节</p>
+        </template>
+      </p>
     </div>
     <div class="confirm-wrap">
-      <p class="btn"
-         @click="close">取消</p>
-      <p class="btn btn-confirm"
-         @click="orderBook">确定</p>
+      <p class="btn grey" @click="close">取消</p>
+      <p class="btn btn-confirm" @click="orderBook">确定</p>
     </div>
   </x-prompt>
 </template>
@@ -43,14 +65,53 @@ export default {
 <style lang="scss">
 .order-confirm {
   .wrap {
+    margin: auto;
+    background-color: #fff;
+    width: 6.6rem;
+    text-align: center;
+    padding-bottom: 0.3rem;
+    border-radius: 0.08rem;
+    overflow: visible !important;
+    position: relative !important;
     padding-bottom: 0 !important;
+    .head {
+      height: 0.6rem;
+      line-height: 0.6rem;
+      font-size: 0.32rem;
+      padding-top: 0.8rem;
+      border-bottom: 0;
+      font-weight: bold;
+    }
+    .body {
+      padding: 0.1rem 0 0.4rem;
+    }
+    &::after {
+      position: absolute;
+      width: 1.34rem;
+      height: 1.34rem;
+      content: "";
+      display: block;
+      background-image: url("https://cdn-novel.bookkks.com/h5/2022-10-14-reader-tips.png");
+      background-size: cover;
+      top: -0.68rem;
+      left: 50%;
+      margin-left: -0.68rem;
+    }
   }
 
   .tips-text {
     font-size: 0.28rem;
-    color: #333;
-    padding: 0.28rem 0;
-
+    color: #666;
+    padding: 0.1rem 0;
+    line-height: 100%;
+    .round {
+      background: #0094ff;
+      border-radius: 100%;
+      width: 0.1rem;
+      height: 0.1rem;
+      display: inline-block;
+      vertical-align: middle;
+    }
     i {
       font-style: normal;
       color: #999;
@@ -60,19 +121,29 @@ export default {
     &.not-first {
       i {
         text-decoration: none;
-        color: #ff6060;
+        color: #000;
       }
     }
   }
 
   .confirm-wrap {
     display: flex;
-    border-top: 1px solid #f7f7f7;
-
+    padding:0 0.1rem 0.4rem;
+    justify-content: space-around;
     .btn {
       flex: 1;
-      padding: 0.28rem 0;
-
+      padding:.22rem;
+      text-align: center;
+      width: 3rem;
+      min-width: 3rem;
+      max-width: 3rem;
+      box-sizing: border-box;
+      border-radius: 0.6rem;
+      font-size: .3rem;
+      &.grey {
+        background: #f2f2f2;
+        color: #aaa;
+      }
       &.btn-confirm {
         background: rgba($color: #32a1ff, $alpha: 0.8);
         color: #fff;
@@ -80,4 +151,4 @@ export default {
     }
   }
 }
-</style>
+</style>

+ 2 - 2
src/components/reader/bus.js

@@ -26,8 +26,8 @@ function parseQueryString(url) {
 const preset = {
   font: {
     default: localStorage.getItem("font")
-      ? isNumber(localStorage.getItem("font"), 19)
-      : (window.options && +window.options.font_size) || 19,
+      ? isNumber(localStorage.getItem("font"), 21)
+      : (window.options && +window.options.font_size) || 21,
     max: 36,
     min: 12
   },

+ 3 - 3
src/router/index.js

@@ -48,7 +48,6 @@ const RecordSend = () => import("../view/record-send.vue");
 const Sign = () => import("../view/sign.vue");
 const BookLimitFree = () => import("../view/book-limit-free.vue");
 const Coupon = () => import("../view/my_coupon.vue");
-
 // import test from '../view/test.vue'
 
 Vue.use(Router);
@@ -66,10 +65,11 @@ function generateRoute(routes) {
     const route = {
       path: val[0].path,
       name: val[0].name,
-      component: val[1]
+      component: val[1],
     };
     if (val[0].meta) route.meta = val[0].meta;
     if (val[0].redirect) route.redirect = val[0].redirect;
+    if (val[0].alias) route.alias = val[0].alias;
     if (val[2]) route.children = generateRoute(val[2]);
     return route;
   });
@@ -106,10 +106,10 @@ const router = new Router({
     [namespace.RecordSend, RecordSend],
     [namespace.Undertheshelf, Undertheshelf],
     [namespace.Sign, Sign],
+    [namespace.Coupon,Coupon],
     [namespace.HelpPayQrcode, HelpPayQrcode],
     [namespace.HelpPay, HelpPay],
     [namespace.BookShare, BookShare],
-    [namespace.Coupon,Coupon],
     [namespace.HelpShareQrcode, HelpShareQrcode],
     [namespace.Report, Report],
     [namespace.PhoneBinding, PhoneBinding],

+ 7 - 0
src/theme/view/book-limit-free.scss

@@ -52,6 +52,13 @@ $namespace: "book-limit-free";
       margin-top: 0.4rem;
     }
 
+    .empty-text {
+      text-align: center;
+      margin-top: 5px;
+      font-size: 0.28rem;
+      color: #999;
+    }
+
     .book-item {
       &:not(:last-child) {
         margin-bottom: 0.3rem;

+ 1 - 0
src/theme/view/book-recommend.scss

@@ -9,6 +9,7 @@ $namespace: "book-recommend";
   }
   .book-city-recommend-two__intro {
     color: $--font-color-light;
+    @include multi-line(4);
   }
 }
 @include b(head) {

+ 69 - 19
src/theme/view/pay.scss

@@ -7,25 +7,73 @@ $namespace: "pay";
   border-radius: $--radius;
 }
 
+@include b(line) {
+  height: 0.2rem;
+  background-color: #f5f5f5;
+  margin-left: -0.24rem;
+  margin-right: -0.24rem;
+}
+
+@include b(type) {
+  margin-bottom: .3rem;
+  .title {
+    height: 1rem;
+    line-height: 1rem;
+    font-size: 0.28rem;
+  }
+  @include e(list) {
+    display: flex;
+    justify-content: space-between;
+  }
+  @include e(item) {
+    &:first-child {
+      margin-right: 0.3rem;
+    }
+    &.cur{
+      border: 1px solid #EF5952;
+    }
+    padding: 0 0.3rem;
+    border-radius: 0.12rem;
+    border: 1px solid #E5E5E5;
+    height: 1rem;
+    display: flex;
+    align-items: center;
+    flex: 1;
+    font-size: .28rem;
+    .name{
+      flex-grow:1;
+    }
+    .icon {
+      width: 0.6rem;
+      height: 0.6rem;
+      margin-right: .14rem;
+    }
+    .check-img{
+      width: .32rem;
+      height: .32rem;
+    }
+  }
+}
+
 @include b(coupon) {
   display: flex;
-  margin: .2rem 0;
-  height: .5rem;
-  line-height: .5rem;
+  margin-top: 0.2rem;
+  height: 1rem;
+  line-height: 1rem;
   align-items: center;
   justify-content: space-between;
-
+  border-top: 1px solid #f5f5f5;
   @include e(img) {
     display: flex;
     align-items: center;
     height: 100%;
-    font-size: .26rem;
+    font-size: 0.26rem;
 
     img {
-      width: .408rem;
-      height: .312rem;
+      width: 0.408rem;
+      height: 0.312rem;
       display: inline-block;
-      margin-right: .16rem;
+      margin-right: 0.16rem;
     }
   }
 
@@ -35,8 +83,8 @@ $namespace: "pay";
     color: #999;
 
     img {
-      width: .12rem;
-      margin-left: .14rem;
+      width: 0.12rem;
+      margin-left: 0.14rem;
     }
   }
 }
@@ -265,9 +313,11 @@ $namespace: "pay";
   font-size: $--font-size-large;
   box-shadow: 0 0 0.16rem rgba($--color-theme-girl, 0.5);
   text-align: center;
-  background: linear-gradient(to right,
-      darken($--color-theme-girl, 3%),
-      lighten($--color-theme-girl, 3%));
+  background: linear-gradient(
+    to right,
+    darken($--color-theme-girl, 3%),
+    lighten($--color-theme-girl, 3%)
+  );
   color: #fff;
 }
 
@@ -412,9 +462,11 @@ $namespace: "pay";
     font-size: $--font-size-big;
     box-shadow: 0 0 0.16rem rgba(#ef5952, 0.53);
     text-align: center;
-    background: linear-gradient(to right,
-        darken(#ff591f, 3%),
-        lighten(#ff1a1a, 3%));
+    background: linear-gradient(
+      to right,
+      darken(#ff591f, 3%),
+      lighten(#ff1a1a, 3%)
+    );
     color: #fff;
     font-weight: bold;
     margin: 0;
@@ -521,6 +573,4 @@ $namespace: "pay";
       height: 1.8rem;
     }
   }
-
-  
-}
+}

+ 16 - 6
src/theme/view/person.scss

@@ -8,8 +8,8 @@ $namespace: "person";
     @include flex($direction: column);
   }
   @include e(username) {
-    margin:.12rem 0 .08rem;
-    color:#4d4d4d;
+    margin: 0.12rem 0 0.08rem;
+    color: #4d4d4d;
   }
   @include e(id) {
     display: flex;
@@ -50,7 +50,7 @@ $namespace: "person";
       no-repeat center / 100%;
     box-sizing: border-box;
     padding: 0.04rem 0.42rem 0.37rem;
-    margin-top:.1rem;
+    margin-top: 0.1rem;
     width: 5.45rem;
     height: 1.14rem;
     @include flex($space: space-around);
@@ -78,11 +78,10 @@ $namespace: "person";
       margin-left: 1rem;
       border-color: #e6e6e6;
     }
-
   }
   @include e(buyvip) {
-    width:92%;
-    margin:0 auto;
+    width: 92%;
+    margin: 0 auto;
     display: block;
   }
   @include e(icon) {
@@ -137,3 +136,14 @@ $namespace: "person";
     padding-right: 0.18rem;
   }
 }
+
+.clear-cache {
+  margin: 0.4rem auto 0;
+  font-size: $--font-size-medium;
+  color: $--font-color-light;
+  text-align: center;
+  width: 2rem;
+  border: 1px solid #999;
+  border-radius: 0.1rem;
+  padding: 0.1rem 0;
+}

+ 0 - 28
src/theme/view/reader.scss

@@ -17,34 +17,6 @@
     margin: auto;
   }
 }
-.pop-activity{
-  position: fixed;
-  background-color: rgba(0,0,0,.6);
-  display: flex;
-  justify-content: center;
-  flex-direction: column;
-  align-items: center;
-  width:100%;
-  height:100%;
-  top:0;
-  left:0;
-  z-index:99;
-  a{
-    display: block;
-    width:5.5rem;
-    img{
-      width: 100%;
-    }
-  }
-  i{
-    display: block;
-    width: .7rem;
-    height: .7rem;
-    margin-top:.3rem;
-    background-image:url('../../assets/close_icon.png') ;
-    background-size: cover;
-  }
-}
 .fans-banner {
   position: relative;
   margin: 0.8em 0.24rem 0;

+ 1 - 0
src/util/development.js

@@ -18,6 +18,7 @@ if (process.env.NODE_ENV === "development") {
     showDaiChong: true,
     sex: 0,
     fission: 0,
+    adjust_pay_page:1,
     channel_activities: {
       shall_reward: 0,
       amount: 500,

+ 10 - 1
src/view/book-catalog.vue

@@ -2,7 +2,7 @@
  * @Author: ZhengXiaowei
  * @Date: 2019-07-12 09:47:32
  * @LastEditors: 晓晓晓晓晓丶vv
- * @LastEditTime: 2020-07-23 11:15:25
+ * @LastEditTime: 2020-09-14 17:37:28
  * @Description: file content
  -->
 <template>
@@ -79,6 +79,7 @@ export default {
     return {
       Reader: Reader.name,
       catalogs: [],
+      inLoadData: false,
       isLoadLast: false,
       popupVisible: false,
       balance: 0,
@@ -216,12 +217,15 @@ export default {
       }
     },
     loadMore() {
+      if (this.inLoadData) return;
+      this.inLoadData = true;
       if (this.isLoadLast) return;
       let page = this.meta.current_page;
       getCatalog(this.$route.query.id, page + 1).then((r) => {
         this.catalogs.push(...r.data);
         this.meta = r.meta;
         this.isLoadLast = r.meta.current_page === r.meta.last_page;
+        this.inLoadData = false;
       });
     },
   },
@@ -229,6 +233,11 @@ export default {
     if (catalog) {
       this.catalogs = catalog.data;
       this.meta = catalog.meta;
+      if (this.catalogs.length > catalog.meta.per_page) {
+        this.meta.current_page = Math.ceil(
+          this.catalogs.length / catalog.meta.per_page
+        );
+      }
       this.active = catalog.meta.current_page;
       let end = catalog.meta.last_page;
       let total = catalog.meta.total;

+ 2 - 2
src/view/book-city.vue

@@ -144,7 +144,7 @@
 
       </template>
     </div>
-    <div class="book-city-rank">
+    <!-- <div class="book-city-rank">
       <div class="section-title section-edge">排行榜</div>
       <div class="book-city-rank__types">
         <v-touch @tap="rankChange(1)"
@@ -182,7 +182,7 @@
           </router-link>
         </mt-tab-container-item>
       </mt-tab-container>
-    </div>
+    </div> -->
     <x-footer></x-footer>
   </div>
 </template>

+ 75 - 47
src/view/book-detail.vue

@@ -1,74 +1,98 @@
 <!--
  * @Author: ZhengXiaowei
  * @Date: 2019-05-14 09:41:22
- * @LastEditors: 晓晓晓晓晓丶vv
- * @LastEditTime: 2020-03-25 11:56:51
+ * @LastEditors: Please set LastEditors
+ * @LastEditTime: 2021-06-28 16:25:10
  * @Description: file content
  -->
 <template>
-  <div class="book-detail disable-copy"
-       v-if="test">
+  <div class="book-detail disable-copy" v-if="test">
     <x-header>
-      <span class="single-line">{{book.name}}</span>
+      <span class="single-line">{{ book.name }}</span>
     </x-header>
-    <x-book :book="book"
-            :prevent="true"
-            class="book-detail-book"
-            multi
-            width="1.8rem">
-      <p class="x-book-info__name">{{book.name}}</p>
+    <x-book
+      :book="book"
+      :prevent="true"
+      class="book-detail-book"
+      multi
+      width="1.8rem"
+    >
+      <p class="x-book-info__name">{{ book.name }}</p>
       <p class="x-book-info__author">
-        <span>{{book.book_category}}</span>
-        <span class="red x-book-info__status">{{book.book_end_status ? '完结' : '连载'}}</span>
+        <span>{{ book.book_category }}</span>
+        <span class="red x-book-info__status">{{
+          book.book_end_status ? "完结" : "连载"
+        }}</span>
       </p>
-      <p class="x-book-info__count">字数:{{book.book_word_count}}</p>
+      <p class="x-book-info__count">字数:{{ book.book_word_count }}</p>
       <div class="book-detail-handle">
-        <div class="book-detail-handle__btn book-detail-handle__add"
-             @click="addBookshelf">
-          {{book.is_on_user_shelf ? '已' : ''}}加入书架
+        <div
+          class="book-detail-handle__btn book-detail-handle__add"
+          @click="addBookshelf"
+        >
+          {{ book.is_on_user_shelf ? "已" : "" }}加入书架
         </div>
-        <div @click="readBook(book.first_cid)"
-             class="book-detail-handle__read book-detail-handle__btn">
+        <div
+          @click="readBook(book.first_cid)"
+          class="book-detail-handle__read book-detail-handle__btn"
+        >
           立即阅读
         </div>
       </div>
     </x-book>
     <div class="book-detail-intro">
-      <span @click="debug">{{ extended ? book.intro : book.intro.slice(0,110)}}</span>
-      <v-touch class="book-detail-extend"
-               tag="span"
-               @tap="introExtend"
-               v-if="!extended">展开</v-touch>
+      <span @click="debug">{{
+        extended ? book.intro : book.intro.slice(0, 110)
+      }}</span>
+      <v-touch
+        class="book-detail-extend"
+        tag="span"
+        @tap="introExtend"
+        v-if="!extended"
+        >展开</v-touch
+      >
     </div>
-    <router-link :to="{ name: Reader.name, query:{ bid: book.book_id,cid: book.last_cid } }"
-                 tag="div"
-                 class="book-detail-lastest">最新章节:{{book.last_chapter}}</router-link>
+    <router-link
+      :to="{
+        name: Reader.name,
+        query: { bid: book.book_id, cid: book.last_cid }
+      }"
+      tag="div"
+      class="book-detail-lastest"
+      >最新章节:{{ book.last_chapter }}</router-link
+    >
     <div class="section-title section-edge-all">
       <span>目录</span>
-      <span class="book-catalog-total">共{{book.book_chapter_total}}章</span>
-      <span class="book-catalog-update">{{book.last_update_time}}</span>
+      <span class="book-catalog-total">共{{ book.book_chapter_total }}章</span>
+      <span class="book-catalog-update">{{ book.last_update_time }}</span>
     </div>
     <div class="book-catalog-list">
-      <router-link class="book-catalog-item"
-                   :to="{ name: Reader.name, query:{ bid: v.bid,cid: v.chapter_id } }"
-                   v-for="v in catalogs"
-                   :key="v.chapter_id">
-        <span class="book-catalog-item__name">{{v.chapter_name}}</span>
-        <img v-if="v.chapter_is_vip"
-             src="../assets/书库-vip.png"
-             class="book-catalog-item__vip">
+      <router-link
+        class="book-catalog-item"
+        :to="{ name: Reader.name, query: { bid: v.bid, cid: v.chapter_id } }"
+        v-for="v in catalogs"
+        :key="v.chapter_id"
+      >
+        <span class="book-catalog-item__name">{{ v.chapter_name }}</span>
+        <img
+          v-if="v.chapter_is_vip"
+          src="../assets/书库-vip.png"
+          class="book-catalog-item__vip"
+        />
       </router-link>
     </div>
-    <router-link tag="div"
-                 :to="BookCatalog"
-                 class="book-detail-more">更多目录 > </router-link>
-    <div class="section-title section-edge-all"> 同款推荐 </div>
+    <router-link tag="div" :to="BookCatalog" class="book-detail-more"
+      >更多目录 >
+    </router-link>
+    <div class="section-title section-edge-all">同款推荐</div>
     <div class="book-detail-recommend section-edge-all">
-      <x-book v-for="book in recommend"
-              :book="book"
-              :key="book.book_id"
-              prevent
-              @click="toSimilar(book.book_id)"></x-book>
+      <x-book
+        v-for="book in recommend"
+        :book="book"
+        :key="book.book_id"
+        prevent
+        @click="toSimilar(book.book_id)"
+      ></x-book>
     </div>
   </div>
 </template>
@@ -199,9 +223,13 @@ export default {
       });
   },
   beforeRouteEnter(to, from, next) {
+    let pos;
+    if (to.params && to.params.pos) {
+      pos = to.params.pos;
+    }
     let id = to.query.id;
     if (!id) next({ path: "/", replace: true });
-    getDetail(id, "detail")
+    getDetail(id, "detail", pos)
       .catch(e => {
         let replace_url = e.data.data.url + location.pathname + location.search;
         location.replace(replace_url);

+ 37 - 29
src/view/book-limit-free.vue

@@ -2,33 +2,40 @@
   <div class="book-limit-free-page">
     <x-header>
       <div class="book-limit-free-header">
-        <p :class="['header-item', {'is-active': header.value === active}]"
-           v-for="header in headers"
-           :key="header.value"
-           @click="onTabChange(header)">{{header.label}}</p>
+        <p
+          :class="['header-item', { 'is-active': header.value == active }]"
+          v-for="header in headers"
+          :key="header.value"
+          @click="onTabChange(header)"
+        >
+          {{ header.label}}
+        </p>
       </div>
     </x-header>
     <div class="book-limit-free-body">
-      <p class="limit-tip"
-         v-if="limit">限免结束时间:{{limit}}</p>
+      <p class="limit-tip" v-if="limit">限免结束时间:{{ limit }}</p>
       <div class="book-list-wrap">
         <template v-if="!isNotEmpty">
-          <img class="empty"
-               src="https://cdn-novel.bookkks.com/static/img/empty_bg.jpg"
-               alt="">
+          <img
+            class="empty"
+            src="https://cdn-novel.bookkks.com/static/img/empty_bg_02.jpg"
+            alt=""
+          />
+          <p class="empty-text">小编正在加急上架中,请耐心等待~</p>
         </template>
         <template v-else>
           <template v-for="book in books[active] ? books[active].list : []">
-            <x-book class="book-item"
-                    :book="book"
-                    :key="book.book_id"
-                    width="1.5rem"
-                    multi>
-              <p class="status"
-                 slot="shadow">免费</p>
+            <x-book
+              class="book-item"
+              :book="book"
+              :key="book.book_id"
+              width="1.5rem"
+              multi
+            >
+              <p class="status" slot="shadow">免费</p>
               <div class="book-info">
-                <p class="name">{{book.book_name}}</p>
-                <p class="intro">{{book.book_summary}}</p>
+                <p class="name">{{ book.book_name }}</p>
+                <p class="intro">{{ book.book_summary }}</p>
               </div>
             </x-book>
           </template>
@@ -47,14 +54,14 @@ export default {
     headers: [
       {
         label: "女生",
-        value: 1,
+        value: 1
       },
       {
         label: "男生",
-        value: 0,
-      },
+        value: 0
+      }
     ],
-    books: [],
+    books: []
   }),
   computed: {
     limit() {
@@ -64,27 +71,28 @@ export default {
     isNotEmpty() {
       const book = this.books[this.active];
       return book ? book.list.length : 0;
-    },
+    }
   },
   methods: {
     onTabChange(item) {
       this.active = item.value;
     },
     initFreeBooks() {
-      getBookLimitFree().then((r) => {
-        this.books = r.map((item) => {
-          let list = item.list.map((item2) => {
+      getBookLimitFree().then(r => {
+        this.books = r.map(item => {
+          let list = item.list.map(item2 => {
             return Object.assign(item2, {
-              cover: item2.cover_url,
+              cover: item2.cover_url
             });
           });
           return Object.assign(item, { list });
         });
       });
-    },
+    }
   },
   created() {
+    this.active = this.$parent.theme == "boy" ? 0 : 1;
     this.initFreeBooks();
-  },
+  }
 };
 </script>

+ 6 - 5
src/view/book-recent.vue

@@ -82,15 +82,15 @@
                   color="#32a1ff"></mt-spinner>
     </div>
     <x-footer></x-footer>
-    <div class="free-entry"
+    <!-- <div class="free-entry"
          v-if="showFreeEntry">
       <img src="../assets/recent-free__entry.png"
            alt=""
            @click="toFreePage">
-    </div>
+    </div> -->
     <div class="free-entry activity-entry"
          style="top: 70%"
-         v-if="activity_link.url">
+         v-if="activity_link && activity_link.url">
       <img :src="activity_link.image"
            alt=""
            @click="tapActivity">
@@ -197,6 +197,7 @@ export default {
         this.$router.push({
           name: BookDetail.name,
           query: { id: book.book_id },
+          params:{pos:'recent_banner'}
         });
       }
       this.is_click = true;
@@ -231,8 +232,8 @@ export default {
   font-size: 0;
 
   img {
-    width: 1.4rem;
-    height: 1.4rem;
+    width: 1.72rem;
+    height: 1.72rem;
   }
 }
 </style>

+ 58 - 31
src/view/book-recommend.vue

@@ -1,18 +1,38 @@
 <template>
   <div class="book-recommend" v-show="init">
-    <div :class="['book-recommend-head', {'no-complate':book.book_end_status === 0}]">
+    <div
+      :class="[
+        'book-recommend-head',
+        { 'no-complate': book.book_end_status === 0 }
+      ]"
+    >
       <template v-if="book.book_end_status === 1">
-        <img class="book-recommend-head__img--complete"
-             src="https://cdn-novel.bookkks.com/h5/complete.png"
-             alt="完结">
+        <img
+          class="book-recommend-head__img--complete"
+          src="https://cdn-novel.bookkks.com/h5/complete.png"
+          alt="完结"
+        />
         <p class="book-recommend-head__font">本书已经看完啦</p>
       </template>
       <template v-else-if="book.book_end_status === 0">
-        <img class="book-recommend-head__img--nocomplete"
-             src="https://cdn-novel.bookkks.com/static/img/nocompletev2.jpg"
-             alt="未完结">
-        <img v-if="pushMoreStatus" class="book-push-more" src="../assets/push-more.png" alt="" @click="upgBookStatus">
-        <img v-else class="book-push-more book-push-more-suc" src="../assets/push-more-suc.png" alt="">
+        <img
+          class="book-recommend-head__img--nocomplete"
+          src="https://cdn-novel.bookkks.com/static/img/nocompletev2.jpg"
+          alt="未完结"
+        />
+        <img
+          v-if="pushMoreStatus"
+          class="book-push-more"
+          src="../assets/push-more.png"
+          alt=""
+          @click="upgBookStatus"
+        />
+        <img
+          v-else
+          class="book-push-more book-push-more-suc"
+          src="../assets/push-more-suc.png"
+          alt=""
+        />
         <!-- <p class="book-recommend-head__font">本书未完</p>
         <p class="book-recommend-head__font">敬请期待后续更新</p> -->
       </template>
@@ -20,38 +40,45 @@
     <div class="book-recommend-body">
       <div class="book-recommend-title section-edge">
         <span class="book-recommend-title__text">作者推荐</span>
-        <span class="book-recommend-title__more"
-              @click="updateList">
+        <span class="book-recommend-title__more" @click="updateList">
           换一换
-          <i class="icon loading-1"
-             :class="{'is-rotate': loading}"></i>
+          <i class="icon loading-1" :class="{ 'is-rotate': loading }"></i>
         </span>
       </div>
-      <x-book class="book-recommend-headline section-edge-all"
-              :prevent="loading"
-              :key="list[0].book_id"
-              :book="list[0]"
-              multi @click="ClickStatistics(list[0].book_id)">
-        <p class="book-city-recommend-two__title">{{list[0].name}}</p>
-        <p class="book-city-recommend-two__intro">{{list[0].intro}}</p>
+      <x-book
+        class="book-recommend-headline section-edge-all"
+        :prevent="loading"
+        :key="list[0].book_id"
+        :book="list[0]"
+        multi
+        @click="ClickStatistics(list[0].book_id)"
+      >
+        <p class="book-city-recommend-two__title">{{ list[0].name }}</p>
+        <p class="book-city-recommend-two__intro">{{ list[0].intro }}</p>
       </x-book>
       <div class="book-recommend-other section-edge-all">
-        <x-book v-for="book in list.slice(1)"
-                :prevent="loading"
-                :key="book.book_id"
-                :book="book" @click="ClickStatistics(book.book_id)"></x-book>
+        <x-book
+          v-for="book in list.slice(1)"
+          :prevent="loading"
+          :key="book.book_id"
+          :book="book"
+          @click="ClickStatistics(book.book_id)"
+        ></x-book>
       </div>
       <router-link :to="BookCity">
-        <input class="book-recommend-btn"
-               type="button"
-               value="去首页">
+        <input class="book-recommend-btn" type="button" value="去首页" />
       </router-link>
     </div>
   </div>
 </template>
 <script>
 import { BookRecommend, BookCity } from "./namespace.js";
-import { getReadOverRecommend, getDetail,getbookFromWhere, upgBookStatus } from "../api";
+import {
+  getReadOverRecommend,
+  getDetail,
+  getbookFromWhere,
+  upgBookStatus
+} from "../api";
 export default {
   name: BookRecommend.name,
   data() {
@@ -65,8 +92,8 @@ export default {
     };
   },
   methods: {
-    ClickStatistics(bid){
-      getbookFromWhere(bid,"readerover")
+    ClickStatistics(bid) {
+      getbookFromWhere(bid, "readerover");
     },
     getList() {
       this.loading = true;
@@ -84,7 +111,7 @@ export default {
     upgBookStatus() {
       upgBookStatus(this.book.book_id).then(() => {
         this.pushMoreStatus = 0;
-      })
+      });
     }
   },
   created() {

+ 6 - 0
src/view/coupon.vue

@@ -0,0 +1,6 @@
+<template>
+  <div class="coupon-page">
+    <x-header />
+    优惠券
+  </div>
+</template>

+ 7 - 6
src/view/help-pay-qrcode.vue

@@ -43,15 +43,15 @@ export default {
       qrImg: "",
       info: {
         head_img: "",
-        nickname: ""
+        nickname: "",
       },
       defaultHead: require("../assets/default.png"),
-      qrcode: ""
+      qrcode: "",
     };
   },
   async mounted() {
     let { product_id } = this.$route.query;
-    await getSubstitutePay(product_id).then(r => {
+    await getSubstitutePay(product_id).then((r) => {
       this.info = r;
       new QRCode(document.querySelector(".qr-wrapper2 .qr-img"), {
         text: r.help_pay_page,
@@ -59,19 +59,20 @@ export default {
         height: 120,
         colorDark: "#000000",
         colorLight: "#ffffff",
-        correctLevel: 2
+        correctLevel: 2,
+        scale: 2,
       });
     });
     this.$Indicator.open("正在生成中....");
     this.$nextTick(() => {
-      html2canvas(document.querySelector(".qr-wrapper2")).then(canvas => {
+      html2canvas(document.querySelector(".qr-wrapper2")).then((canvas) => {
         this.$Indicator.close();
         this.$Toast("代付二维码生成成功!");
         this.qrImg = canvas.toDataURL("image/jpeg");
         document.querySelector(".qr-wrapper2").remove();
       });
     });
-  }
+  },
 };
 </script>
 

+ 2 - 2
src/view/my_coupon.vue

@@ -9,7 +9,7 @@
           </p>
           <div class="coupon-item__info">
             <div class="info-amount">
-              <p class="title">{{ coupon.use_condition }}元可用</p>
+              <p class="title">大于{{ coupon.use_condition }}元可用</p>
               <p class="desc">
                 {{ coupon.expire_time && coupon.expire_time.slice(0, 16) }}到期
               </p>
@@ -52,7 +52,7 @@
               </p>
               <div class="coupon-item__info">
                 <div class="info-amount">
-                  <p class="title">{{ coupon.use_condition }}元可用</p>
+                  <p class="title">大于{{ coupon.use_condition }}元可用</p>
                   <p class="desc">
                     {{
                       coupon.expire_time && coupon.expire_time.slice(0, 16)

+ 11 - 12
src/view/namespace.js

@@ -15,7 +15,14 @@ export const BookStock = {
   route: { name: "BookStock" },
   path: "/stock"
 };
-
+export const Coupon = {
+  name: "Coupon",
+  meta: {
+    Chinese: "优惠券"
+  },
+  route: { name: "Coupon" },
+  path: "/coupon"
+};
 export const Rank = {
   name: "Rank",
   meta: {
@@ -47,7 +54,8 @@ export const Reader = {
     Chinese: "阅读器"
   },
   route: { name: "Reader" },
-  path: "/reader"
+  path: "/reader",
+  alias:"/reader/:str"
 };
 
 export const BookDetail = {
@@ -106,7 +114,7 @@ export const RecordOrder = {
 export const RecordSend = {
   name: "RecordSend",
   meta: {
-    Chinese: "赠送记录"
+    Chinese: "书币详情"
   },
   route: { name: "RecordSend" },
   path: "/record/send"
@@ -183,15 +191,6 @@ export const Sign = {
   path: "/sign"
 };
 
-export const Coupon = {
-  name: "Coupon",
-  meta: {
-    Chinese: "优惠券"
-  },
-  route: { name: "Coupon" },
-  path: "/coupon"
-};
-
 export const HelpPayQrcode = {
   name: "HelpPayQrcode",
   meta: {

+ 61 - 45
src/view/pay.vue

@@ -11,38 +11,55 @@
     <x-header></x-header>
     <template v-if="!xiyue_pay_template">
       <div class="section-edge-all">
-        <div class="pay-account">
-          您的余额:
-          <span class="red">{{ balance }}</span>
-          书币
-          <span
-            :class="[
-              'red',
-              { 'no-enough-money': showPayYearBanner || showSpecialPayTempalte }
-            ]"
-            v-if="showTip"
-            >{{
-              showPayYearBanner || showSpecialPayTempalte ? "" : "(余额不足)"
-            }}</span
+        <template v-if="adjust_pay_page && showBookTip">
+          <div class="pay-account" style="font-size:14px">
+            您的余额:<span class="red">{{ balance }}</span
+            >书币,<span v-if="balance > 0"
+              >本书全本购买需要:<span class="red">{{ $route.query.fee }}</span
+              >书币</span
+            >
+          </div>
+          <div class="pay-explain">
+            您的余额不足,请点击下方充值
+          </div>
+        </template>
+        <template v-else>
+          <div class="pay-account">
+            您的余额:
+            <span class="red">{{ balance }}</span>
+            书币
+            <span
+              :class="[
+                'red',
+                {
+                  'no-enough-money': showPayYearBanner || showSpecialPayTempalte
+                }
+              ]"
+              v-if="showTip"
+              >{{
+                showPayYearBanner || showSpecialPayTempalte ? "" : "(余额不足)"
+              }}</span
+            >
+          </div>
+          <div class="pay-fee" v-if="showTip && !showChapterConsume">
+            <template v-if="isFirstPay">
+              <p v-html="isFirstPay"></p>
+            </template>
+            <template v-else>
+              {{ showBookTip ? "此书全本" : "当前章节" }}需要消耗
+              <span class="red">{{ $route.query.fee }}</span
+              >书币
+            </template>
+          </div>
+          <div
+            class="pay-explain"
+            v-if="!showPayYearBanner && !showSpecialPayTempalte"
           >
-        </div>
-        <div class="pay-fee" v-if="showTip && !showChapterConsume">
-          <template v-if="isFirstPay">
-            <p v-html="isFirstPay"></p>
-          </template>
-          <template v-else>
-            {{ showBookTip ? "此书全本" : "当前章节" }}需要消耗
-            <span class="red">{{ $route.query.fee }}</span
-            >书币
-          </template>
-        </div>
-        <div
-          class="pay-explain"
-          v-if="!showPayYearBanner && !showSpecialPayTempalte"
-        >
-          选择充值金额
-          <span class="red">(1元=100书币)</span>
-        </div>
+            选择充值金额
+            <span class="red">(1元=100书币)</span>
+          </div>
+        </template>
+
         <div class="pay-coupon">
           <p class="pay-coupon__img">
             <img src="../assets/coupon _pay.png" />优惠券
@@ -131,7 +148,7 @@
                   <p class="pay-product__name">{{ v.price }}</p>
                   <p class="pay-product__intro">{{ v.text }}</p>
                   <p class="pay-product__intro cheaper-box" v-if="v.save_text">
-                    <span class="text" v-if="!v.is_year_order">省</span>
+                    <span class="text" v-if="v.type=='TICKET_RECHARGE' || v.type=='NEW_USER'">省</span>
                     <span class="text" v-else><i class="is_year"></i></span>
                     <span>{{ v.save_text }}</span>
                   </p>
@@ -168,7 +185,7 @@
                       class="pay-product__intro cheaper-box"
                       v-if="v.save_text"
                     >
-                      <span class="text" v-if="!v.is_year_order">省</span>
+                      <span class="text" v-if="v.type=='TICKET_RECHARGE' || v.type=='NEW_USER'">省</span>
                       <span class="text" v-else><i class="is_year"></i></span>
                       <span>{{ v.save_text }}</span>
                     </p>
@@ -194,7 +211,7 @@
                         class="pay-product__intro cheaper-box"
                         v-if="v.save_text"
                       >
-                        <span class="text" v-if="!v.is_year_order">省</span>
+                        <span class="text" v-if="v.type=='TICKET_RECHARGE' || v.type=='NEW_USER'">省</span>
                         <span class="text" v-else><i class="is_year"></i></span>
                         <span>{{ v.save_text }}</span>
                       </p>
@@ -234,7 +251,7 @@
                   <p class="pay-product__name">{{ v.price }}</p>
                   <p class="pay-product__intro">{{ v.text }}</p>
                   <p class="pay-product__intro cheaper-box" v-if="v.save_text">
-                    <span class="text" v-if="!v.is_year_order">省</span>
+                    <span class="text" v-if="v.type=='TICKET_RECHARGE' || v.type=='NEW_USER'">省</span>
                     <span class="text" v-else><i class="is_year"></i></span>
                     <span>{{ v.save_text }}</span>
                   </p>
@@ -296,9 +313,7 @@
               请好友代充
             </div>
             <div class="pay-btn" @click="pay">
-              {{
-                chargePrice ? "¥" + (chargePrice - currentCoupon.price) : ""
-              }}立即充值
+              立即充值
             </div>
           </div>
         </template>
@@ -373,7 +388,7 @@
                 <p class="pay-product__name">{{ v.price }}</p>
                 <p class="pay-product__intro">{{ v.text }}</p>
                 <p class="pay-product__intro cheaper-box" v-if="v.save_text">
-                  <span class="text" v-if="!v.is_year_order">省</span>
+                  <span class="text" v-if="v.type=='TICKET_RECHARGE' || v.type=='NEW_USER'">省</span>
                   <span class="text" v-else><i class="is_year"></i></span>
                   <span>{{ v.save_text }}</span>
                 </p>
@@ -407,7 +422,7 @@
             </p>
             <div class="coupon-item__info">
               <div class="info-amount">
-                <p class="title">{{ coupon.use_condition }}元可用</p>
+                <p class="title">大于{{ coupon.use_condition }}元可用</p>
                 <p class="desc">
                   {{
                     coupon.expire_time && coupon.expire_time.slice(0, 16)
@@ -451,8 +466,9 @@ export default {
       prevRoute: null,
       loading: false,
       showTip: !!this.$route.query.code,
-      showBookTip: this.$route.query.code == 10020, //全本提醒true,单本提醒false
+      showBookTip: this.$route.query.code == 10020 || this.$route.query.code == 10019, //全本提醒true,单本提醒false
       isFirstPay: this.$route.query.first_pay_tip,
+      adjust_pay_page: !!window.options.adjust_pay_page,
       showHelpPay: window.options.showDaiChong,
       showChapterConsume: window.options.is_hide_chapter_consume,
       showAd_entry: false,
@@ -593,7 +609,7 @@ export default {
       this.currentCoupon = { id: "", price: 0 };
       this.isCouponChecked = false;
       this.availdCouponList = this.couponList.filter(
-        item => item.use_condition <= price
+        item => item.use_condition < price
       );
     },
     findMonthOrder() {
@@ -705,8 +721,8 @@ export default {
   z-index: 999;
 
   .help-pay__btn {
-    width: 2.1rem;
-    border-radius: 4px;
+    width: 3.2rem;
+    border-radius: 20px;
     border-color: #e6e6e6;
     color: #e6e6e6;
     height: 0.76rem;
@@ -720,7 +736,7 @@ export default {
     flex: 1;
     margin: 0;
     background: #ef5952;
-    border-radius: 4px;
+    border-radius: 20px;
     border: 1px solid #ef5952;
     height: 0.76rem;
     line-height: 0.76rem;

+ 11 - 4
src/view/person.vue

@@ -30,7 +30,7 @@
       <img src="https://cdn-novel.bookkks.com/h5/20191025_vip.jpg"
            @click="toBuyVip"
            class="person-entry__buyvip"
-           v-if="!user.is_vip" />
+           v-if="!user.is_vip && showBuyVip" />
       <template v-if="user.is_vip">
         <div class="person-entry__vip">
           <img class="person-entry__icon"
@@ -106,7 +106,7 @@
                    class="person-entry__send">
         <img class="person-entry__icon"
              src="../assets/个人中心-赠送记录.png" />
-        <span class="person-entry__text">赠送记录</span>
+        <span class="person-entry__text">书币详情</span>
         <img class="person-entry__arrow"
              src="../assets/个人中心-进入.png" />
       </router-link>
@@ -151,6 +151,8 @@
       </div>
       <hr />
     </div>
+    <p class="clear-cache"
+       @click="onClear">清除缓存</p>
   </div>
 </template>
 <script>
@@ -163,7 +165,7 @@ import {
   RecordSend,
   RecordSign,
   PhoneBinding,
-  Coupon
+  Coupon,
 } from "./namespace.js";
 import { getUserInfo } from "../api";
 import { Server } from "../components/prompt";
@@ -178,10 +180,12 @@ export default {
       RecordRecharge: RecordRecharge.route,
       RecordSend: RecordSend.route,
       RecordSign: RecordSign.route,
+      Coupon: Coupon.route,
       PhoneBinding: PhoneBinding.route,
-      Coupon:Coupon.route,
       xiyue_pay_template: window.options.xiyue_info,
       user: {},
+      showBuyVip:
+        window.options && window.options.hidden_personal_page_vip != 1,
     };
   },
   methods: {
@@ -211,6 +215,9 @@ export default {
         console.log(e);
       });
     },
+    onClear() {
+      location.href = "/reLogin";
+    },
   },
   created() {
     getUserInfo().then((r) => {

+ 1 - 0
src/view/rank_2.vue

@@ -89,6 +89,7 @@ export default {
     },
   },
   created() {
+    this.active = this.$parent.theme == "boy" ? 0 : 1;
     this.initRankBooks();
   },
 };

+ 227 - 189
src/view/reader.vue

@@ -1,25 +1,35 @@
-
 <template>
-  <div ref="reader-wrap"
-       :class="['reader', {'reader-fixed': five_template && !five_template_clicked}]">
-    <x-reader ref="reader"
-              :class="{'x-reader--subscribe':weakSubscribe,'x-reader--subscribe__qrcode':(subscribeQRcode&&!subscribeQRcodeHorizontal)||active}"
-              :text="text"
-              :ad="showAdStatus"
-              :adframe="showAdIframe"
-              :gift="true"
-              :shelf="is_on"
-              :showFans="showFans"
-              @route="go"
-              @addShelf="addShelf"
-              @next="next"
-              @prev="prev"
-              @direction="direction"
-              @horizontal-mounted="horizontalMounted"
-              @closeBanner="closeBanner"
-              @vertical-mounted="verticalMounted"
-              @show-gift="showGiftPopup"
-              @share="share">
+  <div
+    ref="reader-wrap"
+    :class="[
+      'reader',
+      { 'reader-fixed': five_template && !five_template_clicked }
+    ]"
+  >
+    <x-reader
+      ref="reader"
+      :class="{
+        'x-reader--subscribe': weakSubscribe,
+        'x-reader--subscribe__qrcode':
+          (subscribeQRcode && !subscribeQRcodeHorizontal) || active
+      }"
+      :text="text"
+      :ad="showAdStatus"
+      :adframe="showAdIframe"
+      :gift="true"
+      :shelf="is_on"
+      :showFans="showFans"
+      @route="go"
+      @addShelf="addShelf"
+      @next="next"
+      @prev="prev"
+      @direction="direction"
+      @horizontal-mounted="horizontalMounted"
+      @closeBanner="closeBanner"
+      @vertical-mounted="verticalMounted"
+      @show-gift="showGiftPopup"
+      @share="share"
+    >
       <!-- <template v-if="showGift">
         <v-touch class="send-gift">
           <v-touch class="send-gift__btn"
@@ -34,123 +44,148 @@
         </div>
       </template> -->
       <!-- 5元充值入口 -->
-      <div slot="top"
-           class="five_template_entry"
-           ref="five_template"
-           v-if="five_template && !five_template_clicked">
+      <div
+        slot="top"
+        class="five_template_entry"
+        ref="five_template"
+        v-if="five_template && !five_template_clicked"
+      >
         <v-touch @tap="tapFiveTemplate">
-          <img :src="five_template.banner"
-               alt="">
+          <img :src="five_template.banner" alt="" />
         </v-touch>
-        <v-touch tag="span"
-                 class="close-area"
-                 @tap="closeFiveTemplate"></v-touch>
-        <v-touch tag="span"
-                 class="close-text-area"
-                 @tap="closeFiveTemplate"></v-touch>
+        <v-touch
+          tag="span"
+          class="close-area"
+          @tap="closeFiveTemplate"
+        ></v-touch>
+        <v-touch
+          tag="span"
+          class="close-text-area"
+          @tap="closeFiveTemplate"
+        ></v-touch>
       </div>
       <!-- 弱关添加 -->
       <template v-if="weakSubscribe">
         <!-- 横版 -->
-        <v-touch v-if=" weakSubscribeHorizontal"
-                 v-show="!loading"
-                 key="weakSubscribeHorizontal"
-                 class="weak-subscribe-wrap--horizontal"
-                 :style="weakSubscribeStyle"
-                 @tap="weakSubscribeEv">
-          <p v-for="i in weakSubscribeHorizontalNum"
-             class="weak-subscribe--horizontal weak-subscribe"
-             :key="'weakSubscribeHorizontalText-'+i">{{weakSubscribeText[i%weakSubscribeText.length]}}</p>
+        <v-touch
+          v-if="weakSubscribeHorizontal"
+          v-show="!loading"
+          key="weakSubscribeHorizontal"
+          class="weak-subscribe-wrap--horizontal"
+          :style="weakSubscribeStyle"
+          @tap="weakSubscribeEv"
+        >
+          <p
+            v-for="i in weakSubscribeHorizontalNum"
+            class="weak-subscribe--horizontal weak-subscribe"
+            :key="'weakSubscribeHorizontalText-' + i"
+          >
+            {{ weakSubscribeText[i % weakSubscribeText.length] }}
+          </p>
         </v-touch>
 
         <!-- 竖版 -->
-        <v-touch v-else
-                 v-show="!loading"
-                 key="weakSubscribeVertical"
-                 @tap="weakSubscribeEv">
-          <p class="weak-subscribe--vertical weak-subscribe">{{ weakSubscribeTextRandom() }}</p>
+        <v-touch
+          v-else
+          v-show="!loading"
+          key="weakSubscribeVertical"
+          @tap="weakSubscribeEv"
+        >
+          <p class="weak-subscribe--vertical weak-subscribe">
+            {{ weakSubscribeTextRandom() }}
+          </p>
         </v-touch>
       </template>
 
       <template v-if="guidepersonalaccount && !crm_guide_pool">
         <!-- 微点需求 -->
-        <v-touch v-show="!loading"
-                 key="weakSubscribeVertical"
-                 @tap="wdQrcodeEv('text')">
-          <p class="weak-subscribe--vertical weak-subscribe">{{ guidepersonalaccount.title }}</p>
+        <v-touch
+          v-show="!loading"
+          key="weakSubscribeVertical"
+          @tap="wdQrcodeEv('text')"
+        >
+          <p class="weak-subscribe--vertical weak-subscribe">
+            {{ guidepersonalaccount.title }}
+          </p>
         </v-touch>
       </template>
 
       <!-- crm_guide_pool -->
       <template v-if="crm_guide_pool">
-        <v-touch v-show="!loading"
-                 key="weakSubscribeVertical"
-                 @tap="wdQrcodeEv('text')">
-          <p class="weak-subscribe--vertical weak-subscribe">{{ crm_guide_pool.title }}</p>
+        <v-touch
+          v-show="!loading"
+          key="weakSubscribeVertical"
+          @tap="wdQrcodeEv('text')"
+        >
+          <p class="weak-subscribe--vertical weak-subscribe">
+            {{ crm_guide_pool.title }}
+          </p>
         </v-touch>
       </template>
 
       <!-- 关注二维码 -->
-      <template v-if="subscribeQRcode&&isChannel123">
+      <template v-if="subscribeQRcode && isChannel123">
         <!-- 横版 -->
-        <v-touch class="subscribe-qrcode"
-                 v-if="subscribeQRcodeHorizontal"
-                 v-show="!loading"
-                 @tap="toSubscribe">
-          <img :src="subscribeQrcodeImg"
-               alt>
+        <v-touch
+          class="subscribe-qrcode"
+          v-if="subscribeQRcodeHorizontal"
+          v-show="!loading"
+          @tap="toSubscribe"
+        >
+          <img :src="subscribeQrcodeImg" alt />
         </v-touch>
         <!-- 竖版 -->
-        <v-touch class="subscribe-qrcode"
-                 slot="ufooter"
-                 v-show="!loading"
-                 @tap="toSubscribe"
-                 v-else>
-          <img :src="subscribeQrcodeImg"
-               alt>
+        <v-touch
+          class="subscribe-qrcode"
+          slot="ufooter"
+          v-show="!loading"
+          @tap="toSubscribe"
+          v-else
+        >
+          <img :src="subscribeQrcodeImg" alt />
         </v-touch>
       </template>
       <!-- 底部标题 -->
       <template v-if="text.push_title && text.push_title.length">
-        <v-touch slot="ufooter"
-                 class="title_list">
+        <v-touch slot="ufooter" class="title_list">
           <div class="title">猜你喜欢</div>
           <div class="title-list-box">
-            <v-touch class="title-item"
-                     v-for="(t, i) in text.push_title"
-                     :key="i"
-                     @tap="jumpNovel(t.link)">
-              <p>{{t.title}}</p>
-              <img :src="t.img"
-                   :alt="t.title">
+            <v-touch
+              class="title-item"
+              v-for="(t, i) in text.push_title"
+              :key="i"
+              @tap="jumpNovel(t.link)"
+            >
+              <p>{{ t.title }}</p>
+              <img :src="t.img" :alt="t.title" />
             </v-touch>
           </div>
         </v-touch>
       </template>
       <!-- 优先级最高 轮播显示 -->
       <template v-if="showPriorityAd && pddAdArr.length">
-        <mt-swipe slot="ufooter"
-                  v-show="!loading"
-                  class="reader-footer__banners">
-          <mt-swipe-item v-for="(ad, index) in pddAdArr"
-                         :key="index">
+        <mt-swipe
+          slot="ufooter"
+          v-show="!loading"
+          class="reader-footer__banners"
+        >
+          <mt-swipe-item v-for="(ad, index) in pddAdArr" :key="index">
             <v-touch @tap="pddActivity(index)">
-              <img v-lazy="ad['pic-url']"
-                   alt="">
+              <img v-lazy="ad['pic-url']" alt="" />
             </v-touch>
           </mt-swipe-item>
         </mt-swipe>
       </template>
       <!-- 活动添加 -->
       <template v-if="banners.length">
-        <mt-swipe slot="ufooter"
-                  v-show="!loading"
-                  class="reader-footer__banners">
-          <mt-swipe-item v-for="(b, index) in banners"
-                         :key="index">
+        <mt-swipe
+          slot="ufooter"
+          v-show="!loading"
+          class="reader-footer__banners"
+        >
+          <mt-swipe-item v-for="(b, index) in banners" :key="index">
             <v-touch @tap="activeEv(index)">
-              <img v-lazy="b.img"
-                   alt="">
+              <img v-lazy="b.img" alt="" />
             </v-touch>
           </mt-swipe-item>
         </mt-swipe>
@@ -175,14 +210,18 @@
       <!-- 底部评价功能 -->
       <template v-if="showComment">
         <div class="click-box">
-          <v-touch class="click-box__item"
-                   :class="[chooseTap==='dislike'?'cur': '']"
-                   @tap="uploadTap('dislike')">
+          <v-touch
+            class="click-box__item"
+            :class="[chooseTap === 'dislike' ? 'cur' : '']"
+            @tap="uploadTap('dislike')"
+          >
             <span class="tap-icon"></span>差评
           </v-touch>
-          <v-touch class="click-box__item"
-                   :class="[chooseTap==='favor'?'cur': '']"
-                   @tap="uploadTap('favor')">
+          <v-touch
+            class="click-box__item"
+            :class="[chooseTap === 'favor' ? 'cur' : '']"
+            @tap="uploadTap('favor')"
+          >
             <span class="zan-icon"></span>好看
           </v-touch>
         </div>
@@ -190,110 +229,116 @@
 
       <!-- 引导收藏 -->
       <template>
-        <v-touch class="click-toCollection"
-                 @tap="showCollectionWrap = true">&gt;&gt;点击此处,收藏本书&lt;&lt;</v-touch>
+        <v-touch class="click-toCollection" @tap="showCollectionWrap = true"
+          >&gt;&gt;点击此处,收藏本书&lt;&lt;</v-touch
+        >
       </template>
 
       <!-- 引导文字链 -->
       <template v-if="bannerSubText.title">
-        <v-touch class="click-toCollection"
-                 @tap="bannerSubEv">{{bannerSubText.title}}</v-touch>
+        <v-touch class="click-toCollection" @tap="bannerSubEv">{{
+          bannerSubText.title
+        }}</v-touch>
       </template>
 
       <template v-if="showShareEntry">
-        <v-touch class="to-share__entry"
-                 @tap="toShare">
-          <img src="../assets/share_entry.png"
-               alt="">
+        <v-touch class="to-share__entry" @tap="toShare">
+          <img src="../assets/share_entry.png" alt="" />
         </v-touch>
       </template>
 
       <template v-if="showAppad && isAndroid">
-        <v-touch slot="ufooter"
-                 class="active_img"
-                 @tap="toAppAdPage">
+        <v-touch slot="ufooter" class="active_img" @tap="toAppAdPage">
           <img :src="appAdBanner" />
         </v-touch>
       </template>
       <!-- 引导活动banner -->
       <template v-if="guidepersonalaccount.banner && !crm_guide_pool">
-        <v-touch slot="ufooter"
-                 class="active_img"
-                 @tap="wdQrcodeEv('banner')"
-                 style="padding-bottom: .2rem">
+        <v-touch
+          slot="ufooter"
+          class="active_img"
+          @tap="wdQrcodeEv('banner')"
+          style="padding-bottom: .2rem"
+        >
           <img :src="guidepersonalaccount.banner" />
         </v-touch>
       </template>
       <!-- crm_guide_pool banner -->
       <template v-if="crm_guide_pool">
-        <v-touch slot="ufooter"
-                 class="active_img"
-                 @tap="wdQrcodeEv('banner')"
-                 style="padding-bottom: .2rem">
+        <v-touch
+          slot="ufooter"
+          class="active_img"
+          @tap="wdQrcodeEv('banner')"
+          style="padding-bottom: .2rem"
+        >
           <img :src="crm_guide_pool.banner" />
         </v-touch>
       </template>
     </x-reader>
-    <div class="reader-loading"
-         v-show="loading">
-      <mt-spinner class="reader-loading-icon"
-                  type="fading-circle"
-                  color="#32a1ff"></mt-spinner>
+    <div class="reader-loading" v-show="loading">
+      <mt-spinner
+        class="reader-loading-icon"
+        type="fading-circle"
+        color="#32a1ff"
+      ></mt-spinner>
     </div>
-    <div class="reader-guide"
-         v-if="new_reader&&!hideGuide">
-      <transition name="fade"
-                  @after-leave="new_reader_guide2= true">
-        <div class="reader-guide-1"
-             v-if="new_reader_guide1"
-             @click="new_reader_guide1 = false;">
+    <div class="reader-guide" v-if="new_reader && !hideGuide">
+      <transition name="fade" @after-leave="new_reader_guide2 = true">
+        <div
+          class="reader-guide-1"
+          v-if="new_reader_guide1"
+          @click="new_reader_guide1 = false"
+        >
           <div class="reader-guide-1-1"></div>
           <div class="reader-guide-1-2"></div>
           <div class="reader-guide-1-3"></div>
           <div class="reader-guide-1-4">
-            <img src="https://cdn-novel.bookkks.com/static/img/uppage.png">
+            <img src="https://cdn-novel.bookkks.com/static/img/uppage.png" />
           </div>
           <div class="reader-guide-1-5">
-            <img src="https://cdn-novel.bookkks.com/static/img/readermiddel.png">
+            <img
+              src="https://cdn-novel.bookkks.com/static/img/readermiddel.png"
+            />
           </div>
           <div class="reader-guide-1-6">
-            <img src="https://cdn-novel.bookkks.com/static/img/downpage.png">
+            <img src="https://cdn-novel.bookkks.com/static/img/downpage.png" />
           </div>
           <div class="reader-guide-1-7"></div>
           <div class="reader-guide-1-8"></div>
           <div class="reader-guide-1-9"></div>
         </div>
       </transition>
-      <transition name="fade"
-                  @after-leave="new_reader = false">
-        <div v-if="new_reader_guide2"
-             @click="new_reader_guide2 = false"
-             class="reader-guide-2">
-          <img src="https://cdn-novel.bookkks.com/static/img/readremind.png">
+      <transition name="fade" @after-leave="new_reader = false">
+        <div
+          v-if="new_reader_guide2"
+          @click="new_reader_guide2 = false"
+          class="reader-guide-2"
+        >
+          <img src="https://cdn-novel.bookkks.com/static/img/readremind.png" />
         </div>
       </transition>
     </div>
-    <div class="share"
-         @touchmove.prevent
-         v-show="isshowshare"
-         @click="isshowshare=!isshowshare">
-      <img src="../assets/分享.png">
+    <div
+      class="share"
+      @touchmove.prevent
+      v-show="isshowshare"
+      @click="isshowshare = !isshowshare"
+    >
+      <img src="../assets/分享.png" />
     </div>
-    <div :class="['ad-status', {'with-no-activity': !active}]"
-         v-if="showAdImg"
-         @click="toggleAdType($event)">
-      <img :src="adStatusImg">
+    <div
+      :class="['ad-status', { 'with-no-activity': !active }]"
+      v-if="showAdImg"
+      @click="toggleAdType($event)"
+    >
+      <img :src="adStatusImg" />
     </div>
-    <div class="coupon-entry__wrap"
-         v-if="showCouponEntry && guidepersonalaccount"
-         @click="wdQrcodeEv('reader_float')">
-      <img src="../assets/coupon-entry.png"
-           alt="">
-    </div>
-    <!-- 弹窗banner-->
-    <div v-if="showBanner" class="pop-activity">
-      <a :href="reader_alert.jump_url"><img :src="reader_alert.img" /></a>
-      <i @click="showBanner=false"></i>
+    <div
+      class="coupon-entry__wrap"
+      v-if="showCouponEntry && guidepersonalaccount"
+      @click="wdQrcodeEv('reader_float')"
+    >
+      <img src="../assets/coupon-entry.png" alt="" />
     </div>
     <!-- 签到提示入口 -->
     <!-- <template v-if="showSignNoticeWrap">
@@ -304,11 +349,12 @@
     </template> -->
     <!-- 收藏引导入口 -->
     <template v-if="showCollectionWrap">
-      <div class="sign-notice__wrap"
-           @click="showCollectionWrap = false"
-           @touchmove.prevent>
-        <img :src="isAndroid ? collectAndroidBg : collectIOSBg"
-             alt="">
+      <div
+        class="sign-notice__wrap"
+        @click="showCollectionWrap = false"
+        @touchmove.prevent
+      >
+        <img :src="isAndroid ? collectAndroidBg : collectIOSBg" alt="" />
       </div>
     </template>
   </div>
@@ -399,7 +445,6 @@ export default {
   },
   data() {
     return {
-      showBanner:false,
       showFans: false,
       readerOptions: bus.preset,
       text: {},
@@ -457,9 +502,7 @@ export default {
       crm_guide_pool: "",
       five_template: "",
       five_template_clicked: true,
-      copyVal: "",
-      reader_alert:window.options.reader_alert ,
-
+      copyVal: ""
     };
   },
   computed: {
@@ -513,7 +556,7 @@ export default {
       // 和喜悦相关的分享
       const xiyue_config = window.options.xiyue_info;
       const is_leyue_site = !!~location.href.indexOf(".leyuee");
-      //console.log("is leyuee site:", is_leyue_site);
+      console.log("is leyuee site:", is_leyue_site);
       if (xiyue_config && is_leyue_site) {
         let book = this.bookdetail;
         let redirect_url = `${location.origin}/reader?bid=${book.book_id}&cid=${book.first_cid}`;
@@ -596,6 +639,19 @@ export default {
       window.location.href = `${window.location.origin +
         window.options.appad_url}`;
     },
+    getUuid() {
+      var s = [];
+      var hexDigits = "0123456789abcdef";
+      for (var i = 0; i < 36; i++) {
+        s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
+      }
+      s[14] = "4"; // bits 12-15 of the time_hi_and_version field to 0010
+      s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01
+      s[8] = s[13] = s[18] = s[23] = "-";
+
+      var uuid = s.join("");
+      return uuid;
+    },
     go(name) {
       switch (name) {
         case "back":
@@ -652,7 +708,7 @@ export default {
       } else {
         if (this.text.next_cid) {
           this.$router.replace({
-            name: Reader.name,
+            path:`/reader/${this.getUuid()}`,
             query: {
               bid: this.text.bid,
               cid: this.text.next_cid
@@ -803,8 +859,8 @@ export default {
               break;
             case 10019:
               Book3(r.data.data)
-                .then(r => {
-                  this.$router.push({ name: Pay.name, query: data });
+                .then(res => {
+                  this.$router.push({ name: Pay.name, query: { ...data, code: r.data.code } });
                 })
                 .catch(e => {
                   if (e === "close") {
@@ -873,7 +929,7 @@ export default {
             temp.map(item => {
               if (item.bid == bid && item.cid == cid) same = true;
             });
-            //console.log(same);
+            console.log(same);
             if (!same) {
               temp.push({ bid: bid, cid: cid });
               localStorage.setItem("readTemp", JSON.stringify(temp));
@@ -1409,18 +1465,6 @@ export default {
         this.$copyText(this.copyVal).then(e => recordCode(this.copyVal));
       // 不需要复制 置空
       else this.copyVal = "";
-    },
-    onceShow(){
-      let maxTime = localStorage.getItem('maxTime');
-      if(!maxTime){
-        return true;
-      }else{
-        if(new Date() > new Date(Number(maxTime))){
-          return true;
-        }else{
-          return false;
-        }
-      }
     }
   },
   async created() {
@@ -1633,11 +1677,6 @@ export default {
   mounted() {
     this.bus = this.$refs.reader.getBus();
     this.mergeBanner();
-     if(this.reader_alert && this.onceShow()){
-      this.showBanner = true;
-      let maxTime = new Date(new Date(new Date().toLocaleDateString()).getTime()+24*60*60*1000-1).getTime();
-      localStorage.setItem('maxTime', maxTime);
-    }
   },
   destroyed() {
     document.title = window.options.title;
@@ -1953,4 +1992,3 @@ export default {
   }
 }
 </style>
-