闫增涛
2024-09-25 7974f3266c323e4cd4fdff7d457fe75f39b8c199
pages/digitalCourses/digitalCoursesDetails/index.js
@@ -4,13 +4,15 @@
import FormData from '../../../utils/formdata/index.js';
import Wxml2Canvas from 'wxml2canvas';
import {
  worksDataBytool
  worksDataBytool,
  UpdateworksDataBytool
} from "../../../assets/js/toolClass.js";
import moment from 'moment'
import Toast from "tdesign-miniprogram/toast";
import {
  loginInfo
} from '../../../assets/js/login';
import wxbarcode from 'wxbarcode'
Page({
  /**
@@ -103,7 +105,10 @@
    rzzsImg: '', //认证证书base64
    imageWidth: '', //画在画布上的图片的宽度
    imageHeight: '', //画在画布上的图片的高度
    website: 'https://jsek.bnuic.com',
    website: 'https://jsek.bnuic.com/home/#/digitalCourses',
    wxShareUrl: '',
    imgUrl: '',
    imgUrl1: ''
  },
  formatDate(dateString) {
    if (!dateString) {
@@ -190,7 +195,11 @@
   * 生命周期函数--监听页面显示
   */
  onShow() {
    if (this.data.tabValue == 2 && this.data.selectActive == 'learn') {
      this.getPlayerList()
      this.getResource()
      this.getRelationBook()
    }
  },
  /**
@@ -231,9 +240,10 @@
    app.MG.identity
      .getUserKey({
        domain: 'videoPlayer',
        keys: [this.data.bookId]
        keys: [this.data.bookId + '']
      })
      .then((res) => {
        console.log(1, res);
        if (res.length > 0) {
          this.setData({
            playerList: JSON.parse(res[0].value)
@@ -242,6 +252,7 @@
      })
  },
  digitalCoursesDetailsGet(digitalTextId) {
    let that = this;
    let query = {
      path: '*',
      queryType: '*',
@@ -311,6 +322,10 @@
      }
      if (res.datas.datas.speaker && res.datas.datas.speaker.length > 0) {
        this.getSpeaker(res.datas.datas.speaker)
      } else {
        this.setData({
          lecturerList: []
        })
      }
      if (this.data.bookPath) {
        this.getAboutBook(this.data.bookPath)
@@ -324,12 +339,41 @@
      )
      this.setData({
        digitalsData: res.datas,
        loading: false
        loading: false,
        wxShareUrl: app.config.shareUrl + '?id=' + res.datas.id + '&path=' + this.data.bookPath + '&type=course'
      })
      if (this.data.wxShareUrl) {
        wxbarcode.qrcode('qrcode', this.data.wxShareUrl, 160, 160);
        wxbarcode.qrcode('qrcode1', this.data.wxShareUrl, 160, 160);
        setTimeout(() => {
          wx.canvasToTempFilePath({
            canvasId: 'qrcode',
            success: function (res) {
              // res.tempFilePath 包含生成的图片文件路径
              that.setData({
                imgUrl: res.tempFilePath
              })
            }
          });
          wx.canvasToTempFilePath({
            canvasId: 'qrcode1',
            success: function (res) {
              // res.tempFilePath 包含生成的图片文件路径
              that.setData({
                imgUrl1: res.tempFilePath
              })
            }
          });
        }, 1000)
      }
    })
  },
  //获取主讲人
  getSpeaker(list) {
    this.setData({
      lecturerList: []
    })
    let query = {
      path: 'jsek_speaker',
      fields: {
@@ -414,6 +458,9 @@
    this.setData({
      tabValue: value
    })
    if (this.data.tabValue == 0) {
      this.digitalCoursesDetailsGet(this.data.bookId)
    }
    if (this.data.tabValue == 1) {
      this.saveAsImage()
    }
@@ -432,7 +479,8 @@
  selectChange(event) {
    const value = event.target.dataset.value
    this.setData({
      selectActive: value
      selectActive: value,
      testCount: 0
    })
    this.getResource()
  },
@@ -471,7 +519,6 @@
        res.datas.cmsDatas[0].datas.forEach((item) => {
          if (item.type == 'questionBankFolder' || item.type == 'questionBankItem') {
            test.push(item)
          } else if (item.type != "resourceItem") {
            this.data.playerList.forEach(pItem => {
              if (pItem.cmsItemId == item.id) {
@@ -483,9 +530,7 @@
          if (item.type == 'productItem') {
            learnItemList.push(item)
          }
        })
        if (this.data.selectActive === 'learn') {
          let list = []
          // 测试 6位// 正式 5位//  测试调用传20,内部7  正式调用传17 内部传6
@@ -655,6 +700,7 @@
  //在线测试获取最后一个节点数量
  countLeafNodes(tree) {
    tree.forEach(node => {
      if (!node.children || node.children.length === 0) {
        this.setData({
@@ -733,8 +779,6 @@
  onCorrelationBook(e) {
    const item = e.currentTarget.dataset.item;
    // this.digitalCoursesDetailsGet(item.id)
    // this.getPlayerList()
    this.onLoad({
      loading: true,
      id: item.id,
@@ -823,7 +867,7 @@
        Toast({
          context: this,
          selector: "#t-toast",
          message: "该书已在购物车,请勿重复添加",
          message: "该课程已在购物车,请勿重复添加",
          theme: "warning",
          direction: "column",
        });
@@ -870,12 +914,13 @@
            })
            .then((res) => {
              if (res) {
                this.digitalCoursesDetailsGet(this.data.digitalsData.id);
                wx.showToast({
                  title: "领取成功",
                  icon: "none",
                  duration: 1000,
                });
                this.getBookInfo(this.data.bookDetail.id);
                this.digitalCoursesDetailsGet(this.data.bookId);
              }
            });
        } else {
@@ -926,7 +971,9 @@
        },
      )
      .exec()
    this.drawImage()
    setTimeout(() => {
      this.drawImage()
    }, 500)
    query
      .select('#textCertificate')
      .fields({
@@ -945,7 +992,9 @@
        },
      )
      .exec()
    this.drawImage1()
    setTimeout(() => {
      this.drawImage1()
    }, 500)
  },
  drawImage() {
    let that = this;
@@ -1042,35 +1091,34 @@
    app.MG.ugc.getTopicMessageList(data).then((res) => {
      res.datas.map((item) => {
        item.content = JSON.parse(item.content)
        if (item.content.id == this.data.bookId) {
        if (item.content.bookId == this.data.bookId) {
          this.setData({
            isCertificate: item
            isCertificate: item,
            userName: item.content.userName,
            userPicture: app.config.requestCtx + `/file/GetPreViewImage?md5=` + item.content.userPicture
          })
        }
      })
    })
  },
  onCertificate() {
    // if (!this.data.isBuy) {
    //   wx.showToast({
    //     title: "请先购买,体验完整服务",
    //     icon: "none",
    //     duration: 1000,
    //   });
    //   return false
    // }
    // if (!this.data.isLearn) {
    //   wx.showToast({
    //     title: "您的学习任务还未完成,暂不能申请证书,加油哦!",
    //     icon: "none",
    //     duration: 1000,
    //   });
    //   return false
    // }
    if (!this.data.isBuy) {
      wx.showToast({
        title: "请先购买,体验完整服务",
        icon: "none",
        duration: 1000,
      });
      return false
    }
    if (!this.data.isLearn) {
      wx.showToast({
        title: "您的学习任务还未完成,暂不能申请证书,加油哦!",
        icon: "none",
        duration: 1000,
      });
      return false
    }
    if (this.data.isCertificate && this.data.isCertificate.state == 'WaitAudit') {
      wx.showToast({
        title: "您申请的证书正在审核中",
@@ -1191,37 +1239,81 @@
        userName: this.data.userInfo.fullName,
        userPicture: this.data.pictureMd5,
        studyTime: this.data.digitalsData.beginDate + '-' + year + '-' + month + '-' + today,
        website: this.data.website
        website: this.data.website,
        wxShareUrl: this.data.wxShareUrl
      }
      data = {
        topicIdOrRefCode: 'applyCourseCertificate',
        name: this.data.userInfo.fullName,
        content: JSON.stringify(bookInfo),
        state: 'WaitAudit',
        cmsTypeRefCode: 'jsek_courseCertificate',
        type: 'applyCourse',
        newDataListRequest: worksDataBytool(this.data.worksInfo, this.data.userInfo)
      if (this.data.isCertificate.id) {
        let dataRequests = UpdateworksDataBytool(
          this.data.worksInfo,
          [this.data.isCertificate],
          this.data.userInfo
        )
        data = {
          id: this.data.isCertificate.id,
          topicIdOrRefCode: 'applyCourseCertificate',
          name: this.data.userInfo.fullName,
          content: JSON.stringify(bookInfo),
          state: 'WaitAudit',
          cmsTypeRefCode: 'jsek_courseCertificate',
          type: 'applyCourse',
          newDataRequests: dataRequests.newData,
          updateDataRequests: dataRequests.updateData,
          delDataRequest: {
            ids: []
          }
        }
        app.MG.ugc
          .updateTopicMessage(data)
          .then((res) => {
            wx.showToast({
              title: "已提交申请",
              icon: "none",
              duration: 1000,
            });
            this.setData({
              "userInfo.fullName": "",
              dialogBox: false,
              scrollJudge: true
            })
            this.getCertificateList()
          })
          .catch(() => {
            btnLoading.value = false
          })
      } else {
        data = {
          topicIdOrRefCode: 'applyCourseCertificate',
          name: this.data.userInfo.fullName,
          content: JSON.stringify(bookInfo),
          state: 'WaitAudit',
          cmsTypeRefCode: 'jsek_courseCertificate',
          type: 'applyCourse',
          newDataListRequest: worksDataBytool(this.data.worksInfo, this.data.userInfo)
        }
        app.MG.ugc
          .newTopicMessage(data)
          .then((res) => {
            wx.showToast({
              title: "已提交申请",
              icon: "none",
              duration: 1000,
            });
            this.setData({
              "userInfo.fullName": "",
              dialogBox: false,
              scrollJudge: true
            })
            this.getCertificateList()
          })
          .catch(() => {
            this.setData({
              "userInfo.fullName": "",
            })
          })
      }
      app.MG.ugc
        .newTopicMessage(data)
        .then((res) => {
          wx.showToast({
            title: "已提交申请",
            icon: "none",
            duration: 1000,
          });
          this.setData({
            "userInfo.fullName": "",
            dialogBox: false,
            scrollJudge: true
          })
          this.getCertificateList()
        })
        .catch(() => {
          this.setData({
            "userInfo.fullName": "",
          })
        })
    } else {
      wx.showToast({
        title: "姓名不能为空",