| | |
| | | 929710 |
| | | |
| | | |
| | | // pages/resourceDetails/document/index.js |
| | | import Toast from 'tdesign-miniprogram/toast/index'; |
| | | const app = getApp() |
| | |
| | | } from '../../../../assets/js/login'; |
| | | import XLSX from '../../../../utils/xlsx.mini.min'; |
| | | Page({ |
| | | |
| | | /** |
| | | * 页面的初始数据 |
| | | */ |
| | |
| | | learnTimeList: [], |
| | | learnTimeData: 0, |
| | | threeLeveData: [], |
| | | selectTypeData: '' |
| | | selectTypeData: '', |
| | | promptVisable: false, |
| | | showMd5: '', |
| | | confirmBtn: { |
| | | content: '确定', |
| | | variant: 'base', |
| | | }, |
| | | }, |
| | | /** |
| | | * 生命周期函数--监听页面加载 |
| | |
| | | deadline: options.deadline, |
| | | formPath: options.formPath, |
| | | }) |
| | | const token = wx.getStorageSync(app.config.tokenKey) |
| | | if (!token) { |
| | | loginInfo(app, (data) => { |
| | | if (options.formPath == 'jsek_cloudLearning') { |
| | | this.setData({ |
| | | learnStartTime: Date.now(), |
| | | }) |
| | | this.getLearnTime() |
| | | } |
| | | this.getBookInfo(this.data.bookId) |
| | | // if (data) { |
| | | // this.resourceDetailsData() |
| | | // } else { |
| | | // this.resourceDetailsData() |
| | | // } |
| | | if (options.formPath == 'jsek_cloudLearning') { |
| | | this.setData({ |
| | | learnStartTime: Date.now(), |
| | | }) |
| | | } else { |
| | | if (options.formPath == 'jsek_cloudLearning') { |
| | | this.setData({ |
| | | learnStartTime: Date.now(), |
| | | }) |
| | | this.getLearnTime() |
| | | } |
| | | this.getBookInfo(this.data.bookId) |
| | | // this.resourceDetailsData() |
| | | this.getLearnTime() |
| | | } |
| | | this.getBookInfo(this.data.bookId) |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面初次渲染完成 |
| | | */ |
| | | onReady() { |
| | | |
| | | }, |
| | | |
| | | onReady() {}, |
| | | /** |
| | | * 生命周期函数--监听页面显示 |
| | | */ |
| | |
| | | startTime: Date.now() |
| | | }) |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面隐藏 |
| | | */ |
| | |
| | | } |
| | | } |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面卸载 |
| | | */ |
| | |
| | | } |
| | | } |
| | | }, |
| | | |
| | | count(timeStr) { |
| | | const data = { |
| | | appRefCode: app.config.appRefCode, |
| | |
| | | /** |
| | | * 页面相关事件处理函数--监听用户下拉动作 |
| | | */ |
| | | onPullDownRefresh() { |
| | | |
| | | }, |
| | | |
| | | onPullDownRefresh() {}, |
| | | /** |
| | | * 页面上拉触底事件的处理函数 |
| | | */ |
| | | onReachBottom() {}, |
| | | |
| | | /** |
| | | * 用户点击右上角分享 |
| | | */ |
| | |
| | | goBack() { |
| | | wx.navigateBack() |
| | | }, |
| | | |
| | | // 获取图书详情 |
| | | getBookInfo(id) { |
| | | const query = { |
| | |
| | | }) |
| | | }, |
| | | |
| | | // 判断当前目标是否已购买 |
| | | async getCmsDataByQrcode() { |
| | | let query = { |
| | | storeInfo: this.data.storeInfo, |
| | | path: '*', |
| | | queryType: '*', |
| | | productId: this.data.bookId, |
| | | itemId: this.data.activeId, |
| | | itemFields: { |
| | | // 资源类型,试读文件,是否允许下载等参数 |
| | | selectType: [], |
| | | freeFile: [], |
| | | file: [], |
| | | protectedFile: [], |
| | | resourcesClassification: [], |
| | | isDownload: [], |
| | | jsek_resourceBrief: [], |
| | | jsek_link: [], |
| | | jsek_questionBank: [], |
| | | learnSelectType: [] |
| | | }, |
| | | pading: { |
| | | start: 0, |
| | | size: 999 |
| | | } |
| | | } |
| | | const data = await app.MG.store.getProductDetail(query) |
| | | return data?.datas ?? [] |
| | | }, |
| | | |
| | | resourceDetailsData() { |
| | | wx.showLoading({ |
| | | title: '正在加载...', |
| | |
| | | if (this.data.storeInfo) { |
| | | query.storeInfo = this.data.storeInfo |
| | | } |
| | | app.MG.store.getProductDetail(query).then((res) => { |
| | | app.MG.store.getProductDetail(query).then(async (res) => { |
| | | this.setData({ |
| | | isBuy: res.datas.purchasedSaleMethodIdList.includes(res.datas.defaultSaleMethodId) |
| | | }) |
| | | res.datas.cmsDatas[0].datas.forEach((item) => { |
| | | // if (this.data.productLinkPath == item.productLinkPath) { |
| | | // this.handleTeachData(item) |
| | | // this.setData({ |
| | | // titleName: item.name, |
| | | // selectType: item.selectType, |
| | | // learnSelectType: item.learnSelectType |
| | | // }) |
| | | // } else { |
| | | // return wx.showToast({ |
| | | // icon: 'none', |
| | | // title: '暂无资源', |
| | | // }) |
| | | // } |
| | | if (this.data.productLinkPath == item.productLinkPath) { |
| | | this.handleTeachData(item) |
| | | this.setData({ |
| | | titleName: item.name, |
| | | selectType: item.selectType, |
| | | learnSelectType: item.learnSelectType |
| | | }) |
| | | } |
| | | if (this.data.storeInfo == 'jsek_digitalCourses') { |
| | | if (this.data.isBuy) { |
| | | if (this.data.productLinkPath == item.productLinkPath) { |
| | |
| | | }) |
| | | if (this.data.source == 'qrcode') { |
| | | let qrData = this.data.threeLeveData.find(ditem => ditem.id == this.data.activeId) |
| | | if (qrData && this.data.isLearnDataBuy) { |
| | | if (qrData) { |
| | | this.setData({ |
| | | threeLeveData: [qrData] |
| | | }) |
| | | } |
| | | const currentSaleMaths = await this.getCmsDataByQrcode() |
| | | // 判断是否购买目录 |
| | | const catalg = currentSaleMaths?.saleMethod?.find(i => currentSaleMaths.purchasedSaleMethodIdList.includes(i.Id)) |
| | | // 判断是否购买资源本身 |
| | | const ownCms = qrData.saleMethods?.find(i => currentSaleMaths.purchasedSaleMethodIdList.includes(i.Id)) |
| | | if (catalg || ownCms) { |
| | | this.setData({ |
| | | threeLeveData: [qrData] |
| | | }) |
| | | } else { |
| | | this.setData({ |
| | | threeLeveData: [] |
| | |
| | | learnSelectType: item.learnSelectType, |
| | | }) |
| | | } else { |
| | | wx.showToast({ |
| | | icon: 'none', |
| | | title: '请先返回资源所在图书详情购买视频资源', |
| | | }) |
| | | wx.navigateTo({ |
| | | url: `/packageBookService/pages/bookServices/detail/index?id=${this.data.bookDetail.id}&name=${this.data.bookDetail.name}&tabValue=jsek_cloudLearning`, |
| | | }); |
| | | // wx.showToast({ |
| | | // icon: 'none', |
| | | // title: '请先返回资源所在图书详情购买视频资源', |
| | | // }) |
| | | // wx.navigateTo({ |
| | | // url: `/packageBookService/pages/bookServices/detail/index?id=${this.data.bookDetail.id}&name=${this.data.bookDetail.name}&tabValue=jsek_cloudLearning`, |
| | | // }); |
| | | } |
| | | }) |
| | | }, |
| | |
| | | let that = this |
| | | //图片 |
| | | if (item.selectType == 'picture' || item.learnSelectType == 'picture') { |
| | | let file = item.file ? item.file : item.protectedFile ? item.protectedFile : item.freeFile |
| | | const isBuy = this.cmsItemIsBuy(item) |
| | | let file = isBuy ? item.protectedFile || item.file : item.freeFile |
| | | this.setData({ |
| | | showData: app.config.requestCtx + '/file/api/ApiDownload?md5=' + file, |
| | | }) |
| | |
| | | }) |
| | | wx.hideLoading(); |
| | | } |
| | | // if (item.selectType == 'pdf') { |
| | | // console.log('pdf', item); |
| | | // wx.hideLoading() |
| | | // let md5 = item.file ? item.file : item.freeFile |
| | | // let pdfSrc = app.config.pdfUrl + "?MD5=" + md5 + "&url=" + app.config.requestCtx + '¤tPage=' + "1" + "&isPreview=" + false + "&warterMark=" + "北京师范大学出版社" + "&previewPages=" + 30 + "&token=" + wx.getStorageSync(app.config.tokenKey) |
| | | // this.setData({ |
| | | // pdfSrc: pdfSrc |
| | | // }) |
| | | // } |
| | | //文档等 |
| | | if (item.selectType == 'document' || item.selectType == 'pdf' || item.learnSelectType == 'document' || item.learnSelectType == 'pdf') { |
| | | let md5 = item.file ? item.file : item.protectedFile ? item.protectedFile : item.freeFile |
| | | const isBuy = this.cmsItemIsBuy(item) |
| | | let md5 = isBuy ? item.protectedFile || item.file || item.freeFile : item.freeFile |
| | | if (item.fileMap[md5]?.extension == 'xlsx' || item.fileMap[md5]?.extension == 'xls') { |
| | | this.setData({ |
| | | selectTypeData: 'excel' |
| | | selectTypeData: 'excel', |
| | | showMd5: md5, |
| | | }) |
| | | wx.request({ |
| | | url: app.config.requestCtx + '/file/api/ApiDownload?md5=' + md5, |
| | |
| | | } |
| | | } |
| | | }, |
| | | |
| | | onClick() { |
| | | this.setData({ |
| | | images: [ |
| | |
| | | } = e.detail; |
| | | console.log('change', index); |
| | | }, |
| | | |
| | | onDelete(e) { |
| | | const { |
| | | index |
| | | } = e.detail; |
| | | |
| | | Toast({ |
| | | context: this, |
| | | selector: '#t-toast', |
| | | message: `删除第${index + 1}个`, |
| | | }); |
| | | }, |
| | | |
| | | onClose(e) { |
| | | const { |
| | | trigger |
| | |
| | | urls: urls // 需要预览的图片http链接列表 |
| | | }) |
| | | }, |
| | | |
| | | // myTouchStart(e) { |
| | | // //---------------------记录缩放事件信息--------------------- |
| | | // // 当两根手指放上去的时候,将距离(distance)初始化。 |
| | | // let xMove = e.touches[1].clientX - e.touches[0].clientX; |
| | | // let yMove = e.touches[1].clientY - e.touches[0].clientY; |
| | | // //计算开始触发两个手指坐标的距离 |
| | | // const distance = Math.sqrt(xMove * xMove + yMove * yMove); |
| | | // this.setData({ |
| | | // distance: distance |
| | | // }) |
| | | // //---------------------记录缩放事件信息end--------------------- |
| | | // }, |
| | | // myTouchMove(e) { |
| | | // // ----------------监听手势缩小放大事件---------------- |
| | | // // 单手指缩放不做任何操作 |
| | | // if (e.touches.length != 1) { |
| | | // //双手指运动 x移动后的坐标和y移动后的坐标 |
| | | // let xMove = e.touches[1].clientX - e.touches[0].clientX; |
| | | // let yMove = e.touches[1].clientY - e.touches[0].clientY; |
| | | // //双手指运动新的 ditance |
| | | // let newDistance = Math.sqrt(xMove * xMove + yMove * yMove); |
| | | // //计算移动的过程中实际移动了多少的距离 |
| | | // let distanceDiff = newDistance - this.data.distance; |
| | | // // newScale = scale + 0.005 * distanceDiff |
| | | // console.log('移动距离', distanceDiff); |
| | | // this.setData({ |
| | | // newScale: this.data.newScale + 0.005 * distanceDiff |
| | | // }) |
| | | // // 打开缩放监听 |
| | | // // zoomFlag = true |
| | | // this.setData({ |
| | | // lzoomFlag: true |
| | | // }) |
| | | // return |
| | | // } |
| | | // // ----------------监听手势缩小放大事件end---------------- |
| | | // }, |
| | | // myTouchEnd() { |
| | | // if (this.data.lzoomFlag) { |
| | | // if (this.data.newScale > 1.3) { |
| | | // console.log("放大了", this.data.newScale); |
| | | // } else if (this.data.newScale < 0.7, this.data.newScale) { |
| | | // console.log("缩小了"); |
| | | // } |
| | | // // 关闭缩放监听 |
| | | // // zoomFlag = false |
| | | // this.setData({ |
| | | // lzoomFlag: false |
| | | // }) |
| | | // } |
| | | // }, |
| | | // 判断当前点击的数据是否购买 |
| | | cmsItemIsBuy(item) { |
| | | let flag = false |
| | | // 买了 |
| | | if (this.data.buyList.length) { |
| | | if (this.data.buyList.some(citem => item.productLinkPath.includes(citem.productLinkPath))) |
| | | flag = true |
| | | } else { |
| | | // 没买且无销售方式 |
| | | if (!item.saleMethod.length) { |
| | | flag = true |
| | | } else { |
| | | // 没买且销售方式过期//没买,销售方式价格为0 |
| | | const itemSaleMethod = item.saleMethod.find(citem => citem.SaleType == 'Normal') |
| | | if (new Date().getTime() > new Date(itemSaleMethod.EndDate).getTime() || itemSaleMethod.Price == 0) flag = true |
| | | } |
| | | } |
| | | return flag |
| | | }, |
| | | // |
| | | scrolltolower(e) { |
| | | const activeData = this.data.threeLeveData.find(item => item.id == this.data.activeId) |
| | | const flag = this.data.naturalResources.some(item => item.includes(activeData.freeFile)) |
| | | if ((this.data.showMd5 == activeData.freeFile || flag) && activeData.protectedFile) |
| | | this.setData({ |
| | | promptVisable: true |
| | | }) |
| | | }, |
| | | // 提示弹窗关闭 |
| | | closePromapDialog() { |
| | | this.setData({ |
| | | promptVisable: false |
| | | }) |
| | | if (this.data.source == 'qrcode') { |
| | | wx.navigateTo({ |
| | | url: `/packageBookService/pages/bookServices/detail/index?id=${this.data.bookDetail.id}&name=${this.data.bookDetail.name}&tabValue=${this.data.formPath}`, |
| | | }); |
| | | } else { |
| | | wx.navigateBack() |
| | | } |
| | | } |
| | | }) |