闫增涛
2024-04-02 d16edf75075be3e4bc8eeb90420d048101068163
图书详情、答题器bug修改
10个文件已修改
258 ■■■■ 已修改文件
packageBookService/pages/bookServices/detail/components/suggest/suggest.wxml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/bookServices/detail/components/suggest/suggest.wxss 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/bookServices/detail/components/tree/index.js 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/bookServices/detail/components/tree/index.wxml 180 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/bookServices/detail/index.js 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/bookServices/detail/index.wxss 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/bookServices/examination/examination.js 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/bookServices/examination/questionList/index.wxml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/bookServices/examination/questionList/index.wxss 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/bookServices/list/index.wxml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/bookServices/detail/components/suggest/suggest.wxml
@@ -18,10 +18,7 @@
    </view>
    <view class="phone-input">
      <t-input
        clearable
        value="{{inputvalue}}"
        slot="content"
        label=""
        placeholder="请输入联系方式"
        bind:change="inputChange"
        type="number"
packageBookService/pages/bookServices/detail/components/suggest/suggest.wxss
@@ -77,13 +77,13 @@
}
.phone {
  margin-bottom: 16rpx;
  --td-input-border-radius: 20rpx;
  border-radius: 20rpx;
}
.phone-input {
  width: 100%;
  margin-bottom: 16rpx;
}
.submit-btn {
packageBookService/pages/bookServices/detail/components/tree/index.js
@@ -51,7 +51,8 @@
    webpageSrc: '',
    cloudShoppingCart: [],
    selectAll: [],
    shoppingCart: true
    shoppingCart: true,
    stop: false,
  },
  ready() {
    this.setData({
@@ -79,7 +80,6 @@
  },
  methods: {
    handleList(tree) {
      for (let index = 0; index < tree.length; index++) {
        const item = tree[index];
@@ -246,7 +246,6 @@
        }
      }
      tree.forEach(node => {
        flatten(node);
      });
      // console.log(result, 'result');
@@ -254,11 +253,11 @@
    },
    // 变为true
    findAndUpdateItemsByIds(tree, ids) {
    findAndUpdateItemsByIds(tree, ids, state) {
      function findAndUpdate(node) {
        if (ids.includes(node.id)) {
          // console.log(node, 'node');
          node.checked = !node.checked // 将目标项的 check 属性设置为 true
          node.checked = state // 将目标项的 check 属性设置为 true
        }
        if (node.children && node.children.length > 0) {
          for (let child of node.children) {
@@ -266,9 +265,7 @@
          }
        }
      }
      for (let node of tree) {
        findAndUpdate(node); // 对每个顶层节点执行查找和更新操作
      }
      // console.log(tree, 'tree345');
@@ -291,7 +288,7 @@
      }
      return tree; // 返回修改后的完整数组
    },
    // 全选
    checkAll() {
      const ids = []
      const list = []
@@ -303,21 +300,16 @@
      })
      list.forEach(item => {
        ids.push(item.id)
        checked = item.checked
      })
      const updataList = this.findAndUpdateItemsByIds(this.properties.treeList, ids);
      const flag = list.findIndex(item => item.checked == false) > -1 ? true : false
      const updataList = this.findAndUpdateItemsByIds(this.properties.treeList, ids, flag);
      console.log(checked, 'list');
      if (!checked) {
        this.setData({
          selectAll: list
        })
      }
      this.setData({
        treeList: updataList
      })
@@ -325,6 +317,8 @@
    // 章节勾选
    checkResourceTitle(e) {
      const flag = e.detail.checked
      debugger
      // 这个时候checked的值是fals
      let checkResourceTitleList = []
      const item = e.currentTarget.dataset.item
@@ -335,20 +329,16 @@
        ids.push(item.id)
      })
      // console.log(list, 'list789');
      const updatedTreeList = this.findAndUpdateItemsByIds(this.properties.treeList, ids);
      const updatedTreeList = this.findAndUpdateItemsByIds(this.properties.treeList, ids, flag);
      this.setData({
        treeList: updatedTreeList // 更新 treeList 数据
      });
      console.log(list, 'list.checked');
      if (!list.checked) {
        this.setData({
          superiorPurchaseSaleMethodId: list
        })
      }
      // console.log(this.data.superiorPurchaseSaleMethodId, 'superiorPurchaseSaleMethodId');
      list.forEach(items => {
        console.log(items.checked, 'itesasd');
@@ -357,6 +347,9 @@
            cloudShoppingCart: items
          })
        }
      })
      this.setData({
        openIds: this.data.openIds
      })
    },
    // 子项勾选
