bug
litian
2024-09-10 99dfeb5fc86bce593a5d3f43f45c26eedc00ab0a
pages/digitalCourses/digitalCoursesDetails/index.js
@@ -85,6 +85,7 @@
    closeBtn: false,
    deleteBtn: false,
    bookId: '',
    bookPath: '',
    playerList: [],
    worksInfo: [],
    isCertificate: {},
@@ -154,9 +155,11 @@
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    let parentPath = options.path.split('\\');
    parentPath.pop();
    this.setData({
      bookId: options.id,
      userName: wx.getStorageSync(app.config.tokenKey)
      bookPath: parentPath.join('\\')
    })
    const token = wx.getStorageSync(app.config.tokenKey)
    if (!token) {
@@ -172,7 +175,7 @@
    this.getPlayerList()
    this.getType()
    this.setData({
      userName: JSON.parse(wx.getStorageSync(app.config.userInfoKey)).name
      userName: JSON.parse(wx.getStorageSync(app.config.userInfoKey)).name,
    })
  },
@@ -300,37 +303,87 @@
      }
      res.datas.publicationDate = moment(res.datas.publicationDate).format('YYYY年MM月')
      res.datas.price = res.datas.price.toFixed(2)
      res.datas.oldPrice = res.datas.oldPrice.toFixed(2)
      wx.setNavigationBarTitle({
        title: res.datas.name,
      })
      if (res.datas.publishingUnit) {
        await this.getBookPublishUnit(res.datas.publishingUnit)
      }
      let lecturer = []
      if (res.datas.datas.speaker && res.datas.datas.speaker.length > 0) {
        res.datas.datas.speaker.forEach(item => {
          if (res.datas.subItems && res.datas.subItems.QueryCms.length > 0) {
            res.datas.subItems.QueryCms.forEach(item1 => {
        this.getSpeaker(res.datas.datas.speaker)
      }
      if (this.data.bookPath) {
        this.getAboutBook(this.data.bookPath)
      } else {
        this.getAboutBook(res.datas.productLinkInfo[res.datas.productLinkInfo.length - 1].LinkPath)
      }
      this.getCertificateList()
      res.datas.content = res.datas.content && res.datas.content.replace('../', app.config.requestCtx + '/').replace(
        /\<img/gi,
        '<img style="max-width:100%;height:auto;display:block;margin-top:0;margin-bottom:0;"'
      )
      this.setData({
        digitalsData: res.datas,
        loading: false
      })
    })
  },
  //获取主讲人
  getSpeaker(list) {
    let query = {
      path: 'jsek_speaker',
      fields: {
        content: [],
        positionalTitle: []
      },
      coverSize: {
        height: 250
      }
    }
    app.MG.resource.getItem(query).then((res) => {
      let lecturerList = []
      if (list && res.datas.length > 0) {
        list.forEach((item) => {
          if (res.datas && res.datas.length > 0) {
            res.datas.forEach((item1) => {
              if (JSON.parse(item.Data.Value).items[0] == item1.id) {
                lecturer.push({
                lecturerList.push({
                  name: item1.name,
                  icon: item1.icon ? item1.icon : '',
                  description: item1.description ? item1.description : '',
                  positionalTitle: item1.positionalTitle,
                  icon: item1.icon,
                  description: item1.description ? item1.description : '暂无简介'
                })
              }
            })
          }
        })
        this.getPositionalTitle(lecturerList)
      }
      this.getAboutBook(res.datas.productLinkInfo[res.datas.productLinkInfo.length - 1].LinkPath)
      this.getCertificateList()
      res.datas.content = res.datas.content && res.datas.content.replace('../', app.config.requestCtx + '/')
    })
  },
  async getPositionalTitle(listStr) {
    let list = []
    let query = {
      refCodes: ['positionalTitle']
    }
    await app.MG.store.getProductTypeField(query).then((res) => {
      let option = JSON.parse(res[0].config).option
      listStr.forEach((unit) => {
        option.forEach((item) => {
          if (item.value == unit.positionalTitle) {
            unit.positionalName = item.name
          }
        })
        list.push({
          name: unit.name,
          positionalTitle: unit.positionalName,
          icon: unit.icon,
          description: unit.description ? unit.description : '暂无简介'
        })
      })
      this.setData({
        lecturerList: lecturer,
        digitalsData: res.datas,
        loading: false
        lecturerList: list
      })
    })
  },
@@ -679,6 +732,17 @@
    });
  },
  onCorrelationBook(e) {
    const item = e.currentTarget.dataset.item;
    // this.digitalCoursesDetailsGet(item.id)
    // this.getPlayerList()
    this.onLoad({
      loading: true,
      id: item.id,
      path: item.idPath
    })
  },
  // 获取相关课程
  getAboutBook(path) {
    let query = {
@@ -718,7 +782,7 @@
          }
        })
        this.setData({
          relatedBookData: bookArr
          relatedBookData: bookArr.slice(0, 6)
        })
      } else {
        this.setData({
@@ -856,7 +920,25 @@
        (data) => {
          let width = data.width
          let height = data.height
          console.log(width, height)
          that.setData({
            imageWidth: width,
            imageHeight: height,
          })
        },
      )
      .exec()
    this.drawImage()
    query
      .select('#textCertificate')
      .fields({
          // 选择需要生成canvas的范围
          size: true,
          node: true,
          scrollOffset: true,
        },
        (data) => {
          let width = data.width
          let height = data.height
          that.setData({
            imageWidth: width,
            imageHeight: height,
@@ -865,26 +947,20 @@
      )
      .exec()
    this.drawImage1()
  },
  drawImage1() {
  drawImage() {
    let that = this;
    let drawMyImage = new Wxml2Canvas({
      // width: 230,
      // height: 325,
      width: that.data.imageWidth,
      height: that.data.imageHeight,
      element: 'myCanvas',
      background: '#f0f0f0',
      progress(percent) {},
      finish(url) {
        console.log("生成的图片地址", url)
        wx.getFileSystemManager().readFile({
          filePath: url,
          encoding: 'base64',
          success: (res) => {
            let MyImageBase64 = 'data:image/jpg;base64,' + res.data
            console.log('MyImageBase64', MyImageBase64)
            that.setData({
              cbzsImg: MyImageBase64,
              pubCertificateHide: false,
@@ -906,6 +982,41 @@
      }]
    }
    drawMyImage.draw(data, that);
  },
  drawImage1() {
    let that = this;
    let drawMyImage1 = new Wxml2Canvas({
      width: that.data.imageWidth,
      height: that.data.imageHeight,
      element: 'myCanvas1',
      progress(percent) {},
      finish(url) {
        wx.getFileSystemManager().readFile({
          filePath: url,
          encoding: 'base64',
          success: (res) => {
            let MyImageBase641 = 'data:image/jpg;base64,' + res.data
            that.setData({
              rzzsImg: MyImageBase641,
              pubCertificateHide: false,
            })
          },
        })
      },
      error(res) {
        console.log("生成的图片失败", res)
      }
    }, this);
    let data = {
      list: [{
        type: 'wxml',
        class: '.my_canvas1 .my_draw_canvas1', //.my_draw_canvas每个要绘制元素的类名
        limit: '.my_canvas1', //my_canvas根元素类名
        x: 0,
        y: 0
      }]
    }
    drawMyImage1.draw(data, that);
  },
  //获取字段
  getType() {
@@ -953,14 +1064,14 @@
      });
      return false
    }
    // if (!this.data.isLearn) {
    //   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: "您申请的证书正在审核中",
@@ -1183,7 +1294,7 @@
  },
  onClick2() {
    this.setData({
      images: ['https://jsek.bnuic.com/home/certificate/kczs.jpg'],
      images: [this.data.rzzsImg],
      showIndex: true,
      visible: true,
    })