闫增涛
2025-03-28 abbd7d18ea431ee8b6b8e634abf3e8ccb1fbb1b3
登录迁移
9个文件已修改
495 ■■■■■ 已修改文件
packageBookService/pages/bookServices/detail/components/tree/index.js 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/bookServices/detail/index.js 91 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/bookServices/detail/index.wxml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/components/webView/index.js 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageDomain/pages/resourceDetails/document/index.js 29 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageDomain/pages/resourceDetails/myAudio/index.js 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageDomain/pages/resourceDetails/myVideo/index.js 109 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/digitalCourses/digitalCoursesDetails/components/note/note.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/digitalTextbooks/digitalTextbooksDetails/index.wxml 211 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/bookServices/detail/components/tree/index.js
@@ -227,7 +227,7 @@
          let buyList = []
          if (learn.length) buyList = learn.filter((item) => this.properties.buyIds.includes(item.saleMethod.find((citem) => citem.SaleType == 'Normal').Id))
          // 有父级(包含销售方式),且未购买
          if (learn.length && !buyList.length) return wx.showToast({
          if (learn.length && !buyList.length && !item.freeFile) return wx.showToast({
            icon: 'error',
            title: '请先购买该资源',
          })
@@ -266,7 +266,6 @@
      } else {
        goPlayerFun()
      }
    },
    // 拿到所有项