@@ -433,11 +426,6 @@
    },
  },
  onCheckAllChange(e) {
    // debugger
    // console.log('checkbox', e.detail.value);
    // this.setData({
    //   checkAllValues: event.detail,
    // });
  },
  catchtap() {}
})
packageBookService/pages/bookServices/detail/components/tree/index.wxml
@@ -1,61 +1,181 @@
<view class="tree">
  <t-collapse default-value="{{openIds}}" bind:change="handleChange">
    <t-collapse-panel wx:for="{{treeList}}" wx:for-item="item" wx:for-index="index" wx:key="id" value="{{item.id}}">
  <t-collapse default-value="{{openIds}}" catchchange="handleChange">
    <t-collapse-panel
      wx:for="{{treeList}}"
      wx:for-item="item"
      wx:for-index="index"
      wx:key="id"
      value="{{item.id}}"
    >
      <view slot="header" class="header-title">
        <view class="title-checkBox">
          <t-checkbox icon="rectangle" checked="{{item.checked}}" data-item="{{item}}" catch:change="checkResourceTitle" wx:if="{{isShowCheck}}" />
          <!-- <t-checkbox icon="rectangle" checked="{{true}}" data-item="{{item}}" bind:change="checkResourceTitle" /> -->
          <text>{{item.name}} </text><text wx:if="{{item.sysType =='CmsFolder'}}">({{item.children ? item.children.length : 0}})</text>
        <view class="title-checkBox" catchtap="catchTap">
          <t-checkbox
            icon="rectangle"
            checked="{{item.checked}}"
            data-item="{{item}}"
            catchchange="checkResourceTitle"
            wx:if="{{isShowCheck}}"
          />
          <!-- 章节名 -->
          <view style="width: 100%">
            <text>{{item.name}} </text
            ><text wx:if="{{item.sysType =='CmsFolder'}}"
              >({{item.children ? item.children.length : 0}})</text
            >
          </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.type == 'productItem'}}">
          <view class="itemsInfo" wx:if="{{citem.name}}" data-item="{{citem}}" data-index="{{cindex}}">
            <view class="contentBox" bind:tap="goPlayer" data-item="{{citem}}" data-parent="{{item}}">
        <view
          class="listItems"
          wx:if="{{citem.childrenFolderCount <= 0 && citem.sysType == 'CmsItem'}}"
        >
          <view
            class="itemsInfo"
            wx:if="{{citem.name}}"
            data-item="{{citem}}"
            data-index="{{cindex}}"
          >
            <view
              class="contentBox"
              bind:tap="goPlayer"
              data-item="{{citem}}"
              data-parent="{{item}}"
            >
              <!-- 教学资源 云学习 图标 -->
              <view class="box-image" style="{{ tab == 'jsek_teachingResources' ? 'width: 350rpx;' : 'width: 450rpx;'}}">
                <view class="checkBox" wx:if="{{isShowCheck}}">
              <view
                class="box-image"
                style="{{ tab == 'jsek_teachingResources' ? 'width: 350rpx;' : 'width: 450rpx;'}}"
              >
                <view
                  class="checkBox"
                  wx:if="{{isShowCheck}}"
                  catchtap="catchTap"
                >
                  <!-- checked="{{citem.checked}}"  -->
                  <!-- <t-checkbox icon="rectangle" checked="{{citem.checked}}" disabled="{{citem.selectType=='webpage' || citem.isDownload != 1 || citem.fileMap[citem.file].protectType == 'Private'}}" catch:change="checkResource" data-item="{{citem}}" /> -->
                  <t-checkbox icon="rectangle" checked="{{citem.checked}}" data-item="{{citem}}" catch:change="checkResource" />
                  <t-checkbox
                    icon="rectangle"
                    checked="{{citem.checked}}"
                    data-item="{{citem}}"
                    catch:change="checkResource"
                  />
                </view>
                <!-- 教学资源图标 -->
                <view class="teach-icon">
                  <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'}}" src="/static/images/bookService/detail/pdf.png" mode="aspectFill" />
                  <image wx:elif="{{citem.selectType == 'webpage'}}" src="/static/images/bookService/detail/net.png" mode="aspectFill" />
                  <image wx:elif="{{citem.selectType == 'picture'}}" src="/static/images/bookService/detail/picture.png" mode="aspectFill" />
                  <image wx:elif="{{citem.selectType == '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'}}" src="/static/images/bookService/detail/word.png" mode="aspectFill" />
                  <image wx:elif="{{ citem.fileMap[citem.file].extension == 'xlsx' ||  citem.fileMap[citem.file].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'}}" 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'}}"
                    src="/static/images/bookService/detail/pdf.png"
                    mode="aspectFill"
                  />
                  <image
                    wx:elif="{{citem.selectType == 'webpage'}}"
                    src="/static/images/bookService/detail/net.png"
                    mode="aspectFill"
                  />
                  <image
                    wx:elif="{{citem.selectType == 'picture'}}"
                    src="/static/images/bookService/detail/picture.png"
                    mode="aspectFill"
                  />
                  <image
                    wx:elif="{{citem.selectType == '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'}}"
                    src="/static/images/bookService/detail/word.png"
                    mode="aspectFill"
                  />
                  <image
                    wx:elif="{{ citem.fileMap[citem.file].extension == 'xlsx' ||  citem.fileMap[citem.file].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'}}"
                    src="/static/images/bookService/detail/PPT.png"
                    mode="aspectFill"
                  />
                </view>
                <!-- 云学习图标 -->
                <view> </view>
                <!-- 名称 -->
                <text class="name" style="{{ tab == 'jsek_teachingResources' ? 'width: 300rpx;' : 'width: 400rpx;'}}">{{citem.name}}</text>
                <text
                  class="name"
                  style="{{ tab == 'jsek_teachingResources' ? 'width: 300rpx;' : 'width: 400rpx;'}}"
                  >{{citem.name}}</text
                >
              </view>
              <!-- 教学资源类型 -->
              <view class="teachClass"> {{citem.resourceClass}} </view>
              <view class="teach-btn" wx:if="{{tab == 'jsek_teachingResources'}}">
              <view
                class="teach-btn"
                wx:if="{{tab == 'jsek_teachingResources'}}"
              >
                <!--  下载按钮 -->
                <image src="/static/images/bookService/detail/download-icon.png" class="download-image" data-value="{{citem}}" catchtap="downloadTeach"></image>
                <image
                  src="/static/images/bookService/detail/download-icon.png"
                  class="download-image"
                  data-value="{{citem}}"
                  catchtap="downloadTeach"
                ></image>
              </view>
              <view wx:if="{{tab == 'jsek_cloudLearning'}}">
                <!-- 云学习试看图标 -->
                <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 ? false : citem.freeFile ? true : false}}"
                ></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}}"
                  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 }}"
                ></image>
              </view>
            </view>
          </view>
        </view>
        <!-- // 判断 不是商品 有子项 递归组件 -->
        <tree wx:else isShowCheck="{{isShowCheck}}" bookInfo="{{bookInfo}}" treeList="{{[citem]}}" itemId="{{itemId}}" tab="{{tab}}" buyIds="{{buyIds}}" openTeachids="{{openTeachids}}" openLearnids="{{openLearnids}}"></tree>
        <tree
          wx:if="{{citem.childrenCount > 0 && citem.sysType == 'CmsFolder' }}"
          isShowCheck="{{isShowCheck}}"
          bookInfo="{{bookInfo}}"
          treeList="{{[citem]}}"
          itemId="{{itemId}}"
          tab="{{tab}}"
          buyIds="{{buyIds}}"
          openTeachids="{{openTeachids}}"
          openLearnids="{{openLearnids}}"
        ></tree>
      </view>
      <!-- 暂无数据 -->
      <view wx:if="{{!item.children || !item.children.length}}" class="noData">
