From 606018855ad2d5ad55f527b76e9652fdb58ed982 Mon Sep 17 00:00:00 2001
From: 闫增涛 <1829501689@qq.com>
Date: 星期一, 09 九月 2024 19:50:05 +0800
Subject: [PATCH] bug

---
 pages/digitalCourses/digitalCoursesDetails/index.js |  281 ++++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 223 insertions(+), 58 deletions(-)

diff --git a/pages/digitalCourses/digitalCoursesDetails/index.js b/pages/digitalCourses/digitalCoursesDetails/index.js
index 766d579..ad21895 100644
--- a/pages/digitalCourses/digitalCoursesDetails/index.js
+++ b/pages/digitalCourses/digitalCoursesDetails/index.js
@@ -2,8 +2,7 @@
 const app = getApp()
 import SparkMD5 from 'spark-md5'
 import FormData from '../../../utils/formdata/index.js';
-// import Wxml2Canvas from 'wxml2canvas';
-// const Wxml2Canvas = require('Wxml2Canvas')
+import Wxml2Canvas from 'wxml2canvas';
 import {
   worksDataBytool
 } from "../../../assets/js/toolClass.js";
@@ -67,6 +66,7 @@
     selectActive: 'learn',
     learnList: [],
     testList: [],
+    testCount: 0,
     openTeachids: [],
     onlineQuestionsList: [],
     //鍒嗛〉
@@ -85,6 +85,7 @@
     closeBtn: false,
     deleteBtn: false,
     bookId: '',
+    bookPath: '',
     playerList: [],
     worksInfo: [],
     isCertificate: {},
@@ -94,12 +95,15 @@
       fullName: '', //鍚嶇О
       userPicture: '' //鐢宠璇佷功鐢ㄦ埛鍥剧墖
     },
+    userName: '',
     pictureMd5: '',
     publishingUnit: '',
     pubCertificateHide: true,
     cbzsImg: '', //鍑虹増璇佷功base64