packageBookService/pages/bookServices/detail/index.js
@@ -1272,12 +1272,6 @@
  // 图书添加购物车
  addBookShopcCar() {
    const token = wx.getStorageSync(app.config.tokenKey);
    if (token) {
      addFun()
    } else {
      this.logInFun(() => {})
    }
    const addFun = async () => {
      if (!this.data.expire) {
        const shoppingCartGetId = [];
@@ -1321,6 +1315,13 @@
        });
      }
    }
    const token = wx.getStorageSync(app.config.tokenKey);
    if (token) {
      addFun()
    } else {
      this.logInFun(() => {})
    }
  },
  showSuccessToast() {
@@ -1796,13 +1797,6 @@
  },
  // 云学习一键领取
  getFreeResource() {
    const child = this.selectComponent("#learn-resource");
    const token = wx.getStorageSync(app.config.tokenKey);
    if (!token) {
      this.logInFun(() => {});
    } else {
      getFreeFun()
    }
    const getFreeFun = async () => {
      // 领取查看 ,先看云学习上的  再看资源上的
      const cloundMenu = this.data.resourceCodeList.find((item) => item.refCode == 'jsek_cloudLearning')
@@ -1871,6 +1865,14 @@
        console.log(error);
      }
    }
    const child = this.selectComponent("#learn-resource");
    const token = wx.getStorageSync(app.config.tokenKey);
    if (!token) {
      this.logInFun(() => {});
    } else {
      getFreeFun()
    }
  },
  // 云学习一键购买
  async allAddShoppiingCar() {
@@ -1924,12 +1926,6 @@
  },
  // 云学习全部购买
  buyCloudLearnClass() {
    const token = wx.getStorageSync(app.config.tokenKey);
    if (token) {
      buyClass()
    } else {
      this.logInFun(() => {})
    }
    const buyClass = async () => {
      const cloundMenu = this.data.resourceCodeList.find((item) => item.refCode == 'jsek_cloudLearning')
      let query = {
@@ -1954,6 +1950,13 @@
        });
      }
    }
    const token = wx.getStorageSync(app.config.tokenKey);
    if (token) {
      buyClass()
    } else {
      this.logInFun(() => {})
    }
  },
  // 变为所有check   true
  findAndUpdateItemsByIds(tree, ids) {
@@ -2251,12 +2254,6 @@
  },
  // 底部购买按钮
  buyBtn() {
    const token = wx.getStorageSync(app.config.tokenKey);
    if (token) {
      buyFun()
    } else {
      this.logInFun(() => {})
    }
    const buyFun = () => {
      if (this.data.tabValue == "brief" && !this.data.bookBuy) {
        this.buyBook();
@@ -2267,6 +2264,13 @@
        console.log(this.data.tabValue);
      }
    }
    const token = wx.getStorageSync(app.config.tokenKey);
    if (token) {
      buyFun()
    } else {
      this.logInFun(() => {})
    }
  },
  goRead(e) {
@@ -2421,12 +2425,6 @@
  //申请电子样书
  appplyElectronicBook() {
    const token = wx.getStorageSync(app.config.tokenKey);
    if (token) {
      applyFun()
    } else {
      this.logInFun(() => {})
    }
    const applyFun = () => {
      // 先判断下教师认证,未对原有逻辑修改
      let role = this.data.userInfo != null ? this.data.userInfo.role : null;
@@ -2534,15 +2532,16 @@
        });
      }
    }
  },
  //申请纸质样书
  appplyPaperBook() {
    const token = wx.getStorageSync(app.config.tokenKey);
    if (token) {
      applyFun()
    } else {
      this.logInFun(() => {})
    }
  },
  //申请纸质样书
  appplyPaperBook() {
    const applyFun = () => {
      let role = this.data.userInfo != null ? this.data.userInfo.role : null;
      if (role && role == "Teacher") {} else {
@@ -2630,6 +2629,13 @@
        });
      }
    }
    const token = wx.getStorageSync(app.config.tokenKey);
    if (token) {
      applyFun()
    } else {
      this.logInFun(() => {})
    }
  },
  //  添加样书
  addBookFun(item, type) {
@@ -2756,14 +2762,6 @@
    return childrenList
  },
  uploadFile(e) {
    const token = wx.getStorageSync(app.config.tokenKey);
    if (token) {
      uploadFun()
    } else {
      this.logInFun(() => {
        uploadFun()
      })
    }
    const uploadFun = () => {
      const userInfo = JSON.parse(wx.getStorageSync(app.config.userInfoKey))
      if (userInfo.role != 'Teacher') return wx.showToast({
@@ -2775,6 +2773,15 @@
        isShowUp: true
      });
    }
    const token = wx.getStorageSync(app.config.tokenKey);
    if (token) {
      uploadFun()
    } else {
      this.logInFun(() => {
        uploadFun()
      })
    }
  },
  closeDialog() {
    this.setData({
packageBookService/pages/bookServices/detail/index.wxml
@@ -394,7 +394,7 @@
      <view class="btn-text">纸质样书申请</view>
    </view>
    <view
      class="{{!bookBuy && bookDetail.isSell ? 'bottom-btn tryRead' : 'bottom-btn try'}}"
      class="{{!bookBuy  ? 'bottom-btn tryRead' : 'bottom-btn try'}}"
      bind:tap="goRead"
      data-type="freeFile"
      wx:if="{{!bookBuy || applicationState == 'overdue'}}"
packageBookService/pages/components/webView/index.js
@@ -24,7 +24,6 @@
   */
  onLoad(options) {
    console.log(options)
    if (options && options.link) {
      this.setData({
        src: decodeURIComponent(options.link),
@@ -43,17 +42,12 @@
      }
    }
    const token = wx.getStorageSync(app.config.tokenKey)
    if (!token) {
      loginInfo(app, (data) => {
        if (data) {
          this.getProgress(options)
        } else {
          this.getProgress(options)
        }
      })
    } else {
    if (token) {
      this.getProgress(options)
    } else {
      this.setWebViewSrc(options);
    }
  },
  onLoadWeb(e) {
packageDomain/pages/resourceDetails/document/index.js
@@ -82,32 +82,13 @@
      deadline: options.deadline,
      formPath: options.formPath,
    })
    const token = wx.getStorageSync(app.config.tokenKey)
    if (!token) {
      loginInfo(app, (data) => {
        if (options.formPath == 'jsek_cloudLearning') {
          this.setData({
            learnStartTime: Date.now(),
          })
          this.getLearnTime()
        }
        this.getBookInfo(this.data.bookId)
        // if (data) {
        //   this.resourceDetailsData()
        // } else {
        //   this.resourceDetailsData()
        // }
    if (options.formPath == 'jsek_cloudLearning') {
      this.setData({
        learnStartTime: Date.now(),
      })
    } else {
      if (options.formPath == 'jsek_cloudLearning') {
        this.setData({
          learnStartTime: Date.now(),
        })
        this.getLearnTime()
      }
      this.getBookInfo(this.data.bookId)
      // this.resourceDetailsData()
      this.getLearnTime()
    }
    this.getBookInfo(this.data.bookId)
  },
  /**
packageDomain/pages/resourceDetails/myAudio/index.js
@@ -116,27 +116,14 @@
        parentName: options.parentName,
      })
    }
    const token = wx.getStorageSync(app.config.tokenKey)
    if (!token) {
      loginInfo(app, (data) => {
        if (data) {
          this.resourceDetailsData()
          this.getNoteList()
        } else {
          this.resourceDetailsData()
          this.getNoteList()
        }
      })
    } else {
      this.resourceDetailsData()
      this.getNoteList()
    }
    if (options.formPath == 'jsek_cloudLearning') {
      this.getNoteList()
      this.setData({
        learnStartTime: Date.now(),
      })
      this.getLearnTime()
    }
    this.resourceDetailsData()
    this.getBookInfo(options.bookId)
  },
@@ -339,11 +326,17 @@
  },
  onTakeNotes() {},
  showDialog(e) {
    this.setData({
      submitTitle: this.data.titleName,
      dialogKey: true,
      textvalue: ''
    });
    const token = wx.getStorageSync(app.config.tokenKey);
    if (token) {
      this.setData({
        submitTitle: this.data.titleName,
        dialogKey: true,
        textvalue: ''
      });
    } else {
      loginInfo(app, (data) => {})
    }
  },
  closeDialog() {
@@ -909,6 +902,8 @@
      })
  },
  setPlayerList() {
    const token = wx.getStorageSync(app.config.tokenKey);
    if (!token) return
    let that = this
    if (that.data.progress > 0) {
      let index = that.data.playerList.findIndex((itemData) => itemData.cmsItemId == that.data.activeId)
packageDomain/pages/resourceDetails/myVideo/index.js
@@ -103,27 +103,13 @@
        parentName: options.parentName,
      })
    }
    const token = wx.getStorageSync(app.config.tokenKey)
    if (!token) {
      loginInfo(app, (data) => {
        if (options.formPath == 'jsek_cloudLearning') {
          this.setData({
            learnStartTime: Date.now(),
          })
          this.getLearnTime()
        }
        this.getBookInfo(this.data.bookId)
    if (options.formPath == 'jsek_cloudLearning') {
      this.setData({
        learnStartTime: Date.now(),
      })
    } else {
      if (options.formPath == 'jsek_cloudLearning') {
        this.setData({
          learnStartTime: Date.now(),
        })
        this.getLearnTime()
      }
      this.getBookInfo(this.data.bookId)
      this.getLearnTime()
    }
    this.getBookInfo(this.data.bookId)
  },
  /**
@@ -319,11 +305,16 @@
  },
  showDialog(e) {
    this.setData({
      dialogKey: true,
      textvalue: '',
      submitTitle: this.data.titleName
    });
    const token = wx.getStorageSync(app.config.tokenKey);
    if (token) {
      this.setData({
        dialogKey: true,
        textvalue: '',
        submitTitle: this.data.titleName
      });
    } else {
      loginInfo(app, (data) => {})
    }
  },
  closeDialog() {
    this.setData({
@@ -370,11 +361,6 @@
        isBuy: res.datas.purchasedSaleMethodIdList.includes(res.datas.defaultSaleMethodId)
      })
      res.datas.cmsDatas[0].datas.forEach((item) => {
        // if (this.data.source == 'qrcode') {
        //   if (item.id == this.data.activeId) {
        //     this.data.threeLeveData.push(item);
        //   }
        // } else {
        if (item.selectType === "video" || item.learnSelectType === "video") {
          if (this.data.storeInfo == 'jsek_digitalCourses') {
            // if (item.sysType == 'CmsItem') this.data.threeLeveData.push(item)
@@ -434,14 +420,26 @@
        this.data.threeLeveData.forEach((items, index) => { // 修改此处添加index参数
          if (this.data.productLinkPath == items.productLinkPath) {
            if (this.data.formPath === "jsek_cloudLearning") {
              const flag = this.cmsItemIsBuy(items)
              let file
              items.protectedFile || items.file ? file = items.protectedFile || items.file : file = items.freeFile
              if (flag) {
                file = items.protectedFile || items.file ? file = items.protectedFile || items.file : file = items.freeFile
              } else {
                if (items.freeFile) {
                  file = items.freeFile
                } else {
                  file = ''
                  wx.showToast({
                    title: '暂无免费资源',
                  })
                }
              }
              this.setData({
                showData: app.config.requestCtx + '/file/api/ApiDownloadForAuthorize?md5=' + file + '&token=' + wx.getStorageSync(app.config.tokenKey),
                titleName: items.name
              })
              debugger
              this.aliVod(file, this.data.showData)
            } else {
              this.setData({
                showData: items.file ? app.config.requestCtx + '/file/api/ApiDownload?md5=' + items.file : app.config.requestCtx + '/file/api/ApiDownload?md5=' + items.freeFile,
@@ -478,23 +476,41 @@
    const item = e.currentTarget.dataset.item
    this.setData({
      videoLoading: true,
      selectedId: e.currentTarget.dataset.index,
      activeId: item.id,
      // showData: '',
      titleName: item.name
    })
    if (item.selectType == "video" || item.learnSelectType === "video") {
      if (this.data.formPath === "jsek_cloudLearning") {
        let file =
          item.protectedFile || item.file ? file = item.protectedFile || item.file : file = item.freeFile
        const flag = this.cmsItemIsBuy(item)
        let file
        if (flag) {
          file =
            item.protectedFile || item.file ? file = item.protectedFile || item.file : file = item.freeFile
        } else {
          if (item.freeFile) {
            file = item.freeFile
          } else {
            file = ''
            this.setData({
              videoLoading: false
            })
            return wx.showToast({
              icon: 'error',
              title: '暂无免费资源',
            })
          }
        }
        this.setData({
          selectedId: e.currentTarget.dataset.index,
          activeId: item.id,
          titleName: item.name,
          showData: app.config.requestCtx + '/file/api/ApiDownloadForAuthorize?md5=' + file + '&token=' + wx.getStorageSync(app.config.tokenKey)
        })
        this.aliVod(file, this.data.showData)
      } else {
        this.setData({
          showData: item.file ? app.config.requestCtx + '/file/api/ApiDownload?md5=' + item.file : app.config.requestCtx + '/file/api/ApiDownload?md5=' + item.freeFile,
          selectedId: e.currentTarget.dataset.index,
          activeId: item.id,
          titleName: item.name
        })
        this.aliVod(item.file, this.data.showData)
      }
@@ -567,6 +583,8 @@
      })
  },
  setPlayerList() {
    const token = wx.getStorageSync(app.config.tokenKey);
    if (!token) return
    let that = this
    if (that.data.progress > 0) {
      let index = that.data.playerList.findIndex((itemData) => itemData.cmsItemId == that.data.activeId)
@@ -844,5 +862,20 @@
    this.setData({
      videoLoading: false
    })
  },
  // 判断当前点击的数据是否购买
  cmsItemIsBuy(item) {
    // 1.this.data.buyIdList 上是否有 cmsItem的linkpath里的id
    const linkData = item.productLinkInfo.find(citem => citem.LinkType == 'Link' && citem.CmsItemId == item.id)
    let linkids = []
    try {
      linkids = linkData.LinkPath.split('\\')
    } catch (error) {}
    if (!this.data.buyIdList.length) return false
    const flag = linkids.some(citem => {
      return this.data.buyIdList.includes(Number(citem))
    })
    console.log(linkids, flag);
    return flag
  }
})
pages/digitalCourses/digitalCoursesDetails/components/note/note.js
@@ -221,7 +221,6 @@
              noteList: [],
            });
          }
        })
      } else {
        getFun()
pages/digitalTextbooks/digitalTextbooksDetails/index.wxml
@@ -3,7 +3,11 @@
<template is="skeleton" wx:if="{{loading}}" />
<view wx:if="{{!loading}}">
  <view class="page-bookService">
    <scroll-view scroll-y="{{true}}" class="book" bindscrolltolower="onReachBottom">
    <scroll-view
      scroll-y="{{true}}"
      class="book"
      bindscrolltolower="onReachBottom"
    >
      <view class="digital">
        <view class="book-box">
          <view class="textbookDetails">
@@ -25,7 +29,9 @@
                </view>
                <view class="styleCssBox">
                  <view style="width: 150rpx"> 编者单位: </view>
                  <view class="authorBox">{{ digitalsData.editorUnit || '-'}}</view>
                  <view class="authorBox"
                    >{{ digitalsData.editorUnit || '-'}}</view
                  >
                </view>
                <view class="styleCssBox">
                  <view style="width: 150rpx">ISBN:</view>
@@ -40,7 +46,10 @@
                  <view>{{ publishingUnit || '-'}}</view>
                </view>
              </view>
              <image src="/static/images/bookService/detail/square.png" class="right-background" />
              <image
                src="/static/images/bookService/detail/square.png"
                class="right-background"
              />
            </view>
          </view>
          <view class="certificate">
@@ -54,7 +63,11 @@
            <view class="information">
              <view class="proposal" bind:tap="onCertificate">
                <view class="suggestion">
                  <image src="/static/images/digitalTextbooks/shengshu-t@2x.png" mode="" class="img" />
                  <image
                    src="/static/images/digitalTextbooks/shengshu-t@2x.png"
                    mode=""
                    class="img"
                  />
                </view>
                <view class="proposalText">证书申请</view>
              </view>
@@ -70,11 +83,26 @@
        </view>
      </view>
      <view class="book-resource">
        <t-tabs defaultValue="{{tabValue}}" bind:change="onTabsChange" bind:click="onTabsClick" t-class="custom-tabs" t-class-content="custom-panel" class="tab-class">
          <t-tab-panel icon="{{ tabValue == 'brief' ? briefIconClick : briefIcon}}" value="brief" label="基本信息">
        <t-tabs
          defaultValue="{{tabValue}}"
          bind:change="onTabsChange"
          bind:click="onTabsClick"
          t-class="custom-tabs"
          t-class-content="custom-panel"
          class="tab-class"
        >
          <t-tab-panel
            icon="{{ tabValue == 'brief' ? briefIconClick : briefIcon}}"
            value="brief"
            label="基本信息"
          >
            <view class="rubricBox">
              <view class="rubricimgBox">
                <image src="/static/images/bookService/detail/label.png" mode="" class="img" />
                <image
                  src="/static/images/bookService/detail/label.png"
                  mode=""
                  class="img"
                />
              </view>
              <view class="basic"> 基本信息</view>
            </view>
@@ -85,41 +113,78 @@
              <empty />
            </view>
          </t-tab-panel>
          <t-tab-panel icon="{{tabValue == 'jsek_cloudLearning' ? learnResourceClickIcon : learnResourceIcon}}" value="jsek_cloudLearning" label="证书信息">
          <t-tab-panel
            icon="{{tabValue == 'jsek_cloudLearning' ? learnResourceClickIcon : learnResourceIcon}}"
            value="jsek_cloudLearning"
            label="证书信息"
          >
            <view class="rubricBox">
              <view class="rubricimgBox">
                <image src="/static/images/digitalTextbooks/zhengshu@2x.png" mode="" class="img" />
                <image
                  src="/static/images/digitalTextbooks/zhengshu@2x.png"
                  mode=""
                  class="img"
                />
              </view>
              <view class="basic"> 证书信息</view>
            </view>
            <view class="certificateChart">
              <view class="chart" bind:tap="onClick1">
                <image src="https://jsek.bnuic.com/home/certificate/szjc.jpg" mode="" class="img" />
              <view class="chart" bind:tap="onClick1">
                <image
                  src="https://jsek.bnuic.com/home/certificate/szjc.jpg"
                  mode=""
                  class="img"
                />
              </view>
              <view class="chart" bind:tap="onClick2">
                <image src="https://jsek.bnuic.com/home/certificate/jczs.jpg" mode="" class="img" />
                <image
                  src="https://jsek.bnuic.com/home/certificate/jczs.jpg"
                  mode=""
                  class="img"
                />
              </view>
            </view>
          </t-tab-panel>
          <t-tab-panel icon="{{tabValue == 'jsek_teachingResources' ? teachResourcesClickIcon : teachResourcesIcon}}" value="jsek_teachingResources" label="作者信息">
          <t-tab-panel
            icon="{{tabValue == 'jsek_teachingResources' ? teachResourcesClickIcon : teachResourcesIcon}}"
            value="jsek_teachingResources"
            label="作者信息"
          >
            <view class="rubricBox">
              <view class="rubricimgBox">
                <image src="/static/images/bookService/detail/author.png" mode="" class="img" />
                <image
                  src="/static/images/bookService/detail/author.png"
                  mode=""
                  class="img"
                />
              </view>
              <view class="basic"> 作者信息</view>
            </view>
            <view class="basic-content" wx:if="{{digitalsData.authorIntroduction}}">
              <rich-text nodes="{{digitalsData.authorIntroduction}}"></rich-text>
            <view
              class="basic-content"
              wx:if="{{digitalsData.authorIntroduction}}"
            >
              <rich-text
                nodes="{{digitalsData.authorIntroduction}}"
              ></rich-text>
            </view>
            <view class="noDataBox" wx:else>
              <!-- <t-empty icon="folder-open" description="暂无数据" font-size="80" /> -->
              <empty />
            </view>
          </t-tab-panel>
          <t-tab-panel icon="{{tabValue == 'catalogue' ? catalogueClickIcon : catalogue}}" value="catalogue" label="目录">
          <t-tab-panel
            icon="{{tabValue == 'catalogue' ? catalogueClickIcon : catalogue}}"
            value="catalogue"
            label="目录"
          >
            <view class="rubricBox">
              <view class="rubricimgBox">
                <image src="/static/images/digitalTextbooks/mulu@3x.png" mode="" class="img" />
                <image
                  src="/static/images/digitalTextbooks/mulu@3x.png"
                  mode=""
                  class="img"
                />
              </view>
              <view class="basic"> 目录</view>
            </view>
@@ -131,10 +196,18 @@
              <empty />
            </view>
          </t-tab-panel>
          <t-tab-panel icon="{{tabValue == 'questionBank' ? testResourceClickIocn : testResourceIocn}}" value="questionBank" label="相关教材">
          <t-tab-panel
            icon="{{tabValue == 'questionBank' ? testResourceClickIocn : testResourceIocn}}"
            value="questionBank"
            label="相关教材"
          >
            <view class="rubricBox">
              <view class="rubricimgBox">
                <image src="/static/images/digitalTextbooks/Link@3x.png" mode="" class="img" />
                <image
                  src="/static/images/digitalTextbooks/Link@3x.png"
                  mode=""
                  class="img"
                />
              </view>
              <view class="basic"> 相关教材</view>
            </view>
@@ -142,10 +215,23 @@
              <empty />
            </view>
            <view class="correlation" wx:else>
              <view style="margin-bottom: 30rpx" wx:for="{{relatedBookData}}" wx:key="index" wx:for-item="item" wx:for-index="index" data-item="{{item}}" bind:tap="onCorrelationBook">
              <view
                style="margin-bottom: 30rpx"
                wx:for="{{relatedBookData}}"
                wx:key="index"
                wx:for-item="item"
                wx:for-index="index"
                data-item="{{item}}"
                bind:tap="onCorrelationBook"
              >
                <view class="correlationImage">
                  <image src="{{item.icon}}" mode="" class="img" />
                  <img wx:if="{{item.icon == ''}}" src="/static/images/default-book-img.png" alt="" class="img" />
                  <img
                    wx:if="{{item.icon == ''}}"
                    src="/static/images/default-book-img.png"
                    alt=""
                    class="img"
                  />
                </view>
                <view class="correlationName">{{item.name}}</view>
                <view class="correlationAuthor">{{digitalsData.author}}</view>
@@ -159,21 +245,53 @@
    <view class="box-bottom">
      <view class="collection" bind:tap="setCoolect">
        <view class="collectionImage">
          <image wx:if="{{!digitalsData.isFavourite}}" src="/static/images/digitalTextbooks/wodeshoucang@2x.png" mode="" class="img" />
          <image wx:else src="/static/images/bookService/detail/collecting.png" mode="" class="img" />
          <image
            wx:if="{{!digitalsData.isFavourite}}"
            src="/static/images/digitalTextbooks/wodeshoucang@2x.png"
            mode=""
            class="img"
          />
          <image
            wx:else
            src="/static/images/bookService/detail/collecting.png"
            mode=""
            class="img"
          />
        </view>
        <view class="btn-text"> 收藏 </view>
      </view>
      <view class="trialReading" bind:tap="goRead" wx:if="{{!isBuy}}">
      <view class="trialReading" bind:tap="goRead">
        <view class="collectionImage">
          <image src="/static/images/digitalTextbooks/shidu@2x.png" class="img"></image>
          <image
            src="/static/images/digitalTextbooks/shidu@2x.png"
            class="img"
          ></image>
        </view>
        <view class="btn-text">试读</view>
      </view>
      <view class="shopCarColor" bind:tap="addBookShopcCar" wx:if="{{!isBuy &&digitalsData.price != 0 }}">加入购物车</view>
      <view class="buyColor" bind:tap="buyBtn" wx:if="{{!isBuy && digitalsData.price != 0}}">立即购买</view>
      <view class="buyColor receive" bind:tap="buyBtn" wx:if="{{!isBuy && digitalsData.price == 0.00}}">免费领取</view>
      <view class="{{!isBuy ? 'buyColor' :'reading'}}" bind:tap="goRead" wx:if="{{isBuy}}">
      <view
        class="shopCarColor"
        bind:tap="addBookShopcCar"
        wx:if="{{!isBuy &&digitalsData.price != 0 }}"
        >加入购物车</view
      >
      <view
        class="buyColor"
        bind:tap="buyBtn"
        wx:if="{{!isBuy && digitalsData.price != 0}}"
        >立即购买</view
      >
      <view
        class="buyColor receive"
        bind:tap="buyBtn"
        wx:if="{{!isBuy && digitalsData.price == 0.00}}"
        >免费领取</view
      >
      <view
        class="{{!isBuy ? 'buyColor' :'reading'}}"
        bind:tap="goRead"
        wx:if="{{isBuy}}"
      >
        立即阅读
      </view>
    </view>
@@ -188,15 +306,29 @@
      <view class="row-info">
        <view class="body">
          <view class="dialog-title">学习证书申请</view>
          <view style="width: 100%; height: 2rpx; background-color: #f4f4f4"></view>
          <view
            style="width: 100%; height: 2rpx; background-color: #f4f4f4"
          ></view>
          <view class="input-box">
            <t-input class="input" borderless placeholder="请输入真实姓名" value="{{userInfo.fullName}}" bind:change="onFullNameInput"></t-input>
            <t-input
              class="input"
              borderless
              placeholder="请输入真实姓名"
              value="{{userInfo.fullName}}"
              bind:change="onFullNameInput"
            ></t-input>
          </view>
          <view class="contentImg">
            <image src="{{userInfo.userPicture}}" mode="aspectFill" class="img" />
            <image
              src="{{userInfo.userPicture}}"
              mode="aspectFill"
              class="img"
            />
          </view>
          <view class="buttonBox">
            <t-button size="small" class="right-btn" bind:tap="uploadPicture">上传照片</t-button>
            <t-button size="small" class="right-btn" bind:tap="uploadPicture"
              >上传照片</t-button
            >
          </view>
        </view>
        <view class="row-btn">
@@ -207,6 +339,13 @@
    </view>
  </view>
</view>
<t-image-viewer deleteBtn="{{deleteBtn}}" closeBtn="{{closeBtn}}" showIndex="{{showIndex}}" visible="{{visible}}" images="{{images}}" bind:close="onClose"></t-image-viewer>
<t-image-viewer
  deleteBtn="{{deleteBtn}}"
  closeBtn="{{closeBtn}}"
  showIndex="{{showIndex}}"
  visible="{{visible}}"
  images="{{images}}"
  bind:close="onClose"
></t-image-viewer>
<t-toast id="t-toast" />
<t-toast id="t-toast" />