@@ -71,4 +191,4 @@
  </t-collapse>
</view>
<web-view wx:if="{{webpageSrc}}" src="{{webpageSrc}}"></web-view>
<web-view wx:if="{{webpageSrc}}" src="{{webpageSrc}}"></web-view>
packageBookService/pages/bookServices/detail/index.js
@@ -418,10 +418,6 @@
          selectedIds: res.datas[0].defaultSaleMethod.id,
          bookBuy: res.datas[0].purchasedSaleMethodIdList.indexOf(res.datas[0].defaultSaleMethodId) > -1
        });
        console.log(res);
        console.log(res.datas[0].defaultSaleMethod.endDate, 'res.datas[0].defaultSaleMethod.endDate');
        console.log(res.datas[0].defaultSaleMethod.beginDate, 'res.datas[0].defaultSaleMethod.beginDate');
        console.log(this.data.bookItemDetail, 'bookItemData.value');
        let times = new Date(res.datas[0].defaultSaleMethod.endDate).getTime()
        let startTime = new Date(res.datas[0].defaultSaleMethod.beginDate).getTime()
@@ -1271,6 +1267,7 @@
      let freeIds = arr.filter((item) => {
        return item.saleMethod[0].Price == 0
      })
      debugger
      if (!freeIds.length) return wx.showToast({
        icon: "error",
        title: '暂无免费资源',
@@ -1285,7 +1282,7 @@
          })
        }
      })
      debugger
      let query = {
        remarks: '云学习',
        requests,
packageBookService/pages/bookServices/detail/index.wxss
@@ -30,6 +30,7 @@
.book-img image {
  width: 240rpx;
  height: 340rpx;
  box-shadow: 0px 3px 6px 1px rgba(0, 0, 0, 0.16);
}
.book-detail {
packageBookService/pages/bookServices/examination/examination.js
@@ -295,7 +295,9 @@
  viewParsing() {
    if (this.data.answerType == 'collectQuestion' || this.data.answerType == 'errorQuestion') {
      const item = this.data.questionDataList[this.data.currentIndex]
      if (!item.isComplete) this.handleQuestion(this.data.currentIndex)
      if (!item.isComplete) {
        this.handleQuestion(this.data.currentIndex)
      }
    }
  },
  // 点击答题卡跳转题目
@@ -768,7 +770,7 @@
            questionObj.questionType == 'multipleChoice'
          ) {
            try {
              questionObj.answer = JSON.parse(questionObj.answer)
              questionObj.answer = JSON.parse(questionObj.answer).toString()
            } catch (error) {
              questionObj.answer = item.Embedded_QuestionBank_Answer
            }
@@ -1200,9 +1202,9 @@
            questionObj.questionType == 'multipleChoice'
          ) {
            try {
              questionObj.answer = JSON.parse(questionObj.answer)
              questionObj.answer = JSON.parse(questionObj.answer).toString()
            } catch (error) {
              //
              questionObj.answer = item.Embedded_QuestionBank_Answer
            }
          }
          // 填空题改造
@@ -1400,9 +1402,9 @@
          questionObj.questionType == 'multipleChoice'
        ) {
          try {
            questionObj.answer = JSON.parse(questionObj.answer)
            questionObj.answer = JSON.parse(questionObj.answer).toString()
          } catch (error) {
            //
            questionObj.answer = item.Embedded_QuestionBank_Answer
          }
        }
        // 填空题改造
@@ -1644,7 +1646,7 @@
            questionObj.questionType == 'multipleChoice'
          ) {
            try {
              questionObj.answer = JSON.parse(questionObj.answer)
              questionObj.answer = JSON.parse(questionObj.answer).toString()
            } catch (error) {
              questionObj.answer = item.Embedded_QuestionBank_Answer
            }
packageBookService/pages/bookServices/examination/questionList/index.wxml
@@ -248,6 +248,7 @@
      <!-- 我的错题、收藏模式下,查看解析按钮 -->
      <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"
          >查看解析</t-button
packageBookService/pages/bookServices/examination/questionList/index.wxss
@@ -37,8 +37,7 @@
}
.swiper {
  /* min-height: 900rpx; */
  height: 100%;
  height: 95%;
}
/* 单选题 */
packageBookService/pages/bookServices/list/index.wxml
@@ -32,8 +32,7 @@
            bindchange="onChangeStair"
          />
          <t-dropdown-item
            wx:if="{{disabledSecondList === false}}"
            disabled="{{false}}"
            disabled="{{disabledSecondList}}"
            label="二级"
            bind:open="openDropdown"
            bind:close="closeDropdown"