From ecabd20b3dfbd956dad14ffb6ba3dc2efcfdd7c1 Mon Sep 17 00:00:00 2001
From: yiming <m13691596795@163.com>
Date: 星期一, 25 三月 2024 16:23:32 +0800
Subject: [PATCH] 微信支付

---
 packageBookService/pages/bookServices/list/index.wxml                                    |  115 +++
 packageBookService/pages/bookServices/examination/questionList/index.wxml                |   14 
 packageBookService/pages/bookServices/detail/buyResource/index.js                        |  270 ++++++++
 static/images/bookService/detail/weidian.png                                             |    0 
 static/images/bookService/examination/datika-w.png                                       |    0 
 packageBookService/pages/bookServices/detail/index.wxml                                  |  105 ++-
 packageBookService/pages/bookServices/buyResource/index.wxml                             |    2 
 static/images/bookService/examination/chongzuo-w.png                                     |    0 
 packageBookService/pages/bookServices/examination/examination.js                         |  158 ----
 packageBookService/pages/bookServices/buyResource/index.js                               |   66 ++
 packageBookService/pages/bookServices/detail/components/webView/index.js                 |  110 +++
 packageBookService/pages/bookServices/list/index.js                                      |    4 
 packageBookService/pages/bookServices/detail/buyResource/index.wxss                      |   33 +
 pages/bookServices/assort/index.wxml                                                     |  111 +++
 packageBookService/pages/bookServices/detail/components/webView/index.json               |    4 
 packageBookService/pages/bookServices/examination/questionSchedule/index.js              |    3 
 static/images/bookService/examination/yejian-click.png                                   |    0 
 pages/cart/paymentPage/index.wxss                                                        |    5 
 packageBookService/pages/bookServices/examination/questionOptions/index.js               |    4 
 packageBookService/pages/bookServices/detail/components/suggest/suggest.js               |    8 
 packageBookService/pages/bookServices/detail/components/tree/index.wxss                  |    5 
 static/images/bookService/examination/rijian.png                                         |    0 
 pages/cart/index.js                                                                      |    8 
 pages/cart/paymentPage/index.js                                                          |   43 +
 packageBookService/pages/bookServices/detail/components/webView/index.wxss               |    4 
 packageBookService/pages/bookServices/detail/buyResource/index.json                      |    8 
 packageBookService/pages/bookServices/detail/components/testResource/testResource.wxss   |    5 
 packageBookService/pages/bookServices/examination/questionList/index.wxss                |    2 
 pages/home/home.js                                                                       |    2 
 packageBookService/pages/bookServices/buyResource/index.json                             |    3 
 packageBookService/pages/bookServices/detail/index.wxss                                  |   31 
 pages/bookServices/assort/index.js                                                       |    3 
 packageBookService/pages/bookServices/buyResource/index.wxss                             |    1 
 packageBookService/pages/bookServices/detail/components/brief/index.js                   |    3 
 static/images/bookService/examination/setting-w.png                                      |    0 
 packageBookService/pages/bookServices/examination/examination.wxml                       |    4 
 packageBookService/pages/bookServices/examination/questionOptions/index.wxml             |   48 
 packageBookService/pages/bookServices/examination/questionSchedule/index.wxml            |    2 
 packageBookService/pages/bookServices/detail/components/note/note.js                     |    1 
 packageBookService/pages/bookServices/detail/buyResource/index.wxml                      |   27 
 assets/js/config.js                                                                      |    4 
 packageBookService/pages/bookServices/detail/index.js                                    |  169 ++++-
 pages/bookServices/assort/index.wxss                                                     |    4 
 packageBookService/pages/bookServices/detail/components/note/note.wxml                   |   89 ++
 packageBookService/pages/bookServices/detail/components/learnResource/learnResource.wxml |   34 
 static/images/bookService/examination/rijian-click.png                                   |    0 
 packageBookService/pages/bookServices/detail/components/brief/index.wxml                 |   10 
 packageBookService/pages/bookServices/detail/index.json                                  |    2 
 pages/cart/paymentPage/index.wxml                                                        |    1 
 pages/retrievalPage/index.wxss                                                           |    4 
 app.json                                                                                 |    4 
 packageBookService/pages/bookServices/detail/components/tree/index.wxml                  |  161 ++++
 packageBookService/pages/bookServices/detail/components/learnResource/learnResource.js   |   27 
 static/images/bookService/examination/wodeshoucang-w.png                                 |    0 
 packageBookService/pages/bookServices/detail/components/webView/index.wxml               |    4 
 packageDomain/pages/resourceDetails/myAudio/index.wxss                                   |    2 
 packageBookService/pages/bookServices/detail/components/testResource/testResource.wxml   |   93 ++
 57 files changed, 1,414 insertions(+), 406 deletions(-)

diff --git a/app.json b/app.json
index 2b71cb4..8f90f72 100644
--- a/app.json
+++ b/app.json
@@ -52,7 +52,9 @@
         "pages/bookServices/detail/index",
         "pages/bookServices/examination/examination",
         "pages/bookServices/webpage/index",
-        "pages/components/webView/index"
+        "pages/components/webView/index",
+        "pages/bookServices/buyResource/index",
+        "pages/bookServices/detail/buyResource/index"
       ]
     }
   ],
diff --git a/assets/js/config.js b/assets/js/config.js
index f1adde9..4ede485 100644
--- a/assets/js/config.js
+++ b/assets/js/config.js
@@ -20,8 +20,8 @@
 export const fontUrl = "http://192.168.3.132:5173";
 // export const fontUrl = "http://182.92.203.7:3007/jsek/website";
 // export const fontUrl = "http://jsysf.bnuic.com/website";
-// export const epubUrl = "http://182.92.203.7:3007/epubReadMobile/";
-export const epubUrl = "http://jsysf.bnuic.com/epubReadMobile/#/";
+export const epubUrl = "http://182.92.203.7:3007/epubReadMobile/";
+// export const epubUrl = "http://jsysf.bnuic.com/epubReadMobile/#/";
 
 const config = {
   requestCtx,
diff --git a/packageBookService/pages/bookServices/buyResource/index.js b/packageBookService/pages/bookServices/buyResource/index.js
new file mode 100644
index 0000000..c989574
--- /dev/null
+++ b/packageBookService/pages/bookServices/buyResource/index.js
@@ -0,0 +1,66 @@
+// packageBookService/pages/bookServices/buyResource/index.js
+Page({
+
+  /**
+   * 椤甸潰鐨勫垵濮嬫暟鎹�
+   */
+  data: {
+
+  },
+
+  /**
+   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍔犺浇
+   */
+  onLoad(options) {
+
+  },
+
+  /**
+   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍒濇娓叉煋瀹屾垚
+   */
+  onReady() {
+
+  },
+
+  /**
+   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鏄剧ず
+   */
+  onShow() {
+
+  },
+
+  /**
+   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰闅愯棌
+   */
+  onHide() {
+
+  },
+
+  /**
+   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍗歌浇
+   */
+  onUnload() {
+
+  },
+
+  /**
+   * 椤甸潰鐩稿叧浜嬩欢澶勭悊鍑芥暟--鐩戝惉鐢ㄦ埛涓嬫媺鍔ㄤ綔
+   */
+  onPullDownRefresh() {
+
+  },
+
+  /**
+   * 椤甸潰涓婃媺瑙﹀簳浜嬩欢鐨勫鐞嗗嚱鏁�
+   */
+  onReachBottom() {
+
+  },
+
+  /**
+   * 鐢ㄦ埛鐐瑰嚮鍙充笂瑙掑垎浜�
+   */
+  onShareAppMessage() {
+
+  }
+})
\ No newline at end of file
diff --git a/packageBookService/pages/bookServices/buyResource/index.json b/packageBookService/pages/bookServices/buyResource/index.json
new file mode 100644
index 0000000..8835af0
--- /dev/null
+++ b/packageBookService/pages/bookServices/buyResource/index.json
@@ -0,0 +1,3 @@
+{
+  "usingComponents": {}
+}
\ No newline at end of file
diff --git a/packageBookService/pages/bookServices/buyResource/index.wxml b/packageBookService/pages/bookServices/buyResource/index.wxml
new file mode 100644
index 0000000..5795b03
--- /dev/null
+++ b/packageBookService/pages/bookServices/buyResource/index.wxml
@@ -0,0 +1,2 @@
+<!--packageBookService/pages/bookServices/buyResource/index.wxml-->
+<text>packageBookService/pages/bookServices/buyResource/index.wxml</text>
diff --git a/packageBookService/pages/bookServices/buyResource/index.wxss b/packageBookService/pages/bookServices/buyResource/index.wxss
new file mode 100644
index 0000000..df43765
--- /dev/null
+++ b/packageBookService/pages/bookServices/buyResource/index.wxss
@@ -0,0 +1 @@
+/* packageBookService/pages/bookServices/buyResource/index.wxss */
\ No newline at end of file
diff --git a/packageBookService/pages/bookServices/detail/buyResource/index.js b/packageBookService/pages/bookServices/detail/buyResource/index.js
new file mode 100644
index 0000000..dc40f65
--- /dev/null
+++ b/packageBookService/pages/bookServices/detail/buyResource/index.js
@@ -0,0 +1,270 @@
+// packageBookService/pages/bookServices/detail/buyResource/index.js
+const app = getApp()
+Page({
+
+  /**
+   * 椤甸潰鐨勫垵濮嬫暟鎹�
+   */
+  data: {
+    barHeight: '',
+    navBarHeight: '',
+    learn: [],
+    openLearnids: [],
+    bookId: '',
+    loading: false,
+  },
+
+  /**
+   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍔犺浇
+   */
+  onLoad(options) {
+    const systInfo = wx.getSystemInfoSync();
+    const menu = wx.getMenuButtonBoundingClientRect(); // 鑳跺泭淇℃伅
+    const navBarHeight = (menu.top - systInfo.statusBarHeight) * 2 + menu.height; // 瀵艰埅鏍忛珮搴�
+    this.setData({
+      barHeight: systInfo.statusBarHeight,
+      navBarHeight: navBarHeight,
+      bookId: options.bookId
+    });
+    this.getResourceClass()
+    console.log(options);
+    this.getResourceData({ productLinkPath: options.productLinkPath, refCode: options.refCode })
+  },
+
+  /**
+   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍒濇娓叉煋瀹屾垚
+   */
+  onReady() {
+
+  },
+
+  /**
+   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鏄剧ず
+   */
+  onShow() {
+
+  },
+
+  /**
+   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰闅愯棌
+   */
+  onHide() {
+
+  },
+
+  /**
+   * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍗歌浇
+   */
+  onUnload() {
+
+  },
+
+  /**
+   * 椤甸潰鐩稿叧浜嬩欢澶勭悊鍑芥暟--鐩戝惉鐢ㄦ埛涓嬫媺鍔ㄤ綔
+   */
+  onPullDownRefresh() {
+
+  },
+
+  /**
+   * 椤甸潰涓婃媺瑙﹀簳浜嬩欢鐨勫鐞嗗嚱鏁�
+   */
+  onReachBottom() {
+
+  },
+
+  /**
+   * 鐢ㄦ埛鐐瑰嚮鍙充笂瑙掑垎浜�
+   */
+  onShareAppMessage() {
+
+  },
+  goBack() {
+    wx.navigateBack()
+  },
+  //  鑾峰彇鏁欏璧勬簮  浜戝涔�  浜戞祴璇�
+  getResourceData(type) {
+    this.setData({
+      loading: true,
+      noResources: false
+    })
+    let query = {
+      path: '*',
+      queryType: '*',
+      productId: this.data.bookId,
+      cmsPath: type.productLinkPath,
+      itemFields: {
+        SysType: 'CmsFolder',
+        // 璧勬簮绫诲瀷锛岃瘯璇绘枃浠讹紝鏄惁鍏佽涓嬭浇绛夊弬鏁�
+        selectType: [],
+        freeFile: [],
+        file: [],
+        resourcesClassification: [],
+        isDownload: [],
+        jsek_resourceBrief: [],
+        jsek_link: [],
+        jsek_questionBank: []
+      },
+      pading: {
+        start: 0,
+        size: 999
+      },
+    }
+    app.MG.store
+      .getProductDetail(query)
+      .then(async (res) => {
+        if (!res.datas.cmsDatas[0].datas.length) {
+          return this.setData({
+            noResources: true,
+            loading: false
+          })
+        }
+        //鏁欏璧勬簮 浜戝涔�
+        if (type.refCode == 'jsek_teachingResources' || type.refCode == 'jsek_cloudLearning') {
+          if (res.datas.cmsDatas[0].datas.length > 0) {
+            res.datas.cmsDatas[0].datas.forEach(item => {
+              item.checked = false
+            })
+            const list = await this.getAllResource(res.datas.cmsDatas[0].datas)
+            if (type.refCode == 'jsek_teachingResources') {
+              this.setData({
+                teach: list,
+                loading: false
+              })
+              this.findChildIds(this.data.teach, this.data.openTeachids = [])
+            } else if (type.refCode == 'jsek_cloudLearning') {
+              res.datas.cmsDatas[0].datas.forEach(item => {
+                item.checked = false
+              })
+              const list = await this.getAllResource(res.datas.cmsDatas[0].datas)
+              this.setData({
+                learn: list,
+                loading: false
+              })
+              this.findChildIds(this.data.learn, this.data.openLearnids = [])
+            }
+          } else {
+            // 鏃犳暟鎹�
+          }
+        } else if (type.refCode == 'jsek_questionBank') {
+          // const list = await this.getAllResource(res.datas.cmsDatas[0].datas)
+          this.setData({
+            test: res.datas.cmsDatas[0].datas,
+            loading: false
+          })
+        } else {
+          console.log('鍏朵粬');
+        }
+      })
+      .catch((e) => {
+        console.log(e)
+      })
+  },
+  // 鑾峰彇tag涓嬫墍鏈夎祫婧�
+  async getAllResource(data) {
+    if (!data.length) return false
+    for (let i = 0; i < data.length; i++) {
+      let item = data[i]
+      if (item.sysType == 'CmsFolder' && item.childrenCount > 0) {
+        item.children = []
+        item.children = await this.getFolderItem(item.productLinkPath)
+        await this.getAllResource(item.children)
+      }
+    }
+    return data
+  },
+  // 鑾峰彇璧勬簮鎺ュ彛
+  async getFolderItem(path) {
+    let query = {
+      path: '*',
+      queryType: '*',
+      productId: this.data.bookId,
+      cmsPath: path,
+      itemFields: {
+        SysType: 'CmsFolder',
+        // 璧勬簮绫诲瀷锛岃瘯璇绘枃浠讹紝鏄惁鍏佽涓嬭浇绛夊弬鏁�
+        selectType: [],
+        freeFile: [],
+        file: [],
+        protectedFile: [],
+        resourcesClassification: [],
+        isDownload: [],
+        jsek_resourceBrief: [],
+        jsek_link: [],
+        accessType: []
+      },
+      pading: {
+        start: 0,
+        size: 999
+      },
+    }
+    const data = await app.MG.store.getProductDetail(query)
+    data.datas.cmsDatas[0].datas.forEach((item) => {
+      this.data.resourceClassList.forEach((type) => {
+        if (type.value == item.resourcesClassification) item.resourceClass = type.name
+      })
+      // 缃戦〉 涓嶈兘涓嬭浇 绉佹湁鏂囦欢
+      if (item.sysType == 'CmsItem') {
+        if (item.selectType == 'webpage') {
+          item.disabled = true
+        } else {
+          if (item.isDownload != 1) {
+            item.disabled = true
+          }
+        }
+        if (item.file) {
+          if (item.fileMap[item.file].protectType == 'Private') item.disabled = true
+        }
+      }
+    })
+    data.datas.cmsDatas[0].datas.forEach(item => {
+      if (this.data.tabValue == 'jsek_teachingResources') {
+        item.checked = false
+      } else if (this.data.tabValue == 'jsek_cloudLearning') {
+        item.checked = false
+        item.isbuy = this.resourceIsBuy(item)
+        item.isShopCar = this.isShoppingCart(item)
+      }
+    })
+    return data.datas.cmsDatas[0].datas
+  },
+  // 鑾峰彇灞曞紑椤�
+  findChildIds(data, result) {
+    let index = 0
+    for (let i = 0; i < data.length; i++) {
+      if (index < 3) {
+        const item = data[i]
+        if (item.childrenFolderCount > 0) {
+          result.push(item.id)
+          for (let j = 0; j < item.children.length; j++) {
+            if (index < 3) {
+              const childrenItme = item.children[j]
+              if (item.childrenCount > 0) {
+                result.push(childrenItme.id)
+                index += 1
+              }
+            } else {
+              break
+            }
+          }
+        } else if (item.childrenCount > 0) {
+          result.push(item.id)
+          index += 1
+        }
+      } else {
+        break
+      }
+    }
+  },
+  // 鑾峰彇璧勬簮鎵�灞炲垎绫�
+  getResourceClass() {
+    let query = {
+      refCodes: ['resourcesClassification']
+    }
+    app.MG.store.getProductTypeField(query).then((res) => {
+      this.setData({
+        resourceClassList: JSON.parse(res[0].config).option
+      })
+    })
+  },
+})
\ No newline at end of file
diff --git a/packageBookService/pages/bookServices/detail/buyResource/index.json b/packageBookService/pages/bookServices/detail/buyResource/index.json
new file mode 100644
index 0000000..dcaf1f1
--- /dev/null
+++ b/packageBookService/pages/bookServices/detail/buyResource/index.json
@@ -0,0 +1,8 @@
+{
+  "usingComponents": {
+    "t-icon": "tdesign-miniprogram/icon/icon",
+    "tree": "/packageBookService/pages/bookServices/detail/components/tree/index",
+    "t-loading": "tdesign-miniprogram/loading/loading"
+  },
+  "navigationStyle": "custom"
+}
\ No newline at end of file
diff --git a/packageBookService/pages/bookServices/detail/buyResource/index.wxml b/packageBookService/pages/bookServices/detail/buyResource/index.wxml
new file mode 100644
index 0000000..e628055
--- /dev/null
+++ b/packageBookService/pages/bookServices/detail/buyResource/index.wxml
@@ -0,0 +1,27 @@
+<!--packageBookService/pages/bookServices/detail/buyResource/index.wxml-->
+<!--瀵艰埅鍖哄煙 -->
+<view style="width: 100%; height: {{barHeight}}px; "></view>
+<view class="nacigationBar" style="width: 70%; height: {{navBarHeight}}px;">
+  <view class="flex">
+    <view>
+      <t-icon
+        name="chevron-left"
+        size="30"
+        data-name="{{item}}"
+        bind:click="goBack"
+      />
+    </view>
+    <view class="navbar-title">璧勬簮璐拱</view>
+  </view>
+  <view> 鍏ㄩ�� </view>
+</view>
+
+<!-- 鍐呭 -->
+
+<view class="buy-resource" wx:if="{{!loading}}">
+  <tree treeList="{{learn}}" tab="{{'jsek_cloudLearning'}}" />
+</view>
+
+<view class="noData" wx:if="{{loading}}">
+  <t-loading size="60rpx" loading="{{loading}}" />
+</view>
diff --git a/packageBookService/pages/bookServices/detail/buyResource/index.wxss b/packageBookService/pages/bookServices/detail/buyResource/index.wxss
new file mode 100644
index 0000000..af2f4f2
--- /dev/null
+++ b/packageBookService/pages/bookServices/detail/buyResource/index.wxss
@@ -0,0 +1,33 @@
+/* packageBookService/pages/bookServices/detail/buyResource/index.wxss */
+.nacigationBar {
+  background-color: #fff;
+  display: flex;
+  align-items: center;
+  justify-content: space-between;
+}
+
+.navbar-title {
+  white-space: nowrap;
+  overflow: hidden;
+  text-overflow: ellipsis;
+  color: #0F1214;
+  font-size: 40rpx;
+  font-weight: bold;
+}
+
+.flex {
+  display: flex;
+}
+
+.space-between {
+  justify-content: space-between;
+}
+
+.noData {
+  width: 100%;
+  height: 100%;
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  --td-loading-color: #ff6c00;
+}
\ No newline at end of file
diff --git a/packageBookService/pages/bookServices/detail/components/brief/index.js b/packageBookService/pages/bookServices/detail/components/brief/index.js
index ad255bb..3f493b3 100644
--- a/packageBookService/pages/bookServices/detail/components/brief/index.js
+++ b/packageBookService/pages/bookServices/detail/components/brief/index.js
@@ -8,5 +8,8 @@
       type: String,
       value: '',
     },
