Szx hace 3 años
padre
commit
1b26748f77
Se han modificado 52 ficheros con 1358 adiciones y 1014 borrados
  1. 2 2
      src/api/config.js
  2. 1 2
      src/api/index.js
  3. BIN
      src/assets/imgs/binding.png
  4. BIN
      src/assets/imgs/classify.png
  5. BIN
      src/assets/imgs/classify_choose.png
  6. BIN
      src/assets/imgs/consume_record.png
  7. BIN
      src/assets/imgs/customer.png
  8. BIN
      src/assets/imgs/home.png
  9. BIN
      src/assets/imgs/home_choose.png
  10. BIN
      src/assets/imgs/home_fl.png
  11. BIN
      src/assets/imgs/home_free.png
  12. BIN
      src/assets/imgs/home_pre.png
  13. BIN
      src/assets/imgs/home_rank.png
  14. BIN
      src/assets/imgs/logo.png
  15. BIN
      src/assets/imgs/manage.png
  16. BIN
      src/assets/imgs/my.png
  17. BIN
      src/assets/imgs/my_choose.png
  18. BIN
      src/assets/imgs/rank.png
  19. BIN
      src/assets/imgs/rank_choose.png
  20. BIN
      src/assets/imgs/recharge_record.png
  21. BIN
      src/assets/imgs/rukou.png
  22. BIN
      src/assets/imgs/shelf.png
  23. BIN
      src/assets/imgs/shelf_choose.png
  24. BIN
      src/assets/imgs/sign.png
  25. BIN
      src/assets/imgs/sign_banner.png
  26. BIN
      src/assets/imgs/task.png
  27. BIN
      src/assets/imgs/user_login.png
  28. BIN
      src/assets/imgs/user_logo.png
  29. 15 7
      src/assets/less/category.less
  30. 24 26
      src/assets/less/home.less
  31. 1 1
      src/assets/less/index.less
  32. 4 5
      src/assets/less/leaderboard.less
  33. 158 95
      src/assets/less/my.less
  34. 208 168
      src/assets/less/shelf.less
  35. 2 1
      src/assets/less/task.less
  36. 71 75
      src/components/short/index.ux
  37. 4 4
      src/helper/interface.js
  38. 25 24
      src/manifest.json
  39. 34 41
      src/views/Ad/index.ux
  40. 223 81
      src/views/Agreement/index.ux
  41. 2 2
      src/views/Cancellation/index.ux
  42. 8 11
      src/views/Catalog/index.ux
  43. 86 58
      src/views/Category/index.ux
  44. 39 38
      src/views/Free/index.ux
  45. 132 131
      src/views/Home/index.ux
  46. 20 3
      src/views/Index/index.ux
  47. 126 107
      src/views/My/index.ux
  48. 3 3
      src/views/Phone/index.ux
  49. 5 8
      src/views/Privacy/index.ux
  50. 88 56
      src/views/Search/index.ux
  51. 76 64
      src/views/Shelf/index.ux
  52. 1 1
      src/views/Task/index.ux

+ 2 - 2
src/api/config.js

@@ -7,9 +7,9 @@
  */
 const apiConfig = {
   baseURL: 'https://quickapp.leyuee.com/api',
-  //baseURL: 'https://quickapptestnew.leyuee.com/api',
+  //baseURL:"https://quickapptestnew.leyuee.com/api",
   //baseURL: "https://quickapptest.leyuee.com/api",
-  package: 'com.beidao.kuaiying.zsy'
+  package: 'com.beidao.kuaiying.haohan'
 }
 
 export default apiConfig

+ 1 - 2
src/api/index.js

