闫增涛
2024-11-28 dce885689d308043450f199981722b5c80360fe7
题库购买
8个文件已修改
394 ■■■■ 已修改文件
packageBookService/pages/bookServices/detail/components/testResource/testResource.js 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/bookServices/detail/components/testResource/testResource.wxml 111 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/bookServices/detail/components/testResource/testResource.wxss 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/bookServices/detail/index.js 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/bookServices/detail/index.wxml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packagePersonal/pages/myOrder/index.js 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packagePersonal/pages/myOrder/index.wxml 172 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/cart/paymentPage/index.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/bookServices/detail/components/testResource/testResource.js
@@ -5,6 +5,12 @@
   * 组件的属性列表
   */
  properties: {
    isBuyBank: {
      type: Boolean
    },
    bankSaleData: {
      type: Object
    },
    list: {
      type: Array,
      value: [],
@@ -70,12 +76,15 @@
          },
        });
      }
      if (!this.data.isBuyBank) return wx.showToast({
        icon: 'error',
        title: '请先购买题库',
      })
      wx.showLoading({
        title: "加载中",
      });
      // 获取章节下是否有题目
      let idPathList = [];
      if (this.properties.storeInfo || this.properties.jslx) {
        idPathList.push({
          id: this.properties.bookInfo.id,
@@ -197,5 +206,14 @@
        loading: type,
      });
    },
    // 题库购买
    buyBank() {
      var myEventDetail = {} // detail对象,提供给事件监听函数
      var myEventOption = {
        bubbles: true,
        composed: true
      } // 触发事件的选项
      this.triggerEvent('buyBank', myEventDetail, myEventOption)
    }
  },
});
packageBookService/pages/bookServices/detail/components/testResource/testResource.wxml
@@ -2,15 +2,27 @@
<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>
@@ -48,15 +60,31 @@
      </view>
    </t-radio-group> -->
    <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>
@@ -74,16 +102,41 @@
  </view> -->
  <!-- 练习列表树结构 -->
  <view wx:if="{{radioItem == 'test'}}">
    <tree id="test-tree" openIds="{{openIds}}" bookInfo="{{bookInfo}}" tab="{{tab}}" treeList="{{list}}" bind:goTest="goTest"></tree>
    <view class="buy-question-btn" wx:if="{{!isBuyBank}}">
      <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
          >
  </view>
  <view wx:if="{{noResources}}" class="noData" wx:if="{{radioItem == 'test' && !list.length}}">
      </t-button>
    </view>
    <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}}"
  >
    <!-- <t-empty icon="folder-open" description="暂无数据" /> -->
    <empty />
  </view>
</view>
<!-- 组卷列表 -->
<view class="mock-data" wx:if="{{radioItem == 'mock'}}">
@@ -93,25 +146,45 @@
      <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>
packageBookService/pages/bookServices/detail/components/testResource/testResource.wxss
@@ -66,7 +66,8 @@
  margin-right: 4rpx;
}
.btn-box image {
.btn-box image,
.buy-question-btn image {
  width: 36rpx;
  height: 36rpx;
}
@@ -291,3 +292,13 @@
.t-radio__description {
  width: 102%;
}
.buy-question-btn {
  padding-right: 5rpx;
  display: flex;
  justify-content: flex-end;
}
.buy-question-btn image {
  margin-right: 4rpx;
}
packageBookService/pages/bookServices/detail/index.js
@@ -74,6 +74,8 @@
      residue: 0, // 组卷剩余次数
      mockList: [], // 用户组卷提交信息
    },
    isBuyBank: false,
    bankSaleData: null,
    relatedBookLoading: false,
    noRelatedBookData: false,
    relatedBookPath: "", // 相关图书path
