From b55024ee2f42aa93e0ecaa3113bdeb286f6e59ac Mon Sep 17 00:00:00 2001
From: QYF-GitLab1 <1940665526@qq.com>
Date: 星期二, 29 七月 2025 18:01:55 +0800
Subject: [PATCH] 优化按钮显示,教学互动

---
 packageBookService/pages/bookServices/examination/components/joinGroupDialog/index.wxml |   35 
 packageBookService/pages/bookServices/examination/questionList/index.wxml               |  358 +---------
 packageBookService/pages/bookServices/detail/buyResource/index.js                       |  120 ++-
 packagePersonal/pages/activateProduct/index.wxml                                        |    6 
 packageBookService/pages/bookServices/detail/index.wxml                                 |    4 
 packageBookService/pages/bookServices/examination/examination.wxml                      |   76 --
 pages/digitalCourses/digitalCoursesDetails/components/tree/index.wxml                   |  215 +-----
 packageDomain/pages/resourceDetails/myVideo/index.wxml                                  |  150 ----
 packageBookService/pages/bookServices/examination/examination.js                        |   15 
 packageBookService/pages/bookServices/examination/questionSchedule/index.wxml           |   30 
 packageBookService/pages/bookServices/detail/components/testResource/testResource.js    |    2 
 packageBookService/pages/bookServices/detail/components/tree/index.js                   |    6 
 packageCourse/components/questionDom/index.wxml                                         |   12 
 packageBookService/pages/bookServices/detail/buyResource/index.wxml                     |   32 
 packageCourse/components/questionDom/index.wxss                                         |    2 
 packageBookService/pages/bookServices/detail/index.js                                   |  129 ++-
 packagePersonal/pages/activateProduct/index.js                                          |   52 +
 packageBookService/pages/bookServices/examination/questionOptions/index.js              |    5 
 packageDomain/pages/resourceDetails/myVideo/index.js                                    |   10 
 packageDomain/pages/resourceDetails/myAudio/index.js                                    |   22 
 packageBookService/pages/bookServices/detail/components/testTree/index.wxml             |    2 
 packageDomain/pages/resourceDetails/document/index.json                                 |    2 
 app.json                                                                                |    3 
 packageBookService/pages/bookServices/detail/components/tree/index.wxml                 |  291 +-------
 packageCourse/pages/teachClass/detail/index.wxss                                        |   43 +
 packageCourse/pages/teachClass/detail/index.js                                          |   21 
 packageBookService/pages/bookServices/detail/components/testResource/testResource.wxml  |  118 ---
 pages/scanResult/index.wxml                                                             |   50 -
 28 files changed, 532 insertions(+), 1,279 deletions(-)

diff --git a/app.json b/app.json
index eb047bf..fb99c71 100644
--- a/app.json
+++ b/app.json
@@ -138,9 +138,6 @@
   "permission": {
     "scope.userLocation": {
       "desc": "浣犵殑浣嶇疆淇℃伅灏嗙敤浜庡皬绋嬪簭浣嶇疆鎺ュ彛鐨勬晥鏋滃睍绀�"
-    },
-    "clipboard": {
-      "desc": "鐢ㄤ簬澶嶅埗鍐呭鍒板壀璐存澘"
     }
   }
 }
\ No newline at end of file
diff --git a/packageBookService/pages/bookServices/detail/buyResource/index.js b/packageBookService/pages/bookServices/detail/buyResource/index.js
index cec5617..d4c705d 100644
--- a/packageBookService/pages/bookServices/detail/buyResource/index.js
+++ b/packageBookService/pages/bookServices/detail/buyResource/index.js
@@ -209,32 +209,50 @@
     return flattenedArray;
   },
   // 閫掑綊鏍戠粨鏋勶紝濡傛灉鐖剁骇鏈夐攢鍞柟寮�(鏈夋晥鏈�)锛屽幓鎺夋墍鏈夊瓙闆嗙殑閿�鍞柟寮�
-  clearTreeSealmethod(clearSaleMethod, tree) {
+  clearTreeSealmethod(tree, data, parent) {
     for (let item of tree) {
-      const saleData = item.saleMethod &&
-        item.saleMethod.length ?
-        item.saleMethod.find((citem) => citem.SaleType == 'Normal') : null
-      if (
-        ((saleData && new Date(saleData.EndDate).getTime() >= new Date().getTime() && new Date(saleData.BeginDate).getTime() <= new Date().getTime()) ||
-          clearSaleMethod) && item.children && item.children.length
-      ) {
-        item.children.forEach((ditem) => (ditem.saleMethod = []))
+      // 鏄惁鏄剧ず鎸夐挳
+      item.isShowIcon = false;
+      if (item.sysType == 'CmsItem') {
+        // 鏌ユ壘鐩綍涓嬭祫婧愰攢鍞柟寮忥紝鐩綍涓嬭祫婧愭病鏈夐攢鍞柟寮�
+        if (item.saleMethod?.length == 0) {
+          // 鏌ョ湅鍏剁埗绾ф槸鍚︽湁閿�鍞柟寮�
+          if (parent.saleMethod?.length > 0) {
+            // 鐖剁骇鏄湁閿�鍞柟寮忕洿鎺ユ樉绀烘寜閽�
+            // const index = data.findIndex(i => i.id == parent.id)
+            parent.isShowIcon = true
+          }
+          //  else {
+          //   // 鐖剁骇娌℃湁閿�鍞柟寮忥紝鏌ユ壘璇ヨ祫婧愮埗绾�
+          //   const arr = parent.productLinkPath.split('\\')
+          //   const linkData = arr[arr.length - 1] // arr[arr.length - 1] 鎺掗櫎鑷繁
+          //   linkData.reverse()
+          //   const dataList = linkData.map(ritem => {
+          //     const parentData = data.find(citem => citem.id == ritem);
+          //     if (parentData) return parentData;
+          //   })
+          //   if (dataList?.length > 0) {
+          //     const index = data.findIndex(i => i.id == dataList[0].id)
+          //     data[index].isShowIcon = true
+          //   }
+          // }
+        } else {
+          item.isShowIcon = true
+        }
+      } else {
+        this.clearTreeSealmethod(item.children, data, item)
       }
-      if (item.children && item.children.length)
-        this.clearTreeSealmethod(
-          saleData && new Date(saleData.EndDate).getTime() >= new Date().getTime() && new Date(saleData.BeginDate).getTime() <= new Date().getTime(),
-          item.children
-        )
     }
     return tree
   },
   // 鍕鹃�夌鐢�
   handleTreeCheck(tree) {
     for (const item of tree) {
+      const isbuy = this.resourceIsBuy(item)
       const saleData = item.saleMethod &&
         item.saleMethod.length ?
         item.saleMethod.find((citem) => citem.SaleType == 'Normal') : undefined
-      if (saleData && new Date(saleData.EndDate).getTime() >= new Date().getTime() && new Date(saleData.BeginDate).getTime() <= new Date().getTime()) {
+      if (saleData && new Date(saleData.EndDate).getTime() >= new Date().getTime() && new Date(saleData.BeginDate).getTime() <= new Date().getTime() && !isbuy && item.isShowIcon) {
         item.disabled = false
       } else {
         item.disabled = true
@@ -280,6 +298,9 @@
           loading: false,
         });
       }
+      this.setData({
+        cacheData: res.datas.cmsDatas[0].datas
+      })
       let list = []
       res.datas.cmsDatas[0].datas.forEach((item) => {
         item.checked = false;
@@ -292,13 +313,13 @@
       this.getTreeList(res.datas.cmsDatas[0].datas, list, query.cmsPath)
       list = this.ensureTreeConsistency(list)
       list = this.changeResourceChildren(list)
-      list = this.clearTreeSealmethod(false, list)
+      list = this.clearTreeSealmethod(list, list, null)
       list = this.handleTreeCheck(list)
       this.handleTreeData(list).forEach(item => {
         item.isbuy = this.resourceIsBuy(item);
         item.isShopCar = this.isShoppingCart(item);
       })
-      console.log('淇敼鍚庝簯', list);
+      // console.log('淇敼鍚庝簯', list);
       let result = [];
       let arr = res.datas.cmsDatas[0].datas.filter(
         (item) => item.saleMethod[0]
@@ -385,28 +406,55 @@
   },
   // 鍒ゆ柇璧勬簮鏄惁璐拱
   resourceIsBuy(data) {
-    if (data.saleMethod && data.saleMethod.length) {
-      const saleData = data.saleMethod.find((item) => item.SaleType == 'Normal')
-      if (saleData.State == 'Disable') return false
-      const isShow = this.data.buyIdList.some(
-        (item) => item == saleData.Id
-      );
-      // 宸茬粡璐拱
-      if (isShow) return false
-      // 鏈喘涔帮紝鏌ョ湅閿�鍞柟寮忔槸鍚﹁繃鏈�
-      if (!isShow) {
-        const flag = new Date(saleData.EndDate).getTime() >= new Date().getTime() &&
-          new Date(saleData.BeginDate).getTime() <= new Date().getTime()
-        if (flag) {
-          // 涓鸿繃鏈� 锛岄渶瑕佽喘涔�
-          return true
-        } else {
-          // 宸茶繃鏈� 鏃犻渶璐拱
-          return false
+    // if (data.saleMethod && data.saleMethod.length) {
+    //   const saleData = data.saleMethod.find((item) => item.SaleType == 'Normal')
+    //   if (saleData.State == 'Disable') return false
+    //   const isShow = this.data.buyIdList.some(
+    //     (item) => item == saleData.Id
+    //   );
+    //   // 宸茬粡璐拱
+    //   if (isShow) return false
+    //   // 鏈喘涔帮紝鏌ョ湅閿�鍞柟寮忔槸鍚﹁繃鏈�
+    //   if (!isShow) {
+    //     const flag = new Date(saleData.EndDate).getTime() >= new Date().getTime() &&
+    //       new Date(saleData.BeginDate).getTime() <= new Date().getTime()
+    //     if (flag) {
+    //       // 涓鸿繃鏈� 锛岄渶瑕佽喘涔�
+    //       return true
+    //     } else {
+    //       // 宸茶繃鏈� 鏃犻渶璐拱
+    //       return false
+    //     }
+    //   }
+    // } else {
+    //   return false;
+    // }
+    let linkData = data.productLinkPath.split("\\");
+    linkData.reverse()
+    let dataList = linkData.map(item => {
+      let data = this.data.cacheData.find(citem => citem.id == item);
+      if (data) return data;
+    })
+    let isBuy = 1;
+    for (let i = 0; i < dataList.length; i++) {
+      const dataItem = dataList[i];
+      if (dataItem) {
+        if (dataItem.saleMethod.length > 0) {
+          isBuy = 2;
+          if (this.data.bookDetail.purchasedSaleMethodIdList.indexOf(dataItem.saleMethod[0].Id) > -1 || dataItem.saleMethod[0].Price == 0) {
+            isBuy = 3;
+            break;
+          } else {
+            break;
+          }
         }
       }
+    }
+    if (isBuy == 2) {
+      // 鏈喘涔�
+      return false
     } else {
-      return false;
+      return true
     }
   },
 
diff --git a/packageBookService/pages/bookServices/detail/buyResource/index.wxml b/packageBookService/pages/bookServices/detail/buyResource/index.wxml
index 9f03c28..e6aa0d7 100644
--- a/packageBookService/pages/bookServices/detail/buyResource/index.wxml
+++ b/packageBookService/pages/bookServices/detail/buyResource/index.wxml
@@ -7,11 +7,7 @@
     <view class="flex">
       <view class="back-icon">
         <!-- <t-icon name="chevron-left" size="30" data-name="{{item}}" bind:click="goBack" /> -->
-        <image
-          src="/static/images/digitalTextbooks/chevron-left.png"
-          bind:tap="goBack"
-          mode="aspectFit"
-        />
+        <image src="/static/images/digitalTextbooks/chevron-left.png" bind:tap="goBack" mode="aspectFit" />
       </view>
       <view class="navbar-title">璧勬簮璐拱</view>
     </view>
@@ -21,36 +17,16 @@
   <!-- 鍐呭 -->
 
   <view class="buy-resource" wx:if="{{!loading}}">
-    <tree
-      id="tree"
-      paymentPage="{{paymentPage}}"
-      superior="{{superior}}"
-      treeList="{{learn}}"
-      learnList="{{learn}}"
-      tab="{{'jsek_cloudLearning'}}"
-      isShowCheck="{{true}}"
-      openIds="{{openLearnids}}"
-      checkAllState="{{checkAllState}}"
-      bind:changeCheckAll="changeCheckAll"
-      bind:changeListChecked="changeListChecked"
-      bind:changeResourceChecked="changeResourceChecked"
-      bind:updateCloudLearning="updateCloudLearning"
-    />
+    <tree id="tree" paymentPage="{{paymentPage}}" superior="{{superior}}" treeList="{{learn}}" learnList="{{learn}}" tab="{{'jsek_cloudLearning'}}" isShowCheck="{{true}}" openIds="{{openLearnids}}" checkAllState="{{checkAllState}}" bind:changeCheckAll="changeCheckAll" bind:changeListChecked="changeListChecked" bind:changeResourceChecked="changeResourceChecked" bind:updateCloudLearning="updateCloudLearning" />
     <view class="noData" wx:if="{{noData}}">
       <!-- <t-empty icon="folder-open" description="鏆傛棤鏁版嵁" /> -->
       <empty />
     </view>
   </view>
   <view class="page-bottom">
-    <t-button
-      theme="primary"
-      size="large"
-      class="btn-buy"
-      bindtap="batchPurchase"
-      >鎵归噺璐拱</t-button
-    >
+    <t-button theme="primary" size="large" class="btn-buy" bindtap="batchPurchase">鎵归噺璐拱</t-button>
   </view>
 </view>
 
 <import src="index.skeleton.wxml" />
-<template is="skeleton" wx:if="{{loading}}" />
+<template is="skeleton" wx:if="{{loading}}" />
\ No newline at end of file
diff --git a/packageBookService/pages/bookServices/detail/components/testResource/testResource.js b/packageBookService/pages/bookServices/detail/components/testResource/testResource.js
index ed5229d..129b645 100644
--- a/packageBookService/pages/bookServices/detail/components/testResource/testResource.js
+++ b/packageBookService/pages/bookServices/detail/components/testResource/testResource.js
@@ -142,7 +142,7 @@
             this.properties.bookInfo.rootCmsItemId
           }&idPathList=${JSON.stringify(idPathList)}&answerTitle=${
             value.name
-          }&answerType=option&storeInfo=${this.properties.storeInfo}&jslx=${this.properties.jslx}`,
+          }&answerType=${value.refCode || 'option'}&storeInfo=${this.properties.storeInfo}&jslx=${this.properties.jslx}`,
         });
       }
     },
diff --git a/packageBookService/pages/bookServices/detail/components/testResource/testResource.wxml b/packageBookService/pages/bookServices/detail/components/testResource/testResource.wxml
index e5a19ee..f4795c7 100644
--- a/packageBookService/pages/bookServices/detail/components/testResource/testResource.wxml
+++ b/packageBookService/pages/bookServices/detail/components/testResource/testResource.wxml
@@ -2,57 +2,29 @@
 <view class="test-resource">
   <view class="top-btn">
     <view class="test-radio">
-      <view
-        class="test-btn card {{radioItem == 'test' ? 'card--active' : ''}}"
-        bind:tap="testBtn"
-      >
+      <view class="test-btn card {{radioItem == 'test' ? 'card--active' : ''}}" bind:tap="testBtn">
         <view class="image-box">
-          <image
-            class="test-icon"
-            src="{{ radioItem == 'test' ? '/static/images/bookService/detail/practice-icon.png' : '/static/images/bookService/detail/notest.png'}}"
-            mode="aspectFit"
-          ></image>
+          <image class="test-icon" src="{{ radioItem == 'test' ? '/static/images/bookService/detail/practice-icon.png' : '/static/images/bookService/detail/notest.png'}}" mode="aspectFit"></image>
         </view>
         <view class="btn-content-text">缁冧範</view>
       </view>
-      <view
-        class="test-btn card {{radioItem == 'mock' ? 'card--active' : ''}}"
-        bind:tap="mockBtn"
-      >
+      <view class="test-btn card {{radioItem == 'mock' ? 'card--active' : ''}}" bind:tap="mockBtn">
         <view class="image-box">
-          <image
-            src="{{ radioItem == 'mock' ? '/static/images/bookService/detail/checkpaper.png' : '/static/images/bookService/detail/zujuan.png'}}"
-          ></image>
+          <image src="{{ radioItem == 'mock' ? '/static/images/bookService/detail/checkpaper.png' : '/static/images/bookService/detail/zujuan.png'}}"></image>
         </view>
         <view class="btn-content-text">缁勫嵎</view>
       </view>
     </view>
     <view class="btn-box">
-      <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" class="btn-content">
           <image src="/static/images/bookService/detail/cuoti.png"></image>
           <text class="primary-color">鎴戠殑閿欓</text>
         </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" class="btn-content">
-          <image
-            src="/static/images/bookService/detail/wodeshoucang.png"
-          ></image>
+          <image src="/static/images/bookService/detail/wodeshoucang.png"></image>
           <text class="primary-color"> 鎴戠殑鏀惰棌</text>
         </view>
       </t-button>
@@ -70,51 +42,23 @@
   </view> -->
   <!-- 缁冧範鍒楄〃鏍戠粨鏋� -->
   <view wx:if="{{radioItem == 'test'}}">
-    <view class="buy-question-btn" wx:if="{{!isBuyBank}}">
-      <t-button
-        wx:if="{{!isShoppingBank}}"
-        class="error-btn"
-        theme="default"
-        size="medium"
-        style="padding: 0 12rpx"
-        bind:tap="handleShoppingBank"
-        data-answerType="errorQuestion"
-      >
+    <view class="buy-question-btn" wx:if="{{!isBuyBank && !bookInfo.IsTextbook}}">
+      <t-button wx:if="{{!isShoppingBank}}" class="error-btn" theme="default" size="medium" style="padding: 0 12rpx" bind:tap="handleShoppingBank" data-answerType="errorQuestion">
         <view slot="content" class="btn-content">
           <image src="/static/images/bookService/detail/cart.png" />
           <text class="primary-color">鍔犲叆璐墿杞�</text>
         </view>
       </t-button>
-      <t-button
-        class="error-btn"
-        theme="default"
-        size="medium"
-        style="padding: 0 12rpx"
-        bind:tap="buyBank"
-        data-answerType="errorQuestion"
-      >
+      <t-button class="error-btn" theme="default" size="medium" style="padding: 0 12rpx" bind:tap="buyBank" data-answerType="errorQuestion">
         <view slot="content" class="btn-content">
           <image src="/static/images/bookService/detail/yijiangoumai.png" />
-          <text class="primary-color"
-            >{{bankSaleData.Price > 0 ? "鍏ㄩ儴璐拱" : "鍏嶈垂棰嗗彇"}}</text
-          >
+          <text class="primary-color">{{bankSaleData.Price > 0 ? "鍏ㄩ儴璐拱" : "鍏嶈垂棰嗗彇"}}</text>
         </view>
       </t-button>
     </view>
-    <tree
-      id="test-tree"
-      openIds="{{openIds}}"
-      bookInfo="{{bookInfo}}"
-      tab="{{tab}}"
-      treeList="{{list}}"
-      bind:goTest="goTest"
-    ></tree>
+    <tree id="test-tree" openIds="{{openIds}}" bookInfo="{{bookInfo}}" tab="{{tab}}" treeList="{{list}}" bind:goTest="goTest"></tree>
   </view>
-  <view
-    wx:if="{{noResources}}"
-    class="noData"
-    wx:if="{{radioItem == 'test' && !list.length}}"
-  >
+  <view wx:if="{{noResources}}" class="noData" wx:if="{{radioItem == 'test' && !list.length}}">
     <!-- <t-empty icon="folder-open" description="鏆傛棤鏁版嵁" /> -->
     <empty />
   </view>
@@ -127,49 +71,29 @@
       <t-button class="buy-mock-btn" bind:tap="buyMock">璐拱缁勫嵎</t-button>
     </view>
     <view class="mock-list" wx:if="{{mockData.mockList.length}}">
-      <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.state == '3'}}"
-            >{{item.report.userScore}}鍒�</view
-          >
+          <view class="mock-score" wx:if="{{item.state == '3'}}">{{item.report.userScore}}鍒�</view>
         </view>
       </view>
     </view>
     <view wx:else class="not-mock">
-      <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
-      >
+      <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>
       <t-button class="buy-mock-btn" bind:tap="buyMock">璐拱缁勫嵎</t-button>
     </view>
   </view>
   <view class="loading-box" wx:if="{{}}">
     <t-loading loading="{{}}" />
   </view>
-</view>
+</view>
\ No newline at end of file
diff --git a/packageBookService/pages/bookServices/detail/components/testTree/index.wxml b/packageBookService/pages/bookServices/detail/components/testTree/index.wxml
index c21db62..0ef032a 100644
--- a/packageBookService/pages/bookServices/detail/components/testTree/index.wxml
+++ b/packageBookService/pages/bookServices/detail/components/testTree/index.wxml
@@ -7,7 +7,7 @@
             <view class="box-image fl-cn" style="width: 80%">
               <!-- 娴嬭瘯棰� -->
               <view class="teach-icon fl-cn">
-                <image src="/static/images/bookService/detail/test-icon.png" mode="" class="test-icon"/>
+                <image src="/static/images/bookService/detail/test-icon.png" mode="" class="test-icon" />
               </view>
               <!-- 鍚嶇О -->
               <text class="name" style="width: 100%">{{item.name || '-'}}</text>
diff --git a/packageBookService/pages/bookServices/detail/components/tree/index.js b/packageBookService/pages/bookServices/detail/components/tree/index.js
index 3d90c78..509c3a9 100644
--- a/packageBookService/pages/bookServices/detail/components/tree/index.js
+++ b/packageBookService/pages/bookServices/detail/components/tree/index.js
@@ -109,6 +109,7 @@
         }
       });
       const flag = list.findIndex((item) => item.checked == true);
