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