@@ -275,7 +277,7 @@
  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
  onShow(options) {
    if (wx.getStorageSync("paperBookList")) {
      this.setData({
        paperBookList: JSON.parse(wx.getStorageSync("paperBookList")),
@@ -289,6 +291,9 @@
    this.setData({
      num: Number(this.data.paperBookList.length) + Number(this.data.electronicBookList.length),
    });
    if (this.data.bookDetail) {
      this.getBookInfo(this.data.bookDetail.id)
    }
  },
  /**
@@ -526,9 +531,24 @@
      }
    }
    app.MG.store.getProductDetail(query).then((res) => {
      console.log(111, res.datas.cmsDatas[0].datas);
      let isBuyBank = true
      let bankSaleData = null
      // 判断题库是否整体购买
      const bank = res.datas.cmsDatas[0].datas.find((item) => item.refCode == 'questionBank')
      if (bank) {
        if (bank.saleMethod.length) {
          bankSaleData = bank.saleMethod.find((item) => item.SaleType == 'Normal')
          if (bankSaleData) {
            isBuyBank = this.data.buyIdList.includes(bankSaleData.Id)
          }
        }
      }
      this.setData({
        resourceCodeList: res.datas.cmsDatas[0].datas,
        learnTaskData: res.datas.cmsDatas[0].datas.filter((item) => item.refCode == 'jsek_learningTasks')[0]
        learnTaskData: res.datas.cmsDatas[0].datas.filter((item) => item.refCode == 'jsek_learningTasks')[0],
        isBuyBank,
        bankSaleData
      })
      if (res.datas.cmsDatas[0].datas.length) this.setData({
        learnMenu: res.datas.cmsDatas[0].datas.find(item => item.refCode == 'jsek_cloudLearning')
@@ -876,7 +896,7 @@
        }
        // newArr.push(item)
        // 在插入过程中对数据进行排序
        newArr = this.insertAndSortObjectsByProductLinkPath(newArr, item)
        newArr = this.insertAndSortObjectsById(newArr, item)
        // 插进数组后 从原数据中删除
        rootList = rootList.filter(nitem => nitem.id != item.id)
      }
@@ -908,8 +928,8 @@
    return tree
  },
  // 排序数组 按照productLinkPath
  insertAndSortObjectsByProductLinkPath(array, newObj) {
  // 排序数组 按照id
  insertAndSortObjectsById(array, newObj) {
    // 查找新对象应该插入的位置  
    let insertIndex = array.findIndex(obj => newObj.id < obj.id);
    // 如果没有找到合适的位置,则放在数组末尾  
@@ -1907,6 +1927,42 @@
  handleTrue() {
    // findAndUpdateItemsByIds(this.date.)
  },
  // 题库购买
  async buyBank() {
    console.log(11, this.data.bankSaleData);
    let query = {
      remarks: '云测试',
      requests: [{
        saleMethodId: this.data.bankSaleData.Id,
        count: 1
      }]
    }
    const initOrderRes = await app.MG.store.initOrder(query)
    if (this.data.bankSaleData.Price) {
      // 购买
      const url = "/pages/cart/paymentPage/index?orderNumber=" + initOrderRes.orderNumber + '&onNorderSaleMethod=' + initOrderRes.saleMethodLinks[0].orderSaleMethod.id;
      wx.navigateTo({
        url,
      });
    } else {
      // 免费领取
      app.MG.store
        .confirmOrder({
          orderNum: initOrderRes.orderNumber,
        })
        .then((res) => {
          if (res) {
            wx.showToast({
              title: "领取成功",
              icon: "none",
              duration: 1000,
            });
            this.getBookInfo(this.data.bookDetail.id);
          }
        });
    }
  },
  // 组卷格式化日期显示
  DateFormat(date, fmt) {
    if (date && fmt) {
packageBookService/pages/bookServices/detail/index.wxml
@@ -290,6 +290,8 @@
              <test-resource
                id="test-resource"
                list="{{test}}"
                bankSaleData="{{bankSaleData}}"
                isBuyBank="{{isBuyBank}}"
                bookInfo="{{bookDetail}}"
                openIds="{{openLearnids}}"
                mockData="{{mockData}}"
@@ -297,6 +299,7 @@
                storeInfo="{{options.storeInfo}}"
                jslx="{{jslx}}"
                bind:buyMock="buyMock"
                bind:buyBank="buyBank"
              ></test-resource>
            </view>
          </t-tab-panel>
packagePersonal/pages/myOrder/index.js
@@ -356,8 +356,13 @@
      } else if (book.orderSaleMethod.type == 'createProductSaleMethod' && book.orderSaleMethod.cmsItemList == 0) {
        title = '图书服务-组卷'
      } else {
        debugger
        if (book.orderSaleMethod.cmsItemList.length && book.orderSaleMethod.cmsItemList[0].type == "questionBankFolder") {
          title = '图书服务-云测试'
        } else {
        title = '图书服务-云学习'
      }
      }
    } else if (type == 'jsek_digitalCourses') {
      title = '数字教材'
    } else {
packagePersonal/pages/myOrder/index.wxml
@@ -1,61 +1,161 @@
<view class="container">
  <view class="page-header" wx:if="{{!skeletonLoding}}">
    <view class="search">
      <t-search model:value="{{searchText}}" shape="round" clearable="{{false}}" placeholder="请输入订单编号" class="navBar-search" style="width: 90%" bind:submit="onSearchOrder" />
      <t-search
        model:value="{{searchText}}"
        shape="round"
        clearable="{{false}}"
        placeholder="请输入订单编号"
        class="navBar-search"
        style="width: 90%"
        bind:submit="onSearchOrder"
      />
    </view>
    <t-tabs t-class="t-tabs" defaultValue="{{active}}" split="{{false}}" bind:change="tabBookClick">
      <t-tab-panel wx:for="{{tabList}}" wx:for-index="index" wx:key="index" label="{{item.label}}" value="{{index}}" />
    <t-tabs
      t-class="t-tabs"
      defaultValue="{{active}}"
      split="{{false}}"
      bind:change="tabBookClick"
    >
      <t-tab-panel
        wx:for="{{tabList}}"
        wx:for-index="index"
        wx:key="index"
        label="{{item.label}}"
        value="{{index}}"
      />
    </t-tabs>
  </view>
  <view class="pageInfo" wx:if="{{!skeletonLoding}}">
    <scroll-view class="scroll content" bind:scroll="onPageScroll" model:scroll-top="{{setScrollValue}}" scroll-y refresher-enabled="{{true}}" lower-threshold="{{200}}" refresher-threshold="{{80}}" refresher-default-style="none" refresher-triggered="{{triggered}}" bindrefresherpulling="{{refresh.onPulling}}" bindrefresherrefresh="onPullDownRefresh" bindscrolltolower="onReachBottom">
    <scroll-view
      class="scroll content"
      bind:scroll="onPageScroll"
      model:scroll-top="{{setScrollValue}}"
      scroll-y
      refresher-enabled="{{true}}"
      lower-threshold="{{200}}"
      refresher-threshold="{{80}}"
      refresher-default-style="none"
      refresher-triggered="{{triggered}}"
      bindrefresherpulling="{{refresh.onPulling}}"
      bindrefresherrefresh="onPullDownRefresh"
      bindscrolltolower="onReachBottom"
    >
      <view slot="refresher" class="refresh-container">
        <view class="loading">
          <t-loading theme="circular" size="40rpx" text="正在刷新..." class="wrapper" />
          <t-loading
            theme="circular"
            size="40rpx"
            text="正在刷新..."
            class="wrapper"
          />
        </view>
      </view>
      <view class="list" wx:if="{{list.length > 0}}">
        <view class="content-item" wx:for="{{list}}" wx:for-item="items" wx:for-index="index" wx:key="index">
        <view
          class="content-item"
          wx:for="{{list}}"
          wx:for-item="items"
          wx:for-index="index"
          wx:key="index"
        >
          <view class="order-cent">
            <text class="order-cent-one">订单号: {{items.orderNumber}}</text>
            <text class="right {{items.colorName}}">{{items.CustomState}}</text>
          </view>
          <view class="order-centent">
            <scroll-view class="srcolbox" scroll-x scroll-with-animation='true'>
              <view class="bookBox {{items.saleMethodLinks.length == 1 ? 'flex' : ''}}" wx:for="{{items.saleMethodLinks}}" wx:for-item="itemes" wx:for-index="idx" wx:key="idx" bindtap="goBookDetails" data-book="{{itemes}}" data-remarks="{{items.remarks}}">
                <view class="leftCon {{items.saleMethodLinks.length == 1 ? 'fl' : ''}}">
            <scroll-view class="srcolbox" scroll-x scroll-with-animation="true">
              <view
                class="bookBox {{items.saleMethodLinks.length == 1 ? 'flex' : ''}}"
                wx:for="{{items.saleMethodLinks}}"
                wx:for-item="itemes"
                wx:for-index="idx"
                wx:key="idx"
                bindtap="goBookDetails"
                data-book="{{itemes}}"
                data-remarks="{{items.remarks}}"
              >
                <view
                  class="leftCon {{items.saleMethodLinks.length == 1 ? 'fl' : ''}}"
                >
                  <!-- 获取图片 -->
                  <image class="purchasedIcon" wx:if="{{itemes.icon}}" src="{{itemes.icon}}" mode="aspectFit" />
                  <image class="purchasedIcon" wx:else src="/static/images/default-book-img.png" mode="aspectFit" />
                  <image
                    class="purchasedIcon"
                    wx:if="{{itemes.icon}}"
                    src="{{itemes.icon}}"
                    mode="aspectFit"
                  />
                  <image
                    class="purchasedIcon"
                    wx:else
                    src="/static/images/default-book-img.png"
                    mode="aspectFit"
                  />
                </view>
                <!-- 获取名称 -->
                <view class="rightCon">
                  <view class="productTitle">{{itemes.name}}</view>
                  <view class="cmsName" wx:if="{{itemes.orderSaleMethod.type != 'defaultSaleMethod'}}">{{itemes.orderSaleMethod.cmsItemList[0].name}}</view>
                  <view class="{{items.saleMethodLinks.length == 1 ? 'top' : ''}}">
                    <text class="typeBox">{{
                      itemes.orderSaleMethod.product.cmsTypeRefCode == 'jsek_mediaBook' ?
                      itemes.orderSaleMethod.type == 'defaultSaleMethod'
                      ? '图书服务-电子书'
                      : itemes.orderSaleMethod.type == 'createProductSaleMethod' && itemes.orderSaleMethod.cmsItemList == 0 ? '图书服务-组卷' : '图书服务-云学习' : itemes.orderSaleMethod.product.cmsTypeRefCode == 'jsek_digitalCourses' ? '数字课程' : '数字教材'
                      }}</text>
                  <view
                    class="cmsName"
                    wx:if="{{itemes.orderSaleMethod.type != 'defaultSaleMethod'}}"
                    >{{itemes.orderSaleMethod.cmsItemList[0].name}}</view
                  >
                  <view
                    class="{{items.saleMethodLinks.length == 1 ? 'top' : ''}}"
                  >
                    <text class="typeBox"
                      >{{ itemes.orderSaleMethod.product.cmsTypeRefCode ==
                      'jsek_mediaBook' ? itemes.orderSaleMethod.type ==
                      'defaultSaleMethod' ? '图书服务-电子书' :
                      itemes.orderSaleMethod.type == 'createProductSaleMethod'
                      && itemes.orderSaleMethod.cmsItemList == 0 ?
                      '图书服务-组卷' :
                      itemes.orderSaleMethod.cmsItemList.length &&
                      itemes.orderSaleMethod.cmsItemList[0].type ==
                      "questionBankFolder" ? '图书服务-云测试' :
                      '图书服务-云学习' :
                      itemes.orderSaleMethod.product.cmsTypeRefCode ==
                      'jsek_digitalCourses' ? '数字课程' : '数字教材' }}</text
                    >
                  </view>
                </view>
              </view>
            </scroll-view>
            <view class="count">
              <text wx:if="{{items.saleMethodLinks.length > 1 }}">共{{items.saleMethodLinks.length}}件</text>
              <text wx:if="{{items.saleMethodLinks.length == 1 }}">¥{{items.payPrice}}</text>
              <text wx:if="{{items.saleMethodLinks.length > 1 }}"
                >共{{items.saleMethodLinks.length}}件</text
              >
              <text wx:if="{{items.saleMethodLinks.length == 1 }}"
                >¥{{items.payPrice}}</text
              >
            </view>
          </view>
          <view class="order-top">
            <text class="finishedDate" wx:if="{{items.state == 'Success'}}">{{items.finishedDate}}</text>
            <text class="order-top-price" wx:if="{{items.state == 'WaitPay'}}">应付:<text class="">¥{{items.payPrice}}</text></text>
            <text class="finishedDate" wx:if="{{items.state == 'Success'}}"
              >{{items.finishedDate}}</text
            >
            <text class="order-top-price" wx:if="{{items.state == 'WaitPay'}}"
              >应付:<text class="">¥{{items.payPrice}}</text></text
            >
            <view class="button-example" wx:if="{{items.state == 'WaitPay'}}">
              <button class="button" bindtap="onCancel" data-order-num="{{items.orderNumber}}">取消订单</button>
              <button class="unfollow" bindtap="onPayment" data-order-num="{{items.orderNumber}}">立即支付</button>
              <button
                class="button"
                bindtap="onCancel"
                data-order-num="{{items.orderNumber}}"
              >
                取消订单
              </button>
              <button
                class="unfollow"
                bindtap="onPayment"
                data-order-num="{{items.orderNumber}}"
              >
                立即支付
              </button>
            </view>
            <view wx:if="{{items.state == 'Cancel'}}" class="button-bottem">总计:<text class="price">¥{{items.payPrice}}</text> </view>
            <view wx:if="{{items.state == 'Cancel'}}" class="button-bottem"
              >总计:<text class="price">¥{{items.payPrice}}</text>
            </view>
          </view>
        </view>
      </view>
@@ -64,14 +164,28 @@
        <empty />
      </view>
      <view class="bottom-loading" wx:if="{{bottomLoading}}">
        <t-loading theme="circular" size="40rpx" text="加载中..." class="wrapper" />
        <t-loading
          theme="circular"
          size="40rpx"
          text="加载中..."
          class="wrapper"
        />
      </view>
      <view class="bottom-loading" style="color: #ccc;font-size: 28rpx;" wx:if="{{isMoreData}}">
      <view
        class="bottom-loading"
        style="color: #ccc; font-size: 28rpx"
        wx:if="{{isMoreData}}"
      >
        <text>没有更多了</text>
      </view>
    </scroll-view>
  </view>
</view>
<t-back-top theme="round" wx:if="{{isBackTop}}" text="顶部" bind:to-top="onToTop"></t-back-top>
<t-back-top
  theme="round"
  wx:if="{{isBackTop}}"
  text="顶部"
  bind:to-top="onToTop"
></t-back-top>
<import src="index.skeleton.wxml" />
<template is="skeleton" wx:if="{{skeletonLoding}}" />
pages/cart/paymentPage/index.js
@@ -177,6 +177,10 @@
            item.typeTxt = '云学习'
            item.productType = "图书服务-云学习"
          }
          if (item.orderSaleMethod.cmsItemList.length && item.orderSaleMethod.cmsItemList[0].type == "questionBankFolder") {
            item.typeTxt = '题库'
            item.productType = "图书服务-云测试"
          }
        }
      })
      this.setData({