+      console.log(this.properties.treeList)
     },
   },
   methods: {
@@ -221,6 +222,7 @@
     // 璺宠浆闊宠棰戞挱鏀惧櫒
     goPlayer(e) {
       // 妫�鏌ョ櫥褰曠姸鎬�
+      // if (this.properties.bookInfo.IsTextbook) return
       const goPlayerFun = async () => {
         const item = e.currentTarget.dataset.item;
         const parent = e.currentTarget.dataset.parent;
@@ -316,7 +318,7 @@
         }
         wx.navigateTo({
           url: `${url}?productLinkPath=${item.productLinkPath}&parentProductLinkPath=${parentProductLinkPath}&parentName=${parentName}&activeId=${item.id}&bookId=${this.properties.bookInfo.id}&bookName=${this.properties.bookInfo.name}&cmsId=${this.properties.bookInfo.rootCmsItemId}&formPath=${this.properties.tab}&applyState=${this.properties.applyState}&deadline=${this.properties.deadline}`,
-          // url: '/packageDomain/pages/resourceDetails/myVideo/index?formPath=jsek_cloudLearning&parentName=gggg&cmsId=137103&productLinkPath=137103\\137105\\159492&activeId=159492&parentProductLinkPath=137105&source=qrcode&bookName=fffff&bookId=6745'
+          // url: '/packageDomain/pages/resourceDetails/myVideo/index?formPath=jsek_cloudLearning&parentName=YDHYD&cmsId=161974&productLinkPath=161974\\161976\\162006&activeId=162006&parentProductLinkPath=161976&source=qrcode&bookName=fffff&bookId=7136'
         });
       }
       const token = wx.getStorageSync(app.config.tokenKey);
@@ -358,8 +360,10 @@
     // 鎷垮埌褰撳墠椤瑰瓙椤�
     flattenTree(tree) {
       let result = [];
+      let that = this
 
       function flatten(node) {
+
         result.push(node);
         if (node.children && node.children.length > 0) {
           node.children.forEach((child) => {
diff --git a/packageBookService/pages/bookServices/detail/components/tree/index.wxml b/packageBookService/pages/bookServices/detail/components/tree/index.wxml
index a7d6e82..826b69c 100644
--- a/packageBookService/pages/bookServices/detail/components/tree/index.wxml
+++ b/packageBookService/pages/bookServices/detail/components/tree/index.wxml
@@ -1,92 +1,27 @@
 <view class="tree">
   <t-collapse default-value="{{openIds}}" catchchange="handleChange">
-    <view
-      wx:for="{{treeList}}"
-      wx:for-item="item"
-      wx:for-index="index"
-      wx:key="id"
-      wx:if="{{item.sysType== 'CmsItem' }}"
-    >
-      <view
-        class="listItems {{'cms-' + item.id}}"
-        wx:if="{{item.childrenFolderCount <= 0 && item.sysType == 'CmsItem'}}"
-      >
+    <view wx:for="{{treeList}}" wx:for-item="item" wx:for-index="index" wx:key="id" wx:if="{{item.sysType== 'CmsItem' }}">
+      <view class="listItems {{'cms-' + item.id}}" wx:if="{{item.childrenFolderCount <= 0 && item.sysType == 'CmsItem'}}">
         <view class="itemsInfo" data-item="{{item}}" data-index="{{index}}">
-          <view
-            class="contentBox"
-            bind:tap="goPlayer"
-            data-item="{{item}}"
-            data-parent="{{''}}"
-          >
+          <view class="contentBox" bind:tap="goPlayer" data-item="{{item}}" data-parent="{{''}}">
             <!-- 鏁欏璧勬簮 浜戝涔� 鍥炬爣 -->
             <view class="box-image fl-cn" style="width: 80%">
-              <view
-                class="checkBox"
-                wx:if="{{isShowCheck}}"
-                catchtap="catchTap"
-              >
-                <t-checkbox
-                  disabled="{{item.disabled}}"
-                  icon="rectangle"
-                  checked="{{item.checked}}"
-                  data-item="{{item}}"
-                  data-parent="{{item}}"
-                  catch:change="checkResource"
-                />
+              <view class="checkBox" wx:if="{{isShowCheck}}" catchtap="catchTap">
+                <t-checkbox disabled="{{item.disabled}}" icon="rectangle" checked="{{item.checked}}" data-item="{{item}}" data-parent="{{item}}" catch:change="checkResource" />
               </view>
               <!-- 鏁欏璧勬簮鍥炬爣 -->
               <view class="teach-icon fl-cn">
-                <image
-                  wx:if="{{item.selectType == 'audio' || item.learnSelectType == 'audio'}}"
-                  src="/static/images/bookService/detail/audioIcon.png"
-                  mode="aspectFill"
-                />
-                <image
-                  wx:elif="{{item.selectType == 'video' || item.learnSelectType == 'video'}}"
-                  src="/static/images/bookService/detail/video.png"
-                  mode="aspectFill"
-                />
-                <image
-                  wx:elif="{{item.selectType == 'pdf' || item.learnSelectType == 'pdf'}}"
-                  src="/static/images/bookService/detail/pdf.png"
-                  mode="aspectFill"
-                />
-                <image
-                  wx:elif="{{item.selectType == 'webpage' || item.learnSelectType == 'webpage'}}"
-                  src="/static/images/bookService/detail/net.png"
-                  mode="aspectFill"
-                />
-                <image
-                  wx:elif="{{item.selectType == 'picture' || item.learnSelectType == 'picture'}}"
-                  src="/static/images/bookService/detail/picture.png"
-                  mode="aspectFill"
-                />
-                <image
-                  wx:elif="{{item.selectType == 'zip' || item.learnSelectType == 'zip'}}"
-                  src="/static/images/bookService/detail/zip.png"
-                  mode="aspectFill"
-                />
-                <image
-                  wx:elif="{{ item.fileMap[item.file].extension == 'doc' ||  item.fileMap[item.file].extension == 'docx' || item.fileMap[item.freeFile].extension == 'doc' ||  item.fileMap[item.freeFile].extension == 'docx' || item.fileMap[item.protectedFile].extension == 'doc' ||  item.fileMap[item.protectedFile].extension == 'docx'}}"
-                  src="/static/images/bookService/detail/word.png"
-                  mode="aspectFill"
-                />
-                <image
-                  wx:elif="{{ item.fileMap[item.file].extension == 'xls' ||  item.fileMap[item.file].extension == 'xlsx' || item.fileMap[item.freeFile].extension == 'xls' ||  item.fileMap[item.freeFile].extension == 'xlsx' || item.fileMap[item.protectedFile].extension == 'xls' ||  item.fileMap[item.protectedFile].extension == 'xlsx'}}"
-                  src="/static/images/bookService/detail/excel.png"
-                  mode="aspectFill"
-                />
-                <image
-                  wx:elif="{{ item.fileMap[item.file].extension == 'ppt' ||  item.fileMap[item.file].extension == 'pptx' || item.fileMap[item.freeFile].extension == 'ppt' ||  item.fileMap[item.freeFile].extension == 'pptx' || item.fileMap[item.protectedFile].extension == 'ppt' ||  item.fileMap[item.protectedFile].extension == 'pptx'}}"
-                  src="/static/images/bookService/detail/PPT.png"
-                  mode="aspectFill"
-                />
+                <image wx:if="{{item.selectType == 'audio' || item.learnSelectType == 'audio'}}" src="/static/images/bookService/detail/audioIcon.png" mode="aspectFill" />
+                <image wx:elif="{{item.selectType == 'video' || item.learnSelectType == 'video'}}" src="/static/images/bookService/detail/video.png" mode="aspectFill" />
+                <image wx:elif="{{item.selectType == 'pdf' || item.learnSelectType == 'pdf'}}" src="/static/images/bookService/detail/pdf.png" mode="aspectFill" />
+                <image wx:elif="{{item.selectType == 'webpage' || item.learnSelectType == 'webpage'}}" src="/static/images/bookService/detail/net.png" mode="aspectFill" />
+                <image wx:elif="{{item.selectType == 'picture' || item.learnSelectType == 'picture'}}" src="/static/images/bookService/detail/picture.png" mode="aspectFill" />
+                <image wx:elif="{{item.selectType == 'zip' || item.learnSelectType == 'zip'}}" src="/static/images/bookService/detail/zip.png" mode="aspectFill" />
+                <image wx:elif="{{ item.fileMap[item.file].extension == 'doc' ||  item.fileMap[item.file].extension == 'docx' || item.fileMap[item.freeFile].extension == 'doc' ||  item.fileMap[item.freeFile].extension == 'docx' || item.fileMap[item.protectedFile].extension == 'doc' ||  item.fileMap[item.protectedFile].extension == 'docx'}}" src="/static/images/bookService/detail/word.png" mode="aspectFill" />
+                <image wx:elif="{{ item.fileMap[item.file].extension == 'xls' ||  item.fileMap[item.file].extension == 'xlsx' || item.fileMap[item.freeFile].extension == 'xls' ||  item.fileMap[item.freeFile].extension == 'xlsx' || item.fileMap[item.protectedFile].extension == 'xls' ||  item.fileMap[item.protectedFile].extension == 'xlsx'}}" src="/static/images/bookService/detail/excel.png" mode="aspectFill" />
+                <image wx:elif="{{ item.fileMap[item.file].extension == 'ppt' ||  item.fileMap[item.file].extension == 'pptx' || item.fileMap[item.freeFile].extension == 'ppt' ||  item.fileMap[item.freeFile].extension == 'pptx' || item.fileMap[item.protectedFile].extension == 'ppt' ||  item.fileMap[item.protectedFile].extension == 'pptx'}}" src="/static/images/bookService/detail/PPT.png" mode="aspectFill" />
                 <!-- 璧勬簮鏃犳枃浠跺唴瀹瑰浘鏍� -->
-                <image
-                  wx:else
-                  src="/static/images/bookService/detail/word.png"
-                  mode=""
-                />
+                <image wx:else src="/static/images/bookService/detail/word.png" mode="" />
               </view>
               <!-- 鍚嶇О -->
               <text class="name" style="width: 100%">{{item.name || '-'}}</text>
@@ -104,49 +39,20 @@
             </view>
             <view wx:if="{{tab == 'jsek_cloudLearning'}}">
               <!-- 浜戝涔犺瘯鐪嬪浘鏍� -->
-              <image
-                src="/static/images/bookService/detail/shikan.png"
-                class="testSee"
-                wx:if="{{!item.isbuy ? false : item.freeFile ? true : false}}"
-              ></image>
+              <image src="/static/images/bookService/detail/shikan.png" class="testSee" wx:if="{{!item.isbuy ? false : item.freeFile ? true : false}}"></image>
               <!-- 浜戝涔犲姞鍏ヨ喘鐗╄溅鍥炬爣 -->
-              <image
-                src="/static/images/bookService/detail/cart@2x.png"
-                wx:if="{{item.isShopCar}}"
-                class="shopCar"
-                data-item="{{item}}"
-                catch:tap="onCloudShoppingCart"
-              ></image>
+              <image src="/static/images/bookService/detail/cart@2x.png" wx:if="{{item.isShopCar && !bookInfo.IsTextbook}}" class="shopCar" data-item="{{item}}" catch:tap="onCloudShoppingCart"></image>
               <!-- 浜戝涔犺喘涔板浘鏍� -->
-              <image
-                src="/static/images/bookService/detail/need-buy.png"
-                class="need-buy"
-                wx:if="{{item.isbuy }}"
-              ></image>
+              <image src="/static/images/bookService/detail/need-buy.png" class="need-buy" wx:if="{{item.isbuy && !bookInfo.IsTextbook }}"></image>
             </view>
           </view>
         </view>
       </view>
     </view>
-    <t-collapse-panel
-      wx:for="{{treeList}}"
-      wx:for-item="item"
-      wx:for-index="index"
-      wx:key="id"
-      value="{{item.id}}"
-      wx:if="{{item.sysType == 'CmsFolder' }}"
-    >
+    <t-collapse-panel wx:for="{{treeList}}" wx:for-item="item" wx:for-index="index" wx:key="id" value="{{item.id}}" wx:if="{{item.sysType == 'CmsFolder' }}">
       <view slot="header" class=" {{'cms-' + item.id}}  header-title">
         <view class="title-checkBox" catchtap="catchTap">
-          <t-checkbox
-            style="align-items: center"
-            icon="rectangle"
-            disabled="{{item.disabled}}"
-            checked="{{item.checked}}"
-            data-item="{{item}}"
-            catchchange="checkResourceTitle"
-            wx:if="{{isShowCheck}}"
-          />
+          <t-checkbox style="align-items: center" icon="rectangle" disabled="{{item.disabled}}" checked="{{item.checked}}" data-item="{{item}}" catchchange="checkResourceTitle" wx:if="{{isShowCheck}}" />
           <!-- 绔犺妭鍚� -->
           <view class="title-box">
             <view class="title-t">
@@ -157,166 +63,57 @@
             </view>
             <view class="title-icon">
               <!-- 浜戝涔犲姞鍏ヨ喘鐗╄溅鍥炬爣 -->
-              <image
-                src="/static/images/bookService/detail/cart@2x.png"
-                wx:if="{{item.isShopCar}}"
-                class="shopCar"
-                data-item="{{item}}"
-                catch:tap="onCloudShoppingCart"
-              ></image>
+              <image src="/static/images/bookService/detail/cart@2x.png" wx:if="{{item.isShopCar && !bookInfo.IsTextbook && item.isShowIcon}}" class="shopCar" data-item="{{item}}" catch:tap="onCloudShoppingCart"></image>
               <!-- 浜戝涔犺喘涔板浘鏍� -->
-              <image
-                src="/static/images/bookService/detail/need-buy.png"
-                class="need-buy"
-                wx:if="{{item.isbuy }}"
-              ></image>
+              <image src="/static/images/bookService/detail/need-buy.png" class="need-buy" wx:if="{{!item.isbuy && !bookInfo.IsTextbook && item.isShowIcon }}"></image>
             </view>
           </view>
         </view>
       </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 {{'cms-' + citem.id}}"
-          wx:if="{{citem.childrenFolderCount <= 0 && citem.sysType == 'CmsItem'}}"
-        >
+        <view class="listItems {{'cms-' + citem.id}}" wx:if="{{citem.childrenFolderCount <= 0 && citem.sysType == 'CmsItem'}}">
           <view class="itemsInfo" data-item="{{citem}}" data-index="{{cindex}}">
-            <view
-              class="contentBox"
-              bind:tap="goPlayer"
-              data-item="{{citem}}"
-              data-parent="{{item}}"
-            >
+            <view class="contentBox" bind:tap="goPlayer" data-item="{{citem}}" data-parent="{{item}}">
               <!-- 鏁欏璧勬簮 鍥炬爣 -->
               <view class="box-image fl-cn">
-                <view
-                  class="checkBox"
-                  wx:if="{{isShowCheck}}"
-                  catchtap="catchTap"
-                >
-                  <t-checkbox
-                    disabled="{{citem.disabled}}"
-                    icon="rectangle"
-                    checked="{{citem.checked}}"
-                    data-item="{{citem}}"
-                    data-parent="{{item}}"
-                    catch:change="checkResource"
-                  />
+                <view class="checkBox" wx:if="{{isShowCheck}}" catchtap="catchTap">
+                  <t-checkbox disabled="{{citem.disabled}}" icon="rectangle" checked="{{citem.checked}}" data-item="{{citem}}" data-parent="{{item}}" catch:change="checkResource" />
                 </view>
                 <!-- 鏁欏璧勬簮鍥炬爣 -->
                 <view class="teach-icon fl-cn">
-                  <image
-                    wx:if="{{citem.selectType == 'audio' || citem.learnSelectType == 'audio'}}"
-                    src="/static/images/bookService/detail/audioIcon.png"
-                    mode="aspectFill"
-                  />
-                  <image
-                    wx:elif="{{citem.selectType == 'video' || citem.learnSelectType == 'video'}}"
-                    src="/static/images/bookService/detail/video.png"
-                    mode="aspectFill"
-                  />
-                  <image
-                    wx:elif="{{citem.selectType == 'pdf' || citem.learnSelectType == 'pdf'}}"
-                    src="/static/images/bookService/detail/pdf.png"
-                    mode="aspectFill"
-                  />
-                  <image
-                    wx:elif="{{citem.selectType == 'webpage' || citem.learnSelectType == 'webpage'}}"
-                    src="/static/images/bookService/detail/net.png"
-                    mode="aspectFill"
-                  />
-                  <image
-                    wx:elif="{{citem.selectType == 'picture' || citem.learnSelectType == 'picture'}}"
-                    src="/static/images/bookService/detail/picture.png"
-                    mode="aspectFill"
-                  />
-                  <image
-                    wx:elif="{{citem.selectType == 'zip' || citem.learnSelectType == 'zip'}}"
-                    src="/static/images/bookService/detail/zip.png"
-                    mode="aspectFill"
-                  />
-                  <image
-                    wx:elif="{{ citem.fileMap[citem.file].extension == 'doc' ||  citem.fileMap[citem.file].extension == 'docx' || citem.fileMap[citem.freeFile].extension == 'doc' ||  citem.fileMap[citem.freeFile].extension == 'docx' || citem.fileMap[citem.protectedFile].extension == 'doc' ||  citem.fileMap[citem.protectedFile].extension == 'docx'}}"
-                    src="/static/images/bookService/detail/word.png"
-                    mode="aspectFill"
-                  />
-                  <image
-                    wx:elif="{{ citem.fileMap[citem.file].extension == 'xls' ||  citem.fileMap[citem.file].extension == 'xlsx' || citem.fileMap[citem.freeFile].extension == 'xls' ||  citem.fileMap[citem.freeFile].extension == 'xlsx' || citem.fileMap[citem.protectedFile].extension == 'xls' ||  citem.fileMap[citem.protectedFile].extension == 'xlsx' }}"
-                    src="/static/images/bookService/detail/excel.png"
-                    mode="aspectFill"
-                  />
-                  <image
-                    wx:elif="{{ citem.fileMap[citem.file].extension == 'ppt' ||  citem.fileMap[citem.file].extension == 'pptx' || citem.fileMap[citem.freeFile].extension == 'ppt' ||  citem.fileMap[citem.freeFile].extension == 'pptx' || citem.fileMap[citem.protectedFile].extension == 'ppt' ||  citem.fileMap[citem.protectedFile].extension == 'pptx'}}"
-                    src="/static/images/bookService/detail/PPT.png"
-                    mode="aspectFill"
-                  />
+                  <image wx:if="{{citem.selectType == 'audio' || citem.learnSelectType == 'audio'}}" src="/static/images/bookService/detail/audioIcon.png" mode="aspectFill" />
+                  <image wx:elif="{{citem.selectType == 'video' || citem.learnSelectType == 'video'}}" src="/static/images/bookService/detail/video.png" mode="aspectFill" />
+                  <image wx:elif="{{citem.selectType == 'pdf' || citem.learnSelectType == 'pdf'}}" src="/static/images/bookService/detail/pdf.png" mode="aspectFill" />
+                  <image wx:elif="{{citem.selectType == 'webpage' || citem.learnSelectType == 'webpage'}}" src="/static/images/bookService/detail/net.png" mode="aspectFill" />
+                  <image wx:elif="{{citem.selectType == 'picture' || citem.learnSelectType == 'picture'}}" src="/static/images/bookService/detail/picture.png" mode="aspectFill" />
+                  <image wx:elif="{{citem.selectType == 'zip' || citem.learnSelectType == 'zip'}}" src="/static/images/bookService/detail/zip.png" mode="aspectFill" />
+                  <image wx:elif="{{ citem.fileMap[citem.file].extension == 'doc' ||  citem.fileMap[citem.file].extension == 'docx' || citem.fileMap[citem.freeFile].extension == 'doc' ||  citem.fileMap[citem.freeFile].extension == 'docx' || citem.fileMap[citem.protectedFile].extension == 'doc' ||  citem.fileMap[citem.protectedFile].extension == 'docx'}}" src="/static/images/bookService/detail/word.png" mode="aspectFill" />
+                  <image wx:elif="{{ citem.fileMap[citem.file].extension == 'xls' ||  citem.fileMap[citem.file].extension == 'xlsx' || citem.fileMap[citem.freeFile].extension == 'xls' ||  citem.fileMap[citem.freeFile].extension == 'xlsx' || citem.fileMap[citem.protectedFile].extension == 'xls' ||  citem.fileMap[citem.protectedFile].extension == 'xlsx' }}" src="/static/images/bookService/detail/excel.png" mode="aspectFill" />
+                  <image wx:elif="{{ citem.fileMap[citem.file].extension == 'ppt' ||  citem.fileMap[citem.file].extension == 'pptx' || citem.fileMap[citem.freeFile].extension == 'ppt' ||  citem.fileMap[citem.freeFile].extension == 'pptx' || citem.fileMap[citem.protectedFile].extension == 'ppt' ||  citem.fileMap[citem.protectedFile].extension == 'pptx'}}" src="/static/images/bookService/detail/PPT.png" mode="aspectFill" />
                   <!-- 璧勬簮鏃犳枃浠跺唴瀹瑰浘鏍� -->
-                  <image
-                    wx:else
-                    src="/static/images/bookService/detail/word.png"
-                    mode=""
-                  />
+                  <image wx:else src="/static/images/bookService/detail/word.png" mode="" />
                 </view>
                 <!-- 鍚嶇О -->
-                <text
-                  class="name"
-                  style="{{ tab == 'jsek_teachingResources' ? citem.resourceClass ? 'width: 400rpx'  :  'width: 420rpx;' : (citem.isShopCar &&citem.isbuy ) ? 'width: 300rpx;' : (citem.isShopCar ||citem.isbuy) ? 'width:360rpx' :  'width:420rpx'}}"
-                  >{{citem.name || '-'}}</text
-                >
+                <text class="name" style="{{ tab == 'jsek_teachingResources' ? citem.resourceClass ? 'width: 400rpx'  :  'width: 420rpx;' : (citem.isShopCar && citem.isbuy ) ? 'width: 300rpx;' : (citem.isShopCar || citem.isbuy) ? 'width:360rpx' :  'width:420rpx'}}">{{citem.name || '-'}}</text>
               </view>
               <!-- 鏁欏璧勬簮绫诲瀷 -->
-              <view
-                class="teachClass fl-cn"
-                wx:if="{{citem.resourceClass && tab == 'jsek_teachingResources'}}"
-              >
+              <view class="teachClass fl-cn" wx:if="{{citem.resourceClass && tab == 'jsek_teachingResources'}}">
                 {{citem.resourceClass}}
               </view>
               <view wx:if="{{tab == 'jsek_cloudLearning'}}" class="clound-icon">
                 <!-- 浜戝涔犺瘯鐪嬪浘鏍� -->
-                <image
-                  src="/static/images/bookService/detail/shikan.png"
-                  class="testSee"
-                  wx:if="{{!citem.isbuy ? false : citem.freeFile ? true : false}}"
-                ></image>
+                <image src="/static/images/bookService/detail/shikan.png" class="testSee" wx:if="{{!citem.isbuy && citem.freeFile && citem.isShowIcon}}"></image>
                 <!-- 浜戝涔犲姞鍏ヨ喘鐗╄溅鍥炬爣 -->
-                <image
-                  src="/static/images/bookService/detail/cart@2x.png"
-                  wx:if="{{citem.isShopCar}}"
-                  class="shopCar"
-                  data-item="{{citem}}"
-                  catch:tap="onCloudShoppingCart"
-                ></image>
+                <image src="/static/images/bookService/detail/cart@2x.png" wx:if="{{citem.isShopCar && !bookInfo.IsTextbook && citem.isShowIcon}}" class="shopCar" data-item="{{citem}}" catch:tap="onCloudShoppingCart"></image>
                 <!-- 浜戝涔犺喘涔板浘鏍� -->
-                <image
-                  src="/static/images/bookService/detail/need-buy.png"
-                  class="need-buy"
-                  wx:if="{{citem.isbuy }}"
-                ></image>
+                <image src="/static/images/bookService/detail/need-buy.png" class="need-buy" wx:if="{{!citem.isbuy && !bookInfo.IsTextbook && citem.isShowIcon}}"></image>
               </view>
             </view>
           </view>
         </view>
         <!-- // 鍒ゆ柇 涓嶆槸鍟嗗搧 鏈夊瓙椤� 閫掑綊缁勪欢 -->
-        <tree
-          wx:if="{{ citem.sysType == 'CmsFolder' }}"
-          isShowCheck="{{isShowCheck}}"
-          bookInfo="{{bookInfo}}"
-          treeList="{{[citem]}}"
-          learnList="{{learnList}}"
-          itemId="{{itemId}}"
-          tab="{{tab}}"
-          buyIds="{{buyIds}}"
-          openIds="{{openIds}}"
-          learnMenu="{{learnMenu}}"
-          activeId="{{activeId}}"
-          isCloundHaveSaleMethod="{{isCloundHaveSaleMethod}}"
-        ></tree>
+        <tree wx:if="{{ citem.sysType == 'CmsFolder' }}" isShowCheck="{{isShowCheck}}" bookInfo="{{bookInfo}}" treeList="{{[citem]}}" learnList="{{learnList}}" itemId="{{itemId}}" tab="{{tab}}" buyIds="{{buyIds}}" openIds="{{openIds}}" learnMenu="{{learnMenu}}" activeId="{{activeId}}" isCloundHaveSaleMethod="{{isCloundHaveSaleMethod}}"></tree>
       </view>
       <!-- 鏆傛棤鏁版嵁 -->
       <view wx:if="{{!item.children || !item.children.length}}" class="noData">
@@ -334,4 +131,4 @@
 </view>
 
 <web-view wx:if="{{webpageSrc}}" src="{{webpageSrc}}"></web-view>
-<!-- <button bind:tap="sadd"> 65498</button> -->
+<!-- <button bind:tap="sadd"> 65498</button> -->
\ No newline at end of file
diff --git a/packageBookService/pages/bookServices/detail/index.js b/packageBookService/pages/bookServices/detail/index.js
index 07cb6b1..ba68a88 100644
--- a/packageBookService/pages/bookServices/detail/index.js
+++ b/packageBookService/pages/bookServices/detail/index.js
@@ -216,7 +216,8 @@
     scrollTop: 0, // 鎵爜杩涜祫婧愭粴鍔�
     source: '',
     activeId: '',
-    qrTabValue: ''
+    qrTabValue: '',
+    cacheData: [], // 浜戝涔犲垵濮嬫暟鎹�
   },
   // 鎵爜鍒拌祫婧愬垪琛紝婊氬姩鍒拌璧勬簮浣嶇疆
   handleScrollTop(e) {
@@ -459,9 +460,11 @@
         freeEpubPage: [], //epub璇曡鐧惧垎姣�
         bookEditor: [], //鍥句功缂栬緫
         contactInformation: [], //鑱旂郴鏂瑰紡
+        IsTextbook: [] // 鏄惁涓烘暀鏉� 濡傛灉鏄暀鏉愮姝㈡樉绀烘墍鏈夎喘涔版寜閽�
       },
     };
     app.MG.store.getProductDetail(query).then(async (res) => {
+      res.datas.IsTextbook = res.datas.IsTextbook == '1' ? true : false
       this.getResourceCode(id, res.datas.rootCmsItemId)
       res.datas.bookEditor = res.datas.bookEditor ? res.datas.bookEditor : '-'
       res.datas.contactInformation = res.datas.contactInformation ? res.datas.contactInformation : '-'
@@ -990,23 +993,40 @@
     // 杩斿洖鏇存柊鍚庣殑鏁扮粍  
     return array;
   },
-  // 閫掑綊鏍戠粨鏋勶紝濡傛灉鐖剁骇鏈夐攢鍞柟寮�(鏈夋晥鏈�)锛屽幓鎺夋墍鏈夊瓙闆嗙殑閿�鍞柟寮�
-  clearTreeSealmethod(clearSaleMethod, tree) {
+  // 閫掑綊鏍戠粨鏋�
+  handleSalmethodBtn(tree, data, parent) {
     for (let item of tree) {
-      const saleData = item.saleMethod &&
-        item.saleMethod.length ?
-        item.saleMethod.find((citem) => citem.SaleType == 'Normal') : null
-      if (
-        ((saleData && new Date(saleData.EndDate).getTime() >= new Date().getTime() && new Date(saleData.BeginDate).getTime() <= new Date().getTime()) ||
-          clearSaleMethod) && item.children && item.children.length
-      ) {
-        item.children.forEach((ditem) => (ditem.saleMethod = []))
+      // 鏄惁鏄剧ず鎸夐挳
+      item.isShowIcon = false;
+      if (item.sysType == 'CmsItem') {
+        // 鏌ユ壘鐩綍涓嬭祫婧愰攢鍞柟寮忥紝鐩綍涓嬭祫婧愭病鏈夐攢鍞柟寮�
+        if (item.saleMethod?.length == 0) {
+          // 鏌ョ湅鍏剁埗绾ф槸鍚︽湁閿�鍞柟寮�
+          if (parent.saleMethod?.length > 0) {
+            // 鐖剁骇鏄湁閿�鍞柟寮忕洿鎺ユ樉绀烘寜閽�
+            // const index = data.findIndex(i => i.id == parent.id)
+            parent.isShowIcon = true
+          }
+          //  else {
+          //   // 鐖剁骇娌℃湁閿�鍞柟寮忥紝鏌ユ壘璇ヨ祫婧愮埗绾�
+          //   const arr = parent.productLinkPath.split('\\')
+          //   const linkData = arr[arr.length - 1] // arr[arr.length - 1] 鎺掗櫎鑷繁
+          //   linkData.reverse()
+          //   const dataList = linkData.map(ritem => {
+          //     const parentData = data.find(citem => citem.id == ritem);
+          //     if (parentData) return parentData;
+          //   })
+          //   if (dataList?.length > 0) {
+          //     const index = data.findIndex(i => i.id == dataList[0].id)
+          //     data[index].isShowIcon = true
+          //   }
+          // }
+        } else {
+          item.isShowIcon = true
+        }
+      } else {
+        this.handleSalmethodBtn(item.children, data, item)
       }
-      if (item.children && item.children.length)
-        this.clearTreeSealmethod(
-          saleData && new Date(saleData.EndDate).getTime() >= new Date().getTime() && new Date(saleData.BeginDate).getTime() <= new Date().getTime(),
-          item.children
-        )
     }
     return tree
   },
@@ -1047,6 +1067,9 @@
           loading: false,
         });
       }
+      this.setData({
+        cacheData: res.datas.cmsDatas[0].datas
+      })
       let list = []
       // 鍒ゆ柇浜戝涔犳湁鏃犻攢鍞柟寮忓拰鏈夋晥鏈�
       const cloundSaleMethod =
@@ -1111,8 +1134,8 @@
           teach: list,
         });
       } else if (type.refCode == "jsek_cloudLearning") {
-        // 浜戝涔犱笂鏃犻攢鍞柟寮忥紝璧扮洰褰� 璧勬簮 閿�鍞柟寮忓幓闄ゆ柟娉�
-        if (!flags) list = this.clearTreeSealmethod(false, list)
+        // 鎺у埗鎸夐挳鏄剧ず
+        list = this.handleSalmethodBtn(list, list, null)
         // 鍒ゆ柇棰嗗彇鏌ョ湅鏄惁鏄剧ず(浜戝涔狅紝鎴栬祫婧愮洰褰曪紝鏈夊敭浠蜂负0)
         let isshowDrawBtn = res.datas.cmsDatas[0].datas.some(
           (item) =>
@@ -1122,12 +1145,12 @@
           new Date(item.saleMethod.find((citem) => citem.SaleType == 'Normal').BeginDate).getTime() <= new Date().getTime()
         ) || (flags && cloundSaleMethod.Price == 0)
         // 鍒ゆ柇浜戝涔犲叏閮ㄨ喘涔版寜閽槸鍚︽樉绀�
-        let isShowBuyCloundMenu = flags && cloundSaleMethod.Price > 0 && !this.data.buyIdList.includes(cloundSaleMethod.Id)
+        let isShowBuyCloundMenu = flags && cloundSaleMethod.Price > 0 && !this.data.buyIdList.includes(cloundSaleMethod.Id) && !this.data.bookDetail.IsTextbook
         // 鍒ゆ柇璧勬簮璐拱鎸夐挳鏄惁鏄剧ず 锛堜簯瀛︿範鏃犻攢鍞柟寮忥紝璧勬簮鍜岀洰褰曚腑鏈夐攢鍞柟寮忥紝涓斿敭浠峰ぇ浜�0锛�
         let isShowBuyCloundBtn = !flags && res.datas.cmsDatas[0].datas.some(item => item.saleMethod.length &&
           item.saleMethod.find((citem) => citem.SaleType == 'Normal').Price > 0 &&
           new Date(item.saleMethod.find((citem) => citem.SaleType == 'Normal').EndDate).getTime() >= new Date().getTime() &&
-          new Date(item.saleMethod.find((citem) => citem.SaleType == 'Normal').BeginDate).getTime() <= new Date().getTime())
+          new Date(item.saleMethod.find((citem) => citem.SaleType == 'Normal').BeginDate).getTime() <= new Date().getTime()) && !this.data.bookDetail.IsTextbook
         // 鍒ゆ柇璐墿杞︽寜閽拰閿佹寜閽槸鍚︽樉绀�
         this.handleTreeData(list).forEach(item => {
           item.isbuy = this.resourceIsBuy(item);
@@ -1149,7 +1172,6 @@
           learnPath: type.productLinkPath
         });
       }
