From ccda9ec2fe70d8f51ef184eafc04b78d22dfbabd Mon Sep 17 00:00:00 2001
From: litian <C21AF165>
Date: 星期三, 26 六月 2024 15:02:28 +0800
Subject: [PATCH] 小程序,教材,课程

---
 pages/digitalTextbooks/digitalTextbooksDetails/index.js |  581 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 578 insertions(+), 3 deletions(-)

diff --git a/pages/digitalTextbooks/digitalTextbooksDetails/index.js b/pages/digitalTextbooks/digitalTextbooksDetails/index.js
index 1e62a7d..68b6c40 100644
--- a/pages/digitalTextbooks/digitalTextbooksDetails/index.js
+++ b/pages/digitalTextbooks/digitalTextbooksDetails/index.js
@@ -1,10 +1,61 @@
 // pages/digitalTextbooks/digitalTextbooksDetails/index.js
+import Toast from "tdesign-miniprogram/toast";
+import {
+  loginInfo
+} from '../../../assets/js/login';
+const app = getApp()
 Page({
 
   /**
    * 椤甸潰鐨勫垵濮嬫暟鎹�
    */
   data: {
+    type: 'basicInformation',
+    digitalTextId: '',
+    digitalsData: {},
+    expire: false, //鍟嗗搧鎴栧瓙鍟嗗搧閿�鍞柟寮忔槸鍚﹁繃鏈�
+    tabValue: "brief",
+    relatedBookData: [],
+    publicationDate: '',
+    isBuy: false,
+    loading: true,
+    briefIcon: {
+      name: "/static/images/digitalTextbooks/jibenxinxi-t@2x.png",
+    },
+    briefIconClick: {
+      name: "/static/images/digitalTextbooks/jibenxinxi-t-click@3x.png",
+    },
+    eBookIcon: {
+      name: "/static/images/digitalTextbooks/zuozhejianjie-t@2x.png",
+    },
+    eBookClickIcon: {
+      name: "/static/images/digitalTextbooks/zuozhejianjie@2x.png",
+    },
+    teachResourcesIcon: {
+      name: "/static/images/digitalTextbooks/zuozhejianjie-t@2x.png",
+    },
+    teachResourcesClickIcon: {
+      name: "/static/images/digitalTextbooks/zuozhejianjie-t-click@3x.png",
+    },
+    learnResourceIcon: {
+      name: "/static/images/digitalTextbooks/shengshu-t@2x.png",
+    },
+    learnResourceClickIcon: {
+      name: "/static/images/digitalTextbooks/zhengshu-t-click@3x.png",
+    },
+    testResourceIocn: {
+      name: "/static/images/digitalTextbooks/link-t@3x.png",
+    },
+    testResourceClickIocn: {
+      name: "/static/images/digitalTextbooks/link-t-click@3x.png",
+    },
+
+    catalogue: {
+      name: "/static/images/digitalTextbooks/mulu-t@3x.png",
+    },
+    catalogueClickIcon: {
+      name: "/static/images/digitalTextbooks/mulu-t-click@3x.png",
+    },
 
   },
 
@@ -12,9 +63,60 @@
    * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍔犺浇
    */
   onLoad(options) {
-    console.log(options.id);
+    console.log(options);
+    this.setData({
+      digitalTextId: options.id
+    })
+    this.digitalTextbooksDetailsGet(this.data.digitalTextId)
   },
+  // 鏍煎紡鍖栨棩鏈�
+  // 鏍煎紡鍖栨棩鏈�
+  formatDate(dateString) {
+    if (!dateString) {
+      return "";
+    }
+    const match = dateString.match(
+      /^(\d{4})\/(\d{1,2})\/(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/
+    );
+    if (!match) {
+      throw new Error("Invalid date format");
+    }
 
+    const [, year, month, day, hours, minutes, seconds] = match;
+    const date = new Date(
+      parseInt(year, 10),
+      parseInt(month, 10) - 1,
+      parseInt(day, 10),
+      parseInt(hours, 10),
+      parseInt(minutes, 10),
+      parseInt(seconds, 10)
+    );
+
+    if (isNaN(date.getTime())) {
+      throw new Error("Invalid date");
+    }
+
+    // 鐢变簬灏忕▼搴忕幆澧冨彲鑳戒笉鏀寔 Intl.DateTimeFormat锛屾垜浠娇鐢ㄧ畝鍖栫殑鏍煎紡鍖栨柟娉�
+    const formatted = `${year}骞�${this.formatMonth(month)}`;
+    return formatted;
+  }, // 绠�鍖栫殑鏈堜唤鏍煎紡鍖栧嚱鏁帮紝杩斿洖鏈堜唤鐨勪腑鏂囪〃杈�
+  formatMonth(month) {
+    const months = [
+      "1鏈�",
+      "2鏈�",
+      "3鏈�",
+      "4鏈�",
+      "5鏈�",
+      "6鏈�",
+      "7鏈�",
+      "8鏈�",
+      "9鏈�",
+      "10鏈�",
+      "11鏈�",
+      "12鏈�",
+    ];
+    return months[parseInt(month, 10) - 1];
+  },
   /**
    * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍒濇娓叉煋瀹屾垚
    */
@@ -40,7 +142,9 @@
    * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍗歌浇
    */
   onUnload() {
-
+    this.setData({
+      digitalsData: {}
+    })
   },
 
   /**
@@ -62,5 +166,476 @@
    */
   onShareAppMessage() {
 
-  }
+  },
+
+
+  digitalTextbooksDetailsGet(digitalId) {
+
+    let query = {
+      path: '*',
+      queryType: '*',
+      productId: digitalId,
+      storeInfo: 'jsek_digitalTextbooks',
+      coverSize: {
+        height: 300
+      },
+      fields: {
+        seriesName: [],
+        author: [],
+        isbn: [],
+        publicationDate: [],
+        bookClassification: [],
+        paperPrice: [],
+        JDLink: [],
+        tmallLink: [],
+        dangdangLink: [],
+        weidianLink: [],
+        content: [],
+        authorIntroduction: [],
+        isApplyBook: [],
+        isSell: [],
+        pdf: [],
+        protectedEpub: [],
+        probationPage: [], //pdf璇曡椤垫暟
+        freeEpubPage: [],
+        catalogue: []
+        //epub璇曡鐧惧垎姣�
+      }
+    }
+    app.MG.store.getProductDetail(query).then(res => {
+      if (res.datas.purchasedSaleMethodIdList.includes(res.datas.defaultSaleMethodId)) {
+        this.setData({
+          isBuy: true
+        })
+      } else {
+        this.setData({
+          isBuy: false
+        })
+      }
+      // res.datas.publicationDate = 
+      if (res.datas.icon == '') {
+        res.datas.icon = '/static/images/default-book-img.png'
+      }
+      this.setData({
+        publicationDate: this.formatDate(res.datas.publicationDate)
+      })
+      res.datas.price = res.datas.price.toFixed(2)
+
+      this.setData({
+        digitalsData: res.datas
+      })
+      let times = new Date(res.datas.defaultSaleMethod.endDate).getTime()
+      let startTime = new Date(res.datas.defaultSaleMethod.beginDate).getTime()
+      if (times < new Date().getTime() || new Date().getTime() < startTime) {
+        this.setData({
+          expire: true
+        })
+      } else {
+        this.setData({
+          expire: res.false
+        })
+      }
+      wx.setNavigationBarTitle({
+        title: res.datas.name,
+      })
+
+      this.getAboutBook(res.datas.productLinkInfo[res.datas.productLinkInfo.length - 1].LinkPath)
+      console.log(this.data.isBuy);
+      this.setData({
+        loading: false,
+        type: 'basicInformation',
+
+      });
+
+      // this.onCe()
+
+    })
+  },
+  onTabsChange(event) {
+    this.setData({
+      tabValue: event.detail.value,
+    })
+    console.log(this.data.tabValue);
+  },
+
+  onTabsClick(event) {
+    // console.log(`Click tab, tab-panel value is ${event.detail.value}.`);
+  },
+  // 鑾峰彇鐩稿叧鏁欐潗
+  getAboutBook(path) {
+    let query = {
+      path,
+      queryType: '*',
+      coverSize: {
+        height: 243
+      },
+      paging: {
+        start: 0,
+        size: 99
+      },
+      fields: {
+        author: [],
+        publicationDate: []
+      }
+    }
+    app.MG.store.getProductList(query).then(res => {
+      const Arr = res.datas.filter(
+        (item) => item.id != this.data.digitalsData.id
+      );
+      let bookArr = []
+      if (Arr.length) {
+        if (Arr.length > 9) {
+          for (var i = 0; i < 9; i++) {
+            var _num = Math.floor(Math.random() * Arr.length)
+            var mm = Arr[_num]
+            Arr.splice(_num, 1)
+            bookArr.push(mm)
+          }
+        } else {
+          bookArr = Arr
+        }
+        bookArr.forEach(item => {
+          if (item.icon == '') {
+            item.icon = '/static/images/default-book-img.png'
+          }
+        })
+        this.setData({
+          relatedBookData: bookArr
+        })
+        console.log(this.data.relatedBookData);
+      } else {
+        this.setData({
+          relatedBookData: []
+        })
+      }
+    })
+  },
+  onCorrelationBook(e) {
+    const item = e.currentTarget.dataset.item
+    // const event = {
+    //   detail: {
+    //     value: "brief"
+    //   }
+    // }
+    // this.onTabsChange(event)
+    // this.digitalTextbooksDetailsGet(item.id)
+    this.onLoad({
+      id: item.id
+    })
+  },
+  // 鍥句功娣诲姞璐墿杞�
+  async addBookShopcCar() {
+    if (!this.data.expire) {
+      const shoppingCartGetId = [];
+      let query = {
+        start: 0,
+        size: 9999,
+        filterList: [],
+        searchList: [],
+      };
+      const res = await app.MG.store.getShoppingCartProductList(query);
+      res.datas.forEach((item) => {
+        shoppingCartGetId.push(item.saleMethod.id);
+      });
+      const determine = shoppingCartGetId.some(
+        (item) => item == this.data.digitalsData.defaultSaleMethodId
+      );
+      if (!determine) {
+        let query = {
+          requests: [{
+            saleMethodId: this.data.digitalsData.defaultSaleMethodId,
+            storeEventId: null,
+            agentCode: "鐢靛瓙涔�",
+          }, ],
+        };
+        const addRes = app.MG.store.addShoppingCart(query);
+        this.showSuccessToast();
+      } else {
+        Toast({
+          context: this,
+          selector: "#t-toast",
+          message: "璇ヤ功宸插湪璐墿杞︼紝璇峰嬁閲嶅娣诲姞",
+          theme: "warning",
+          direction: "column",
+        });
+      }
+    } else {
+      wx.showToast({
+        title: "鍟嗗搧涓嶅湪鏈夋晥鏈�",
+        icon: "none",
+        duration: 1000,
+      });
+    }
+  },
+  showSuccessToast() {
+    Toast({
+      context: this,
+      selector: "#t-toast",
+      message: "娣诲姞鎴愬姛",
+      theme: "success",
+      direction: "column",
+    });
+  },
+
+
+  //璐拱鎸夐挳
+  async buyBtn() {
+    if (!this.data.expire) {
+      let bookOrdersId = "";
+      let query = {
+        remarks: "鐢靛瓙涔�",
+        requests: [{
+          saleMethodId: this.data.digitalsData.defaultSaleMethodId,
+          count: 1,
+        }, ],
+      };
+      // 鍙戣捣璁㈠崟鍒濆鍖栬姹傚苟绛夊緟缁撴灉
+      const res = await app.MG.store.initOrder(query);
+      // 鑾峰彇璁㈠崟鍙峰苟璧嬪�肩粰 orderNumber.value
+      console.log(res, 'res456');
+      bookOrdersId = res.orderNumber;
+      // 妫�鏌ヨ鍗曞彿鏄惁瀛樺湪
+      if (bookOrdersId) {
+        if (this.data.digitalsData.price == "0.00") {
+          app.MG.store
+            .confirmOrder({
+              orderNum: bookOrdersId,
+            })
+            .then((res) => {
+              this.digitalTextbooksDetailsGet(this.data.digitalTextId)
+              if (res) {
+                wx.showToast({
+                  title: "棰嗗彇鎴愬姛",
+                  icon: "none",
+                  duration: 1000,
+                });
+                this.getBookInfo(this.data.bookDetail.id);
+              }
+            });
+        } else {
+          const url = "/pages/cart/paymentPage/index?orderNumber=" + bookOrdersId + '&onNorderSaleMethod=' + res.saleMethodLinks[0].orderSaleMethod.id;
+          wx.navigateTo({
+            url,
+          });
+        }
+      } else {
+        console.log(222);
+      }
+    } else {
+      wx.showToast({
+        title: "鍟嗗搧涓嶅湪鏈夋晥鏈�",
+        icon: "none",
+        duration: 1000,
+      });
+    }
+  },
+
+  // console.log(item, app.config.textReaderUrl);
+  // console.log(token);
+  goRead() {
+    // 棣栭〉娴嬭瘯鐧诲綍鍔熻兘锛屽悗缁敞閲�
+    // 妫�鏌ョ櫥褰曠姸鎬�
+    const token = wx.getStorageSync(app.config.tokenKey)
+    if (!token) {
+      loginInfo(app, (data) => {
+        // 濡傛灉涓嶆槸绗竴娆$櫥褰曪紝浼氭墽琛屽洖璋�
+        if (data) {
+          // 鐧诲綍鎴愬姛锛岃嚜鍔ㄨ褰晅oken鍜岀敤鎴蜂俊鎭紝骞惰繑鍥瀟rue
+          const item = this.data.digitalsData
+          wx.navigateTo({
+            url: '/pages/digitalTextbooks/digitalTextbooksDetails/components/webView/index?refCode=' + item.refCode + "&tryPageCount=" + item.probationPage
+          });
+        } else {
+          // 鍑虹幇閿欒锛岃繑鍥瀎alse
+        }
+      })
+    } else {
+      // 濡傛灉鏄涓�娆$櫥褰曪紝浼氳烦杞嚦缁戝畾鐢ㄦ埛淇℃伅椤甸潰锛屽~鍐欏畬鐢ㄦ埛淇℃伅鍚庤繘琛岀櫥褰曞苟鍌ㄥ瓨token鍜岀敤鎴蜂俊鎭紝缁撴潫鍚庤烦杞洖褰撳墠椤甸潰锛堟惡甯﹂〉闈㈠弬鏁帮級
+      const item = this.data.digitalsData
+      wx.navigateTo({
+        url: '/pages/digitalTextbooks/digitalTextbooksDetails/components/webView/index?refCode=' + item.refCode + "&tryPageCount=" + item.probationPage
+      });
+    }
+    // let token = wx.getStorageSync(app.config.tokenKey)
+    // if (token) {
+
+
+
+
+    // }
+
+
+  },
+  onTabClick(e) {
+    // debugger
+    console.log(e);
+    let tab = e.currentTarget.dataset.tab;
+
+    this.setData({
+      type: tab,
+
+    })
+
+    if (tab == 'basicInformation') {
+      this.setData({
+        topPos: 0
+      })
+    } else if (tab == 'certificateInformation') {
+      this.setData({
+        topPos: this.certificateInformation
+      })
+    } else if (tab == 'authorSynopsis') {
+      this.setData({
+        topPos: this.authorSynopsis
+      })
+    } else if (tab == 'listings') {
+      this.setData({
+        topPos: this.listings
+      })
+    } else if (tab == 'relatedTextbooks') {
+      this.setData({
+        topPos: this.relatedTextbooks
+      })
+    }
+
+  },
+
+
+  onScroll(e) {
+
+    let scrollTop = e.detail.scrollTop
+    console.log(scrollTop);
+    // this.setData({
+    //   type: scrollTop
+    // })
+
+
+    if (scrollTop < this.basicInformation) {
+      this.setData({
+        type: 'basicInformation'
+      })
+    } else if (scrollTop >= this.basicInformation && scrollTop < this.certificateInformation) {
+      this.setData({
+        type: 'certificateInformation'
+      })
+    } else if (scrollTop >= this.certificateInformation && scrollTop < this.authorSynopsis) {
+      this.setData({
+        type: 'authorSynopsis'
+      })
+    } else if (scrollTop >= this.authorSynopsis && scrollTop < this.listings) {
+      this.setData({
+        type: 'listings'
+      })
+    } else if (scrollTop >= this.listings && scrollTop < this.relatedTextbooks) {
+      this.setData({
+        type: 'relatedTextbooks'
+      })
+    }
+
+
+
+  },
+  onCe() {
+
+    let that = this;
+    var query = wx.createSelectorQuery()
+    console.log(query, '12355');
+    //鑾峰彇鏉垮潡涓�绂籹croll-view椤堕儴鐨勮窛绂�,绗竴鏉垮潡瀹為檯璺濈涓�0锛屾澶勮幏鍙栧彧涓虹粰绗簩鍙婄涓夋澘鍧楀噺鍘荤涓�鏉垮潡璺濈scroll-view鐨勯《閮ㄨ窛绂�
+    wx.createSelectorQuery().select('#basicInformation').boundingClientRect(function (res) {
+      console.log(res, '456882588');
+      that.basicInformation = res.top
+    }).exec()
+    //鑾峰彇鏉垮潡浜岀scroll-view椤堕儴鐨勮窛绂�
+    query.select('#certificateInformation').boundingClientRect(function (res) {
+      that.certificateInformation = res.top - that.basicInformation
+    }).exec()
+    //鑾峰彇鏉垮潡涓夌scroll-view椤堕儴鐨勮窛绂�
+    query.select('#authorSynopsis').boundingClientRect(function (res) {
+      that.authorSynopsis = res.top - that.basicInformation
+    }).exec()
+    //鑾峰彇鏉垮潡鍥涚scroll-view椤堕儴鐨勮窛绂�
+    query.select('#listings').boundingClientRect(function (res) {
+      that.listings = res.top - that.basicInformation
+    }).exec()
+    //鑾峰彇鏉垮潡浜旂scroll-view椤堕儴鐨勮窛绂�
+    query.select('#relatedTextbooks').boundingClientRect(function (res) {
+      that.relatedTextbooks = res.top - that.basicInformation
+    }).exec()
+  },
+  setCoolect() {
+    console.log(456);
+
+    // 棣栭〉娴嬭瘯鐧诲綍鍔熻兘锛屽悗缁敞閲�
+    // 妫�鏌ョ櫥褰曠姸鎬�
+    const token = wx.getStorageSync(app.config.tokenKey)
+    if (!token) {
+      loginInfo(app, (data) => {
+        // 濡傛灉涓嶆槸绗竴娆$櫥褰曪紝浼氭墽琛屽洖璋�
+        if (data) {
+          if (this.data.digitalsData.isFavourite) {
+            app.MG.store
+              .delProductLink({
+                productIds: [this.data.digitalsData.id],
+                linkType: 'FavoriteBookCity'
+              })
+              .then(() => {
+                this.setData({
+                  "digitalsData.isFavourite": false
+                })
+              })
+          } else {
+            let params = {
+              productIds: [this.data.digitalsData.id],
+              linkType: 'FavoriteBookCity'
+            }
+            app.MG.store.addProductLink(params).then((res) => {
+              this.setData({
+                "digitalsData.isFavourite": true
+              })
+            })
+          }
+        } else {
+          // 鍑虹幇閿欒锛岃繑鍥瀎alse
+        }
+      })
+    } else {
+      if (this.data.digitalsData.isFavourite) {
+        app.MG.store
+          .delProductLink({
+            productIds: [this.data.digitalsData.id],
+            linkType: 'FavoriteBookCity'
+          })
+          .then(() => {
+            this.setData({
+              "digitalsData.isFavourite": false
+            })
+          })
+      } else {
+        let params = {
+          productIds: [this.data.digitalsData.id],
+          linkType: 'FavoriteBookCity'
+        }
+        app.MG.store.addProductLink(params).then((res) => {
+          this.setData({
+            "digitalsData.isFavourite": true
+          })
+        })
+      }
+    }
+  },
+  // 鎴戣寤鸿
+  suggestBtn() {
+    // 妫�鏌ョ櫥褰曠姸鎬�
+    const token = wx.getStorageSync(app.config.tokenKey);
+
+    console.log(465);
+
+    const child = this.selectComponent("#suggest-component");
+    // if (token)
+    //   // child.showDialog();
+    //   this.setData({
+    //     showIndex: '1'
+    //   })
+  },
+
 })
\ No newline at end of file

--
Gitblit v1.9.1