zhongshujie
2024-12-18 5dcba93841a0dadb81a74b55062e440af20ad9d3
Merge refs/remotes/origin/master into refs/heads/master
10个文件已修改
610 ■■■■■ 已修改文件
assets/js/middleGround/api/identity.js 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/bookServices/examination/components/joinGroupDialog/index.wxml 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/bookServices/examination/components/joinGroupDialog/index.wxss 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageBookService/pages/bookServices/examination/examination.js 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageCourse/pages/course/index.js 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageCourse/pages/course/index.wxml 60 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
packageCourse/pages/course/index.wxss 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/digitalCourses/digitalCoursesDetails/index.wxml 473 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/digitalCourses/digitalCoursesDetails/index.wxss 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/scanResult/index.js 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
assets/js/middleGround/api/identity.js
@@ -225,6 +225,23 @@
      data
    })
  },
  // 更新组成员或班级成员状态
  updateAppUserGroupLink(data) {
    return request({
      url: '/identity/api/ApiUpdateAppUserGroupLink',
      method: 'post',
      data
    })
  },
  // 删除组成员或班级成员状态
  removeAppUserFromGroup(data) {
    return request({
      url: '/identity/api/ApiRemoveAppUserFromGroup',
      method: 'post',
      data
    })
  }
};
export default identityApi;
packageBookService/pages/bookServices/examination/components/joinGroupDialog/index.wxml
@@ -16,12 +16,11 @@
        bind:change="onChangeRadio"
      />
      <view class="phone-input">
        <t-input
        <input
          value="{{inputvalue}}"
          placeholder="请输入班级邀请码"
          bind:change="inputChange"
          type="number"
          maxlength="{{11}}"
          type="text"
          class="phone"
          style="{{inputStyle}}"
        />
@@ -42,5 +41,5 @@
        >确认</t-button
      >
    </view>
  </view></view
>
  </view>