-      console.log('1', result);
     })
   },
   //  鑾峰彇 浜戞祴璇�
@@ -1715,28 +1737,55 @@
   },
   // 鍒ゆ柇璧勬簮鏄惁璐拱
   resourceIsBuy(data) {
-    if (data.saleMethod && data.saleMethod.length) {
-      const saleData = data.saleMethod.find((item) => item.SaleType == 'Normal')
-      if (saleData.State == 'Disable') return false
-      const isShow = this.data.buyIdList.some(
-        (item) => item == saleData.Id
-      );
-      // 宸茬粡璐拱
-      if (isShow || saleData.Price == 0) return false
-      // 鏈喘涔帮紝鏌ョ湅閿�鍞柟寮忔槸鍚﹁繃鏈�
-      if (!isShow) {
-        const flag = new Date(saleData.EndDate).getTime() >= new Date().getTime() &&
-          new Date(saleData.BeginDate).getTime() <= new Date().getTime()
-        if (flag) {
-          // 涓鸿繃鏈� 锛岄渶瑕佽喘涔�
-          return true
-        } else {
-          // 宸茶繃鏈� 鏃犻渶璐拱
-          return false
+    // if (data.saleMethod && data.saleMethod.length) {
+    //   const saleData = data.saleMethod.find((item) => item.SaleType == 'Normal')
+    //   if (saleData.State == 'Disable') return false
+    //   const isShow = this.data.buyIdList.some(
+    //     (item) => item == saleData.Id
+    //   );
+    //   // 宸茬粡璐拱
+    //   if (isShow || saleData.Price == 0) return false
+    //   // 鏈喘涔帮紝鏌ョ湅閿�鍞柟寮忔槸鍚﹁繃鏈�
+    //   if (!isShow) {
+    //     const flag = new Date(saleData.EndDate).getTime() >= new Date().getTime() &&
+    //       new Date(saleData.BeginDate).getTime() <= new Date().getTime()
+    //     if (flag) {
+    //       // 涓鸿繃鏈� 锛岄渶瑕佽喘涔�
+    //       return true
+    //     } else {
+    //       // 宸茶繃鏈� 鏃犻渶璐拱
+    //       return false
+    //     }
+    //   }
+    // } else {
+    //   return false;
+    // }
+    let linkData = data.productLinkPath.split("\\");
+    linkData.reverse()
+    let dataList = linkData.map(item => {
+      let data = this.data.cacheData.find(citem => citem.id == item);
+      if (data) return data;
+    })
+    let isBuy = 1;
+    for (let i = 0; i < dataList.length; i++) {
+      const dataItem = dataList[i];
+      if (dataItem) {
+        if (dataItem.saleMethod.length > 0) {
+          isBuy = 2;
+          if (this.data.bookDetail.purchasedSaleMethodIdList.indexOf(dataItem.saleMethod[0].Id) > -1 || dataItem.saleMethod[0].Price == 0) {
+            isBuy = 3;
+            break;
+          } else {
+            break;
+          }
         }
       }
+    }
+    if (isBuy == 2) {
+      // 鏈喘涔�
+      return false
     } else {
-      return false;
+      return true
     }
   },
   // 浜戝涔犺祫婧愭槸鍚︽樉绀洪攣鍥炬爣锛堟湭璐拱锛屼笖璧勬簮鍞环澶т簬闆讹級
diff --git a/packageBookService/pages/bookServices/detail/index.wxml b/packageBookService/pages/bookServices/detail/index.wxml
index e4b7307..f151d40 100644
--- a/packageBookService/pages/bookServices/detail/index.wxml
+++ b/packageBookService/pages/bookServices/detail/index.wxml
@@ -184,8 +184,8 @@
       <view class="btn-text">璇曡</view>
     </view>
 
-    <view class="shopCar shopCarColor" bind:tap="addBookShopcCar" wx:if="{{!bookBuy &&  bookDetail.price !== '0.00' && bookDetail.isSell == '1'}}">鍔犲叆璐墿杞�</view>
-    <view class="buy buyColor" bind:tap="buyBtn" wx:if="{{!bookBuy && bookDetail.price !== '0.00' && bookDetail.isSell == '1'}}">绔嬪嵆璐拱</view>
+    <view class="shopCar shopCarColor" bind:tap="addBookShopcCar" wx:if="{{!bookBuy &&  bookDetail.price !== '0.00' && bookDetail.isSell == '1' && !bookDetail.IsTextbook}}">鍔犲叆璐墿杞�</view>
+    <view class="buy buyColor" bind:tap="buyBtn" wx:if="{{!bookBuy && bookDetail.price !== '0.00' && bookDetail.isSell == '1' && !bookDetail.IsTextbook}}">绔嬪嵆璐拱</view>
     <view class="buy receiveColor" bind:tap="buyBtn" wx:if="{{!bookBuy && bookDetail.price == '0.00' && bookDetail.isSell == '1'}}">鍏嶈垂棰嗗彇</view>
     <view class="buy read" bind:tap="goRead" data-type="file" wx:if="{{bookBuy || applicationState == 'Normal'}}">绔嬪嵆鏌ョ湅</view>
   </view>
diff --git a/packageBookService/pages/bookServices/examination/components/joinGroupDialog/index.wxml b/packageBookService/pages/bookServices/examination/components/joinGroupDialog/index.wxml
index 7cd36b5..cb42b02 100644
--- a/packageBookService/pages/bookServices/examination/components/joinGroupDialog/index.wxml
+++ b/packageBookService/pages/bookServices/examination/components/joinGroupDialog/index.wxml
@@ -6,40 +6,15 @@
       <view class="warning-txt">
         妫�娴嬪埌鎮ㄦ湭鍔犲叆鐝骇锛屽鎮ㄤ笉鍔犲叆鐝骇锛屾彁浜ょ殑绛旀灏嗕笉鑳芥彁浜ゅ埌鐝骇鑰佸笀澶勶細
       </view>
-      <t-radio
-        allow-uncheck
-        icon="dot"
-        label="鍔犲叆鐝骇"
-        value="1"
-        data-value="1"
-        checked="{{joinGroup == 1}}"
-        bind:change="onChangeRadio"
-      />
+      <t-radio allow-uncheck icon="dot" label="鍔犲叆鐝骇" value="1" data-value="1" checked="{{joinGroup == 1}}" bind:change="onChangeRadio" />
       <view class="phone-input">
-        <input
-          value="{{inputvalue}}"
-          placeholder="璇疯緭鍏ョ彮绾ч個璇风爜"
-          bind:change="inputChange"
-          type="text"
-          class="phone"
-          style="{{inputStyle}}"
-        />
+        <input value="{{inputvalue}}" placeholder="璇疯緭鍏ョ彮绾ч個璇风爜" bind:change="inputChange" type="text" class="phone" style="{{inputStyle}}" />
       </view>
-      <t-radio
-        allow-uncheck
-        icon="dot"
-        label="涓嶅姞鍏ョ彮绾�"
-        value="0"
-        data-value="2"
-        checked="{{joinGroup == 2}}"
-        bind:change="onChangeRadio"
-      />
+      <t-radio allow-uncheck icon="dot" label="涓嶅姞鍏ョ彮绾�" value="0" data-value="2" checked="{{joinGroup == 2}}" bind:change="onChangeRadio" />
       <t-checkbox label="涓嶅啀鎻愮ず鍔犲叆鐝骇" icon="rectangle" value="{{noTip}}" />
     </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>
-</view>
+</view>
\ No newline at end of file
diff --git a/packageBookService/pages/bookServices/examination/examination.js b/packageBookService/pages/bookServices/examination/examination.js
index 1e376b2..0c0853a 100644
--- a/packageBookService/pages/bookServices/examination/examination.js
+++ b/packageBookService/pages/bookServices/examination/examination.js
@@ -951,7 +951,7 @@
           let oldObj = "";
           if (oldList)
             oldObj = oldList.find((oldItem) => oldItem.id == item.id);
-          console.log(item.Embedded_QuestionBank_Stem, 111)
+          // console.log(item.Embedded_QuestionBank_Stem, 111)
           let questionObj = {
             // num: index, // 棰樺彿
             id: item.id,
@@ -1488,7 +1488,7 @@
             questionObj.questionType == "completion" ||
             questionObj.questionType == "multipleChoice"
           ) {
-            console.log(questionObj.answer, "111")
+            // console.log(questionObj.answer, "111")
             try {
               questionObj.answer = JSON.parse(questionObj.answer).toString();
             } catch (error) {
@@ -1821,7 +1821,7 @@
           if (src) {
             questionObj.src = src
             questionObj.stem.stemTxt = this.removeVideoAndAudioTags(questionObj.stem.stemTxt)
-            console.log('棰樺共', questionObj.stem.stemTxt);
+            // console.log('棰樺共', questionObj.stem.stemTxt);
           }
         }
         if (item.Embedded_QuestionBank_QuestionType == "judge") {
@@ -1868,7 +1868,7 @@
         cardList: cardList,
         loading: false,
       });
-      console.log(this.data.questionDataList, "questionDataList");
+      // console.log(this.data.questionDataList, "questionDataList");
     });
   },
   // 鑾峰彇缁勫嵎缁撴灉
