| | |
| | | const flag = list.findIndex((item) => item.checked == true); |
| | | }, |
| | | }, |
| | | |
| | | methods: { |
| | | handleList(tree) { |
| | | for (let index = 0; index < tree.length; index++) { |
| | |
| | | url = "/packageDomain/pages/resourceDetails/document/index"; |
| | | } |
| | | wx.navigateTo({ |
| | | url: `${url}?productLinkPath=${item.productLinkPath}&parentProductLinkPath=${parentProductLinkPath}&parentName=${parentName}&activeId=${item.id}&bookId=${this.properties.bookInfo.id}&bookName=${this.properties.bookInfo.name}&cmsId=${this.properties.bookInfo.rootCmsItemId}&formPath=${this.properties.tab}&applyState=${this.properties.applyState}&deadline=${this.properties.deadline}`, |
| | | // url: `${url}?productLinkPath=${item.productLinkPath}&parentProductLinkPath=${parentProductLinkPath}&parentName=${parentName}&activeId=${item.id}&bookId=${this.properties.bookInfo.id}&bookName=${this.properties.bookInfo.name}&cmsId=${this.properties.bookInfo.rootCmsItemId}&formPath=${this.properties.tab}&applyState=${this.properties.applyState}&deadline=${this.properties.deadline}`, |
| | | url: '/packageDomain/pages/resourceDetails/myVideo/index?formPath=jsek_cloudLearning&parentName=mingxing&cmsId=161796&productLinkPath=161796\\161798\\165396\\162299&activeId=162299&parentProductLinkPath=161798\\165396&source=qrcode&bookName=&bookId=7129' |
| | | }); |
| | | } |
| | | const token = wx.getStorageSync(app.config.tokenKey); |
| | |
| | | goPlayerFun() |
| | | } |
| | | }, |
| | | |
| | | // 拿到所有项 |
| | | getAllChildren(id) { |
| | | let result = []; |
| | |
| | | }); |
| | | return result; |
| | | }, |
| | | |
| | | // 变为true |
| | | findAndUpdateItemsByIds(tree, ids, state) { |
| | | function findAndUpdate(node) { |
| | |
| | | } |
| | | return tree; // 返回修改后的完整数组 |
| | | }, |
| | | |
| | | // 全选 |
| | | checkAll() { |
| | | wx.showLoading() |
| | |
| | | this.triggerEvent("changeCheckAll", myEventDetail, myEventOption); |
| | | wx.hideLoading() |
| | | }, |
| | | |
| | | // 章节勾选 |
| | | checkResourceTitle(e) { |
| | | wx.showLoading() |
| | |
| | | 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({ |
| | | |
| | | /** |
| | | * 页面的初始数据 |
| | | */ |
| | |
| | | selectTypeData: '', |
| | | promptVisable: false, |
| | | showMd5: '', |
| | | source: "", |
| | | confirmBtn: { |
| | | content: '确定', |
| | | variant: 'base', |
| | |
| | | applyState: options.applyState, |
| | | deadline: options.deadline, |
| | | formPath: options.formPath, |
| | | source: options.source, |
| | | }) |
| | | if (options.formPath == 'jsek_cloudLearning') { |
| | | this.setData({ |
| | |
| | | } |
| | | 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: '正在加载...', |
| | |
| | | query.storeInfo = this.data.storeInfo |
| | | } |
| | | app.MG.store.getProductDetail(query).then(async (res) => { |
| | | wx.hideLoading(); |
| | | const list = res.datas.cmsDatas[0]?.datas |
| | | if (this.data.source == 'qrcode') { |
| | | let qrData = res.datas.cmsDatas[0].datas.find(ditem => ditem.id == this.data.activeId) |
| | | if (qrData) { |
| | | this.setData({ |
| | | threeLeveData: [qrData] |
| | | }) |
| | | } |
| | | } else { |
| | | this.setData({ |
| | | threeLeveData: [] |
| | | }) |
| | | } |
| | | this.setData({ |
| | | isBuy: res.datas.purchasedSaleMethodIdList.includes(res.datas.defaultSaleMethodId) |
| | | }) |
| | | for (const item of list) { |
| | | 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 |
| | | }) |
| | | } |
| | | if (this.data.storeInfo == 'jsek_digitalCourses') { |
| | | if (this.data.isBuy) { |
| | | if (this.data.productLinkPath == item.productLinkPath) { |
| | |
| | | } |
| | | } |
| | | } else { |
| | | const isBuyCms = await app.MG.file.checkCmsItem({ |
| | | cmsItemId: Number(item.id) |
| | | }) |
| | | item.isBuyCms = isBuyCms |
| | | if (isBuyCms) { |
| | | this.data.threeLeveData.push(item) |
| | | // 买了 |
| | | if (this.data.buyList.length) { |
| | | if (this.data.buyList.some(citem => item.productLinkPath.includes(citem.productLinkPath))) { |
| | | if (this.data.productLinkPath == item.productLinkPath) { |
| | | this.data.threeLeveData.push(item) |
| | | } |
| | | } |
| | | } else { |
| | | if (item.freeFile) { |
| | | this.data.threeLeveData.push(item) |
| | | if (!item.saleMethod.length) { |
| | | // 没买且无销售方式 |
| | | if (this.data.productLinkPath == item.productLinkPath) { |
| | | this.data.threeLeveData.push(item) |
| | | } |
| | | } else { |
| | | wx.showModal({ |
| | | icon: 'error', |
| | | title: '温馨提示', |
| | | content: '请购买资源,即将返回购买页', |
| | | confirmText: '确定', |
| | | showCancel: false, // 关闭取消按钮 |
| | | success: (cres) => { |
| | | if (cres.confirm) { |
| | | wx.navigateTo({ |
| | | url: '/packageBookService/pages/bookServices/detail/index?id=' + this.data.bookId + '&name=' + this.data.bookName + '&tabValue=' + this.data.formPath, |
| | | }) |
| | | } |
| | | // 没买且销售方式过期//没买,销售方式价格为0 |
| | | const itemSaleMethod = item.saleMethod.find(citem => citem.SaleType == 'Normal') |
| | | if (new Date().getTime() > new Date(itemSaleMethod.EndDate).getTime() || itemSaleMethod.Price == 0) { |
| | | if (this.data.productLinkPath == item.productLinkPath) { |
| | | this.data.threeLeveData.push(item) |
| | | } |
| | | }); |
| | | return; // 直接返回,避免执行后续代码 |
| | | } |
| | | // 没买且只有试读资源 |
| | | if (!item.file && item.freeFile) { |
| | | if (this.data.productLinkPath == item.productLinkPath) { |
| | | this.data.threeLeveData.push(item) |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | if (this.data.source == 'qrcode') { |
| | | let qrData = this.data.threeLeveData.find(ditem => ditem.id == this.data.activeId) |
| | | 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: [] |
| | | }) |
| | | } |
| | | } else { |
| | | this.setData({ |
| | | threeLeveData: this.data.threeLeveData |
| | | }) |
| | | } |
| | | if (this.data.threeLeveData.length > 0) { |
| | | let item = this.data.threeLeveData[0] |
| | |
| | | selectType: item.selectType, |
| | | 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`, |
| | | // }); |
| | | } |
| | | }) |
| | | }, |
| | |
| | | let that = this |
| | | //图片 |
| | | if (item.selectType == 'picture' || item.learnSelectType == 'picture') { |
| | | const isBuy = item.isBuyCms |
| | | 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, |
| | |
| | | } |
| | | //文档等 |
| | | if (item.selectType == 'document' || item.selectType == 'pdf' || item.learnSelectType == 'document' || item.learnSelectType == 'pdf') { |
| | | const isBuy = item.isBuyCms |
| | | 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({ |
| | |
| | | }) |
| | | let worksheet = workbook.Sheets[workbook.SheetNames[0]] |
| | | let innerHTML = XLSX.utils.sheet_to_json(worksheet) |
| | | console.log(innerHTML) |
| | | that.setData({ |
| | | naturalResources: innerHTML |
| | | }) |
| | |
| | | } |
| | | } |
| | | }, |
| | | |
| | | 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 |
| | |
| | | // innerAudioContext.onPlay(function callback), |
| | | // InnerAudioContext.onTimeUpdate(function callback) |
| | | Page({ |
| | | |
| | | /** |
| | | * 页面的初始数据 |
| | | */ |
| | |
| | | variant: 'base', |
| | | }, |
| | | }, |
| | | |
| | | format(time) { |
| | | let minute = Math.floor(time / 60); |
| | | let second = Math.round(time % 60); |
| | |
| | | let secondStr = second < 10 ? "0" + second : "" + second; |
| | | return minuteStr + ":" + secondStr; |
| | | }, |
| | | |
| | | audio: null, |
| | | // 格式化笔记时间 |
| | | convertTimestamp(timestamp) { |
| | |
| | | const formattedDate = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}` |
| | | return formattedDate |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面加载 |
| | | */ |
| | |
| | | this.resourceDetailsData() |
| | | this.getBookInfo(options.bookId) |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面初次渲染完成 |
| | | * |
| | | */ |
| | | onReady() {}, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面显示 |
| | | */ |
| | |
| | | }) |
| | | }) |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面隐藏 |
| | | */ |
| | |
| | | isplay: true |
| | | }) |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面卸载 |
| | | * |
| | |
| | | console.log('统计', data) |
| | | app.MG.job.newJobWithApiNewEvent(data).then((res) => {}) |
| | | }, |
| | | |
| | | getLearnTime() { |
| | | app.MG.identity |
| | | .getUserKey({ |
| | |
| | | }) |
| | | }) |
| | | }, |
| | | |
| | | onTabsChange(event) {}, |
| | | onTabsClick(event) {}, |
| | | handleChange(e) { |
| | |
| | | } else { |
| | | loginInfo(app, (data) => {}) |
| | | } |
| | | |
| | | }, |
| | | |
| | | closeDialog() { |
| | | this.setData({ |
| | | dialogKey: false |
| | |
| | | goBack() { |
| | | wx.navigateBack(); |
| | | }, |
| | | |
| | | // 判断当前目标是否已购买 |
| | | 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() { |
| | | let query = { |
| | | path: '*', |
| | |
| | | let selectedId = -1; // 初始化选中项索引 |
| | | let showDataUrl = ''; |
| | | let titleName = ''; |
| | | const list = res.datas.cmsDatas[0]?.datas |
| | | res.datas.cmsDatas[0].datas.forEach((item, index) => { |
| | | if (item.selectType === "audio" || item.learnSelectType === "audio") { |
| | | if (this.data.storeInfo == 'jsek_digitalCourses') { |
| | | if (item.sysType == 'CmsItem') { |
| | | this.data.threeLeveData.push(item) |
| | | } |
| | | if (item.sysType == 'CmsItem' && item.freeFile) { |
| | | this.data.threeLeveData.push(item) |
| | | } |
| | | } else { |
| | | if (this.data.buyList.length) { |
| | | if (this.data.buyList.some(citem => item.productLinkPath.includes(citem.productLinkPath))) { |
| | | this.data.threeLeveData.push(item) |
| | | } |
| | | } else { |
| | | if (!item.saleMethod.length) { |
| | | // 没买且无销售方式 |
| | | this.data.threeLeveData.push(item) |
| | | } else { |
| | | // 没买且销售方式过期//没买,销售方式价格为0 |
| | | const itemSaleMethod = item.saleMethod.find(citem => citem.SaleType == 'Normal') |
| | | if (new Date().getTime() > new Date(itemSaleMethod.EndDate).getTime() || itemSaleMethod.Price == 0) { |
| | | this.data.threeLeveData.push(item) |
| | | } |
| | | // 没买且只有试读资源 |
| | | if ((!item.file && !item.protectedFile) && item.freeFile) { |
| | | const state = this.data.threeLeveData.find(citem => citem.id == item.id) |
| | | if (!state) |
| | | this.data.threeLeveData.push(item) |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | }); |
| | | if (this.data.source == 'qrcode') { |
| | | let qrData = res.datas.cmsDatas[0].datas.find(ditem => ditem.id == this.data.activeId) |
| | | if (qrData) { |
| | | let qrData = this.data.threeLeveData.find(ditem => ditem.id == this.data.activeId) |
| | | 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: [] |
| | | }) |
| | | } |
| | | } else { |
| | | this.setData({ |
| | | threeLeveData: [] |
| | | threeLeveData: this.data.threeLeveData |
| | | }) |
| | | } |
| | | for (const item of list) { |
| | | if (item.selectType === "audio" || item.learnSelectType === "audio") |
| | | if (this.data.storeInfo == 'jsek_digitalCourses') { |
| | | if (this.data.isBuy) { |
| | | if (item.sysType == 'CmsItem') { |
| | | this.data.threeLeveData.push(item) |
| | | } |
| | | } else { |
| | | if (item.sysType == 'CmsItem' && item.freeFile) { |
| | | this.data.threeLeveData.push(item) |
| | | } |
| | | } |
| | | } else { |
| | | const isBuyCms = await app.MG.file.checkCmsItem({ |
| | | cmsItemId: Number(item.id) |
| | | }) |
| | | item.isBuyCms = isBuyCms |
| | | if (isBuyCms) { |
| | | this.data.threeLeveData.push(item) |
| | | } else { |
| | | if (item.freeFile) { |
| | | this.data.threeLeveData.push(item) |
| | | } else { |
| | | wx.showModal({ |
| | | icon: 'error', |
| | | title: '温馨提示', |
| | | content: '请购买资源,即将返回购买页', |
| | | confirmText: '确定', |
| | | showCancel: false, // 关闭取消按钮 |
| | | success: (cres) => { |
| | | if (cres.confirm) { |
| | | wx.navigateTo({ |
| | | url: '/packageBookService/pages/bookServices/detail/index?id=' + this.data.bookId + '&name=' + this.data.bookName + '&tabValue=' + this.data.formPath, |
| | | }) |
| | | } |
| | | } |
| | | }); |
| | | return; // 直接返回,避免执行后续代码 |
| | | } |
| | | } |
| | | } |
| | | } |
| | | if (this.data.threeLeveData.length > 0) { |
| | | selectedId = this.data.threeLeveData.findIndex(items => items.productLinkPath == this.data.productLinkPath) |
| | | if (selectedId !== -1) { |
| | | let datas = this.data.threeLeveData[selectedId]; |
| | | if (this.data.formPath == 'jsek_cloudLearning') { |
| | | let file = datas.isBuyCms ? datas.protectedFile || datas.freeFile : datas.freeFile |
| | | let file = this.cmsItemIsBuy(datas) ? datas.protectedFile || datas.freeFile : datas.freeFile |
| | | showDataUrl = app.config.requestCtx + '/file/api/ApiDownloadForAuthorize?md5=' + file + '&token=' + wx.getStorageSync(app.config.tokenKey); |
| | | } else { |
| | | showDataUrl = datas.file ? app.config.requestCtx + '/file/api/ApiDownload?md5=' + datas.file : app.config.requestCtx + '/file/api/ApiDownload?md5=' + datas.freeFile |
| | |
| | | toView: 'activeName' + selectedId, |
| | | }); |
| | | this.pubulicPlayFun(); |
| | | } else { |
| | | wx.showModal({ |
| | | title: '温馨提示', |
| | | content: '该资源未购买,将返回购买', |
| | | success: (res) => { |
| | | if (res.confirm) { |
| | | 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() |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | onVideo(e) { |
| | | this.setPlayerList() |
| | | this.setData({ |
| | |
| | | } |
| | | } |
| | | }, |
| | | |
| | | getProductUserSubmitTopicGet() { |
| | | app.MG.ugc.getProductUserSubmitTopic({ |
| | | productId: this.data.bookId, |
| | |
| | | }) |
| | | }) |
| | | }, |
| | | |
| | | newTopicMessageGet() { |
| | | let query = { |
| | | topicIdOrRefCode: topicId + '', |
| | |
| | | cmsTypeRefCode: '', |
| | | newDataListRequest: [] |
| | | } |
| | | app.MG.ugc.newTopicMessage(query).then(res => { |
| | | |
| | | }) |
| | | app.MG.ugc.newTopicMessage(query).then(res => {}) |
| | | }, |
| | | |
| | | // 标题改变 |
| | | changeTitle(e) { |
| | | this.setData({ |
| | |
| | | submitTitle: e.detail.value |
| | | }) |
| | | }, |
| | | |
| | | confirmSuggest() { |
| | | if (!this.data.textvalue.trim()) { |
| | | return wx.showToast({ |
| | | icon: 'error', |
| | | title: '请填写笔记内容', |
| | | }) |
| | | |
| | | } else if (!this.data.submitTitle) { |
| | | return wx.showToast({ |
| | | icon: 'error', |
| | |
| | | } else if (this.data.submitType == 'edit') { |
| | | this.updateNote() |
| | | } |
| | | |
| | | this.setData({ |
| | | dialogKey: false |
| | | }); |
| | | |
| | | this.getNoteList() |
| | | |
| | | }, |
| | | onTextarea() {}, |
| | | textareaChange(e) { |
| | |
| | | textvalue: e.detail.value |
| | | }) |
| | | }, |
| | | |
| | | // 获取笔记列表 |
| | | async getNoteList() { |
| | | // this.setData({ |
| | |
| | | "pageCount.total": res.totalSize, |
| | | noteList: res.datas, |
| | | }) |
| | | |
| | | }) |
| | | }, |
| | | // 编辑按钮 |
| | |
| | | submitType: "edit", |
| | | textvalue: note.content, |
| | | submitTitle: note.name, |
| | | |
| | | noteId: note.id, |
| | | dialogKey: true, |
| | | }) |
| | | |
| | | // this.showDialog() |
| | | }, |
| | | |
| | | // 删除笔记 |
| | | deleteNote(e) { |
| | | const id = e.currentTarget.dataset.id |
| | |
| | | }); |
| | | }, 100); |
| | | }); |
| | | |
| | | |
| | | //播放事件 |
| | | myAudio.play(); |
| | | |
| | | // 播放完成处理,按钮变一下 |
| | | myAudio.onEnded((res) => { |
| | | this.setData({ |
| | |
| | | myAudioPos: '', |
| | | }) |
| | | }); |
| | | |
| | | //进度条变化 |
| | | myAudio.onTimeUpdate(() => { |
| | | myAudio.startTime = 0 |
| | |
| | | // console.log(myAudio.currentTime.toFixed(3), myAudio.duration); |
| | | }) |
| | | }, |
| | | |
| | | //播放 |
| | | play() { |
| | | myAudio.startTime = this.data.myAudioCurrent; //考虑到进度条被拖动,不一定从00:00:00开始 |
| | |
| | | isplay: false |
| | | }); |
| | | }, |
| | | |
| | | // 停止 |
| | | stop() { |
| | | myAudio.pause(); |
| | |
| | | isplay: true |
| | | }); |
| | | }, |
| | | |
| | | // 播放倍速 |
| | | onSpeed() { |
| | | let c = this.data.speed; |
| | |
| | | speed: c, |
| | | }) |
| | | } |
| | | |
| | | setTimeout(() => { |
| | | myAudio.startTime = this.data.myAudioDuration //开始时间 |
| | | myAudio.playbackRate = this.data.speed; // 播放速率 |
| | | }, 200); |
| | | }, |
| | | |
| | | // 拖动进度条,到指定位置 |
| | | hanle_slider_change(e) { |
| | | const position = e.detail.value; |
| | |
| | | myAudioCurrent: this.format(currentTime) |
| | | }) |
| | | }, |
| | | |
| | | toggleDropdown() { |
| | | this.setData({ |
| | | showDropdown: !this.data.showDropdown |
| | |
| | | } from '../../../../assets/js/login'; |
| | | import moment from 'moment' |
| | | Page({ |
| | | |
| | | /** |
| | | * 页面的初始数据 |
| | | */ |
| | |
| | | content: '确定', |
| | | variant: 'base', |
| | | }, |
| | | showMd5: '', |
| | | isBuyCms: false |
| | | showMd5: '' |
| | | }, |
| | | // 格式化笔记时间 |
| | | convertTimestamp(timestamp) { |
| | |
| | | activeId: options.activeId, |
| | | storeInfo: options.storeInfo, |
| | | bookId: options.bookId, |
| | | bookName: options.bookName, |
| | | cmsId: options.cmsId, |
| | | parentProductLinkPath: options.parentProductLinkPath, |
| | | productLinkPath: options.productLinkPath, |
| | | formPath: options.formPath, |
| | |
| | | } |
| | | this.getBookInfo(this.data.bookId) |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面显示 |
| | | */ |
| | |
| | | startTime: Date.now() |
| | | }) |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面隐藏 |
| | | */ |
| | |
| | | } |
| | | this.setPlayerList() |
| | | }, |
| | | |
| | | /** |
| | | * 生命周期函数--监听页面卸载 |
| | | */ |
| | |
| | | app.MG.store.getProductDetail(query).then(async (res) => { |
| | | try { |
| | | this.setData({ |
| | | bookName: res.datas.name, |
| | | cmsId: res.datas.rootCmsItemId, |
| | | bookDetail: res.datas, |
| | | buyIdList: res.datas.purchasedSaleMethodIdList, |
| | | learnClassData: res.datas.cmsDatas[0].datas.length > 0 ? res.datas.cmsDatas[0].datas.find(item => item.refCode == "jsek_cloudLearning") : null |
| | |
| | | } else { |
| | | this.resourceDetailsData() |
| | | } |
| | | |
| | | } catch (error) { |
| | | console.log(err) |
| | | console.log(error) |
| | | } |
| | | |
| | | }); |
| | |
| | | this.resourceDetailsData() |
| | | }) |
| | | }, |
| | | |
| | | count(timeStr) { |
| | | const data = { |
| | | appRefCode: app.config.appRefCode, |
| | |
| | | } |
| | | app.MG.job.newJobWithApiNewEvent(data).then((res) => {}) |
| | | }, |
| | | |
| | | onTabsChange(event) { |
| | | let tabValue = event.detail.value |
| | | if (tabValue == '1') { |
| | |
| | | activeValues: e.detail.value, |
| | | }); |
| | | }, |
| | | onTakeNotes() { |
| | | |
| | | }, |
| | | onTakeNotes() {}, |
| | | showDialog(e) { |
| | | const token = wx.getStorageSync(app.config.tokenKey); |
| | | if (token) { |
| | |
| | | goBack() { |
| | | wx.navigateBack(); |
| | | }, |
| | | |
| | | // 判断当前目标是否已购买 |
| | | 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() { |
| | | this.setData({ |
| | | videoLoading: true, |
| | |
| | | } |
| | | } |
| | | app.MG.store.getProductDetail(query).then(async (res) => { |
| | | const list = res.datas.cmsDatas[0]?.datas |
| | | if (this.data.source == 'qrcode') { |
| | | let qrData = res.datas.cmsDatas[0].datas.find(ditem => ditem.id == this.data.activeId) |
| | | if (qrData) { |
| | | this.setData({ |
| | | threeLeveData: [qrData] |
| | | }) |
| | | } |
| | | } else { |
| | | this.setData({ |
| | | threeLeveData: [] |
| | | }) |
| | | } |
| | | for (const item of list) { |
| | | this.setData({ |
| | | isBuy: res.datas.purchasedSaleMethodIdList.includes(res.datas.defaultSaleMethodId) |
| | | }) |
| | | res.datas.cmsDatas[0].datas.forEach((item) => { |
| | | if (item.selectType === "video" || item.learnSelectType === "video") { |
| | | if (this.data.storeInfo == 'jsek_digitalCourses') { |
| | | if (this.data.isBuy) { |
| | |
| | | } |
| | | } |
| | | } else { |
| | | const isBuyCms = await app.MG.file.checkCmsItem({ |
| | | cmsItemId: Number(item.id) |
| | | }) |
| | | item.isBuyCms = isBuyCms |
| | | if (isBuyCms) { |
| | | this.data.threeLeveData.push(item) |
| | | } else { |
| | | if (item.freeFile) { |
| | | this.data.threeLeveData.push(item) |
| | | if (this.data.productLinkPath == item.productLinkPath) { |
| | | // 买了 |
| | | if (this.data.buyList.length) { |
| | | if (this.data.buyList.some(citem => item.productLinkPath.includes(citem.productLinkPath))) { |
| | | this.data.threeLeveData.push(item) |
| | | } |
| | | } else { |
| | | wx.showModal({ |
| | | icon: 'error', |
| | | title: '温馨提示', |
| | | content: '请购买资源,即将返回购买页', |
| | | confirmText: '确定', |
| | | showCancel: false, // 关闭取消按钮 |
| | | success: (cres) => { |
| | | if (cres.confirm) { |
| | | wx.navigateTo({ |
| | | url: '/packageBookService/pages/bookServices/detail/index?id=' + this.data.bookId + '&name=' + this.data.bookName + '&tabValue=' + this.data.formPath, |
| | | }) |
| | | } |
| | | if (!item.saleMethod.length) { |
| | | // 没买且无销售方式 |
| | | this.data.threeLeveData.push(item) |
| | | } else { |
| | | // 没买且销售方式过期//没买,销售方式价格为0 |
| | | const itemSaleMethod = item.saleMethod.find(citem => citem.SaleType == 'Normal') |
| | | if (new Date().getTime() > new Date(itemSaleMethod.EndDate).getTime() || itemSaleMethod.Price == 0) { |
| | | this.data.threeLeveData.push(item) |
| | | } |
| | | }); |
| | | return; // 直接返回,避免执行后续代码 |
| | | // 没买且只有试读资源 |
| | | if (!item.file && item.freeFile) this.data.threeLeveData.push(item) |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | }) |
| | | if (this.data.source == 'qrcode') { |
| | | let qrData = this.data.threeLeveData.find(ditem => ditem.id == this.data.activeId) |
| | | 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) { |
| | | if (qrData) { |
| | | this.setData({ |
| | | threeLeveData: [qrData] |
| | | }) |
| | | } |
| | | } else { |
| | | this.setData({ |
| | | threeLeveData: [] |
| | | }) |
| | | } |
| | | } else { |
| | | this.setData({ |
| | | threeLeveData: this.data.threeLeveData |
| | | }) |
| | | } |
| | | |
| | | // } |
| | | if (this.data.threeLeveData.length > 0) { |
| | | this.data.threeLeveData.forEach((items, index) => { // 修改此处添加index参数 |
| | | if (this.data.productLinkPath == items.productLinkPath) { |
| | | if (this.data.formPath === "jsek_cloudLearning") { |
| | | const flag = this.cmsItemIsBuy(items) |
| | | let file |
| | | if (items.isBuyCms) { |
| | | if (flag) { |
| | | file = items.protectedFile || items.file ? file = items.protectedFile || items.file : file = items.freeFile |
| | | } else { |
| | | if (items.freeFile) { |
| | |
| | | } |
| | | } |
| | | }); |
| | | } else { |
| | | wx.showModal({ |
| | | title: '温馨提示', |
| | | content: '该资源未购买,将返回购买', |
| | | success: (res) => { |
| | | if (res.confirm) { |
| | | 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() |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | |
| | | } |
| | | this.setData({ |
| | | loading: false, |
| | |
| | | }) |
| | | if (item.selectType == "video" || item.learnSelectType === "video") { |
| | | if (this.data.formPath === "jsek_cloudLearning") { |
| | | const flag = this.cmsItemIsBuy(item) |
| | | let file |
| | | if (items.isBuyCms) { |
| | | if (flag) { |
| | | file = |
| | | item.protectedFile || item.file ? file = item.protectedFile || item.file : file = item.freeFile |
| | | } else { |
| | |
| | | } |
| | | } |
| | | }, |
| | | |
| | | aliVod(md5, currentVideo) { |
| | | if (md5) { |
| | | let query = { |
| | |
| | | }) |
| | | } |
| | | }, |
| | | |
| | | timeUpdate(e) { |
| | | let { |
| | | currentTime, |
| | | duration |
| | | } = e.detail |
| | | |
| | | this.setData({ |
| | | progress: ((currentTime / duration) * 100).toFixed(2) |
| | | }) |
| | |
| | | .then((res) => {}) |
| | | } |
| | | }, |
| | | |
| | | getProductUserSubmitTopicGet() { |
| | | app.MG.ugc.getProductUserSubmitTopic({ |
| | | productId: this.data.bookId, |
| | |
| | | }) |
| | | }) |
| | | }, |
| | | |
| | | newTopicMessageGet() { |
| | | let query = { |
| | | topicIdOrRefCode: topicId + '', |
| | |
| | | console.log(res); |
| | | }) |
| | | }, |
| | | |
| | | // 标题改变 |
| | | changeTitle(e) { |
| | | this.setData({ |
| | |
| | | submitTitle: e.detail.value |
| | | }) |
| | | }, |
| | | |
| | | confirmSuggest() { |
| | | if (!this.data.textvalue.trim()) { |
| | | return wx.showToast({ |
| | |
| | | dialogKey: true, |
| | | }) |
| | | }, |
| | | |
| | | // 删除笔记 |
| | | deleteNote(e) { |
| | | const id = e.currentTarget.dataset.id |