+  },
+  data:{
+    richStyle:'font-size: 28rpx;color: #333; line-height: 48rpx;text-align: justify;'
   }
 });
diff --git a/packageBookService/pages/bookServices/detail/components/brief/index.wxml b/packageBookService/pages/bookServices/detail/components/brief/index.wxml
index 4f3471a..7f221b6 100644
--- a/packageBookService/pages/bookServices/detail/components/brief/index.wxml
+++ b/packageBookService/pages/bookServices/detail/components/brief/index.wxml
@@ -2,19 +2,19 @@
   <view class="basic" wx:if="{{content}}">
     <view class="basic-title">
       <view>
-        <t-image src="/static/images/bookService/detail/label.png"></t-image>
+        <image src="/static/images/bookService/detail/label.png" />
       </view>
       <view class="title-name">鍩烘湰淇℃伅</view>
     </view>
-    <rich-text nodes="{{content}}" style="font-size: 28rpx; color: #333; line-height: 48rpx; text-align: justify"></rich-text>
+    <rich-text nodes="{{content}}" style="{{richStyle}}"></rich-text>
   </view>
   <view class="basic" wx:if="{{authorIntroduction}}">
     <view class="basic-title">
       <view>
-        <t-image src="/static/images/bookService/detail/author.png"></t-image>
+        <image src="/static/images/bookService/detail/author.png" />
       </view>
       <view class="title-name">浣滆�呯畝浠�</view>
     </view>
   </view>
