From 3f1ea0a8e4bb02bf7544df8660b15cfa69d6b84a Mon Sep 17 00:00:00 2001 From: litian <C21AF165> Date: 星期五, 15 三月 2024 18:54:04 +0800 Subject: [PATCH] Merge refs/remotes/origin/master into refs/heads/master --- pages/resourceDetails/myAudio/index.js | 669 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 files changed, 644 insertions(+), 25 deletions(-) diff --git a/pages/resourceDetails/myAudio/index.js b/pages/resourceDetails/myAudio/index.js index fe06808..544125b 100644 --- a/pages/resourceDetails/myAudio/index.js +++ b/pages/resourceDetails/myAudio/index.js @@ -1,52 +1,671 @@ -// audio.js +// pages/resourceDetails/index.js +const app = getApp() +const myAudio = wx.createInnerAudioContext(); Page({ + + /** + * 椤甸潰鐨勫垵濮嬫暟鎹� + */ data: { - poster: 'http://y.gtimg.cn/music/photo_new/T002R300x300M000003rsKF44GyaSk.jpg?max_age=2592000', - name: '姝ゆ椂姝ゅ埢', - author: '璁稿穽', - src: 'http://182.92.203.7:3001/file/api/ApiDownload?md5=aa72e586dd93b7c2633bee6320bc6c76', + noteList: [], navBarHeight: '', barHeight: '', + flag: true, // 杈撳叆妗嗘槸鍚︽樉绀� + tabPanelstyle: 'display:flex;justify-content:center;align-items:center;', + activeValues: [0], + dialogKey: false, + style: 'border: 2rpx solid rgba(220,220,220,1);border-radius: 12rpx;', + activeId: '', + bookId: '', + bookName: '', + cmsId: '', + parentName: '', + parentProductLinkPath: '', + productLinkPath: '', + threeLeveData: [], + showData: '', + src: '', + selectedId: null, + topicId: '', + titleName: '', + submitTitle: "", + inputStyle: 'border: 2rpx solid rgba(220,220,220,1);border-radius: 12rpx; padding:16rpx', + textvalue: '', + style: 'height: 248rpx', + submitType: "new", // 鏂板缓 or 缂栬緫 + noteId: '', + myAudioDuration: '', // 瑙嗛鏃堕棿 + myAudioCurrent: '', // 褰撳墠鎾斁杩涘害 + isplay: false, //鏄惁榛樿鎾斁, + selectId: '', + speed: 1.0, }, + audio: null, + // 鏍煎紡鍖栫瑪璁版椂闂� + convertTimestamp(timestamp) { + const isoDate = new Date(timestamp) + const year = isoDate.getFullYear() + const month = String(isoDate.getMonth() + 1).padStart(2, '0') + const day = String(isoDate.getDate()).padStart(2, '0') + const hours = String(isoDate.getHours()).padStart(2, '0') + const minutes = String(isoDate.getMinutes()).padStart(2, '0') + const seconds = String(isoDate.getSeconds()).padStart(2, '0') + const formattedDate = `${year}-${month}-${day} ${hours}:${minutes}:${seconds}` + return formattedDate + }, + + // 鏃堕棿鏍煎紡鍖� + format(t) { + let time = Math.floor(t / 60) >= 10 ? Math.floor(t / 60) : '0' + Math.floor(t / 60); + t = time + ':' + ((t % 60) / 100).toFixed(2).slice(-2); + return t; + }, + + /** + * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍔犺浇 + */ onLoad(options) { + const systInfo = wx.getSystemInfoSync(); const menu = wx.getMenuButtonBoundingClientRect(); // 鑳跺泭淇℃伅 const navBarHeight = (menu.top - systInfo.statusBarHeight) * 2 + menu.height; // 瀵艰埅鏍忛珮搴� - + // console.log(options, 'options'); this.setData({ navBarHeight: navBarHeight, barHeight: systInfo.statusBarHeight, + activeId: options.activeId, + bookId: options.bookId, + bookName: options.bookName, + cmsId: options.cmsId, + parentName: options.parentName, + parentProductLinkPath: options.parentProductLinkPath, + productLinkPath: options.productLinkPath }) - }, - onReady: function (e) { - // 浣跨敤 wx.createAudioContext 鑾峰彇 audio 涓婁笅鏂� context - this.audioCtx = wx.createAudioContext('myAudio') + + this.resourceDetailsData() + this.getNoteList() + + + }, - audioPlay: function () { - this.audioCtx.play() + /** + * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍒濇娓叉煋瀹屾垚 + */ + onReady() { + + }, - audioPause: function () { - this.audioCtx.pause() + + /** + * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鏄剧ず + */ + onShow() { + }, - audio14: function () { - this.audioCtx.seek(14) + + /** + * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰闅愯棌 + */ + onHide() { + }, - audioStart: function () { - this.audioCtx.seek(0) + + /** + * 鐢熷懡鍛ㄦ湡鍑芥暟--鐩戝惉椤甸潰鍗歌浇 + */ + onUnload() { + + }, + + /** + * 椤甸潰鐩稿叧浜嬩欢澶勭悊鍑芥暟--鐩戝惉鐢ㄦ埛涓嬫媺鍔ㄤ綔 + */ + onPullDownRefresh() { + + }, + + /** + * 椤甸潰涓婃媺瑙﹀簳浜嬩欢鐨勫鐞嗗嚱鏁� + */ + onReachBottom() { + + }, + + /** + * 鐢ㄦ埛鐐瑰嚮鍙充笂瑙掑垎浜� + */ + onShareAppMessage() { + + }, + onTabsChange(event) { + + }, + + onTabsClick(event) { + + }, handleChange(e) { + this.setData({ + activeValues: e.detail.value, + }); + }, + onTakeNotes() { + + }, + showDialog(e) { + + this.setData({ + submitTitle: this.data.bookName, + dialogKey: true, + // textvalue: '' + + + }); + }, + + closeDialog() { + + this.setData({ + dialogKey: false + }); }, goBack() { - wx.navigateBack() + wx.navigateBack(); }, + resourceDetailsData() { - MusicStart: function (e) { - var progress = parseInt((e.detail.currentTime / e.detail.duration) * 100) - var that = this - that.setData({ - progress: progress + let query = { + path: '*', + queryType: '*', + productId: this.data.bookId, + cmsPath: this.data.parentProductLinkPath, + itemFields: { + SysType: 'CmsFolder', + // 璧勬簮绫诲瀷锛岃瘯璇绘枃浠讹紝鏄惁鍏佽涓嬭浇绛夊弬鏁� + selectType: [], + freeFile: [], + file: [], + protectedFile: [], + resourcesClassification: [], + isDownload: [], + jsek_resourceBrief: [], + jsek_link: [], + jsek_questionBank: [], + learnSelectType: [] + }, + pading: { + start: 0, + size: 999 + } + } + + app.MG.store.getProductDetail(query).then(res => { + res.datas.cmsDatas[0].datas.forEach((item, index) => { + + if (item.selectType === "audio") { + this.data.threeLeveData.push(item) + this.setData({ + threeLeveData: this.data.threeLeveData + }) + + + if (this.data.productLinkPath == item.productLinkPath) { + console.log(item.id, 'index'); + this.setData({ + showData: app.config.requestCtx + '/file/api/ApiDownload?md5=' + item.file, + titleName: item.name + }) + this.pubulicPlayFun() + // this.setData({ + // selectedId: index + + // }) + } + } + + }) + this.data.threeLeveData.forEach((item) => { + // console.log(item.name); + }) }) - console.log('闊充箰鎾斁杩涘害涓�' + progress + '%') }, + onVideo(e) { + const item = e.currentTarget.dataset.item + if (this.data.showData != '') { + this.setData({ + showData: '' + }) + } + this.setData({ + selectedId: e.currentTarget.dataset.index, + + }) + + + this.setData({ + titleName: item.name, + selectId: item.id + }) + + if (item.selectType == "audio") { + this.setData({ + showData: app.config.requestCtx + '/file/api/ApiDownload?md5=' + item.file + }) + this.pubulicPlayFun() + } + + }, + + getProductUserSubmitTopicGet() { + app.MG.ugc.getProductUserSubmitTopic({ + productId: this.data.bookId, + appRefCode: app.config.appRefCode + }).then((res) => { + // console.log(res); + + this.setData({ + topicId: res.id + }) + }) + }, + + + + newTopicMessageGet() { + let query = { + topicIdOrRefCode: topicId + '', + name: titleText.value, + content: form.value.noteContent, + type: 'note', + cmsTypeRefCode: '', + newDataListRequest: [] + } + app.MG.ugc.newTopicMessage(query).then(res => { + // console.log(res); + }) + }, + + // 鏍囬鏀瑰彉 + changeTitle(e) { + // console.log(e.currentTarget.dataset.value); + this.setData({ + flag: e.currentTarget.dataset.value + + }) + }, + // 鏍囬杈撳叆妗嗗�� + inputChange(e) { + this.setData({ + titleName: e.detail.value + }) + }, + + confirmSuggest() { + if (!this.data.textvalue) { + return wx.showToast({ + icon: 'error', + title: '璇峰~鍐欑瑪璁板唴瀹�', + }) + + } else if (!this.data.titleName) { + return wx.showToast({ + icon: 'error', + title: '璇峰~鍐欑瑪璁版爣棰�', + }) + } + if (this.data.submitType == 'new') { + this.makeNote() + } else if (this.data.submitType == 'edit') { + this.updateNote() + } + // console.log(this.data.textvalue); + // console.log(this.data.titleName); + this.setData({ + dialogKey: false + }); + }, + onTextarea() { + // console.log(this.data.textvalue); + }, + textareaChange(e) { + this.setData({ + textvalue: e.detail.value + }) + }, + + + // 鑾峰彇绗旇鍒楄〃 + async getNoteList() { + // this.setData({ + // loading: true + // }) + let topicId + await app.MG.ugc + .getProductUserSubmitTopic({ + productId: this.data.bookId, + appRefCode: app.config.appRefCode + }) + .then((res) => { + if (res) { + topicId = res.id + } else { + return wx.showToast({ + icon: "error", + title: '鏌ヨ澶辫触', + }) + } + }) + // loadings.value.bookResource = true + let query = { + start: 0, + size: 999, + messageType: 'note', + sort: { + type: 'Desc', + field: 'CreateDate' + }, + appRefCode: app.config.appRefCode, + topicIdOrRefCode: topicId + '' + } + await app.MG.ugc.getTopicMessageList(query).then((res) => { + // notePage.value.total = res.totalSize + res.datas.forEach((item) => { + // item.compliceHover = false + // item.deleteHover = false + item.createDate = this.convertTimestamp(item.createDate) + }) + this.setData({ + "pageCount.total": res.totalSize, + noteList: res.datas, + loading: false + }) + // console.log('绗旇鍒楄〃', res.datas); + }) + }, + // 缂栬緫鎸夐挳 + editNote(e) { + const note = e.currentTarget.dataset.note + this.setData({ + submitType: "edit", + textvalue: note.content, + submitTitle: note.name, + noteId: note.id + }) + this.showDialog() + }, + + // 鍒犻櫎绗旇 + deleteNote(e) { + const id = e.currentTarget.dataset.id + const messageIds = [] + messageIds.push(id) + wx.showModal({ + title: '鎻愮ず', + content: '纭鍒犻櫎璇ョ瑪璁板悧锛�',//editable濡傛灉涓簍rue锛岃繖灏辨槸杈撳叆妗嗙殑鍐呭 + editable: false,//鏄惁鏄剧ず杈撳叆妗� + placeholderText: '璇疯緭鍏ュ唴瀹瑰惂',//杈撳叆妗嗙殑榛樿鍐呭 + success: (res) => { + if (res.confirm) { + app.MG.ugc + .delTopicMessage({ messageIds }) + .then((res) => { + wx.showToast({ + title: '鍒犻櫎鎴愬姛', + }) + // if ((notePage.value.total % 3) - 1 == 0) { + // notePage.value.page -= 1 + // } + this.getNoteList() + }) + } else if (res.cancel) { + // console.log('鐢ㄦ埛鐐瑰嚮鍙栨秷') + } + } + }) + }, + // 鏂板缓绗旇鎺ュ彛 + async makeNote() { + const token = wx.getStorageSync('jsek-token') + if (!token) { + return wx.getUserProfile({ + desc: '鐢ㄦ埛鐧诲綍', + success: (res) => { + // console.log(res); + } + }) + } + let topicId + await app.MG.ugc + .getProductUserSubmitTopic({ + productId: this.data.bookId, + appRefCode: app.config.appRefCode + }) + .then((res) => { + if (res) { + topicId = res.id + } else { + return wx.showToast({ + icon: 'error', + title: '鏂板缓澶辫触', + }) + } + }) + let query = { + topicIdOrRefCode: topicId + '', + name: this.data.submitTitle, + content: this.data.textvalue, + type: 'note', + cmsTypeRefCode: '', + newDataListRequest: [] + } + await app.MG.ugc.newTopicMessage(query).then((res) => { + wx.showToast({ + title: '鏂板缓鎴愬姛', + }) + this.closeDialog() + this.getNoteList() + }) + }, + // 缂栬緫绗旇鎺ュ彛 + updateNote() { + const token = wx.getStorageSync('jsek-token') + if (!token) { + return wx.getUserProfile({ + desc: '鐢ㄦ埛鐧诲綍', + success: (res) => { + // console.log(res); + } + }) + } + if (!this.data.submitTitle) { + return wx.showToast({ + icon: 'error', + title: '璇峰~鍐欑瑪璁版爣棰�', + }) + } else if (!this.data.textvalue) { + return wx.showToast({ + icon: 'error', + title: '璇峰~鍐欑瑪璁板唴瀹�', + }) + } + let query = { + id: this.data.noteId, + name: this.data.submitTitle, + description: 'string', + icon: 'string', + type: 'note', + content: this.data.textvalue, + newDataRequests: [], + updateDataRequests: [] + } + app.MG.ugc.updateTopicMessage(query).then((res) => { + wx.showToast({ + title: '缂栬緫鎴愬姛', + }) + this.closeDialog() + this.getNoteList() + }) + this.setData({ + submitType: "new" + }) + }, + // 鎾斁鍏叡浠g爜 + pubulicPlayFun() { + + + myAudio.src = this.data.showData + console.log(myAudio.src); + // 鍦╫nCanplay閲岃幏鍙栧苟璁剧疆闊抽鏃堕暱鍜屾挱鏀捐繘搴� + myAudio.onCanplay(() => { + myAudio.duration; //蹇呴』鍐欙紝涓嶇劧鑾峰彇涓嶅埌銆傘�傘�� + setTimeout(() => { + console.log(myAudio.duration); + this.setData({ + myAudioDuration: this.format(myAudio.duration), + myAudioCurrent: this.format(myAudio.currentTime) + }); + }, 1000); + }); + + + // 鎾斁瀹屾垚澶勭悊锛屾寜閽彉涓�涓� + myAudio.onEnded((res) => { + this.setData({ + isplay: false + }) + }); + + + //杩涘害鏉″彉鍖� + myAudio.onTimeUpdate(() => { + this.setData({ + myAudioPos: myAudio.currentTime / myAudio.duration * 100, + myAudioCurrent: this.format(myAudio.currentTime) + }); + }) + }, + + + //鎾斁 + play() { + console.log(22222); + myAudio.startTime = this.data.myAudioCurrent; //鑰冭檻鍒拌繘搴︽潯琚嫋鍔紝涓嶄竴瀹氫粠00:00:00寮�濮� + myAudio.play(); + this.setData({ + isplay: true + }); + + + }, + + // 鍋滄 + stop() { + console.log(11111); + myAudio.pause(); + this.setData({ + isplay: false + }); + }, + adsfhaewlf() { + + myAudio.pause(); + this.setData({ + isplay: false + }); + }, + + //鍙冲垏鎹� + onLeftSwitch() { + this.setData({ + speed: 1.0, + myAudioCurrent: '00:00' + }) + const index = this.data.threeLeveData.findIndex((item) => item.id == this.data.selectId) + if (this.data.threeLeveData[index - 1]) { + this.changeItem(this.data.threeLeveData[index - 1]) + this.setData({ + selectedId: index - 1, + + }) + } else { + console.log('宸茬粡鏄涓�棣栦簡'); + } + + }, + + //鍙冲垏鎹� + onRightSwitch() { + this.setData({ + speed: 1.0, + myAudioCurrent: '00:00' + }) + console.log('鍙冲垏鎹�'); + const index = this.data.threeLeveData.findIndex((item) => item.id == this.data.selectId) + if (this.data.threeLeveData[index + 1]) { + this.changeItem(this.data.threeLeveData[index + 1]) + this.setData({ + selectedId: index + 1, + + }) + } else { + console.log('宸茬粡鏄渶鍚庝竴棣栦簡'); + } + }, + + + changeItem(item) { + console.log(item); + + if (this.data.showData != '') { + this.setData({ + showData: '' + }) + } + this.setData({ + titleName: item.name, + selectId: item.id + }) + + if (item.selectType == "audio") { + this.setData({ + showData: app.config.requestCtx + '/file/api/ApiDownload?md5=' + item.file + }) + this.pubulicPlayFun() + } + }, + // 鎾斁鍊嶉�� + onSpeed() { + let c = this.data.speed; + c += 0.5; + if (c <= 2) { + this.setData({ + speed: c, + }) + } else { + c = 0.5; + this.setData({ + speed: c, + }) + } + + setTimeout(() => { + myAudio.startTime = this.data.myAudioDuration //寮�濮嬫椂闂� + myAudio.playbackRate = this.data.speed; // 鎾斁閫熺巼 + }, 200); + }, + + // 鎷栧姩杩涘害鏉★紝鍒版寚瀹氫綅缃� + hanle_slider_change(e) { + const position = e.detail.value; + var currentTime = position / 100 * myAudio.duration; + myAudio.seek(currentTime); + this.setData({ + myAudioPos: position, + myAudioCurrent: this.format(currentTime) + }) + } + + }) \ No newline at end of file -- Gitblit v1.9.1