@@ -2220,7 +2220,7 @@
               JSON.parse(res[0].value).time : 1000,
             "mockData.answer": JSON.parse(res[0].value).answerData,
           });
-          console.log(JSON.parse(res[0].value));
+          // console.log(JSON.parse(res[0].value));
           data = JSON.parse(res[0].value).answerData;
         }
       });
@@ -2275,7 +2275,7 @@
         this.setData({
           saveTime: 20,
         });
-        console.log("妯¤�冪瓟棰樻暟鎹凡璁板綍");
+        // console.log("妯¤�冪瓟棰樻暟鎹凡璁板綍");
       });
   },
 
@@ -2495,8 +2495,9 @@
       // 鍋氬畬浜嗕笖鍔犲叆浜嗙彮绾э紝鎻愪氦鍒癿essage
       if (this.data.classList.length && this.data.joinGroup) {
         this.data.classList.forEach(item => {
-          if (item.linkProductDto.product.id == this.data.bookId && item.topicId)
+          if (item.linkProductDto.product.id == this.data.bookId && item.topicId) {
             this.newTopicMessage(item.topicId)
+          }
         })
         this.setinteractionInfo()
       } else {
diff --git a/packageBookService/pages/bookServices/examination/examination.wxml b/packageBookService/pages/bookServices/examination/examination.wxml
index 64a5873..65d8ae1 100644
--- a/packageBookService/pages/bookServices/examination/examination.wxml
+++ b/packageBookService/pages/bookServices/examination/examination.wxml
@@ -3,82 +3,20 @@
 <import src="examination.skeleton.wxml" />
 <template is="skeleton" wx:if="{{loading}}" />
 
-<view
-  class="page"
-  wx:if="{{!loading}}"
-  style="background-color:{{isNight ? '#222' : ''}}"
->
+<view class="page" wx:if="{{!loading}}" style="background-color:{{isNight ? '#222' : ''}}">
   <view class="page-content" style="background-color:{{isNight ? '#222' : ''}}">
-    <question-schedule
-      wx:if="{{!loading}}"
-      id="countDownRef"
-      isNight="{{isNight}}"
-      answerType="{{answerType}}"
-      countdownTime="{{countdownTime}}"
-      currentIndex="{{currentIndex}}"
-      questionList="{{questionDataList}}"
-      submitStatus="{{submitStatus}}"
-      subjectiveGrade="{{subjectiveGrade}}"
-      subjectiveNum="{{subjectiveNum}}"
-    ></question-schedule>
-    <question-list
-      wx:if="{{!loading}}"
-      sliderValue="{{sliderValue}}"
-      isNight="{{isNight}}"
-      answerType="{{answerType}}"
-      currentIndex="{{currentIndex}}"
-      questionList="{{questionDataList}}"
-      submitStatus="{{submitStatus}}"
-      noData="{{noData}}"
-      bind:onChangeRadio="onChangeRadio"
-      bind:onChangeInput="onChangeInput"
-      bind:changeSwiper="changeSwiper"
-      bind:viewParsing="viewParsing"
-    ></question-list>
+    <question-schedule wx:if="{{!loading}}" id="countDownRef" isNight="{{isNight}}" answerType="{{answerType}}" countdownTime="{{countdownTime}}" currentIndex="{{currentIndex}}" questionList="{{questionDataList}}" submitStatus="{{submitStatus}}" subjectiveGrade="{{subjectiveGrade}}" subjectiveNum="{{subjectiveNum}}"></question-schedule>
+    <question-list wx:if="{{!loading}}" sliderValue="{{sliderValue}}" isNight="{{isNight}}" answerType="{{answerType}}" currentIndex="{{currentIndex}}" questionList="{{questionDataList}}" submitStatus="{{submitStatus}}" noData="{{noData}}" bind:onChangeRadio="onChangeRadio" bind:onChangeInput="onChangeInput" bind:changeSwiper="changeSwiper" bind:viewParsing="viewParsing"></question-list>
   </view>
 
   <!-- 搴曢儴鍖哄煙-->
 
-  <view
-    class="page-bottom"
-    style="background-color:{{isNight ? '#202020' : ''}}"
-    wx:if="{{answerType !== 'errorQuestion' || (answerType == 'errorQuestion' && !loading)}}"
-  >
-    <question-options
-      id="question-options"
-      isShowDialog="{{isShowDialog}}"
-      isNight="{{isNight}}"
-      submitStatus="{{submitStatus}}"
-      answerType="{{answerType}}"
-      countdownTime="{{countdownTime}}"
-      currentIndex="{{currentIndex}}"
-      questionDataList="{{questionDataList}}"
-      cardList="{{cardList}}"
-      subjectiveTotal="{{subjectiveTotal}}"
-      subjectiveNum="{{subjectiveNum}}"
-      subjectiveGrade="{{subjectiveGrade}}"
-      correctNum="{{correctNum}}"
-      mockSumTime="{{mockData.sumTime}}"
-      joinGroup="{{joinGroup}}"
-      showId="{{showId}}"
-      bind:setCollect="setCollect"
-      bind:submitPaper="submitPaper"
-      bind:restart="restart"
-      bind:goQuestion="goQuestion"
-      bind:changeBGColor="changeBGColor"
-      bind:onChangeSlider="onChangeSlider"
-      bind:changeLoadingState="changeLoadingState"
-      bind:changeNavBarColor="changeNavBarColor"
-    ></question-options>
+  <view class="page-bottom" style="background-color:{{isNight ? '#202020' : ''}}" wx:if="{{answerType !== 'errorQuestion' || (answerType == 'errorQuestion' && !loading)}}">
+    <question-options id="question-options" isShowDialog="{{isShowDialog}}" isNight="{{isNight}}" submitStatus="{{submitStatus}}" answerType="{{answerType}}" countdownTime="{{countdownTime}}" currentIndex="{{currentIndex}}" questionDataList="{{questionDataList}}" cardList="{{cardList}}" subjectiveTotal="{{subjectiveTotal}}" subjectiveNum="{{subjectiveNum}}" subjectiveGrade="{{subjectiveGrade}}" correctNum="{{correctNum}}" mockSumTime="{{mockData.sumTime}}" joinGroup="{{joinGroup}}" showId="{{showId}}" bind:setCollect="setCollect" bind:submitPaper="submitPaper" bind:restart="restart" bind:goQuestion="goQuestion" bind:changeBGColor="changeBGColor" bind:onChangeSlider="onChangeSlider" bind:changeLoadingState="changeLoadingState" bind:changeNavBarColor="changeNavBarColor"></question-options>
   </view>
 </view>
 
-<page-container
-  show="{{showDialog}}"
-  duration="{{false}}"
-  overlay="{{false}}"
-  bind:beforeleave="beforeleave"
-></page-container>
+<page-container show="{{showDialog}}" duration="{{false}}" overlay="{{false}}" bind:beforeleave="beforeleave"></page-container>
 
 <!-- 鍔犲叆鐝骇寮圭獥 -->
-<join-dialog visible="{{visible}}" bind:joinClass="joinClass"> </join-dialog>
+<join-dialog visible="{{visible}}" bind:joinClass="joinClass"> </join-dialog>
\ No newline at end of file
diff --git a/packageBookService/pages/bookServices/examination/questionList/index.wxml b/packageBookService/pages/bookServices/examination/questionList/index.wxml
index 5bb9f24..6c0ab81 100644
--- a/packageBookService/pages/bookServices/examination/questionList/index.wxml
+++ b/packageBookService/pages/bookServices/examination/questionList/index.wxml
@@ -1,67 +1,32 @@
 <!--pages/bookServices/examination/questionList/index.wxml-->
-<view
-  class="question-list"
-  style="background-color:{{isNight ? '#222' : '#fff'}}"
->
+<view class="question-list" style="background-color:{{isNight ? '#222' : '#fff'}}">
   <!-- 棰樺瀷title -->
-  <view
-    class="question-title"
-    wx:if="{{questionList[showIndex].type}}"
-    style="background-color:{{isNight ? '#222' : '#fff'}}"
-  >
-    <text class="title-name">{{questionList[showIndex].type}}</text
-    ><text
-      wx:if="{{questionList[showIndex].score}}"
-      class="title-score"
-      style="color: {{isNight ? '#fff' : '#000'}};"
-      >(姣忛{{questionList[showIndex].score}}鍒�)</text
-    >
+  <view class="question-title" wx:if="{{questionList[showIndex].type}}" style="background-color:{{isNight ? '#222' : '#fff'}}">
+    <text class="title-name">{{questionList[showIndex].type}}</text><text wx:if="{{questionList[showIndex].score}}" class="title-score" style="color: {{isNight ? '#fff' : '#000'}};">(姣忛{{questionList[showIndex].score}}鍒�)</text>
   </view>
   <!-- 棰樼洰鍒楄〃 -->
-  <swiper
-    class="swiper"
-    bindanimationfinish="changeSwiper"
-    current="{{currentIndex}}"
-  >
+  <swiper class="swiper" bindanimationfinish="changeSwiper" current="{{currentIndex}}">
     <swiper-item wx:for="{{questionList}}" wx:key="id" style="overflow-y: auto">
       <!-- 棰樺共 -->
-      <view
-        class="question-stem title-score"
-        style="color: {{isNight ? '#fff' : '#000'}}; font-size: {{sliderValue || 32}}rpx;"
-      >
+      <view class="question-stem title-score" style="color: {{isNight ? '#fff' : '#000'}}; font-size: {{sliderValue || 32}}rpx;">
         <!-- 棰樺彿 -->
         <text>{{item.number}}.</text>
         <!-- 鍚姏棰� -->
         <view wx:if="{{item.questionType == 'singleChoice' && item.src}}">
           <rich-text nodes="{{item.stem.stemTxt }}" />
-          <view
-            style="margin-top: {{item.stem.stemTxt ? '10rpx' : ''}};"
-            class="audio-play-box"
-            bind:tap="audioPlay"
-            data-src="{{item.src}}"
-          >
-            <image
-              src="{{isPlay ? '/static/images/resourceDetailsMyAudio/zanting@2x.png' : '/static/images/resourceDetailsMyAudio/play@2x.png'}}"
-              mode="aspectFit"
-            ></image>
+          <view style="margin-top: {{item.stem.stemTxt ? '10rpx' : ''}};" class="audio-play-box" bind:tap="audioPlay" data-src="{{item.src}}">
+            <image src="{{isPlay ? '/static/images/resourceDetailsMyAudio/zanting@2x.png' : '/static/images/resourceDetailsMyAudio/play@2x.png'}}" mode="aspectFit"></image>
           </view>
         </view>
 
         <!-- 浠呮枃瀛� -->
-        <view
-          class="title-content text-space"
-          wx:elif="{{item.stemStyle == 'Txt' && item.questionType != 'completion'}}"
-          >{{item.stem.stemTxt}}</view
-        >
+        <view class="title-content text-space" wx:elif="{{item.stemStyle == 'Txt' && item.questionType != 'completion'}}">{{item.stem.stemTxt}}</view>
         <!-- 浠呭浘鐗� -->
         <view wx:elif="{{item.stemStyle == 'Image'}}" class="title-content">
           <image src="{{item.stem.stemImage}}" mode="aspectFit" />
         </view>
         <!-- 鍥剧墖鍔犳枃瀛� -->
-        <view
-          wx:elif="{{item.stemStyle == 'TxtAndImage'}}"
-          class="title-content text-space"
-        >
+        <view wx:elif="{{item.stemStyle == 'TxtAndImage'}}" class="title-content text-space">
           <view>{{item.stem.stemTxt}}</view>
           <image src="{{item.stem.stemImage}}" mode="aspectFit" />
         </view>
@@ -71,98 +36,37 @@
         </view>
         <!-- 濉┖棰� -->
         <view wx:if="{{item.questionType == 'completion'}}">
-          <view
-            class="completion-box"
-            wx:for="{{item.stem}}"
-            wx:for-item="inputItem"
-            wx:for-index="inputIndex"
-            wx:key="inputIndex"
-          >
-            <t-input
-              disabled="{{item.isComplete}}"
-              borderless
-              bind:change="onChangeInput"
-              data-value="{{item.option}}"
-              data-id="{{item.id}}"
-              data-index="{{inputItem.num}}"
-              class="title-input {{isNight ? 'input-night-color' : ''}}"
-              style="border: 2rpx solid rgba(220,220,220,1);border-radius: 12rpx;background-color:{{isNight ? '#000' : '#fff'}}; "
-              placeholder-style="{{placeholderstyle}}"
-              wx:if="{{inputItem.data == 'input'}}"
-              placeholder="璇疯緭鍏ユ枃瀛�"
-              value="{{item.userAnswer[inputItem.num]}}"
-            ></t-input>
+          <view class="completion-box" wx:for="{{item.stem}}" wx:for-item="inputItem" wx:for-index="inputIndex" wx:key="inputIndex">
+            <t-input disabled="{{item.isComplete}}" borderless bind:change="onChangeInput" data-value="{{item.option}}" data-id="{{item.id}}" data-index="{{inputItem.num}}" class="title-input {{isNight ? 'input-night-color' : ''}}" style="border: 2rpx solid rgba(220,220,220,1);border-radius: 12rpx;background-color:{{isNight ? '#000' : '#fff'}}; " placeholder-style="{{placeholderstyle}}" wx:if="{{inputItem.data == 'input'}}" placeholder="璇疯緭鍏ユ枃瀛�" value="{{item.userAnswer[inputItem.num]}}"></t-input>
             <text wx:else class="text-space">{{inputItem}}</text>
           </view>
         </view>
       </view>
       <!-- 绛旈鍖哄煙 -->
-      <view
-        class="question-answer {{item.questionType == 'shortAnswer' ? 'textarea-center' : ''}}"
-      >
+      <view class="question-answer {{item.questionType == 'shortAnswer' ? 'textarea-center' : ''}}">
         <!-- 鍗曢�夐 -->
-        <t-radio-group
-          wx:if="{{item.questionType == 'singleChoice' || item.questionType == 'judge'}}"
-          defaultValue="{{item.userAnswer}}"
-          disabled="{{item.isComplete}}"
-          bind:change="onChangeRadio"
-          class="radio-group"
-          data-value="{{item.option}}"
-          data-id="{{item.id}}"
-        >
-          <view
-            wx:for="{{item.option}}"
-            wx:for-item="contentItem"
-            wx:for-index="contentIndex"
-            wx:key="contentIndex"
-          >
-            <t-radio
-              value="{{contentItem.value}}"
-              icon="none"
-              placement="right"
-              borderless
-              style="background-color: {{isNight ? '#222' : '#fff'}}"
-            >
-              <view
-                style="font-size: {{sliderValue || 32}}rpx;"
-                class="radio-item {{(answerType == 'option' || answerType == 'mock' ) && !submitStatus && item.userAnswer == contentItem.value ? 'radio-active' : isNight ? 'night' :''}} {{item.userAnswer == contentItem.value && submitStatus ?  item.isRight ? 'radio-correct' : 'radio-error' :''}}"
-              >
+        <t-radio-group wx:if="{{item.questionType == 'singleChoice' || item.questionType == 'judge'}}" defaultValue="{{item.userAnswer}}" disabled="{{item.isComplete}}" bind:change="onChangeRadio" class="radio-group" data-value="{{item.option}}" data-id="{{item.id}}">
+          <view wx:for="{{item.option}}" wx:for-item="contentItem" wx:for-index="contentIndex" wx:key="contentIndex">
+            <t-radio value="{{contentItem.value}}" icon="none" placement="right" borderless style="background-color: {{isNight ? '#222' : '#fff'}}">
+              <view style="font-size: {{sliderValue || 32}}rpx;" class="radio-item {{(answerType == 'option' || answerType == 'mock' || answerType == 'interaction' ) && !submitStatus && item.userAnswer == contentItem.value ? 'radio-active' : isNight ? 'night' :''}} {{item.userAnswer == contentItem.value && submitStatus ?  item.isRight ? 'radio-correct' : 'radio-error' :''}}">
                 <!-- 浠呮枃瀛� -->
-                <text
-                  wx:if="{{item.optionStyle == 'Txt' && item.questionType == 'singleChoice'}}"
-                  class="text-space"
-                  >{{contentItem.value}}銆亄{contentItem.txt}}</text
-                >
-                <text
-                  wx:if="{{item.optionStyle == 'Txt' && item.questionType == 'judge'}}"
-                  class="text-space"
-                  >{{contentItem.value}}銆亄{contentItem.txt}}</text
-                >
+                <text wx:if="{{item.optionStyle == 'Txt' && item.questionType == 'singleChoice'}}" class="text-space">{{contentItem.value}}銆亄{contentItem.txt}}</text>
+                <text wx:if="{{item.optionStyle == 'Txt' && item.questionType == 'judge'}}" class="text-space">{{contentItem.value}}銆亄{contentItem.txt}}</text>
                 <!-- 浠呭浘鐗� -->
                 <view wx:if="{{item.optionStyle == 'Image'}}" class="fl-center">
                   <text>{{contentItem.value}}銆�</text>
                   <image src="{{contentItem.img}}" mode="aspectFit" />
                 </view>
                 <!-- 鏂囧瓧鍔犲浘鐗� -->