-  <rich-text nodes="{{authorIntroduction}}" style="font-size: 28rpx; color: #333; line-height: 48rpx; text-align: justify" />
-</view>
\ No newline at end of file
+  <rich-text nodes="{{authorIntroduction}}" style="{{richStyle}}" />
+</view>
diff --git a/packageBookService/pages/bookServices/detail/components/learnResource/learnResource.js b/packageBookService/pages/bookServices/detail/components/learnResource/learnResource.js
index 3a67e7b..ed3f0eb 100644
--- a/packageBookService/pages/bookServices/detail/components/learnResource/learnResource.js
+++ b/packageBookService/pages/bookServices/detail/components/learnResource/learnResource.js
@@ -4,7 +4,12 @@
    * 缁勪欢鐨勫睘鎬у垪琛�
    */
   properties: {
-
+    buyResourceData: {
+      type: Object,
+    },
+    bookId: {
+      type: Number
+    }
   },
 
   /**
@@ -27,14 +32,20 @@
       } // 瑙﹀彂浜嬩欢鐨勯�夐」
       this.triggerEvent('getFreeResource', myEventDetail, myEventOption)
     },
-    allAddShoppiingCar() {
-      var myEventDetail = {} // detail瀵硅薄锛屾彁渚涚粰浜嬩欢鐩戝惉鍑芥暟
-      var myEventOption = {
-        bubbles: true,
-        composed: true
-      } // 瑙﹀彂浜嬩欢鐨勯�夐」
-      this.triggerEvent('allAddShoppiingCar', myEventDetail, myEventOption)
+    // allAddShoppiingCar() {
+    //   var myEventDetail = {} // detail瀵硅薄锛屾彁渚涚粰浜嬩欢鐩戝惉鍑芥暟
+    //   var myEventOption = {
+    //     bubbles: true,
+    //     composed: true
+    //   } // 瑙﹀彂浜嬩欢鐨勯�夐」
+    //   this.triggerEvent('allAddShoppiingCar', myEventDetail, myEventOption)
+    // },
+    goBuyResource() {
+      wx.navigateTo({
+        url: `/packageBookService/pages/bookServices/detail/buyResource/index?productLinkPath=${this.properties.buyResourceData.productLinkPath}&refCode=${this.properties.buyResourceData.refCode}&bookId=${this.properties.bookId}`,
+      })
     },
+
     changeReceive(type) {
       this.setData({
         receive: type
diff --git a/packageBookService/pages/bookServices/detail/components/learnResource/learnResource.wxml b/packageBookService/pages/bookServices/detail/components/learnResource/learnResource.wxml
index 4dde643..6f9de93 100644
--- a/packageBookService/pages/bookServices/detail/components/learnResource/learnResource.wxml
+++ b/packageBookService/pages/bookServices/detail/components/learnResource/learnResource.wxml
@@ -1,15 +1,33 @@
 <!--pages/bookServices/detail/components/learnResource/learnResource.wxml-->
 <view class="learnResource" theme="primary">
-  <t-button loading="{{receive}}" class="btn" theme="primary" style="height: 72rpx; font-size: 28rpx; " t-class="external-class" bind:tap="getFreeResource">
-    <t-image src=" /static/images/bookService/detail/yijianlingqu.png"></t-image>
+  <t-button
+    loading="{{receive}}"
+    class="btn"
+    theme="primary"
+    style="height: 72rpx; font-size: 28rpx"
+    t-class="external-class"
+    bind:tap="getFreeResource"
+  >
+    <image src=" /static/images/bookService/detail/yijianlingqu.png" />
     <text>棰嗗彇鏌ョ湅</text>
   </t-button>
-  <t-button loading="{{buy}}" class="btn" theme="primary" style="height: 72rpx; font-size: 28rpx;" bind:tap="allAddShoppiingCar">
-    <t-image src="/static/images/bookService/detail/yijiangoumai.png"></t-image>
-    涓�閿喘涔�
+  <t-button
+    loading="{{buy}}"
+    class="btn"
+    theme="primary"
+    style="height: 72rpx; font-size: 28rpx"
+    bind:tap="goBuyResource"
+  >
+    <image src="/static/images/bookService/detail/yijiangoumai.png" />
+    璧勬簮璐拱
   </t-button>
-  <t-button class="btn" theme="primary" style="height: 72rpx; font-size: 28rpx;" wx:if="{{false}}">
-    <t-image src="/static/images/bookService/detail/renwudan锛廼con.png"></t-image>
+  <t-button
+    class="btn"
+    theme="primary"
+    style="height: 72rpx; font-size: 28rpx"
+    wx:if="{{false}}"
+  >
+    <image src="/static/images/bookService/detail/renwudan锛廼con.png" />
     瀛︿範浠诲姟鍗�
   </t-button>
-</view>
\ No newline at end of file
+</view>
diff --git a/packageBookService/pages/bookServices/detail/components/note/note.js b/packageBookService/pages/bookServices/detail/components/note/note.js
index 64cc2ad..5f4fb5e 100644
--- a/packageBookService/pages/bookServices/detail/components/note/note.js
+++ b/packageBookService/pages/bookServices/detail/components/note/note.js
@@ -141,7 +141,6 @@
         loading: true,
         noList: false
       })
-      console.log(this.properties.bookInfo.id, 'this.properties.bookInfo.id');
       let topicId
       await app.MG.ugc
         .getProductUserSubmitTopic({
diff --git a/packageBookService/pages/bookServices/detail/components/note/note.wxml b/packageBookService/pages/bookServices/detail/components/note/note.wxml
index bd0ab06..1a1f5e5 100644
--- a/packageBookService/pages/bookServices/detail/components/note/note.wxml
+++ b/packageBookService/pages/bookServices/detail/components/note/note.wxml
@@ -1,19 +1,30 @@
 <!--pages/bookServices/detail/components/note/note.wxml-->
 <view class="note">
   <view class="note-btn">
-    <t-button theme="primary" class="make-note" bind:tap="openDialog" style="width: 240rpx;">
+    <t-button
+      theme="primary"
+      class="make-note"
+      bind:tap="openDialog"
+      style="width: 240rpx"
+    >
       <view slot="content">
-        <t-image src="/static/images/bookService/detail/makeNote.png"></t-image>
+        <image src="/static/images/bookService/detail/makeNote.png" />
         璁扮瑪璁�
       </view>
     </t-button>
   </view>
   <view class="note-content">
-
-    <t-collapse value="{{activeValues}}" bind:change="handleChange" wx:if="{{!loading && noteList.length}}">
+    <t-collapse
+      value="{{activeValues}}"
+      bind:change="handleChange"
+      wx:if="{{!loading && noteList.length}}"
+    >
       <t-collapse-panel value="{{item.id}}" expandIcon wx:for="{{noteList}}">
         <view slot="header" class="collapse-header">
-          <t-image class="note-icon" src="/static/images/bookService/detail/note-icon.png"></t-image>
+          <t-image
+            class="note-icon"
+            src="/static/images/bookService/detail/note-icon.png"
+          ></t-image>
           <view class="header-name">{{item.name}}</view>
         </view>
         <view>
@@ -21,8 +32,18 @@
           <view class="note-bottom">
             <view class="note-time">{{item.createDate}}</view>
             <view class="bottom-btn">
-              <t-image src="/static/images/bookService/detail/compliceHover.png" class="complice" bind:tap="editNote" data-note="{{item}}"></t-image>
-              <t-image src="/static/images/bookService/detail/deleteHover.png" class="delete" bind:tap="deleteNote" data-id="{{item.id}}"></t-image>
+              <image
+                src="/static/images/bookService/detail/compliceHover.png"
+                class="complice"
+                bind:tap="editNote"
+                data-note="{{item}}"
+              />
+              <image
+                src="/static/images/bookService/detail/deleteHover.png"
+                class="delete"
+                bind:tap="deleteNote"
+                data-id="{{item.id}}"
+              />
             </view>
           </view>
         </view>
@@ -37,29 +58,65 @@
     <text wx:if="{{isMore == false}}">娌℃湁鏇村浜�</text>
   </view>
 </view>
-<view class="loading-box" wx:if="{{loading}}" >
+<view class="loading-box" wx:if="{{loading}}">
   <t-loading loading="{{loading}}" size="60rpx"></t-loading>
 </view>
 
-
 <!-- 璁扮瑪璁板脊绐� -->
-<t-popup visible="{{showNoteDialog}}" bind:visible-change="onVisibleChange" placement="center">
+<t-popup
+  visible="{{showNoteDialog}}"
+  bind:visible-change="onVisibleChange"
+  placement="center"
+>
   <view class="popup">
     <view slot="title">
       <view class="title-text" wx:if="{{!flag}}">
         <text class="note-title">{{submitTitle}}</text>
-        <t-image src="/static/images/bookService/detail/edit.png" class="edit-icon" bind:tap="changeTitle" data-value="{{true}}"></t-image>
+        <t-image
+          src="/static/images/bookService/detail/edit.png"
+          class="edit-icon"
+          bind:tap="changeTitle"
+          data-value="{{true}}"
+        ></t-image>
       </view>
       <view wx:else>
-        <t-input value="{{submitTitle}}" data-value="{{false}}" bind:enter="changeTitle" bind:blur="changeTitle" bind:change="inputChange" maxlength="{{50}}" style="{{inputStyle}}"></t-input>
+        <t-input
+          value="{{submitTitle}}"
+          data-value="{{false}}"
+          bind:enter="changeTitle"
+          bind:blur="changeTitle"
+          bind:change="inputChange"
+          maxlength="{{50}}"
+          style="{{inputStyle}}"
+        ></t-input>
       </view>
     </view>
     <view slot="content" class="content">
-      <t-textarea value="{{textvalue}}" t-class="external-class" label="" placeholder="璇疯緭鍏ョ瑪璁板唴瀹�" maxcharacter="500" disableDefaultPadding="{{true}}" indicator bind:change="textareaChange" bind:blur="" style="{{inputStyle}}" placeholder-style="{{placeholderstyle}}" />
+      <t-textarea
+        value="{{textvalue}}"
+        t-class="external-class"
+        label=""
+        placeholder="璇疯緭鍏ョ瑪璁板唴瀹�"
+        maxcharacter="500"
+        disableDefaultPadding="{{true}}"
+        indicator
+        bind:change="textareaChange"
+        bind:blur=""
+        style="{{inputStyle}}"
+        placeholder-style="{{placeholderstyle}}"
+      />
     </view>
     <view class="submit-btn">
-      <t-button theme="primary" size="large" block bind:tap="confirmSuggest">鎻愪氦</t-button>
+      <t-button theme="primary" size="large" block bind:tap="confirmSuggest"
+        >鎻愪氦</t-button
+      >
     </view>
   </view>
-  <t-icon t-class="close-btn" name="close-circle" size="32" color="#fff" bind:tap="closeDialog" />
-</t-popup>
\ No newline at end of file
+  <t-icon
+    t-class="close-btn"
+    name="close-circle"
+    size="32"
+    color="#fff"
+    bind:tap="closeDialog"
+  />
+</t-popup>
diff --git a/packageBookService/pages/bookServices/detail/components/suggest/suggest.js b/packageBookService/pages/bookServices/detail/components/suggest/suggest.js
index b79c95e..b7190c7 100644
--- a/packageBookService/pages/bookServices/detail/components/suggest/suggest.js
+++ b/packageBookService/pages/bookServices/detail/components/suggest/suggest.js
@@ -60,7 +60,7 @@
         textvalue: e.detail.value
       })
     },
-    feedBack() {
+    async feedBack() {
       const token = wx.getStorageSync('jsek-token')
       if (!token) {
         return wx.getUserProfile({
@@ -86,7 +86,7 @@
         newDataListRequest: []
       }
 
-      app.MG.ugc.newTopicMessage(query).then((res) => {
+      await app.MG.ugc.newTopicMessage(query).then((res) => {
         wx.showToast({
           title: '鎻愪氦鎴愬姛',
           icon: 'success',
@@ -95,7 +95,7 @@
       })
     },
     // 纭畾
-    confirmSuggest() {
+    async confirmSuggest() {
       const isPhoneNumber = /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/.test(this.data.inputvalue);
       if (!this.data.ratevalue) {
         return wx.showToast({
@@ -118,7 +118,7 @@
           title: '璇疯緭鍏ュ弽棣堝弽棣堝唴瀹�',
         })
       }
-      this.feedBack()
+      await this.feedBack()
     }
   },
 })
diff --git a/packageBookService/pages/bookServices/detail/components/testResource/testResource.wxml b/packageBookService/pages/bookServices/detail/components/testResource/testResource.wxml
index 61d1f5c..1329559 100644
--- a/packageBookService/pages/bookServices/detail/components/testResource/testResource.wxml
+++ b/packageBookService/pages/bookServices/detail/components/testResource/testResource.wxml
@@ -1,45 +1,78 @@
 <!--pages/bookServices/detail/components/testResource/testResource.wxml-->
 <view class="test-resource">
   <view class="top-btn">
-    <t-radio-group class="test-radio" t-class="horizontal-box" value="{{radioItem}}" bind:change="onRadioChange" style="margin: 0 10rpx 0 0">
+    <t-radio-group
+      class="test-radio"
+      t-class="horizontal-box"
+      value="{{radioItem}}"
+      bind:change="onRadioChange"
+      style="margin: 0 10rpx 0 0"
+    >
       <view class="card {{radioItem == 'test' ? 'card--active' : ''}}">
         <t-radio value="test" icon="none" borderless style="height: 80rpx">
           <view class="radio-content" slot="content">
-            <t-image src="{{ radioItem == 'test' ? '/static/images/bookService/detail/practice-icon.png' : '/static/images/bookService/detail/notest.png'}}"></t-image>
-            <text style="color: {{radioItem == 'test' ? '#fff':''}};">缁冧範</text>
+            <image
+              src="{{ radioItem == 'test' ? '/static/images/bookService/detail/practice-icon.png' : '/static/images/bookService/detail/notest.png'}}"
+            ></image>
+            <text style="color: {{radioItem == 'test' ? '#fff':''}};"
+              >缁冧範</text
+            >
           </view>
         </t-radio>
       </view>
       <view class="card {{radioItem == 'mock' ? 'card--active' : ''}}">
         <t-radio value="mock" icon="none" borderless style="height: 74rpx">
           <view class="radio-content" slot="content">
-            <t-image src="{{ radioItem == 'mock' ? '/static/images/bookService/detail/checkpaper.png' : '/static/images/bookService/detail/zujuan.png'}}"></t-image>
-            <text style="color: {{radioItem == 'mock' ? '#fff':''}};">缁勫嵎</text>
+            <image
+              src="{{ radioItem == 'mock' ? '/static/images/bookService/detail/checkpaper.png' : '/static/images/bookService/detail/zujuan.png'}}"
+            ></image>
+            <text style="color: {{radioItem == 'mock' ? '#fff':''}};"
+              >缁勫嵎</text
+            >
           </view>
         </t-radio>
       </view>
     </t-radio-group>
-    <t-button class="error-btn" theme="default" size="medium" style="padding: 0 12rpx" bind:tap="goMycollect" data-answerType="errorQuestion">
+    <t-button
+      class="error-btn"
+      theme="default"
+      size="medium"
+      style="padding: 0 12rpx"
+      bind:tap="goMycollect"
+      data-answerType="errorQuestion"
+    >
       <view slot="content">
-        <t-image src="/static/images/bookService/detail/cuoti.png"></t-image>
+        <image src="/static/images/bookService/detail/cuoti.png"></image>
         鎴戠殑閿欓
       </view>
     </t-button>
-    <t-button class="collect-btn" theme="default" size="medium" style="padding: 0 12rpx" bind:tap="goMycollect" data-answerType="collectQuestion">
+    <t-button
+      class="collect-btn"
+      theme="default"
+      size="medium"
+      style="padding: 0 12rpx"
+      bind:tap="goMycollect"
+      data-answerType="collectQuestion"
+    >
       <view slot="content">
-        <t-image src="/static/images/bookService/detail/wodeshoucang.png"></t-image>
+        <image src="/static/images/bookService/detail/wodeshoucang.png"></image>
         鎴戠殑鏀惰棌
       </view>
     </t-button>
   </view>
   <!-- 缁冧範鍒楄〃 -->
-  <view class="resource-list" wx:for="{{list}}" wx:key="id" wx:if="{{radioItem == 'test'}}">
+  <view
+    class="resource-list"
+    wx:for="{{list}}"
+    wx:key="id"
+    wx:if="{{radioItem == 'test'}}"
+  >
     <view class="list-title">
-      <t-image src="/static/images/bookService/detail/test-icon.png"></t-image>
+      <image src="/static/images/bookService/detail/test-icon.png"></image>
       <text>{{item.name}}</text>
     </view>
     <view class="practice" bind:tap="goTest" data-value="{{item}}">
-      <t-image src="/static/images/bookService/detail/lianxi-icon.png"></t-image>
+      <image src="/static/images/bookService/detail/lianxi-icon.png"></image>
     </view>
   </view>
 </view>
@@ -49,25 +82,45 @@
   <view wx:if="{{mockData.mockList.length}}">
     <view class="mack-num">宸茬粍鍗穥{mockData.mockList.length}}娆�</view>
     <view class="mock-list">
-      <view class="mock-list-box" wx:for="{{mockData.mockList}}" wx:key="id" data-item="{{item}}" bind:tap="goMackPaper">
+      <view
+        class="mock-list-box"
+        wx:for="{{mockData.mockList}}"
+        wx:key="id"
+        data-item="{{item}}"
+        bind:tap="goMackPaper"
+      >
         <view class="mock-title">{{item.name}}</view>
         <view class="mock-message">
           <view class="message-box">
             <view class="mack-state">
-              <text wx:if="{{item.state == '3'}}" class="complete state-pad">宸插畬鎴�</text>
-              <text wx:elif="{{item.state == '2' || item.state == '1'}}" class="Incomplete state-pad">鏈畬鎴�</text>
+              <text wx:if="{{item.state == '3'}}" class="complete state-pad"
+                >宸插畬鎴�</text
+              >
+              <text
+                wx:elif="{{item.state == '2' || item.state == '1'}}"
+                class="Incomplete state-pad"
+                >鏈畬鎴�</text
+              >
               <text wx:else class="Incomplete state-pad">鏈紑濮�</text>
             </view>
             <view class="mock-time">{{item.createDate}}</view>
           </view>
-          <view class="mock-score" wx:if="{{item.report.userScore}}">{{item.report.userScore}}鍒�</view>
+          <view class="mock-score" wx:if="{{item.state == '3'}}"
+            >{{item.report.userScore}}鍒�</view
+          >
         </view>
       </view>
     </view>
   </view>
   <view wx:else class="not-mock">
-    <t-image src="/static/images/bookService/examination/zhuangtai-icon.png"></t-image>
-    <view class="not-mock-message note-mock-text">缁勫嵎鏄敹璐瑰姛鑳斤紝璇疯喘涔板悗浣跨敤锛�</view>
-    <view class="note-mock-price note-mock-text">浠锋牸锛�<text class="mock-price">锟{mockData.price}}</text> 鍏�/娆�</view>
+    <image
+      src="/static/images/bookService/examination/zhuangtai-icon.png"
+    ></image>
+    <view class="not-mock-message note-mock-text"
+      >缁勫嵎鏄敹璐瑰姛鑳斤紝璇疯喘涔板悗浣跨敤锛�</view
+    >
+    <view class="note-mock-price note-mock-text"
+      >浠锋牸锛�<text class="mock-price">锟{mockData.price}}</text> 鍏�/娆�</view
+    >
   </view>
-</view>
\ No newline at end of file
+</view>
diff --git a/packageBookService/pages/bookServices/detail/components/testResource/testResource.wxss b/packageBookService/pages/bookServices/detail/components/testResource/testResource.wxss
index 34496b5..d78e74a 100644
--- a/packageBookService/pages/bookServices/detail/components/testResource/testResource.wxss
+++ b/packageBookService/pages/bookServices/detail/components/testResource/testResource.wxss
@@ -13,6 +13,11 @@
   background-color: #FFF6F0;
 }
 
+.list-title {
+  display: flex;
+  align-items: center;
+}
+
 .list-title image {
   width: 34rpx;
   height: 38rpx;
diff --git a/packageBookService/pages/bookServices/detail/components/tree/index.wxml b/packageBookService/pages/bookServices/detail/components/tree/index.wxml
index 32b7b5a..3820ca8 100644
--- a/packageBookService/pages/bookServices/detail/components/tree/index.wxml
+++ b/packageBookService/pages/bookServices/detail/components/tree/index.wxml
@@ -1,62 +1,171 @@
 <view class="tree">
   <t-collapse default-value="{{activeValues}}" bind:change="handleChange">
-    <t-collapse-panel wx:for="{{treeList}}" wx:for-item="item" wx:for-index="index" wx:key="id" value="{{index}}" expandIcon disabled="{{!item.children}}">
+    <t-collapse-panel
+      wx:for="{{treeList}}"
+      wx:for-item="item"
+      wx:for-index="index"
+      wx:key="id"
+      value="{{index}}"
+      expandIcon
+      disabled="{{!item.children}}"
+    >
       <view slot="header" class="header-title">
         <view wx:if="{{tab == 'jsek_cloudLearning'}}">
-          <t-checkbox icon="rectangle" checked="{{item.checked}}" data-item="{{item}}" bind:change="checkResourceTitle" />
+          <t-checkbox
+            icon="rectangle"
+            checked="{{item.checked}}"
+            data-item="{{item}}"
+            bind:change="checkResourceTitle"
+          />
           <!-- <t-checkbox icon="rectangle" checked="{{true}}" data-item="{{item}}" bind:change="checkResourceTitle" /> -->
-
         </view>
         <text>{{item.name}}</text>
       </view>
-      <view class="list" wx:for="{{item.children}}" wx:for-item="citem" wx:for-index="cindex" wx:key="cindex">
+      <view
+        class="list"
+        wx:for="{{item.children}}"
+        wx:for-item="citem"
+        wx:for-index="cindex"
+        wx:key="cindex"
+      >
         <!-- // 鍒ゆ柇 鏃犲瓙椤� 涓斾负鍟嗗搧item 鐩存帴鏄剧ず -->
-        <view class="listItems" wx:if="{{citem.childrenFolderCount <= 0 && citem.type == 'productItem'}}">
-          <view class="itemsInfo" wx:if="{{citem.name}}" data-item="{{citem}}" data-index="{{cindex}}">
-            <view class="contentBox" bind:tap="goPlayer" data-item="{{citem}}" data-parent="{{item}}">
+        <view
+          class="listItems"
+          wx:if="{{citem.childrenFolderCount <= 0 && citem.type == 'productItem'}}"
+        >
+          <view
+            class="itemsInfo"
+            wx:if="{{citem.name}}"
+            data-item="{{citem}}"
+            data-index="{{cindex}}"
+          >
+            <view
+              class="contentBox"
+              bind:tap="goPlayer"
+              data-item="{{citem}}"
+              data-parent="{{item}}"
+            >
               <!-- 鏁欏璧勬簮 浜戝涔� 鍥炬爣 -->
-              <view class="box-image" style="{{ tab == 'jsek_teachingResources' ? 'width: 350rpx;' : 'width: 450rpx;'}}">
+              <view
+                class="box-image"
+                style="{{ tab == 'jsek_teachingResources' ? 'width: 350rpx;' : 'width: 450rpx;'}}"
+              >
                 <view class="checkBox" wx:if="{{tab == 'jsek_cloudLearning'}}">
                   <!-- checked="{{citem.checked}}"  -->
                   <!-- <t-checkbox icon="rectangle" checked="{{citem.checked}}" disabled="{{citem.selectType=='webpage' || citem.isDownload != 1 || citem.fileMap[citem.file].protectType == 'Private'}}" catch:change="checkResource" data-item="{{citem}}" /> -->
-                  <t-checkbox icon="rectangle" checked="{{citem.checked}}" data-item="{{citem}}" catch:change="checkResource" />
+                  <t-checkbox
+                    icon="rectangle"
+                    checked="{{citem.checked}}"
+                    data-item="{{citem}}"
+                    catch:change="checkResource"
+                  />
                 </view>
                 <!-- 鏁欏璧勬簮鍥炬爣 -->
                 <view class="teach-icon">
-                  <t-image wx:if="{{citem.selectType == 'audio'}}" src="/static/images/bookService/detail/audioIcon.png" mode="aspectFill" />
-                  <t-image wx:if="{{citem.selectType == 'video'}}" src="/static/images/bookService/detail/video.png" mode="aspectFill" />
-                  <t-image wx:if="{{citem.selectType == 'pdf'}}" src="/static/images/bookService/detail/pdf.png" mode="aspectFill" />
-                  <t-image wx:if="{{citem.selectType == 'webpage'}}" src="/static/images/bookService/detail/net.png" mode="aspectFill" />
-                  <t-image wx:if="{{citem.selectType == 'picture'}}" src="/static/images/bookService/detail/picture.png" mode="aspectFill" />
-                  <t-image wx:if="{{citem.selectType == 'zip'}}" src="/static/images/bookService/detail/zip.png" mode="aspectFill" />
-                  <t-image wx:if="{{ citem.fileMap[citem.file].extension == 'doc' ||  citem.fileMap[citem.file].extension == 'docx'}}" src="/static/images/bookService/detail/word.png" mode="aspectFill" />
-                  <t-image wx:if="{{ citem.fileMap[citem.file].extension == 'xlsx' ||  citem.fileMap[citem.file].extension == 'xlsx'}}" src="/static/images/bookService/detail/excel.png" mode="aspectFill" />
-                  <t-image wx:if="{{ citem.fileMap[citem.file].extension == 'ppt' ||  citem.fileMap[citem.file].extension == 'pptx'}}" src="/static/images/bookService/detail/PPT.png" mode="aspectFill" />
+                  <image
+                    wx:if="{{citem.selectType == 'audio'}}"
+                    src="/static/images/bookService/detail/audioIcon.png"
+                    mode="aspectFill"
+                  />
+                  <image
+                    wx:if="{{citem.selectType == 'video'}}"
+                    src="/static/images/bookService/detail/video.png"
+                    mode="aspectFill"
+                  />
+                  <image
+                    wx:if="{{citem.selectType == 'pdf'}}"
+                    src="/static/images/bookService/detail/pdf.png"
+                    mode="aspectFill"
+                  />
+                  <image
+                    wx:if="{{citem.selectType == 'webpage'}}"
+                    src="/static/images/bookService/detail/net.png"
+                    mode="aspectFill"
+                  />
+                  <image
+                    wx:if="{{citem.selectType == 'picture'}}"
+                    src="/static/images/bookService/detail/picture.png"
+                    mode="aspectFill"
+                  />
+                  <image
+                    wx:if="{{citem.selectType == 'zip'}}"
+                    src="/static/images/bookService/detail/zip.png"
+                    mode="aspectFill"
+                  />
+                  <image
+                    wx:if="{{ citem.fileMap[citem.file].extension == 'doc' ||  citem.fileMap[citem.file].extension == 'docx'}}"
+                    src="/static/images/bookService/detail/word.png"
+                    mode="aspectFill"
+                  />
+                  <image
+                    wx:if="{{ citem.fileMap[citem.file].extension == 'xlsx' ||  citem.fileMap[citem.file].extension == 'xlsx'}}"
+                    src="/static/images/bookService/detail/excel.png"
+                    mode="aspectFill"
+                  />
+                  <image
+                    wx:if="{{ citem.fileMap[citem.file].extension == 'ppt' ||  citem.fileMap[citem.file].extension == 'pptx'}}"
+                    src="/static/images/bookService/detail/PPT.png"
+                    mode="aspectFill"
+                  />
                 </view>
                 <!-- 浜戝涔犲浘鏍� -->
                 <view> </view>
                 <!-- 鍚嶇О -->
-                <text class="name" style="{{ tab == 'jsek_teachingResources' ? 'width: 300rpx;' : 'width: 400rpx;'}}">{{citem.name}}</text>
+                <text
+                  class="name"
+                  style="{{ tab == 'jsek_teachingResources' ? 'width: 300rpx;' : 'width: 400rpx;'}}"
+                  >{{citem.name}}</text
+                >
               </view>
               <!-- 鏁欏璧勬簮绫诲瀷 -->
               <view class="teachClass"> {{citem.resourceClass}} </view>
-              <view class="teach-btn" wx:if="{{tab == 'jsek_teachingResources'}}">
+              <view
+                class="teach-btn"
+                wx:if="{{tab == 'jsek_teachingResources'}}"
+              >
                 <!--  涓嬭浇鎸夐挳 -->
-                <t-image src="/static/images/bookService/detail/download-icon.png" width="16" height="16" class="download" data-value="{{citem}}" catchtap="downloadTeach"></t-image>
+                <image
+                  src="/static/images/bookService/detail/download-icon.png"
+                  class="download-image"
+                  data-value="{{citem}}"
+                  catchtap="downloadTeach"
+                ></image>
               </view>
               <view wx:if="{{tab == 'jsek_cloudLearning'}}">
                 <!-- 浜戝涔犺瘯鐪嬪浘鏍� -->
-                <t-image src="/static/images/bookService/detail/shikan.png" class="testSee" wx:if="{{!citem.isbuy ? false : citem.freeFile ? true : false}}"></t-image>
+                <image
+                  src="/static/images/bookService/detail/shikan.png"
+                  class="testSee"
+                  wx:if="{{!citem.isbuy ? false : citem.freeFile ? true : false}}"
+                ></image>
                 <!-- 浜戝涔犲姞鍏ヨ喘鐗╄溅鍥炬爣 -->
-                <t-image src="/static/images/bookService/detail/cart.png" wx:if="{{citem.isShopCar}}" class="shopCar" bind:tap="onCloudShoppingCart"></t-image>
+                <image
+                  src="/static/images/bookService/detail/cart.png"
+                  wx:if="{{citem.isShopCar}}"
+                  class="shopCar"
+                  bind:tap="onCloudShoppingCart"
+                ></image>
                 <!-- 浜戝涔犺喘涔板浘鏍� -->
-                <t-image bind:tap="onCloudShoppingCart" src="/static/images/bookService/detail/need-buy.png" class="need-buy" wx:if="{{citem.isbuy }}"></t-image>
+                <image
+                  bind:tap="onCloudShoppingCart"
+                  src="/static/images/bookService/detail/need-buy.png"
+                  class="need-buy"
+                  wx:if="{{citem.isbuy }}"
+                ></image>
               </view>
             </view>
           </view>
         </view>
         <!-- // 鍒ゆ柇 涓嶆槸鍟嗗搧 鏈夊瓙椤� 閫掑綊缁勪欢 -->
-        <tree wx:else bookInfo="{{bookInfo}}" treeList="{{[citem]}}" itemId="{{itemId}}" tab="{{tab}}" openTeachids="{{openTeachids}}" openLearnids="{{openLearnids}}"></tree>
+        <tree
+          wx:else
+          bookInfo="{{bookInfo}}"
+          treeList="{{[citem]}}"
+          itemId="{{itemId}}"
+          tab="{{tab}}"
+          openTeachids="{{openTeachids}}"
+          openLearnids="{{openLearnids}}"
+        ></tree>
       </view>
       <view class="listItems" wx:if="{{children.length <= 0 && !loading}}">
         鏆傛棤鏁版嵁
@@ -68,4 +177,4 @@
   </t-collapse>
 </view>
 
-<web-view wx:if="{{webpageSrc}}" src="{{webpageSrc}}"></web-view>
\ No newline at end of file
+<web-view wx:if="{{webpageSrc}}" src="{{webpageSrc}}"></web-view>
diff --git a/packageBookService/pages/bookServices/detail/components/tree/index.wxss b/packageBookService/pages/bookServices/detail/components/tree/index.wxss
index 6f1e9fb..48981db 100644
--- a/packageBookService/pages/bookServices/detail/components/tree/index.wxss
+++ b/packageBookService/pages/bookServices/detail/components/tree/index.wxss
@@ -18,7 +18,10 @@
   padding: 0;
 }
 
-
+.download-image {
+  width: 32rpx;
+  height: 32rpx;
+}
 
 .contentBox {
   padding: 0 26rpx;
diff --git a/packageBookService/pages/bookServices/detail/components/webView/index.js b/packageBookService/pages/bookServices/detail/components/webView/index.js
new file mode 100644
index 0000000..6c5577c
--- /dev/null
+++ b/packageBookService/pages/bookServices/detail/components/webView/index.js
@@ -0,0 +1,110 @@
+// packageBookService/pages/components/webView/index.js
+const app = getApp()
+Component({
+  /**
+   * 缁勪欢鐨勫睘鎬у垪琛�
+   */
+  properties: {
+    fileInfo: {
+      type: Object,
+      value: {}
+    }
+  },
+  /**
+   * 椤甸潰鐨勫垵濮嬫暟鎹�
+   */
+  data: {
+    src: "",
+    link: false,
+    epubObj: null,
+    currentPage: '',
+  },
+
+  methods: {
+    onLoadWeb(e) {
+      console.log(e, "load")
+    },
+
+    onError(e) {
+      console.log(e, "err")
+    },
+
+    setWebViewSrc() {
+      var url = app.config.epubUrl +
+        "?md5=" +
+        this.properties.fileInfo.md5 +
+        "&bookName=" +
+        this.properties.fileInfo.bookName +
+        "&url=" + app.config.requestCtx +
+        "&token=" +
+        wx.getStorageSync(app.config.tokenKey) +
+        "&recordLocation=" +
+        this.data.currentPage
+      this.setData({
+        src: url
+      })
+    },
+
+    // 鑾峰彇UserKey
+    getProgress() {
+      app.MG.identity
+        .getUserKey({
+          domain: "bookReadProgress",
+          keys: [this.properties.fileInfo.md5],
+        })
+        .then((res) => {
+          if (res.length) {
+            try {
+              this.setData({
+                currentPage: JSON.parse(res[0].value).page,
+              });
+            } catch (error) {
+              this.setData({
+                currentPage: "",
+              });
+            }
+            if (this.data.currentPage > this.properties.fileInfo.freePage) {
+              this.setData({
+                currentPage: "",
+              });
+            }
+          }
+          this.setWebViewSrc();
+        });
+    },
+    // 璁剧疆userKey
+    setProgress(data) {
+      if (data.page && data.page != this.data.currentPage) {
+        app.MG.identity
+          .setUserKey({
+            setKeyRequests: [{
+              domain: "bookReadProgress",
+              key: this.properties.fileInfo.md5,
+              value: JSON.stringify(data),
+            },],
+          })
+          .then((res) => { });
+      }
+    },
+
+    drawBack(e) {
+      let {
+        currentLocation,
+        percentage,
+        type
+      } =
+        e.detail.data[0];
+      if (type == "progress" && type != "backDetail") {
+        this.setProgress({
+          page: currentLocation,
+          progress: percentage,
+        });
+      } else if (type == "backDetail") {
+        this.setProgress({
+          page: 1,
+          progress: "0%",
+        });
+      }
+    },
+  }
+})
\ No newline at end of file
diff --git a/packageBookService/pages/bookServices/detail/components/webView/index.json b/packageBookService/pages/bookServices/detail/components/webView/index.json
new file mode 100644
index 0000000..e8cfaaf
--- /dev/null
+++ b/packageBookService/pages/bookServices/detail/components/webView/index.json
@@ -0,0 +1,4 @@
+{
+  "component": true,
+  "usingComponents": {}
+}
\ No newline at end of file
diff --git a/packageBookService/pages/bookServices/detail/components/webView/index.wxml b/packageBookService/pages/bookServices/detail/components/webView/index.wxml
new file mode 100644
index 0000000..2cee560
--- /dev/null
+++ b/packageBookService/pages/bookServices/detail/components/webView/index.wxml
@@ -0,0 +1,4 @@
+<!--packageBookService/pages/components/webView/index.wxml-->
+<view class="page-body">
+  <!-- <web-view bind:message="drawBack" binderror="onError" bindload="onLoadWeb" src="{{src}}"></web-view> -->
+</view>
\ No newline at end of file
diff --git a/packageBookService/pages/bookServices/detail/components/webView/index.wxss b/packageBookService/pages/bookServices/detail/components/webView/index.wxss
new file mode 100644
index 0000000..06a98b7
--- /dev/null
+++ b/packageBookService/pages/bookServices/detail/components/webView/index.wxss
@@ -0,0 +1,4 @@
+.page-body {
+  width: 100vw;
+  height: 500rpx;
+}
\ No newline at end of file
diff --git a/packageBookService/pages/bookServices/detail/index.js b/packageBookService/pages/bookServices/detail/index.js
index 500be20..bc9ec6c 100644
--- a/packageBookService/pages/bookServices/detail/index.js
+++ b/packageBookService/pages/bookServices/detail/index.js
@@ -67,6 +67,16 @@
     paperBookCount: 0, //绾歌川涔﹀墿浣欐鏁�
     ebookCount: 0, //鐢靛瓙涔﹀墿浣欐鏁�
     userInfo: {},