-    rzzsImg: '' //璁よ瘉璇佷功base64
-
+    rzzsImg: '', //璁よ瘉璇佷功base64
+    imageWidth: '', //鐢诲湪鐢诲竷涓婄殑鍥剧墖鐨勫搴�
+    imageHeight: '', //鐢诲湪鐢诲竷涓婄殑鍥剧墖鐨勯珮搴�
+    website: 'https://jsek.bnuic.com',
   },
   formatDate(dateString) {
     if (!dateString) {
@@ -151,13 +155,28 @@
    * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍔犺浇
    */
   onLoad(options) {
+    let parentPath = options.path.split('\\');
+    parentPath.pop();
     this.setData({
-      bookId: options.id
+      bookId: options.id,
+      bookPath: parentPath.join('\\')
     })
+    const token = wx.getStorageSync(app.config.tokenKey)
+    if (!token) {
+      loginInfo(app, (data) => {
+        if (data) {
+          this.digitalCoursesDetailsGet(options.id)
+          this.getPlayerList()
+          this.getType()
+        } else {}
+      })
+    }
     this.digitalCoursesDetailsGet(options.id)
     this.getPlayerList()
     this.getType()
-    this.getCertificateList()
+    this.setData({
+      userName: JSON.parse(wx.getStorageSync(app.config.userInfoKey)).name,
+    })
   },
 
   /**
@@ -220,7 +239,6 @@
           this.setData({
             playerList: JSON.parse(res[0].value)
           })
-          console.log(this.data.playerList, "playerList")
         }
       })
   },
@@ -263,7 +281,6 @@
       }
     }
     app.MG.store.getProductDetail(query).then(async res => {
-      console.log(res);
       if (res.datas.purchasedSaleMethodIdList.includes(res.datas.defaultSaleMethodId)) {
         this.setData({
           isBuy: true
@@ -284,9 +301,9 @@
           expire: res.false
         })
       }
-      res.datas.publicationDate = moment(res.datas.publicationDate).format('YYYY骞碝M鏈圖D鏃�')
+      res.datas.publicationDate = moment(res.datas.publicationDate).format('YYYY骞碝M鏈�')
       res.datas.price = res.datas.price.toFixed(2)
-
+      res.datas.oldPrice = res.datas.oldPrice.toFixed(2)
       wx.setNavigationBarTitle({
         title: res.datas.name,
       })
@@ -310,8 +327,16 @@
           }
         })
       }
-      this.getAboutBook(res.datas.productLinkInfo[res.datas.productLinkInfo.length - 1].LinkPath)
-
+      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({
         lecturerList: lecturer,
         digitalsData: res.datas,
@@ -347,7 +372,9 @@
     this.setData({
       tabValue: value
     })
-    console.log(this.data.tabValue);
+    if (this.data.tabValue == 1) {
+      this.saveAsImage()
+    }
     if (this.data.tabValue == 2) {
       this.getResource()
       this.getRelationBook()
@@ -361,7 +388,6 @@
   },
 
   selectChange(event) {
-    console.log(event)
     const value = event.target.dataset.value
     this.setData({
       selectActive: value
@@ -403,6 +429,7 @@
         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) {
@@ -440,6 +467,7 @@
           const data = test.filter(
             (item) => item.type == 'questionBankFolder' && item.childrenFolderCount > 0
           )
+
           if (data.length > 0) {
             let list = []
             let addNum = query.cmsPath.length > 5 ? 7 : query.cmsPath.length > 6 ? 8 : 6
@@ -448,6 +476,7 @@
             list = this.ensureTreeConsistency(list)
             let result = [];
             this.findChildIds(list[0].children, result)
+            this.countLeafNodes(list[0].children)
             this.setData({
               testList: list[0].children,
               openTeachids: result,
@@ -502,6 +531,7 @@
       i.children = []
       this.getTreeList(rootList, pathLength + addNum, i.children, i.productLinkPath, addNum)
       if (i.children.length == 0) {
+        newArr[0].istry = true
         delete i.children
       }
     }
@@ -581,6 +611,19 @@
     }
   },
 
+  //鍦ㄧ嚎娴嬭瘯鑾峰彇鏈�鍚庝竴涓妭鐐规暟閲�
+  countLeafNodes(tree) {
+    tree.forEach(node => {
+      if (!node.children || node.children.length === 0) {
+        this.setData({
+          testCount: this.data.testCount + 1
+        })
+      } else {
+        this.countLeafNodes(node.children);
+      }
+    });
+  },
+
   //鑾峰彇鍏宠仈瀛愬晢鍝�/鏁板瓧鏁欐潗
   getRelationBook() {
     app.MG.store.getProductList({
@@ -602,25 +645,58 @@
         }
       })
       .then((res) => {
-        this.setData({
-          relationTextBook: res.datas[0]
-        })
-        if (this.data.relationTextBook.purchasedSaleMethodIdList.includes(this.data.relationTextBook.defaultSaleMethodId)) {
+        if (res.datas.length > 0) {
           this.setData({
-            isTextBookBuy: true
+            relationTextBook: res.datas[0]
           })
-        } else {
-          this.setData({
-            isTextBookBuy: false
-          })
+          if (this.data.relationTextBook.purchasedSaleMethodIdList.includes(this.data.relationTextBook.defaultSaleMethodId)) {
+            this.setData({
+              isTextBookBuy: true
+            })
+          } else {
+            this.setData({
+              isTextBookBuy: false
+            })
+          }
         }
-        console.log(this.data.relationTextBook, "jc")
       })
   },
 
   readTextBook() {
     wx.navigateTo({
       url: '/pages/digitalCourses/digitalCoursesDetails/components/digitalRead/index?refCode=' + this.data.relationTextBook.refCode + '&tryPageCount=' + this.data.relationTextBook.probationPage + '&isTextBookBuy=' + this.data.isTextBookBuy
+    })
+  },
+
+  //鍦ㄧ嚎娴嬭瘯鎴戠殑鏀惰棌銆佹垜鐨勯敊棰�
+  goMycollect(e) {
+    const answertype = e.currentTarget.dataset.answertype;
+    const token = wx.getStorageSync("jsek-token");
+    if (!token) {
+      return wx.getUserProfile({
+        desc: "鐢ㄦ埛鐧诲綍",
+        success: (res) => {
+          console.log(res);
+        },
+      });
+    }
+    wx.navigateTo({
+      url: `/packageBookService/pages/bookServices/examination/examination?bookId=${
+        this.data.digitalsData.id
+      }&rootCmsItemId=${this.data.digitalsData.rootCmsItemId}&answerTitle=${
+        answertype == "collectQuestion" ? "鎴戠殑鏀惰棌" : "鎴戠殑閿欓"
+      }&answerType=${answertype}&storeInfo=${app.config.digitalCourses}`,
+    });
+  },
+
+  onCorrelationBook(e) {
+    const item = e.currentTarget.dataset.item;
+    // this.digitalCoursesDetailsGet(item.id)
+    // this.getPlayerList()
+    this.onLoad({
+      loading: true,
+      id: item.id,
+      path: item.idPath
     })
   },
 
@@ -663,9 +739,8 @@
           }
         })
         this.setData({
-          relatedBookData: bookArr
+          relatedBookData: bookArr.slice(0, 6)
         })
-        console.log(this.data.relatedBookData);
       } else {
         this.setData({
           relatedBookData: []
@@ -743,7 +818,6 @@
       // 鍙戣捣璁㈠崟鍒濆鍖栬姹傚苟绛夊緟缁撴灉
       const res = await app.MG.store.initOrder(query);
       // 鑾峰彇璁㈠崟鍙峰苟璧嬪�肩粰 orderNumber.value
-      console.log(res, 'res456');
       bookOrdersId = res.orderNumber;
       // 妫�鏌ヨ鍗曞彿鏄惁瀛樺湪
       if (bookOrdersId) {
@@ -768,9 +842,7 @@
             url,
           });
         }
-      } else {
-        console.log(222);
-      }
+      } else {}
     } else {
       wx.showToast({
         title: "鍟嗗搧涓嶅湪鏈夋晥鏈�",
@@ -792,21 +864,116 @@
   },
   //鐢宠璇佷功
   async saveAsImage() {
-    await nextTick()
-    let query = wx.createSelectorQuery();
-    let value = query.select("#pubCertificate").boundingClientRect();
-    Wxml2Canvas(value).then((canvas) => {
-      const img = canvas.toDataURL('image/png')
-      this.setData({
-        cbzsImg: img,
-      })
-    })
-    // Wxml2Canvas(textCertificate.value).then((canvas1) => {
-    //   const img1 = canvas1.toDataURL('image/png')
-    //   rzzsImg.value = img1
-    // })
-
-    pubCertificateHide.value = false
+    const that = this
+    const query = wx.createSelectorQuery().in(this)
+    query
+      .select('#pubCertificate')
+      .fields({
+          // 閫夋嫨闇�瑕佺敓鎴恈anvas鐨勮寖鍥�
+          size: true,
+          node: true,
+          scrollOffset: true,
+        },
+        (data) => {
+          let width = data.width
+          let height = data.height
+          that.setData({
+            imageWidth: width,
+            imageHeight: height,
+          })
+        },
+      )
+      .exec()
+    this.drawImage()
+    query
+      .select('#textCertificate')
+      .fields({
+          // 閫夋嫨闇�瑕佺敓鎴恈anvas鐨勮寖鍥�
+          size: true,
+          node: true,
+          scrollOffset: true,
+        },
+        (data) => {
+          let width = data.width
+          let height = data.height
+          that.setData({
+            imageWidth: width,
+            imageHeight: height,
+          })
+        },
+      )
+      .exec()
+    this.drawImage1()
+  },
+  drawImage() {
+    let that = this;
+    let drawMyImage = new Wxml2Canvas({
+      width: that.data.imageWidth,
+      height: that.data.imageHeight,
+      element: 'myCanvas',
+      progress(percent) {},
+      finish(url) {
+        wx.getFileSystemManager().readFile({
+          filePath: url,
+          encoding: 'base64',
+          success: (res) => {
+            let MyImageBase64 = 'data:image/jpg;base64,' + res.data
+            that.setData({
+              cbzsImg: MyImageBase64,
+              pubCertificateHide: false,
+            })
+          },
+        })
+      },
+      error(res) {
+        console.log("鐢熸垚鐨勫浘鐗囧け璐�", res)
+      }
+    }, this);
+    let data = {
+      list: [{
+        type: 'wxml',
+        class: '.my_canvas .my_draw_canvas', //.my_draw_canvas姣忎釜瑕佺粯鍒跺厓绱犵殑绫诲悕
+        limit: '.my_canvas', //my_canvas鏍瑰厓绱犵被鍚�
+        x: 0,
+        y: 0
+      }]
+    }
+    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() {
@@ -839,6 +1006,7 @@
           })
         }
       })
+
     })
   },
 
@@ -853,14 +1021,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: "鎮ㄧ敵璇风殑璇佷功姝e湪瀹℃牳涓�",
@@ -905,7 +1073,6 @@
           // encoding: 'binary', //缂栫爜鏍煎紡
           success: ress => {
             //鎴愬姛鐨勫洖璋�
-            console.log(ress.data, 45613489)
             let spark = new SparkMD5.ArrayBuffer();
             spark.append(ress.data);
             let md5 = spark.end(false);
@@ -935,7 +1102,6 @@
                   if (res.statusCode == 200) {
                     resolve(res.data);
                     if (res.data) {
-                      console.log(md5, "md5555")
                       that.setData({
                         'userInfo.userPicture': app.config.requestCtx + `/file/GetPreViewImage?md5=` + md5,
                         pictureMd5: md5
@@ -1078,14 +1244,14 @@
   //璇佷功鏌ョ湅
   onClick1() {
     this.setData({
-      images: ['https://jsek.bnuic.com/home/certificate/szkc.jpg'],
+      images: [this.data.cbzsImg],
       showIndex: true,
       visible: true,
     })
   },
   onClick2() {
     this.setData({
-      images: ['https://jsek.bnuic.com/home/certificate/kczs.jpg'],
+      images: [this.data.rzzsImg],
       showIndex: true,
       visible: true,
     })
@@ -1094,7 +1260,6 @@
     const {
       trigger
     } = e.detail;
-    console.log(trigger);
     this.setData({
       visible: false,
     });

--
Gitblit v1.9.1