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