-                <view
-                  wx:if="{{item.optionStyle == 'TxtAndImage'}}"
-                  class="fl-center"
-                  class="TxtAndImage-box"
-                >
+                <view wx:if="{{item.optionStyle == 'TxtAndImage'}}" class="fl-center" class="TxtAndImage-box">
                   <text class="text-space">{{contentItem.value}}銆�</text>
                   <view class="radio-textimg">{{contentItem.txt}}</view>
                   <image src="{{contentItem.img}}" mode="aspectFit" />
                 </view>
                 <!-- 瀵屾枃鏈� -->
-                <view
-                  wx:if="{{item.optionStyle == 'RichText'}}"
-                  class="judge-rich-box"
-                >
+                <view wx:if="{{item.optionStyle == 'RichText'}}" class="judge-rich-box">
                   <text>{{contentItem.value}}銆�</text>
-                  <rich-text
-                    nodes="{{  contentItem.txt}}"
-                    style="display: flex; align-items: center; width: 100%"
-                  ></rich-text>
+                  <rich-text nodes="{{  contentItem.txt}}" style="display: flex; align-items: center; width: 100%"></rich-text>
                 </view>
                 <!-- <text
                   wx:if="{{submitStatus && (item.answer == contentItem.value && item.answer == item.userAnswer)}}"
@@ -177,225 +81,77 @@
           </view>
         </t-radio-group>
         <!-- 澶氶�夐 -->
-        <t-checkbox-group
-          class="checkbox-group"
-          wx:elif="{{item.questionType == 'multipleChoice'}}"
-          t-class="box"
-          borderless
-          bind:change="onChangeRadio"
-          data-value="{{item.option}}"
-          data-id="{{item.id}}"
-          defaultValue="{{item.userAnswer}}"
-        >
-          <view
-            wx:for="{{item.option}}"
-            wx:for-item="contentItem"
-            wx:for-index="contentIndex"
-            wx:key="contentIndex"
-          >
-            <t-checkbox
-              disabled="{{item.isComplete}}"
-              icon="rectangle"
-              block="{{false}}"
-              class="t-checkbox"
-              value="{{contentItem.value}}"
-              style="background-color:{{isNight ? '#222' :'#F9F9F9'}}; "
-            >
+        <t-checkbox-group class="checkbox-group" wx:elif="{{item.questionType == 'multipleChoice'}}" t-class="box" borderless bind:change="onChangeRadio" data-value="{{item.option}}" data-id="{{item.id}}" defaultValue="{{item.userAnswer}}">
+          <view wx:for="{{item.option}}" wx:for-item="contentItem" wx:for-index="contentIndex" wx:key="contentIndex">
+            <t-checkbox disabled="{{item.isComplete}}" icon="rectangle" block="{{false}}" class="t-checkbox" value="{{contentItem.value}}" style="background-color:{{isNight ? '#222' :'#F9F9F9'}}; ">
               <!-- 浠呮枃瀛� -->
-              <view
-                class="fl-center mh text-space"
-                wx:if="{{item.optionStyle == 'Txt'}}"
-                style="color:{{ isNight  ? '#fff' : '#000'}};font-size:{{sliderValue || 32}}rpx;"
-              >
+              <view class="fl-center mh text-space" wx:if="{{item.optionStyle == 'Txt'}}" style="color:{{ isNight  ? '#fff' : '#000'}};font-size:{{sliderValue || 32}}rpx;">
                 <text>{{contentItem.value}}</text>
                 <text class="check-text-box">{{contentItem.txt}}</text>
               </view>
 
               <!-- 浠呭浘鐗� -->
-              <view
-                wx:if="{{item.optionStyle == 'Image'}}"
-                class="fl-center mh"
-              >
-                <text
-                  style="color:{{ isNight  ? '#fff' : '#000'}};font-size:{{sliderValue || 32}}rpx;"
-                  >{{contentItem.value}}銆�</text
-                >
+              <view wx:if="{{item.optionStyle == 'Image'}}" class="fl-center mh">
+                <text style="color:{{ isNight  ? '#fff' : '#000'}};font-size:{{sliderValue || 32}}rpx;">{{contentItem.value}}銆�</text>
                 <image src="{{contentItem.img}}" mode="aspectFit" />
               </view>
               <!-- 鏂囧瓧鍔犲浘鐗� -->
-              <view
-                wx:if="{{item.optionStyle == 'TxtAndImage'}}"
-                class="fl-center mh text-space"
-              >
-                <text
-                  style="color:{{ isNight  ? '#fff' : '#000'}};font-size:{{sliderValue || 32}}rpx;"
-                  >{{contentItem.value}}銆�</text
-                >
-                <text
-                  style="color:{{ isNight  ? '#fff' : '#000'}};font-size:{{sliderValue || 32}}rpx;"
-                  >{{contentItem.txt}}</text
-                >
-                <image
-                  src="{{contentItem.img}}"
-                  wx:if="{{contentItem.img}}"
-                  mode="aspectFit"
-                />
+              <view wx:if="{{item.optionStyle == 'TxtAndImage'}}" class="fl-center mh text-space">
+                <text style="color:{{ isNight  ? '#fff' : '#000'}};font-size:{{sliderValue || 32}}rpx;">{{contentItem.value}}銆�</text>
+                <text style="color:{{ isNight  ? '#fff' : '#000'}};font-size:{{sliderValue || 32}}rpx;">{{contentItem.txt}}</text>
+                <image src="{{contentItem.img}}" wx:if="{{contentItem.img}}" mode="aspectFit" />
               </view>
               <!-- 瀵屾枃鏈� -->
-              <view
-                wx:if="{{item.optionStyle == 'RichText'}}"
-                class="check-rich-box mh"
-              >
+              <view wx:if="{{item.optionStyle == 'RichText'}}" class="check-rich-box mh">
                 <text>{{contentItem.value}}銆�</text>
-                <rich-text
-                  nodes="{{contentItem.txt}}"
-                  class="multipleChoice"
-                ></rich-text>
+                <rich-text nodes="{{contentItem.txt}}" class="multipleChoice"></rich-text>
               </view>
             </t-checkbox>
           </view>
         </t-checkbox-group>
         <!-- 绠�绛� 缈昏瘧 -->
-        <t-textarea
-          disabled="{{item.isComplete}}"
-          value="{{item.userAnswer}}"
-          bind:change="onChangeRadio"
-          data-value="{{item.option}}"
-          data-id="{{item.id}}"
-          class="option-textarea {{isNight ? 'textarea-night-color' :''}}"
-          wx:elif="{{item.questionType == 'shortAnswer'}}"
-          t-class="external-class"
-          placeholder="璇疯緭鍏ユ枃瀛�"
-          bordered
-          maxlength="500"
-          disableDefaultPadding="{{true}}"
-          indicator
-          style="background-color:{{isNight ? '#000' : '#fff'}}; "
-        />
+        <t-textarea disabled="{{item.isComplete}}" value="{{item.userAnswer}}" bind:change="onChangeRadio" data-value="{{item.option}}" data-id="{{item.id}}" class="option-textarea {{isNight ? 'textarea-night-color' :''}}" wx:elif="{{item.questionType == 'shortAnswer'}}" t-class="external-class" placeholder="璇疯緭鍏ユ枃瀛�" bordered maxlength="500" disableDefaultPadding="{{true}}" indicator style="background-color:{{isNight ? '#000' : '#fff'}}; " />
       </view>
       <!-- 鎴戠殑閿欓銆佹敹钘忔ā寮忎笅锛屾煡鐪嬭В鏋愭寜閽� -->
-      <view
-        wx:if="{{(answerType == 'collectQuestion' || answerType ==  'errorQuestion') && (item.questionType == 'multipleChoice' || item.questionType ==  'completion' || item.questionType == 'shortAnswer')}}"
-        style="margin-left: 40rpx"
-      >
-        <t-button theme="primary" class="view-parsing" bind:tap="viewParsing"
-          >鏌ョ湅瑙f瀽</t-button
-        >
+      <view wx:if="{{(answerType == 'collectQuestion' || answerType ==  'errorQuestion') && (item.questionType == 'multipleChoice' || item.questionType ==  'completion' || item.questionType == 'shortAnswer')}}" style="margin-left: 40rpx">
+        <t-button theme="primary" class="view-parsing" bind:tap="viewParsing">鏌ョ湅瑙f瀽</t-button>
       </view>
       <!-- 鍗曢�夈�佸閫夎В鏋� -->
-      <view
-        class="analysis"
-        wx:if="{{item.isComplete && (item.questionType == 'singleChoice' || item.questionType == 'judge' || item.questionType == 'multipleChoice')}}"
-      >
+      <view class="analysis" wx:if="{{item.isComplete && (item.questionType == 'singleChoice' || item.questionType == 'judge' || item.questionType == 'multipleChoice')}}">
         <view class="analysis-answer {{sliderValue >35 ? 'fl-cl' : '' }}">
-          <view
-            class="answer-correct answer-center"
-            style="font-size: {{sliderValue || 32}}rpx;"
-          >
+          <view class="answer-correct answer-center" style="font-size: {{sliderValue || 32}}rpx;">
             <text class="analysis-title-box">姝g‘绛旀锛�</text>
-            <text style="font-size: {{sliderValue || 40}}rpx;"
-              >{{item.answer}}</text
-            >
+            <text style="font-size: {{sliderValue || 40}}rpx;">{{item.answer}}</text>
             <!-- <rich-text nodes="{{item.answer}}" style="font-size: {{sliderValue || 40}}rpx;"></rich-text> -->
           </view>
-          <view
-            class="answer-center  {{item.isRight ? 'answer-correct' : 'answer-error'}}  {{sliderValue <= 35 ? 'marginL' : ''}}"
-            wx:if="{{item.questionType !== 'shortAnswer'}}"
-          >
-            <text
-              class="analysis-title-box"
-              style="font-size: {{sliderValue || 32}}rpx;"
-              >鎮ㄧ殑绛旀锛�</text
-            ><text
-              class="answer-text"
-              style="font-size: {{sliderValue || 40}}rpx;"
-              >{{item.userAnswer}}</text
-            >
+          <view class="answer-center  {{item.isRight ? 'answer-correct' : 'answer-error'}}  {{sliderValue <= 35 ? 'marginL' : ''}}" wx:if="{{item.questionType !== 'shortAnswer'}}">
+            <text class="analysis-title-box" style="font-size: {{sliderValue || 32}}rpx;">鎮ㄧ殑绛旀锛�</text><text class="answer-text" style="font-size: {{sliderValue || 40}}rpx;">{{item.userAnswer}}</text>
           </view>
         </view>
-        <view
-          class="analysis-text"
-          wx:if="{{item.analysisCon}}"
-          style="color: {{isNight ? '#fff' : '#000'}};"
-        >
-          <text
-            style="font-size: {{sliderValue || 32}}rpx;"
-            class="answer-analysis"
-            >绛旀瑙f瀽锛�</text
-          >
-          <rich-text
-            wx:if="item.analysisCon"
-            style="font-size: {{sliderValue || 32}}rpx;"
-            nodes="{{item.analysisCon}}"
-            class="analysis-content"
-          ></rich-text>
+        <view class="analysis-text" wx:if="{{item.analysisCon}}" style="color: {{isNight ? '#fff' : '#000'}};">
+          <text style="font-size: {{sliderValue || 32}}rpx;" class="answer-analysis">绛旀瑙f瀽锛�</text>
+          <rich-text wx:if="item.analysisCon" style="font-size: {{sliderValue || 32}}rpx;" nodes="{{item.analysisCon}}" class="analysis-content"></rich-text>
           <text wx:else style="font-size: {{sliderValue || 32}}rpx;">-</text>
         </view>
       </view>
       <!-- 濉┖銆佺畝绛旇В鏋� -->