</view>
packageBookService/pages/bookServices/examination/components/joinGroupDialog/index.wxss
@@ -174,6 +174,10 @@
  font-size: 28rpx;
}
.phone {
  height: 82rpx;
}
/* .t-radio__border {
  position: absolute;
  height: 0;
packageBookService/pages/bookServices/examination/examination.js
@@ -2332,10 +2332,14 @@
  },
  // 加入班级
  joinClass(e) {
    wx.showLoading({
      title: '加载中'
    })
    const data = {
      refCode: e.detail.value
    }
    app.MG.identity.joinGroupByRefCode(data).then((res) => {
      wx.hideLoading()
      if (res == '组不存在') {
        wx.showToast({
          icon: 'error',
packageCourse/pages/course/index.js
@@ -114,7 +114,7 @@
            ...item,
            name: item.name,
            id: item.id,
            icon: item.icon && item.icon != 'default' ? getPublicImage(item.icon, 80) : '',
            icon: item.icon && item.icon != 'default' ? getPublicImage(item.icon, 200) : '',
            introduction: item.description,
            reason: item.applyReturnMsg ? JSON.parse(item.applyReturnMsg).reason : '-'
          }
@@ -162,7 +162,7 @@
        const list = res.datas.map((item) => {
          return {
            ...item,
            icon: item.product.icon ? getPublicImage(item.product.icon, 80) : ''
            icon: item.product.icon ? getPublicImage(item.product.icon, 200) : ''
          }
        })
        this.setData({
@@ -209,8 +209,11 @@
  // 单选选择课本
  onChange(e) {
    const {
      index
    } = e.currentTarget.dataset
    this.setData({
      radioVal: e.detail.value
      radioVal: index
    });
  },
@@ -275,7 +278,10 @@
      .then((res) => {
        if (res) {
          this.setData({
            visible: false
            visible: false,
            selectedBook: null,
            courseDesc: '',
            courseName: ''
          })
          this.getData()
        }
packageCourse/pages/course/index.wxml
@@ -56,34 +56,6 @@
        <view class="selectBox">
          <text>选择教材</text>
          <t-button style="margin: 0;" bindtap="selectedBook" icon="add" content="选择教材" size="extra-small"></t-button>
          <t-popup visible="{{visibleCart}}" style="top: 0;" usingCustomNavbar show-overlay="{{true}}" placement="right">
            <view class="cartTilte">
              <text class="cartText">选择教材</text>
              <t-search value="{{selectName}}" bind:clear="changeHandleBook" bind:submit="changeHandleBook" placeholder="搜索教材名称" clearable />
            </view>
            <view class="cartBox">
              <view class="cartList" wx:if="{{cartList.length > 0}}">
                <t-radio-group t-class="theme-card" value="{{radioVal}}" allow-uncheck bind:change="onChange">
                  <view wx:for="{{cartList}}" wx:key="index" class="card {{radioVal == index ? 'card--active' : ''}}">
                    <t-icon wx:if="{{radioVal == index}}" name="check" t-class="card__icon" />
                    <t-radio value="{{index}}" label="{{item.product.name}}" icon="none" borderless>
                      <view class="radioCon" slot='content'>
                        <image wx:if="{{item.icon}}" class="radioIcon" src="{{item.icon}}" mode="widthFix" />
                        <image wx:else class="radioIcon" src="/static/images/default-book-img.png" mode="widthFix" />
                      </view>
                    </t-radio>
                  </view>
                </t-radio-group>
              </view>
              <view wx:else>
                <empty />
              </view>
            </view>
            <view class="radioSubmit">
              <t-button style="margin: 0;" size="extra-small" bindtap="radioCancle" variant="outline">关闭</t-button>
              <t-button style="margin: 0 16px;" size="extra-small" bindtap="radioSubmit">确认</t-button>
            </view>
          </t-popup>
        </view>
        <view class="selectedBook">
          <view class="selectTitle">已选教材</view>
@@ -114,6 +86,38 @@
      </view>
    </view>
    <t-toast id="t-toast" />
    <t-popup visible="{{visibleCart}}" style="top: 0;" usingCustomNavbar placement="right">
      <view class="wall">
        <view class="cartTilte">
          <text class="cartText">选择教材</text>
          <t-search value="{{selectName}}" bind:clear="changeHandleBook" bind:submit="changeHandleBook" placeholder="搜索教材名称" clearable />
        </view>
        <view class="cartBox">
          <view class="cartList" wx:if="{{cartList.length > 0}}">
            <scroll-view class="scroll" class="content" scroll-y bindrefresherpulling="{{refresh.onPulling}}">
              <view wx:for="{{cartList}}" bindtap="onChange" data-index="{{index}}" wx:key="index" class="card {{radioVal == index ? 'card--active' : ''}}">
                <t-icon wx:if="{{radioVal == index}}" name="check" t-class="card__icon" />
                <t-radio value="{{index}}" label="{{item.product.name}}" icon="none" borderless>
                  <view class="radioCon" slot='content'>
                    <image wx:if="{{item.icon}}" class="radioIcon" src="{{item.icon}}" mode="aspectFit" />
                    <image wx:else class="radioIcon" src="/static/images/default-book-img.png" mode="aspectFit" />
                  </view>
                </t-radio>
              </view>
            </scroll-view>
          </view>
          <view wx:else>
            <empty />
          </view>
          <!-- </t-radio-group> -->
        </view>
        <view class="radioSubmit">
          <t-button style="margin: 0;" size="extra-small" bindtap="radioCancle" variant="outline">关闭</t-button>
          <t-button style="margin: 0 16px;" size="extra-small" bindtap="radioSubmit">确认</t-button>
        </view>
      </view>
    </t-popup>
  </t-popup>
</view>
packageCourse/pages/course/index.wxss
@@ -223,11 +223,15 @@
  height: 200rpx;
}
.cartBox {
.wall {
  width: 85vw;
  height: calc(100vh - env(safe-area-inset-bottom) - 80px);
  height: 100vh;
}
.cartBox {
  width: 100%;
  height: calc(100% - env(safe-area-inset-bottom) - 80px);
  border: 1px solid #f8f8f8;
  overflow: auto;
  padding: 0 20rpx;
  box-sizing: border-box;
}
@@ -248,6 +252,11 @@
  border-color: var(--td-brand-color, #ff6d00) transparent transparent transparent;
}
.cartList {
  height: 100%;
  overflow: auto;
}
.radioSubmit {
  height: 40px;
  border-bottom: 1rpx solid #f8f8f8;
@@ -265,6 +274,7 @@
  height: 40px;
  padding: 20rpx;
  box-sizing: border-box;
  font-size: 24rpx;
}
.cartText {
@@ -318,7 +328,7 @@
  z-index: 1;
}
.courseBook .t-radio {
.contentBox .t-radio {
  font-size: 26rpx !important;
}
pages/digitalCourses/digitalCoursesDetails/index.wxml
@@ -6,10 +6,7 @@
      <view class="book-box">
        <view class="digitalCoursesDetailsTitle">
          <view class="imageBox">
            <image
              src="{{digitalsData.icon ? digitalsData.icon : 'https://jsek.bnuic.com/home/image/courseIcon.png'}}"
              mode="aspectFit"
            />
            <image src="{{digitalsData.icon ? digitalsData.icon : 'https://jsek.bnuic.com/home/image/courseIcon.png'}}" mode="aspectFit" />
          </view>
          <view class="nameBox">{{digitalsData.name}}</view>
          <view>
@@ -42,64 +39,35 @@
            </viwe>
            <viwe class="styleCssBox">
              <view style="width: 200rpx">出版时间:</view>
              <view wx:if="{{digitalsData.publicationDate}}"
                >{{digitalsData.publicationDate}}
              <view wx:if="{{digitalsData.publicationDate}}">{{digitalsData.publicationDate}}
              </view>
              <view wx:else>-</view>
            </viwe>
            <image
              src="/static/images/bookService/detail/square.png"
              mode="aspectFit"
              class="right-background"
            />
            <image src="/static/images/bookService/detail/square.png" mode="aspectFit" class="right-background" />
          </view>
        </view>
        <view class="certificate">
          <view style="margin-left: 30rpx"
            >价格:
            <text
              >{{digitalsData.price != '0.00' ? '¥' + digitalsData.price :
              '免费' }}</text
            >
            <text class="old-price" wx:if="{{digitalsData.oldPrice != '0.00'}}"
              >¥{{ digitalsData.oldPrice }}</text
            >
          <view style="margin-left: 30rpx">价格:
            <text>{{digitalsData.price != '0.00' ? '¥' + digitalsData.price :
              '免费' }}</text>
            <text class="old-price" wx:if="{{digitalsData.oldPrice != '0.00'}}">¥{{ digitalsData.oldPrice }}</text>
          </view>
          <view style="margin-right: 30rpx"
            >共<text
              >{{ digitalsData.classHours ? digitalsData.classHours :
              '0'}}</text
            >课时</view
          >
          <view style="margin-right: 30rpx">共<text>{{ digitalsData.classHours ? digitalsData.classHours :
              '0'}}</text>课时</view>
        </view>
      </view>
    </view>
    <view class="tabBox">
      <t-tabs
        defaultValue="{{tabValue}}"
        bind:change="onTabsChange"
        t-class="custom-tabs"
        t-class-content="custom-panel"
      >
        <t-tab-panel
          icon="{{ tabValue == '0' ? briefIconClick : briefIcon}}"
          label="基本信息"
          value="0"
        >
      <t-tabs defaultValue="{{tabValue}}" bind:change="onTabsChange" t-class="custom-tabs" t-class-content="custom-panel">
        <t-tab-panel icon="{{ tabValue == '0' ? briefIconClick : briefIcon}}" label="基本信息" value="0">
          <view class="rubricBox">
            <view class="rubricimgBox">
              <image
                src="/static/images/bookService/detail/label.png"
                mode="aspectFit"
              />
              <image src="/static/images/bookService/detail/label.png" mode="aspectFit" />
            </view>
            <view class="basic"> 课程介绍</view>
          </view>
          <view class="course-content">
            <rich-text
              wx:if="{{digitalsData.content}}"
              nodes="{{digitalsData.content}}"
            ></rich-text>
            <rich-text wx:if="{{digitalsData.content}}" nodes="{{digitalsData.content}}"></rich-text>
            <view wx:else="" class="noDataBox">
              <!-- <t-empty icon="folder-open" description="暂无数据" font-size="80" /> -->
              <empty />
@@ -107,42 +75,22 @@
          </view>
          <view class="rubricBox">
            <view class="rubricimgBox">
              <image
                src="/static/images/bookService/detail/label.png"
                mode="aspectFit"
              />
              <image src="/static/images/bookService/detail/label.png" mode="aspectFit" />
            </view>
            <view class="basic"> 主讲老师</view>
          </view>
          <view class="course-content" wx:if="{{lecturerList.length> 0}}">
            <view
              class="lecturer"
              wx:for="{{lecturerList}}"
              wx:key="index"
              wx:for-item="item"
            >
            <view class="lecturer" wx:for="{{lecturerList}}" wx:key="index" wx:for-item="item">
              <view class="lecturerImangBox">
                <image
                  src="{{item.icon}}"
                  mode="aspectFit"
                  wx:if="{{item.icon}}"
                />
                <image
                  src="/static/images/lecturer.png"
                  mode="aspectFit"
                  wx:else
                />
                <image src="{{item.icon}}" mode="aspectFit" wx:if="{{item.icon}}" />
                <image src="/static/images/lecturer.png" mode="aspectFit" wx:else />
              </view>
              <view class="lecturerInformation">
                <view class="lecturerName">
                  <view class="name">
                    {{item.name}}
                    <text
                      class="positionalTitle"
                      wx:if="{{item.positionalTitle}}"
                      >({{item.positionalTitle}})</text
                    ></view
                  >
                    <text class="positionalTitle" wx:if="{{item.positionalTitle}}">({{item.positionalTitle}})</text>
                  </view>
                </view>
                <view class="lecturerContent">{{item.description}}</view>
              </view>
@@ -152,79 +100,45 @@
            <empty />
          </view>
        </t-tab-panel>
        <t-tab-panel
          icon="{{ tabValue == '1' ?  learnResourceClickIcon : learnResourceIcon}}"
          label="证书信息"
          value="1"
        >
        <t-tab-panel icon="{{ tabValue == '1' ?  learnResourceClickIcon : learnResourceIcon}}" label="证书信息" value="1">
          <view class="rubricBox">
            <view class="rubricimgBox">
              <image
                src="/static/images/digitalTextbooks/zhengshu@2x.png"
                mode="aspectFit"
              />
              <image src="/static/images/digitalTextbooks/zhengshu@2x.png" mode="aspectFit" />
            </view>
            <view class="basic"> 证书信息</view>
          </view>
          <view class="course-content">
            <view class="certificateChart">
              <view class="chart" bind:tap="onClick1">
                <t-image src="{{cbzsImg}}" mode="" class="chartImage"/>
                <t-image src="{{cbzsImg}}" mode="" class="chartImage" />
              </view>
              <view class="chart" bind:tap="onClick2">
                <t-image src="{{rzzsImg}}" mode="" class="chartImage"/>
                <t-image src="{{rzzsImg}}" mode="" class="chartImage" />
              </view>
            </view>
          </view>
        </t-tab-panel>
        <t-tab-panel
          icon="{{ tabValue == '2' ? courseLearningClick : courseLearning}}"
          label="课程学习"
          value="2"
        >
        <t-tab-panel icon="{{ tabValue == '2' ? courseLearningClick : courseLearning}}" label="课程学习" value="2">
          <view class="course-content">
            <view class="tabsSelect">
              <view
                class="{{selectActive == 'learn' ? 'tabs-item selectActive' : 'tabs-item'}}"
                bind:tap="selectChange"
                data-value="{{'learn'}}"
                >学习内容</view
              >
              <view
                class="{{selectActive == 'test' ? 'tabs-item selectActive' : 'tabs-item'}}"
                bind:tap="selectChange"
                data-value="{{'test'}}"
                >在线测试</view
              >
              <view class="{{selectActive == 'learn' ? 'tabs-item selectActive' : 'tabs-item'}}" bind:tap="selectChange" data-value="{{'learn'}}">学习内容</view>
              <view class="{{selectActive == 'test' ? 'tabs-item selectActive' : 'tabs-item'}}" bind:tap="selectChange" data-value="{{'test'}}">在线测试</view>
            </view>
            <view class="list-box">
              <view wx:if="{{selectActive == 'learn'}}">
                <view wx:if="{{relationTextBook}}" class="textBook">
                  <view class="textTile">
                    <image
                      src="/static/images/bookService/detail/shuzijiaocai.png"
                      mode=""
                      class="leftImg"
                    />
                    <image src="/static/images/bookService/detail/shuzijiaocai.png" mode="" class="leftImg" />
                    <view>数字教材</view>
                  </view>
                  <view class="reabtn" bind:tap="readTextBook">
                    <image
                      src="/static/images/digitalCourses/shidu@2x.png"
                      class="readImage"
                    ></image>
                    <image src="/static/images/digitalCourses/shidu@2x.png" class="readImage"></image>
                    <view>{{isTextBookBuy ? '阅读' : '试看'}}</view>
                  </view>
                </view>
                <view wx:if="{{learnList.length > 0}}">
                  <tree
                    id="test-tree"
                    openIds="{{openTeachids}}"
                    bookInfo="{{digitalsData}}"
                    treeList="{{learnList}}"
                    isBuy="{{isBuy}}"
                  >
                  <tree id="test-tree" openIds="{{openTeachids}}" bookInfo="{{digitalsData}}" treeList="{{learnList}}" isBuy="{{isBuy}}">
                  </tree>
                </view>
                <view wx:if="{{learnList.length == 0}}" class="noData">
@@ -235,44 +149,21 @@
                <view class="testBtnBox">
                  <view class="textTile">共{{testCount}}个</view>
                  <view class="note-btn">
                    <t-button
                      theme="primary"
                      class="make-note"
                      bind:tap="goMycollect"
                      data-answerType="errorQuestion"
                      style="width: 220rpx"
                    >
                    <t-button theme="primary" class="make-note" bind:tap="goMycollect" data-answerType="errorQuestion" style="width: 220rpx">
                      <view slot="content" class="btn-content">
                        <image
                          src="/static/images/bookService/detail/cuoti.png"
                        />
                        <image src="/static/images/bookService/detail/cuoti.png" />
                        <text class="note-btn-text">我的错题</text>
                      </view>
                    </t-button>
                    <t-button
                      theme="primary"
                      class="make-note"
                      bind:tap="goMycollect"
                      data-answerType="collectQuestion"
                      style="width: 220rpx; margin-left: 10rpx"
                    >
                    <t-button theme="primary" class="make-note" bind:tap="goMycollect" data-answerType="collectQuestion" style="width: 220rpx; margin-left: 10rpx">
                      <view slot="content" class="btn-content">
                        <image
                          src="/static/images/bookService/detail/wodeshoucang.png"
                        />
                        <image src="/static/images/bookService/detail/wodeshoucang.png" />
                        <text class="note-btn-text">我的收藏</text>
                      </view>
                    </t-button>
                  </view>
                </view>
                <testTree
                  id="tree"
                  openIds="{{openTeachids}}"
                  bookInfo="{{digitalsData}}"
                  tab="{{tab}}"
                  treeList="{{testList}}"
                  isBuy="{{isBuy}}"
                ></testTree>
                <testTree id="tree" openIds="{{openTeachids}}" bookInfo="{{digitalsData}}" tab="{{tab}}" treeList="{{testList}}" isBuy="{{isBuy}}"></testTree>
                <view wx:if="{{testList.length == 0}}" class="noData">
                  <empty />
                </view>
@@ -280,17 +171,9 @@
            </view>
          </view>
        </t-tab-panel>
        <t-tab-panel
          icon="{{ tabValue == '3' ? learningNotesClick : learningNotes}}"
          label="学习笔记"
          value="3"
        >
        <t-tab-panel icon="{{ tabValue == '3' ? learningNotesClick : learningNotes}}" label="学习笔记" value="3">
          <view class="course-content">
            <note
              bookInfo="{{digitalsData}}"
              id="note"
              class="note-list"
            ></note>
            <note bookInfo="{{digitalsData}}" id="note" class="note-list"></note>
            <!-- <view class="topBox">
              <view></view>
              <view class="note-btn">
@@ -304,17 +187,9 @@
            </view> -->
          </view>
        </t-tab-panel>
        <t-tab-panel
          icon="{{ tabValue == '4' ? onlineQuestioningClick : onlineQuestioning}}"
          label="在线提问"
          value="4"
        >
        <t-tab-panel icon="{{ tabValue == '4' ? onlineQuestioningClick : onlineQuestioning}}" label="在线提问" value="4">
          <view class="course-content">
            <question
              bookInfo="{{digitalsData}}"
              id="question"
              class="note-list"
            ></question>
            <question bookInfo="{{digitalsData}}" id="question" class="note-list"></question>
            <!-- <view class="topBox">
              <view>共{{questionTotalCount}}个</view>
              <view class="note-btn">
@@ -344,18 +219,10 @@
            </view> -->
          </view>
        </t-tab-panel>
        <t-tab-panel
          icon="{{tabValue == '5' ? testResourceClickIocn : testResourceIocn}}"
          value="5"
          label="相关课程"
          style="{{tabPanelstyle}}"
        >
        <t-tab-panel icon="{{tabValue == '5' ? testResourceClickIocn : testResourceIocn}}" value="5" label="相关课程" style="{{tabPanelstyle}}">
          <view class="rubricBox">
            <view class="rubricimgBox">
              <image
                src="/static/images/digitalTextbooks/Link@3x.png"
                mode="aspectFit"
              />
              <image src="/static/images/digitalTextbooks/Link@3x.png" mode="aspectFit" />
            </view>
            <view class="basic"> 相关课程</view>
          </view>
@@ -363,22 +230,10 @@
            <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="aspectFit" />
                <img
                  wx:if="{{item.icon == ''}}"
                  src="/static/images/default-book-img.png"
                  alt=""
                />
                <img wx:if="{{item.icon == ''}}" src="/static/images/default-book-img.png" alt="" />
              </view>
              <view class="correlationName">{{item.name}}</view>
              <view class="correlationAuthor">{{digitalsData.author}}</view>
@@ -387,52 +242,28 @@
        </t-tab-panel>
      </t-tabs>
    </view>
    <view class="box-bottom">
      <view class="bottom-btn" bind:tap="setCoolect">
        <view class="collectionImage">
          <image
            wx:if="{{!digitalsData.isFavourite}}"
            src="/static/images/digitalTextbooks/wodeshoucang@2x.png"
          />
          <image
            wx:else
            src="/static/images/bookService/detail/collecting.png"
          />
        </view>
        <view class="btn-text"> 收藏 </view>
      </view>
      <view
        class="bottom-btn"
        bind:tap="onCertificate"
        wx:if="{{!isCertificate.state || isCertificate.state == 'Reject'}}"
      >
        <view class="applicationImageBox">
          <image src="/static/images/digitalCourses/zhengshushenqing@2x.png" />
        </view>
        <view class="btn-text">证书申请</view>
      </view>
      <view
        class="bottom-btn shopCarColor"
        bind:tap="addBookShopcCar"
        wx:if="{{!isBuy && digitalsData.price != '0.00' }}"
        >加入购物车</view
      >
      <view
        class="bottom-btn buyColor"
        bind:tap="buyBtn"
        wx:if="{{!isBuy &&  digitalsData.price != '0.00'}}"
        >立即购买</view
      >
      <view
        class="bottom-btn buyColor"
        bind:tap="buyBtn"
        wx:if="{{!isBuy &&  digitalsData.price == '0.00'}}"
      >
        免费领取</view
      >
    </view>
    <t-toast id="t-toast" />
  </scroll-view>
  <view class="box-bottom">
    <view class="bottom-btn" bind:tap="setCoolect">
      <view class="collectionImage">
        <image wx:if="{{!digitalsData.isFavourite}}" src="/static/images/digitalTextbooks/wodeshoucang@2x.png" />
        <image wx:else src="/static/images/bookService/detail/collecting.png" />
      </view>
      <view class="btn-text"> 收藏 </view>
    </view>
    <view class="bottom-btn" bind:tap="onCertificate" wx:if="{{!isCertificate.state || isCertificate.state == 'Reject'}}">
      <view class="applicationImageBox">
        <image src="/static/images/digitalCourses/zhengshushenqing@2x.png" />
      </view>
      <view class="btn-text">证书申请</view>
    </view>
    <view class="bottom-btn shopCarColor" bind:tap="addBookShopcCar" wx:if="{{!isBuy && digitalsData.price != '0.00' }}">加入购物车</view>
    <view class="bottom-btn buyColor" bind:tap="buyBtn" wx:if="{{!isBuy &&  digitalsData.price != '0.00'}}">立即购买</view>
    <view class="bottom-btn buyColor" bind:tap="buyBtn" wx:if="{{!isBuy &&  digitalsData.price == '0.00'}}">
      免费领取</view>
  </view>
</view>
<!-- 弹窗 -->
<view wx:if="{{dialogBox}}">
@@ -442,25 +273,15 @@
      <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" />
          </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">
@@ -472,159 +293,53 @@
  </view>
</view>
<canvas canvas-id="myCanvas" class="myCanvas" style="height: 845px; width: 595px" wx:if="{{pubCertificateHide}}"></canvas>
<view
  id="pubCertificate"
  class="my_canvas"
  wx:if="{{pubCertificateHide}}"
>
<view id="pubCertificate" class="my_canvas" wx:if="{{pubCertificateHide}}">
  <view class="pubCon">
    <image
      data-type="image"
      data-url="https://jsek.bnuic.com/home/certificate/szkc.jpg"
      src="https://jsek.bnuic.com/home/certificate/szkc.jpg"
      mode=""
      class="bgImg my_draw_canvas"
    />
    <image data-type="image" data-url="https://jsek.bnuic.com/home/certificate/szkc.jpg" src="https://jsek.bnuic.com/home/certificate/szkc.jpg" mode="" class="bgImg my_draw_canvas" />
    <view class="certificateInfo my_draw_canvas">
      <view
        class="bookName my_draw_canvas"
        data-type="text"
        data-text="{{digitalsData.name}}"
        >{{digitalsData.name}}</view
      >
      <view
        class="author my_draw_canvas"
        data-type="text"
        data-text="{{digitalsData.courseLeader}}"
        >{{digitalsData.courseLeader || '-' }}</view
      >
      <view
        class="affiliatedUnit my_draw_canvas"
        data-type="text"
        data-text="{{digitalsData.affiliatedUnit}}"
        >{{digitalsData.affiliatedUnit || '-'}}</view
      >
      <view
        class="affiliatedUnit my_draw_canvas"
        data-type="text"
        data-text="{{digitalsData.isbn}}"
      >
      <view class="bookName my_draw_canvas" data-type="text" data-text="{{digitalsData.name}}">{{digitalsData.name}}</view>
      <view class="author my_draw_canvas" data-type="text" data-text="{{digitalsData.courseLeader}}">{{digitalsData.courseLeader || '-' }}</view>
      <view class="affiliatedUnit my_draw_canvas" data-type="text" data-text="{{digitalsData.affiliatedUnit}}">{{digitalsData.affiliatedUnit || '-'}}</view>
      <view class="affiliatedUnit my_draw_canvas" data-type="text" data-text="{{digitalsData.isbn}}">
        {{ digitalsData.isbn || '-'}}
      </view>
      <view
        class="affiliatedUnit my_draw_canvas"
        data-type="text"
        data-text="{{digitalsData.publicationDate}}"
        >{{digitalsData.publicationDate}}</view
      >
      <view
        class="affiliatedUnit my_draw_canvas"
        data-type="text"
        data-text="{{publishingUnit}}"
        >{{publishingUnit}}</view
      >
      <view
        class="website my_draw_canvas"
        data-type="text"
        data-text="{{website}}"
        >{{website}}</view
      >
      <view class="affiliatedUnit my_draw_canvas" data-type="text" data-text="{{digitalsData.publicationDate}}">{{digitalsData.publicationDate}}</view>
      <view class="affiliatedUnit my_draw_canvas" data-type="text" data-text="{{publishingUnit}}">{{publishingUnit}}</view>
      <view class="website my_draw_canvas" data-type="text" data-text="{{website}}">{{website}}</view>
      <view class="codeBox my_draw_canvas">
        <image data-type="image" data-url="{{imgUrl}}" src="{{imgUrl}}" mode="" class="qrcode my_draw_canvas" wx:if="{{imgUrl}}"/>
        <canvas canvas-id="qrcode" class="qrcode my_draw_canvas" wx:else/>
        <image data-type="image" data-url="{{imgUrl}}" src="{{imgUrl}}" mode="" class="qrcode my_draw_canvas" wx:if="{{imgUrl}}" />
        <canvas canvas-id="qrcode" class="qrcode my_draw_canvas" wx:else />
      </view>
    </view>
  </view>
  </view>
  <canvas
    canvas-id="myCanvas1"
    class="myCanvas"
    style="height: 845px; width: 595px"
    wx:if="{{pubCertificateHide}}"
  ></canvas>
<view
  id="textCertificate"
  class="my_canvas1"
  wx:if="{{pubCertificateHide}}"
>
</view>
<canvas canvas-id="myCanvas1" class="myCanvas" style="height: 845px; width: 595px" wx:if="{{pubCertificateHide}}"></canvas>
<view id="textCertificate" class="my_canvas1" wx:if="{{pubCertificateHide}}">
  <view class="pubCon">
    <image
      data-type="image"
      data-url="https://jsek.bnuic.com/home/certificate/kczs.jpg"
      src="https://jsek.bnuic.com/home/certificate/kczs.jpg"
      mode=""
      class="bgImg my_draw_canvas1"
    />
    <image data-type="image" data-url="https://jsek.bnuic.com/home/certificate/kczs.jpg" src="https://jsek.bnuic.com/home/certificate/kczs.jpg" mode="" class="bgImg my_draw_canvas1" />
    <view class="certificateInfo my_draw_canvas1">
      <view class="userIcon my_draw_canvas1">
        <view class="hexagon my_draw_canvas1">
          <image src="{{userPicture}}"  data-type="image" data-url="{{userPicture}}" class="img my_draw_canvas1" />
          <image src="{{userPicture}}" data-type="image" data-url="{{userPicture}}" class="img my_draw_canvas1" />
        </view>
      </view>
      <view
        class="userName my_draw_canvas1"
        data-type="text"
        data-text="{{userName}}"
        >{{userName}}</view
      >
      <view
        class="bookName my_draw_canvas1"
        data-type="text"
        data-text="{{digitalsData.name}}"
        >{{digitalsData.name}}</view
      >
      <view
        class="author my_draw_canvas1"
        data-type="text"
        data-text="{{digitalsData.courseLeader || '-'}}"
        >{{digitalsData.courseLeader || '-' }}</view
      >
      <view
        class="classHours my_draw_canvas1"
        data-type="text"
        data-text="{{digitalsData.classHours || '-'}}"
        >{{digitalsData.classHours || '-' }}</view
      >
      <view
        class="affiliatedUnit my_draw_canvas1"
        data-type="text"
        data-text="{{publishingUnit || '-'}}"
        >{{publishingUnit || '-'}}</view
      >
      <view
        class="studyTime my_draw_canvas1"
        data-type="text"
        data-text="{{isCertificate ? isCertificate.content.studyTime || '-' : '-'}}"
        >{{ isCertificate ? isCertificate.content.studyTime || '-' : '-'
        }}</view
      >
      <view
        class="website my_draw_canvas1"
        data-type="text"
        data-text="{{website}}"
        >{{website}}</view
      >
      <view class="userName my_draw_canvas1" data-type="text" data-text="{{userName}}">{{userName}}</view>
      <view class="bookName my_draw_canvas1" data-type="text" data-text="{{digitalsData.name}}">{{digitalsData.name}}</view>
      <view class="author my_draw_canvas1" data-type="text" data-text="{{digitalsData.courseLeader || '-'}}">{{digitalsData.courseLeader || '-' }}</view>
      <view class="classHours my_draw_canvas1" data-type="text" data-text="{{digitalsData.classHours || '-'}}">{{digitalsData.classHours || '-' }}</view>
      <view class="affiliatedUnit my_draw_canvas1" data-type="text" data-text="{{publishingUnit || '-'}}">{{publishingUnit || '-'}}</view>
      <view class="studyTime my_draw_canvas1" data-type="text" data-text="{{isCertificate ? isCertificate.content.studyTime || '-' : '-'}}">{{ isCertificate ? isCertificate.content.studyTime || '-' : '-'
        }}</view>
      <view class="website my_draw_canvas1" data-type="text" data-text="{{website}}">{{website}}</view>
      <view class="codeBox my_draw_canvas1">
        <image data-type="image" data-url="{{imgUrl1}}" src="{{imgUrl1}}" mode="" class="qrcode my_draw_canvas1" wx:if="{{imgUrl1}}"/>
        <canvas canvas-id="qrcode1" class="qrcode my_draw_canvas1" wx:else/>
        <image data-type="image" data-url="{{imgUrl1}}" src="{{imgUrl1}}" mode="" class="qrcode my_draw_canvas1" wx:if="{{imgUrl1}}" />
        <canvas canvas-id="qrcode1" class="qrcode my_draw_canvas1" wx:else />
      </view>
      <view
        class="updateDate my_draw_canvas1"
        wx-if="{{isCertificate}}"
      >
      <view class="updateDate my_draw_canvas1" wx-if="{{isCertificate}}">
        {{ moment(isCertificate.updateDate).format('YYYY年MM月') }}
      </view>
    </view>
  </view>
</view>
<t-image-viewer
  usingCustomNavbar
  deleteBtn="{{deleteBtn}}"
  closeBtn="{{closeBtn}}"
  showIndex="{{showIndex}}"
  visible="{{visible}}"
  images="{{images}}"
  bind:change="onChange"
  bind:close="onClose"
></t-image-viewer>
<t-image-viewer usingCustomNavbar deleteBtn="{{deleteBtn}}" closeBtn="{{closeBtn}}" showIndex="{{showIndex}}" visible="{{visible}}" images="{{images}}" bind:change="onChange" bind:close="onClose"></t-image-viewer>
pages/digitalCourses/digitalCoursesDetails/index.wxss
@@ -9,7 +9,7 @@
.page-bookService {
  width: 100vw;
  height: 100%;
  position: relative;
}
.t-image-viewer {
@@ -19,7 +19,7 @@
.outsideContentBox {
  position: relative;
  background-color: #F2F3F8;
  height: calc(100vh - env(safe-area-inset-bottom) - 60px);
  height: calc(100vh - env(safe-area-inset-bottom) - 110rpx);
}
.digitalCoursesDetailsTitle {
@@ -242,14 +242,12 @@
.box-bottom {
  position: fixed;
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 110rpx;
  margin-bottom: env(safe-area-inset-bottom);
  display: flex;
  flex-direction: row;
  border: 1px solid #DDD;
}
pages/scanResult/index.js
@@ -30,6 +30,9 @@
          result,
          textValue: result.type == "PromoteCode" ? '领取' : '激活'
        })
        wx.setNavigationBarTitle({
          title: result.type == "PromoteCode" ? '领取优惠卷' : '激活商品',
        })
        // this.getRules();
        this.getProductByCode();
      } else {