@@ -224,8 +224,7 @@ export const getFreeBook = sex => {
 export const getReadrecord = () => {
   return fly.get('readrecord')
 }
-
 //注销账户
 export const logOff = () => {
-  return fly.get(`user/logOff`)
+  return fly.get(`/user/logOff`)
 }

BIN
src/assets/imgs/binding.png


BIN
src/assets/imgs/classify.png


BIN
src/assets/imgs/classify_choose.png


BIN
src/assets/imgs/consume_record.png


BIN
src/assets/imgs/customer.png


BIN
src/assets/imgs/home.png


BIN
src/assets/imgs/home_choose.png


BIN
src/assets/imgs/home_fl.png


BIN
src/assets/imgs/home_free.png


BIN
src/assets/imgs/home_pre.png


BIN
src/assets/imgs/home_rank.png


BIN
src/assets/imgs/logo.png


BIN
src/assets/imgs/manage.png


BIN
src/assets/imgs/my.png


BIN
src/assets/imgs/my_choose.png


BIN
src/assets/imgs/rank.png


BIN
src/assets/imgs/rank_choose.png


BIN
src/assets/imgs/recharge_record.png


BIN
src/assets/imgs/rukou.png


BIN
src/assets/imgs/shelf.png


BIN
src/assets/imgs/shelf_choose.png


BIN
src/assets/imgs/sign.png


BIN
src/assets/imgs/sign_banner.png


BIN
src/assets/imgs/task.png


BIN
src/assets/imgs/user_login.png


BIN
src/assets/imgs/user_logo.png


+ 15 - 7
src/assets/less/category.less

@@ -1,7 +1,15 @@
 .category-wrap {
   background-color: #fff;
   flex-direction: column;
-
+  .category_title {
+    height: 112px;
+    text {
+      padding: 0 30px;
+      font-size: 36px;
+      font-weight: bold;
+      color: #000000;
+    }
+  }
   .search-bar {
     padding: 24px;
 
@@ -37,8 +45,7 @@
       align-items: flex-start;
       padding: 32px 42px 0;
       border-bottom: 2px solid #f7f7f7;
-      
-      
+
       &__list {
         flex: 1;
         flex-direction: row;
@@ -66,7 +73,7 @@
 
       & .cur {
         font-weight: bold;
-        color: #EF5952;
+        color: #ef5952;
       }
     }
   }
@@ -83,14 +90,14 @@
       justify-content: flex-start;
       align-items: flex-start;
       padding-left: 40px;
-
+      line-height: 40px;
       .name {
         color: #333;
         font-size: 32px;
         lines: 1;
         text-overflow: ellipsis;
       }
-      
+
       .status,
       .words {
         color: #999;
@@ -119,6 +126,7 @@
       .intro {
         font-size: 24px;
         color: #666;
+        line-height: 40px;
         margin-top: 36px;
         lines: 3;
         text-overflow: ellipsis;
@@ -130,4 +138,4 @@
   .book-item__wrap--first {
     padding-top: 38px;
   }
-}
+}

+ 24 - 26
src/assets/less/home.less

@@ -2,37 +2,35 @@
   background-color: #fff;
   flex-direction: column;
   padding-top: 20px;
-  .type-bar {
-    background-color: #fff;
-    
-    .type-item {
-      flex: 1;
-      justify-content: center;
-      align-items: center;
-      flex-direction: column;
-      position: relative;
+  .type-item {
+    justify-content: center;
+    align-items: center;
+    flex-direction: column;
+    position: relative;
 
-      text {
-        font-size: 30px;
-        color: #999;
-        // padding: 34px 0;
-      }
+    text {
+      font-size: 30px;
+      color: #999;
+      // padding: 34px 0;
+    }
 
-      .cur {
-        color: #3AACFF;
-        font-size: 36px;
-        font-weight: bold;
-      }
+    .cur {
+      color: #1082FE;
+      font-size: 36px;
+      font-weight: bold;
+    }
 
-      .choose-bar {
-        width: 38px;
-        height: 4px;
-        background-color: #3AACFF;
-        border-radius: 2px;
-        margin-top: 10px;
-      }
+    .choose-bar {
+      width: 38px;
+      height: 4px;
+      background-color: #1082FE;
+      border-radius: 2px;
+      margin-top: 10px;
     }
   }
+  .type-bar {
+    background-color: #fff;
+  }
 
   .search-bar {
     padding: 24px;

+ 1 - 1
src/assets/less/index.less

@@ -27,7 +27,7 @@
       }
 
       .tabbar-name__cur {
-        color: #3aacff;
+        color: #1082FE;
       }
     }
   }

+ 4 - 5
src/assets/less/leaderboard.less

@@ -5,14 +5,13 @@
 
   .type-bar {
     background-color: #fff;
-
+    margin: 20px;
     .type-item {
-      flex: 1;
       justify-content: center;
       align-items: center;
       flex-direction: column;
       position: relative;
-
+      padding: 0 20px;
       text {
         font-size: 30px;
         color: #999;
@@ -20,7 +19,7 @@
       }
 
       .cur {
-        color: #ef5952;
+        color: black;
         font-size: 36px;
         font-weight: bold;
       }
@@ -28,7 +27,7 @@
       .choose-bar {
         width: 38px;
         height: 4px;
-        background-color: #ef5952;
+        background-color: #1082FE;
         border-radius: 2px;
         margin-top: 10px;
       }

+ 158 - 95
src/assets/less/my.less

@@ -2,152 +2,215 @@
   flex-direction: column;
   background-color: #f7f7f7;
 
-  .bottom-info{
+  .my_title {
+    height: 112px;
+    width: 100%;
+    background-color: white;
+    // position: fixed;
+    // top: 0;
+    // left: 0;
+    // right: 0;
+    text {
+      padding: 0 30px;
+      font-size: 36px;
+      font-weight: bold;
+      color: #000000;
+    }
+  }
+  .bottom-info {
     margin: 0 0 40px 0;
+    width: 100%;
     justify-content: center;
     color: #999;
     font-size: 20px;
-    .line{
+    .line {
       padding: 0 20px;
     }
   }
-  .my-collect{
+
+  .my-collect {
+    flex-direction: column;
     width: 690px;
-    height: 150px;
-    background-color: #fff;
-    border-radius: 20px;
-    margin:200px auto 0;
+    height: 500px;
+    background: linear-gradient(to bottom, #f7f7f7 20%, #fff 0);
+    border-radius: 40px;
+    margin: 120 auto 50;
     padding: 30px;
     justify-content: space-between;
     align-items: center;
-    .collect-content{
-      flex-direction: column;
+    .my-collect-wrap {
       justify-content: space-between;
-      height: 100%;
-      flex-grow:1;
-      .book_coin{
-        color: #333;
-      }
-      .collect-info{
-        
-        .vip-card{
-          background-color:#FFF7ED;
-          color:#CD8119;
-          border:1px solid rgba(205,129,25,1);
-          border-radius:22px;
-          padding: 4px 15px;
-          font-size:26px;
-          margin-left: 15px;
+      width: 100%;
+      .collect-content {
+        flex-direction: column;
+        justify-content: space-between;
+        height: 100%;
+        flex-grow: 1;
+        .book_coin {
+          color: #333;
         }
-        color: #000;
-        flex-direction: row;
-        .title{
-          font-size: 30px;
-          font-weight: bold;
+        .collect-info {
+          .vip-card {
+            background-color: #fff7ed;
+            color: #cd8119;
+            border: 1px solid rgba(205, 129, 25, 1);
+            border-radius: 22px;
+            padding: 4px 15px;
+            font-size: 26px;
+            margin-left: 15px;
+          }
+          color: #000;
+          flex-direction: row;
+          .title {
+            margin: 10px 0;
+            font-size: 30px;
+            font-weight: bold;
+          }
         }
       }
-    }
-    .pay-btn{
-      width: 150px;
-      height: 60px;
-      background-color: #3AACFF;
-      border-radius: 30px;
-      align-items: center;
-      text-align: center;
-      color: #fff;
-      font-size: 30px;
+      .pay-btn {
+        width: 150px;
+        height: 60px;
+        color: white;
+        background-color: #1082fe;
+        border-radius: 30px;
+        align-items: center;
+        text-align: center;
+        font-size: 30px;
+      }
     }
   }
   .user-info__wrap {
-    background-color: #3AACFF;
-    padding: 40px 30px 80px 30px;
     align-items: center;
-    margin-bottom: 140px;
     width: 100%;
+    flex-direction: column;
+    text-align: center;
+    margin: 0 auto;
     image {
       width: 124px;
       height: 124px;
       border-radius: 80px;
-      border-color:#EBEBEB;
-      border-width:2px;
-      margin-right: 20px;
+      border-color: #ebebeb;
+      border-width: 2px;
     }
 
     text {
-      color: #fff;
+      color: black;
       font-size: 30px;
     }
   }
-  .uesr-info__message{
-    
+  .uesr-info__message {
     flex-direction: column;
     justify-content: space-around;
     height: 124px;
-    .un-Login{
+    margin: 20px auto 0;
+    .user_id {
+      color: #999999;
+      font-size: 30px;
+    }
+    .un-Login {
+      margin: 0 auto;
+      color: white;
       width: 120px;
       height: 50px;
-      background-color: #3AACFF;
+      background-color: #1082fe;
       border-radius: 30px;
-      border: 1px solid #FFFFFF;
+      border: 1px solid #ffd56f;
       justify-content: center;
       align-items: center;
       text-align: center;
       font-size: 24px;
     }
-    
   }
-  
+  .first_item {
+    height: 200px;
+    margin: 0 30px 30px;
 
+    image {
+      border-radius: 20px;
+      height: 198px;
+      width: 690px;
+    }
+
+    // text {
+    //   font-size: 30px;
+    //   color: #545454;
+    //   .red {
+    //     color: #ef5952;
+    //   }
+    // }
+
+    // .info-text {
+    //   align-items: center;
+
+    //   text {
+    //     font-size: 24px;
+    //     color: #999;
+    //     margin-right: 20px;
+    //   }
+
+    //   .arrow {
+    //     width: 12px;
+    //   }
+    // }
+  }
   .operator-item__wrap {
+    width: 100%;
     flex-direction: column;
-    background-color: #fff;
-    margin-bottom:220px;
-    .operator-item {
-      padding: 34px 26px;
-      border-bottom: 2px solid #f7f7f7;
-      justify-content: space-between;
-      align-items: center;
+    padding: 0 25px;
+    margin-bottom: 220px;
+    .operator-item_wrap_content {
+      flex-direction: column;
+      background-color: #fff;
+      border-radius: 10px;
 
-      .item-name {
-        flex: 1;
-        .orange{
-          color: #CD8119;
-        }
-        image {
-          width: 40px;
-          margin-right: 40px;
-        }
+      .operator-item {
+        padding: 34px 26px;
+        border-bottom: 2px solid #f7f7f7;
+        justify-content: space-between;
+        align-items: center;
 
-        text {
-          font-size: 30px;
-          color: #545454;
-          .red{
-            color:#EF5952;
+        .item-name {
+          flex: 1;
+          .orange {
+            color: #cd8119;
+          }
+          image {
+            width: 40px;
+            margin-right: 40px;
+          }
+
+          text {
+            font-size: 30px;
+            color: #545454;
+            .red {
+              color: #ef5952;
+            }
           }
         }
-      }
 
-      .info-text {
-        align-items: center;
+        .info-text {
+          align-items: center;
 
-        text {
-          font-size: 24px;
-          color: #999;
-          margin-right: 20px;
-        }
+          text {
+            font-size: 24px;
+            color: #999;
+            margin-right: 20px;
+          }
 
-        .arrow {
-          width: 12px;
+          .arrow {
+            width: 12px;
+          }
+        }
+        .operator-button {
+          background-color: #ef5952;
+          width: 116px;
+          height: 44px;
+          border-radius: 4px;
+          color: #fff;
+          text-align: center;
+          font-size: 26px;
         }
-      }
-      .operator-button{
-        background-color: #EF5952;
-        width: 116px;
-        height:44px;
-        border-radius: 4px;
-        color:#fff;
-        text-align: center;
-        font-size: 26px;
       }
     }
   }
@@ -155,6 +218,6 @@
   .customer-dialog {
     width: 100%;
     height: 100%;
-    background-color: rgba(0, 0, 0, .4);
+    background-color: rgba(0, 0, 0, 0.4);
   }
-}
+}

+ 208 - 168
src/assets/less/shelf.less

@@ -1,196 +1,236 @@
-.shelf-wrap {
-  // border-top: 36px solid #f7f7f7;
-
+.shelfs {
+  background-color: #f7f7f7;
   flex-direction: column;
-  .blank_img {
+  height: 100%;
+  .shelf_title {
+    height: 112px;
+    text {
+      padding: 0 30px;
+      font-size: 36px;
+      font-weight: bold;
+      color: #000000;
+    }
+  }
+  .shelf {
+    margin-top: 30px;
+    flex-direction: column;
+    background-color: #f7f7f7;
     width: 100%;
     height: 100%;
-    align-items: center;
-    justify-content: center;
-    image {
-      width: 500px;
+    .shelf-wrap-top {
+      height: 200px;
+      background: -webkit-linear-gradient(#ed591e, #f5f5f5);
     }
-  }
-  .type-bar {
-    background-color: #fff;
-
-    .type-item {
-      flex: 1;
-      justify-content: center;
-      align-items: center;
+    .shelf-wrap {
+      background-color: #f7f7f7;
+      border-radius: 20px;
+      // border-top: 36px solid #f7f7f7;
+      width: 95%;
+      margin: 0 auto;
       flex-direction: column;
-      position: relative;
-
-      text {
-        font-size: 30px;
-        color: #999;
-        // padding: 34px 0;
+      .blank_img {
+        width: 100%;
+        height: 900px;
+        align-items: center;
+        justify-content: center;
+        image {
+          width: 500px;
+        }
       }
-
-      .cur {
-        color: #ef5952;
-        font-size: 36px;
-        font-weight: bold;
+      .type-bar {
+        background-color: #fff;
+
+        .type-item {
+          flex: 1;
+          justify-content: center;
+          align-items: center;
+          flex-direction: column;
+          position: relative;
+
+          text {
+            font-size: 30px;
+            color: #999;
+            // padding: 34px 0;
+          }
+
+          .cur {
+            color: #ef5952;
+            font-size: 36px;
+            font-weight: bold;
+          }
+
+          .choose-bar {
+            width: 38px;
+            height: 4px;
+            background-color: #ef5952;
+            border-radius: 2px;
+            margin-top: 10px;
+          }
+        }
       }
 
-      .choose-bar {
-        width: 38px;
-        height: 4px;
-        background-color: #ef5952;
-        border-radius: 2px;
-        margin-top: 10px;
+      .border-bar {
+        height: 36px;
+        background-color: #f7f7f7;
       }
-    }
-  }
-
-  .border-bar {
-    height: 36px;
-    background-color: #f7f7f7;
-  }
-
-  .shelf-total {
-    padding: 32px 22px;
-    justify-content: space-between;
-    align-items: center;
-    .complete-btn {
-      width: 80px;
-      height: 35px;
-      background-color: #3aacff;
-      border-radius: 20px;
-      align-items: center;
-      text-align: center;
-      color: #fff;
-      font-size: 25px;
-    }
-    text {
-      color: #333;
-      font-size: 26px;
-    }
-
-    .manager {
-      border: 2px solid #ef5952;
-      border-radius: 6px;
-      background-color: #fff;
-      font-size: 26px;
-      color: #ef5952;
-      width: 88px;
-      height: 38px;
-      text-align: center;
-    }
 
-    &__inRecent {
-      padding-bottom: 0;
-    }
-  }
-
-  .shelf-books__wrap {
-    padding: 0 22px;
-    justify-content: flex-start;
-    flex-direction: row;
-    flex-wrap: wrap;
-
-    .book-item__wrap {
-      margin: 0 10px;
-
-      .book-del__wrap {
-        background-color: rgba(0, 0, 0, 0.4);
-        width: 200px;
-        height: 264px;
-        border-radius: 6px;
-        justify-content: center;
+      .shelf-total {
+        padding: 32px 22px;
+        justify-content: space-between;
         align-items: center;
-        flex-direction: column;
-
-        image {
-          width: 40px;
+        .complete-btn {
+          width: 80px;
+          height: 35px;
+          background-color: #fff;
+          border-radius: 20px;
+          align-items: center;
+          text-align: center;
+          color: #ef5952;
+          font-size: 25px;
+          border: 1px solid #ef5952;
+          margin-bottom: 20px;
         }
-
         text {
-          color: white;
-          margin-top: 20px;
+          color: #333;
+          font-size: 26px;
+          margin-bottom: 20px;
         }
-      }
-    }
 
-    .book-item__add {
-      flex-direction: column;
+        .manager {
+          border: 2px solid #ef5952;
+          border-radius: 6px;
+          background-color: #fff;
+          font-size: 26px;
+          color: #ef5952;
+          width: 88px;
+          height: 38px;
+          text-align: center;
+        }
 
-      .add-cover {
-        width: 200px;
+        &__inRecent {
+          padding-bottom: 0;
+        }
       }
 
-      text {
-        font-size: 24px;
-        text-align: center;
-        color: #999;
-        margin-top: 14px;
-      }
-    }
+      .shelf-books__wrap {
+        padding: 0 15px;
+        justify-content: flex-start;
+        flex-direction: row;
+        flex-wrap: wrap;
+
+        .book-item__wrap {
+          margin: 0 5px;
+
+          .book-del__wrap {
+            background-color: rgba(0, 0, 0, 0.4);
+            width: 200px;
+            height: 264px;
+            border-radius: 6px;
+            justify-content: center;
+            align-items: center;
+            flex-direction: column;
+
+            image {
+              width: 40px;
+            }
+
+            text {
+              color: white;
+              margin-top: 20px;
+            }
+          }
+        }
 
-    & .m0 {
-      margin-right: 0;
-    }
-  }
+        .book-item__add {
+          flex-direction: column;
 
-  .recent-list {
-    padding: 0 22px;
-    margin-top: 30px;
-    .recent-item {
-      padding: 30px 0;
-      border-bottom: 2px solid #f7f7f7;
-    }
+          .add-cover {
+            width: 200px;
+          }
 
-    .book-info__wrap {
-      flex-direction: column;
-      margin-left: 30px;
-      justify-content: space-between;
-      align-items: flex-start;
-
-      // text {
-      //   font-size: 26px;
-      //   color: #999;
-      //   lines: 1;
-      //   text-overflow: ellipsis;
-      // }
-
-      .shelf-status {
-        font-size: 24px;
-        color: #ef5952;
-        padding: 6px 17px;
-        background-color: #f7f7f7;
-        border-radius: 24px;
-      }
-    }
-    .book-del__item {
-      justify-content: center;
-      align-items: center;
-      flex-direction: column;
-      width: 100%;
-      background-color: rgba(24, 22, 22, 0.6);
-      image {
-        width: 40px;
+          text {
+            font-size: 24px;
+            text-align: center;
+            color: #999;
+            margin-top: 14px;
+          }
+        }
+
+        & .m0 {
+          margin-right: 0;
+        }
       }
 
-      text {
-        color: #4d4d4d;
-        margin-top: 20px;
+      .recent-list {
+        padding: 0 22px;
+        margin-top: 30px;
+        .recent-item {
+          z-index: 11;
+          padding: 0 0 30px 0;
+          border-bottom: 2px solid #f7f7f7;
+        }
+
+        .book-info__wrap {
+          flex-direction: column;
+          margin-left: 30px;
+          justify-content: space-between;
+          align-items: flex-start;
+
+          // text {
+          //   font-size: 26px;
+          //   color: #999;
+          //   lines: 1;
+          //   text-overflow: ellipsis;
+          // }
+
+          .shelf-status {
+            font-size: 24px;
+            color: #ef5952;
+            padding: 6px 17px;
+            background-color: #f7f7f7;
+            border-radius: 24px;
+          }
+        }
+        .book-del__item {
+          justify-content: center;
+          align-items: center;
+          flex-direction: column;
+          width: 100%;
+          background-color: rgba(24, 22, 22, 0.6);
+          image {
+            width: 40px;
+          }
+
+          text {
+            color: #4d4d4d;
+            margin-top: 20px;
+          }
+        }
+      }
+      .item_wrap {
+        flex-direction: column;
+        padding-bottom: 50px;
+        .last-read {
+          font-size: 24px;
+          color: #999999;
+          margin-top: 15px;
+        }
+        .name {
+          font-size: 26px;
+          color: #333;
+          font-weight: 400;
+          line-height: 37px;
+          margin-top: 15px;
+        }
       }
     }
   }
-  .item_wrap {
-    flex-direction: column;
-    padding-bottom: 50px;
-    .last-read {
-      font-size: 24px;
-      color: #999999;
-      margin-top: 15px;
-    }
-    .name {
-      font-size: 26px;
-      color: #333;
-      font-weight: 400;
-      line-height: 37px;
-      margin-top: 15px;
-    }
+  .shelf_bottom {
+    height: 10px;
+    width: 100%;
+    margin-bottom: 30px;
+    background-color: #fff;
+    box-shadow: 0px 5px 4px 0px rgba(0, 0, 0, 0.11);
+    border-radius: 4px;
   }
 }

+ 2 - 1
src/assets/less/task.less

@@ -15,6 +15,7 @@
     height: 466px;
     border-radius: 12px;
     background-color: #fff;
+    box-shadow: 0px 0px 9px 0px rgba(0, 0, 0, 0.05);
     padding: 38px 18px;
     justify-content: flex-start;
     align-items: flex-start;
@@ -280,7 +281,7 @@
   align-items: center;
 }
 .border_warp {
-  border: 1px  solid #fd555d;
+  border: 1px red solid;
 }
 .task-section__list_new {
   font-weight: 600;

+ 71 - 75
src/components/short/index.ux

@@ -1,98 +1,94 @@
 <template>
-	<div class="short-wrap">
-		<div class="short-content" @click="createShortcut">
-			<image src="../../assets/imgs/sign_banner.png"></image>
-		</div>
-	</div>
+  <div class="short-wrap">
+    <div class="short-content" @click="createShortcut">
+      <image src="../../assets/imgs/sign_banner.png"></image>
+    </div>
+  </div>
 </template>
 <script>
-import shortcut from '@system.shortcut';
-import prompt from '@system.prompt';
-import {userAddDsktop} from '../../api/index.js';
+import shortcut from '@system.shortcut'
+import prompt from '@system.prompt'
+import { userAddDsktop } from '../../api/index.js'
 export default {
-	data: {
-
-	},
-	onInit() {
-
-	},
-	createShortcut() {
-		// 创建快捷方式
-		shortcut.hasInstalled({
-			success: (ret) => {
-				if (!ret) {
-					shortcut.install({
-						message: "添加【追书云】到桌面,方便下次阅读",
-						success: () => {
-							this.$emit("addshort", { installed: true });
-							 if (this.$app.$def.data.backClickCount === 0) {
-								this.$app.$def.data.backClickCount++;
-								return true;
-							 }
-							userAddDsktop(1).then(res=>{
-							//TODO 加桌后统计上报
-							}).catch(r=>{
-							//TODO 失败后统计上报
-							});	
-						},
-						fail: (code) => {
-							console.log(code);
-							this.$emit("addshort", { installed: false, msg: code });
-						}
-					})
-				}
-			}
-		})
-	}
+  data: {},
+  onInit() {},
+  createShortcut() {
+    // 创建快捷方式
+    shortcut.hasInstalled({
+      success: ret => {
+        if (!ret) {
+          shortcut.install({
+            message: '添加【海天阅读】到桌面,方便下次阅读',
+            success: () => {
+              this.$emit('addshort', { installed: true })
+              if (this.$app.$def.data.backClickCount === 0) {
+                this.$app.$def.data.backClickCount++
+                return true
+              }
+              userAddDsktop(1)
+                .then(res => {
+                  //TODO 加桌后统计上报
+                })
+                .catch(r => {
+                  //TODO 失败后统计上报
+                })
+            },
+            fail: code => {
+              console.log(code)
+              this.$emit('addshort', { installed: false, msg: code })
+            }
+          })
+        }
+      }
+    })
+  }
 }
 </script>
 
-
 <style lang="less" scoped>
 .short {
   &-wrap {
     position: fixed;
     bottom: 190px;
-	height: 148px;
-	z-index: 60;
-	justify-content: center;
-	width: 100%;
-	opacity:0.95;
-	
+    height: 148px;
+    z-index: 60;
+    justify-content: center;
+    width: 100%;
+    opacity: 0.95;
   }
   &-content {
     width: 678px;
-	height: 152px;
+    height: 152px;
     align-items: center;
-	justify-content: center;
-	opacity: 0.95;
-	image{
-		width: 678px;
-		height: 152px;
-	}
+    justify-content: center;
+    opacity: 0.95;
+    image {
+      width: 678px;
+      height: 152px;
+    }
   }
   &-left {
     color: #fff;
     font-size: 28px;
     font-weight: bold;
-		text-align: center;
-		background-color:#FF453C;
-		width:444px;
-		height:80px;
-		border-top-left-radius: 40px;
-		border-bottom-left-radius: 40px;
-		opacity:0.95;
-	}
-	&-right{
-		text-align: center;
-		font-weight: bold;
-		 font-size: 28px;
-		background-color:#FFB540;
-		width:206px;
-		height:80px;
-		border-top-right-radius: 40px;
-		border-bottom-right-radius: 40px;
-		opacity:0.95;
-	}
+    text-align: center;
+    background-color: #ff453c;
+    width: 444px;
+    height: 80px;
+    border-top-left-radius: 40px;
+    border-bottom-left-radius: 40px;
+    opacity: 0.95;
+  }
+  &-right {
+    text-align: center;
+    font-weight: bold;
+    font-size: 28px;
+    background-color: #ffb540;
+    width: 206px;
+    height: 80px;
+    border-top-right-radius: 40px;
+    border-bottom-right-radius: 40px;
+    opacity: 0.95;
+  }
 }
 </style>

+ 4 - 4
src/helper/interface.js

@@ -65,7 +65,7 @@ const hasCreateShortCut = (isPayPage = false, fn) => {
     success: ret => {
       if (!ret) {
         shortcut.install({
-          message: '添加【追书云】到桌面,方便下次阅读',
+          message: '添加【海天阅读】到桌面,方便下次阅读',
           success: () => {
             prompt.showToast('添加成功!')
             fn && fn(true)
@@ -88,7 +88,7 @@ const loseLevelShortCut = fn => {
     success: ret => {
       if (!ret) {
         shortcut.install({
-          message: '添加【追书云】到桌面,方便下次阅读',
+          message: '添加【海天阅读】到桌面,方便下次阅读',
           complete: () => {
             fn && fn(true)
           }
@@ -106,7 +106,7 @@ const mustCreateShort = fn => {
     success: ret => {
       if (!ret) {
         shortcut.install({
-          message: '添加【追书云】到桌面,方便下次阅读',
+          message: '添加【海天阅读】到桌面,方便下次阅读',
           success: () => {
             prompt.showToast('添加成功!')
             fn && fn(true)
@@ -129,7 +129,7 @@ const backCreateShortCut = fn => {
     success: ret => {
       if (!ret) {
         shortcut.install({
-          message: '添加【追书云】到桌面,方便下次阅读',
+          message: '添加【海天阅读】到桌面,方便下次阅读',
           success: () => {
             prompt.showToast('添加成功!')
             fn && fn('back')

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 25 - 24
src/manifest.json


+ 34 - 41
src/views/Ad/index.ux

@@ -1,30 +1,32 @@
 <template>
   <div class="ad-main">
     <stack>
-      <div class="weclome">
-
-      </div>
-      <div class="ad-page" style="{{ styleObj }}" if="{{hasBanner}}" @click="goActivity">
+      <div class="weclome"></div>
+      <div
+        class="ad-page"
+        style="{{ styleObj }}"
+        if="{{hasBanner}}"
+        @click="goActivity"
+      >
         <div class="top-timer">
-          <text class="number" @click="skep">跳过{{time}}</text>
+          <text class="number" @click="skep">跳过{{ time }}</text>
         </div>
         <div class="bottom-line">
           <image src="../../assets/imgs/logo.png"></image>
           <div class="desc">
-            <text class="title"> 追书云</text>
+            <text class="title"> 海天阅读</text>
             <text class="more"> 给你极致的阅读体验</text>
           </div>
         </div>
       </div>
     </stack>
-
   </div>
 </template>
 
 <script>
-import storage from "@system.storage";
-import router from '@system.router';
-import { userOptions } from '../../api/index.js';
+import storage from '@system.storage'
+import router from '@system.router'
+import { userOptions } from '../../api/index.js'
 export default {
   protected: {
     name: null,
@@ -36,62 +38,54 @@ export default {
     hasBanner: false,
     open_alert: null,
     styleObj: {
-      backgroundImage: ""
+      backgroundImage: ''
     }
   },
   onInit() {
-
-
     this.timer = setInterval(() => {
       if (this.time > 0) {
-        this.time = this.time - 1;
+        this.time = this.time - 1
       } else {
-        router.back();
+        router.back()
       }
-
-    }, 1000);
+    }, 1000)
 
     setTimeout(async () => {
-      let option = this.$app.getAppData('options');
-      let position;
+      let option = this.$app.getAppData('options')
+      let position
       if (!option) {
-        let data = await userOptions();
-        this.$app.setAppData('options', data);
-        position = data.position;
+        let data = await userOptions()
+        this.$app.setAppData('options', data)
+        position = data.position
         if (position.open_alert) {
-          this.open_alert = position.open_alert[0];
-          this.styleObj.backgroundImage = this.open_alert.img;
-          this.hasBanner = true;
-
-
+          this.open_alert = position.open_alert[0]
+          this.styleObj.backgroundImage = this.open_alert.img
+          this.hasBanner = true
         } else {
           setTimeout(() => {
-            router.back();
+            router.back()
           }, 1500)
-
         }
       } else {
-        position = option['position'];
+        position = option['position']
         if (position && position.open_alert && position.open_alert.length > 0) {
-          this.open_alert = position.open_alert[0];
-          this.styleObj.backgroundImage = this.open_alert.img;
-          this.hasBanner = true;
+          this.open_alert = position.open_alert[0]
+          this.styleObj.backgroundImage = this.open_alert.img
+          this.hasBanner = true
         } else {
           setTimeout(() => {
-            router.back();
+            router.back()
           }, 1500)
         }
       }
     }, 500)
-
-
   },
   onDestroy() {
-    clearInterval(this.timer);
+    clearInterval(this.timer)
   },
   skep() {
-    clearInterval(this.timer);
-    router.back();
+    clearInterval(this.timer)
+    router.back()
   },
   goActivity() {
     router.replace({
@@ -99,12 +93,11 @@ export default {
       params: this.open_alert.params
     })
   }
-
 }
 </script>
 <style lang="less">
 .weclome {
-  background-image: url("https://cdn-novel.91duke.com/quickapp/static/20201224165231.jpg");
+  background-image: url('https://cdn-novel.91duke.com/quickapp/static/20201224165231.jpg');
   background-size: cover;
   width: 100%;
   height: 100%;

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 223 - 81
src/views/Agreement/index.ux


+ 2 - 2
src/views/Cancellation/index.ux

@@ -73,8 +73,8 @@ export default {
           color: '#999'
         }
       ],
-
-      success: data => {
+      success: function(data) {
+        console.log(data)
         if (data.index == 0) {
           console.log('开始注销---------')
           logOff().then(res => {

+ 8 - 11
src/views/Catalog/index.ux

@@ -36,7 +36,7 @@
 import { getCatalog } from '../../api'
 import router from '@system.router'
 import prompt from '@system.prompt'
-import storage from '@system.storage';
+import storage from '@system.storage'
 
 const PER_PAGE_NUM = 50
 
@@ -54,11 +54,11 @@ export default {
     startpage: 1,
     loading: false,
     end: false,
-    send_order_id: false,
+    send_order_id: false
   },
   async onInit() {
-    let send_order_id = (await storage.get({ key: "send_order_id" })).data;
-    if (send_order_id) this.send_order_id = send_order_id;
+    let send_order_id = (await storage.get({ key: 'send_order_id' })).data
+    if (send_order_id) this.send_order_id = send_order_id
     // let page = 1
     // var chapter_sequence_index = 0
     // if (this.chapter_sequence) {
@@ -123,22 +123,20 @@ export default {
             color: '#999'
           }
         ],
-        success: function (data) {
-         
+        success: function(data) {
           if (data.index === 0) {
             router.replace({
-              uri: "/views/Reader",
+              uri: '/views/Reader',
               params: {
                 bid: info.bid,
                 chapter_id: info.chapter_id
               }
             })
           }
-
         },
-        cancel: function () {
+        cancel: function() {
           console.log('取消前往')
-        },
+        }
       })
     } else {
       router.replace({
@@ -149,7 +147,6 @@ export default {
         }
       })
     }
-
   },
   loadCatalog() {
     if (this.meta.last_page < this.meta.current_page + 1) {

+ 86 - 58
src/views/Category/index.ux

@@ -1,14 +1,22 @@
 <import name="x-book" src="../../components/book/book.ux"></import>
 <import name="x-loading" src="../../components/loading/loading.ux"></import>
- 
- 
+
 <template>
   <div class="category-wrap">
+    <div class="category_title"><text>分类</text></div>
     <list class="list-content" @scrollbottom="onReachBottom">
       <list-item type="search" class="search-bar">
         <div class="search-bar__wrap">
-          <image src="https://yueduyun.oss-cn-hangzhou.aliyuncs.com/xiaochengxu/img/search.png"></image>
-          <input id="search" type="text" enterkeytype="search" placeholder="书名" @enterkeyclick="bookSearch"></input>
+          <input
+            id="search"
+            type="text"
+            enterkeytype="search"
+            placeholder="请输入书名或者作者"
+            @enterkeyclick="bookSearch"
+          />
+          <image
+            src="https://yueduyun.oss-cn-hangzhou.aliyuncs.com/xiaochengxu/img/search.png"
+          ></image>
         </div>
       </list-item>
       <list-item type="filter" class="filter-wrap">
@@ -16,7 +24,11 @@
           <text class="filter-item__name">频道</text>
           <div class="filter-item__list">
             <block for="channel">
-              <text class="filter-item__item {{$item.key === filter.channel_id ? 'cur' : ''}}" @click="filterChange('channel_id', $item.key)">{{$item.name}}</text>
+              <text
+                class="filter-item__item {{$item.key === filter.channel_id ? 'cur' : ''}}"
+                @click="filterChange('channel_id', $item.key)"
+                >{{ $item.name }}</text
+              >
             </block>
             <!-- <text class="filter-item__item cur">全部</text> -->
           </div>
@@ -24,8 +36,14 @@
         <div class="filter-item">
           <text class="filter-item__name">类型</text>
           <div class="filter-item__list">
-            <block for="(category[filter.channel_id] && category[filter.channel_id].children)">
-              <text class="filter-item__item {{$item.id === filter.category_id ? 'cur': ''}}" @click="filterChange('category_id', $item.id)">{{$item.name}}</text>
+            <block
+              for="(category[filter.channel_id] && category[filter.channel_id].children)"
+            >
+              <text
+                class="filter-item__item {{$item.id === filter.category_id ? 'cur': ''}}"
+                @click="filterChange('category_id', $item.id)"
+                >{{ $item.name }}</text
+              >
             </block>
           </div>
         </div>
@@ -33,7 +51,11 @@
           <text class="filter-item__name">是否完结</text>
           <div class="filter-item__list">
             <block for="status">
-              <text class="filter-item__item {{$item.value === filter.status ? 'cur' : ''}}" @click="filterChange('status', $item.value)">{{$item.name}}</text>
+              <text
+                class="filter-item__item {{$item.value === filter.status ? 'cur' : ''}}"
+                @click="filterChange('status', $item.value)"
+                >{{ $item.name }}</text
+              >
             </block>
           </div>
         </div>
@@ -42,11 +64,14 @@
         <x-loading text="{{loadingText}}" empty="{{empty}}"></x-loading>
       </list-item>
       <block for="list">
-        <list-item type="books-item" class="books-item__wrap {{$idx === 0 ? 'book-item__wrap--first' : ''}}">
+        <list-item
+          type="books-item"
+          class="books-item__wrap {{$idx === 0 ? 'book-item__wrap--first' : ''}}"
+        >
           <x-book multi="{{true}}" width="{{150}}" book="{{$item}}">
             <div class="book-info">
-              <text class="name">{{$item.book_name}}</text>
-              <text class="intro">{{$item.book_summary}}</text>
+              <text class="name">{{ $item.book_name }}</text>
+              <text class="intro">{{ $item.book_summary }}</text>
               <!-- <text class="status">豪门虐情 完结</text>
               <text class="words">字数:1231231</text>
               <div class="update">
@@ -63,12 +88,11 @@
 </template>
 
 <script>
-import { getCategory, getBooksList } from "../../api";
-import { pageLoad } from "../../helper";
-import storage from '@system.storage';
+import { getCategory, getBooksList } from '../../api'
+import { pageLoad } from '../../helper'
+import storage from '@system.storage'
 
 export default {
-  
   data() {
     return {
       channel: [],
@@ -76,96 +100,100 @@ export default {
       list: [],
       status: [
         {
-          name: "完结",
+          name: '完结',
           value: 1
         },
         {
-          name: "连载",
+          name: '连载',
           value: 0
         }
       ],
       filter: {
-        key: "",
-        channel_id: "",
-        category_id: "",
-        order_field: "recommend_index",
-        order_seq: "asc",
+        key: '',
+        channel_id: '',
+        category_id: '',
+        order_field: 'recommend_index',
+        order_seq: 'asc',
         page_size: 100,
         page: 1,
         status: 1
       },
       meta: {},
       empty: false,
-      loadingText: "加载ing..."
+      loadingText: '加载ing...'
     }
   },
   onReachBottom() {
     // 请求更多数据
-    this.getBooksArray();
+    this.getBooksArray()
   },
   async getCategory() {
-    this.category = this.initCategory(await getCategory());
-    await this.initChannel(this.category);
-    this.getBooksArray();
+    this.category = this.initCategory(await getCategory())
+    await this.initChannel(this.category)
+    this.getBooksArray()
   },
   async initChannel(category) {
-    this.filter.channel_id = +((await storage.get({ key: "sex" })).data);
-    this.filter.category_id = category[this.filter.channel_id].id;
+    this.filter.channel_id = +(await storage.get({ key: 'sex' })).data
+    this.filter.category_id = category[this.filter.channel_id].id
     this.channel = category.map((c, i) => {
       return {
         name: c.name,
         id: c.id,
         key: i
       }
-    });
+    })
   },
   initCategory(category) {
     category.forEach(cate => {
       cate.children.unshift({
         id: cate.id,
-        name: "不限"
+        name: '不限'
       })
-    });
-    return category;
+    })
+    return category
   },
   filterChange(field, value) {
-    this.filter[field] = value;
-    if (field === "channel_id") this.filter.category_id = this.category[value].id;
-    this.getBooksArray(false);
+    this.filter[field] = value
+    if (field === 'channel_id')
+      this.filter.category_id = this.category[value].id
+    this.getBooksArray(false)
   },
   bookSearch(iptValue) {
-    this.filter.key = iptValue.value;
-    this.getBooksArray(false);
-    this.$element('search').focus({ focus: false });
+    this.filter.key = iptValue.value
+    this.getBooksArray(false)
+    this.$element('search').focus({ focus: false })
   },
   getBooksArray(isLoad = true) {
-    this.empty = false;
-    this.loadingText = "加载ing...";
-    this.filter.page = (this.meta.current_page || 0) + 1;
+    this.empty = false
+    this.loadingText = '加载ing...'
+    this.filter.page = (this.meta.current_page || 0) + 1
     if (!isLoad) {
-      this.filter.page = 1;
-      this.meta = {};
+      this.filter.page = 1
+      this.meta = {}
     }
-    let params = this.filter;
-    console.log(params);
-    pageLoad(this.meta, getBooksList, params).then(ret => {
-      let newList = isLoad ? this.list : [];
-      let dataList = ret.list;
-      newList.push(...dataList);
-      this.meta = ret.meta;
-      this.list = newList;
-      if (!this.list.length) this.loadingText = "没有更多数据", this.empty = true;
-    }).catch(e => {
-      console.log("e", e);
-    })
+    let params = this.filter
+    console.log(params)
+    pageLoad(this.meta, getBooksList, params)
+      .then(ret => {
+        let newList = isLoad ? this.list : []
+        let dataList = ret.list
+        newList.push(...dataList)
+        this.meta = ret.meta
+        this.list = newList
+        if (!this.list.length)
+          (this.loadingText = '没有更多数据'), (this.empty = true)
+      })
+      .catch(e => {
+        console.log('e', e)
+      })
   },
 
   onInit() {
-    this.getCategory();
+    this.getCategory()
   }
 }
 </script>
 
 <style lang="less">
-@import "../../assets/less/category.less";
+@import '../../assets/less/category.less';
 </style>

+ 39 - 38
src/views/Free/index.ux

@@ -1,50 +1,55 @@
 <import name="x-book" src="../../components/book/book.ux"></import>
 <template>
-  <list id="free" class="free-wrap" v-if="list.length>0 && isInit">
+  <list id="free" class="free-wrap" v-if="list.length > 0 && isInit">
     <list-item type="tab">
       <div class="type-bar">
         <block for="type in typeList">
           <div class="type-item" @click="typeChange(type.index)">
-            <text class="{{type.index === current ? 'cur' : ''}}">{{type.name}}</text>
+            <text class="{{type.index === current ? 'cur' : ''}}">{{
+              type.name
+            }}</text>
             <text class="choose-bar" show="{{type.index === current}}"></text>
           </div>
         </block>
       </div>
     </list-item>
     <list-item type="banner" class="free-title" if="{{endTime}}">
-      <text>限时免费结束时间:{{endTime}}</text>
+      <text>限时免费结束时间:{{ endTime }}</text>
     </list-item>
     <block for="book in list" if="{{isInit && list.length>0}}">
-      <list-item type="books-item" class="book-list__wrap book-list__wrap--multi">
+      <list-item
+        type="books-item"
+        class="book-list__wrap book-list__wrap--multi"
+      >
         <div class="book-list__multi">
-            <div class="book-item">
-              <x-book multi="{{true}}" width="{{150}}" book="{{book}}">
-                <div class="book-info__multi">
-                  <text class="name">{{book.book_name}}</text>
-                  <text class="intro">{{book.intro}}</text>
-                </div>
-              </x-book>
-            </div>
+          <div class="book-item">
+            <x-book multi="{{true}}" width="{{150}}" book="{{book}}">
+              <div class="book-info__multi">
+                <text class="name">{{ book.book_name }}</text>
+                <text class="intro">{{ book.intro }}</text>
+              </div>
+            </x-book>
+          </div>
         </div>
       </list-item>
     </block>
     <list-item type="blank" if="{{isInit && list.length<=0}}" class="blank_img">
-      <image src="https://cdn-novel.iycdm.com/quickapp/activity/white_shelf.png"></image>
+      <image
+        src="https://cdn-novel.iycdm.com/quickapp/activity/white_shelf.png"
+      ></image>
     </list-item>
   </list>
 </template>
 
 <script>
-import { getFreeBook } from "../../api";
-import router from '@system.router';
-import prompt from '@system.prompt';
-
-
+import { getFreeBook } from '../../api'
+import router from '@system.router'
+import prompt from '@system.prompt'
 
 export default {
   public: {
-    bid: "",
-    chapter_sequence: "",
+    bid: '',
+    chapter_sequence: ''
   },
   private: {
     isInit: false,
@@ -52,11 +57,11 @@ export default {
     endTime: '',
     typeList: [
       {
-        name: "男生",
+        name: '男生',
         index: 1
       },
       {
-        name: "女生",
+        name: '女生',
         index: 2
       }
     ],
@@ -67,25 +72,21 @@ export default {
   },
 
   typeChange(index) {
-    this.current = index;
-    this.getBookList(index);
-
+    this.current = index
+    this.getBookList(index)
   },
   async getBookList(index = 2) {
-    let data = await getFreeBook(index);
+    let data = await getFreeBook(index)
     if (!data || (Array.isArray(data) && data.length <= 0)) {
-      this.list = [];
-      this.endTime = undefined;
-      this.isInit = true;
+      this.list = []
+      this.endTime = undefined
+      this.isInit = true
     } else {
-      this.list = data.list;
-      this.endTime = data.end_time;
-      this.isInit = true;
+      this.list = data.list
+      this.endTime = data.end_time
+      this.isInit = true
     }
-
-  },
-
-
+  }
 }
 </script>
 
@@ -185,7 +186,7 @@ export default {
     }
 
     .cur {
-      color: #3AACFF;
+      color: #1082FE;
       font-size: 36px;
       font-weight: bold;
     }
@@ -193,7 +194,7 @@ export default {
     .choose-bar {
       width: 38px;
       height: 4px;
-      background-color: #3AACFF;
+      background-color: #1082FE;
       border-radius: 2px;
       margin-top: 10px;
     }

+ 132 - 131
src/views/Home/index.ux

@@ -1,16 +1,21 @@
 <import name="x-book" src="../../components/book/book.ux"></import>
- 
+
 <template>
   <div class="home-wrap">
+    <div class="type-wrap_content">
+      <div class="type-wrap">
+        <block for="type in typeList">
+          <div class="type-item" @click="typeChange(type.index)">
+            <text class="{{type.index === current ? 'cur' : ''}}">{{
+              type.name
+            }}</text>
+            <text class="choose-bar" show="{{type.index === current}}"></text>
+          </div>
+        </block>
+      </div>
+    </div>
+
     <div class="type-bar">
-      <block for="type in typeList">
-        <div class="type-item" @click="typeChange(type.index)">
-          <text class="{{type.index === current ? 'cur' : ''}}">{{
-            type.name
-          }}</text>
-          <text class="choose-bar" show="{{type.index === current}}"></text>
-        </div>
-      </block>
       <div class="search-bar__wrap">
         <text @click="toCategory">请输入书名或者作者名</text
         ><image
@@ -18,6 +23,7 @@
         ></image>
       </div>
     </div>
+
     <list class="list-content">
       <list-item type="swipe">
         <swiper class="swipe-bar" autoplay="true" indicator="false">
@@ -36,43 +42,42 @@
         <div class="entrance_block">
           <div>
             <image
-              src="../../assets/imgs/home_fl.png"
-              @click="jump('Category')"
-            ></image
-            ><text>分类</text>
-          </div>
-          <div>
-            <image
-              src="../../assets/imgs/home_rank.png"
-              @click="jump('Leaderboard')"
-            ></image
-            ><text>排行榜</text>
-          </div>
-          <div>
-            <image
               src="../../assets/imgs/home_free.png"
               @click="jump('Free')"
-            ></image
-            ><text>限时免费</text>
-          </div>
-          <div>
-            <image
-              src="../../assets/imgs/home_pre.png"
-              @click="toMyRead"
-            ></image
-            ><text>最近阅读</text>
+            ></image>
           </div>
         </div>
       </list-item>
+
       <block for="bookObj in list">
-        <list-item type="simple" class="book-list__wrap" if="$idx % 2 === 0">
-          <div class="book-list__title">
-            <text>{{ bookObj.lable }}</text>
-          </div>
-          <div class="book-list">
-            <block for="book in bookObj.books">
-              <x-book multi="{{false}}" book="{{book}}"></x-book>
-            </block>
+        <list-item type="simple" class="book-list__wrap" if="$idx % 3 === 0">
+          <div class="book-list_content">
+            <div class="book-list__title">
+              <text class="border"></text>
+              <text>{{ bookObj.lable }}</text>
+            </div>
+            <div class="book-list__multi">
+              <block for="book in bookObj.books.slice(4)">
+                <div class="book-item">
+                  <x-book multi="{{true}}" width="{{150}}" book="{{book}}">
+                    <div class="book-info__multi">
+                      <text class="name">{{ book.book_name }}</text>
+                      <text class="intro">{{ book.book_summary }}</text>
+                    </div>
+                  </x-book>
+                </div>
+              </block>
+            </div>
+            <div class="book-list__line">
+              <block for="book in bookObj.books.slice(0, 4)">
+                <x-book
+                  multi="{{false}}"
+                  width="{{150}}"
+                  lines="{{true}}"
+                  book="{{book}}"
+                ></x-book>
+              </block>
+            </div>
           </div>
         </list-item>
         <list-item
@@ -80,31 +85,15 @@
           class="book-list__wrap book-list__wrap--multi"
           else
         >
-          <div class="book-list__title">
-            <text class="border"></text>
-            <text>{{ bookObj.lable }}</text>
-          </div>
-          <div class="book-list__line">
-            <block for="book in bookObj.books.slice(0, 4)">
-              <x-book
-                multi="{{false}}"
-                width="{{150}}"
-                lines="{{true}}"
-                book="{{book}}"
-              ></x-book>
-            </block>
-          </div>
-          <div class="book-list__multi">
-            <block for="book in bookObj.books.slice(4)">
-              <div class="book-item">
-                <x-book multi="{{true}}" width="{{150}}" book="{{book}}">
-                  <div class="book-info__multi">
-                    <text class="name">{{ book.book_name }}</text>
-                    <text class="intro">{{ book.book_summary }}</text>
-                  </div>
-                </x-book>
-              </div>
-            </block>
+          <div class="book-list_content">
+            <div class="book-list__title">
+              <text>{{ bookObj.lable }}</text>
+            </div>
+            <div class="book-list">
+              <block for="book in bookObj.books">
+                <x-book multi="{{false}}" book="{{book}}"></x-book>
+              </block>
+            </div>
           </div>
         </list-item>
       </block>
@@ -112,12 +101,11 @@
   </div>
 </template>
 
-
 <script>
-import { getHomeList } from "../../api";
+import { getHomeList } from '../../api'
 
-import storage from '@system.storage';
-import router from '@system.router';
+import storage from '@system.storage'
+import router from '@system.router'
 
 export default {
   props: {
@@ -130,11 +118,11 @@ export default {
     return {
       typeList: [
         {
-          name: "男生",
+          name: '男生',
           index: 0
         },
         {
-          name: "女生",
+          name: '女生',
           index: 1
         }
       ],
@@ -144,26 +132,26 @@ export default {
     }
   },
   async onInit() {
-    await this.getCityListByTabChange();
-    this.$on('refreshData', this.broadevt);
-    this.$watch('current', 'getCityListByTabChange');
-    this.$watch('tabindex', 'watchPropsChange');
+    await this.getCityListByTabChange()
+    this.$on('refreshData', this.broadevt)
+    this.$watch('current', 'getCityListByTabChange')
+    this.$watch('tabindex', 'watchPropsChange')
   },
   typeChange(index) {
-    this.current = index;
+    this.current = index
   },
   watchPropsChange(v) {
-    if (v === 0) this.getCityListByTabChange(this.current);
+    if (v === 0) this.getCityListByTabChange(this.current)
   },
   async broadevt(evt) {
     if (evt.detail.current == 0) {
-      await this.getCityListByTabChange(this.current);
+      await this.getCityListByTabChange(this.current)
     }
   },
   toCategory() {
     //this.$emit('change');
     router.push({
-      uri: '/views/Search',
+      uri: '/views/Search'
     })
   },
   pageRouter(page) {
@@ -176,19 +164,19 @@ export default {
     })
   },
   toMyRead() {
-    this.$emit('change');
+    this.$emit('change')
   },
   jump(page) {
     router.push({
-      uri: '/views/' + page,
+      uri: '/views/' + page
     })
   },
   async getCityListByTabChange(index = 1) {
-    await storage.set({ key: "sex", value: index || 0 });
-    let sex = index ? "female" : "male";
-    let ret = await getHomeList(sex);
-    this.banner = ret.slice(0, 1)[0];
-    this.list = ret.slice(1);
+    await storage.set({ key: 'sex', value: index || 0 })
+    let sex = index ? 'female' : 'male'
+    let ret = await getHomeList(sex)
+    this.banner = ret.slice(0, 1)[0]
+    this.list = ret.slice(1)
   }
 }
 </script>
@@ -196,10 +184,44 @@ export default {
 <style lang="less">
 /* @import "../../assets/less/home.less"; */
 .home-wrap {
-  background-color: #fff;
+  background-color: #f5f5f5;
   flex-direction: column;
-  padding-top: 20px;
+  .type-wrap_content {
+    background-color: #ffffff;
+    .type-wrap {
+      background-color: #ffffff;
+      margin: 20px 0;
+      flex-direction: row;
+      .type-item {
+        padding: 0 15px;
+        justify-content: center;
+        align-items: center;
+        flex-direction: column;
+        position: relative;
+        text {
+          font-size: 30px;
+          color: #999;
+        }
+
+        .cur {
+          color: #000000;
+          font-size: 36px;
+          font-weight: bold;
+        }
+
+        .choose-bar {
+          width: 38px;
+          height: 4px;
+          background-color: #1082fe;
+          border-radius: 2px;
+          margin-top: 10px;
+        }
+      }
+    }
+  }
+
   .entrance_block {
+    background-color: #ffffff;
     width: 100%;
     padding: 30px;
     display: flex;
@@ -210,11 +232,10 @@ export default {
         margin-top: 10px;
         text-align: center;
       }
-    }
-    image {
-      width: 80px;
-      height: 80px;
-      margin: 0 auto;
+      image {
+        height: 83px;
+        width: 690px;
+      }
     }
   }
 
@@ -241,32 +262,6 @@ export default {
         color: #999;
       }
     }
-    .type-item {
-      padding: 0 15px;
-      justify-content: center;
-      align-items: center;
-      flex-direction: column;
-      position: relative;
-
-      text {
-        font-size: 30px;
-        color: #999;
-      }
-
-      .cur {
-        color: #3aacff;
-        font-size: 36px;
-        font-weight: bold;
-      }
-
-      .choose-bar {
-        width: 38px;
-        height: 4px;
-        background-color: #3aacff;
-        border-radius: 2px;
-        margin-top: 10px;
-      }
-    }
   }
 
   .search-bar {
@@ -296,8 +291,8 @@ export default {
 
   .swipe-bar {
     height: 260px;
-    // background-color: #fff;
-
+    background-color: #fff;
+    border-radius: 20px;
     .swipe-item {
       padding: 0px 24px;
 
@@ -338,18 +333,25 @@ export default {
   }
 
   .book-list__wrap {
-    background-color: #fff;
-    // margin-top: 24px;
     padding: 0 24px;
     flex-direction: column;
+    .book-list_content {
+      border-radius: 20px;
+      padding: 0 24px;
+      flex-direction: column;
+      background-color: white;
+      margin-top: 30px;
+      .book-list__title {
+        background-color: #fff;
+        padding: 40px 0 30px 0;
+        align-items: center;
+        font-size: 30px;
 
-    .book-list__title {
-      padding: 30px 0;
-      align-items: center;
-
-      text {
-        color: #333;
-        font-size: 32px;
+        text {
+          color: #333;
+          font-size: 32px;
+          font-weight: 900;
+        }
       }
     }
   }
@@ -362,7 +364,6 @@ export default {
   }
 
   .book-list__multi {
-    margin-top: 30px;
     flex-direction: column;
 
     .book-item {

+ 20 - 3
src/views/Index/index.ux

@@ -2,6 +2,7 @@
 <import name="category-page" src="../Category/index.ux"></import>
 <import name="shelf-page" src="../Shelf/index.ux"></import>
 <import name="my-page" src="../My/index.ux"></import>
+<import name="leader-board" src="../Leaderboard/index.ux"></import>
 <import name="sign-page" src="../../components/sign/index.ux"></import>
 <import name="short-page" src="../../components/short/index.ux"></import>
 <template>
@@ -11,6 +12,8 @@
         <tab-content>
           <shelf-page @change="pageTohome" tabindex="{{current}}"></shelf-page>
           <home-page @change="pageSwitch" tabindex="{{current}}"></home-page>
+          <leader-board tabindex="{{current}}"></leader-board>
+          <category-page tabindex="{{current}}"></category-page>
           <my-page @customer="openCustomer" tabindex="{{current}}"></my-page>
         </tab-content>
       </tabs>
@@ -113,19 +116,33 @@ export default {
         index: 0
       },
       {
-        name: '精选',
-        title: '追书云',
+        name: '书城',
+        title: '海天阅读',
         icon: '../../assets/imgs/home.png',
         active_icon: '../../assets/imgs/home_choose.png',
         index: 1
       },
 
       {
+        name: '排行',
+        title: '排行榜',
+        icon: '../../assets/imgs/rank.png',
+        active_icon: '../../assets/imgs/rank_choose.png',
+        index: 2
+      },
+      {
+        name: '分类',
+        title: '分类',
+        icon: '../../assets/imgs/classify.png',
+        active_icon: '../../assets/imgs/classify_choose.png',
+        index: 3
+      },
+      {
         name: '我的',
         title: '个人中心',
         icon: '../../assets/imgs/my.png',
         active_icon: '../../assets/imgs/my_choose.png',
-        index: 2
+        index: 4
       }
     ],
     // current: 0,

+ 126 - 107
src/views/My/index.ux

@@ -1,109 +1,128 @@
 <template>
   <div class="user-wrap">
-    <stack>
-      <div class="user-info__wrap">
-        <image
-          src="../../assets/imgs/user_login.png"
-          if="{{haslogin && loginPhone}}"
-        ></image>
-        <image src="../../assets/imgs/user_logo.png" else></image>
-        <div class="uesr-info__message">
-          <text class="user-name" if="{{haslogin && loginPhone}}"
-            >书友{{ user.id }}</text
-          >
-          <text class="un-Login" else>未登录</text>
-          <text>ID:{{ user.id }}</text>
-          <!-- <text class="vip-card" if="{{user.is_vip}}">免费阅读卡还剩{{ user.vip_days }}</text> -->
-        </div>
-      </div>
-      <div class="my-collect">
-        <div class="collect-content">
-          <text class="collect-info"
-            ><span class="title">我的账户</span
-            ><span class="vip-card" if="{{user.is_vip}}"
-              >免费阅读卡还剩{{ user.vip_days }}</span
-            ></text
-          >
-          <text class="book_coin">书币:{{ user.balance }}</text>
-        </div>
-        <text class="pay-btn" @click="pageChange('Pay')">充值</text>
-      </div>
-    </stack>
-
-    <div class="operator-item__wrap">
-      <div class="operator-item" @click="pageChange('Task')">
-        <div class="item-name">
-          <image src="../../assets/imgs/task.png"></image>
-          <text class="orange">每日做任务,小说免费读</text>
-        </div>
-        <div class="info-text">
-          <image class="arrow" src="../../assets/imgs/arrow-right.png"></image>
-        </div>
-      </div>
-      <div class="operator-item" @click="pageChange('Sign')">
-        <div class="item-name">
-          <image src="../../assets/imgs/sign.png"></image>
-          <text>签到记录</text>
-        </div>
-        <div class="info-text">
-          <image class="arrow" src="../../assets/imgs/arrow-right.png"></image>
-        </div>
-      </div>
-      <div class="operator-item" @click="pageChange('Recharge')">
-        <div class="item-name">
-          <image src="../../assets/imgs/recharge_record.png"></image>
-          <text>充值记录</text>
-        </div>
-        <div class="info-text">
-          <image class="arrow" src="../../assets/imgs/arrow-right.png"></image>
+    <div class="my_title"><text>我的</text></div>
+    <list>
+      <list-item type="mycollect">
+        <div class="my-collect">
+          <div class="user-info__wrap">
+            <image
+              src="../../assets/imgs/user_login.png"
+              if="{{haslogin && loginPhone}}"
+            ></image>
+            <image src="../../assets/imgs/user_logo.png" else></image>
+            <div class="uesr-info__message">
+              <text class="user-name" if="{{haslogin && loginPhone}}"
+                >书友{{ user.id }}</text
+              >
+              <text class="un-Login" else>未登录</text>
+              <text class="user_id">ID:{{ user.id }}</text>
+              <!-- <text class="vip-card" if="{{user.is_vip}}">免费阅读卡还剩{{ user.vip_days }}</text> -->
+            </div>
+          </div>
+          <div class="my-collect-wrap">
+            <div class="collect-content">
+              <text class="collect-info"
+                ><span class="title">我的账户</span
+                ><span class="vip-card" if="{{user.is_vip}}"
+                  >免费阅读卡还剩{{ user.vip_days }}</span
+                ></text
+              >
+              <text class="book_coin">书币:{{ user.balance }}</text>
+            </div>
+            <text class="pay-btn" @click="pageChange('Pay')">充值</text>
+          </div>
         </div>
-      </div>
-      <div class="operator-item" @click="pageChange('Consume')">
-        <div class="item-name">
-          <image src="../../assets/imgs/consume_record.png"></image>
-          <text>消费记录</text>
-        </div>
-        <div class="info-text">
-          <image class="arrow" src="../../assets/imgs/arrow-right.png"></image>
-        </div>
-      </div>
-      <div class="operator-item" @click="showCustomerQrcode">
-        <div class="item-name">
-          <image src="../../assets/imgs/customer.png"></image>
-          <text>联系客服</text>
-        </div>
-        <div class="info-text">
-          <image class="arrow" src="../../assets/imgs/arrow-right.png"></image>
-        </div>
-      </div>
+      </list-item>
+      <list-item type="myitem">
+        <div class="first_item" @click="pageChange('Task')">
+          <image src="../../assets/imgs/task.png"></image></div
+      ></list-item>
+      <list-item type="operatoritem">
+        <div class="operator-item__wrap">
+          <div class="operator-item_wrap_content">
+            <div class="operator-item" @click="pageChange('Sign')">
+              <div class="item-name">
+                <image src="../../assets/imgs/sign.png"></image>
+                <text>签到记录</text>
+              </div>
+              <div class="info-text">
+                <image
+                  class="arrow"
+                  src="../../assets/imgs/arrow-right.png"
+                ></image>
+              </div>
+            </div>
+            <div class="operator-item" @click="pageChange('Recharge')">
+              <div class="item-name">
+                <image src="../../assets/imgs/recharge_record.png"></image>
+                <text>充值记录</text>
+              </div>
+              <div class="info-text">
+                <image
+                  class="arrow"
+                  src="../../assets/imgs/arrow-right.png"
+                ></image>
+              </div>
+            </div>
+            <div class="operator-item" @click="pageChange('Consume')">
+              <div class="item-name">
+                <image src="../../assets/imgs/consume_record.png"></image>
+                <text>消费记录</text>
+              </div>
+              <div class="info-text">
+                <image
+                  class="arrow"
+                  src="../../assets/imgs/arrow-right.png"
+                ></image>
+              </div>
+            </div>
+            <div class="operator-item" @click="showCustomerQrcode">
+              <div class="item-name">
+                <image src="../../assets/imgs/customer.png"></image>
+                <text>联系客服</text>
+              </div>
+              <div class="info-text">
+                <image
+                  class="arrow"
+                  src="../../assets/imgs/arrow-right.png"
+                ></image>
+              </div>
+            </div>
 
-      <div class="operator-item" @click="pageChange('Phone')">
-        <div class="item-name">
-          <image src="../../assets/imgs/binding.png"></image>
-          <text if="{{!(haslogin && loginPhone)}}"> 登录绑定</text>
-          <text else>退出登录</text>
+            <div class="operator-item" @click="pageChange('Phone')">
+              <div class="item-name">
+                <image src="../../assets/imgs/binding.png"></image>
+                <text if="{{!(haslogin && loginPhone)}}"> 登录绑定</text>
+                <text else>退出登录</text>
+              </div>
+              <div class="info-text">
+                <text if="{{!(haslogin && loginPhone)}}"></text>
+                <text else>已绑定手机号</text>
+                <image
+                  class="arrow"
+                  src="../../assets/imgs/arrow-right.png"
+                ></image>
+              </div>
+            </div>
+          </div>
         </div>
-        <div class="info-text">
-          <text if="{{!(haslogin && loginPhone)}}"></text>
-          <text else>已绑定手机号</text>
-          <image class="arrow" src="../../assets/imgs/arrow-right.png"></image>
+      </list-item>
+      <list-item type="bottominfo">
+        <div class="bottom-info">
+          <text @click="pageChange('Agreement')">用户协议</text>
+          <text class="line">|</text>
+          <text @click="pageChange('Privacy')">隐私协议</text>
+          <text if="{{!send_order_id &&  haslogin && loginPhone}}" class="line"
+            >|</text
+          >
+          <text
+            if="{{!send_order_id && haslogin && loginPhone}}"
+            @click="pageChange('Cancellation', { fee: user.balance })"
+            >注销账号</text
+          >
         </div>
-      </div>
-    </div>
-
-    <div class="bottom-info">
-      <text @click="pageChange('Agreement')">用户协议</text>
-      <text class="line">|</text>
-      <text @click="pageChange('Privacy')">隐私协议</text>
-      <text if="{{!send_order_id &&  haslogin && loginPhone}}" class="line"
-        >|</text
-      >
-      <text
-        if="{{!send_order_id && haslogin && loginPhone}}"
-        @click="pageChange('Cancellation', { fee: user.balance })"
-        >注销账号</text
-      >
-    </div>
+      </list-item>
+    </list>
   </div>
 </template>
 
@@ -142,14 +161,14 @@ export default {
     }
   },
   async watchPropsChange(v) {
-    if (v === 2) {
+    if (v === 4) {
       //let s = (await storage.get({ key: 'send_order_id' })).data
       //if (s) this.send_order_id = s
       this.getUser()
     }
   },
   broadevt(evt) {
-    if (evt.detail.current == 2) {
+    if (evt.detail.current == 4) {
       this.getUser()
     }
   },
@@ -171,14 +190,14 @@ export default {
           uri: `/views/Phone`
         })
       }
-    } if (page == 'Privacy') {
+    }
+    if (page == 'Privacy') {
       webview.loadUrl({
-        url: 'https://zhuishuyun.oss-cn-hangzhou.aliyuncs.com/qapp/privacy/zsy_privacy.htm',
+        url:
+          'https://zhuishuyun.oss-cn-hangzhou.aliyuncs.com/qapp/privacy/suishen_privacy.htm',
         showloadingdialog: true
       })
-    }
-
-    else {
+    } else {
       router.push({
         uri: `/views/${page}`,
         params: params ? params : {}

+ 3 - 3
src/views/Phone/index.ux

@@ -70,7 +70,7 @@ export default {
     isOnsend: false,
     checked: false
   },
-  onInit() { },
+  onInit() {},
   async sendMsg() {
     if (this.isOnsend) {
       return false
@@ -115,7 +115,8 @@ export default {
   pageChange(page) {
     if (page == 'Privacy') {
       webview.loadUrl({
-        url: 'https://zhuishuyun.oss-cn-hangzhou.aliyuncs.com/qapp/privacy/zsy_privacy.htm',
+        url:
+          'https://zhuishuyun.oss-cn-hangzhou.aliyuncs.com/qapp/privacy/haoh_privacy.htm',
         showloadingdialog: true
       })
     } else {
@@ -123,7 +124,6 @@ export default {
         uri: `/views/${page}`
       })
     }
-
   },
   //绑定用户
   async bindUser() {

+ 5 - 8
src/views/Privacy/index.ux

@@ -1,16 +1,13 @@
 <template>
-  <div class="demo-page"></div>
+  <div class="demo-page">
+    <
+  </div>
 </template>
 
 <script>
-import webview from '@system.webview'
 export default {
-  private: {},
-  onInit() {
-    
-
-  }
+  private: {}
 }
 </script>
 
-
+<style lang="less"></style>

+ 88 - 56
src/views/Search/index.ux

@@ -1,56 +1,89 @@
 <import name="x-book" src="../../components/book/book.ux"></import>
 <import name="x-loading" src="../../components/loading/loading.ux"></import>
 <template>
-	<div class="serch-wrap">
-		<div class="search-top">
-			<input type="text" id="search" class="serach-input" value="{{inputValue}}" @change="changeValue" enterkeytype="search" placeholder="请输入书名" @enterkeyclick="searchBook" style="placeholder-color:#D9D9D9"></input>
-		</div>
-		<div class="search-content" show="{{showHistory}}">
-			<div class="top-wrap">
-				<text>热门搜索</text>
-				<div @click="nextHot"><text class="changed">换一换</text>
-					<image src="../../assets/imgs/change_other.png" @click="deleteHistory"></image>
-				</div>
-			</div>
-			<div class="history-list" if="{{hotlist.length}}">
-				<text class="history-item" for={{hotlist}} @click="serachItem($item.keyword)">
-					{{$item.keyword}}
-				</text>
-			</div>
-		</div>
-		<div class="search-content" show="{{showHistory}}">
-			<div class="top-wrap">
-				<text>搜索历史</text>
-				<image src="../../assets/imgs/delete.png" @click="deleteHistory"></image>
-			</div>
-			<div class="history-list" if="{{historyList.length}}">
-				<text class="history-item" for={{historyList}} @click="serachItem($item)">
-					{{$item}}
-				</text>
-			</div>
-		</div>
-		<div class="search-content" if={{!list.length&&!showHistory}}>
-			<text class="isempty">{{loadingText}}</text>
-		</div>
-		<list class="list-content" @scrollbottom="onReachBottom" if={{list.length&&!showHistory}} id="list">
-			<list-item type="reslut">
-				<text class="reslut-title">为您搜索出以下内容</text>
-			</list-item>
-			<block for="list">
-				<list-item type="books-item" class="books-item__wrap {{$idx === 0 ? 'book-item__wrap--first' : ''}}">
-					<x-book multi="{{true}}" width="{{150}}" book="{{$item}}">
-						<div class="book-info">
-							<text class="name">{{$item.book_name}}</text>
-							<text class="intro">{{$item.book_summary}}</text>
-						</div>
-					</x-book>
-				</list-item>
-			</block>
-		</list>
-	</div>
+  <div class="serch-wrap">
+    <div class="search-top">
+      <input
+        type="text"
+        id="search"
+        class="serach-input"
+        value="{{inputValue}}"
+        @change="changeValue"
+        enterkeytype="search"
+        placeholder="请输入书名"
+        @enterkeyclick="searchBook"
+        style="placeholder-color:#D9D9D9"
+      />
+    </div>
+    <div class="search-content" show="{{showHistory}}">
+      <div class="top-wrap">
+        <text>热门搜索</text>
+        <div @click="nextHot">
+          <text class="changed">换一换</text>
+          <image
+            src="../../assets/imgs/change_other.png"
+            @click="changed"
+          ></image>
+        </div>
+      </div>
+      <div class="history-list" if="{{hotlist.length}}">
+        <text
+          class="history-item"
+          for="{{hotlist}}"
+          @click="serachItem($item.keyword)"
+        >
+          {{ $item.keyword }}
+        </text>
+      </div>
+    </div>
+    <div class="search-content" show="{{showHistory}}">
+      <div class="top-wrap">
+        <text>搜索历史</text>
+        <image
+          src="../../assets/imgs/delete.png"
+          @click="deleteHistory"
+        ></image>
+      </div>
+      <div class="history-list" if="{{historyList.length}}">
+        <text
+          class="history-item"
+          for="{{historyList}}"
+          @click="serachItem($item)"
+        >
+          {{ $item }}
+        </text>
+      </div>
+    </div>
+    <div class="search-content" if="{{!list.length&&!showHistory}}">
+      <text class="isempty">{{ loadingText }}</text>
+    </div>
+    <list
+      class="list-content"
+      @scrollbottom="onReachBottom"
+      if="{{list.length&&!showHistory}}"
+      id="list"
+    >
+      <list-item type="reslut">
+        <text class="reslut-title">为您搜索出以下内容</text>
+      </list-item>
+      <block for="list">
+        <list-item
+          type="books-item"
+          class="books-item__wrap {{$idx === 0 ? 'book-item__wrap--first' : ''}}"
+        >
+          <x-book multi="{{true}}" width="{{150}}" book="{{$item}}">
+            <div class="book-info">
+              <text class="name">{{ $item.book_name }}</text>
+              <text class="intro">{{ $item.book_summary }}</text>
+            </div>
+          </x-book>
+        </list-item>
+      </block>
+    </list>
+  </div>
 </template>
 <script>
-import { getBooksList, getHotMain,getUserInfo } from "../../api";
+import { getBooksList, getHotMain, getUserInfo } from "../../api";
 import { pageLoad } from "../../helper";
 import storage from '@system.storage';
 import prompt from '@system.prompt';
@@ -65,7 +98,7 @@ export default {
 		list: [],
 		historyList: [],
 		loadingText: "努力搜索ing...",
-		uid:'',
+		uid: '',
 		filter: {
 			key: "",
 			page_size: 100,
@@ -93,10 +126,10 @@ export default {
 		let list = (await storage.get({ key: "history" })).data;
 		let sets = JSON.parse(list)
 		if (sets) this.historyList = sets;
-		
+
 	},
 	async getData(page = 1) {
-		
+
 		let data = await getHotMain(page);
 		this.hotlist = data.list;
 		this.meta = data.meta;
@@ -133,13 +166,12 @@ export default {
 				}
 			],
 			success: function (data) {
-				if (data.index === 0) {
+				if (data.index == 0) {
 					storage.delete({
 						key: 'history',
 						success: function (data) {
 							_self.historyList = [];
-							_self.
-								prompt.showToast({ message: "删除成功" });
+							prompt.showToast({ message: "删除成功" });
 						},
 					})
 				}
@@ -164,7 +196,7 @@ export default {
 			this.meta = {};
 		}
 		let params = this.filter;
-		params.uid =this.uid;
+		params.uid = this.uid;
 		console.log(params);
 		pageLoad(this.meta, getBooksList, params).then(ret => {
 			let newList = isLoad ? this.list : [];
@@ -200,7 +232,7 @@ export default {
 }
 </script>
 <style lang="less">
-@import "../../assets/less/serach.less";
+@import '../../assets/less/serach.less';
 </style>
 
 

+ 76 - 64
src/views/Shelf/index.ux

@@ -1,80 +1,42 @@
 <import name="x-book" src="../../components/book/book.ux"></import>
 
 <template>
-  <div class="shelf-wrap">
-    <div
-      class="shelf-total {{current === 1 ? 'shelf-total__inRecent' : ''}}"
-      if="{{mockList.length>0}}"
-    >
-      <text>共{{ booksize }}本</text>
-      <div if="modeText">
-        <text>
-          <image src="../../assets/imgs/manage.png" class="modeimage"></image>
-        </text>
-        <text @click="changeMode" class="mode-text">{{ modeText }}</text>
-      </div>
-      <div if="!modeText">
-        <text @click="changeMode" class="complete-btn">完成</text>
-      </div>
-    </div>
-    <div if="{{mockList.length<=0 && isinit}}" class="blank_img">
-      <image
-        src="https://cdn-novel.iycdm.com/quickapp/activity/white_shelf.png"
-      ></image>
-    </div>
-    <block if="current === 0">
-      <div class="shelf-books__wrap">
-        <block for="mockList">
-          <div class="book-item__wrap {{(($idx + 1)%3 === 0) ? 'm0' : ''}}">
-            <stack>
-              <x-book book="{{$item}}" read="{{true}}"></x-book>
-              <div
-                class="book-del__wrap"
-                show="{{isDelMode}}"
-                @click="deleteBook($item)"
-              >
-                <image
-                  src="https://yueduyun.oss-cn-hangzhou.aliyuncs.com/xiaochengxu/img/delete.png"
-                ></image>
-                <text>删除</text>
-              </div>
-            </stack>
+  <div class="shelfs">
+    <div class="shelf_title"><text>书架</text></div>
+    <stack class="shelf">
+      <div class="shelf-wrap">
+        <div
+          class="shelf-total {{current === 1 ? 'shelf-total__inRecent' : ''}}"
+          if="{{mockList.length>0}}"
+        >
+          <text>共{{ booksize }}本</text>
+          <div if="modeText" @click="changeMode">
+            <text> </text>
+            <text class="complete-btn">{{ modeText }}</text>
           </div>
-        </block>
-        <div class="book-item__wrap book-item__add m0" @click="toCategory">
+          <div if="!modeText" @click="changeMode">
+            <text class="complete-btn">完成</text>
+          </div>
+        </div>
+        <div if="{{mockList.length<=0 && isinit}}" class="blank_img">
           <image
-            class="add-cover"
-            src="https://yueduyun.oss-cn-hangzhou.aliyuncs.com/xiaochengxu/img/bookstory.png"
+            src="https://cdn-novel.iycdm.com/quickapp/activity/white_shelf.png"
           ></image>
-          <text>添加书籍</text>
         </div>
-      </div>
-    </block>
-    <block else>
-      <list class="recent-list" if="{{mockList.length>0 && isinit}}">
-        <list-item type="recent-item" class="recent-item">
+        <block if="current === 0">
           <div class="shelf-books__wrap">
             <block for="mockList">
               <div class="book-item__wrap {{(($idx + 1)%3 === 0) ? 'm0' : ''}}">
                 <stack>
-                  <x-book
-                    book="{{$item}}"
-                    read="{{true}}"
-                    isshowtext="{{false}}"
-                  >
-                    <div class="item_wrap">
-                      <text class="name">{{ $item.book_name }}</text>
-                      <text class="last-read"
-                        >读到 {{ $item.chapter_name }}</text
-                      >
-                    </div>
-                  </x-book>
+                  <x-book book="{{$item}}" read="{{true}}"></x-book>
                   <div
                     class="book-del__wrap"
                     show="{{isDelMode}}"
                     @click="deleteBook($item)"
                   >
-                    <image src="../../assets/imgs/delete_recent.png"></image>
+                    <image
+                      src="https://yueduyun.oss-cn-hangzhou.aliyuncs.com/xiaochengxu/img/delete.png"
+                    ></image>
                     <text>删除</text>
                   </div>
                 </stack>
@@ -88,9 +50,59 @@
               <text>添加书籍</text>
             </div>
           </div>
-        </list-item>
-      </list>
-    </block>
+        </block>
+        <block else>
+          <list class="recent-list" if="{{mockList.length>0 && isinit}}">
+            <list-item type="recent-item" class="recent-item">
+              <div class="shelf-books__wrap">
+                <block for="mockList">
+                  <div
+                    class="book-item__wrap {{(($idx + 1)%3 === 0) ? 'm0' : ''}}"
+                  >
+                    <stack>
+                      <x-book
+                        book="{{$item}}"
+                        read="{{true}}"
+                        isshowtext="{{false}}"
+                      >
+                        <div class="item_wrap">
+                          <text class="name">{{ $item.book_name }}</text>
+                          <text class="last-read"
+                            >读到 {{ $item.chapter_name }}</text
+                          >
+                        </div>
+                      </x-book>
+                      <div
+                        class="book-del__wrap"
+                        show="{{isDelMode}}"
+                        @click="deleteBook($item)"
+                      >
+                        <image
+                          src="../../assets/imgs/delete_recent.png"
+                        ></image>
+                        <text>删除</text>
+                      </div>
+                    </stack>
+                  </div>
+                  <div if="(($idx + 1)%3 === 0)" class="shelf_bottom">
+                  </div>
+                </block>
+                <div
+                  class="book-item__wrap book-item__add m0"
+                  @click="toCategory"
+                >
+                  <image
+                    class="add-cover"
+                    src="https://yueduyun.oss-cn-hangzhou.aliyuncs.com/xiaochengxu/img/bookstory.png"
+                  ></image>
+                  <text>添加书籍</text>
+                </div>
+              </div>
+            </list-item>
+          </list>
+        </block>
+      </div>
+    </stack>
   </div>
 </template>
 

+ 1 - 1
src/views/Task/index.ux

@@ -293,7 +293,7 @@ export default {
         success: ret => {
           if (!ret) {
             shortcut.install({
-              message: '添加【追书云】到桌面,方便下次阅读',
+              message: '添加【海天阅读】到桌面,方便下次阅读',
               success: () => {
                 prompt.showToast('添加成功!')
                 userAddDsktop(1)