-      <view
-        class="analysis"
-        wx:if="{{(item.questionType == 'shortAnswer' || item.questionType == 'completion') && item.isComplete}}"
-      >
-        <view
-          style="display: {{item.questionType == 'completion' ? 'flex' : 'block'}}"
-        >
-          <text
-            wx:if="{{item.questionType == 'completion'}}"
-            class="short-answer-fz answer-correct"
-            style="font-size:{{sliderValue || 32}}rpx;"
-            >姝g‘绛旀:</text
-          >
-          <text
-            wx:if="{{item.questionType == 'shortAnswer'}}"
-            class="short-answer-fz"
-            style="color:{{isNight ? '#fff' : '#000'}};font-size:{{sliderValue || 32}}rpx;"
-          >
+      <view class="analysis" wx:if="{{(item.questionType == 'shortAnswer' || item.questionType == 'completion') && item.isComplete}}">
+        <view style="display: {{item.questionType == 'completion' ? 'flex' : 'block'}}">
+          <text wx:if="{{item.questionType == 'completion'}}" class="short-answer-fz answer-correct" style="font-size:{{sliderValue || 32}}rpx;">姝g‘绛旀:</text>
+          <text wx:if="{{item.questionType == 'shortAnswer'}}" class="short-answer-fz" style="color:{{isNight ? '#fff' : '#000'}};font-size:{{sliderValue || 32}}rpx;">
             鍙傝�冪瓟妗堬細
           </text>
-          <rich-text
-            wx:if="{{item.questionType == 'shortAnswer'}}"
-            nodes="{{item.answer}}"
-            style="font-size:{{sliderValue || 28}}rpx; color:{{item.questionType == 'completion' ? '#1FBC1F' : isNight ? '#fff' : '#000'}}"
-          ></rich-text>
-          <view
-            wx:if="{{item.questionType == 'completion'}}"
-            style="font-size:{{sliderValue || 28}}rpx;"
-            class="short-answer-fz answer-correct"
-            >{{item.answer}}</view
-          >
+          <rich-text wx:if="{{item.questionType == 'shortAnswer'}}" nodes="{{item.answer}}" style="font-size:{{sliderValue || 28}}rpx; color:{{item.questionType == 'completion' ? '#1FBC1F' : isNight ? '#fff' : '#000'}}"></rich-text>
+          <view wx:if="{{item.questionType == 'completion'}}" style="font-size:{{sliderValue || 28}}rpx;" class="short-answer-fz answer-correct">{{item.answer}}</view>
         </view>
-        <view
-          wx:if="{{item.questionType == 'completion'}}"
-          class="short-answer-mr"
-          style="display: {{item.questionType == 'completion' ? 'flex' : 'block'}}"
-        >
-          <text
-            class="short-answer-fz {{item.isRight ? 'answer-correct' : 'answer-error'}}"
-            style="font-size:{{sliderValue || 32}}rpx;"
-            >鎮ㄧ殑绛旀锛�</text
-          >
-          <view
-            class="short-answer-fz {{item.isRight ? 'answer-correct' : 'answer-error'}}"
-            style="color:{{isNight ? '#fff' : '#000'}};font-size:{{sliderValue || 28}}rpx;"
-            >{{item.userAnswer}}</view
-          >
+        <view wx:if="{{item.questionType == 'completion'}}" class="short-answer-mr" style="display: {{item.questionType == 'completion' ? 'flex' : 'block'}}">
+          <text class="short-answer-fz {{item.isRight ? 'answer-correct' : 'answer-error'}}" style="font-size:{{sliderValue || 32}}rpx;">鎮ㄧ殑绛旀锛�</text>
+          <view class="short-answer-fz {{item.isRight ? 'answer-correct' : 'answer-error'}}" style="color:{{isNight ? '#fff' : '#000'}};font-size:{{sliderValue || 28}}rpx;">{{item.userAnswer}}</view>
         </view>
         <view class="short-answer-mr" style="margin-bottom: 50rpx">
-          <text
-            class="short-answer-fz;"
-            style="color:{{isNight ? '#fff' : '#000'}};font-size:{{sliderValue || 32}}rpx;"
-            >绛旀瑙f瀽锛�</text
-          >
-          <rich-text
-            wx:if="item.analysisCon"
-            nodes="{{item.analysisCon}}"
-            style="font-size:{{sliderValue || 28}}rpx;;color:{{isNight ? '#fff' : '#000'}}"
-          ></rich-text>
-          <text
-            wx:else
-            style="font-size:{{sliderValue || 28}}rpx;;color:{{isNight ? '#fff' : '#000'}}"
-          >
+          <text class="short-answer-fz;" style="color:{{isNight ? '#fff' : '#000'}};font-size:{{sliderValue || 32}}rpx;">绛旀瑙f瀽锛�</text>
+          <rich-text wx:if="item.analysisCon" nodes="{{item.analysisCon}}" style="font-size:{{sliderValue || 28}}rpx;;color:{{isNight ? '#fff' : '#000'}}"></rich-text>
+          <text wx:else style="font-size:{{sliderValue || 28}}rpx;;color:{{isNight ? '#fff' : '#000'}}">
             -
           </text>
         </view>
@@ -408,4 +164,4 @@
       </view>
     </swiper-item>
   </swiper>
-</view>
+</view>
\ No newline at end of file
diff --git a/packageBookService/pages/bookServices/examination/questionOptions/index.js b/packageBookService/pages/bookServices/examination/questionOptions/index.js
index dfaa84d..5658306 100644
--- a/packageBookService/pages/bookServices/examination/questionOptions/index.js
+++ b/packageBookService/pages/bookServices/examination/questionOptions/index.js
@@ -58,8 +58,8 @@
     isShowDialog: {
       type: Boolean
     },
-    joinGroup:{
-      type:Boolean
+    joinGroup: {
+      type: Boolean
     }
   },
 
@@ -186,7 +186,6 @@
     // 婊戝潡鍙樺寲
     onChangeSlider(e) {
       const value = e.detail.value;
-      console.log(value);
       this.triggerEvent("onChangeSlider", {
         value
       });
diff --git a/packageBookService/pages/bookServices/examination/questionSchedule/index.wxml b/packageBookService/pages/bookServices/examination/questionSchedule/index.wxml
index 8c19402..16c6258 100644
--- a/packageBookService/pages/bookServices/examination/questionSchedule/index.wxml
+++ b/packageBookService/pages/bookServices/examination/questionSchedule/index.wxml
@@ -1,28 +1,16 @@
 <!--pages/bookServices/examination/questionSchedule/questionSchedule.wxml-->
-<view
-  wx:if="{{((answerType == 'option' || answerType == 'mock' || answerType == 'interaction') && !submitStatus) || answerType == 'collectQuestion' || answerType =='errorQuestion'}}"
-  class="schedule"
-  id="schedule"
-  style="background-color:{{isNight ? '#1a1a1a' : '#fff'}}"
->
+<view wx:if="{{((answerType == 'option' || answerType == 'mock' || answerType == 'interaction') && !submitStatus) || answerType == 'collectQuestion' || answerType =='errorQuestion'}}" class="schedule" id="schedule" style="background-color:{{isNight ? '#1a1a1a' : '#fff'}}">
   <view class="schedule-top">
     <!-- 绛旈杩涘害 -->
-    <view
-      class="question-schedule"
-      style="color: {{isNight ? '#fff' : '#000'}};"
-      >{{(answerType == 'option' || answerType == 'mock' || answerType ==
+    <view class="question-schedule" style="color: {{isNight ? '#fff' : '#000'}};">{{(answerType == 'option' || answerType == 'mock' || answerType ==
       'interaction') ? '绛旈杩涘害' : answerType == 'collectQuestion' ? '鏀惰棌鏁伴噺'
       : '閿欓鏁伴噺' }}<text class="parimary-color question-num">{{ready}}</text>
       <text>/{{questionList.length}}</text>
     </view>
-    <view
-      class="remainder"
-      wx:if="{{!submitStatus && (answerType == 'option' || answerType == 'mock' || answerType == 'interaction')}}"
-      style="color:  {{isNight ? '#fff' : '#000'}};"
-    >
+    <view class="remainder" wx:if="{{!submitStatus && (answerType == 'option' || answerType == 'mock' || answerType == 'interaction')}}" style="color:  {{isNight ? '#fff' : '#000'}};">
       <view class="remainder-text">鍓╀綑鏃堕棿 </view>
-      <view class="parimary-color remaining-time">{{showTime}}</view></view
-    >
+      <view class="parimary-color remaining-time">{{showTime}}</view>
+    </view>
   </view>
   <!-- 杩涘害鏉� -->
   <view class="schedule-progress">
@@ -31,14 +19,10 @@
 </view>
 
 <!--  缁冧範銆佺粍鍗� 鎻愪氦鍚� -->
-<view
-  wx:else
-  class="schedule submit-message"
-  style="background-color:{{isNight ? '#1a1a1a' : '#fff'}};color: {{isNight ? '#fff' : '#000'}}; "
->
+<view wx:else class="schedule submit-message" style="background-color:{{isNight ? '#1a1a1a' : '#fff'}};color: {{isNight ? '#fff' : '#000'}}; ">
   <view>
     瀹㈣棰樺緱鍒嗭細<text class="parimary-color">{{subjectiveNum}}鍒�</text> /
     {{subjectiveGrade}}鍒�
   </view>
   <view> {{ready}} /{{questionList.length}} </view>
-</view>
+</view>
\ No newline at end of file
diff --git a/packageCourse/components/questionDom/index.wxml b/packageCourse/components/questionDom/index.wxml
index 88c26e1..54a973f 100644
--- a/packageCourse/components/questionDom/index.wxml
+++ b/packageCourse/components/questionDom/index.wxml
@@ -31,21 +31,15 @@
         </view>
         <view class="judge" wx:if="{{item.questionType == 'judge'}}">
           <t-radio-group>
-            <t-radio block="{{false}}" wx:for="{{item.questionOption}}" wx:for-item="{{ritem}}" wx:index="{{ritem.index}}" label="{{ritem.value}}" value="{{ritem.value}}" />
+            <t-radio block="{{false}}" wx:for="{{item.questionOption}}" wx:for-item="{{ritem}}" wx:key="index" label="{{ritem.value}}" value="{{ritem.value}}" />
           </t-radio-group>
         </view>
         <view class="singleChoice" wx:if="{{item.questionType == 'singleChoice'}}">
-          <t-radio-group>
-            <t-radio block="{{false}}" wx:for="{{item.questionOption}}" wx:for-item="{{ritem}}" wx:index="{{ritem.index}}" label="{{ritem.value}}" value="{{ritem.value}}">
-              <text>{{ritem.value}}</text>. <text>{{ritem.txt}}</text>
-            </t-radio>
+          <t-radio-group value="{{item.userAnswer}}" bind:change="getData" options="{{item.questionOption}}">
           </t-radio-group>
         </view>
         <view class="multipleChoice" wx:if="{{item.questionType == 'multipleChoice'}}">
-          <t-checkbox-group>
-            <t-checkbox block="{{false}}" wx:for="{{item.questionOption}}" wx:for-item="{{mitem}}" wx:index="{{mitem.index}}" label="{{mitem.value}}" value="{{mitem.value}}">
-              <text>{{mitem.value}}</text>. <text>{{mitem.txt}}</text>
-            </t-checkbox>
+          <t-checkbox-group value="{{item.userAnswer}}" bind:change="getData" options="{{item.questionOption}}">
           </t-checkbox-group>
         </view>
       </view>
diff --git a/packageCourse/components/questionDom/index.wxss b/packageCourse/components/questionDom/index.wxss
index 5f8f0cc..8b73951 100644
--- a/packageCourse/components/questionDom/index.wxss
+++ b/packageCourse/components/questionDom/index.wxss
@@ -26,4 +26,4 @@
   border-radius: 5px;
   font-size: 28rpx;
   box-sizing: border-box;
-}
\ No newline at end of file
+}
diff --git a/packageCourse/pages/teachClass/detail/index.js b/packageCourse/pages/teachClass/detail/index.js
index e8a3ef6..3fcab3c 100644
--- a/packageCourse/pages/teachClass/detail/index.js
+++ b/packageCourse/pages/teachClass/detail/index.js
@@ -93,6 +93,7 @@
       }]
     }
     app.MG.ugc.getTopicMessageList(data).then((res) => {
+      debugger
       const list = res.datas.map((item, i) => {
         item.question = []
         item.bookId = null
@@ -101,7 +102,14 @@
         try {
           const obj = JSON.parse(item.content)
           if (obj.bookId) {
-            item.question = obj.content
+            item.question = obj.content.map((citem) => {
+              return {
+                ...citem,
+                updateDate: moment(item.updateDate).format('YYYY-MM-DD HH:mm:ss'),
+                userId: item.appUserCreator.userId
+              }
+            })
+            // item.question = obj.content
             item.bookId = obj.bookId
             item.path = obj.path
             item.userName = obj.userName ?? '-'
@@ -114,12 +122,15 @@
           questionTime: moment(item.updateDate).format('YYYY-MM-DD HH:mm:ss')
         }
       })
+      console.log(JSON.stringify(list), 'dialog')
+
       this.setData({
         dataList: list,
         loading: false
       })
     })
   },
