wordsDetail.js 4.7 KB
// pages/MemorizingWords/wordsDetail/wordsDetail.js
const app=getApp();
const innerAudioContext = wx.createInnerAudioContext();
//下面是64个基本的编码
var base64EncodeChars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
var base64DecodeChars = new Array(
 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 62, -1, -1, -1, 63,
 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, -1, -1, -1, -1, -1, -1,
 -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, -1, -1, -1, -1, -1,
 -1, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, -1, -1, -1, -1, -1);
Page({
  /**
   * 页面的初始数据
   */
  data: {
    f:false,
    ifclick:true,
    page: 0,//0默认,1显示示意
    moudel: false,
    listdata:[]//单词详情数据59
  },
  //显示释义
  showParaphrase() {
    this.setData({
      page: 1,
    })
  },
  //单词分批处理
  handleWords(e) { 
    let that = this;
    that.setData({
     ifclick:false
    })
    let url = 'Words/handleWords';
    let md_id = that.data.listdata.info.md_id;
    let params = {
      status: e.currentTarget.dataset.status,
    }
    if (md_id==undefined){
      params.id=''
    }else{
      params.id= md_id
    } 
    app.post(url, params).then(res => {
      if (res.data.code == 1) {
        that.getPackageDetailInfo();
        that.setData({
          page:0,
         
        })
      }
    
    }).catch((errMsg) => {
      console.log(errMsg)
    })
  },
//开始背单词 
  getPackageDetailInfo(){
    let that=this;
    let url ='Words/getPackageDetailInfo';
    let params={
      token: wx.getStorageSync('token')
    }
    app.post(url,params).then((ret)=>{
     console.log('开始背单词',ret);
     let tem= that.base64decode(ret.data.data.info.liju);
     ret.data.data.info.liju=tem;
      if(ret.data.code==1){
        if (ret.data.data==''){
          wx.showToast({
            title: ret.data.msg,
            icon:'success',
            duration:2000,
          })
          wx.navigateTo({
            url: '../wordsReport/wordsReport',
          })
        }else{
          that.setData({
            listdata: ret.data.data,
            ifclick:true
          })
        }
        
      }
    }).catch((errMsg)=>{
      console.log(errMsg)
    })
  },
 //解码的方法
 base64decode(str){
  var c1, c2, c3, c4;
  var i, len, out;
  len = str.length;
  i = 0;
  out = "";
  while(i <len) {

   do {
    c1 = base64DecodeChars[str.charCodeAt(i++) & 0xff];
   } while (i < len && c1 == -1);
   if (c1 == -1)
    break;

   do {
    c2 = base64DecodeChars[str.charCodeAt(i++) & 0xff];
   } while (i < len && c2 == -1);
   if (c2 == -1)
    break;
   out += String.fromCharCode((c1 << 2) | ((c2 & 0x30) >> 4));

   do {
    c3 = str.charCodeAt(i++) & 0xff;
    if (c3 == 61)
     return out;
    c3 = base64DecodeChars[c3];
   } while (i < len && c3 == -1);
   if (c3 == -1)
    break;
   out += String.fromCharCode(((c2 & 0XF) << 4) | ((c3 & 0x3C) >> 2));

   do {
    c4 = str.charCodeAt(i++) & 0xff;
    if (c4 == 61)
     return out;
    c4 = base64DecodeChars[c4];
   } while (i < len && c4 == -1);
   if (c4 == -1)
    break;
   out += String.fromCharCode(((c3 & 0x03) << 6) | c4);
  }
  return out;
 },
  //播放音频
  audioPlay(e) {
   console.log('播放音频');
    let that = this;
    innerAudioContext.stop()
    let listdata = that.data.listdata;
    innerAudioContext.src = listdata.info.voice_url;
    innerAudioContext.play();
    innerAudioContext.onPlay(() => {
      console.log('录音播放中');
    })

    innerAudioContext.onStop(() => {
      console.log('录音播放停止');
    })

    innerAudioContext.onEnded(() => {
      console.log('录音播放结束');
      innerAudioContext.stop();
    })
  },
  
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {
    let that=this;
    that.getPackageDetailInfo();
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function() {
    innerAudioContext.stop()
  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function() {
    innerAudioContext.stop()
  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function() {

  }
})