+    fileInfo: {
+      bookName: "",
+      fileType: "",
+      md5: "",
+      freePage: ""
+    },  //闃呰鍣ㄦ暟鎹�
+    buyResourceData: {
+      productLinkPath: '',
+      refCode: '',
+    }
   },
 
 
@@ -157,7 +167,7 @@
    * 椤甸潰涓婃媺瑙﹀簳浜嬩欢鐨勫鐞嗗嚱鏁�
    */
   onReachBottom() {
-    if (this.data.tabValue == 'jesk_note') {
+    if (this.data.tabValue == 'jsek_note') {
       const child = this.selectComponent('#note')
       child.onReachBottom()
     }
@@ -352,13 +362,44 @@
           this.setData({
             noFile: true
           });
+          if (res.datas[0].bookshelf_pdf) {
+            this.setData({
+              "fileInfo.bookName": this.data.bookDetail.name,
+              "fileInfo.fileType": 'pdf',
+              "fileInfo.md5": res.datas[0].bookshelf_pdf,
+              "fileInfo.freePage": res.datas[0].bookshelf_probationPage,
+            });
+          } else if (res.datas[0].bookshelf_protectedEpub) {
+            this.setData({
+              "fileInfo.bookName": this.data.bookDetail.name,
+              "fileInfo.fileType": 'epub',
+              "fileInfo.md5": res.datas[0].bookshelf_protectedEpub,
+              "fileInfo.freePage": res.datas[0].bookshelf_freeEpub,
+            });
+          }
         }
       } else {
         if (this.data.bookDetail.pdf || this.data.bookDetail.protectedEpub) {
           this.setData({
             noFile: true
           });
+          if (this.data.bookDetail.pdf) {
+            this.setData({
+              "fileInfo.bookName": this.data.bookDetail.name,
+              "fileInfo.fileType": 'pdf',
+              "fileInfo.md5": this.data.bookDetail.pdf,
+              "fileInfo.freePage": this.data.bookDetail.probationPage,
+            });
+          } else if (this.data.bookDetail.protectedEpub) {
+            this.setData({
+              "fileInfo.bookName": this.data.bookDetail.name,
+              "fileInfo.fileType": 'epub',
+              "fileInfo.md5": this.data.bookDetail.protectedEpub,
+              "fileInfo.freePage": this.data.bookDetail.freeEpubPage,
+            });
+          }
         }
+        console.log(this.data.fileInfo, 456)
         this.setData({
           selectedIds: this.data.bookDetail.defaultSaleMethodId,
           bookBuy: this.data.bookDetail.purchasedSaleMethodIdList.indexOf(this.data.bookDetail.defaultSaleMethodId) > -1
@@ -453,6 +494,12 @@
     if (e.detail.label == '鏁欏璧勬簮' || e.detail.label == '浜戝涔�' || e.detail.label == '浜戞祴璇�') {
       const checkData = this.data.cmsDatas.find(item => item.refCode == e.detail.value)
       if (checkData) {
+        if (e.detail.value == 'jsek_cloudLearning') {
+          this.setData({
+            'buyResourceData.productLinkPath': checkData.productLinkPath,
+            'buyResourceData.refCode': checkData.refCode
+          })
+        }
         if ((e.detail.value == 'jsek_teachingResources' && !this.data.teach.length)
           || (e.detail.value == 'jsek_cloudLearning' && !this.data.learn.length)
           || (e.detail.value == 'questionBank' && !this.data.test.length)) {
@@ -470,6 +517,12 @@
       if (token) {
         child.changeLoading()
         child.getNoteList()
+      }
+
+    } else if (e.detail.label == '鐢靛瓙涔�') {
+      const child = this.selectComponent('#eBook')
+      if (child) {
+        child.getProgress()
       }
 
     }
@@ -669,54 +722,65 @@
 
   // 鍥句功娣诲姞璐墿杞�
   async addBookShopcCar() {
-    const token = wx.getStorageSync('jsek-token')
-    if (!token) {
-      return wx.getUserProfile({
-        desc: '鐢ㄦ埛鐧诲綍',
-        success: (res) => {
-          console.log(res);
+
+    if (!this.data.expire) {
+
+      const token = wx.getStorageSync('jsek-token')
+      if (!token) {
+        return wx.getUserProfile({
+          desc: '鐢ㄦ埛鐧诲綍',
+          success: (res) => {
+            console.log(res);
+          }
+        })
+      }
+
+      const shoppingCartGetId = []
+
+      let query = {
+        start: 0,
+        size: 9999,
+        filterList: [],
+        searchList: []
+      }
+      const res = await app.MG.store.getShoppingCartProductList(query)
+      res.datas.forEach((item) => {
+        shoppingCartGetId.push(item.saleMethod.id)
+      })
+      console.log(shoppingCartGetId, 'shoppingCartGetId');
+      console.log(this.data.selectedIds, '閿�鍞柟寮廼d');
+      const determine = shoppingCartGetId.some((item) => item == this.data.selectedIds)
+      console.log(determine);
+      if (!determine) {
+        let query = {
+          requests: [
+            {
+              saleMethodId: this.data.selectedIds,
+              storeEventId: null,
+              agentCode: '鐢靛瓙涔�'
+            }
+          ]
         }
+        const addRes = app.MG.store.addShoppingCart(query)
+        this.showSuccessToast()
+
+      } else {
+        Toast({
+          context: this,
+          selector: '#t-toast',
+          message: '宸叉坊鍔�',
+          theme: 'success',
+          direction: 'column',
+        });
+      }
+    } else {
+      wx.showToast({
+        title: "鍟嗗搧涓嶅湪鏈夋晥鏈�",
+        icon: 'none',
+        duration: 1000,
       })
     }
 
-    const shoppingCartGetId = []
-
-    let query = {
-      start: 0,
-      size: 999,
-      filterList: [],
-      searchList: []
-    }
-    const res = await app.MG.store.getShoppingCartProductList(query)
-    res.datas.forEach((item) => {
-      shoppingCartGetId.push(item.saleMethod.id)
-    })
-    console.log(shoppingCartGetId, 'shoppingCartGetId');
-    console.log(this.data.selectedIds, '閿�鍞柟寮廼d');
-    const determine = shoppingCartGetId.some((item) => item == this.data.selectedIds)
-    console.log(determine);
-    if (!determine) {
-      let query = {
-        requests: [
-          {
-            saleMethodId: this.data.selectedIds,
-            storeEventId: null,
-            agentCode: '鐢靛瓙涔�'
-          }
-        ]
-      }
-      const addRes = app.MG.store.addShoppingCart(query)
-      this.showSuccessToast()
-
-    } else {
-      Toast({
-        context: this,
-        selector: '#t-toast',
-        message: '宸叉坊鍔�',
-        theme: 'success',
-        direction: 'column',
-      });
-    }
 
   },
 
@@ -1342,6 +1406,21 @@
     }
   },
 
+  goRead() {
+    if (!this.data.noFile) {
+      wx.showToast({
+        title: '鏆傛棤闃呰鏂囦欢',
+        icon: 'none',
+        duration: 2000
+      })
+      return false;
+    }
+    wx.navigateTo({
+      url: '/packageBookService/pages/components/webView/index?md5=' + this.data.fileInfo.md5 + '&fileName=' + this.data.fileInfo.bookName + '&fileType=' + this.data.fileInfo.fileType + '&freePage=' + this.data.fileInfo.freePage
+    })
+
+  },
+
   //鏍蜂功鐢宠
   //鐢宠鐢靛瓙鏍蜂功
   appplyElectronicBook() {
diff --git a/packageBookService/pages/bookServices/detail/index.json b/packageBookService/pages/bookServices/detail/index.json
index 9bba7c1..980bf12 100644
--- a/packageBookService/pages/bookServices/detail/index.json
+++ b/packageBookService/pages/bookServices/detail/index.json
@@ -1,5 +1,4 @@
 {
-  "component": true,
   "usingComponents": {
     "t-icon": "tdesign-miniprogram/icon/icon",
     "t-image": "tdesign-miniprogram/image/image",
@@ -14,6 +13,7 @@
     "note": "/packageBookService/pages/bookServices/detail/components/note/note",
     "tree": "/packageBookService/pages/bookServices/detail/components/tree/index",
     "suggest": "/packageBookService/pages/bookServices/detail/components/suggest/suggest",
+    "epub-view": "/packageBookService/pages/bookServices/detail/components/webView/index",
     "t-loading": "tdesign-miniprogram/loading/loading",
     "t-dialog": "tdesign-miniprogram/dialog/dialog",
     "t-toast": "tdesign-miniprogram/toast/toast",
diff --git a/packageBookService/pages/bookServices/detail/index.wxml b/packageBookService/pages/bookServices/detail/index.wxml
index b55720f..63fca54 100644
--- a/packageBookService/pages/bookServices/detail/index.wxml
+++ b/packageBookService/pages/bookServices/detail/index.wxml
@@ -19,33 +19,35 @@
     <view class="book-detail">
       <view class="detail-left">
         <view class="book-img">
-          <t-image
+          <image
+            loading=""
             src="{{bookDetail.icon}}"
             mode="aspectFill"
-            width="120"
-            height="170"
             aria-label="{{bookDetail.name}}"
           />
         </view>
         <view class="book-use">
           <view class="collect" bind:tap="setCollect">
             <view>
-              <t-image
+              <image
+                loading=""
                 src="/static/images/bookService/detail/collect.png"
                 wx:if="{{!bookDetail.isFavourite}}"
-              ></t-image>
-              <t-image
+              />
+              <image
+                loading=""
                 src="/static/images/bookService/detail/collecting.png"
                 wx:if="{{bookDetail.isFavourite}}"
-              ></t-image>
+              />
             </view>
             <view class="use-title">鏀惰棌</view>
           </view>
           <view class="suggest" bind:tap="suggestBtn">
             <view>
-              <t-image
+              <image
+                loading=""
                 src="/static/images/bookService/detail/suggest.png"
-              ></t-image>
+              />
             </view>
             <view class="use-title">鎴戣寤鸿</view>
           </view>
@@ -81,10 +83,10 @@
             <view class="class-name showTow">{{bookDetail.class}}</view>
           </view>
         </view>
-        <t-image
+        <image
           src="/static/images/bookService/detail/square.png"
           class="right-background"
-        ></t-image>
+        />
       </view>
     </view>
     <!-- 閿�鍞俊鎭� -->
@@ -93,16 +95,14 @@
         <!-- 鐢靛瓙涔﹀敭浠� -->
         <view class="electron-price">
           <view>
-            <t-image
-              src="/static/images/bookService/detail/electon-price.png"
-            ></t-image>
+            <image src="/static/images/bookService/detail/electon-price.png" />
           </view>
           <view class="price">
             <view class="price-text"
               >楼{{bookDetail.price == '0.00' ? '鍏嶈垂' :bookDetail.price}}</view
             >
             <view class="price-old" wx:if="{{bookDetail.oldPrice != '0.00'}}"
-              >楼{{bookDetail.oldPrice}} <view class="line"></view>
+              >楼{{bookDetail.oldPrice}}
             </view>
           </view>
           <view> </view>
@@ -110,9 +110,7 @@
         <!-- 绾歌川涔﹀敭浠� -->
         <view class="paper-price">
           <view>
-            <t-image
-              src="/static/images/bookService/detail/paper-price.png"
-            ></t-image>
+            <image src="/static/images/bookService/detail/paper-price.png" />
           </view>
           <view class="price"
             >楼{{bookDetail.paperPrice == '0.00' ? '鍏嶈垂' :
@@ -122,33 +120,32 @@
       </view>
       <!-- 缃戝簵 -->
       <view class="book-web">
-        <t-image
+        <image
           src="/static/images/bookService/detail/jd.png"
           wx:if="{{bookDetail.JDLink}}"
           bind:tap="goShop"
           data-link="{{bookDetail.JDLink}}"
           data-type="jd"
-        ></t-image>
-        <t-image
+        />
+        <image
+          class="tmall-image"
           src="/static/images/bookService/detail/tmall.png"
-          width="32"
-          height="22"
           bind:tap="goShop"
           data-link="{{bookDetail.tmallLink}}"
           wx:if="{{bookDetail.tmallLink}}"
-        ></t-image>
-        <t-image
+        />
+        <image
           src="/static/images/bookService/detail/dangdang.png"
           bind:tap="goShop"
           data-link="{{bookDetail.dangdangLink}}"
           wx:if="{{bookDetail.dangdangLink}}"
-        ></t-image>
-        <t-image
-          src="/static/images/bookService/detail/jd.png"
+        />
+        <image
+          src="/static/images/bookService/detail/weidian.png"
           bind:tap="goShop"
           data-link="{{bookDetail.weidianLink}}"
           wx:if="{{bookDetail.weidianLink}}"
-        ></t-image>
+        />
       </view>
     </view>
   </view>
@@ -164,7 +161,7 @@
         <book-brief
           content="{{bookDetail.content}}"
           authorIntroduction="{{bookDetail.authorIntroduction}}"
-          wx:if="{{bookDetail.content || bookDetail.authorIntroduction}}"
+          wx:if="{{bookDetail.content && bookDetail.authorIntroduction}}"
         ></book-brief>
         <view
           wx:if="{{!bookDetail.content && !bookDetail.authorIntroduction}}"
@@ -173,8 +170,12 @@
           <t-empty icon="folder-open" description="鏆傛棤鏁版嵁" />
         </view>
       </t-tab-panel>
-      <t-tab-panel label="鐢靛瓙涔�" value="1" style="{{tabPanelstyle}}">
-        鐢靛瓙涔�
+      <t-tab-panel label="鐢靛瓙涔�" value="jsek_eBook" style="{{tabPanelstyle}}">
+        <epub-view
+          fileInfo="{{fileInfo}}"
+          id="eBook"
+          class="webView"
+        ></epub-view>
       </t-tab-panel>
       <t-tab-panel
         label="鏁欏璧勬簮"
@@ -218,6 +219,8 @@
             bind:getFreeResource="getFreeResource"
             bind:allAddShoppiingCar="allAddShoppiingCar"
             id="learn-resource"
+            buyResourceData="{{buyResourceData}}"
+            bookId="{{bookDetail.id}}"
           ></learn-resource>
           <tree
             id="tree"
@@ -248,13 +251,8 @@
           <t-empty icon="folder-open" description="鏆傛棤鏁版嵁" />
         </view>
       </t-tab-panel>
-      <t-tab-panel label="浜戠瑪璁�" value="jesk_note" style="{{tabPanelstyle}}">
-        <note
-          bookInfo="{{bookDetail}}"
-          id="note"
-          class="note-list"
-          bind:changeLoaidng="changeLoaidng"
-        ></note>
+      <t-tab-panel label="浜戠瑪璁�" value="jsek_note" style="{{tabPanelstyle}}">
+        <note bookInfo="{{bookDetail}}" id="note" class="note-list"></note>
       </t-tab-panel>
     </t-tabs>
   </view>
@@ -262,7 +260,10 @@
   <view class="box-bottom">
     <view class="bottom-btn" bind:tap="appplyElectronicBook">
       <view>
-        <t-image src="/static/images/bookService/detail/ebook.png"></t-image>
+        <t-image
+          loading=""
+          src="/static/images/bookService/detail/ebook.png"
+        ></t-image>
       </view>
       <view class="btn-text">鐢靛瓙鏍蜂功鐢宠</view>
     </view>
@@ -275,15 +276,35 @@
       <view class="btn-text">绾歌川鏍蜂功鐢宠</view>
     </view>
     <view
-      class="shopCar {{(tabValue == 'jsek_teachingResources' || tabValue == 'jesk_note') ? 'disabledColor' : 'shopCarColor' }}"
+      class="shopCar {{(tabValue == 'jsek_teachingResources' || tabValue == 'jsek_note') ? 'disabledColor' : 'shopCarColor' }}"
       bind:tap="addBookShopcCar"
+      wx:if="{{tabValue != 'jsek_eBook'}}"
       >鍔犲叆璐墿杞�</view
     >
     <view
-      class="buy  {{(tabValue == 'jsek_teachingResources' || tabValue == 'jesk_note') ? 'disabledColor' : 'buyColor' }}"
+      class="buy  {{(tabValue == 'jsek_teachingResources' || tabValue == 'jsek_note') ? 'disabledColor' : 'buyColor' }}"
       bind:tap="buyBtn"
+      wx:if="{{tabValue != 'jsek_eBook'}}"
       >绔嬪嵆璐拱</view
     >
+    <view
+      class="shopCar shopCarColor"
+      bind:tap="addBookShopcCar"
+      wx:if="{{tabValue == 'jsek_eBook' && !bookBuy}}"
+      >鍔犲叆璐墿杞�</view
+    >
+    <view
+      class="buy buyColor"
+      bind:tap="buyBtn"
+      wx:if="{{tabValue == 'jsek_eBook' && !bookBuy}}"
+      >绔嬪嵆璐拱</view
+    >
+    <view
+      class="read buyColor"
+      bind:tap="goRead"
+      wx:if="{{tabValue == 'jsek_eBook' && bookBuy}}"
+      >绔嬪嵆鏌ョ湅</view
+    >
   </view>
 </scroll-view>
 <!-- 鎴戣寤鸿寮圭獥 -->
diff --git a/packageBookService/pages/bookServices/detail/index.wxss b/packageBookService/pages/bookServices/detail/index.wxss
index 8b09d1f..abbb481 100644
--- a/packageBookService/pages/bookServices/detail/index.wxss
+++ b/packageBookService/pages/bookServices/detail/index.wxss
@@ -22,10 +22,19 @@
   background-color: #F2F3F8;
 }
 
+.book-img image {
+  width: 240rpx;
+  height: 340rpx;
+}
+
 .book-detail {
   padding: 32rpx;
   display: flex;
   border-radius: 0 0 20rpx 20rpx;
+}
+
+.tmall-image {
+  width: 64rpx !important;
 }
 
 .detail-left {
@@ -172,16 +181,10 @@
   position: relative;
   font-size: 28rpx;
   opacity: 0.6;
+  text-decoration: line-through;
+  text-decoration-color: #fff;
 }
 
-.line {
-  position: absolute;
-  top: 50%;
-  left: -5rpx;
-  width: 80%;
-  height: 3rpx;
-  background-color: #fff;
-}
 
 .book-web {
   margin-left: 30rpx;
@@ -263,6 +266,14 @@
   color: #fff;
 }
 
+.read {
+  width: 50%;
+  display: flex;
+  align-items: center;
+  justify-content: center;
+  color: #fff;
+}
+
 .shopCarColor {
   background-color: #F1AC37;
 }
@@ -338,4 +349,8 @@
   position: absolute;
   top: 30rpx;
   left: 118rpx;
+}
+
+.webView {
+  height: 500rpx;
 }
\ No newline at end of file
diff --git a/packageBookService/pages/bookServices/examination/examination.js b/packageBookService/pages/bookServices/examination/examination.js
index d99f15b..e444433 100644
--- a/packageBookService/pages/bookServices/examination/examination.js
+++ b/packageBookService/pages/bookServices/examination/examination.js
@@ -90,6 +90,11 @@
    * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鏄剧ず
    */
   onShow() {
+    if (this.data.answerType != 'mock') {
+      if (wx.timer) {
+        clearInterval(wx.timer)
+      }
+    }
     if (this.data.answerType == 'mock') {
       if (wx.timer) {
         clearInterval(wx.timer)
@@ -109,12 +114,18 @@
    * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰闅愯棌
    */
   onHide() {
+    if (wx.timer) {
+      clearInterval(wx.timer)
+    }
   },
 
   /**
    * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍗歌浇
    */
   onUnload(e) {
+    if (wx.timer) {
+      clearInterval(wx.timer)
+    }
     if (this.data.countdownInterval !== null) {
       clearInterval(this.data.countdownInterval)
     }
@@ -458,18 +469,19 @@
             let oldQuestionList = []
             oldQuestionList = await this.getMockQuestionList()
             const userAnswerList = await this.getMockAnswer()
-            await this.getMockDataList(oldQuestionList, userAnswerList)
             this.setData({
               'mockData.sumTime': oldMockData.time,
               cardList: oldQuestionList
             })
+            await this.getMockDataList(oldQuestionList, userAnswerList)
           }
           if (oldMockData.state == '0' || oldMockData.state == '1' || oldMockData.state == '2') {
             this.startCountdown()
           }
           if (oldMockData.state == '3') {
             this.setData({
-              submitStatus: true
+              submitStatus: true,
+              subjectiveNum: oldMockData.report.userScore
             })
           }
         }
@@ -1389,141 +1401,8 @@
   // 鑾峰彇缁勫嵎棰樼洰鍒楄〃
   async getMockDataList(questionList, oldList) {
     const questionDataList = this.data.questionDataList
-    // for (let pathindex = 0; pathindex < questionList.length; pathindex++) {
-    //   const pathitem = questionList[pathindex];
-    //   let itemIds = []
-    //   pathitem.infoList.forEach(item => {
-    //     itemIds.push(item.id + '')
-    //   })
-    //   let query = {
-    //     path: '*',
-    //     cmsPath: this.data.rootCmsItemId,
-    //     cmsType: '*',
-    //     productId: this.data.bookId,
-    //     queryType: '*',
-    //     itemIds,
-    //     itemFields: {
-    //       Embedded_QuestionBank_Stem: [],
-    //       Embedded_QuestionBank_AnalysisCon: [],
-    //       Embedded_QuestionBank_Answer: [],
-    //       Embedded_QuestionBank_Option: [],
-    //       Embedded_QuestionBank_QuestionType: [],
-    //       Embedded_QuestionBank_StemStyle: [],
-    //       Embedded_QuestionBank_OptionStyle: [],
-    //       Embedded_QuestionBank_KnowledgePoint: [],
-    //       Embedded_QuestionBank_Difficulty: []
-    //     }
-    //   }
-    //   await app.MG.store.getProductDetail(query).then((res) => {
-    //     res.datas.cmsDatas[0].datas.forEach((item, index) => {
-    //       // 寰幆questionList,缁欐瘡棰樿祴鍊煎垎鏁�
-    //       let oldObj
-    //       if (oldList) oldObj = oldList.find((oldItem) => oldItem.id == item.id)
-    //       let questionObj = {
-    //         // number: pathitem.infoList.find(infoItem => infoItem.itemId == item.id).number,
-    //         id: item.id,
-    //         score: pathitem.infoList.find(infoItem => infoItem.id == item.id).score,
-    //         stem:
-    //           item.Embedded_QuestionBank_QuestionType == 'completion'
-    //             ? JSON.parse(item.Embedded_QuestionBank_Stem)
-    //               .stemTxt.replaceAll('<vacancy>', ',input,')
-    //               .split(',')
-    //             : JSON.parse(item.Embedded_QuestionBank_Stem), // 棰樺共
-    //         answer: item.Embedded_QuestionBank_Answer, // 绛旀
-    //         option: item.Embedded_QuestionBank_Option
-    //           ? JSON.parse(item.Embedded_QuestionBank_Option)
-    //           : '', // 閫夋嫨棰橀�夐」
-    //         analysisCon: item.Embedded_QuestionBank_AnalysisCon, // 瑙f瀽
-    //         questionType: item.Embedded_QuestionBank_QuestionType, // 棰樺瀷
-    //         optionStyle: item.Embedded_QuestionBank_OptionStyle, // 閫夐」鏄剧ず绫诲瀷
-    //         stemStyle: item.Embedded_QuestionBank_StemStyle, // 棰樺共鏄剧ず绫诲瀷
-    //         difficulty: item.Embedded_QuestionBank_Difficulty
-    //           ? 4 - item.Embedded_QuestionBank_Difficulty
-    //           : 0, // 闅惧害绛夌骇
-    //         userAnswer: oldObj
-    //           ? oldObj.answer
-    //           : item.Embedded_QuestionBank_QuestionType == 'completion' ||
-    //             item.Embedded_QuestionBank_QuestionType == 'multipleChoice'
-    //             ? []
-    //             : '',
-    //         isUserAnswer: oldObj ? this.isHaveAnswer(oldObj.userAnswer) : false,
-    //         isRight: oldObj ? oldObj.isRight : null,
-    //         // isComplete: oldObj ? oldObj.isComplete : false,
-    //         isComplete: this.data.mockData.state == '3' ? true : oldObj ? this.isHaveAnswer(oldObj.answer) : false,
-    //         isCollect: this.data.collectList.indexOf(item.id) > -1 ? true : false,
-    //         isUnfold: '' // 鎺у埗瑙f瀽鐨勬姌鍙犻潰鏉挎槸鍚﹀睍寮�
-    //       }
-    //       // 澶氶�夊拰濉┖绛旀鑲负鏁扮粍锛岃杞崲JSON鏍煎紡
-    //       if (
-    //         questionObj.questionType == 'completion' ||
-    //         questionObj.questionType == 'multipleChoice'
-    //       ) {
-    //         try {
-    //           questionObj.answer = JSON.parse(questionObj.answer)
-    //         } catch (error) {
-    //           questionObj.answer = item.Embedded_QuestionBank_Answer
-    //         }
-    //       }
-    //       // 濉┖棰樻敼閫�
-    //       if (questionObj.questionType == 'completion') {
-    //         let index = 0
-    //         for (let i = 0; i < questionObj.stem.length; i++) {
-    //           const item = questionObj.stem[i]
-    //           if (item == 'input') {
-    //             questionObj.stem[i] = {
-    //               num: index,
-    //               data: 'input'
-    //             }
-    //             if (!oldObj) questionObj.userAnswer[index] = ''
-    //             index++
-    //           }
-    //         }
-    //       }
-    //       // 鑾峰彇鍥剧墖
-    //       if (questionObj.stemStyle == 'Image' || questionObj.stemStyle == 'TxtAndImage') {
-    //         questionObj.stem.stemImage = getPublicImage(questionObj.stem.stemImage, 150)
-    //       }
-    //       if (questionObj.optionStyle == 'Image' || questionObj.optionStyle == 'TxtAndImage') {
-    //         questionObj.option.forEach(optionItem => {
-    //           if (optionItem.img) optionItem.img = getPublicImage(optionItem.img, 150)
-    //         })
-    //       }
-    //       if (oldObj && oldObj.isRight) {
-    //         this.setData({
-    //           correctNum: this.data.correctNum + 1
-    //         })
-    //       }
-    //       if (item.questionType != 'shortAnswer' && item.isComplete) {
-    //         this.setData({
-    //           subjectiveTotal: this.data.subjectiveTotal + 1
-    //         })
-    //       }
-    //       // if (oldObj && isHaveAnswer(oldObj.answer)) countDownRef.value.changeAlready()
-    //       // cardList璧嬪��
-    //       let cardIndex = this.data.cardList.findIndex((item) => item.catalogName == pathitem.catalogName)
-    //       debugger
-    //       let infoIndex = this.data.cardList[cardIndex].infoList.findIndex(infoItem => infoItem.id == item.id)
-
-    //       this.setData({
-    //         [`cardList[${cardIndex}].infoList[${infoIndex}]`]: questionObj
-    //       })
-    //       let questionList = []
-    //       const cardUpdatedList = this.data.cardList
-    //       cardUpdatedList.forEach(aitem => {
-    //         aitem.infoList.forEach((bitem, bindex) => {
-    //           questionList.push(bitem)
-    //           bitem.number = bindex + 1
-    //         })
-    //       })
-    //       this.setData({
-    //         questionDataList: questionList,
-    //         cardList: cardUpdatedList
-    //       })
-    //       console.log('缁勫嵎棰樼洰鍒楄〃', this.data.questionDataList);
-    //     })
-    //   })
-    // }
-    questionList.forEach(async (pathitem, pathindex) => {
+    for (let pathindex = 0; pathindex < questionList.length; pathindex++) {
+      const pathitem = questionList[pathindex];
       let itemIds = []
       pathitem.infoList.forEach(item => {
         itemIds.push(item.id + '')
@@ -1582,7 +1461,7 @@
             isUserAnswer: oldObj ? this.isHaveAnswer(oldObj.userAnswer) : false,
             isRight: oldObj ? oldObj.isRight : null,
             // isComplete: oldObj ? oldObj.isComplete : false,
-            isComplete: this.data.mockData.state == '3' ? true : oldObj ? this.isHaveAnswer(oldObj.answer) : false,
+            isComplete: this.data.mockData.state == '3' ? true : false,
             isCollect: this.data.collectList.indexOf(item.id) > -1 ? true : false,
             isUnfold: '' // 鎺у埗瑙f瀽鐨勬姌鍙犻潰鏉挎槸鍚﹀睍寮�
           }
@@ -1650,10 +1529,9 @@
             questionDataList: questionList,
             cardList: cardUpdatedList
           })
-          console.log('缁勫嵎棰樼洰鍒楄〃', this.data.questionDataList);
         })
       })
-    })
+    }
     this.setData({
       loading: false
     })
diff --git a/packageBookService/pages/bookServices/examination/examination.wxml b/packageBookService/pages/bookServices/examination/examination.wxml
index f1223d0..9b02607 100644
--- a/packageBookService/pages/bookServices/examination/examination.wxml
+++ b/packageBookService/pages/bookServices/examination/examination.wxml
@@ -22,7 +22,7 @@
   />
 </view> -->
 
-<view class="page-content">
+<view class="page-content" style="background-color:{{isNight ? '#222' : ''}}">
   <question-schedule
     wx:if="{{!loading}}"
     id="countDownRef"
@@ -57,7 +57,7 @@
 
 <!-- 搴曢儴鍖哄煙-->
 
-<view class="page-bottom">
+<view class="page-bottom" style="background-color:{{isNight ? '#202020' : ''}}">
   <question-options
     id="question-options"
     isNight="{{isNight}}"
diff --git a/packageBookService/pages/bookServices/examination/questionList/index.wxml b/packageBookService/pages/bookServices/examination/questionList/index.wxml
index 08c85f6..73af0ce 100644
--- a/packageBookService/pages/bookServices/examination/questionList/index.wxml
+++ b/packageBookService/pages/bookServices/examination/questionList/index.wxml
@@ -1,13 +1,13 @@
 <!--pages/bookServices/examination/questionList/index.wxml-->
 <view
   class="question-list"
-  style="background-color:{{isNight ? '#000' : '#fff'}}"
+  style="background-color:{{isNight ? '#222' : '#fff'}}"
 >
   <!-- 棰樺瀷title -->
   <view
     class="question-title"
     wx:if="{{questionList[showIndex].type}}"
-    style="background-color:{{isNight ? '#000' : '#fff'}}"
+    style="background-color:{{isNight ? '#222' : '#fff'}}"
   >
     <text class="title-name">{{questionList[showIndex].type}}</text
     ><text class="title-score" style="color: {{isNight ? '#fff' : '#000'}};"
@@ -39,7 +39,7 @@
           class="title-TxtAndImage"
         >
           <text>{{item.stem.stemTxt}}</text>
-          <t-image src="{{item.stem.stemImage}}"></t-image>
+          <t-image src="{{item.stem.stemImage}}" />
         </view>
         <!-- 瀵屾枃鏈� -->
         <view
@@ -108,7 +108,7 @@
                 <!-- 浠呭浘鐗� -->
                 <view wx:if="{{item.optionStyle == 'Image'}}" class="fl-center">
                   <text>{{contentItem.value}}銆�</text>
-                  <t-image src="{{contentItem.img}}"></t-image>
+                  <t-image src="{{contentItem.img}}" />
                 </view>
                 <!-- 鏂囧瓧鍔犲浘鐗� -->
                 <view
@@ -117,7 +117,7 @@
                 >
                   <text>{{contentItem.value}}銆�</text>
                   <text>{{contentItem.txt}}</text>
-                  <t-image src="{{contentItem.img}}"></t-image>
+                  <t-image src="{{contentItem.img}}" />
                 </view>
                 <!-- 瀵屾枃鏈� -->
                 <view wx:if="{{item.optionStyle == 'RichText'}}">
@@ -162,7 +162,7 @@
               <!-- 浠呭浘鐗� -->
               <view wx:if="{{item.optionStyle == 'Image'}}" class="fl-center">
                 <text>{{contentItem.value}}銆�</text>
-                <t-image src="{{contentItem.img}}"></t-image>
+                <t-image src="{{contentItem.img}}" />
               </view>
               <!-- 鏂囧瓧鍔犲浘鐗� -->
               <view
@@ -171,7 +171,7 @@
               >
                 <text>{{contentItem.value}}銆�</text>
                 <text>{{contentItem.txt}}</text>
-                <t-image src="{{contentItem.img}}"></t-image>
+                <t-image src="{{contentItem.img}}" />
               </view>
               <!-- 瀵屾枃鏈� -->
               <view wx:if="{{item.optionStyle == 'RichText'}}">
diff --git a/packageBookService/pages/bookServices/examination/questionList/index.wxss b/packageBookService/pages/bookServices/examination/questionList/index.wxss
index 34fbd19..0e45e42 100644
--- a/packageBookService/pages/bookServices/examination/questionList/index.wxss
+++ b/packageBookService/pages/bookServices/examination/questionList/index.wxss
@@ -1,7 +1,7 @@
 /* pages/bookServices/examination/questionList/index.wxss */
 .question-list {
   width: 95%;
-  height: 86%;
+  height: 84%;
   padding: 20rpx;
   background-color: #ffffff;
   border-radius: 20rpx;
diff --git a/packageBookService/pages/bookServices/examination/questionOptions/index.js b/packageBookService/pages/bookServices/examination/questionOptions/index.js
index 66344a8..1aeb95a 100644
--- a/packageBookService/pages/bookServices/examination/questionOptions/index.js
+++ b/packageBookService/pages/bookServices/examination/questionOptions/index.js
@@ -64,7 +64,7 @@
     questionCardState: false,
     setUpPopup: false,
     testReportState: false,
-    sliderValue: 10,
+    sliderValue: 28,
     useTime: '',
     radioItem: 'daytime'
   },
@@ -166,10 +166,10 @@
     },
     // 婊戝潡鍙樺寲
     onChangeSlider(e) {
-      console.log(e);
       this.setData({
         sliderValue: e.detail.value
       })
+      console.log(e.detail.value);
     },
     // 璁剧疆閬僵灞傜偣鍑�
     onSetUpChange(e) {
diff --git a/packageBookService/pages/bookServices/examination/questionOptions/index.wxml b/packageBookService/pages/bookServices/examination/questionOptions/index.wxml
index 69c72da..6262100 100644
--- a/packageBookService/pages/bookServices/examination/questionOptions/index.wxml
+++ b/packageBookService/pages/bookServices/examination/questionOptions/index.wxml
@@ -1,17 +1,16 @@
 <!--pages/bookServices/examination/questionOptions/index.wxml-->
 <view
   class="page-bottom"
-  style="color: {{isNight ? '#fff' : '#000'}}; background-color:{{isNight ? '#000' : '#fff'}}"
+  style="color: {{isNight ? '#fff' : '#000'}}; background-color:{{isNight ? '#202020' : '#fff'}}"
 >
   <view
     class="li-option"
     bind:tap="setCollect"
     style="color: {{isNight ? '#fff' : '#000'}};"
   >
-    <t-image
-      src="{{ questionDataList[currentIndex].isCollect ? '/static/images/bookService/detail/collecting.png' : '/static/images/bookService/examination/collect.png'}}"
-    >
-    </t-image>
+    <image
+      src="{{ questionDataList[currentIndex].isCollect ? '/static/images/bookService/detail/collecting.png' : isNight ? '/static/images/bookService/examination/wodeshoucang-w.png' : '/static/images/bookService/examination/collect.png'}}"
+    />
     鏀惰棌
   </view>
   <view
@@ -19,9 +18,9 @@
     bind:tap="handlePopup"
     style="color: {{isNight ? '#fff' : '#000'}};"
   >
-    <t-image
-      src="/static/images/bookService/examination/questionCard.png"
-    ></t-image>
+    <image
+      src="{{isNight ? '/static/images/bookService/examination/datika-w.png' : '/static/images/bookService/examination/questionCard.png'}}"
+    />
     绛旈鍗�
   </view>
   <view
@@ -29,7 +28,9 @@
     bind:tap="setUpBtn"
     style="color: {{isNight ? '#fff' : '#000'}};"
   >
-    <t-image src="/static/images/bookService/examination/setting.png"></t-image>
+    <image
+      src="{{isNight ? '/static/images/bookService/examination/setting-w.png' : '/static/images/bookService/examination/setting.png'}}"
+    />
     璁剧疆
   </view>
   <view
@@ -38,7 +39,9 @@
     wx:if="{{answerType == 'option' || (answerType == 'mock' && !submitStatus)}}"
     style="color: {{isNight ? '#fff' : '#000'}};"
   >
-    <t-image src="/static/images/bookService/examination/reset.png"></t-image>
+    <image
+      src="{{isNight ? '/static/images/bookService/examination/chongzuo-w.png' : '/static/images/bookService/examination/reset.png'}}"
+    />
     閲嶅仛
   </view>
   <view class="bottom-submit">
@@ -74,7 +77,7 @@
       </view>
     </view>
     <view class="question-card-list">
-      <view wx:for="{{cardList}}" class="card-box">
+      <view wx:for="{{cardList}}" wx:key="index" class="card-box">
         <!-- 棰樺瀷 -->
         <view class="question-title">
           <text class="color-box"></text>
@@ -115,9 +118,18 @@
         <t-slider
           value="{{sliderValue}}"
           theme="capsule"
-          step="{{10}}"
+          min="{{14}}"
+          max="{{100}}"
+          step="{{7}}"
           bind:change="onChangeSlider"
         />
+        <!-- <slider
+          value="{{sliderValue}}"
+          min="{{10}}"
+          step="{{10}}"
+          activeColor="#ff6c00"
+          bind:chang="onChangeSlider"
+        /> -->
       </view>
 
       <text>A+</text>
@@ -134,9 +146,9 @@
         <view class="card {{radioItem == 'daytime' ? 'card--active' : ''}}">
           <t-radio value="daytime" icon="none" borderless>
             <view class="radio-content" slot="content">
-              <t-image
-                src="{{ radioItem == 'daytime' ? '/static/images/bookService/examination/rijian.png' : '/static/images/bookService/detail/notest.png'}}"
-              ></t-image>
+              <image
+                src="{{ radioItem == 'daytime' ? '/static/images/bookService/examination/rijian-click.png' : '/static/images/bookService/examination/rijian.png'}}"
+              />
               <text style="color: {{radioItem == 'daytime' ? '#fff':''}};"
                 >鏃ラ棿妯″紡</text
               >
@@ -146,9 +158,9 @@
         <view class="card {{radioItem == 'night' ? 'card--active' : ''}}">
           <t-radio value="night" icon="none" borderless>
             <view class="radio-content" slot="content">
-              <t-image
-                src="{{ radioItem == 'night' ? '/static/images/bookService/detail/practice-icon.png' : '/static/images/bookService/examination/yejian.png'}}"
-              ></t-image>
+              <image
+                src="{{ radioItem == 'night' ? '/static/images/bookService/examination/yejian-click.png' : '/static/images/bookService/examination/yejian.png'}}"
+              />
               <text style="color: {{radioItem == 'night' ? '#fff':''}};"
                 >澶滈棿妯″紡</text
               >
diff --git a/packageBookService/pages/bookServices/examination/questionSchedule/index.js b/packageBookService/pages/bookServices/examination/questionSchedule/index.js
index 0039701..903a716 100644
--- a/packageBookService/pages/bookServices/examination/questionSchedule/index.js
+++ b/packageBookService/pages/bookServices/examination/questionSchedule/index.js
@@ -79,6 +79,9 @@
       this.setData({
         percentage: (this.data.ready / this.data.questionList.length) * 100
       })
+    },
+    'isNight': function (newValue) {
+      console.log('is', newValue);
     }
   },
   /**
diff --git a/packageBookService/pages/bookServices/examination/questionSchedule/index.wxml b/packageBookService/pages/bookServices/examination/questionSchedule/index.wxml
index b95c893..9d5f617 100644
--- a/packageBookService/pages/bookServices/examination/questionSchedule/index.wxml
+++ b/packageBookService/pages/bookServices/examination/questionSchedule/index.wxml
@@ -3,7 +3,7 @@
   wx:if="{{((answerType == 'option' || answerType == 'mock') && !submitStatus) || answerType == 'collectQuestion' || answerType =='errorQuestion'}}"
   class="schedule"
   id="schedule"
-  style="background-color:{{isNight ? '#000' : '#fff'}}"
+  style="background-color:{{isNight ? '#1a1a1a' : '#fff'}}"
 >
   <view class="schedule-top">
     <!-- 绛旈杩涘害 -->
diff --git a/packageBookService/pages/bookServices/list/index.js b/packageBookService/pages/bookServices/list/index.js
index 656c94b..7fd0570 100644
--- a/packageBookService/pages/bookServices/list/index.js
+++ b/packageBookService/pages/bookServices/list/index.js
@@ -287,7 +287,7 @@
         subAccess: this.data.pathList,
       };
     } else {
-      pathObj = { 
+      pathObj = {
         path,
         queryType: '*',
       };
@@ -323,7 +323,7 @@
       ],
       sort,
       coverSize: {
-        height: 145,
+        width: 105
       },
       paging: {
         start: 0,
diff --git a/packageBookService/pages/bookServices/list/index.wxml b/packageBookService/pages/bookServices/list/index.wxml
index 2994416..7e76b60 100644
--- a/packageBookService/pages/bookServices/list/index.wxml
+++ b/packageBookService/pages/bookServices/list/index.wxml
@@ -2,40 +2,112 @@
 <view style="width: 100%; height: {{barHeight}}px;"></view>
 <view class="nacigationBar" style="width: 70%; height: {{navBarHeight}}px;">
   <view>
-    <t-icon name="chevron-left" size="30" data-name="{{item}}" bind:click="goBack" />
+    <t-icon
+      name="chevron-left"
+      size="30"
+      data-name="{{item}}"
+      bind:click="goBack"
+    />
   </view>
-  <t-search model:value="{{searchValue}}" shape="round" placeholder="璇疯緭鍏ュ叧閿瘝/涔﹀悕/ISBN/浣滆��" class="navBar-search" style="width: 464rpx" bind:submit="searchBook" />
+  <t-search
+    model:value="{{searchValue}}"
+    shape="round"
+    placeholder="璇疯緭鍏ュ叧閿瘝/涔﹀悕/ISBN/浣滆��"
+    class="navBar-search"
+    style="width: 464rpx"
+    bind:submit="searchBook"
+  />
 </view>
 
 <view class="bookServices-list">
   <view class="list-header">
     <scroll-view scroll-x="{{true}}" class="header-scroll">
-      <t-dropdown-menu style="width: 800rpx;">
-        <t-dropdown-item options="{{stairList.options}}" value="{{stairList.value}}" bindchange="onChangeStair" style="background-color: #F6F6F6;" />
-        <t-dropdown-item label="浜岀骇" options="{{secondList.options}}" optionsColumns="2" multiple value="{{secondList.value}}" bind:confirm="onConfirmSecond" bind:change="onChangeSecond" />
-        <t-dropdown-item label="閲嶇偣椤圭洰" options="{{majorProjectList.options}}" optionsColumns="2" multiple defaultValue="{{majorProjectList.value}}" bind:confirm="changeMajorProject" bind:reset="resetMajorProject" />
-        <t-dropdown-item label="鏂板舰鎬佹暀鏉�" options="{{newTextBook.options}}" optionsColumns="2" multiple defaultValue="{{newTextBook.value}}" bind:confirm="changeNewText" bind:reset="resetNewText" />
+      <t-dropdown-menu style="width: 800rpx">
+        <t-dropdown-item
+          options="{{stairList.options}}"
+          value="{{stairList.value}}"
+          bindchange="onChangeStair"
+          style="background-color: #f6f6f6"
+        />
+        <t-dropdown-item
+          label="浜岀骇"
+          options="{{secondList.options}}"
+          optionsColumns="2"
+          multiple
+          value="{{secondList.value}}"
+          bind:confirm="onConfirmSecond"
+          bind:change="onChangeSecond"
+        />
+        <t-dropdown-item
+          label="閲嶇偣椤圭洰"
+          options="{{majorProjectList.options}}"
+          optionsColumns="2"
+          multiple
+          defaultValue="{{majorProjectList.value}}"
+          bind:confirm="changeMajorProject"
+          bind:reset="resetMajorProject"
+        />
+        <t-dropdown-item
+          label="鏂板舰鎬佹暀鏉�"
+          options="{{newTextBook.options}}"
+          optionsColumns="2"
+          multiple
+          defaultValue="{{newTextBook.value}}"
+          bind:confirm="changeNewText"
+          bind:reset="resetNewText"
+        />
       </t-dropdown-menu>
     </scroll-view>
     <view class="header-sort" bind:tap="sortClick">
       <view class="sort-name">鎺掑簭</view>
       <!-- <view class="sort-icon"> -->
-      <t-icon name="swap-left" size="28rpx" class="icon-right" color="{{sort == 'Asc' ? '#ff6c00' : ''}}" />
-      <t-icon name="swap-left" size="28rpx" class="icon-left" color="{{sort == 'Desc' ? '#ff6c00' : ''}}" />
+      <t-icon
+        name="swap-left"
+        size="28rpx"
+        class="icon-right"
+        color="{{sort == 'Asc' ? '#ff6c00' : ''}}"
+      />
+      <t-icon
+        name="swap-left"
+        size="28rpx"
+        class="icon-left"
+        color="{{sort == 'Desc' ? '#ff6c00' : ''}}"
+      />
       <!-- </view> -->
     </view>
   </view>
-  <t-pull-down-refresh value="{{enable}}" loadingProps="{{loadingProps}}" loadingTexts="{{['涓嬫媺鍒锋柊', '鏉炬墜鍒锋柊', '姝e湪鍒锋柊', '鍒锋柊瀹屾垚']}}" bind:refresh="onRefresh" class="down-refresh">
-    <scroll-view scroll-y="{{true}}" class="list-container" bindrefresherrefresh="onPullDownRefresh" bindscrolltolower="onReachBottom">
+  <t-pull-down-refresh
+    value="{{enable}}"
+    loadingProps="{{loadingProps}}"
+    loadingTexts="{{['涓嬫媺鍒锋柊', '鏉炬墜鍒锋柊', '姝e湪鍒锋柊', '鍒锋柊瀹屾垚']}}"
+    bind:refresh="onRefresh"
+    class="down-refresh"
+  >
+    <scroll-view
+      scroll-y="{{true}}"
+      class="list-container"
+      bindrefresherrefresh="onPullDownRefresh"
+      bindscrolltolower="onReachBottom"
+    >
       <view class="assort-title">
         <view class="title-box"></view>
         <view class="title-name">{{assortCheck.name}}</view>
       </view>
       <view class="page-content">
         <view class="book-list" wx:if="{{!loaidng}}">
-          <view class="book-box" wx:for="{{bookList}}" wx:key="id" bind:tap="goDetail" data-book="{{item}}">
+          <view
+            class="book-box"
+            wx:for="{{bookList}}"
+            wx:key="id"
+            bind:tap="goDetail"
+            data-book="{{item}}"
+          >
             <view class="book-img">
-              <t-image src="{{item.icon ? item.icon : '/static/images/default-book-img.png'}}" aria-label="{item.name{}}" mode="widthFix" />
+              <image
+                src="{{item.icon ? item.icon : '/static/images/default-book-img.png'}}"
+                aria-label="{item.name{}}"
+                mode="widthFix"
+              />
             </view>
             <view class="book-name book-color">{{ item.name}}</view>
             <view class="book-author book-color">{{item.author}}</view>
@@ -46,13 +118,24 @@
         </view>
         <!-- loading -->
         <view class="loading-box" wx:if="{{loaidng}}">
-          <t-loading theme="circular" size="60rpx" class="wrapper" loading="{{loaidng}}" wx:if="{{loaidng}}" />
+          <t-loading
+            theme="circular"
+            size="60rpx"
+            class="wrapper"
+            loading="{{loaidng}}"
+            wx:if="{{loaidng}}"
+          />
         </view>
       </view>
       <view class="bottom-box">
-        <t-loading theme="circular" size="40rpx" class="wrapper" wx:if="{{isMore == true}}" />
+        <t-loading
+          theme="circular"
+          size="40rpx"
+          class="wrapper"
+          wx:if="{{isMore == true}}"
+        />
         <text wx:if="{{isMore == false}}">娌℃湁鏇村浜�</text>
       </view>
     </scroll-view>
   </t-pull-down-refresh>
-</view>
\ No newline at end of file
+</view>
diff --git a/packageDomain/pages/resourceDetails/myAudio/index.wxss b/packageDomain/pages/resourceDetails/myAudio/index.wxss
index c3fedad..c8fe5d3 100644
--- a/packageDomain/pages/resourceDetails/myAudio/index.wxss
+++ b/packageDomain/pages/resourceDetails/myAudio/index.wxss
@@ -321,8 +321,6 @@
   background-color: #FF6C00 !important;
 }
 
-
-
 .publicBtn {
   margin-right: 10rpx;
   margin-left: 20rpx;
diff --git a/pages/bookServices/assort/index.js b/pages/bookServices/assort/index.js
index e8f86b1..d10b5cd 100644
--- a/pages/bookServices/assort/index.js
+++ b/pages/bookServices/assort/index.js
@@ -161,6 +161,9 @@
           field: 'state'
         }
       ],
+      coverSize: {
+        width: 76
+      },
       queryType: '\\',
       searchList: [],
       size: '30',
diff --git a/pages/bookServices/assort/index.wxml b/pages/bookServices/assort/index.wxml
index f02d0c0..b2a5581 100644
--- a/pages/bookServices/assort/index.wxml
+++ b/pages/bookServices/assort/index.wxml
@@ -2,8 +2,21 @@
 <view class="page-header">
   <!-- 鎼滅储妗� -->
   <view class="search">
-    <t-search t-class-input="t-search__input" t-class-input-container="t-search__input-container" placeholder="璇疯緭鍏ュ叧閿瘝/涔﹀悕/ISBN/浣滆��" leftIcon="" bind:submit="navToSearchPage" placeholder-style="{{placeholderstyle}}">
-      <t-icon slot="left-icon" prefix="wr" name="search" size="40rpx" color="#bbb" />
+    <t-search
+      t-class-input="t-search__input"
+      t-class-input-container="t-search__input-container"
+      placeholder="璇疯緭鍏ュ叧閿瘝/涔﹀悕/ISBN/浣滆��"
+      leftIcon=""
+      bind:submit="navToSearchPage"
+      placeholder-style="{{placeholderstyle}}"
+    >
+      <t-icon
+        slot="left-icon"
+        prefix="wr"
+        name="search"
+        size="40rpx"
+        color="#bbb"
+      />
     </t-search>
   </view>
 </view>
@@ -12,7 +25,13 @@
   <view class="side-bar-wrapper" wx:if="{{!loading}}">
     <view class="tab-left">
       <t-side-bar value="{{assortCheck.code}}" bind:change="changeAssort">
-        <t-side-bar-item wx:for="{{assortList}}" wx:key="id" value="{{item.refCode}}" label="{{item.name}}" badge-props="{{item.badgeProps}}" />
+        <t-side-bar-item
+          wx:for="{{assortList}}"
+          wx:key="id"
+          value="{{item.refCode}}"
+          label="{{item.name}}"
+          badge-props="{{item.badgeProps}}"
+        />
       </t-side-bar>
     </view>
     <view class="page-right">
@@ -20,44 +39,100 @@
       <view class="side-bar-content" wx:if="{{!listLoding}}">
         <!-- 涓�绾у垎绫� -->
         <view class="tab-top">
-          <scroll-view scroll-x="{{true}}" class="myScroll" show-scrollbar="{{false}}">
-            <view wx:for="{{startList}}" wx:key="id" class="row {{startCheck.id == item.id ? 'tab-active' : ''}}" bind:tap="tabClick" data-tabData="{{item}}">{{item.name}}</view>
+          <scroll-view
+            scroll-x="{{true}}"
+            class="myScroll"
+            show-scrollbar="{{false}}"
+          >
+            <view
+              wx:for="{{startList}}"
+              wx:key="id"
+              class="row {{startCheck.id == item.id ? 'tab-active' : ''}}"
+              bind:tap="tabClick"
+              data-tabData="{{item}}"
+              >{{item.name}}</view
+            >
           </scroll-view>
         </view>
         <!-- 鍐呭 -->
-        <scroll-view scroll-y="{{true}}" class="class-list" scroll-into-view="{{ 'list' + startCheck.id}}">
+        <scroll-view
+          scroll-y="{{true}}"
+          class="class-list"
+          scroll-into-view="{{ 'list' + startCheck.id}}"
+        >
           <view wx:if="{{listLoading}}">
-            <t-loading theme="spinner" size="400rpx" loading="{{listLoading}}"></t-loading>
+            <t-loading
+              theme="spinner"
+              size="400rpx"
+              loading="{{listLoading}}"
+            ></t-loading>
           </view>
-          <view wx:for="{{startList}}" wx:for-item="item" wx:key="item.id" id="{{ 'list' + item.id}}" class="class-box" wx:if="{{!listLoading}}">
+          <view
+            wx:for="{{startList}}"
+            wx:for-item="item"
+            wx:key="item.id"
+            id="{{ 'list' + item.id}}"
+            class="class-box"
+            wx:if="{{!listLoading}}"
+          >
             <view class="class-name">{{item.name}}</view>
             <view class="class-content">
-              <view wx:for="{{item.children}}" wx:for-item="citem" wx:key="id" class="book-box" bind:tap="goPageList" data-stair="{{citem}}" data-tabData="{{item}}" wx:if="{{item.children.length}}">
+              <view
+                wx:for="{{item.children}}"
+                wx:for-item="citem"
+                wx:key="id"
+                class="book-box"
+                bind:tap="goPageList"
+                data-stair="{{citem}}"
+                data-tabData="{{item}}"
+                wx:if="{{item.children.length}}"
+              >
                 <view class="assort-img">
-                  <image src="{{citem.icon ? citem.icon : '/static/images/bookService/assort/book-img.png'}}" mode="widthFix" />
+                  <image
+                    src="{{citem.icon ? citem.icon : '/static/images/bookService/assort/book-img.png'}}"
+                    mode="widthFix"
+                  />
                 </view>
                 <view class="classify">{{citem.name}}</view>
               </view>
-              <view wx:if="{{!item.children.length}}" class="book-box" bind:tap="goPageList" data-tabData="{{item}}">
+              <view
+                wx:if="{{!item.children.length}}"
+                class="book-box"
+                bind:tap="goPageList"
+                data-tabData="{{item}}"
+              >
                 <view class="assort-img">
-                  <image src="{{item.icon ? item.icon : '/static/images/bookService/assort/book-img.png'}}" mode="heightFix"></image>
+                  <image
+                    src="{{item.icon ? item.icon : '/static/images/bookService/assort/book-img.png'}}"
+                    mode="widthFix"
+                  ></image>
                 </view>
                 <text class="classify">鍏ㄩ儴</text>
               </view>
             </view>
           </view>
-          <view class="bottom-box">
-          </view>
+          <view class="bottom-box"> </view>
         </scroll-view>
       </view>
       <!-- loading -->
       <view class="loading-box" wx:if="{{listLoding}}">
-        <t-loading theme="circular" size="60rpx" class="wrapper" loading="{{listLoding}}" wx:if="{{listLoding}}" />
+        <t-loading
+          theme="circular"
+          size="60rpx"
+          class="wrapper"
+          loading="{{listLoding}}"
+          wx:if="{{listLoding}}"
+        />
       </view>
     </view>
-
   </view>
   <view class="loading-box" wx:if="{{loading}}">
-    <t-loading theme="circular" size="60rpx" class="wrapper" loading="{{loading}}" wx:if="{{loading}}" />
+    <t-loading
+      theme="circular"
+      size="60rpx"
+      class="wrapper"
+      loading="{{loading}}"
+      wx:if="{{loading}}"
+    />
   </view>
-</view>
\ No newline at end of file
+</view>
diff --git a/pages/bookServices/assort/index.wxss b/pages/bookServices/assort/index.wxss
index 4b330d3..9f30850 100644
--- a/pages/bookServices/assort/index.wxss
+++ b/pages/bookServices/assort/index.wxss
@@ -141,8 +141,8 @@
 
 .assort-img {
   display: flex;
-  width: 116rpx;
-  height: 142rpx;
+  width: 152rpx;
+  height: 186rpx;
   box-shadow: 0px 3px 6px 1px rgba(0, 0, 0, 0.16);
   margin-bottom: 20rpx;
 }
diff --git a/pages/cart/index.js b/pages/cart/index.js
index 2abc176..7d37d43 100644
--- a/pages/cart/index.js
+++ b/pages/cart/index.js
@@ -53,6 +53,7 @@
       })
 
       res.datas.forEach(item => {
+        console.log(item, 'item456');
         item.imgUrl = getPublicImage(item.productMonWithLinkDto.product.icon, '', '160');
 
         this.setData({
@@ -121,8 +122,13 @@
     const selectedIds = selectedItems.map(item => item.id);
     console.log('閫変腑鐨勫晢鍝� id:', selectedIds);
     if (selectedIds.length) {
-      app.MG.store.shoppingCartCreateOrder({ linkIds: selectedIds }).then(res => {
+      let data = {
+        linkIds: selectedIds
+      }
+      app.MG.store.shoppingCartCreateOrder(data).then(res => {
         console.log(res, 456);
+
+
         const url = '/pages/cart/paymentPage/index?orderNumber=' + res.orderNumber
         wx.navigateTo({
           url
diff --git a/pages/cart/paymentPage/index.js b/pages/cart/paymentPage/index.js
index 00c7468..d1b3162 100644
--- a/pages/cart/paymentPage/index.js
+++ b/pages/cart/paymentPage/index.js
@@ -16,6 +16,8 @@
     productList: [],
     payPrice: '',
     orderGoods: '',
+    isPaySuccess: false,
+    isPayComplete: false,
   },
 
   /**
@@ -123,7 +125,7 @@
     })
   },
   confirmOrderGet() {
-
+    var that = this;
     let query = {
       orderNum: this.data.orderGoods
     }
@@ -137,11 +139,46 @@
         // 鐢ㄦ埛鏈粦瀹氬井淇� 鎶�500
         app.MG.store.makeWeChatPay(resOrderNum).then(payRes => {
           const payVal = JSON.parse(payRes);
-          console.log(payVal);
+          wx.requestPayment({
+            "appId": payVal.appId,
+            "timeStamp": payVal.timeStamp,
+            "nonceStr": payVal.nonceStr,
+            "package": payVal.package,
+            "signType": payVal.signType,
+            "paySign": payVal.paySign,
+            success: function (res) {
+              console.log('鏀粯鎴愬姛');
+              if (res.errMsg == 'requestPayment:ok') {
+                that.setData({
+                  isPaySuccess: true
+                })
+              }
+            },
+            fail: function (res) {
+              console.log('鏀粯澶辫触');
+            },
+            // 鏃犺鏀粯鎴愬姛澶辫触閮戒細璋冪敤
+            "complete": function (res) {
+              if (res.errMsg == 'requestPayment:ok') {
+                that.setData({
+                  isPayComplete: true
+                })
+              }
+              if (that.data.isPaySuccess && that.data.isPayComplete) {
+                that.navToBack()
+              }
+            }
+          });
         })
       }
-      // this.makeWeChatQrPayGet()
+
     })
     // 璋冨彇寰俊浜岀淮鐮佹敮浠�
   },
+  // 椤甸潰杩斿洖
+  navToBack() {
+
+    // 杩斿洖
+    wx.navigateBack()
+  },
 })
\ No newline at end of file
diff --git a/pages/cart/paymentPage/index.wxml b/pages/cart/paymentPage/index.wxml
index 6bc8732..0c1a497 100644
--- a/pages/cart/paymentPage/index.wxml
+++ b/pages/cart/paymentPage/index.wxml
@@ -27,7 +27,6 @@
               {{item.orderSaleMethod.product.name}}
             </view>
           </view>
-
           <view class="textBox" wx:if="{{type == 'product'}}">鍥句功鏈嶅姟-鐢靛瓙涔�</view>
           <view class="textBox" wx:if="{{type == 'item'}}">鍥句功鏈嶅姟-浜戝涔�</view>
           <view class="priceBox">锟{item.payPrice}}</view>
diff --git a/pages/cart/paymentPage/index.wxss b/pages/cart/paymentPage/index.wxss
index ab15ca0..6009b23 100644
--- a/pages/cart/paymentPage/index.wxss
+++ b/pages/cart/paymentPage/index.wxss
@@ -31,6 +31,7 @@
   background: #FFFFFF;
   border-radius: 20px;
   margin: 30rpx 0;
+  /* padding: 30rpx 0; */
 }
 
 .imageBox {
@@ -174,7 +175,9 @@
   margin: 30rpx 0;
 }
 
-.paymentPageBox {}
+.paymentPageBox {
+  margin-top: 165rpx;
+}
 
 page {
   background-color: #F2F3F8;
diff --git a/pages/home/home.js b/pages/home/home.js
index 2105851..b2ef42e 100644
--- a/pages/home/home.js
+++ b/pages/home/home.js
@@ -520,7 +520,7 @@
 
   onPageScroll(e) {
     this.setData({
-      isWhite: e.scrollTop > 50 ? true : false
+      isWhite: e.scrollTop > 20 ? true : false
     })
 
   },
diff --git a/pages/retrievalPage/index.wxss b/pages/retrievalPage/index.wxss
index e2cc9b1..b8cdd06 100644
--- a/pages/retrievalPage/index.wxss
+++ b/pages/retrievalPage/index.wxss
@@ -326,4 +326,8 @@
   align-items: center;
   justify-content: center;
   --td-loading-color: #ff6c00;
+}
+
+.t-tabs__item--evenly {
+  flex: 1 0 auto !important;
 }
\ No newline at end of file
diff --git a/static/images/bookService/detail/weidian.png b/static/images/bookService/detail/weidian.png
new file mode 100644
index 0000000..9a99cca
--- /dev/null
+++ b/static/images/bookService/detail/weidian.png
Binary files differ
diff --git a/static/images/bookService/examination/chongzuo-w.png b/static/images/bookService/examination/chongzuo-w.png
new file mode 100644
index 0000000..4e939e8
--- /dev/null
+++ b/static/images/bookService/examination/chongzuo-w.png
Binary files differ
diff --git a/static/images/bookService/examination/datika-w.png b/static/images/bookService/examination/datika-w.png
new file mode 100644
index 0000000..122620c
--- /dev/null
+++ b/static/images/bookService/examination/datika-w.png
Binary files differ
diff --git a/static/images/bookService/examination/rijian-click.png b/static/images/bookService/examination/rijian-click.png
new file mode 100644
index 0000000..3080ac1
--- /dev/null
+++ b/static/images/bookService/examination/rijian-click.png
Binary files differ
diff --git a/static/images/bookService/examination/rijian.png b/static/images/bookService/examination/rijian.png
index 3080ac1..046a8d2 100644
--- a/static/images/bookService/examination/rijian.png
+++ b/static/images/bookService/examination/rijian.png
Binary files differ
diff --git a/static/images/bookService/examination/setting-w.png b/static/images/bookService/examination/setting-w.png
new file mode 100644
index 0000000..ca24d1f
--- /dev/null
+++ b/static/images/bookService/examination/setting-w.png
Binary files differ
diff --git a/static/images/bookService/examination/wodeshoucang-w.png b/static/images/bookService/examination/wodeshoucang-w.png
new file mode 100644
index 0000000..647cd15
--- /dev/null
+++ b/static/images/bookService/examination/wodeshoucang-w.png
Binary files differ
diff --git a/static/images/bookService/examination/yejian-click.png b/static/images/bookService/examination/yejian-click.png
new file mode 100644
index 0000000..fc32b09
--- /dev/null
+++ b/static/images/bookService/examination/yejian-click.png
Binary files differ

--
Gitblit v1.9.1