+
 
   // 鑾峰彇棰樼洰鍒楄〃
   getQuestions(item) {
@@ -237,6 +248,14 @@
         const qusObj = item.question.find((citem) => citem.cmsItemId == ele.id)
         if (qusObj?.cmsItemId) {
           ele.userAnswer = qusObj.answer
+          if (ele.questionType == 'singleChoice' || ele.questionType == 'multipleChoice' || ele.questionType == 'judge') {
+            ele.questionOption = ele.questionOption.map(item => {
+              return {
+                ...item,
+                label: item.txt
+              }
+            })
+          }
           const index = this.findIndexByValue(questionTypeList, ele.questionType)
           if (index > -1) {
             item.questionTypeList[index].data.push(ele)
diff --git a/packageCourse/pages/teachClass/detail/index.wxss b/packageCourse/pages/teachClass/detail/index.wxss
index f2e4be5..18c3717 100644
--- a/packageCourse/pages/teachClass/detail/index.wxss
+++ b/packageCourse/pages/teachClass/detail/index.wxss
@@ -89,4 +89,47 @@
 .block-question .t-input__placeholder,
 .block-question .t-textarea__placeholder {
   font-size: 26rpx !important;
+}
+
+
+.t-checkbox__title {
+  line-height: 36rpx !important;
+}
+
+.t-checkbox {
+  font-size: 26rpx !important;
+}
+
+.t-checkbox__icon {
+  position: relative;
+  display: block;
+  width: var(--td-checkbox-icon-size, 36rpx) !important;
+  height: var(--td-checkbox-icon-size, 36rpx) !important;
+  color: var(--td-checkbox-icon-color, var(--td-component-border, var(--td-gray-color-4, #dcdcdc)));
+  font-size: var(--td-checkbox-icon-size, 36rpx) !important;
+  margin-top: calc((var(--td-checkbox-title-line-height, 36rpx) - var(--td-checkbox-icon-size, 36rpx)) / 2) !important;
+}
+
+.t-checkbox__icon-circle {
+  width: calc((var(--td-checkbox-icon-size, 36rpx) - 4rpx) * 2) !important;
+  height: calc((var(--td-checkbox-icon-size, 36rpx) - 4rpx) * 2) !important;
+}
+
+.t-radio__icon {
+  width: var(--td-radio-icon-size, 36rpx) !important;
+  height: var(--td-radio-icon-size, 36rpx) !important;
+  font-size: var(--td-radio-icon-size, 36rpx) !important;
+}
+
+.t-radio__icon-circle {
+  width: var(--td-radio-icon-size, 36rpx) !important;
+  height: var(--td-radio-icon-size, 36rpx) !important;
+}
+
+.t-radio__title {
+  line-height: var(--td-radio-label-line-height, 36rpx) !important;
+}
+
+.t-radio {
+  font-size: var(--td-radio-font-size, 26rpx) !important;
 }
\ No newline at end of file
diff --git a/packageDomain/pages/resourceDetails/document/index.json b/packageDomain/pages/resourceDetails/document/index.json
index 2293025..4e3a560 100644
--- a/packageDomain/pages/resourceDetails/document/index.json
+++ b/packageDomain/pages/resourceDetails/document/index.json
@@ -1,4 +1,4 @@
-{
+  {
   "component": true,
   "usingComponents": {
     "t-icon": "tdesign-miniprogram/icon/icon",
diff --git a/packageDomain/pages/resourceDetails/myAudio/index.js b/packageDomain/pages/resourceDetails/myAudio/index.js
index edd87da..3a5af21 100644
--- a/packageDomain/pages/resourceDetails/myAudio/index.js
+++ b/packageDomain/pages/resourceDetails/myAudio/index.js
@@ -124,7 +124,6 @@
       })
       this.getLearnTime()
     }
-    this.resourceDetailsData()
     this.getBookInfo(options.bookId)
   },
   /**
@@ -267,7 +266,9 @@
       coverSize: {
         height: 1,
       },
-      fields: {},
+      fields: {
+        IsTextbook: []
+      },
     };
     if (this.data.storeInfo) query['storeInfo'] = this.data.storeInfo
     app.MG.store.getProductDetail(query).then(async (res) => {
@@ -277,6 +278,7 @@
         buyIdList: res.datas.purchasedSaleMethodIdList,
         learnClassData: res.datas.cmsDatas[0].datas.find(item => item.refCode == "jsek_cloudLearning")
       })
+      this.resourceDetailsData()
       this.getResourceDataList(this.data.learnClassData)
     });
   },
@@ -401,6 +403,7 @@
     if (isBuy == 2) {
       // 鏈喘涔�
       if (dataList[0].freeFile) {
+        dataList[0].isFreeFile = true; // 杩欎釜璧勬簮鍙互璇曠湅
         cmsItemData = dataList[0]
       } else {
         wx.hideLoading();
@@ -482,7 +485,13 @@
         if (selectedId !== -1) {
           let datas = this.data.threeLeveData[selectedId];
           if (this.data.formPath == 'jsek_cloudLearning') {
-            let file = this.cmsItemIsBuy(datas) ? datas.protectedFile || datas.freeFile : datas.freeFile
+            // let file = this.cmsItemIsBuy(datas) ? datas.protectedFile || datas.freeFile : datas.freeFile
+            let file
+            if (!datas.isFreeFile) {
+              file = datas.protectedFile
+            } else {
+              file = datas.freeFile
+            }
             showDataUrl = app.config.requestCtx + '/file/api/ApiDownloadForAuthorize?md5=' + file + '&token=' + wx.getStorageSync(app.config.tokenKey);
           } else {
             showDataUrl = datas.file ? app.config.requestCtx + '/file/api/ApiDownload?md5=' + datas.file : app.config.requestCtx + '/file/api/ApiDownload?md5=' + datas.freeFile
@@ -520,7 +529,12 @@
       })
       if (item.selectType == "audio" || item.learnSelectType === "audio") {
         if (this.data.formPath == 'jsek_cloudLearning') {
-          let file = item.protectedFile ? item.protectedFile : item.freeFile
+          let file
+          if (!item.isFreeFile) {
+            file = item.protectedFile
+          } else {
+            file = item.freeFile
+          }
           // 杩欓噷澶勭悊浜戝涔犵殑
           this.setData({
             showData: app.config.requestCtx + '/file/api/ApiDownloadForAuthorize?md5=' + file + '&token=' + wx.getStorageSync(app.config.tokenKey)
diff --git a/packageDomain/pages/resourceDetails/myVideo/index.js b/packageDomain/pages/resourceDetails/myVideo/index.js
index ad5933d..e8516ff 100644
--- a/packageDomain/pages/resourceDetails/myVideo/index.js
+++ b/packageDomain/pages/resourceDetails/myVideo/index.js
@@ -382,6 +382,7 @@
     if (isBuy == 2) {
       // 鏈喘涔�
       if (dataList[0].freeFile) {
+        dataList[0].isFreeFile = true; // 杩欎釜璧勬簮鍙互璇曠湅
         cmsItemData = dataList[0]
       } else {
         wx.hideLoading();
@@ -464,9 +465,9 @@
         this.data.threeLeveData.forEach((items, index) => { // 淇敼姝ゅ娣诲姞index鍙傛暟
           if (this.data.productLinkPath == items.productLinkPath) {
             if (this.data.formPath === "jsek_cloudLearning") {
-              const flag = this.cmsItemIsBuy(items)
+              // const flag = this.cmsItemIsBuy(items)
               let file
-              if (flag) {
+              if (!items.isFreeFile) {
                 file = items.protectedFile || items.file ? file = items.protectedFile || items.file : file = items.freeFile
               } else {
                 if (items.freeFile) {
@@ -500,6 +501,7 @@
         loading: false,
         hidden: false,
         toView: 'activeName' + this.data.selectedId,
+        threeLeveData: this.data.threeLeveData
       })
     })
   },
@@ -511,9 +513,9 @@
     })
     if (item.selectType == "video" || item.learnSelectType === "video") {
       if (this.data.formPath === "jsek_cloudLearning") {
-        const flag = this.cmsItemIsBuy(item)
+        // const flag = this.cmsItemIsBuy(item)
         let file
-        if (flag) {
+        if (!item.isFreeFile) {
           file =
             item.protectedFile || item.file ? file = item.protectedFile || item.file : file = item.freeFile
         } else {
diff --git a/packageDomain/pages/resourceDetails/myVideo/index.wxml b/packageDomain/pages/resourceDetails/myVideo/index.wxml
index 67706a1..0480a2f 100644
--- a/packageDomain/pages/resourceDetails/myVideo/index.wxml
+++ b/packageDomain/pages/resourceDetails/myVideo/index.wxml
@@ -4,22 +4,9 @@
     <!-- autoplay='false' 鏄惁鑷姩鎾斁 -->
     <!-- <video binderror="videoErrorCallback" src="{{showData}}" play-btn-position='center' object-fit='fill' controls enable-play-gesture enable-auto-rotation></video> -->
     <view wx:if="{{videoLoading}}" class="video-loading">
-      <t-loading
-        theme="circular"
-        size="60rpx"
-        class="wrapper"
-        loading="{{videoLoading}}"
-      />
+      <t-loading theme="circular" size="60rpx" class="wrapper" loading="{{videoLoading}}" />
     </view>
-    <t-video
-      id="tvd"
-      src="{{showDataVod}}"
-      style="width: 100%"
-      bindvideoloaded="loadedmetadata"
-      bindEnded="videoEnd"
-      bindTimeupdate="timeUpdate"
-      wx:if="{{!videoLoading}}"
-    >
+    <t-video id="tvd" src="{{showDataVod}}" style="width: 100%" bindvideoloaded="loadedmetadata" bindEnded="videoEnd" bindTimeupdate="timeUpdate" wx:if="{{!videoLoading}}">
     </t-video>
   </view>
 
@@ -30,50 +17,18 @@
   <!-- 鏍囬 -->
   <view class="titleBox">{{titleName}}</view>
   <view class="contentBox">
-    <t-tabs
-      defaultValue="{{0}}"
-      bind:change="onTabsChange"
-      t-class="custom-tabs"
-      t-class-content="custom-panel"
-      split="{{false}}"
-    >
+    <t-tabs defaultValue="{{0}}" bind:change="onTabsChange" t-class="custom-tabs" t-class-content="custom-panel" split="{{false}}">
       <!-- 璧勬簮鍒楄〃 -->
-      <t-tab-panel
-        label="璧勬簮鍒楄〃"
-        value="0"
-        style="{{tabPanelstyle}}"
-        style="width: 750rpx"
-      >
+      <t-tab-panel label="璧勬簮鍒楄〃" value="0" style="{{tabPanelstyle}}" style="width: 750rpx">
         <view class="demo-section__content" wx:if="{{loading}}">
-          <t-skeleton
-            theme="paragraph"
-            animation="gradient"
-            loading="true"
-          ></t-skeleton>
+          <t-skeleton theme="paragraph" animation="gradient" loading="true"></t-skeleton>
         </view>
-        <scroll-view
-          style="height: 700rpx"
-          scroll-y
-          scroll-into-view="{{toView}}"
-        >
+        <scroll-view style="height: 700rpx" scroll-y scroll-into-view="{{toView}}">
           <view class="wrapper" wx:if="{{!loading}}">
             <view class="outsideDetailsName">
-              <view class="titleBox">{{parentName}}</view>
-              <view
-                wx:for="{{threeLeveData}}"
-                wx:key="index"
-                wx:for-item="item"
-                wx:for-index="index"
-                bind:tap="onVideo"
-                data-item="{{item}}"
-                data-index="{{index}}"
-                class="detailsName"
-                id="{{selectedId == index ? 'activeName'+index : ''}}"
-              >
-                <view
-                  style="color: {{selectedId == index ? '#ff6c00' : '#000'}}"
-                  >{{item.name}}</view
-                >
+              <!-- <view class="titleBox">{{parentName}}</view> -->
+              <view wx:for="{{threeLeveData}}" wx:key="index" wx:for-item="item" wx:for-index="index" bind:tap="onVideo" data-item="{{item}}" data-index="{{index}}" class="detailsName" id="{{selectedId == index ? 'activeName'+index : ''}}">
+                <view style="color: {{selectedId == index ? '#ff6c00' : '#000'}}">{{item.name}}</view>
               </view>
             </view>
           </view>
@@ -87,17 +42,9 @@
             <empty />
           </view>
           <t-collapse value="{{activeValues}}" bind:change="handleChange">
-            <t-collapse-panel
-              value="{{item.id}}"
-              expandIcon
-              wx:for="{{noteList}}"
-              wx:key="id"
-            >
+            <t-collapse-panel value="{{item.id}}" expandIcon wx:for="{{noteList}}" wx:key="id">
               <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>
@@ -105,19 +52,9 @@
                 <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/compliceHover.png" class="complice" bind:tap="editNote" data-note="{{item}}"></t-image>
                     <view></view>
-                    <t-image
-                      src="/static/images/bookService/detail/deleteHover.png"
-                      class="delete"
-                      bind:tap="deleteNote"
-                      data-id="{{item.id}}"
-                    ></t-image>
+                    <t-image src="/static/images/bookService/detail/deleteHover.png" class="delete" bind:tap="deleteNote" data-id="{{item.id}}"></t-image>
                   </view>
                 </view>
               </view>
@@ -130,10 +67,7 @@
     <!-- 璁扮瑪璁� -->
     <view class="takeNotes" data-key="showCloseBtn" bind:tap="showDialog">
       <view class="takeNotesLining">
-        <image
-          src="/static/images/resourceDetails/jibiji锛廼con@2x.png"
-          mode=""
-        />
+        <image src="/static/images/resourceDetails/jibiji锛廼con@2x.png" mode="" />
         璁扮瑪璁�
       </view>
     </view>
@@ -141,71 +75,29 @@
   </view>
 
   <!-- 璁扮瑪璁板脊绐� -->
-  <t-popup
-    visible="{{dialogKey}}"
-    bind:visible-change="onVisibleChange"
-    placement="center"
-  >
+  <t-popup visible="{{dialogKey}}" 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}}"
-            style="{{inputStyle}}"
-            data-value="{{false}}"
-            bind:enter="changeTitle"
-            bind:blur="changeTitle"
-            maxlength="{{50}}"
-            bind:change="inputChange"
-          ></t-input>
+          <t-input value="{{submitTitle}}" style="{{inputStyle}}" data-value="{{false}}" bind:enter="changeTitle" bind:blur="changeTitle" maxlength="{{50}}" bind:change="inputChange"></t-input>
         </view>
       </view>
       <view slot="content">
         <view class="textarea-example">
           <text class="textarea-example__label">鍐呭:</text>
-          <t-textarea
-            value="{{textvalue}}"
-            t-class="external-class"
-            placeholder="璇疯緭鍏ユ枃瀛�"
-            bordered
-            maxlength="500"
-            disableDefaultPadding="{{true}}"
-            indicator
-            style="{{inputStyle}}"
-            bind:change="textareaChange"
-          />
+          <t-textarea value="{{textvalue}}" t-class="external-class" placeholder="璇疯緭鍏ユ枃瀛�" bordered maxlength="500" disableDefaultPadding="{{true}}" indicator style="{{inputStyle}}" bind:change="textareaChange" />
         </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>
     </view>
-    <t-icon
-      t-class="close-btn"
-      name="close-circle"
-      size="32"
-      color="#fff"
-      bind:tap="closeDialog"
-    />
+    <t-icon t-class="close-btn" name="close-circle" size="32" color="#fff" bind:tap="closeDialog" />
   </t-popup>
 </view>
 
-<t-dialog
-  class="prompDialog"
-  visible="{{promptVisable}}"
-  title="鎻愮ず"
-  content="璇曠湅缁撴潫锛岃璐拱姝e紡璧勬簮"
-  confirm-btn="{{ confirmBtn }}"
-  bind:confirm="closePromapDialog"
-/>
+<t-dialog class="prompDialog" visible="{{promptVisable}}" title="鎻愮ず" content="璇曠湅缁撴潫锛岃璐拱姝e紡璧勬簮" confirm-btn="{{ confirmBtn }}" bind:confirm="closePromapDialog" />
\ No newline at end of file
diff --git a/packagePersonal/pages/activateProduct/index.js b/packagePersonal/pages/activateProduct/index.js
index 71b9400..70f5e84 100644
--- a/packagePersonal/pages/activateProduct/index.js
+++ b/packagePersonal/pages/activateProduct/index.js
@@ -94,25 +94,43 @@
             oldlist.forEach(istrue => {
               istrue.icon = getPublicImage(istrue.icon, "", 400)
             })
+            item.typeList = []
             item.saleMethodList.forEach(async (i) => {
-              if (i.type != 'defaultSaleMethod') {
-                var index = i.name.indexOf('-')
-                if (index !== -1) {
-                  item.type = i.name.substring(0, index)
-                } else {
-                  item.type = i.name
-                }
-              } else {
-                let parentData = await app.MG.store.getProductBySaleMethod({
-                  saleMethodId: i.id
-                })
-                if (parentData.storeLinks[0].storeRefCode == 'jsek_digitalCourses') {
-                  item.type = '鏁板瓧璇剧▼'
-                }
-                if (parentData.storeLinks[0].storeRefCode == 'jsek_digitalTextbooks') {
-                  item.type = '鏁板瓧鏁欐潗'
-                }
+              // if (i.type != 'defaultSaleMethod') {
+              //   var index = i.name.indexOf('-')
+              //   if (index !== -1) {
+              //     item.type = i.name.substring(0, index)
+              //   } else {
+              //     item.type = i.name
+              //   }
+              // } else {
+              //   let parentData = await app.MG.store.getProductBySaleMethod({
+              //     saleMethodId: i.id
+              //   })
+              //   if (parentData.storeLinks[0].storeRefCode == 'jsek_digitalCourses') {
+              //     item.type = '鏁板瓧璇剧▼'
+              //   }
+              //   if (parentData.storeLinks[0].storeRefCode == 'jsek_digitalTextbooks') {
+              //     item.type = '鏁板瓧鏁欐潗'
+              //   }
+              // }
+              const obj = {
+                icon: item.productList[0]?.icon,
+                id: item.productList[0]?.id,
+                name: item.productList[0]?.name,
+                type: i.type == 'defaultSaleMethod' ? '鐢靛瓙涔�' : i.name.split('-')[0],
+                defaultSaleMethodId: item.productList[0]?.defaultSaleMethodId
               }
+              let parentData = await app.MG.store.getProductBySaleMethod({
+                saleMethodId: i.id
+              })
+              if (parentData.storeLinks[0].storeRefCode == 'jsek_digitalCourses') {
+                obj.type = '鏁板瓧璇剧▼'
+              }
+              if (parentData.storeLinks[0].storeRefCode == 'jsek_digitalTextbooks') {
+                obj.type = '鏁板瓧鏁欐潗'
+              }
+              item.typeList.push(obj)
             })
           })
           setTimeout(() => {
diff --git a/packagePersonal/pages/activateProduct/index.wxml b/packagePersonal/pages/activateProduct/index.wxml
index bdae0eb..293e7a3 100644
--- a/packagePersonal/pages/activateProduct/index.wxml
+++ b/packagePersonal/pages/activateProduct/index.wxml
@@ -33,8 +33,8 @@
               </view>
               <view class="listBox">
                 <scroll-view class="srcolbox" scroll-x scroll-with-animation='true'>
-                  <view class="order-centent" wx:if="{{items.productList.length > 0}}">
-                    <view class="bookBox" wx:for="{{items.productList}}" wx:for-item="itemes" wx:for-index="idx" wx:key="idx" bindtap="goBookDetails" data-book="{{itemes}}" data-type="{{items.type}}">
+                  <view class="order-centent" wx:if="{{items.typeList.length > 0}}">
+                    <view class="bookBox" wx:for="{{items.typeList}}" wx:for-item="itemes" wx:for-index="idx" wx:key="idx" bindtap="goBookDetails" data-book="{{itemes}}" data-type="{{itemes.type}}">
                       <view class="leftCon">
                         <!-- 鑾峰彇鍥剧墖 -->
                         <image class="purchasedIcon" wx:if="{{itemes.icon}}" src="{{itemes.icon}}" mode="aspectFit" />
@@ -44,7 +44,7 @@
                       <view class="rightCon">
                         <view class="productTitle">{{itemes.name}}</view>
                         <view class="typeBox">
-                          <text class="typeCon">{{items.type ? items.type : '鐢靛瓙涔�' }}</text>
+                          <text class="typeCon">{{itemes.type }}</text>
                         </view>
                       </view>
                     </view>
diff --git a/pages/digitalCourses/digitalCoursesDetails/components/tree/index.wxml b/pages/digitalCourses/digitalCoursesDetails/components/tree/index.wxml
index 0d143e7..0f1b80f 100644
--- a/pages/digitalCourses/digitalCoursesDetails/components/tree/index.wxml
+++ b/pages/digitalCourses/digitalCoursesDetails/components/tree/index.wxml
@@ -1,110 +1,37 @@
 <view class="tree">
   <t-collapse default-value="{{openIds}}" catchchange="handleChange">
-    <view
-      wx:for="{{treeList}}"
-      wx:for-item="item"
-      wx:for-index="index"
-      wx:key="id"
-      wx:if="{{item.sysType== 'CmsItem' }}"
-    >
-      <view
-        class="listItems"
-        wx:if="{{item.childrenFolderCount <= 0 && item.sysType == 'CmsItem'}}"
-      >
+    <view wx:for="{{treeList}}" wx:for-item="item" wx:for-index="index" wx:key="id" wx:if="{{item.sysType== 'CmsItem' }}">
+      <view class="listItems" wx:if="{{item.childrenFolderCount <= 0 && item.sysType == 'CmsItem'}}">
         <view class="itemsInfo">
           <view class="contentBox">
             <!-- 浜戝涔� 鍥炬爣 -->
-            <view
-              class="box-image fl-cn"
-              style="width: 80%"
-              bind:tap="goPlayer"
-              data-item="{{item}}"
-              data-parent="{{''}}"
-            >
+            <view class="box-image fl-cn" style="width: 80%" bind:tap="goPlayer" data-item="{{item}}" data-parent="{{''}}">
               <view class="teach-icon fl-cn">
-                <image
-                  wx:if="{{item.selectType == 'audio' || item.learnSelectType == 'audio'}}"
-                  src="/static/images/bookService/detail/audioIcon.png"
-                  mode="aspectFill"
-                />
-                <image
-                  wx:elif="{{item.selectType == 'video' || item.learnSelectType == 'video'}}"
-                  src="/static/images/bookService/detail/video.png"
-                  mode="aspectFill"
-                />
-                <image
-                  wx:elif="{{item.selectType == 'pdf' || item.learnSelectType == 'pdf'}}"
-                  src="/static/images/bookService/detail/pdf.png"
-                  mode="aspectFill"
-                />
-                <image
-                  wx:elif="{{item.selectType == 'webpage' || item.learnSelectType == 'webpage'}}"
-                  src="/static/images/bookService/detail/net.png"
-                  mode="aspectFill"
-                />
-                <image
-                  wx:elif="{{item.selectType == 'picture' || item.learnSelectType == 'picture'}}"
-                  src="/static/images/bookService/detail/picture.png"
-                  mode="aspectFill"
-                />
-                <image
-                  wx:elif="{{item.selectType == 'zip' || item.learnSelectType == 'zip'}}"
-                  src="/static/images/bookService/detail/zip.png"
-                  mode="aspectFill"
-                />
-                <image
-                  wx:elif="{{ item.fileMap[item.file].extension == 'doc' ||  item.fileMap[item.file].extension == 'docx' || item.fileMap[item.freeFile].extension == 'doc' ||  item.fileMap[item.freeFile].extension == 'docx' || item.fileMap[item.protectedFile].extension == 'doc' ||  item.fileMap[item.protectedFile].extension == 'docx'}}"
-                  src="/static/images/bookService/detail/word.png"
-                  mode="aspectFill"
-                />
-                <image
-                  wx:elif="{{ item.fileMap[item.file].extension == 'xls' ||  item.fileMap[item.file].extension == 'xlsx' || item.fileMap[item.freeFile].extension == 'xls' ||  item.fileMap[item.freeFile].extension == 'xlsx' || item.fileMap[item.protectedFile].extension == 'xls' ||  item.fileMap[item.protectedFile].extension == 'xlsx'}}"
-                  src="/static/images/bookService/detail/excel.png"
-                  mode="aspectFill"
-                />
-                <image
-                  wx:elif="{{ item.fileMap[item.file].extension == 'ppt' ||  item.fileMap[item.file].extension == 'pptx' || item.fileMap[item.freeFile].extension == 'ppt' ||  item.fileMap[item.freeFile].extension == 'pptx' || item.fileMap[item.protectedFile].extension == 'ppt' ||  item.fileMap[item.protectedFile].extension == 'pptx'}}"
-                  src="/static/images/bookService/detail/PPT.png"
-                  mode="aspectFill"
-                />
+                <image wx:if="{{item.selectType == 'audio' || item.learnSelectType == 'audio'}}" src="/static/images/bookService/detail/audioIcon.png" mode="aspectFill" />
+                <image wx:elif="{{item.selectType == 'video' || item.learnSelectType == 'video'}}" src="/static/images/bookService/detail/video.png" mode="aspectFill" />
+                <image wx:elif="{{item.selectType == 'pdf' || item.learnSelectType == 'pdf'}}" src="/static/images/bookService/detail/pdf.png" mode="aspectFill" />
+                <image wx:elif="{{item.selectType == 'webpage' || item.learnSelectType == 'webpage'}}" src="/static/images/bookService/detail/net.png" mode="aspectFill" />
+                <image wx:elif="{{item.selectType == 'picture' || item.learnSelectType == 'picture'}}" src="/static/images/bookService/detail/picture.png" mode="aspectFill" />
+                <image wx:elif="{{item.selectType == 'zip' || item.learnSelectType == 'zip'}}" src="/static/images/bookService/detail/zip.png" mode="aspectFill" />
+                <image wx:elif="{{ item.fileMap[item.file].extension == 'doc' ||  item.fileMap[item.file].extension == 'docx' || item.fileMap[item.freeFile].extension == 'doc' ||  item.fileMap[item.freeFile].extension == 'docx' || item.fileMap[item.protectedFile].extension == 'doc' ||  item.fileMap[item.protectedFile].extension == 'docx'}}" src="/static/images/bookService/detail/word.png" mode="aspectFill" />
+                <image wx:elif="{{ item.fileMap[item.file].extension == 'xls' ||  item.fileMap[item.file].extension == 'xlsx' || item.fileMap[item.freeFile].extension == 'xls' ||  item.fileMap[item.freeFile].extension == 'xlsx' || item.fileMap[item.protectedFile].extension == 'xls' ||  item.fileMap[item.protectedFile].extension == 'xlsx'}}" src="/static/images/bookService/detail/excel.png" mode="aspectFill" />
+                <image wx:elif="{{ item.fileMap[item.file].extension == 'ppt' ||  item.fileMap[item.file].extension == 'pptx' || item.fileMap[item.freeFile].extension == 'ppt' ||  item.fileMap[item.freeFile].extension == 'pptx' || item.fileMap[item.protectedFile].extension == 'ppt' ||  item.fileMap[item.protectedFile].extension == 'pptx'}}" src="/static/images/bookService/detail/PPT.png" mode="aspectFill" />
                 <!-- 璧勬簮鏃犳枃浠跺唴瀹瑰浘鏍� -->
-                <image
-                  wx:else
-                  src="/static/images/bookService/detail/word.png"
-                  mode=""
-                />
+                <image wx:else src="/static/images/bookService/detail/word.png" mode="" />
               </view>
               <!-- 鍚嶇О -->
               <text class="name" style="width: 100%">{{item.name || '-'}}</text>
               <text>{{item.progress ? item.progress : 0}}%</text>
             </view>
-            <view
-              class="seeBox"
-              wx:if="{{!isBuy && citem.freeFile ? true : false}}"
-              bind:tap="goPlayer"
-              data-item="{{citem}}"
-              data-parent=""
-              data-isTry="{{true}}"
-            >
+            <view class="seeBox" wx:if="{{!isBuy && citem.freeFile ? true : false}}" bind:tap="goPlayer" data-item="{{citem}}" data-parent="" data-isTry="{{true}}">
               <!-- 浜戝涔犺瘯鐪嬪浘鏍� -->
-              <image
-                src="/static/images/bookService/detail/shikan.png"
-                class="testSee"
-                wx:if="{{!isBuy && item.freeFile ? true : false}}"
-              ></image>
+              <image src="/static/images/bookService/detail/shikan.png" class="testSee" wx:if="{{!isBuy && item.freeFile ? true : false}}"></image>
             </view>
           </view>
         </view>
       </view>
     </view>
-    <t-collapse-panel
-      wx:for="{{treeList}}"
-      wx:for-item="item"
-      wx:for-index="index"
-      wx:key="id"
-      value="{{item.id}}"
-      wx:if="{{item.sysType == 'CmsFolder' }}"
-    >
+    <t-collapse-panel wx:for="{{treeList}}" wx:for-item="item" wx:for-index="index" wx:key="id" value="{{item.id}}" wx:if="{{item.sysType == 'CmsFolder' }}">
       <view slot="header" class="header-title">
         <view class="title-checkBox" catchtap="catchTap">
           <!-- 绔犺妭鍚� -->
@@ -113,113 +40,39 @@
           </view>
         </view>
       </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.sysType == 'CmsItem'}}"
-        >
+        <view class="listItems" wx:if="{{citem.childrenFolderCount <= 0 && citem.sysType == 'CmsItem'}}">
           <view class="itemsInfo">
             <view class="contentBox">
               <!-- 浜戝涔� 鍥炬爣 -->
-              <view
-                class="box-image fl-cn"
-                bind:tap="goPlayer"
-                data-item="{{citem}}"
-                data-parent="{{item}}"
-              >
+              <view class="box-image fl-cn" bind:tap="goPlayer" data-item="{{citem}}" data-parent="{{item}}">
                 <view class="teach-icon fl-cn">
-                  <image
-                    wx:if="{{citem.selectType == 'audio' || citem.learnSelectType == 'audio'}}"
-                    src="/static/images/bookService/detail/audioIcon.png"
-                    mode="aspectFill"
-                  />
-                  <image
-                    wx:elif="{{citem.selectType == 'video' || citem.learnSelectType == 'video'}}"
-                    src="/static/images/bookService/detail/video.png"
-                    mode="aspectFill"
-                  />
-                  <image
-                    wx:elif="{{citem.selectType == 'pdf' || citem.learnSelectType == 'pdf'}}"
-                    src="/static/images/bookService/detail/pdf.png"
-                    mode="aspectFill"
-                  />
-                  <image
-                    wx:elif="{{citem.selectType == 'webpage' || citem.learnSelectType == 'webpage'}}"
-                    src="/static/images/bookService/detail/net.png"
-                    mode="aspectFill"
-                  />
-                  <image
-                    wx:elif="{{citem.selectType == 'picture' || citem.learnSelectType == 'picture'}}"
-                    src="/static/images/bookService/detail/picture.png"
-                    mode="aspectFill"
-                  />
-                  <image
-                    wx:elif="{{citem.selectType == 'zip' || citem.learnSelectType == 'zip'}}"
-                    src="/static/images/bookService/detail/zip.png"
-                    mode="aspectFill"
-                  />
-                  <image
-                    wx:elif="{{ citem.fileMap[citem.file].extension == 'doc' ||  citem.fileMap[citem.file].extension == 'docx' || citem.fileMap[citem.freeFile].extension == 'doc' ||  citem.fileMap[citem.freeFile].extension == 'docx' || citem.fileMap[citem.protectedFile].extension == 'doc' ||  citem.fileMap[citem.protectedFile].extension == 'docx'}}"
-                    src="/static/images/bookService/detail/word.png"
-                    mode="aspectFill"
-                  />
-                  <image
-                    wx:elif="{{ citem.fileMap[citem.file].extension == 'xls' ||  citem.fileMap[citem.file].extension == 'xlsx' || citem.fileMap[citem.freeFile].extension == 'xls' ||  citem.fileMap[citem.freeFile].extension == 'xlsx' || citem.fileMap[citem.protectedFile].extension == 'xls' ||  citem.fileMap[citem.protectedFile].extension == 'xlsx' }}"
-                    src="/static/images/bookService/detail/excel.png"
-                    mode="aspectFill"
-                  />
-                  <image
-                    wx:elif="{{ citem.fileMap[citem.file].extension == 'ppt' ||  citem.fileMap[citem.file].extension == 'pptx' || citem.fileMap[citem.freeFile].extension == 'ppt' ||  citem.fileMap[citem.freeFile].extension == 'pptx' || citem.fileMap[citem.protectedFile].extension == 'ppt' ||  citem.fileMap[citem.protectedFile].extension == 'pptx'}}"
-                    src="/static/images/bookService/detail/PPT.png"
-                    mode="aspectFill"
-                  />
+                  <image wx:if="{{citem.selectType == 'audio' || citem.learnSelectType == 'audio'}}" src="/static/images/bookService/detail/audioIcon.png" mode="aspectFill" />
+                  <image wx:elif="{{citem.selectType == 'video' || citem.learnSelectType == 'video'}}" src="/static/images/bookService/detail/video.png" mode="aspectFill" />
+                  <image wx:elif="{{citem.selectType == 'pdf' || citem.learnSelectType == 'pdf'}}" src="/static/images/bookService/detail/pdf.png" mode="aspectFill" />
+                  <image wx:elif="{{citem.selectType == 'webpage' || citem.learnSelectType == 'webpage'}}" src="/static/images/bookService/detail/net.png" mode="aspectFill" />
+                  <image wx:elif="{{citem.selectType == 'picture' || citem.learnSelectType == 'picture'}}" src="/static/images/bookService/detail/picture.png" mode="aspectFill" />
+                  <image wx:elif="{{citem.selectType == 'zip' || citem.learnSelectType == 'zip'}}" src="/static/images/bookService/detail/zip.png" mode="aspectFill" />
+                  <image wx:elif="{{ citem.fileMap[citem.file].extension == 'doc' ||  citem.fileMap[citem.file].extension == 'docx' || citem.fileMap[citem.freeFile].extension == 'doc' ||  citem.fileMap[citem.freeFile].extension == 'docx' || citem.fileMap[citem.protectedFile].extension == 'doc' ||  citem.fileMap[citem.protectedFile].extension == 'docx'}}" src="/static/images/bookService/detail/word.png" mode="aspectFill" />
+                  <image wx:elif="{{ citem.fileMap[citem.file].extension == 'xls' ||  citem.fileMap[citem.file].extension == 'xlsx' || citem.fileMap[citem.freeFile].extension == 'xls' ||  citem.fileMap[citem.freeFile].extension == 'xlsx' || citem.fileMap[citem.protectedFile].extension == 'xls' ||  citem.fileMap[citem.protectedFile].extension == 'xlsx' }}" src="/static/images/bookService/detail/excel.png" mode="aspectFill" />
+                  <image wx:elif="{{ citem.fileMap[citem.file].extension == 'ppt' ||  citem.fileMap[citem.file].extension == 'pptx' || citem.fileMap[citem.freeFile].extension == 'ppt' ||  citem.fileMap[citem.freeFile].extension == 'pptx' || citem.fileMap[citem.protectedFile].extension == 'ppt' ||  citem.fileMap[citem.protectedFile].extension == 'pptx'}}" src="/static/images/bookService/detail/PPT.png" mode="aspectFill" />
                   <!-- 璧勬簮鏃犳枃浠跺唴瀹瑰浘鏍� -->
-                  <image
-                    wx:else
-                    src="/static/images/bookService/detail/word.png"
-                    mode=""
-                  />
-                  <text class="name" style="width: 400rpx"
-                    >{{citem.name || '-'}}</text
-                  >
+                  <image wx:else src="/static/images/bookService/detail/word.png" mode="" />
+                  <text class="name" style="width: 400rpx">{{citem.name || '-'}}</text>
                 </view>
                 <!-- 鍚嶇О -->
                 <text>{{citem.progress ? citem.progress : 0}}%</text>
               </view>
-              <view
-                class="seeBox"
-                wx:if="{{!isBuy && citem.freeFile ? true : false}}"
-                bind:tap="goPlayer"
-                data-item="{{citem}}"
-                data-parent="{{item}}"
-                data-isTry="{{true}}"
-              >
+              <view class="seeBox" wx:if="{{!isBuy && citem.freeFile ? true : false}}" bind:tap="goPlayer" data-item="{{citem}}" data-parent="{{item}}" data-isTry="{{true}}">
                 <!-- 浜戝涔犺瘯鐪嬪浘鏍� -->
-                <image
-                  src="/static/images/bookService/detail/shikan.png"
-                  class="testSee"
-                ></image>
+                <image src="/static/images/bookService/detail/shikan.png" class="testSee"></image>
               </view>
             </view>
           </view>
         </view>
         <!-- // 鍒ゆ柇 涓嶆槸鍟嗗搧 鏈夊瓙椤� 閫掑綊缁勪欢 -->
-        <tree
-          wx:if="{{ citem.sysType == 'CmsFolder' }}"
-          bookInfo="{{bookInfo}}"
-          treeList="{{[citem]}}"
-          learnList="{{learnList}}"
-          itemId="{{itemId}}"
-          openIds="{{openIds}}"
-          isBuy="{{isBuy}}"
-        ></tree>
+        <tree wx:if="{{ citem.sysType == 'CmsFolder' }}" bookInfo="{{bookInfo}}" treeList="{{[citem]}}" learnList="{{learnList}}" itemId="{{itemId}}" openIds="{{openIds}}" isBuy="{{isBuy}}"></tree>
       </view>
       <!-- 鏆傛棤鏁版嵁 -->
       <view wx:if="{{!item.children || !item.children.length}}" class="noData">
@@ -234,4 +87,4 @@
       </view>
     </t-collapse-panel>
   </t-collapse>
-</view>
+</view>
\ No newline at end of file
diff --git a/pages/scanResult/index.wxml b/pages/scanResult/index.wxml
index b46c695..6766c68 100644
--- a/pages/scanResult/index.wxml
+++ b/pages/scanResult/index.wxml
@@ -1,54 +1,29 @@
 <!--pages/index/scanResult/index.wxml-->
 <view class="content" wx:if="{{!isOther}}">
   <view class="productWall" wx:if="{{productInfo.length > 0}}">
-    <view
-      class="product"
-      wx:for="{{productInfo}}"
-      wx:for-item="item"
-      wx:for-index="index"
-      wx:key="index"
-    >
+    <view class="product" wx:for="{{productInfo}}" wx:for-item="item" wx:for-index="index" wx:key="index">
       <view class="productImg">
         <image class="icon" src="{{item.icon}}" mode="aspectFit" />
       </view>
       <view class="productInfo">
         <text wx:if="{{item.name}}" class="publicCss">{{ item.name }}</text>
-        <text wx:if="{{item.price}}" class="publicCss"
+        <!-- <text wx:if="{{item.price}}" class="publicCss"
           >浠锋牸锛�<text style="color: red">锟{ item.price }}</text></text
-        >
+        > -->
         <text class="type-box">{{item.itemType}}</text>
       </view>
     </view>
   </view>
   <view class="selectCard" wx:if="{{activeCodeAndStoreChannelLinks.length>0}}">
-    <t-cell
-      title="{{description?description:'閫夋嫨婵�娲诲晢鍝�'}}"
-      bordered="{{false}}"
-      bindtap="selectPage"
-      description="{{activeInfo  && activeInfo.productIds.length>0?'宸查�夋嫨'+ activeInfo.productIds.length +'浠跺晢鍝�':''}}"
-      data-info="{{activeCodeAndStoreChannelLinks}}"
-      arrow
-    />
+    <t-cell title="{{description?description:'閫夋嫨婵�娲诲晢鍝�'}}" bordered="{{false}}" bindtap="selectPage" description="{{activeInfo  && activeInfo.productIds.length>0?'宸查�夋嫨'+ activeInfo.productIds.length +'浠跺晢鍝�':''}}" data-info="{{activeCodeAndStoreChannelLinks}}" arrow />
   </view>
   <view class="couponWall" wx:if="{{couponList.length > 0}}">
-    <view
-      class="coupon"
-      wx:for="{{couponList}}"
-      wx:for-item="item"
-      wx:for-index="index"
-      wx:key="index"
-    >
-      <image
-        class="couponIcon"
-        src="/static/images/web/coupon.png"
-        mode="aspectFit"
-      />
+    <view class="coupon" wx:for="{{couponList}}" wx:for-item="item" wx:for-index="index" wx:key="index">
+      <image class="couponIcon" src="/static/images/web/coupon.png" mode="aspectFit" />
       <view class="price">锟{ item.value }}鍏�</view>
       <view class="couponInfo">
         <text>{{ item.name }}</text>
-        <text class="timer"
-          >{{ item.isForAllProduct ? "鍏ㄥ満鍙敤" : "浠呭彲璐拱鎸囧畾鍟嗗搧" }}</text
-        >
+        <text class="timer">{{ item.isForAllProduct ? "鍏ㄥ満鍙敤" : "浠呭彲璐拱鎸囧畾鍟嗗搧" }}</text>
         <view class="timer">
           <text>{{ item.start }}</text>
           <text>~</text>
@@ -57,13 +32,8 @@
       </view>
     </view>
   </view>
-  <view
-    class="button-example"
-    wx:if="{{productInfo.length > 0 || couponList.length > 0}}"
-  >
-    <t-button bindtap="useActiveCode" size="large" block
-      >{{textValue}}</t-button
-    >
+  <view class="button-example" wx:if="{{productInfo.length > 0 || couponList.length > 0}}">
+    <t-button bindtap="useActiveCode" size="large" block>{{textValue}}</t-button>
   </view>
   <view class="text">
     <rich-text space="emsp" nodes="{{rules.tourism_content}}" />
@@ -75,4 +45,4 @@
 </view>
 <view wx:else class="empyt">
   <t-empty icon="error-circle" description="璇锋壂鎻忔纭殑浜岀淮鐮�" />
-</view>
+</view>
\ No newline at end of file

--
Gitblit v1.9.1