[
  {
    "path": "README.md",
    "content": " - 歌曲来源：[QQ音乐][1]\n\n说明\n--\n\n - 目前只有体验版，如果有兴趣的同学可以私聊我，我帮您加入，名额有限。（博客标题下方有本人的qq链接）\n - 因为个人开发者无法发布在线音乐播放小程序，所以开发该小程序目的只为学习小程序开发；\n - 小程序涉及到到所有歌曲资源都来源于QQ音乐，部分API由本人对QQ音乐接口进行了二次封装（我会另外再写一篇文章专门用来分享API，敬请期待）\n\n编辑器效果展示\n-------\n\n - 因为要压缩为GIF格式，所以加快了播放速度并且画质有点差\n\n![](https://user-gold-cdn.xitu.io/2019/2/13/168e4c0fd4267205?w=377&h=600&f=gif&s=3574312)\n\n真机截图\n----\n\n[操作视频][3]\n - 推荐页面\n\n![](https://user-gold-cdn.xitu.io/2019/2/13/168e4c185d5627aa?w=750&h=1334&f=jpeg&s=125261)\n - [歌手列表][5]\n\n![](https://user-gold-cdn.xitu.io/2019/2/13/168e4c1c8b9eafec?w=750&h=1334&f=jpeg&s=62395)\n - 各大排行榜\n\n![](https://user-gold-cdn.xitu.io/2019/2/13/168e4c1eca5749cb?w=750&h=1334&f=jpeg&s=97443)\n - 搜索页面\n\n![](https://user-gold-cdn.xitu.io/2019/2/13/168e4c216cb55a4c?w=750&h=1334&f=jpeg&s=74551)\n - 歌手详情页\n\n![](https://user-gold-cdn.xitu.io/2019/2/13/168e4c23d2460e6c?w=750&h=1334&f=jpeg&s=68977)\n - 歌单（排行榜）详情页\n\n![](https://user-gold-cdn.xitu.io/2019/2/13/168e4c267e539b33?w=750&h=1334&f=jpeg&s=77183)\n - 播放器页面\n\n![](https://user-gold-cdn.xitu.io/2019/2/13/168e4c29a7095336?w=750&h=1334&f=jpeg&s=69707)\n - 分享页面\n\n![](https://user-gold-cdn.xitu.io/2019/2/13/168e4c2c83d97702?w=750&h=1334&f=jpeg&s=42039)\n\n## 目前实现的功能 ##\n\n 1. 歌单\n 2. 电台\n 3. 歌曲播放\n 4. MV播放（最近发现QQ音乐的接口不返回MV数据了，所以这个功能暂时无法展示）\n 5. [歌手列表][13]\n 6. 排行榜\n 7. 歌曲歌手搜索（支持模糊查询）\n 8. 最近搜索记录\n 9. 热门搜索词条\n 10. 歌手详情页\n 11. 歌单详情页\n 12. 歌曲分享\n 13. 查看评论\n 14. 歌词滚动\n 15. 最近播放歌曲\n\n## 接下来准备实现的功能 ##\n\n 1. 用户登录\n 2. 私人FM\n 3. 增加点赞，评论功能\n 4. 歌曲播放方式（随机，单曲，循环）\n 5. 收藏\n 6. 全局播放器组件\n\n项目目录\n----\n![图片描述][14]\n\n 1. comment--自定义组件（播放器组件，开发中）\n 2. img--存放图片\n 3. gedan--歌单页\n 4. index--首页\n 5. logs--歌手列表页\n 6. playSong--播放器页\n 7. rank--排行榜页\n 8. search--搜索页\n 9. share--分享页\n 10. singer--歌手详情页\n 11. top--歌单详情页\n 12. app.js--应用程序逻辑\n 13. app.json--应用程序配置\n 14. app.wxss--应用程序公共样式\n\n\n----------\n\n**app.json**\n**应用程序配置文件**\n\n```\n{\n  \"pages\": [\n    \"pages/index/index\",\n    \"pages/logs/logs\",\n    \"pages/rank/rank\",\n    \"pages/search/search\",\n    \"pages/gedan/gedan\",\n    \"pages/playSong/playSong\",\n    \"pages/singer/singer\",\n    \"pages/top/top\",\n    \"pages/share/share\"\n  ],//页面路径列表\n  \"requiredBackgroundModes\": [\n    \"audio\"\n  ],//需要在后台使用的能力，这里我们使用到了【音乐播放】\n  \"window\": {\n    \"backgroundTextStyle\": \"light\",\n    \"navigationBarBackgroundColor\": \"#fff\",\n    \"navigationBarTitleText\": \"HMusic\",\n    \"navigationBarTextStyle\": \"black\"\n  },//全局到默认窗口表现\n  \"tabBar\": {\n    \"list\": [\n      {\n        \"pagePath\": \"pages/index/index\",\n        \"text\": \"推荐\"\n      },\n      {\n        \"pagePath\": \"pages/logs/logs\",\n        \"text\": \"歌手\"\n      },\n      {\n        \"pagePath\": \"pages/rank/rank\",\n        \"text\": \"排行榜\"\n      },\n      {\n        \"pagePath\": \"pages/playSong/playSong\",\n        \"text\": \"播放器\"\n      }\n    ],\n    \"position\": \"top\"\n  }//tab栏到表现，默认是放在底部，根据position，我们将其设置为顶部显示\n}\n```\n**每个页面都有各自到配置页面，可以对各自页面进行单独对配置**\n[pageName].json用于指定页面工作时，window的设置：\n\n```\n{\n  // 导航条背景色\n  \"navigationBarBackgroundColor\": \"#fff\",\n  // 导航条前景色（只能是white/black）\n  \"navigationBarTextStyle\": \"black\",\n  // 导航条文本\n  \"navigationBarTitleText\": \"HMusic\",\n  // 窗口背景颜色\n  \"backgroundColor\": \"#fff\",\n  // 窗口前景色\n  \"backgroundTextStyle\": \"dark\",\n  // 是否开启下拉刷新\n  \"enablePullDownRefresh\": false\n}\n```\n**app.js应用程序逻辑**\n\n```\n// App函数是一个全局函数，用于创建应用程序对象\n\nApp({\n  // ========== 全局数据对象（可以整个应用程序共享） ==========\n  globalData: { ... },\n\n  // ========== 应用程序全局方法 ==========\n  method1 (p1, p2) { ... },\n  method2 (p1, p2) { ... },\n\n  // ========== 生命周期方法 ==========\n  // 应用程序启动时触发一次\n  onLaunch () { ... },\n\n  // 当应用程序进入前台显示状态时触发\n  onShow () { ... },\n\n  // 当应用程序进入后台状态时触发\n  onHide () { ... }\n})\n```\n欢迎Star[GitHub][15] [博客][16]\n各位看官觉得有用的请点个星星\n\n  [1]: https://y.qq.com/\n  [3]: https://github.com/HEternally/weChatApp-HMusic/blob/master/img/QQ20190128-110802-HD.gif\n  [5]: https://juejin.im/post/5b9880dee51d450e7f52d370\n  [13]: https://juejin.im/post/5b9880dee51d450e7f52d370\n  [15]: https://github.com/HEternally/weChatApp-HMusic\n  [16]: http://heternally.ka94.com/\n"
  },
  {
    "path": "app.js",
    "content": "//app.js\nApp({\n  onLaunch: function (options) {\n    var that = this;\n    wx.getSystemInfo({\n      success: function(res) {\n        that.globalData.system = res;\n      },\n    })\n  },\n  onShow(options){\n      // console.log(options)\n      this.globalData.scene = options.scene;\n      if (options.query.songid) {\n        var songid = [],\n          name = [],\n          shareId = wx.getStorageSync('share_id');\n        songid.push(parseInt(options.query.songid));\n        name.push(options.query.name);\n        if (shareId) {\n          // console.log(songid[0], shareId[0])\n          if (songid[0] != shareId[0]) {\n            this.globalData.changeMusic = true;\n          } else {\n            this.globalData.changeMusic = false;\n          }\n        }\n        wx.setStorage({\n          key: 'share_id',\n          data: songid,\n        });\n        wx.setStorage({\n          key: 'share_name',\n          data: name,\n        });\n      }\n  },\n  onHide(){\n    // console.log('hide')\n  },\n  globalData: {},\n  timestampToTime:function(time) {\n    //将时间戳转为日期格式\n    var date = new Date(time * 1000);\n    var Y = date.getFullYear() + '-';\n    var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';\n    var D = date.getDate() + ' ';\n    var h = date.getHours() + ':';\n    var m = date.getMinutes() + ':';\n    var s = date.getSeconds();\n    return Y+M+D+h+m+s;\n  },\n  gePlay:function(id,num) {\n    //播放歌单的全部歌曲\n    wx.setStorageSync('labelid', id);//将最新歌单id存入缓存\n    wx.request({\n      url: '歌单API',\n      data: {},\n      success: res => {\n        var Data = res.data,\n          code = Data.code;\n        if (code == 0) {\n          var id = Data.songids.split(','),\n              songlist = Data.songlist,\n              music_name = [];\n          for (var i = 0; i < id.length; i++) {\n            id[i] = parseInt(id[i]);\n            music_name.push(songlist[i].songname);\n          }\n          // for(var i =0;i<songlist.length;i++) {\n          //   music_name.push(songlist[i].songname);\n          // }\n          wx.setStorageSync('song_id', id);//将电台随机生成的歌曲id存入缓存\n          wx.setStorageSync('num', num);//当前要播放歌曲的序号\n          wx.setStorageSync('music_name', music_name);//对应歌曲id的歌曲名称\n          wx.switchTab({\n            url: '../playSong/playSong',\n          })\n        } else {\n          wx.showToast({\n            icon: 'none',\n            title: '哎呀！数据出错了，别急，程序猿正在加急修改中',\n          })\n        }\n      },\n      error: req => {\n        wx.showToast({\n          icon: 'none',\n          title: '哎呀！数据出错了，别急，程序猿正在加急修改中',\n        })\n      }\n    })\n  }\n})"
  },
  {
    "path": "app.json",
    "content": "{\n  \"pages\": [\n    \"pages/index/index\",\n    \"pages/logs/logs\",\n    \"pages/rank/rank\",\n    \"pages/search/search\",\n    \"pages/gedan/gedan\",\n    \"pages/playSong/playSong\",\n    \"pages/singer/singer\",\n    \"pages/top/top\",\n    \"pages/share/share\"\n  ],\n  \"requiredBackgroundModes\": [\n    \"audio\"\n  ],\n  \"window\": {\n    \"backgroundTextStyle\": \"light\",\n    \"navigationBarBackgroundColor\": \"#fff\",\n    \"navigationBarTitleText\": \"HMusic\",\n    \"navigationBarTextStyle\": \"black\"\n  },\n  \"tabBar\": {\n    \"list\": [\n      {\n        \"pagePath\": \"pages/index/index\",\n        \"text\": \"推荐\"\n      },\n      {\n        \"pagePath\": \"pages/logs/logs\",\n        \"text\": \"歌手\"\n      },\n      {\n        \"pagePath\": \"pages/rank/rank\",\n        \"text\": \"排行榜\"\n      },\n      {\n        \"pagePath\": \"pages/playSong/playSong\",\n        \"text\": \"播放器\"\n      }\n    ],\n    \"position\": \"top\"\n  }\n}"
  },
  {
    "path": "app.wxss",
    "content": "/**app.wxss**/\n@import 'weui.wxss';\n.container {\n  height: 100%;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: space-between;\n  /* padding: 200rpx 0; */\n  box-sizing: border-box;\n  background:#f4f4f4;\n} \n.main {\n  width:100%;\n}\n.hide {\n  display: none;\n}\n.load {\n  position: fixed;\n  top:50%;\n  left:50%;\n  transform:translate(-50%,-50%);\n  z-index:99;\n}\n.load .k-line {\n  display: inline-block;\n  width: 15px;\n  height: 15px;\n  border-radius: 15px;\n  margin-right: 5px;\n}\n.load .k-line2-1 {\n  animation: k-loadingA 1.5s 1s infinite;\n  background-color: #F44336;\n}\n.load .k-line2-2 {\n  animation: k-loadingA 1.5s .5s infinite;\n  background-color: #E91E63;\n}\n.load .k-line2-3 {\n  animation: k-loadingA 1.5s 0s infinite;\n  background-color: #9C27B0;\n}\n/* loading动画 */\n@keyframes k-loadingA {\n\t0% {\n    height:15px;\n  }\n  50% {\n    height:35px;\n  }\n  100% {\n    height:15px;\n  }\n}\npage {\n  height:100%;\n  background:#f4f4f4;\n}\n#mask {\n  position:fixed;\n  width:100%;\n  height:100%;\n  top:0;\n  left:0;\n  background-color:#000;\n  opacity: 0;\n  z-index:99999;\n}"
  },
  {
    "path": "component/playMusic/playMusic.js",
    "content": "// component/playMusic/playMusic.js\nComponent({\n  /**\n   * 组件的属性列表\n   */\n  properties: {\n\n  },\n\n  /**\n   * 组件的初始数据\n   */\n  data: {\n\n  },\n\n  /**\n   * 组件的方法列表\n   */\n  methods: {\n\n  }\n})\n"
  },
  {
    "path": "component/playMusic/playMusic.json",
    "content": "{\n  \"component\": true,\n  \"usingComponents\": {}\n}"
  },
  {
    "path": "component/playMusic/playMusic.wxml",
    "content": "<!--component/playMusic/playMusic.wxml-->\n<view class=\"player\">\n  <view class=\"normal-player\" wx:if=\"{{fullScreen}}\">\n    <view class=\"background\">\n      <image wx:if=\"{{currentSong.image}}\" src=\"{{currentSong.image}}\"></image>\n    </view>\n\n    <view class=\"top\">\n      <view class=\"subtitle\">{{currentSong.singer}}</view>\n    </view>\n    <view class=\"middle\" catchtouchstart=\"middleTouchStart\" catchtouchmove=\"middleTouchMove\" catchtouchend=\"middleTouchEnd\">\n      <view class=\"middle-l\">\n        <view class=\"cd-wrapper\">\n          <view class=\"cd play\" style=\"animation-play-state:{{playing ? '': 'paused'}}\">\n            <image wx:if=\"{{currentSong.image}}\" wsrc=\"{{currentSong.image}}\" class=\"image\"></image>\n          </view>\n        </view>\n        <view class=\"playing-lyric-wrapper\">\n          <view class=\"playing-lyric\">{{playingLyric}}</view>\n        </view>\n      </view>\n\n      <scroll-view class=\"middle-r\" scroll-y style=\"\">\n      \n      </scroll-view>\n    </view>\n  </view>\n</view>\n"
  },
  {
    "path": "component/playMusic/playMusic.wxss",
    "content": "/* component/playMusic/playMusic.wxss */"
  },
  {
    "path": "pages/gedan/gedan.js",
    "content": "const app = getApp()\nPage({\n  data:{},\n  onLoad: function (option) {\n    wx.showLoading({\n      title: '加载中',\n    })\n    let disstid = option.disstid;\n    this.setData({\n      disstid:disstid\n    });\n    this.getGeDan(disstid, 0);\n    wx.showShareMenu();\n  },\n  getGeDan(disstid,begin) {\n    //获取歌单歌曲信息，disstid为歌单id，begin为开始号码\n    wx.request({\n      url: '歌单API',\n      data: {},\n      success: res => {\n        wx.hideLoading();\n        var dataList = this.data.list,\n            data = res.data.cdlist[0],\n            songids = data.songids.split(','),\n            songlist = data.songlist;\n        if (data.cur_song_num < 15) {\n          this.setData({\n            havaMusic:false\n          })\n        } else {\n          this.setData({\n            havaMusic: true\n          })\n        }\n        if (dataList.songlist) {\n          dataList.songlist = dataList.songlist.concat(songlist);\n        } else {\n          dataList = data;\n        }\n        data.desc = data.desc.replace(/&#160;/g,'&nbsp;');\n        data.desc = data.desc.replace(/&#180;/g,\"'\");\n        data.desc = data.desc.replace(/<br>/g, \"\\n\");\n        for(var i = 0;i<songids.length;i++) {\n          songids[i] = parseInt(songids[i]);\n        }\n        this.setData({\n          list: dataList,\n          songids:songids,\n          begin:begin\n        });\n        this.MusicFcg(begin);\n      },\n      error: req => {\n        wx.showToast({\n          icon: 'none',\n          title: '哎呀！数据出错了，别急，程序猿正在加急修改中',\n        });\n      }\n    })\n  },\n  MusicFcg(begin) {\n    var data = this.data.MusicFcg;\n    var len = this.data.songids.length;\n    if (len - begin > 15) {\n      data.req_0.param.ids = this.data.songids.slice(begin, parseInt(begin + 15));\n      data.req_0.param.types = [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];\n    } else {\n      var ll = len - begin;\n      data.req_0.param.types = [];\n      data.req_0.param.ids = this.data.songids.slice(begin);\n      for (var i = 0;i<ll;i ++) {\n        data.req_0.param.types.push(0);\n      }\n    }\n    wx.request({\n      url: '歌曲信息API',\n      method:'post',\n      data:JSON.stringify(data),\n      success:res=> {\n        var tricks = res.data.req_0.data.tracks,\n            songmid = [];\n        for (var i =0;i<tricks.length;i++) {\n          songmid.push(tricks[i].mid);\n        }\n        this.setData({\n          songmid:songmid\n        });\n        var reqData = this.data.req_0;\n        reqData.req_0.param.songmid = songmid;\n        wx.request({\n          url: 'API',\n          method:'post',\n          header: {\n            'content-type': 'application/x-www-form-urlencoded'\n          },\n          data: JSON.stringify(reqData),\n          success:res=> {\n            // console.log(res);\n            var data= res.data.req_0.data,\n                midurlinfo = data.midurlinfo,\n                pix = data.sip[0],\n                // musicUrl1 = [],\n                mUrl = this.data.musicUrl;\n            for (var i=0;i<midurlinfo.length;i++) {\n              var url = pix + midurlinfo[i].purl;\n              mUrl.push(url);\n            }\n            this.setData({\n              musicUrl:mUrl\n            })\n            // console.log(this.data.musicUrl);\n          },\n          error:req=> {\n            wx.showToast({\n              icon: 'none',\n              title: '哎呀！数据出错了，别急，程序猿正在加急修改中',\n            });\n          }\n        })\n      },\n      error:req=> {\n        wx.showToast({\n          icon: 'none',\n          title: '哎呀！数据出错了，别急，程序猿正在加急修改中',\n        });\n      }\n    })\n  },\n  getMoreMusic:function(){\n    var disstid = this.data.disstid,\n        begin = this.data.begin;\n    begin = begin + 15;\n    this.getGeDan(disstid,begin);\n  },\n  playAll() {\n    var id = this.data.disstid;\n    app.gePlay(id,0);\n    wx.setStorage({\n      key: 'share_id',\n      data: [],\n    })\n  },\n  musicPlay(e){\n    var num = e.currentTarget.dataset.num,\n        id = this.data.disstid;\n    wx.showLoading({\n      title: '加载中',\n    })\n    app.gePlay(id,num);\n    app.globalData.shouldPlay = true;\n    // app.globalData.unload = true;\n  }\n})"
  },
  {
    "path": "pages/gedan/gedan.json",
    "content": "{}"
  },
  {
    "path": "pages/gedan/gedan.wxml",
    "content": "<view class=\"gedan\">\n  <view class=\"info_box\">\n    <view class=\"info_box__bd\">\n      <view class=\"album\">\n        <view class=\"album__media\">\n          <image src=\"{{list.logo}}\" class=\"album__cover\"></image>\n        </view>\n\n        <view class=\"album__bd\">\n          <view class=\"album__name\">\n            {{list.dissname}}\n          </view>\n          <view class=\"author\">\n            <image src=\"{{list.headurl}}\" class=\"author__avatar\"></image>\n            <view class=\"author__name\">\n              {{list.nickname}}\n            </view>\n          </view>\n\n          <view class=\"album__desc\">\n          播放量：{{list.visitnum}}\n          </view>\n        </view>\n      </view>\n\n      <view class=\"opt_box\">\n        <view class=\"btn_play_all\" data-id=\"{{disstid}}\" bindtap='playAll'>\n          播放全部\n        </view>\n      </view>\n    </view>\n    <image src=\"{{list.logo}}\" class=\"info_box__bg\"></image>\n  </view>\n\n  <view class=\"wrap\">\n    <view class=\"main\">\n      <view class=\"count_box\">\n        <view class=\"count_box__desc\">\n          歌单 <view class=\"count_box__number\" style=\"display:inline-block;\">共{{list.songnum}}首</view>\n        </view>\n      </view>\n\n      <view class=\"qui_list\">\n        <block wx:for=\"{{list.songlist}}\" wx:key=\"{{list.songlist}}\">\n          <view style=\"opacity:{{item.pay.pay_play == 1? '0.5':'1'}};\" class=\"qui_list__item\" data-songid=\"{{item.id}}\" data-mid=\"{{item.album.mid}}\" data-name=\"{{item.title}}\" data-singer=\"{{item.singer[0].name}}\" data-num=\"{{index}}\" bindtap=\"musicPlay\">\n            <view class=\"qui_list__bd\">\n              <view class=\"qui_list__box\">\n                <view class=\"qui_list__tit\">\n                  {{item.title}}\n                </view>\n                <view class=\"qui_list__desc\">\n                  {{item.album.title}}               \n                </view>\n              </view>\n            </view>\n          </view>\n        </block>\n      </view>\n\n      <view wx:if=\"{{havaMusic}}\" class=\"check_more\" bindtap='getMoreMusic'>点击加载更多歌曲</view>\n\n      <view class=\"qui_tit\">\n        <view class=\"qui_tit__text\">\n          歌单简介\n        </view>\n      </view>\n      <view class=\"intro\">\n        <text decode>\n        {{list.desc}}\n        </text>\n      </view>\n    </view>\n  </view>\n</view>"
  },
  {
    "path": "pages/gedan/gedan.wxss",
    "content": "page {\n  background: #fff;\n  color:#777;\n}\n.info_box {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 10;\n  width: 100%;\n  height: 480rpx;\n  overflow: hidden;\n  color: #fff;\n  background: #fff;\n}\n.info_box__bd {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 4;\n  display: -webkit-box;\n  -webkit-box-orient: vertical;\n  overflow: hidden;\n  background: rgba(0,0,0,.5);\n}\n.album {\n    display: -webkit-box;\n    -webkit-box-pack: center;\n    -webkit-box-align: center;\n    -webkit-box-sizing: border-box;\n    width: 100%;\n    margin-top: 34rpx;\n    padding: 0 32rpx;\n    overflow: hidden;\n}\n.album__media {\n  position: relative;\n  width: 250rpx;\n  margin-right: 20rpx;\n  overflow: hidden;\n}\n.album__cover {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 2;\n  width: 100%;\n  height: 100%;\n  object-fit: cover;\n}\n.album__media::after {\n  content: \"\";\n  display: block;\n  padding-top: 100%;\n}\n.album__bd {\n  position: relative;\n  -webkit-box-flex: 1;\n}\n.album__name {\n  display: -webkit-box;\n  -webkit-box-orient: vertical;\n  -webkit-line-clamp: 2;\n  max-height: 94rpx;\n  line-height: 1.3;\n  overflow: hidden;\n  font-size: 18px;\n  font-weight: 300;\n}\n.author {\n  display: -webkit-box;\n  -webkit-box-align: center;\n  margin-top: 16rpx;\n  overflow: hidden;\n}\n.author__avatar {\n  display: block;\n  width: 48rpx;\n  height: 48rpx;\n  margin-right: 16rpx;\n  border-radius: 48rpx;\n}\n.author__bd {\n  -webkit-box-flex: 1;\n}\n.author__name {\n  display: block;\n  width: 100%;\n  overflow: hidden;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n  font-size: 14px;\n  color: #fff;\n}\n.album__desc {\n  display: -webkit-box;\n  -webkit-box-orient: vertical;\n  -webkit-line-clamp: 2;\n  max-height: 72rpx;\n  overflow: hidden;\n  margin-top: 16rpx;\n  font-size: 12px;\n}\n.opt_box {\n  display: -webkit-box;\n  -webkit-box-pack: center;\n  -webkit-box-align: center;\n  height: 196rpx;\n  padding: 0 32rpx;\n  -webkit-transition: 1s ease-in-out;\n}\n.btn_play_all {\n  display: -webkit-box;\n  -webkit-box-pack: center;\n  -webkit-box-align: center;\n  min-width: 260rpx;\n  padding: 0 40rpx;\n  height: 80rpx;\n  overflow: hidden;\n  text-align: center;\n  font-size: 16px;\n  color: #fff;\n  border-radius: 40rpx;\n  background: #31c27c;\n}\n.btn_play_all::before {\n  content: \"\";\n  display: block;\n  height: 0;\n  width: 0;\n  margin-right: -6rpx;\n  border-color: transparent transparent transparent #fff;\n  border-width: 14rpx 22rpx;\n  border-style: solid;\n  border-radius: 4rpx;\n}\n.info_box__bg {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 3;\n  width: 100%;\n  height: 100%;\n  object-fit: cover;\n  -webkit-transform: scale(1.1) translateZ(0);\n  -webkit-filter: blur(36px);\n}\n.wrap {\n  /* position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 2;\n  padding-bottom: 0; */\n  overflow: hidden;\n}\n.main {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 2;\n  width: 100%;\n  padding-top: 480rpx;\n  padding-bottom: 100rpx;\n  overflow: hidden;\n  will-change: transform;\n  -webkit-transform: translateZ(0);\n}\n.count_box {\n  position: relative;\n  display: -webkit-box;\n  -webkit-box-align: center;\n  height: 108rpx;\n  margin: 0 32rpx -20rpx;\n}\n.count_box__desc {\n  font-size: 14px;\n}\n.count_box__number {\n  margin-left: 10rpx;\n}\n.qui_list {\n  overflow: hidden;\n}\n.qui_list__item {\n  position: relative;\n  display: -webkit-box;\n}\n.qui_list__bd {\n  position: relative;\n  -webkit-box-flex: 1;\n  display: -webkit-box;\n  -webkit-box-align: center;\n  padding: 20rpx 32rpx;\n  overflow: hidden;\n}\n.qui_list__box {\n  -webkit-box-flex: 1;\n  display: -webkit-box;\n  -webkit-box-orient: vertical;\n}\n.qui_list__tit {\n  font-size: 16px;\n  color: #000;\n  display: -webkit-box;\n  -webkit-box-align: center;\n  overflow: hidden;\n  max-width: 100%;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n}\n.qui_list__desc{\n  display: -webkit-box;\n  -webkit-box-align: center;\n  overflow: hidden;\n  font-size:12px;\n}\n.qui_list__txt {\n  display: block;\n  max-width: 100%;\n  overflow: hidden;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n  font-size:16px;\n}\n.check_more {\n  display: -webkit-box;\n  -webkit-box-pack: center;\n  -webkit-box-align: center;\n  height: 64rpx;\n  margin-bottom: 30rpx;\n  font-size: 28rpx;\n}\n.qui_tit {\n  position: relative;\n  display: -webkit-box;\n  -webkit-box-orient: vertical;\n  -webkit-box-pack: center;\n  -webkit-box-align: center;\n  height: 110rpx;\n  padding: 0 80rpx;\n  overflow: hidden;\n  text-align: center;\n}\n.intro {\n  position: relative;\n  margin: 0 32rpx 40rpx;\n  overflow: hidden;\n  text-align: justify;\n  word-wrap: break-word;\n  font-size: 14px;\n}"
  },
  {
    "path": "pages/index/index.js",
    "content": "const app = getApp()\nPage({\n  data: {\n    banner: [], //轮播图\n    radioList: [], //电台\n    songList: [], //歌单\n    loading: false, //是否加载完成\n  },\n  onLoad: function() {\n    wx.showShareMenu();\n    wx.showLoading({\n      title: '加载中',\n    });\n    // wx.request({\n    //   url: '首页信息API',\n    //   data:{},\n    //   success:res=> {\n    //     let data = res.data;\n    //     var that = this;\n    //     if (data.code == 0) {\n\n    var data = {\n      \"data\": {\n        \"slider\": [{\n          \"linkUrl\": \"http://y.qq.com/w/album.html?albummid=004ZGlrw3Me8eI\",\n          \"picUrl\": \"http://y.gtimg.cn/music/common/upload/MUSIC_FOCUS/1155264.jpg\",\n          \"id\": 19857\n        }, {\n          \"linkUrl\": \"http://y.qq.com/w/album.html?albummid=003vVUT83SaF4l\",\n          \"picUrl\": \"http://y.gtimg.cn/music/common/upload/MUSIC_FOCUS/1155138.jpg\",\n          \"id\": 19858\n        }, {\n          \"linkUrl\": \"https://y.qq.com/m/digitalbum/gold/index.html?openinqqmusic=1_video=true&id=5447522&g_f=shoujijiaodian\",\n          \"picUrl\": \"http://y.gtimg.cn/music/common/upload/MUSIC_FOCUS/1155430.jpg\",\n          \"id\": 19853\n        }, {\n          \"linkUrl\": \"http://y.qq.com/w/album.html?albummid=000uoyVq093DIY\",\n          \"picUrl\": \"http://y.gtimg.cn/music/common/upload/MUSIC_FOCUS/1155139.jpg\",\n          \"id\": 19859\n        }, {\n          \"linkUrl\": \"https://y.qq.com/apg/612/index.html?ADTAG=JDT&openinqqmusic=1\",\n          \"picUrl\": \"http://y.gtimg.cn/music/common/upload/MUSIC_FOCUS/1155328.jpg\",\n          \"id\": 19850\n        }],\n        \"radioList\": [{\n          \"picUrl\": \"http://y.gtimg.cn/music/photo/radio/track_radio_199_13_1.jpg\",\n          \"Ftitle\": \"热歌\",\n          \"radioid\": 199\n        }, {\n          \"picUrl\": \"http://y.gtimg.cn/music/photo/radio/track_radio_307_13_1.jpg\",\n          \"Ftitle\": \"一人一首招牌歌\",\n          \"radioid\": 307\n        }],\n        \"songList\": [{\n          \"songListDesc\": \"催泪大杀器！盘点演唱会经典万人大合唱\",\n          \"picUrl\": \"http://p.qpic.cn/music_cover/1Fr9IFMhWDPeUzWKVEjn3QTL2eX2QziaJmaL0ZAmsvtW71ic9IDUoYzg/300?n=1\",\n          \"id\": \"2646688496\",\n          \"accessnum\": 9927141,\n          \"songListAuthor\": \"金青松\",\n          \"pic_mid\": \"00333So02drvak\",\n          \"album_pic_mid\": \"\"\n        }, {\n          \"songListDesc\": \"纳尼？这些华语歌手竟然会唱日语歌！\",\n          \"picUrl\": \"http://p.qpic.cn/music_cover/z8wAFqicQ1qhImeiajkrgiaR4hYM3pzsUULFnicXshFXdw9uGkm261Ex9g/300?n=1\",\n          \"id\": \"1144416825\",\n          \"accessnum\": 675463,\n          \"songListAuthor\": \"风吹草地\",\n          \"pic_mid\": \"0013j8zs1jRnLQ\",\n          \"album_pic_mid\": \"\"\n        }, {\n          \"songListDesc\": \"精选内地十大民谣歌手代表作\",\n          \"picUrl\": \"http://p.qpic.cn/music_cover/hVUsfUFG2DV466URqw7PT7X66OknPIhic2mKDgicawN4qThIR7yhYY1w/300?n=1\",\n          \"id\": \"2043041547\",\n          \"accessnum\": 1295560,\n          \"songListAuthor\": \"１'s   ヽ\",\n          \"pic_mid\": \"004bFmjW2PXSqF\",\n          \"album_pic_mid\": \"0032YJyg2yF6Dd\"\n        }, {\n          \"songListDesc\": \"2016billboard嘻哈榜\",\n          \"picUrl\": \"http://p.qpic.cn/music_cover/tkduvk4dwqBxwzZhsNe0nwkwyiaLHVkxtla7REsX0yNkhibOH3Bdb2og/300?n=1\",\n          \"id\": \"2040362185\",\n          \"accessnum\": 1161101,\n          \"songListAuthor\": \"CREAMSAUCEONMEBABY\",\n          \"pic_mid\": \"000cL0xT2csmd7\",\n          \"album_pic_mid\": \"001iJq1y1Uq3zV\"\n        }, {\n          \"songListDesc\": \"浮光掠影：ACG纯音乐赏析合辑\",\n          \"picUrl\": \"http://p.qpic.cn/music_cover/XMPAjfs5uwGZdWII3osvAvCRyNWx8Pqy5Yice41OCZlBhLtk0p0icNvg/300?n=1\",\n          \"id\": \"1723063372\",\n          \"accessnum\": 998181,\n          \"songListAuthor\": \"黎桐同\",\n          \"pic_mid\": \"000xFtbN1l8ye8\",\n          \"album_pic_mid\": \"002egQPg3DWcCS\"\n        }, {\n          \"songListDesc\": \"trip-hop单曲大推荐\",\n          \"picUrl\": \"http://y.gtimg.cn/music/photo_new/T005R600x600M000002CJKAY1LKpcz.jpg?n=1\",\n          \"id\": \"3482605622\",\n          \"accessnum\": 357712,\n          \"songListAuthor\": \"哑忍\",\n          \"pic_mid\": \"\",\n          \"album_pic_mid\": \"004aOQhn3PPOpK\"\n        }]\n      }\n    },\n    slider = data.data.slider,\n      radioList = data.data.radioList,\n      songList = data.data.songList,\n      radioId = []\n    for (var i = 0; i < radioList.length; i++) {\n      radioId.push(radioList[i].radioid);\n    }\n    this.setData({\n      banner: slider,\n      radioList: radioList,\n      songList: songList,\n      loading: true\n    });\n    app.globalData.radioId = radioId;\n    wx.hideLoading();\n    // }\n    //   },\n    //   fail:req=> {\n    //     wx.showToast({\n    //       icon:'none',\n    //       title: '哎呀！数据出错了，别急，程序猿正在加急修改中',\n    //     })\n    //   }\n    // })\n  },\n  go_radio: function(e) {\n    wx.showLoading({\n      title: '加载中',\n    });\n    var labelid = e.currentTarget.dataset.id;\n    wx.request({\n      url: '电台API',\n      method: 'get',\n      data: {},\n      success: res => {\n        var Data = res.data,\n          code = Data.code;\n        if (code == 0) {\n          var radioData = Data.data,\n            id = [],\n            music_name = [];\n          for (var i = 0; i < radioData.length; i++) {\n            id.push(radioData[i].id);\n            music_name.push(radioData[i].name);\n          }\n          wx.setStorageSync('song_id', id); //将电台随机生成的歌曲id存入缓存\n          wx.setStorageSync('music_name', music_name); //将随机生成的歌曲信息存入缓存\n          wx.setStorageSync('num', 0); //播放第一首歌\n          wx.setStorageSync('labelid', labelid); //写入新的广播id\n          app.globalData.shouldPlay = true; //重新请求音乐接口，因为每次获取到的广播歌曲都是不同的\n          // app.globalData.unload = true;\n          wx.switchTab({\n            url: '../playSong/playSong',\n          })\n        } else {\n          wx.showToast({\n            icon: 'none',\n            title: '哎呀！数据出错了，别急，程序猿正在加急修改中',\n          })\n        }\n\n      },\n      error: req => {\n        wx.showToast({\n          icon: 'none',\n          title: '哎呀！数据出错了，别急，程序猿正在加急修改中',\n        })\n      }\n    })\n  },\n  selectHot: function(e) {\n    let id = e.currentTarget.dataset.id;\n    wx.showLoading({\n      title: '加载中',\n    });\n    app.gePlay(id, 0);\n  },\n  go_search() { //跳到搜索页\n    wx.navigateTo({\n      url: '../search/search',\n    })\n  },\n  getGedan(e) { //跳到歌单详情页\n    let id = e.currentTarget.dataset.id;\n    //跳转到歌单页面\n    wx.navigateTo({\n      url: '../gedan/gedan?disstid=' + id,\n    })\n  }\n})"
  },
  {
    "path": "pages/index/index.json",
    "content": "{\n  \n}"
  },
  {
    "path": "pages/index/index.wxml",
    "content": "<!--index.wxml-->\n<view class=\"container\">\n<!-- <view style=\"width:100%;height:168rpx;\">\n  <official-account bindload=\"\"></official-account>\n</view> -->\n  <view class=\"page__bd\">\n    <view class=\"weui-search-bar\">\n      <view class=\"weui-search-bar__form\">\n        <view class=\"weui-search-bar__box\">\n          <icon class=\"weui-icon-search_in-box\" type=\"search\" size=\"14\"></icon>\n          <input type=\"text\" class=\"weui-search-bar__input\" placeholder=\"搜索歌曲、歌手\" />\n          <view class=\"weui-icon-clear\" wx:if=\"{{inputVal.length > 0}}\">\n            <icon type=\"clear\" size=\"14\"></icon>\n          </view>\n        </view>\n        <label class=\"weui-search-bar__label\" bindtap=\"go_search\">\n          <icon class=\"weui-icon-search\" type=\"search\" size=\"14\"></icon>\n          <view class=\"weui-search-bar__text\">搜索歌曲、歌手</view>\n        </label>\n      </view>\n      <view class=\"weui-search-bar__cancel-btn\" hidden=\"{{!inputShowed}}\" bindtap=\"hideInput\">取消</view>\n    </view>\n  </view>\n\n  <view class=\"main\" wx:if=\"{{loading}}\">\n    <!-- 轮播图 -->\n    <swiper class=\"banner\" indicator-dots=\"true\" indicator-color=\"rgba(255,255,255,.3)\" indicator-active-color=\"#fff\" autoplay='true' interval='2000' circular='true'>\n      <block wx:for=\"{{banner}}\" wx:key=\"{{banner}}\">\n        <swiper-item data-id=\"{{item.linkUrl}}\">\n          <image src=\"{{item.picUrl}}\" class=\"banner-image\"></image>\n        </swiper-item>\n      </block>\n    </swiper>\n    <!-- 电台 -->\n    <view class=\"mod_radio_list\">\n      <view class=\"list_title\">电台</view>\n      <view class=\"radio_wrapper\">\n        <block wx:for=\"{{radioList}}\" wx:key=\"{{radioList}}\">\n          <view class=\"radio_img\" data-id=\"{{item.radioid}}\" bindtap=\"go_radio\">\n            <image class=\"radio_image\" src=\"{{item.picUrl}}\"></image>\n            <view class=\"radio_text\">{{item.Ftitle}}</view>\n            <image class=\"radio_play\" src=\"../../img/play.png\"></image>\n          </view>\n        </block>\n        <view class=\"clearfix\"></view>\n      </view>\n    </view>\n    <!-- 热门歌单 -->\n    <view class=\"mod_radio_list\">\n      <view class=\"list_title\">热门歌单</view>\n      <view class=\"radio_wrapper\">\n        <block wx:for=\"{{songList}}\" wx:key=\"{{songList}}\">\n          <view class=\"radio_img\" data-id=\"{{item.id}}\" bindtap=\"getGedan\">\n            <image class=\"radio_image\" src=\"{{item.picUrl}}\"></image>\n            <view class=\"radio_text\" style=\"white-space:nowrap;overflow:hidden;text-overflow:ellipsis;\">{{item.songListDesc}}</view>\n            <view class=\"radio_text2\">{{item.songListAuthor}}</view>\n            <image class=\"radio_icon\" src=\"../../img/music.png\"></image>\n            <image class=\"radio_play\" data-id=\"{{item.id}}\" src=\"../../img/play.png\" catchtap='selectHot'></image>\n            <text class=\"radio_num\">{{item.accessnum}}</text>\n          </view>\n        </block>\n        <view class=\"clearfix\"></view>\n      </view>\n    </view>\n    <!-- <Music-play></Music-play> -->\n  </view>\n\n</view>"
  },
  {
    "path": "pages/index/index.wxss",
    "content": "/**index.wxss**/\npage {\n  width: 100%;\n}\n.page__bd {\n  width:100%;\n}\n.main {\n  width:100%;\n  /* margin-top:48px; */\n}\n.banner {\n  width:100%;\n}\n.banner .banner-image {\n  width:100%;\n  height:300rpx;\n}\n.mod_radio_list {\n  width:95%;\n  margin:10px;\n}\n.list_title {\n  font-size:16px;\n  color:#000;\n  margin-bottom:11px;\n  font-weight: normal;\n}\n.radio_wrapper {\n  overflow: hidden;\n  margin-right: -10px;\n}\n.radio_wrapper .radio_img {\n  position:relative;\n  float:left;\n  width:48%;\n  padding-right: 4px;\n  margin-bottom:10px;\n}\n.radio_wrapper .radio_img .radio_image {\n  width:100%;\n  height:410rpx;\n}\n.radio_wrapper .radio_img .radio_icon {\n  position: absolute;\n  width:40rpx;\n  height:40rpx;\n  left:14rpx;\n  bottom:100rpx;\n}\n.radio_wrapper .radio_img .radio_play {\n  position: absolute;\n  width:48rpx;\n  height:48rpx;\n  right:14rpx;\n  bottom:100rpx;\n}\n.radio_wrapper .radio_img .radio_text {\n  position:absolute;\n  width:90%;\n  height: 36px;\n  line-height: 18px;\n  bottom:0;\n  padding: 2px 7px 5px;\n  background:#fff;\n  font-size:14px;\n  white-space: normal;\n  word-wrap: break-word;\n}\n.radio_wrapper .radio_img .radio_text2 {\n  position:absolute;\n  bottom: 0;\n  z-index:2;\n  font-size:12px;\n  width:90%;\n  padding: 0 7px 5px;\n  white-space: normal;\n  word-wrap: break-word;\n}\n.radio_wrapper .radio_img .radio_num {\n  position: absolute;\n  color:#fff;\n  left:60rpx;\n  bottom:100rpx;\n  font-size:12px;\n  font-weight: bold;\n}\n.clearfix {\n  clear:all;\n}"
  },
  {
    "path": "pages/logs/logs.js",
    "content": "//logs.js\nconst util = require('../../utils/util.js')\nconst app = getApp()\nconst TITLE_HEIGHT = 30\nconst ANCHOR_HEIGHT = 18\nPage({\n  data: {\n    toSingerNum: '',\n    logs: [],\n    scrollTop: 0,\n    HOT_NAME: '热',\n    HOT_SINGER_LEN: 10,\n    listHeight: [],\n    currentIndex: 0,\n    fixedTitle: '',\n    fixedTop: 0,\n  },\n  onLoad: function() {\n    var that = this;\n    wx.showLoading({\n      title: '加载中',\n    })\n    wx.showShareMenu();\n    // wx.request({\n    //   url: '歌手API',\n    //   data: {},\n    //   success:res=> {\n    var data = {\n        \"code\": 0,\n        \"data\": {\n          \"list\": [{\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"X\",\n            \"Fother_name\": \"Joker\",\n            \"Fsinger_id\": \"5062\",\n            \"Fsinger_mid\": \"002J4UUk29y8BY\",\n            \"Fsinger_name\": \"薛之谦\",\n            \"Fsinger_tag\": \"541,555\",\n            \"Fsort\": \"1\",\n            \"Ftrend\": \"0\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"0\",\n            \"Fattribute_3\": \"2\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"Z\",\n            \"Fother_name\": \"Jay Chou\",\n            \"Fsinger_id\": \"4558\",\n            \"Fsinger_mid\": \"0025NhlN2yWrP4\",\n            \"Fsinger_name\": \"周杰伦\",\n            \"Fsinger_tag\": \"541,555\",\n            \"Fsort\": \"2\",\n            \"Ftrend\": \"0\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"2\",\n            \"Fattribute_3\": \"5\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"B\",\n            \"Fother_name\": \"빅뱅\",\n            \"Fsinger_id\": \"11733\",\n            \"Fsinger_mid\": \"004AlfUb0cVkN1\",\n            \"Fsinger_name\": \"BIGBANG (빅뱅)\",\n            \"Fsinger_tag\": \"645,663,676,679,694,703,710,713\",\n            \"Fsort\": \"3\",\n            \"Ftrend\": \"0\",\n            \"Ftype\": \"2\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"0\",\n            \"Fattribute_3\": \"1\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"C\",\n            \"Fother_name\": \"Eason Chan\",\n            \"Fsinger_id\": \"143\",\n            \"Fsinger_mid\": \"003Nz2So3XXYek\",\n            \"Fsinger_name\": \"陈奕迅\",\n            \"Fsinger_tag\": \"555\",\n            \"Fsort\": \"4\",\n            \"Ftrend\": \"0\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"0\",\n            \"Fattribute_3\": \"44\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"L\",\n            \"Fother_name\": \"JJ Lin\",\n            \"Fsinger_id\": \"4286\",\n            \"Fsinger_mid\": \"001BLpXF2DyJe2\",\n            \"Fsinger_name\": \"林俊杰\",\n            \"Fsinger_tag\": \"541,555\",\n            \"Fsort\": \"5\",\n            \"Ftrend\": \"0\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"3\",\n            \"Fattribute_3\": \"0\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"A\",\n            \"Fother_name\": \"艾伦·沃克\",\n            \"Fsinger_id\": \"944940\",\n            \"Fsinger_mid\": \"0020PeOh4ZaCw1\",\n            \"Fsinger_name\": \"Alan Walker (艾伦·沃克)\",\n            \"Fsinger_tag\": \"\",\n            \"Fsort\": \"6\",\n            \"Ftrend\": \"1\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"L\",\n            \"Fother_name\": \"Ronghao Li\",\n            \"Fsinger_id\": \"60505\",\n            \"Fsinger_mid\": \"000aHmbL2aPXWH\",\n            \"Fsinger_name\": \"李荣浩\",\n            \"Fsinger_tag\": \"\",\n            \"Fsort\": \"7\",\n            \"Ftrend\": \"0\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"T\",\n            \"Fother_name\": \"\",\n            \"Fsinger_id\": \"34412\",\n            \"Fsinger_mid\": \"000zmpju02bEBm\",\n            \"Fsinger_name\": \"TFBOYS\",\n            \"Fsinger_tag\": \"\",\n            \"Fsort\": \"8\",\n            \"Ftrend\": \"1\",\n            \"Ftype\": \"2\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"3\",\n            \"Fattribute_3\": \"6\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"M\",\n            \"Fother_name\": \"魔力红乐团\",\n            \"Fsinger_id\": \"4983\",\n            \"Fsinger_mid\": \"001JuGrt372YIQ\",\n            \"Fsinger_name\": \"Maroon 5 (魔力红乐团)\",\n            \"Fsinger_tag\": \"644,645\",\n            \"Fsort\": \"9\",\n            \"Ftrend\": \"1\",\n            \"Ftype\": \"2\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"X\",\n            \"Fother_name\": \"Vae Xu\",\n            \"Fsinger_id\": \"7221\",\n            \"Fsinger_mid\": \"000CK5xN3yZDJt\",\n            \"Fsinger_name\": \"许嵩\",\n            \"Fsinger_tag\": \"\",\n            \"Fsort\": \"10\",\n            \"Ftrend\": \"-1\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"0\",\n            \"Fattribute_3\": \"1\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"G\",\n            \"Fother_name\": \"Gem Tang\",\n            \"Fsinger_id\": \"13948\",\n            \"Fsinger_mid\": \"001fNHEf1SFEFN\",\n            \"Fsinger_name\": \"G.E.M. 邓紫棋\",\n            \"Fsinger_tag\": \"541,555\",\n            \"Fsort\": \"11\",\n            \"Ftrend\": \"-1\",\n            \"Ftype\": \"1\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"Z\",\n            \"Fother_name\": \"Jason Zhang\",\n            \"Fsinger_id\": \"6499\",\n            \"Fsinger_mid\": \"002azErJ0UcDN6\",\n            \"Fsinger_name\": \"张杰\",\n            \"Fsinger_tag\": \"555\",\n            \"Fsort\": \"12\",\n            \"Ftrend\": \"0\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"L\",\n            \"Fother_name\": \"\",\n            \"Fsinger_id\": \"204664\",\n            \"Fsinger_mid\": \"001SqkF53OEhdO\",\n            \"Fsinger_name\": \"鹿晗\",\n            \"Fsinger_tag\": \"\",\n            \"Fsort\": \"13\",\n            \"Ftrend\": \"1\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"1\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"Z\",\n            \"Fother_name\": \"Ada Zhuang\",\n            \"Fsinger_id\": \"89698\",\n            \"Fsinger_mid\": \"003Cn3Yh16q1MO\",\n            \"Fsinger_name\": \"庄心妍\",\n            \"Fsinger_tag\": \"555\",\n            \"Fsort\": \"14\",\n            \"Ftrend\": \"-1\",\n            \"Ftype\": \"1\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"0\",\n            \"Fattribute_3\": \"2\",\n            \"Fattribute_4\": \"1\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"Y\",\n            \"Fother_name\": \"Aska Yang\",\n            \"Fsinger_id\": \"11608\",\n            \"Fsinger_mid\": \"003tMm0y0TuewY\",\n            \"Fsinger_name\": \"杨宗纬\",\n            \"Fsinger_tag\": \"555\",\n            \"Fsort\": \"15\",\n            \"Ftrend\": \"0\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"3\",\n            \"Fattribute_3\": \"15\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"J\",\n            \"Fother_name\": \"贾斯汀·比伯\",\n            \"Fsinger_id\": \"16257\",\n            \"Fsinger_mid\": \"002DYpxl3hW3EP\",\n            \"Fsinger_name\": \"Justin Bieber (贾斯汀·比伯)\",\n            \"Fsinger_tag\": \"645,710\",\n            \"Fsort\": \"16\",\n            \"Ftrend\": \"1\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"Z\",\n            \"Fother_name\": \"\",\n            \"Fsinger_id\": \"199515\",\n            \"Fsinger_mid\": \"0003ZpE43ypssl\",\n            \"Fsinger_name\": \"张碧晨\",\n            \"Fsinger_tag\": \"\",\n            \"Fsort\": \"17\",\n            \"Ftrend\": \"-1\",\n            \"Ftype\": \"1\",\n            \"voc\": \"1\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"H\",\n            \"Fother_name\": \"\",\n            \"Fsinger_id\": \"163550\",\n            \"Fsinger_mid\": \"002Vcz8F2hpBQj\",\n            \"Fsinger_name\": \"华晨宇\",\n            \"Fsinger_tag\": \"555\",\n            \"Fsort\": \"18\",\n            \"Ftrend\": \"1\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"0\",\n            \"Fattribute_3\": \"1\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"Z\",\n            \"Fother_name\": \"Jacky Cheung\",\n            \"Fsinger_id\": \"174\",\n            \"Fsinger_mid\": \"004Be55m1SJaLk\",\n            \"Fsinger_name\": \"张学友\",\n            \"Fsinger_tag\": \"555\",\n            \"Fsort\": \"19\",\n            \"Ftrend\": \"-1\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"0\",\n            \"Fattribute_3\": \"2\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"T\",\n            \"Fother_name\": \"Hebe Tian\",\n            \"Fsinger_id\": \"4701\",\n            \"Fsinger_mid\": \"001ByAsv3XCdgm\",\n            \"Fsinger_name\": \"田馥甄\",\n            \"Fsinger_tag\": \"555\",\n            \"Fsort\": \"20\",\n            \"Ftrend\": \"-1\",\n            \"Ftype\": \"1\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"2\",\n            \"Fattribute_3\": \"4\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"R\",\n            \"Fother_name\": \"ラッドウィンプス\",\n            \"Fsinger_id\": \"9962\",\n            \"Fsinger_mid\": \"000f1b6W1wzyRN\",\n            \"Fsinger_name\": \"RADWIMPS (ラッドウィンプス)\",\n            \"Fsinger_tag\": \"645,683,690,709\",\n            \"Fsort\": \"21\",\n            \"Ftrend\": \"1\",\n            \"Ftype\": \"2\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"0\",\n            \"Fattribute_3\": \"2\",\n            \"Fattribute_4\": \"1\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"X\",\n            \"Fother_name\": \"Jam Hsiao\",\n            \"Fsinger_id\": \"13203\",\n            \"Fsinger_mid\": \"004bsIDK0awMOv\",\n            \"Fsinger_name\": \"萧敬腾\",\n            \"Fsinger_tag\": \"\",\n            \"Fsort\": \"22\",\n            \"Ftrend\": \"-1\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"N\",\n            \"Fother_name\": \"\",\n            \"Fsinger_id\": \"137\",\n            \"Fsinger_mid\": \"003LCFXH0eodXv\",\n            \"Fsinger_name\": \"那英\",\n            \"Fsinger_tag\": \"555\",\n            \"Fsort\": \"23\",\n            \"Ftrend\": \"-1\",\n            \"Ftype\": \"1\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"0\",\n            \"Fattribute_3\": \"2\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"W\",\n            \"Fother_name\": \"Leehom Wang\",\n            \"Fsinger_id\": \"265\",\n            \"Fsinger_mid\": \"001JDzPT3JdvqK\",\n            \"Fsinger_name\": \"王力宏\",\n            \"Fsinger_tag\": \"541,573\",\n            \"Fsort\": \"24\",\n            \"Ftrend\": \"-1\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"Z\",\n            \"Fother_name\": \"Jane Zhang\",\n            \"Fsinger_id\": \"4607\",\n            \"Fsinger_mid\": \"000aw4WC2EQYTv\",\n            \"Fsinger_name\": \"张靓颖\",\n            \"Fsinger_tag\": \"555\",\n            \"Fsort\": \"25\",\n            \"Ftrend\": \"-1\",\n            \"Ftype\": \"1\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"W\",\n            \"Fother_name\": \"Kris Wu\",\n            \"Fsinger_id\": \"180646\",\n            \"Fsinger_mid\": \"002yeznU3VAVEV\",\n            \"Fsinger_name\": \"吴亦凡\",\n            \"Fsinger_tag\": \"\",\n            \"Fsort\": \"26\",\n            \"Ftrend\": \"1\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"0\",\n            \"Fattribute_3\": \"1\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"B\",\n            \"Fother_name\": \"\",\n            \"Fsinger_id\": \"2\",\n            \"Fsinger_mid\": \"002pUZT93gF4Cu\",\n            \"Fsinger_name\": \"BEYOND\",\n            \"Fsinger_tag\": \"541,558,569\",\n            \"Fsort\": \"27\",\n            \"Ftrend\": \"1\",\n            \"Ftype\": \"2\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"0\",\n            \"Fattribute_3\": \"2\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"L\",\n            \"Fother_name\": \"Yoga Lin\",\n            \"Fsinger_id\": \"11606\",\n            \"Fsinger_mid\": \"001f0VyZ1hmWZ1\",\n            \"Fsinger_name\": \"林宥嘉\",\n            \"Fsinger_tag\": \"555\",\n            \"Fsort\": \"28\",\n            \"Ftrend\": \"-1\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"1\",\n            \"Fgenre\": \"17\",\n            \"Findex\": \"N\",\n            \"Fother_name\": \"NZBZ\",\n            \"Fsinger_id\": \"69205\",\n            \"Fsinger_mid\": \"003ZQQb64D5317\",\n            \"Fsinger_name\": \"南征北战\",\n            \"Fsinger_tag\": \"\",\n            \"Fsort\": \"29\",\n            \"Ftrend\": \"1\",\n            \"Ftype\": \"2\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"W\",\n            \"Fother_name\": \"Silence Wan\",\n            \"Fsinger_id\": \"3954\",\n            \"Fsinger_mid\": \"001z2JmX09LLgL\",\n            \"Fsinger_name\": \"汪苏泷\",\n            \"Fsinger_tag\": \"541,555,562\",\n            \"Fsort\": \"30\",\n            \"Ftrend\": \"1\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"2\",\n            \"Fattribute_3\": \"5\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"G\",\n            \"Fother_name\": \"权志龙\",\n            \"Fsinger_id\": \"19851\",\n            \"Fsinger_mid\": \"000t2qd13dLpae\",\n            \"Fsinger_name\": \"G-DRAGON (权志龙)\",\n            \"Fsinger_tag\": \"646,663,666,676,679,690,705,714\",\n            \"Fsort\": \"31\",\n            \"Ftrend\": \"0\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"0\",\n            \"Fattribute_3\": \"2\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"S\",\n            \"Fother_name\": \"Sodagreen\",\n            \"Fsinger_id\": \"5924\",\n            \"Fsinger_mid\": \"000Q4W691sMvLG\",\n            \"Fsinger_name\": \"苏打绿\",\n            \"Fsinger_tag\": \"544,555,569\",\n            \"Fsort\": \"32\",\n            \"Ftrend\": \"1\",\n            \"Ftype\": \"2\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"P\",\n            \"Fother_name\": \"\",\n            \"Fsinger_id\": \"4442\",\n            \"Fsinger_mid\": \"000mLAT42CFWNa\",\n            \"Fsinger_name\": \"朴树\",\n            \"Fsinger_tag\": \"541,555,558\",\n            \"Fsort\": \"33\",\n            \"Ftrend\": \"1\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"W\",\n            \"Fother_name\": \"Faye Wong\",\n            \"Fsinger_id\": \"264\",\n            \"Fsinger_mid\": \"000GDDuQ3sGQiT\",\n            \"Fsinger_name\": \"王菲\",\n            \"Fsinger_tag\": \"555\",\n            \"Fsort\": \"34\",\n            \"Ftrend\": \"1\",\n            \"Ftype\": \"1\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"K\",\n            \"Fother_name\": \"\",\n            \"Fsinger_id\": \"11761\",\n            \"Fsinger_mid\": \"002Sm9iK4RIsCr\",\n            \"Fsinger_name\": \"筷子兄弟\",\n            \"Fsinger_tag\": \"555\",\n            \"Fsort\": \"35\",\n            \"Ftrend\": \"-1\",\n            \"Ftype\": \"2\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"M\",\n            \"Fother_name\": \"\",\n            \"Fsinger_id\": \"160022\",\n            \"Fsinger_mid\": \"0035kILA0ydw3j\",\n            \"Fsinger_name\": \"MC天佑\",\n            \"Fsinger_tag\": \"\",\n            \"Fsort\": \"36\",\n            \"Ftrend\": \"-1\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"1\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"M\",\n            \"Fother_name\": \"\",\n            \"Fsinger_id\": \"1045852\",\n            \"Fsinger_mid\": \"000WbpKa3WokLD\",\n            \"Fsinger_name\": \"MC魏小然\",\n            \"Fsinger_tag\": \"\",\n            \"Fsort\": \"37\",\n            \"Ftrend\": \"1\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"J\",\n            \"Fother_name\": \"\",\n            \"Fsinger_id\": \"12111\",\n            \"Fsinger_mid\": \"004YXxql1sSr2o\",\n            \"Fsinger_name\": \"金志文\",\n            \"Fsinger_tag\": \"541,555\",\n            \"Fsort\": \"40\",\n            \"Ftrend\": \"0\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"S\",\n            \"Fother_name\": \"Niko Sun\",\n            \"Fsinger_id\": \"22874\",\n            \"Fsinger_mid\": \"001oXbjs29oPul\",\n            \"Fsinger_name\": \"孙子涵\",\n            \"Fsinger_tag\": \"541,555,562\",\n            \"Fsort\": \"41\",\n            \"Ftrend\": \"1\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"0\",\n            \"Fattribute_3\": \"2\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"A\",\n            \"Fother_name\": \"黄丽玲\",\n            \"Fsinger_id\": \"6028\",\n            \"Fsinger_mid\": \"003ArN8Z0WpjTz\",\n            \"Fsinger_name\": \"A-Lin\",\n            \"Fsinger_tag\": \"555\",\n            \"Fsort\": \"42\",\n            \"Ftrend\": \"1\",\n            \"Ftype\": \"1\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"X\",\n            \"Fother_name\": \"\",\n            \"Fsinger_id\": \"3376\",\n            \"Fsinger_mid\": \"00235pCx2tYjlq\",\n            \"Fsinger_name\": \"许巍\",\n            \"Fsinger_tag\": \"541,558\",\n            \"Fsort\": \"43\",\n            \"Ftrend\": \"-1\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"1\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"S\",\n            \"Fother_name\": \"Donye.S\",\n            \"Fsinger_id\": \"61620\",\n            \"Fsinger_mid\": \"004KKLWZ4320g1\",\n            \"Fsinger_name\": \"宋冬野\",\n            \"Fsinger_tag\": \"544,558\",\n            \"Fsort\": \"45\",\n            \"Ftrend\": \"0\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"0\",\n            \"Fattribute_3\": \"2\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"Z\",\n            \"Fother_name\": \"aMEI\",\n            \"Fsinger_id\": \"141\",\n            \"Fsinger_mid\": \"003JGrNQ3RjelA\",\n            \"Fsinger_name\": \"张惠妹\",\n            \"Fsinger_tag\": \"555\",\n            \"Fsort\": \"46\",\n            \"Ftrend\": \"-1\",\n            \"Ftype\": \"1\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"0\",\n            \"Fattribute_3\": \"2\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"Z\",\n            \"Fother_name\": \"Steve Chou\",\n            \"Fsinger_id\": \"4365\",\n            \"Fsinger_mid\": \"004NMZuf2BLjg8\",\n            \"Fsinger_name\": \"周传雄\",\n            \"Fsinger_tag\": \"541,555\",\n            \"Fsort\": \"47\",\n            \"Ftrend\": \"-1\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"0\",\n            \"Fattribute_3\": \"2\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"Z\",\n            \"Fother_name\": \"Jeff Chang\",\n            \"Fsinger_id\": \"167\",\n            \"Fsinger_mid\": \"0000mFvh1jtLcz\",\n            \"Fsinger_name\": \"张信哲\",\n            \"Fsinger_tag\": \"555\",\n            \"Fsort\": \"48\",\n            \"Ftrend\": \"1\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"Y\",\n            \"Fother_name\": \"\",\n            \"Fsinger_id\": \"944274\",\n            \"Fsinger_mid\": \"004coWV04C5FCV\",\n            \"Fsinger_name\": \"杨洋\",\n            \"Fsinger_tag\": \"\",\n            \"Fsort\": \"49\",\n            \"Ftrend\": \"1\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"X\",\n            \"Fother_name\": \"L Xu\",\n            \"Fsinger_id\": \"22704\",\n            \"Fsinger_mid\": \"004aRKga0CXIPm\",\n            \"Fsinger_name\": \"徐良\",\n            \"Fsinger_tag\": \"541,562\",\n            \"Fsort\": \"50\",\n            \"Ftrend\": \"1\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"0\",\n            \"Fattribute_3\": \"1\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"C\",\n            \"Fother_name\": \"Jordan Chan\",\n            \"Fsinger_id\": \"4284\",\n            \"Fsinger_mid\": \"004DFS271osAwp\",\n            \"Fsinger_name\": \"陈小春\",\n            \"Fsinger_tag\": \"555\",\n            \"Fsort\": \"51\",\n            \"Ftrend\": \"-1\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"Q\",\n            \"Fother_name\": \"Wanting Qu\",\n            \"Fsinger_id\": \"34703\",\n            \"Fsinger_mid\": \"0030RkE50nmpWC\",\n            \"Fsinger_name\": \"曲婉婷\",\n            \"Fsinger_tag\": \"\",\n            \"Fsort\": \"52\",\n            \"Ftrend\": \"-1\",\n            \"Ftype\": \"1\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"1\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"P\",\n            \"Fother_name\": \"\",\n            \"Fsinger_id\": \"1102711\",\n            \"Fsinger_mid\": \"003vSrlp0ujV6o\",\n            \"Fsinger_name\": \"鹏泊\",\n            \"Fsinger_tag\": \"\",\n            \"Fsort\": \"53\",\n            \"Ftrend\": \"-1\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"0\",\n            \"Fattribute_3\": \"44\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"S\",\n            \"Fother_name\": \"Stefanie Sun\",\n            \"Fsinger_id\": \"109\",\n            \"Fsinger_mid\": \"001pWERg3vFgg8\",\n            \"Fsinger_name\": \"孙燕姿\",\n            \"Fsinger_tag\": \"555,558\",\n            \"Fsort\": \"54\",\n            \"Ftrend\": \"1\",\n            \"Ftype\": \"1\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"3\",\n            \"Fattribute_3\": \"6\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"W\",\n            \"Fother_name\": \"维兹·卡利法\",\n            \"Fsinger_id\": \"12978\",\n            \"Fsinger_mid\": \"000CQ06r24Naco\",\n            \"Fsinger_name\": \"Wiz Khalifa (维兹·卡利法)\",\n            \"Fsinger_tag\": \"644\",\n            \"Fsort\": \"55\",\n            \"Ftrend\": \"0\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"0\",\n            \"Fattribute_3\": \"2\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"Z\",\n            \"Fother_name\": \"Phil Chang\",\n            \"Fsinger_id\": \"168\",\n            \"Fsinger_mid\": \"0044wQXL0ElWF1\",\n            \"Fsinger_name\": \"张宇\",\n            \"Fsinger_tag\": \"555\",\n            \"Fsort\": \"56\",\n            \"Ftrend\": \"-1\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"G\",\n            \"Fother_name\": \"\",\n            \"Fsinger_id\": \"61959\",\n            \"Fsinger_mid\": \"002OfR3n1vx75j\",\n            \"Fsinger_name\": \"葛林\",\n            \"Fsinger_tag\": \"\",\n            \"Fsort\": \"58\",\n            \"Ftrend\": \"-1\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"0\",\n            \"Fattribute_3\": \"1\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"M\",\n            \"Fother_name\": \"Karen Mok\",\n            \"Fsinger_id\": \"54\",\n            \"Fsinger_mid\": \"000cISVf2QqLc6\",\n            \"Fsinger_name\": \"莫文蔚\",\n            \"Fsinger_tag\": \"555\",\n            \"Fsort\": \"59\",\n            \"Ftrend\": \"-1\",\n            \"Ftype\": \"1\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"1\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"Z\",\n            \"Fother_name\": \"\",\n            \"Fsinger_id\": \"1012038\",\n            \"Fsinger_mid\": \"004eaDNU1nfRO0\",\n            \"Fsinger_name\": \"张磊\",\n            \"Fsinger_tag\": \"\",\n            \"Fsort\": \"60\",\n            \"Ftrend\": \"1\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"J\",\n            \"Fother_name\": \"\",\n            \"Fsinger_id\": \"1041231\",\n            \"Fsinger_mid\": \"0023ni2j3F9CpN\",\n            \"Fsinger_name\": \"Jam\",\n            \"Fsinger_tag\": \"\",\n            \"Fsort\": \"61\",\n            \"Ftrend\": \"1\",\n            \"Ftype\": \"1\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"N\",\n            \"Fother_name\": \"Milk Coffee\",\n            \"Fsinger_id\": \"4422\",\n            \"Fsinger_mid\": \"0012bj8d36Xkw1\",\n            \"Fsinger_name\": \"牛奶咖啡\",\n            \"Fsinger_tag\": \"552,555\",\n            \"Fsort\": \"62\",\n            \"Ftrend\": \"1\",\n            \"Ftype\": \"2\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"W\",\n            \"Fother_name\": \"\",\n            \"Fsinger_id\": \"4604\",\n            \"Fsinger_mid\": \"001adLDR1SS40P\",\n            \"Fsinger_name\": \"汪峰\",\n            \"Fsinger_tag\": \"541,555,569\",\n            \"Fsort\": \"63\",\n            \"Ftrend\": \"-1\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"3\",\n            \"Fattribute_3\": \"6\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"C\",\n            \"Fother_name\": \"查理·普斯\",\n            \"Fsinger_id\": \"39000\",\n            \"Fsinger_mid\": \"000jnR7q3pCzYG\",\n            \"Fsinger_name\": \"Charlie Puth (查理·普斯)\",\n            \"Fsinger_tag\": \"644\",\n            \"Fsort\": \"64\",\n            \"Ftrend\": \"0\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"B\",\n            \"Fother_name\": \"\",\n            \"Fsinger_id\": \"4545\",\n            \"Fsinger_mid\": \"003LaMHm42u7qS\",\n            \"Fsinger_name\": \"本兮\",\n            \"Fsinger_tag\": \"\",\n            \"Fsort\": \"65\",\n            \"Ftrend\": \"-1\",\n            \"Ftype\": \"1\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"H\",\n            \"Fother_name\": \"\",\n            \"Fsinger_id\": \"24833\",\n            \"Fsinger_mid\": \"002mze3U0NYXOM\",\n            \"Fsinger_name\": \"胡夏\",\n            \"Fsinger_tag\": \"555\",\n            \"Fsort\": \"66\",\n            \"Ftrend\": \"1\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"1\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"M\",\n            \"Fother_name\": \"MXD\",\n            \"Fsinger_id\": \"28227\",\n            \"Fsinger_mid\": \"003wWQBU0fHBcj\",\n            \"Fsinger_name\": \"马旭东\",\n            \"Fsinger_tag\": \"555\",\n            \"Fsort\": \"67\",\n            \"Ftrend\": \"1\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"1\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"W\",\n            \"Fother_name\": \"Vai\",\n            \"Fsinger_id\": \"38625\",\n            \"Fsinger_mid\": \"001WcO2V0TLCv3\",\n            \"Fsinger_name\": \"威仔\",\n            \"Fsinger_tag\": \"\",\n            \"Fsort\": \"68\",\n            \"Ftrend\": \"-1\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"L\",\n            \"Fother_name\": \"\",\n            \"Fsinger_id\": \"11707\",\n            \"Fsinger_mid\": \"002xpOdd4Dh6pu\",\n            \"Fsinger_name\": \"李易峰\",\n            \"Fsinger_tag\": \"555\",\n            \"Fsort\": \"70\",\n            \"Ftrend\": \"1\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"Y\",\n            \"Fother_name\": \"\",\n            \"Fsinger_id\": \"7485\",\n            \"Fsinger_mid\": \"004FtTNW2b0tJi\",\n            \"Fsinger_name\": \"雨宗林\",\n            \"Fsinger_tag\": \"555\",\n            \"Fsort\": \"71\",\n            \"Ftrend\": \"-1\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"0\",\n            \"Fattribute_3\": \"2\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"G\",\n            \"Fother_name\": \"Claire Guo\",\n            \"Fsinger_id\": \"11626\",\n            \"Fsinger_mid\": \"0043Zxw10txf5O\",\n            \"Fsinger_name\": \"郭静\",\n            \"Fsinger_tag\": \"555\",\n            \"Fsort\": \"72\",\n            \"Ftrend\": \"-1\",\n            \"Ftype\": \"1\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"L\",\n            \"Fother_name\": \"Chris Lee\",\n            \"Fsinger_id\": \"4615\",\n            \"Fsinger_mid\": \"002ZOuVm3Qn20Y\",\n            \"Fsinger_name\": \"李宇春\",\n            \"Fsinger_tag\": \"555\",\n            \"Fsort\": \"73\",\n            \"Ftrend\": \"1\",\n            \"Ftype\": \"1\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"0\",\n            \"Fattribute_3\": \"2\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"Z\",\n            \"Fother_name\": \"Angela Zhang\",\n            \"Fsinger_id\": \"224\",\n            \"Fsinger_mid\": \"002raUWw3PXdkT\",\n            \"Fsinger_name\": \"张韶涵\",\n            \"Fsinger_tag\": \"555\",\n            \"Fsort\": \"74\",\n            \"Ftrend\": \"-1\",\n            \"Ftype\": \"1\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"M\",\n            \"Fother_name\": \"MMD\",\n            \"Fsinger_id\": \"943468\",\n            \"Fsinger_mid\": \"003rJfMG3PPqWd\",\n            \"Fsinger_name\": \"萌萌哒天团\",\n            \"Fsinger_tag\": \"\",\n            \"Fsort\": \"75\",\n            \"Ftrend\": \"1\",\n            \"Ftype\": \"2\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"3\",\n            \"Fattribute_3\": \"6\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"F\",\n            \"Fother_name\": \"打倒男孩\",\n            \"Fsinger_id\": \"4868\",\n            \"Fsinger_mid\": \"003CKb192ggBqi\",\n            \"Fsinger_name\": \"Fall Out Boy (打倒男孩)\",\n            \"Fsinger_tag\": \"645\",\n            \"Fsort\": \"76\",\n            \"Ftrend\": \"1\",\n            \"Ftype\": \"2\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"3\",\n            \"Fattribute_3\": \"6\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"R\",\n            \"Fother_name\": \"蕾哈娜\",\n            \"Fsinger_id\": \"6966\",\n            \"Fsinger_mid\": \"002MiBdR19HQWx\",\n            \"Fsinger_name\": \"Rihanna (蕾哈娜)\",\n            \"Fsinger_tag\": \"710\",\n            \"Fsort\": \"77\",\n            \"Ftrend\": \"-1\",\n            \"Ftype\": \"1\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"3\",\n            \"Fattribute_3\": \"6\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"T\",\n            \"Fother_name\": \"烟民二人组\",\n            \"Fsinger_id\": \"156095\",\n            \"Fsinger_mid\": \"004ABIFV1EZUAj\",\n            \"Fsinger_name\": \"The Chainsmokers (烟民二人组)\",\n            \"Fsinger_tag\": \"\",\n            \"Fsort\": \"78\",\n            \"Ftrend\": \"-1\",\n            \"Ftype\": \"2\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"X\",\n            \"Fother_name\": \"Ann\",\n            \"Fsinger_id\": \"23800\",\n            \"Fsinger_mid\": \"001oNMzI3WznzG\",\n            \"Fsinger_name\": \"夏婉安\",\n            \"Fsinger_tag\": \"\",\n            \"Fsort\": \"79\",\n            \"Ftrend\": \"-1\",\n            \"Ftype\": \"1\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"Z\",\n            \"Fother_name\": \"\",\n            \"Fsinger_id\": \"968571\",\n            \"Fsinger_mid\": \"0042kZuh1dgLre\",\n            \"Fsinger_name\": \"周二珂\",\n            \"Fsinger_tag\": \"\",\n            \"Fsort\": \"80\",\n            \"Ftrend\": \"-1\",\n            \"Ftype\": \"1\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"3\",\n            \"Fattribute_3\": \"8\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"T\",\n            \"Fother_name\": \"\",\n            \"Fsinger_id\": \"947788\",\n            \"Fsinger_mid\": \"000ndQx82fsq8Z\",\n            \"Fsinger_name\": \"Tez Cadey\",\n            \"Fsinger_tag\": \"\",\n            \"Fsort\": \"81\",\n            \"Ftrend\": \"0\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"3\",\n            \"Fattribute_3\": \"6\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"E\",\n            \"Fother_name\": \"艾米纳姆\",\n            \"Fsinger_id\": \"4880\",\n            \"Fsinger_mid\": \"000yDAjj2TE9j8\",\n            \"Fsinger_name\": \"Eminem (艾米纳姆)\",\n            \"Fsinger_tag\": \"645,647\",\n            \"Fsort\": \"82\",\n            \"Ftrend\": \"-1\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"0\",\n            \"Fattribute_3\": \"1\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"Z\",\n            \"Fother_name\": \"Hins Cheung\",\n            \"Fsinger_id\": \"219\",\n            \"Fsinger_mid\": \"003AfDK34H82GU\",\n            \"Fsinger_name\": \"张敬轩\",\n            \"Fsinger_tag\": \"541,555\",\n            \"Fsort\": \"83\",\n            \"Ftrend\": \"-1\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"1\",\n            \"Fgenre\": \"17\",\n            \"Findex\": \"Q\",\n            \"Fother_name\": \"\",\n            \"Fsinger_id\": \"1042260\",\n            \"Fsinger_mid\": \"0020IaUo4Vgsjk\",\n            \"Fsinger_name\": \"齐一\",\n            \"Fsinger_tag\": \"\",\n            \"Fsort\": \"84\",\n            \"Ftrend\": \"1\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"H\",\n            \"Fother_name\": \"\",\n            \"Fsinger_id\": \"1043567\",\n            \"Fsinger_mid\": \"004QoDUs3jfOC6\",\n            \"Fsinger_name\": \"韩安旭\",\n            \"Fsinger_tag\": \"\",\n            \"Fsort\": \"85\",\n            \"Ftrend\": \"-1\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"0\",\n            \"Fattribute_3\": \"2\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"L\",\n            \"Fother_name\": \"Sam Lee\",\n            \"Fsinger_id\": \"38\",\n            \"Fsinger_mid\": \"002seUhN1Akj7J\",\n            \"Fsinger_name\": \"李圣杰\",\n            \"Fsinger_tag\": \"555,562\",\n            \"Fsort\": \"86\",\n            \"Ftrend\": \"-1\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"Z\",\n            \"Fother_name\": \"\",\n            \"Fsinger_id\": \"63938\",\n            \"Fsinger_mid\": \"000SJp6n49rDgl\",\n            \"Fsinger_name\": \"张赫宣\",\n            \"Fsinger_tag\": \"\",\n            \"Fsort\": \"87\",\n            \"Ftrend\": \"-1\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"2\",\n            \"Fattribute_3\": \"5\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"9\",\n            \"Fother_name\": \"防弹少年团\",\n            \"Fsinger_id\": \"162691\",\n            \"Fsinger_mid\": \"001TpDgn4SxyJn\",\n            \"Fsinger_name\": \"방탄소년단 (防弹少年团)\",\n            \"Fsinger_tag\": \"536,678,663,676\",\n            \"Fsort\": \"88\",\n            \"Ftrend\": \"1\",\n            \"Ftype\": \"2\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"L\",\n            \"Fother_name\": \"Richael Liu\",\n            \"Fsinger_id\": \"161444\",\n            \"Fsinger_mid\": \"003bQEFA3KrvLI\",\n            \"Fsinger_name\": \"刘瑞琦\",\n            \"Fsinger_tag\": \"555\",\n            \"Fsort\": \"89\",\n            \"Ftrend\": \"-1\",\n            \"Ftype\": \"1\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"3\",\n            \"Fattribute_3\": \"7\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"A\",\n            \"Fother_name\": \"阿黛尔\",\n            \"Fsinger_id\": \"12578\",\n            \"Fsinger_mid\": \"003CoxJh1zFPpx\",\n            \"Fsinger_name\": \"Adele (阿黛尔)\",\n            \"Fsinger_tag\": \"644\",\n            \"Fsort\": \"90\",\n            \"Ftrend\": \"1\",\n            \"Ftype\": \"1\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"1\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"S\",\n            \"Fother_name\": \"\",\n            \"Fsinger_id\": \"1011983\",\n            \"Fsinger_mid\": \"001t94rh4OpQn0\",\n            \"Fsinger_name\": \"双笙\",\n            \"Fsinger_tag\": \"\",\n            \"Fsort\": \"91\",\n            \"Ftrend\": \"1\",\n            \"Ftype\": \"1\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"T\",\n            \"Fother_name\": \"Escape Plan\",\n            \"Fsinger_id\": \"15514\",\n            \"Fsinger_mid\": \"001Yxpxc0OaUUX\",\n            \"Fsinger_name\": \"逃跑计划\",\n            \"Fsinger_tag\": \"544,569\",\n            \"Fsort\": \"92\",\n            \"Ftrend\": \"1\",\n            \"Ftype\": \"2\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"2\",\n            \"Fattribute_3\": \"5\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"B\",\n            \"Fother_name\": \"\",\n            \"Fsinger_id\": \"1190986\",\n            \"Fsinger_mid\": \"003DBAjk2MMfhR\",\n            \"Fsinger_name\": \"BLACKPINK\",\n            \"Fsinger_tag\": \"\",\n            \"Fsort\": \"93\",\n            \"Ftrend\": \"0\",\n            \"Ftype\": \"2\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"Y\",\n            \"Fother_name\": \"Jackson\",\n            \"Fsinger_id\": \"198135\",\n            \"Fsinger_mid\": \"001IoTZp19YMDG\",\n            \"Fsinger_name\": \"易烊千玺\",\n            \"Fsinger_tag\": \"\",\n            \"Fsort\": \"94\",\n            \"Ftrend\": \"1\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"3\",\n            \"Fattribute_3\": \"6\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"O\",\n            \"Fother_name\": \"猫头鹰之城\",\n            \"Fsinger_id\": \"12926\",\n            \"Fsinger_mid\": \"002a1DuK4evNsR\",\n            \"Fsinger_name\": \"Owl City (猫头鹰之城)\",\n            \"Fsinger_tag\": \"644\",\n            \"Fsort\": \"95\",\n            \"Ftrend\": \"1\",\n            \"Ftype\": \"2\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"T\",\n            \"Fother_name\": \"\",\n            \"Fsinger_id\": \"6370\",\n            \"Fsinger_mid\": \"000QG95i2rHlOf\",\n            \"Fsinger_name\": \"谭晶\",\n            \"Fsinger_tag\": \"\",\n            \"Fsort\": \"96\",\n            \"Ftrend\": \"-1\",\n            \"Ftype\": \"1\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"C\",\n            \"Fother_name\": \"Sean Chen\",\n            \"Fsinger_id\": \"22926\",\n            \"Fsinger_mid\": \"004EyqQS2hMS6V\",\n            \"Fsinger_name\": \"陈翔\",\n            \"Fsinger_tag\": \"555\",\n            \"Fsort\": \"97\",\n            \"Ftrend\": \"1\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"0\",\n            \"Fattribute_3\": \"1\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"L\",\n            \"Fother_name\": \"Andy Lau\",\n            \"Fsinger_id\": \"163\",\n            \"Fsinger_mid\": \"003aQYLo2x8izP\",\n            \"Fsinger_name\": \"刘德华\",\n            \"Fsinger_tag\": \"555\",\n            \"Fsort\": \"98\",\n            \"Ftrend\": \"-1\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"3\",\n            \"Fattribute_3\": \"7\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"O\",\n            \"Fother_name\": \"单向组合\",\n            \"Fsinger_id\": \"24561\",\n            \"Fsinger_mid\": \"001FXn5P0kkWfV\",\n            \"Fsinger_name\": \"One Direction (单向组合)\",\n            \"Fsinger_tag\": \"645\",\n            \"Fsort\": \"99\",\n            \"Ftrend\": \"0\",\n            \"Ftype\": \"2\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"0\",\n            \"Fattribute_3\": \"2\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"C\",\n            \"Fother_name\": \"Tanya Chua\",\n            \"Fsinger_id\": \"112\",\n            \"Fsinger_mid\": \"000hNnWC3kko2c\",\n            \"Fsinger_name\": \"蔡健雅\",\n            \"Fsinger_tag\": \"541,555\",\n            \"Fsort\": \"100\",\n            \"Ftrend\": \"-1\",\n            \"Ftype\": \"1\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"0\",\n            \"Fattribute_3\": \"2\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"F\",\n            \"Fother_name\": \"Christine Fan\",\n            \"Fsinger_id\": \"4351\",\n            \"Fsinger_mid\": \"003vyG9q2klWs4\",\n            \"Fsinger_name\": \"范玮琪\",\n            \"Fsinger_tag\": \"541,555,558\",\n            \"Fsort\": \"101\",\n            \"Ftrend\": \"-1\",\n            \"Ftype\": \"1\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"0\",\n            \"Fattribute_3\": \"2\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"X\",\n            \"Fother_name\": \"LALA Xu\",\n            \"Fsinger_id\": \"16244\",\n            \"Fsinger_mid\": \"002LZVMH0zc8F4\",\n            \"Fsinger_name\": \"徐佳莹\",\n            \"Fsinger_tag\": \"541,555,569\",\n            \"Fsort\": \"102\",\n            \"Ftrend\": \"1\",\n            \"Ftype\": \"1\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"1\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"J\",\n            \"Fother_name\": \"J Sound\",\n            \"Fsinger_id\": \"44018\",\n            \"Fsinger_mid\": \"001m7JoC1IVL44\",\n            \"Fsinger_name\": \"金南玲\",\n            \"Fsinger_tag\": \"\",\n            \"Fsort\": \"103\",\n            \"Ftrend\": \"-1\",\n            \"Ftype\": \"1\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"0\",\n            \"Fattribute_3\": \"1\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"L\",\n            \"Fother_name\": \"Hacken Lee\",\n            \"Fsinger_id\": \"235\",\n            \"Fsinger_mid\": \"003nS2v740Lxcw\",\n            \"Fsinger_name\": \"李克勤\",\n            \"Fsinger_tag\": \"555\",\n            \"Fsort\": \"104\",\n            \"Ftrend\": \"-1\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }, {\n            \"Farea\": \"1\",\n            \"Fattribute_3\": \"3\",\n            \"Fattribute_4\": \"0\",\n            \"Fgenre\": \"0\",\n            \"Findex\": \"Q\",\n            \"Fother_name\": \"\",\n            \"Fsinger_id\": \"40798\",\n            \"Fsinger_mid\": \"000H4xDG3heHtr\",\n            \"Fsinger_name\": \"齐晨\",\n            \"Fsinger_tag\": \"555\",\n            \"Fsort\": \"105\",\n            \"Ftrend\": \"1\",\n            \"Ftype\": \"0\",\n            \"voc\": \"0\"\n          }],\n          \"per_page\": 100,\n          \"total\": 552503,\n          \"total_page\": 5526\n        },\n        \"message\": \"succ\",\n        \"subcode\": 0\n      },\n      code = data.code,\n      data = data.data,\n      list = data.list;\n    if (code == 0) {\n      that.setData({\n        logs: that.normalizeSinger(list)\n      })\n      that._calculateHeight();\n      wx.hideLoading();\n    }\n    //   },\n    //   fail: req => {\n    //     wx.showToast({\n    //       icon:'none',\n    //       title: '哎呀！数据出错了，别急，程序猿正在加急修改中',\n    //     })\n    //   }\n    // })\n  },\n  normalizeSinger(list) {\n    //歌手列表渲染\n    let map = {\n      hot: {\n        title: this.data.HOT_NAME,\n        items: []\n      }\n    }\n    list.forEach((item, index) => {\n      if (index < this.data.HOT_SINGER_LEN) {\n        map.hot.items.push({\n          name: item.Fsinger_name,\n          avatar: this.constructor(item.Fsinger_mid),\n          mid: item.Fsinger_mid\n        })\n      }\n      const key = item.Findex\n      if (!map[key]) {\n        map[key] = {\n          title: key,\n          items: []\n        }\n      }\n      map[key].items.push({\n        name: item.Fsinger_name,\n        avatar: this.constructor(item.Fsinger_mid),\n        mid: item.Fsinger_mid\n      })\n    })\n    // 为了得到有序列表，我们需要处理 map\n    let ret = []\n    let hot = []\n    for (let key in map) {\n      let val = map[key]\n      if (val.title.match(/[a-zA-Z]/)) {\n        ret.push(val)\n      } else if (val.title === this.data.HOT_NAME) {\n        hot.push(val)\n      }\n    }\n    ret.sort((a, b) => {\n      return a.title.charCodeAt(0) - b.title.charCodeAt(0)\n    })\n    return hot.concat(ret)\n  },\n  scroll: function(e) {\n    var newY = e.detail.scrollTop;\n    this.scrollY(newY);\n  },\n  scrollY(newY) {\n    const listHeight = this.data.listHeight\n    // 当滚动到顶部，newY>0\n    if (newY == 0 || newY < 0) {\n      this.setData({\n        currentIndex: 0,\n        fixedTitle: ''\n      })\n      return\n    }\n    // 在中间部分滚动\n    for (let i = 0; i < listHeight.length - 1; i++) {\n      let height1 = listHeight[i]\n      let height2 = listHeight[i + 1]\n      if (newY >= height1 && newY < height2) {\n        this.setData({\n          currentIndex: i,\n          fixedTitle: this.data.logs[i].title\n        })\n        this.fixedTt(height2 - newY);\n        return\n      }\n    }\n    // 当滚动到底部，且-newY大于最后一个元素的上限\n    this.setData({\n      currentIndex: listHeight.length - 2,\n      fixedTitle: this.data.logs[listHeight.length - 2].title\n    })\n  },\n  fixedTt(newVal) {\n    let fixedTop = (newVal > 0 && newVal < TITLE_HEIGHT) ? newVal - TITLE_HEIGHT : 0\n    if (this.data.fixedTop === fixedTop) {\n      return\n    }\n    this.setData({\n      fixedTop: fixedTop\n    })\n  },\n  _calculateHeight() {\n    var lHeight = [],\n      that = this;\n    let height = 0;\n    lHeight.push(height);\n    var query = wx.createSelectorQuery();\n    query.selectAll('.list-group').boundingClientRect(function(rects) {\n      var rect = rects,\n        len = rect.length;\n      for (let i = 0; i < len; i++) {\n        height += rect[i].height;\n        lHeight.push(height)\n      }\n\n    }).exec();\n    var calHeight = setInterval(function() {\n      if (lHeight != [0]) {\n        that.setData({\n          listHeight: lHeight\n        });\n        clearInterval(calHeight);\n      }\n    }, 1000)\n  },\n  constructor: function(id) {\n    this.id = id\n    this.avatar = `https://y.gtimg.cn/music/photo_new/T001R300x300M000${id}.jpg?max_age=2592000`\n    return this.avatar;\n  },\n  scrollToview(e) {\n    var id = e.target.dataset.id\n    if (id == '热') {\n      this.setData({\n        scrollTop: 0\n      })\n    } else {\n      this.setData({\n        toSingerNum: id\n      })\n    }\n\n  },\n  toSinger(e) {\n    var id = e.currentTarget.id;\n    wx.navigateTo({\n      url: '../singer/singer?disstid=' + id,\n    })\n  }\n})"
  },
  {
    "path": "pages/logs/logs.json",
    "content": "{\n  \"navigationBarTitleText\": \"HMusic\"\n}"
  },
  {
    "path": "pages/logs/logs.wxml",
    "content": "<!--logs.wxml-->\n<view class=\"container log-list\">\n<scroll-view scroll-y style=\"height:100%;white-space:nowrap;\" scroll-into-view=\"{{toSingerNum}}\" enable-back-to-top bindscroll=\"scroll\" scroll-with-animation scroll-top=\"{{scrollTop}}\">\n  <view class=\"list-group\" wx:for=\"{{logs}}\" wx:for-item=\"group\" wx:key=\"{{group}}\">\n    <view class=\"title\" id=\"{{group.title}}\">{{group.title}}</view>\n    <block wx:for=\"{{group.items}}\" wx:for-item=\"user\" wx:key=\"{{user}}\">\n      <view id=\"{{user.mid}}\" class=\"list-group-item\" bindtap='toSinger'>\n        <image class=\"icon\" src=\"{{user.avatar}}\" lazy-load=\"true\"></image>\n        <text class=\"log-item\">{{user.name}}</text>\n      </view>\n    </block>\n  </view>\n</scroll-view>\n  <!-- 侧边字母导航 -->\n  <view class=\"list-shortcut\">\n    <block wx:for=\"{{logs}}\" wx:key=\"{{logs}}\">\n      <text class=\"{{currentIndex===index?'current':''}}\" data-id=\"{{item.title}}\" bindtap='scrollToview'>{{item.title}}</text>\n    </block>\n  </view>\n  <!-- 固定在顶部的字母导航 -->\n  <view class=\"list-fixed {{fixedTitle=='' ? 'hide':''}}\" style=\"transform:translate3d(0,{{fixedTop}}px,0);\">\n    <view class=\"fixed-title\">\n      {{fixedTitle}}\n    </view>\n  </view>\n</view>\n"
  },
  {
    "path": "pages/logs/logs.wxss",
    "content": ".log-list {\n  display: flex;\n  flex-direction: column;\n  /* padding-bottom:60rpx; */\n}\n.log-item {\n  margin: 10rpx;\n}\n.title {\n  height: 60rpx;\n  line-height: 60rpx;\n  padding-left: 40rpx;\n  font-size: 24rpx;\n  color: rgba(255, 255, 255, 1);\n  background: #ccc;\n  margin-top:60rpx;\n}\n.title:first-child {\n  margin-top:0;\n}\n.list-group-item {\n  display: flex;\n  -webkit-box-align: center;\n  align-items: center;\n  padding: 40rpx 0 0 60rpx;\n}\n.list-group-item:last-child {\n  padding-bottom: 60rpx;\n}\n.list-group-item .icon {\n  width:100rpx;\n  height:100rpx;\n  border-radius: 50%;\n}\n::-webkit-scrollbar{\n  width: 0;\n  height: 0;\n  color: transparent;\n}\n.list-shortcut {\n  position: fixed;\n  z-index: 30;\n  right: 0;\n  top: 50%;\n  -webkit-transform: translateY(-50%);\n  transform: translateY(-50%);\n  width: 20px;\n  padding: 20px 0;\n  border-radius: 10px;\n  text-align: center;\n  background: rgba(0,0,0,.3);\n  font-family: Helvetica;\n}\n.list-shortcut text {\n  display: block;\n  padding: 3px;\n  line-height: 1;\n  color: #fff;\n  font-size: 24rpx;\n}\n.current{\n  color: #ffcd32 !important;\n}\n.list-fixed {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n}\n.fixed-title {\n  height:60rpx;\n  line-height:60rpx;\n  padding-left:40rpx;\n  font-size:24rpx;\n  color:rgba(255, 255, 255, 1);\n  background:#ccc;\n}"
  },
  {
    "path": "pages/playSong/playSong.js",
    "content": "const app = getApp();\nPage({\n  data: {},\n  onLoad: function(options) {\n    wx.hideLoading();\n    wx.showShareMenu({\n      withShareTicket: true\n    });\n    this.setData({\n      isPlay: app.globalData.isPlay\n    })\n    app.globalData.backgroundAudioManager.onPlay(() => {\n      var that = this;\n      that.updateTime(that);\n      that.setData({\n        isPlay: true,\n      });\n      app.globalData.isPlay = true;\n    });\n    app.globalData.backgroundAudioManager.onError((res) => {\n      if (res.errCode == '10001') {\n        wx.showToast({\n          icon: 'none',\n          title: '由于系统错误导致歌曲播放失败',\n        })\n      } else if (res.errCode == '10002') {\n        wx.showToast({\n          icon: 'none',\n          title: '由于网络错误导致歌曲播放失败',\n        })\n      } else if (res.errCode == '10003') {\n        wx.showToast({\n          icon: 'none',\n          title: '哎呀！播放文件错误',\n        })\n      } else if (res.errCode == '10004') {\n        wx.showToast({\n          icon: 'none',\n          title: '哎呀！播放格式错误',\n        })\n      } else if (res.errCode == '-1') {\n        wx.showToast({\n          icon: 'none',\n          title: '哎呀！数据出错了，别急，程序猿正在加急修改中',\n        })\n      }\n    });\n    app.globalData.backgroundAudioManager.onEnded(() => {\n      this.setData({\n        isPlay: false\n      });\n      app.globalData.isPlay = false;\n      var id = wx.getStorageSync('song_id'),\n        num = this.data.num;\n      num++;\n      var this_id = id[num];\n      this.setData({\n        num: num,\n        musicTime: 1,\n        toView: 'A0'\n      });\n      wx.setStorage({\n        key: 'num',\n        data: num,\n      })\n      wx.setStorage({\n        key: 'current',\n        data: {\n          musicTime: 1,\n          toView: 'A0'\n        },\n      })\n      if (num > 0 && num < 19) {\n        this.setData({\n          haveNext: true,\n          havePop: true\n        })\n      } else {\n        this.setData({\n          haveNext: false,\n          havePop: true\n        })\n      }\n      this.music_fcg(this_id);\n    });\n    app.globalData.backgroundAudioManager.onPause(() => {\n      this.setData({\n        isPlay: false\n      });\n      app.globalData.isPlay = false;\n    });\n    app.globalData.backgroundAudioManager.onStop(() => {\n      app.globalData.shouldPlay = true;\n      // app.globalData.unload = true;\n      app.globalData.startTime = 0;\n      wx.setStorage({\n        key: 'current',\n        data: {\n          toView: 'A0',\n          musicTime: 1\n        },\n      });\n      this.setData({\n        isPlay: false\n      })\n      app.globalData.isPlay = false;\n    });\n    app.globalData.backgroundAudioManager.onNext(() => {\n      this.nextAudio();\n    });\n    app.globalData.backgroundAudioManager.onPrev(() => {\n      this.popAudio();\n    });\n  },\n  onShow() {\n    var startTime = app.globalData.startTime;\n    // console.log(startTime, app.globalData.shouldPlay, this.data.time,app.globalData.unload,app.globalData.musicMsg);\n    if (wx.getStorageSync('song_id').length == 0) {\n      wx.showModal({\n        title: '提示',\n        content: '您还未选择播放的歌曲，请移步推荐页哟',\n        showCancel: false,\n        success: function(res) {\n          if (res.confirm) {\n            wx.switchTab({\n              url: '../index/index',\n            })\n          }\n        }\n      });\n      this.setData({\n        haveMusicStorage: false\n      });\n    } else {\n      var id = app.globalData.labelid,\n        rid = app.globalData.radioId,\n        radioid = wx.getStorageSync('labelid'),\n        shouldPlay = app.globalData.shouldPlay,\n        index = wx.getStorageSync('num');\n      if (shouldPlay) {\n        var song_id = wx.getStorageSync('song_id'),\n          this_id = song_id[index],\n          unload = app.globalData.unload;\n          wx.showLoading({\n            title: '加载中',\n          })\n        if (!unload) {\n          this.setData({\n            num: index,\n            time: 0,\n            toView:'A0',\n            musicTime:1\n          });\n          this.music_fcg(this_id);\n        } else {\n          var current = wx.getStorageSync('current'),\n              msg = app.globalData.musicMsg;\n          if (current.toView) {\n            this.setData({\n              toView: current.toView,\n              musicTime: current.musicTime\n            });\n          }\n          if (msg.audioSrc) {\n            this.setData({\n              audioSrc:msg.audioSrc\n            })\n          }\n          if (msg.haveCommentlist) {\n            this.setData({\n              commentlist: msg.commentlist,\n              haveCommentlist: true\n            });\n          } else {\n            this.setData({\n              haveCommentlist: false,\n              commentlist: msg.commentlist,\n            });\n          }\n          this.setData({\n            num: index,\n            time: startTime,\n            track_info: msg.track_info,\n            gedan: msg.gedan,\n            simsongs: msg.simsongs,\n            singer: msg.singer,\n            songmid: msg.songmid,\n            video: msg.video,\n            lyrics: app.globalData.lyrics,\n          });\n          app.globalData.unload = false;\n          this.updateTime(this);\n          wx.hideLoading();\n        }\n        app.globalData.labelid = radioid;\n        app.globalData.shouldPlay = false;\n        // wx.setStorage({\n        //   key: 'share_id',\n        //   data: [],\n        // });\n        // wx.setStorage({\n        //   key: 'share_name',\n        //   data: [],\n        // });\n      } else {\n        var share_id = wx.getStorageSync('share_id');\n        if (share_id.length != 0) {\n          var background = wx.getStorageSync('backgrond'),\n            current = wx.getStorageSync('current'),\n            index = wx.getStorageSync('num'),\n            song_id = wx.getStorageSync('song_id'),\n            msg = app.globalData.musicMsg,\n            this_id = song_id[index];\n          if (current.toView) {\n            this.setData({\n              toView: current.toView,\n              musicTime: current.musicTime\n            });\n          }\n          if (msg.audioSrc) {\n            this.setData({\n              audioSrc: msg.audioSrc\n            })\n          }\n          if (msg.haveCommentlist) {\n            this.setData({\n              commentlist: msg.commentlist,\n              haveCommentlist: true\n            });\n          } else {\n            this.setData({\n              haveCommentlist: false,\n              commentlist: msg.commentlist,\n            });\n          }\n          this.setData({\n            lyrics: app.globalData.lyrics,\n            haveMusicStorage: true,\n            audioSrc: background.src,\n            time: startTime,\n            num: index,\n            track_info: msg.track_info,\n            gedan: msg.gedan,\n            simsongs: msg.simsongs,\n            singer: msg.singer,\n            songmid: msg.songmid,\n            video: msg.video,\n          });\n          var that = this;\n          that.updateTime(that);\n          // that.music_fcg(this_id);\n        } else if (rid.indexOf(radioid) == -1) {\n          if (radioid != id) {\n            var song_id = wx.getStorageSync('song_id'),\n              this_id = song_id[0];\n            this.setData({\n              num: 0,\n              time: 0,\n              toView:'A0',\n              musicTime:1\n            });\n            wx.showLoading({\n              title: '加载中',\n            })\n            this.music_fcg(this_id);\n            app.globalData.labelid = radioid;\n          }\n        }\n      }\n      var music_name = wx.getStorageSync('music_name');\n      this.setData({\n        song_id: id,\n        haveMusicStorage: true,\n        MusicName: music_name\n      });\n    }\n    \n  },\n  onShareAppMessage: function(options) {\n    var that = this,\n      song_id = wx.getStorageSync('song_id'),\n      music_name = wx.getStorageSync('music_name'),\n      num = wx.getStorageSync('num'),\n      path = '/pages/share/share?songid=' + song_id[num] + '&name=' + music_name[num];\n    // path = '/pages/playSong/playSong';\n    app.globalData.clickShare = true;\n    return {\n      title: '@我，诚意推荐《' + music_name[num] + '》这首歌',\n      path: path,\n      imageUrl: 'https://y.gtimg.cn/music/photo_new/T002R300x300M000' + that.data.track_info.album.mid + '.jpg?max_age=2592000',\n    }\n  },\n  onUnload() {\n    // wx.setStorage({\n    //   key: 'share_id',\n    //   data: [],\n    // });\n    // app.globalData.shareMusic = true;\n    app.globalData.shouldPlay = true;\n    app.globalData.unload = true;\n    // console.log('页面卸载');\n  },\n  onHide() {\n    // console.log('页面隐藏');\n  },\n  music_fcg: function(this_id) {\n    var musicu = this.data.musicu;\n    musicu.detail.param.song_id = this_id;\n    musicu.simsongs.param.songid = this_id;\n    musicu.gedan.param.song_id = this_id;\n    typeof this_id == 'string' ? musicu.video.param.songid = this_id.toString() : musicu.video.param.songid = this_id;\n\n    //歌曲相关信息\n    wx.request({\n      url: '歌曲信息API',\n      method: 'POST',\n      data: JSON.stringify(musicu),\n      success: res => {\n        var detail = res.data.detail,\n          gedan = res.data.gedan,\n          simsongs = res.data.simsongs,\n          songmid = detail.data.track_info.mid,\n          info = detail.data.info,\n          video = res.data.video.data.list,\n          vids = [],\n          lyric,\n          mediaArray = [],\n          haveLyric = false;\n        //将歌词字符串转为数组，并去掉前五组数据\n        for (var i = 0; i < info.length; i++) {\n          if (info[i].title == '歌词') {\n            lyric = info[i].content[0].value.split('\\n').slice(5);\n            haveLyric = true;\n          }\n        }\n        for (var i = 0; i < video.length; i++) {\n          vids.push(video[i].vid);\n        }\n        if (vids.length > 0) {\n          this.getVideoSrc(vids);\n        }\n        //将时间跟歌词分开\n        if (haveLyric) {\n          for (var j = 0; j < lyric.length; j++) {\n            var t = lyric[j].substring(lyric[j].indexOf('[') + 1, lyric[j].indexOf(']')),\n              c = lyric[j].substring(lyric[j].indexOf(\"]\") + 1, lyric[j].length);\n            if (c != '') {\n              mediaArray.push({\n                t: (parseInt(t.split(\":\")[0] * 60) + parseFloat(t.split(\":\")[1])).toFixed(1),\n                c: c,\n                id: 'A' + j\n              })\n            }\n          }\n        }\n\n        this.setData({\n          track_info: detail.data.track_info,\n          gedan: gedan.data.vec_gedan,\n          simsongs: simsongs.data.songInfoList,\n          singer: detail.data.track_info.singer,\n          songmid: songmid,\n          lyrics: mediaArray,\n          video: video\n        });\n        app.globalData.lyrics = mediaArray;\n        app.globalData.musicMsg = {\n          track_info: detail.data.track_info,\n          gedan: gedan.data.vec_gedan,\n          simsongs: simsongs.data.songInfoList,\n          singer: detail.data.track_info.singer,\n          songmid: songmid,\n          video: video\n        }\n        var songUrl = this.data.pUrl,\n          mid = songmid;\n        songUrl.req_0.param.songmid.splice(0, 1, mid);\n        //获取歌曲链接\n        wx.request({\n          url: '歌曲播放API',\n          method: 'post',\n          data: JSON.stringify(songUrl),\n          success: res => {\n            wx.hideLoading();\n            var pUrl = res.data.req_0.data.midurlinfo[0].purl;\n            if (pUrl == '') {\n              app.globalData.backgroundAudioManager.pause();\n              var that = this;\n              that.setData({\n                audioSrc: ''\n              });\n              wx.showModal({\n                title: '提示',\n                content: '很抱歉，该歌曲暂不支持播放哦，咱们听下一首歌吧',\n                success: function(res) {\n                  if (res.confirm) {\n                    that.nextAudio();\n                  }\n                }\n              })\n            } else if (this.data.time == 0) {\n              wx.setStorage({\n                key: 'backgrond',\n                data: {\n                  title: detail.data.track_info.name,\n                  singer: detail.data.track_info.singer[0].name,\n                  src: pUrl,\n                  coverImgUrl: 'https://y.gtimg.cn/music/photo_new/T002R300x300M000' + detail.data.track_info.album.mid + '.jpg?max_age=2592000'\n                },\n              });\n              app.globalData.backgroundAudioManager.title = detail.data.track_info.name;\n              app.globalData.backgroundAudioManager.singer = detail.data.track_info.singer[0].name;\n              app.globalData.backgroundAudioManager.src = pUrl;\n              app.globalData.backgroundAudioManager.coverImgUrl = 'https://y.gtimg.cn/music/photo_new/T002R300x300M000' + detail.data.track_info.album.mid + '.jpg?max_age=2592000'\n              app.globalData.backgroundAudioManager.play();\n              this.setData({\n                audioSrc: pUrl,\n                isPlay: true\n              });\n              app.globalData.isPlay = true;\n              app.globalData.musicMsg.audioSrc = pUrl;\n              wx.setStorage({\n                key: 'share_id',\n                data: [],\n              });\n            }\n          },\n          error: req => {\n            wx.showToast({\n              icon: 'none',\n              title: '哎呀！数据出错了，别急，程序猿正在加急修改中',\n            })\n          }\n        });\n      },\n      error: req => {\n        wx.showToast({\n          icon: 'none',\n          title: '哎呀！数据出错了，别急，程序猿正在加急修改中',\n        })\n      }\n    });\n    //精彩评论\n    wx.request({\n      url: '评论API',\n      data: {},\n      success: res => {\n        var commentlist = res.data.hot_comment.commentlist,\n          list = [];\n        if (commentlist) {\n          if (commentlist.length > 4) {\n            list.push(commentlist[1]);\n            list.push(commentlist[2]);\n            list.push(commentlist[3]);\n          } else {\n            for (var i = 0; i < commentlist.length; i++) {\n              list.push(commentlist[i]);\n            }\n          }\n          for (var i = 0; i < list.length; i++) {\n            list[i].time = app.timestampToTime(list[i].time);\n          }\n          this.setData({\n            commentlist: list,\n            haveCommentlist: true\n          });\n          app.globalData.musicMsg.commentlist = list;\n          app.globalData.musicMsg.haveCommentlist = true;\n        } else {\n          this.setData({\n            haveCommentlist: false\n          });\n          app.globalData.musicMsg.haveCommentlist = false;\n          app.globalData.musicMsg.commentlist = '';\n        }\n\n      },\n      error: req => {\n        wx.showToast({\n          icon: 'none',\n          title: '哎呀！数据出错了，别急，程序猿正在加急修改中',\n        })\n      }\n    });\n  },\n  audioPlay() {\n    //音乐播放暂停\n    var isPlay = this.data.isPlay,\n      src = this.data.audioSrc;\n    if (isPlay) {\n      app.globalData.backgroundAudioManager.pause();\n      this.setData({\n        isPlay: false\n      });\n      app.globalData.isPlay = false;\n    } else if (isPlay == false && src != '') {\n      app.globalData.backgroundAudioManager.play();\n      this.setData({\n        isPlay: true\n      });\n      app.globalData.isPlay = true;\n    } else {\n      var that = this;\n      wx.showModal({\n        title: '提示',\n        content: '很抱歉，该歌曲需要vip哦，咱们听下一首歌吧',\n        success: function(res) {\n          if (res.confirm) {\n            that.nextAudio();\n          }\n        }\n      })\n    }\n  },\n  updateTime: function(that) {\n    //播放时更新时间\n    app.globalData.backgroundAudioManager.onTimeUpdate((res) => {\n      var duration = app.globalData.backgroundAudioManager.duration,\n        currentTime = app.globalData.backgroundAudioManager.currentTime.toFixed(1),\n        time = this.data.lyrics,\n        musicTime = this.data.musicTime;\n      app.globalData.startTime = app.globalData.backgroundAudioManager.currentTime;\n      // if (parseInt(currentTime) <= parseInt(time[0].t)) {\n      //   this.setData({\n      //     toView: time[0].id\n      //   });\n      //   // console.log(this.data.toView);\n      // } else {\n      for (var i = musicTime; i < time.length; i++) {\n        if (parseInt(currentTime) > parseInt(time[i].t)) {\n          if (this.data.toView != time[i].id) {\n            this.setData({\n              toView: time[i].id,\n              musicTime: musicTime + 1\n            });\n            wx.setStorage({\n              key: 'current',\n              data: {\n                toView: time[i].id,\n                musicTime: musicTime + 1\n              },\n            })\n          }\n          // console.log(currentTime, time[i].id, time[i].t,musicTime);\n          return;\n        }\n      }\n      // }\n\n      // console.log(currentTime);\n    })\n  },\n  nextAudio(e) {\n    //下一首\n    wx.showLoading({\n      title: '加载中',\n    });\n    var id = wx.getStorageSync('song_id'),\n      num = this.data.num,\n      len = id.length;\n    console.log(num)\n    if (num == len - 1) {\n      num = 0;\n    } else {\n      num++;\n    }\n    var this_id = id[num];\n    this.setData({\n      num: num,\n      musicTime: 1,\n      toView: 'A0',\n      time: 0\n    });\n    wx.setStorage({\n      key: 'num',\n      data: num,\n    });\n    // wx.setStorage({\n    //   key: 'share_id',\n    //   data: [],\n    // });\n    if (num < (len - 1)) {\n      this.setData({\n        haveNext: true,\n        havePop: true\n      })\n    } else {\n      this.setData({\n        num: -1\n      })\n    }\n    // this.audioPlay();\n    this.music_fcg(this_id);\n  },\n  popAudio(e) {\n    //上一首\n    wx.showLoading({\n      title: '加载中',\n    })\n    var id = wx.getStorageSync('song_id'),\n      num = this.data.num;\n    if (num == 0) {\n      num = id.length - 1;\n    } else {\n      num--;\n    }\n    var this_id = id[num];\n    this.setData({\n      num: num,\n      musicTime: 1,\n      toView: 'A0',\n      time: 0\n    });\n    wx.setStorage({\n      key: 'num',\n      data: num,\n    });\n    // wx.setStorage({\n    //   key: 'share_id',\n    //   data: [],\n    // });\n    if (num != 0) {\n      this.setData({\n        havePop: true,\n        haveNext: true\n      })\n    } else {\n      this.setData({\n        num: 0\n      })\n    }\n    // this.audioPlay();\n    this.music_fcg(this_id);\n  },\n  playVideo(e) {\n    //播放视频\n    var isPlay = this.data.isPlay,\n      id = e.currentTarget.id,\n      index = e.target.dataset.index,\n      video = this.data.videoisPlay;\n    for (var i = 0; i < video.length; i++) {\n      var videoContext = wx.createVideoContext('mid' + (i - 1));\n      videoContext.pause();\n      // video[i] = false;\n    }\n    video[index] = true;\n    this.setData({\n      videoisPlay: video\n    })\n    var videoContext1 = wx.createVideoContext(id);\n    videoContext1.play();\n    if (isPlay) {\n      app.globalData.backgroundAudioManager.pause();\n      this.setData({\n        isPlay: false\n      });\n      app.globalData.isPlay = false;\n    }\n  },\n  playVideo1(e) {\n    //点击自带的播放按钮\n    var isPlay = this.data.isPlay,\n      id = e.currentTarget.id,\n      index = e.target.dataset.index,\n      video = this.data.videoisPlay;\n    for (var i = 0; i < video.length; i++) {\n      if ('mid' + (i - 1) != id) {\n        var videoContext = wx.createVideoContext('mid' + (i - 1));\n        videoContext.pause();\n      }\n    }\n    video[index] = true;\n    this.setData({\n      videoisPlay: video\n    })\n    if (isPlay) {\n      app.globalData.backgroundAudioManager.pause();\n      this.setData({\n        isPlay: false\n      });\n      app.globalData.isPlay = false;\n    }\n  },\n  pauseVideo(e) {\n    //暂停播放视频\n    var isPlay = this.data.isPlay;\n    if (isPlay) {\n      app.globalData.backgroundAudioManager.pause();\n      this.setData({\n        isPlay: false\n      });\n      app.globalData.isPlay = false;\n    }\n  },\n  getVideoSrc(vids) {\n    //获取视频链接\n    var videoData = this.data.videoSrcData;\n    videoData.getMVInfo.param.vidlist = vids;\n    videoData.getMVUrl.param.vids = vids;\n    wx.request({\n      url: 'MVAPI',\n      data: {},\n      success: res => {\n        var data = res.data.getMVUrl.data,\n          url = [],\n          isPlaying = [];\n        for (var i = 0; i < vids.length; i++) {\n          var vid = vids[i];\n          url.push(data[vid].mp4[1].freeflow_url[0]);\n          isPlaying[i] = false;\n        }\n        this.setData({\n          videoSrc: url,\n          videoisPlay: isPlaying\n        });\n      },\n      error: req => {\n        wx.showToast({\n          icon: 'none',\n          title: '哎呀！数据出错了，别急，程序猿正在加急修改中',\n        })\n      }\n    })\n  },\n  getGd(e) {\n    //跳转到歌单信息页\n    var id = e.currentTarget.dataset.id;\n    wx.navigateTo({\n      url: '../gedan/gedan?disstid=' + id,\n    })\n  },\n  goSinger(e) {\n    var id = e.currentTarget.dataset.id;\n    wx.navigateTo({\n      url: '../singer/singer?disstid=' + id,\n    })\n  },\n  addSong(e) {\n    //跳到喜欢的歌曲\n    var id = e.currentTarget.dataset.id, //获取到点击歌曲id\n      name = e.currentTarget.dataset.name,\n      num = this.data.num,\n      song_id = wx.getStorageSync('song_id'),\n      music_name = wx.getStorageSync('music_name');\n    var a = song_id.indexOf(id);\n    if (a != -1) {\n      id = song_id[a];\n      this.setData({\n        num: a,\n        time: 0\n      })\n      wx.setStorage({\n        key: 'num',\n        data: a,\n      })\n      this.audioPlay();\n      this.music_fcg(id);\n    } else {\n      num++;\n      song_id.splice(num, 0, id);\n      music_name.splice(num, 0, name);\n      wx.setStorageSync('song_id', song_id);\n      wx.setStorageSync('music_name', music_name);\n      this.setData({\n        num: num,\n        MusicName: music_name,\n        time: 0\n      })\n      wx.setStorage({\n        key: 'num',\n        data: num,\n      })\n      this.audioPlay();\n      this.music_fcg(id);\n    }\n    // wx.setStorage({\n    //   key: 'share_id',\n    //   data: [],\n    // });\n  },\n  musicChange(e) {\n    var index = parseInt(e.detail.value),\n      song_id = wx.getStorageSync('song_id'),\n      this_id = song_id[index],\n      num = wx.getStorageSync('num');\n    if (num != index) {\n      wx.showLoading({\n        title: '切换歌曲中',\n      });\n      this.setData({\n        num: index,\n        time: 0,\n        musicTime: 1,\n        toView: 'A0'\n      });\n      this.music_fcg(this_id);\n      wx.setStorage({\n        key: 'num',\n        data: index,\n      });\n      // wx.setStorage({\n      //   key: 'share_id',\n      //   data: [],\n      // });\n    }\n  },\n  musicCancel(e) {\n    console.log(e);\n  },\n  showPlayList(){\n    var pix = 750 / app.globalData.system.windowWidth,\n        height = 758 / pix;\n    const animation = wx.createAnimation({\n      durarion: 1000,\n      timingFunction: 'ease-in-out',\n    })\n    this.animation = animation;\n    animation.translateY(-height).step();\n    this.setData({\n      animationData: animation.export(),\n      showList: true\n    });\n  },\n  close(e) {\n    // this.setData({\n    //   showList:false\n    // })\n    var pix = 750 / app.globalData.system.windowWidth,\n      height = 758 / pix;\n    const animation = wx.createAnimation({\n      durarion: 1000,\n      timingFunction: 'ease-in-out',\n    })\n    this.animation = animation;\n    animation.translateY(height).step();\n    this.setData({\n      animationData: animation.export(),\n      showList: false\n    });\n    \n  },\n  del(e) {\n    var num = e.currentTarget.dataset.num,\n        songid = wx.getStorageSync('song_id'),\n        musicName = wx.getStorageSync('music_name'),\n        index = wx.getStorageSync('num');\n    songid.splice(num,1);\n    musicName.splice(num,1);\n    wx.setStorage({\n      key: 'song_id',\n      data: songid,\n    });\n    wx.setStorage({\n      key: 'music_name',\n      data: musicName,\n    });\n    wx.showToast({\n      icon:'none',\n      title: '已删除',\n    })\n    this.setData({\n      MusicName:musicName\n    });\n    if (num == index) {\n      if (index < songid.length) {\n        var id = songid[index];\n        this.setData({\n          num: index,\n          time: 0,\n          musicTime: 1,\n          toView: 'A0'\n        });\n        this.music_fcg(id);\n        wx.setStorage({\n          key: 'num',\n          data: index,\n        });\n      } else {\n        var id = songid[0];\n        this.setData({\n          num: 0,\n          time: 0,\n          musicTime: 1,\n          toView: 'A0'\n        });\n        this.music_fcg(id);\n        wx.setStorage({\n          key: 'num',\n          data: 0,\n        });\n      }\n      \n    }\n  },\n  changeMusic(e) {\n    var index = e.currentTarget.dataset.num,\n        songid = wx.getStorageSync('song_id'),\n        id = songid[index],\n        num = wx.getStorageSync('num');\n    if (num != index) {\n      wx.showLoading({\n        title: '切换歌曲中',\n      });\n      this.setData({\n        num: index,\n        time: 0,\n        musicTime: 1,\n        toView: 'A0'\n      });\n      this.music_fcg(id);\n      wx.setStorage({\n        key: 'num',\n        data: index,\n      });\n    }\n  }\n})"
  },
  {
    "path": "pages/playSong/playSong.json",
    "content": "{\n  \"navigationBarTitleText\": \"HMusic\"\n}"
  },
  {
    "path": "pages/playSong/playSong.wxml",
    "content": "<view wx:if=\"{{haveMusicStorage}}\" class=\"playSong\" style=\"height:{{showList ? '100vh':''}};overflow:hidden;\">\n  <view class=\"main\">\n    <view class=\"main_bd\">\n      <view class=\"song_info\">\n        <view class=\"song_info_hd\">\n          <view class=\"song_name\">\n            <view class=\"song_name__text\">\n              {{track_info.title}}\n            </view>\n            <!-- <picker bindchange=\"musicChange\" bindcancel=\"musicCancel\" value=\"{{num}}\" range=\"{{MusicName}}\"> -->\n              <image class=\"icon_playlist\" src=\"../../img/playlist.png\" bindtap=\"showPlayList\"></image>\n            <!-- </picker> -->\n          </view>\n\n          <view class=\"singer_name\">\n            <block wx:for=\"{{singer}}\" wx:key=\"singer\">\n              <view class=\"item_name\">{{index > 0 ? ' / ' : ''}}{{item.name}}</view>\n            </block>\n          </view>\n        </view>\n\n        <view class=\"song_info_bd\">\n          <view class=\"album_cover\">\n            <image wx:if=\"{{track_info.album.mid}}\" class=\"album_cover__img\" src=\"https://y.gtimg.cn/music/photo_new/T002R300x300M000{{track_info.album.mid}}.jpg?max_age=2592000\"></image>\n          </view>\n\n          <view class=\"lyric\">\n            <view class=\"lyric__bd\">\n              <scroll-view scroll-y style=\"height:100%;white-space:nowrap;font-size:15px;\" scroll-into-view=\"{{toView}}\" scroll-with-animation>\n                <block wx:for=\"{{lyrics}}\" wx:for-item=\"lyric\" wx:key=\"{{lyric}}\">\n                  <view style=\"color:{{toView == lyric.id ? '#31c27c':''}}\" class=\"lyric__para\" data-time=\"{{lyric.t}}\" id=\"{{lyric.id}}\">\n                    {{lyric.c}}\n                  </view>\n                </block>\n              </scroll-view>\n            </view>\n          </view>\n        </view>\n      </view>\n\n      <view class=\"opt\">\n        <view wx:if=\"{{havePop}}\" class=\"opt__item\" bindtap=\"popAudio\">\n          <image class=\"opt__icon\" src=\"../../img/pop.png\"></image>\n        </view>\n        <view class=\"opt__item\" bindtap=\"audioPlay\">\n          <image wx:if=\"{{isPlay}}\" class=\"opt__icon\" src=\"../../img/pause.png\"></image>\n          <image wx:else class=\"opt__icon\" src=\"../../img/opt_icon.png\"></image>\n        </view>\n\n        <view wx:if=\"{{haveNext}}\" class=\"opt__item\" bindtap=\"nextAudio\">\n          <image class=\"opt__icon\" src=\"../../img/next.png\"></image>\n        </view>\n\n        <view class=\"opt__item\">\n          <!-- <image class=\"opt__icon\" src=\"../../img/share.png\"></image> -->\n          <button open-type='share' style=\"border:0;\" plain>\n            <image class=\"opt__icon\" src=\"../../img/share.png\"></image>\n          </button>\n        </view>\n      </view>\n    </view>\n\n    <view class=\"bg\">\n      <image wx:if=\"{{track_info.album.mid}}\" class=\"bg_img\" src=\"https://y.gtimg.cn/music/photo_new/T002R300x300M000{{track_info.album.mid}}.jpg?max_age=2592000\"></image>\n    </view>\n  </view>\n\n  <!-- 包含这首歌的歌单 -->\n  <view wx:if=\"{{gedan.length > 0}}\" class=\"related_album\">\n    <view class=\"mod_tit\">包含这首歌的歌单</view>\n    <view class=\"qui_list\" wx:for=\"{{gedan}}\" wx:key=\"{{gedan}}\" data-id=\"{{item.tid}}\" bindtap='getGd'>\n      <view class=\"qui_list__item\">\n        <view class=\"qui_list__media\">\n          <image class=\"qui_list__img\" src=\"{{item.imgurl}}\"></image>\n        </view>\n\n        <view class=\"qui_list__bd\">\n          <view class=\"qui_list__box\">\n            <view class=\"qui_list__tit\">\n              {{item.dissname}}\n            </view>\n            <view class=\"qui_list__desc\">\n              {{item.creator}}\n            </view>\n          </view>\n\n          <view class=\"qui_list__arrow\">\n\n          </view>\n        </view>\n      </view>\n    </view>\n  </view>\n\n  <!-- 喜欢这首歌的人也听 -->\n  <view wx:if=\"{{simsongs.length > 0}}\" class=\"similar_song\">\n    <view class=\"mod_tit\">\n      喜欢这首歌的人也听\n    </view>\n    <view class=\"qui_list\" wx:for=\"{{simsongs}}\" wx:key=\"{{simsongs}}\" data-name=\"{{item.name}}\" data-id=\"{{item.id}}\" bindtap='addSong'>\n      <view class=\"qui_list__item\">\n        <view class=\"qui_list__media\">\n          <image wx:if=\"{{item.album.mid}}\" class=\"qui_list__img\" src=\"https://y.gtimg.cn/music/photo_new/T002R150x150M000{{item.album.mid}}.jpg?max_age=2592000\"></image>\n        </view>\n\n        <view class=\"qui_list__bd\">\n          <view class=\"qui_list__box\">\n            <view class=\"qui_list__tit\">\n              {{item.name}}\n            </view>\n            <view class=\"qui_list__desc\">\n              {{item.singer[0].name}}\n            </view>\n          </view>\n\n          <view class=\"qui_list__arrow\">\n\n          </view>\n        </view>\n      </view>\n    </view>\n  </view>\n\n  <!-- 歌手 -->\n  <view wx:if=\"{{singer != []}}\" class=\"similar_song\">\n    <view class=\"mod_tit\">\n      歌手\n    </view>\n    <view class=\"qui_list\" wx:for=\"{{singer}}\" wx:key=\"{{singer}}\">\n      <view class=\"qui_list__item\" data-id=\"{{item.mid}}\" bindtap=\"goSinger\">\n        <view class=\"qui_list__media\">\n          <image wx:if=\"{{item.mid}}\" class=\"qui_list__img\" src=\"https://y.gtimg.cn/music/photo_new/T001R150x150M000{{item.mid}}.jpg?max_age=2592000\"></image>\n        </view>\n\n        <view class=\"qui_list__bd\">\n          <view class=\"qui_list__box\">\n            <view class=\"qui_list__tit\">\n              歌手 {{item.name}}\n            </view>\n          </view>\n\n          <view class=\"qui_list__arrow\">\n\n          </view>\n        </view>\n      </view>\n    </view>\n  </view>\n\n  <!-- 精彩评论 -->\n  <view wx:if=\"{{haveCommentlist}}\" class=\"comment\">\n    <view class=\"mod_tit\">\n      精彩评论\n    </view>\n    <view class=\"comment_box\">\n      <view class=\"mod_comment\">\n        <view class=\"mod_comment_list\" wx:for=\"{{commentlist}}\" wx:key=\"{{commentlist}}\">\n          <view class=\"comment_list__item\" data-commentid=\"{{item.uin}}\">\n            <view class=\"comment_list__avatar\">\n              <image class=\"comment_list__avatar_img\" src=\"{{item.avatarurl}}\"></image>\n            </view>\n            <view class=\"comment_list__body\">\n              <view class=\"comment_list__heading\">\n                <view class=\"comment_list__tit\">\n                  {{item.nick}}\n                </view>\n                <view class=\"comment_list__time\">\n                  {{item.time}}\n                </view>\n\n              </view>\n\n              <view class=\"comment_list__cont\">\n                <text decode class=\"comment_list__para\">\n                  {{item.rootcommentcontent}}\n                </text>\n              </view>\n\n              <view class=\"mod_comment_opt\">\n                <view class=\"mod_praise\">\n                  <view class=\"praise__number\">\n                    {{item.praisenum}}\n                  </view>\n                  <image class=\"praise__icon\" src=\"../../img/zan.png\"></image>\n                </view>\n              </view>\n            </view>\n          </view>\n        </view>\n      </view>\n    </view>\n  </view>\n\n  <!-- MV播放 -->\n  <view wx:if=\"{{video.length > 0}}\" class=\"js_video\">\n    <view class=\"mod_tit\">\n      推荐音乐视频\n    </view>\n    <block wx:for=\"{{video}}\" wx:key=\"{{video}}\">\n      <view class=\"mod_mv\" wx:if=\"{{videoSrc[index]}}\">\n        <view class=\"mv__media\">\n          <view wx:if=\"{{videoisPlay[index] == false}}\">\n            <image src=\"{{item.picurl}}\" class=\"mv__img\"></image>\n            <view class=\"mv__play\" bindtap=\"playVideo\" id=\"mid{{index-1}}\" data-index=\"{{index}}\">\n            </view>\n          </view>\n          <video wx:else id=\"mid{{index-1}}\" class=\"video_player__source\" data-vid=\"{{item.vid}}\" poster=\"{{item.picurl}}\" src=\"{{videoSrc[index]}}\" page-gesture direction=\"{{direction}}\" bindplay=\"playVideo1\" bindpause=\"pauseVideo\"></video>\n        </view>\n\n        <view class=\"mv__tit\">\n          {{item.title}}\n        </view>\n        <view class=\"mv__desc\">\n          <block wx:for=\"{{item.singers}}\" wx:for-item=\"ss\" wx:key=\"{{ss}}\">\n            <view style=\"display:inline-block;\">{{index > 0 ? ' / ' : ''}}{{ss.name}}</view>\n          </block>\n        </view>\n      </view>\n    </block>\n  </view>\n\n  <!-- 播放列表选择框 -->\n\n  <!-- <view class=\"playlist\">\n    <view class=\"list-wrapper\">\n      <view class=\"list-header\">\n        <view class='title'>\n          播放列表({{MusicName.length}})\n          <image src='../../img/delAll.png'></image>\n        </view>\n      </view>\n\n      <scroll-view class=\"list-content\" srcoll-y style='height:480rpx;' scroll-into-view=\"{{toMusicName}}\" scroll-with-animation>\n        <block wx:for=\"{{MusicName}}\" wx:key=\"{{MusicName}}\">\n          <view class=\"item\">\n            {{item}}\n            <image src=\"../../img/del.png\"></image>\n          </view>\n        </block>\n      </scroll-view>  \n    </view>\n  </view> -->\n  <view id=\"mask\" wx:if=\"{{showList}}\" catchtap=\"close\" animation=\"{{animationMask}}\"></view>\n  <view class=\"playlist\"  animation=\"{{animationData}}\">\n    <view class=\"title\">播放列表({{MusicName.length}})</view>\n    <scroll-view class=\"list\" scroll-y style=\"height:538rpx;\" scroll-into-view=\"S{{num}}\">\n      <block wx:for=\"{{MusicName}}\" wx:key=\"{{MusicName}}\">\n        <view bindtap=\"changeMusic\" data-num=\"{{index}}\" style=\"color:{{index == num ? '#31c27c':''}};\" id=\"S{{index}}\">{{item}}<image catchtap=\"del\" data-num=\"{{index}}\" class=\"close\" src=\"../../img/del.png\"></image></view>\n        \n      </block>\n    </scroll-view>\n    <view class=\"list_close\" bindtap='close'>关闭</view>\n  </view>\n</view>"
  },
  {
    "path": "pages/playSong/playSong.wxss",
    "content": "page {\n  background: #fff;\n}\n.main {\n  position: relative;\n  padding-bottom: 30rpx;\n  overflow: hidden;\n}\n.main_bd {\n  position: relative;\n  z-index: 4;\n}\n.song_name {\n  display: -webkit-box;\n  -webkit-box-pack: center;\n  -webkit-box-align: center;\n  margin-top: 40rpx;\n  font-size:18px;\n  font-weight: 300;\n}\n.song_name .song_name__text {\n    max-width: 222rpx;\n    overflow: hidden;\n    white-space: nowrap;\n    text-overflow: ellipsis;\n    font-size: 18px;\n    font-weight: 400;\n    color: #000;\n}\n.song_name .icon_playlist {\n    position: relative;\n    display: block;\n    width: 36rpx;\n    height: 36rpx;\n    margin: 0 -44rpx 0 8rpx;\n}\n.icon_playlist::after {\n  content: \"\";\n    position: absolute;\n    top: -100%;\n    left: -100%;\n    width: 300%;\n    height: 300%;\n}\n.singer_name {\n  margin: 0 40rpx 30rpx;\n  text-align: center;\n  overflow: hidden;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n  font-size: 14px;\n  color:grey;\n}\n.singer_name .item_name {\n  display: inline-block;\n}\n.song_info_bd {\n  position: relative;\n  height: 300rpx;\n}\n.song_info_bd .album_cover {\n  position: absolute;\n  top: 0;\n  left: 50%;\n  z-index: 2;\n  width: 468rpx;\n  height: 468rpx;\n  margin-left: -234rpx;\n  box-shadow: 0 1rpx 4px rgba(0,0,0,.2);\n  display: none;\n}\n.album_cover__img {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  object-fit: cover;\n}\n.lyric {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 1;\n  display: -webkit-box;\n  -webkit-box-orient: vertical;\n  -webkit-box-pack: center;\n  -webkit-box-align: center;\n  width: 100%;\n  height: 100%;\n}\n.lyric .lyric__bd {\n  width: 100%;\n  height: 300rpx;\n  overflow: hidden;\n  /* -webkit-mask: -webkit-linear-gradient(top,rgba(0,0,0,0),#fff 25%,#fff 75%,rgba(0,0,0,0)); */\n}\n.lyric__para {\n  line-height: 2;\n  margin: 0 40rpx;\n  text-align: center;\n  overflow: hidden;\n  white-space: normal;\n  text-overflow: ellipsis;\n  font-size: 15px;\n  /* color: #31c27c; */\n}\n/* .opt {\n  position: relative;\n  height:180rpx;\n}\n.opt__item {\n  position: absolute;\n  display: -webkit-box;\n  -webkit-box-pack: center;\n  -webkit-box-align: center;\n  width:80rpx;\n  height:80rpx;\n  margin: 0 40rpx;\n  border: solid 1px rgba(0,0,0,.2);\n  border-radius: 100%;\n  top:50%;\n  left:45%;\n  transform:translate(-50%,-50%);\n}\n.opt__icon {\n  display: block;\n  width: 44rpx;\n  height: 44rpx;\n  fill: #000;\n} */\n.opt {\n    display: -webkit-box;\n    -webkit-box-pack: center;\n    -webkit-box-align: center;\n    height: 180rpx;\n}\n.opt__item {\n    display: -webkit-box;\n    -webkit-box-pack: center;\n    -webkit-box-align: center;\n    width:76rpx;\n    height:76rpx;\n    margin: 0 40rpx;\n    /* border: solid 1px rgba(0,0,0,.2); */\n    border-radius: 100%;\n}\n.opt__icon {\n    display: block;\n    width: 64rpx;\n    height: 64rpx;\n    fill: #000;\n}\n.bg {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 1;\n  width: 100%;\n  height:750rpx;\n}\n.bg_img {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 2;\n  width: 100%;\n  height: 100%;\n  opacity: .06;\n  -webkit-transform: scale(1.2);\n}\n.mod_tit {\n  display: -webkit-box;\n  -webkit-box-pack: center;\n  -webkit-box-align: center;\n  height: 110rpx;\n  font-size: 16px;\n  font-weight: 400;\n  color: #000;\n}\n.qui_list {\n  margin-bottom: 30rpx;\n  overflow: hidden;\n}\n.qui_list__item {\n  position: relative;\n  display: -webkit-box;\n  -webkit-box-align: center;\n  margin: 0 0 4rpx 32rpx;\n}\n.qui_list__media {\n  position: relative;\n  display: block;\n  width: 130rpx;\n  height: 130rpx;\n  margin-right: 24rpx;\n  overflow: hidden;\n}\n.qui_list__img {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 1;\n  width: 100%;\n  height: 100%;\n  object-fit: cover;\n}\n.qui_list__bd {\n  position: relative;\n  -webkit-box-flex: 1;\n  display: -webkit-box;\n  -webkit-box-align: center;\n  height: 130rpx;\n  padding-right: 32rpx;\n}\n.qui_list__box {\n  -webkit-box-flex: 1;\n  display: -webkit-box;\n  -webkit-box-orient: vertical;\n}\n.qui_list__tit {\n  font-size: 13px;\n  color: #000;\n}\n.qui_list__desc {\n  font-size:12px;\n  color:grey;\n}\n.qui_list__arrow {\n  display: block;\n  width: 14rpx;\n  height: 14rpx;\n  border-style: solid;\n  border-width: 0 1px 1px 0;\n  border-color: grey;\n  -webkit-transform: rotate(-45deg);\n}\n.comment_box {\n  padding: 0 32rpx;\n  overflow: hidden;\n  font: 300 24rpx/1.5 sans-serif;\n  -webkit-tap-highlight-color: rgba(0,0,0,0);\n}\n.mod_comment_list {\n  position: relative;\n  margin: 0;\n  padding: 0;\n}\n.comment_list__item {\n  position: relative;\n  display: -webkit-box;\n  margin-bottom: 16rpx;\n  padding-top: 4rpx;\n}\n.comment_list__avatar {\n  position: relative;\n  width: 70rpx;\n  height: 70rpx;\n  margin-right: 2rpx;\n  border-radius: 100%;\n  background-color: rgba(203,203,203,.2);\n  -webkit-user-select: none;\n}\n.comment_list__avatar_img {\n  display: block;\n  width: 100%;\n  height: 100%;\n  border-radius: 100%;\n  object-fit: cover;\n  pointer-events: none;\n}\n.comment_list__body {\n  position: relative;\n  -webkit-box-flex: 1;\n  padding-bottom: 2rpx;\n}\n.comment_list__heading {\n  display: -webkit-box;\n  -webkit-box-orient: vertical;\n  -webkit-box-pack: center;\n  min-height: 70rpx;\n  margin: 0 18rpx 8rpx 0;\n}\n.comment_list__tit {\n  display: -webkit-box;\n  -webkit-box-align: center;\n  margin: -8rpx 0 -4rpx;\n  font-size: 28rpx;\n  font-weight: 300;\n  -webkit-user-select: none;\n}\n.comment_list__time {\n  color: grey;\n}\n.comment_list__cont {\n  position: relative;\n  font-size: 28rpx;\n}\n.comment_list__para {\n  margin: 0;\n  overflow: hidden;\n  word-wrap: break-word;\n  word-break: break-all;\n  text-align: justify;\n  line-height: 1.6;\n  color:#000;\n}\n.mod_comment_opt {\n  position: absolute;\n  top: 24rpx;\n  right: 0px;\n  display: -webkit-box;\n  -webkit-user-select: none;\n}\n.mod_comment_opt .mod_praise {\n  opacity: .6;\n}\n.mod_praise {\n  position: relative;\n  display: -webkit-box;\n  -webkit-box-pack: end;\n  -webkit-box-align: end;\n  -webkit-transform: translateZ(0);\n  min-width: 10rpx;\n}\n.praise__number {\n  display: block;\n  margin-right: 4rpx;\n  line-height: 1.1;\n  overflow: hidden;\n  font-size: 12px;\n}\n.praise__icon {\n  display: block;\n  width: 36rpx;\n  height: 36rpx;\n  stroke-width: 0;\n  stroke: currentColor;\n  fill: currentColor;\n}\n.mod_mv {\n  margin: 0 32rpx 40rpx;\n}\n.mv__media {\n  position: relative;\n  height: 386rpx;\n}\n.mv__img {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 1;\n  width: 100%;\n  height: 100%;\n  object-fit: cover;\n}\n.mv__play {\n  position: absolute;\n  top: 50%;\n  left: 50%;\n  z-index: 2;\n  width: 90rpx;\n  height: 90rpx;\n  margin: -44rpx 0 0 -44rpx;\n  background: url('https://y.gtimg.cn/mediastyle/mobile/project_v5/img/cover_play.png?max_age=2592000');\n  background-repeat: no-repeat;\n  background-size: 90rpx;\n}\n.mv__media::after {\n  content: \"\";\n  display: block;\n  padding-top: 56.25%;\n}\n.mv__tit {\n  margin-top: 10rpx;\n  font-size: 28rpx;\n  color: #000;\n}\n.mv__desc, .mv__tit {\n  overflow: hidden;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n}\n.mv__desc{\n  font-size: 12px;\n}\n.video_player__preview, .video_player__source, .video_player_mask {\n  position: absolute;\n  display: block;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n}\n.js_playlist_box {\n  position: absolute;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  display: -webkit-box;\n  -webkit-box-orient: vertical;\n  height: 758rpx;\n  background: #fff;\n  transform: translateY(100%);\n  transition: 250ms ease-in-out;\n}\n.js_playlist_box .actionsheet__tit {\n  position: relative;\n  display: block;\n  height: 110rpx;\n  line-height: 110rpx;\n  text-align: center;\n  font-weight: 400;\n  font-size: 32rpx;\n  color: #000;\n}\n.js_playlist_box .actionsheet__tit::before {\n  top:0;\n  content: \"\";\n  position: absolute;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  z-index: 1;\n  height: 2rpx;\n  background: rgba(0,0,0,.08);\n}\n.js_playlist_box .actionsheet__tit::after {\n  content: \"\";\n  position: absolute;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  z-index: 1;\n  height: 2rpx;\n  background: rgba(0,0,0,.08);\n}\n.js_playlist_box .actionsheet__bd {\n  -webkit-box-flex: 1;\n  overflow-y: auto;\n}\n.js_playlist_box .play_list__item {\n  position: relative;\n  display: -webkit-box;\n  -webkit-box-align: center;\n  height: 90rpx;\n  margin-left: 32rpx;\n  font-size: 30rpx;\n  color: #000;\n}\n.js_playlist_box .play_list__item::after {\n  content: \"\";\n  position: absolute;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  z-index: 1;\n  height: 2rpx;\n  background: rgba(0,0,0,.08);\n}\n.js_playlist_box .play_list__song,.play_list__singer {\n  display: block;\n  max-width: 45%;\n  overflow: hidden;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n}\n.js_playlist_box .play_list_line {\n  display: block;\n  margin: 0 10rpx;\n  font-weight: 300;\n  font-size: 24rpx;\n  color: grey;\n}\n.playlist {\n  position:fixed;\n  width:100%;\n  height:758rpx;\n  background-color:#fff;\n  left:0;\n  bottom:-758rpx;\n  /* bottom:0; */\n  z-index:999999;\n}\n.playlist .title {\n  width:100%;\n  height:110rpx;\n  line-height:110rpx;\n  text-align: center;\n  font-weight: 400;\n  font-size:32rpx;\n  color:#000;\n  border-top: 1px solid rgba(0,0,0,.08);\n  border-bottom: 1px solid rgba(0,0,0,.08);\n}\n\n/* .playlist .title::before,.title::after {\n  content: \"\";\n  position: absolute;\n  left: 0;\n  right: 0;\n  bottom: 0;\n  z-index: 1;\n  height: 2rpx;\n  background: rgba(0,0,0,.08);\n} */\n\n.playlist .list view {\n  position: relative;\n  height: 90rpx;\n  line-height: 90rpx;\n  margin-left: 32rpx;\n  font-size: 30rpx;\n  color: #000;\n  border-bottom: 1px solid rgba(0,0,0,.08);\n}\n.playlist .list .close {\n  position: absolute;\n  right:40rpx;\n  top:50%;\n  transform:translateY(-50%);\n  width:32rpx;\n  height:32rpx;\n}\n.playlist .list_close {\n  width:100%;\n  height:110rpx;\n  line-height: 110rpx;\n  text-align: center;\n  border-top:1px solid rgba(0,0,0,.08);\n}"
  },
  {
    "path": "pages/rank/rank.js",
    "content": "//rank.js\nconst app = getApp()\nconst util = require('../../utils/util.js')\n\nPage({\n  data: {\n    rank: []\n  },\n  onLoad: function() {\n    wx.showLoading({\n      title: '加载中',\n    });\n    wx.showShareMenu();\n    // wx.request({\n    //   url: '排行榜API',\n    //   data: {},\n    //   success: res => {\n    var data = {\n        \"code\": 0,\n        \"subcode\": 0,\n        \"message\": \"\",\n        \"default\": 0,\n        \"data\": {\n          \"topList\": [{\n            \"id\": 4,\n            \"listenCount\": 19800000,\n            \"picUrl\": \"http://y.gtimg.cn/music/photo_new/T003R300x300M000002UMwvi2ArZqt.jpg\",\n            \"songList\": [{\n              \"singername\": \"马良\",\n              \"songname\": \"往后余生\"\n            }, {\n              \"singername\": \"谭维维\",\n              \"songname\": \"晚婚\"\n            }, {\n              \"singername\": \"韩寒\",\n              \"songname\": \"奉献\"\n            }],\n            \"topTitle\": \"巅峰榜·流行指数\",\n            \"type\": 0\n          }, {\n            \"id\": 26,\n            \"listenCount\": 20000000,\n            \"picUrl\": \"http://y.gtimg.cn/music/photo_new/T003R300x300M000000twWI9013HkE.jpg\",\n            \"songList\": [{\n              \"singername\": \"张学友\",\n              \"songname\": \"烦恼歌\"\n            }, {\n              \"singername\": \"胡夏/郁可唯\",\n              \"songname\": \"知否知否\"\n            }, {\n              \"singername\": \"G.E.M. 邓紫棋\",\n              \"songname\": \"光年之外\"\n            }],\n            \"topTitle\": \"巅峰榜·热歌\",\n            \"type\": 0\n          }, {\n            \"id\": 27,\n            \"listenCount\": 16000000,\n            \"picUrl\": \"http://y.gtimg.cn/music/photo_new/T003R300x300M000001vuHHC1KusDA.jpg\",\n            \"songList\": [{\n              \"singername\": \"张杰\",\n              \"songname\": \"时间的远方\"\n            }, {\n              \"singername\": \"杨宗纬\",\n              \"songname\": \"星\"\n            }, {\n              \"singername\": \"韩寒\",\n              \"songname\": \"奉献\"\n            }],\n            \"topTitle\": \"巅峰榜·新歌\",\n            \"type\": 0\n          }, {\n            \"id\": 58,\n            \"listenCount\": 5639020,\n            \"picUrl\": \"http://y.gtimg.cn/music/photo_new/T003R300x300M000003V1F2d3cYvdN.jpg\",\n            \"songList\": [{\n              \"singername\": \"王嘉尔/ICE\",\n              \"songname\": \"Red\"\n            }, {\n              \"singername\": \"G.E.M. 邓紫棋/艾热\",\n              \"songname\": \"光年之外 (热爱版)\"\n            }, {\n              \"singername\": \"小青龙\",\n              \"songname\": \"潇洒每一天\"\n            }],\n            \"topTitle\": \"说唱榜\",\n            \"type\": 0\n          }, {\n            \"id\": 28,\n            \"listenCount\": 16000000,\n            \"picUrl\": \"http://y.gtimg.cn/music/photo_new/T003R300x300M000000JQoDV2XeV9P.jpg\",\n            \"songList\": [{\n              \"singername\": \"曲肖冰\",\n              \"songname\": \"天亮以前说再见\"\n            }, {\n              \"singername\": \"花姐\",\n              \"songname\": \"狂浪\"\n            }, {\n              \"singername\": \"刘珂矣\",\n              \"songname\": \"半壶纱\"\n            }],\n            \"topTitle\": \"巅峰榜·网络歌曲\",\n            \"type\": 0\n          }, {\n            \"id\": 5,\n            \"listenCount\": 3485480,\n            \"picUrl\": \"http://y.gtimg.cn/music/photo_new/T003R300x300M000001zMoTN4QBVWj.jpg\",\n            \"songList\": [{\n              \"singername\": \"胡夏/郁可唯\",\n              \"songname\": \"知否知否\"\n            }, {\n              \"singername\": \"张杰\",\n              \"songname\": \"时间的远方\"\n            }, {\n              \"singername\": \"郁可唯\",\n              \"songname\": \"知否知否 (女声版)\"\n            }],\n            \"topTitle\": \"巅峰榜·内地\",\n            \"type\": 0\n          }, {\n            \"id\": 6,\n            \"listenCount\": 1517820,\n            \"picUrl\": \"http://y.gtimg.cn/music/photo_new/T003R300x300M000002UItCc37aNxu.jpg\",\n            \"songList\": [{\n              \"singername\": \"杨宗纬\",\n              \"songname\": \"星\"\n            }, {\n              \"singername\": \"阿信\",\n              \"songname\": \"一半人生\"\n            }, {\n              \"singername\": \"G.E.M. 邓紫棋\",\n              \"songname\": \"岩石里的花\"\n            }],\n            \"topTitle\": \"巅峰榜·港台\",\n            \"type\": 0\n          }, {\n            \"id\": 3,\n            \"listenCount\": 9300000,\n            \"picUrl\": \"http://y.gtimg.cn/music/photo_new/T003R300x300M000000F1Kaw1UbOri.jpg\",\n            \"songList\": [{\n              \"singername\": \"Westlife\",\n              \"songname\": \"Hello My Love\"\n            }, {\n              \"singername\": \"Ariana Grande\",\n              \"songname\": \"7 rings (Explicit)\"\n            }, {\n              \"singername\": \"Galantis/OneRepublic\",\n              \"songname\": \"Bones\"\n            }],\n            \"topTitle\": \"巅峰榜·欧美\",\n            \"type\": 0\n          }, {\n            \"id\": 16,\n            \"listenCount\": 4530780,\n            \"picUrl\": \"http://y.gtimg.cn/music/photo_new/T003R300x300M000001Eb9x31z2mOO.jpg\",\n            \"songList\": [{\n              \"singername\": \"ITZY\",\n              \"songname\": \"달라달라 (DALLA DALLA)\"\n            }, {\n              \"singername\": \"화사 (华莎)\",\n              \"songname\": \"멍청이 (TWIT)\"\n            }, {\n              \"singername\": \"로시 (Rothy)\",\n              \"songname\": \"레인보우 (Rainbow)\"\n            }],\n            \"topTitle\": \"巅峰榜·韩国\",\n            \"type\": 0\n          }, {\n            \"id\": 29,\n            \"listenCount\": 1960000,\n            \"picUrl\": \"http://y.gtimg.cn/music/photo_new/T003R300x300M000000X0tfU105Xa3.jpg\",\n            \"songList\": [{\n              \"singername\": \"摩登兄弟\",\n              \"songname\": \"宁愿\"\n            }, {\n              \"singername\": \"韩寒\",\n              \"songname\": \"奉献\"\n            }, {\n              \"singername\": \"周笔畅\",\n              \"songname\": \"去流浪\"\n            }],\n            \"topTitle\": \"巅峰榜·影视金曲\",\n            \"type\": 0\n          }, {\n            \"id\": 17,\n            \"listenCount\": 1495456,\n            \"picUrl\": \"http://y.gtimg.cn/music/photo_new/T003R300x300M000000B6izj4I0MD3.jpg\",\n            \"songList\": [{\n              \"singername\": \"あいみょん\",\n              \"songname\": \"あした世界が終わるとしても (即便明天世界终结)\"\n            }, {\n              \"singername\": \"女王蜂 (じょおうばち)\",\n              \"songname\": \"火炎\"\n            }, {\n              \"singername\": \"RADWIMPS (ラッドウィンプス)\",\n              \"songname\": \"PAPARAZZI (English Version)\"\n            }],\n            \"topTitle\": \"巅峰榜·日本\",\n            \"type\": 0\n          }, {\n            \"id\": 201,\n            \"listenCount\": 156846,\n            \"picUrl\": \"http://y.gtimg.cn/music/photo_new/T003R300x300M000001BJIeN4b2v95.jpg\",\n            \"songList\": [{\n              \"singername\": \"蔡徐坤\",\n              \"songname\": \"Wait Wait Wait\"\n            }, {\n              \"singername\": \"周笔畅\",\n              \"songname\": \"去流浪 (《流浪地球》电影推广曲)\"\n            }, {\n              \"singername\": \"ITZY\",\n              \"songname\": \"달라달라 (DALLA DALLA)\"\n            }],\n            \"topTitle\": \"巅峰榜·MV\",\n            \"type\": 0\n          }, {\n            \"id\": 52,\n            \"listenCount\": 867895,\n            \"picUrl\": \"http://y.gtimg.cn/music/photo_new/T003R300x300M000000KIAVP3s8Oun.jpg\",\n            \"songList\": [{\n              \"singername\": \"陈硕子\",\n              \"songname\": \"你早就该忘了她\"\n            }, {\n              \"singername\": \"一只白\",\n              \"songname\": \"零食、恋爱和想你\"\n            }, {\n              \"singername\": \"司徒赫伦\",\n              \"songname\": \"阿里\"\n            }],\n            \"topTitle\": \"巅峰榜·腾讯音乐人原创榜\",\n            \"type\": 0\n          }, {\n            \"id\": 36,\n            \"listenCount\": 2499300,\n            \"picUrl\": \"http://y.gtimg.cn/music/photo_new/T003R300x300M000004bhA5d4QVHL3.jpg\",\n            \"songList\": [{\n              \"singername\": \"大天使 icey\",\n              \"songname\": \"知否知否\"\n            }, {\n              \"singername\": \"朴爱源\",\n              \"songname\": \"不为谁而作的歌\"\n            }, {\n              \"singername\": \"麓七\",\n              \"songname\": \"光年之外\"\n            }],\n            \"topTitle\": \"巅峰榜·K歌金曲\",\n            \"type\": 0\n          }]\n        }\n      },\n      code = data.code,\n      data = data.data,\n      list = data.topList;\n    if (code == 0) {\n      this.setData({\n        rank: list\n      });\n      wx.hideLoading();\n    }\n    //   },\n    //   fail: req => {\n    //     wx.showToast({\n    //       icon:'none',\n    //       title: '哎呀！数据出错了，别急，程序猿正在加急修改中',\n    //     })\n    //   }\n    // })\n  },\n  goTonext(e) {\n    var id = e.currentTarget.dataset.id;\n    //跳转详情榜单页面\n    wx.navigateTo({\n      url: '../top/top?disstid=' + id,\n    })\n  }\n})"
  },
  {
    "path": "pages/rank/rank.json",
    "content": "{\n  \"navigationBarTitleText\": \"HMusic\"\n}"
  },
  {
    "path": "pages/rank/rank.wxml",
    "content": "<view class=\"rank\">\n  <block wx:for=\"{{rank}}\" wx:for-item=\"list\" wx:key=\"list\">\n    <view class=\"list\" data-id=\"{{list.id}}\" bindtap='goTonext'>\n      <image class=\"picUrl\" src=\"{{list.picUrl}}\"></image>\n      <image class=\"radio_icon\" src=\"../../img/music.png\"></image>\n      <text class=\"listNum\">{{list.listenCount/10000}}万</text>\n      <view class=\"songList\">\n        <block wx:for=\"{{list.songList}}\" wx:for-item=\"songlist\" wx:key=\"songlist\">\n          <view class=\"song\">{{index+1}} {{songlist.songname}}-{{songlist.singername}}</view>\n        </block>\n      </view>\n    </view>\n  </block>\n</view>"
  },
  {
    "path": "pages/rank/rank.wxss",
    "content": ".rank {\n  padding-bottom: 40rpx;\n}\n.list {\n  position: relative;\n  display: flex;\n  margin: 0 40rpx;\n  padding-top: 40rpx;\n  height: 200rpx;\n}\n.list image.picUrl {\n  -webkit-box-flex: 0;\n  -ms-flex: 0 0 200rpx;\n  flex: 0 0 w00rpx;\n  width: 200rpx;\n  height: 200rpx;\n}\n.list  image.radio_icon {\n  position: absolute;\n  width:40rpx;\n  height:40rpx;\n  left:14rpx;\n  bottom:10rpx;\n}\n.list .listNum {\n  position:absolute;\n  left:70rpx;\n  bottom:10rpx;\n  color:#fff;\n  font-size:12px;\n}\n.list .songList {\n  -webkit-box-flex: 1;\n  -ms-flex: 1;\n  flex: 1;\n  display: -webkit-box;\n  display: -ms-flexbox;\n  display: flex;\n  -webkit-box-orient: vertical;\n  -webkit-box-direction: normal;\n  -ms-flex-direction: column;\n  flex-direction: column;\n  -webkit-box-pack: center;\n  -ms-flex-pack: center;\n  justify-content: center;\n  padding: 0 40rpx;\n  height: 200rpx;\n  overflow: hidden;\n  background: #fff;\n  color: hsla(0,0%,100%,.3);\n  font-size: 12px;\n}\n.list .songList .song {\n  text-overflow: ellipsis;\n  overflow: hidden;\n  white-space: nowrap;\n  line-height: 52rpx;\n  color:#000;\n}"
  },
  {
    "path": "pages/search/search.js",
    "content": "const app = getApp();\nPage({\n  data: {},\n  onLoad: function() {\n    wx.hideLoading();\n    wx.showShareMenu();\n    this.getStorage();\n    var key = wx.getStorageSync('hotkey'),\n      expirationTime = wx.getStorageSync('expirationTime'), //过期时间一天\n      time = Date.parse(new Date());\n    if (!expirationTime) {\n      expirationTime = time;\n    }\n    if (expirationTime > time) {\n      this.setData({\n        list: key\n      })\n    } else {\n      wx.request({\n        url: '关键字API',\n        data: {},\n        success: res => {\n          var code = res.data.code,\n            data = res.data.data,\n            list = data.hotkey;\n          if (code == 0) {\n            var timestamp = Date.parse(new Date());\n            var expiration = timestamp + 86400; //过期时间一天\n            this.setData({\n              list: list\n            });\n            wx.setStorage({\n              key: 'hotkey',\n              data: list,\n            });\n            wx.setStorage({\n              key: 'expirationTime',\n              data: expiration,\n            })\n          }\n        },\n        fail: req => {\n          wx.showToast({\n            icon: 'none',\n            title: '哎呀！数据出错了，别急，程序猿正在加急修改中',\n          })\n        }\n      })\n    }\n  },\n  getStorage() {\n    var logs = wx.getStorageSync('yqq_search_history').split(','); //获取搜索记录缓存\n    if (logs[0] == '') {\n      this.setData({\n        keys: [],\n        haveKeys: false\n      });\n    } else {\n      this.setData({\n        keys: logs,\n        haveKeys: true\n      });\n    }\n  },\n  inputFocus(e) {\n    //输入框获取焦点\n    if (!this.data.havaResult) {\n      this.setData({\n        isHide: true,\n        hotHide: true,\n        isCancel: true,\n        inputShowed: true\n      });\n      this.getStorage();\n    }\n  },\n  clearKeys: function() {\n    //清空搜索记录\n    this.setData({\n      keys: [],\n      haveKeys: false\n    });\n    wx.setStorageSync('yqq_search_history', '');\n  },\n  cancel: function() {\n    //取消\n    this.setData({\n      isHide: false,\n      sInput: '',\n      isNull: true,\n      hotHide: false,\n      isCancel: false,\n      havaResult: false,\n      searchResult: [],\n      isLoadAll: false,\n      inputShowed: false\n    })\n  },\n  clearKey: function(e) {\n    //删除某一个记录\n    var key = e.target.dataset.key,\n      data = this.data.keys;\n    for (var i = 0; i < data.length; i++) {\n      if (key == data[i]) {\n        data.splice(i, 1);\n        this.setData({\n          keys: data\n        })\n      }\n    }\n    wx.setStorageSync('yqq_search_history', this.data.keys);\n  },\n  searchKey(e) {\n    //点击完成按钮时触发\n    var val = e.detail.value;\n    // console.log(val.trim().length);\n    if (val.trim().length == 0) {\n      wx.showToast({\n        icon: 'none',\n        title: '不能查询空值哦',\n      })\n    } else {\n      this.setData({\n        searchResult:[]\n      });\n      this.searchKeyword(val, 1);\n    }\n  },\n  searchInput(e) {\n    //输入的时候触发\n    var val = e.detail.value;\n    if (val.length == 0) {\n      this.setData({\n        isNull: true\n      })\n    } else {\n      this.setData({\n        isNull: false\n      })\n    }\n  },\n  clearInput() {\n    //清空输入框\n    this.setData({\n      sInput: '',\n      isNull: true,\n      searchResult:[]\n    })\n  },\n  searchThisKey(e) {\n    //点击热门搜索值\n    var key = e.target.dataset.key.replace(/\\s+/g, \"\");\n    this.setData({\n      sInput: key,\n      hotHide: true,\n      isNull: false,\n      haveKeys: false,\n      havaResult: true,\n      isCancel: true,\n      inputShowed: true,\n      sInput: key,\n      searchResult:[]\n    })\n    this.searchKeyword(key, 1);\n  },\n  in_array(v, arr) {\n    var output = true;\n    for (var i in arr) {\n      if (v == arr[i]) {\n        output = false;\n        return output;\n      }\n    }\n    output = true;\n    return output;\n  },\n  searchKeyword: function(key, p) { //调用搜索查询接口\n    wx.showLoading({\n      title: '加载中',\n    });\n    var logs = this.data.keys;\n    var is_true = this.in_array(key, logs);\n    if (is_true) {\n      logs.push(key);\n      wx.setStorageSync('yqq_search_history', logs.join(','));\n    }\n    wx.request({\n      url: '搜索API',\n      dataType: 'json',\n      success: res => {\n        wx.hideLoading();\n        var code = res.data.code,\n          subcode = res.data.subcode;\n        if (subcode == '-10001') {\n          wx.showToast({\n            icon: 'none',\n            title: '哎呀，接口出错了，暂时不能搜索咯，很抱歉',\n          })\n        } else {\n          var song = res.data.data.song,\n            curpage = song.curpage,\n            curnum = song.curnum,\n            totalnum = song.totalnum,\n            list = this.data.searchResult,\n            singer = res.data.data.zhida;\n          var c = list.concat(song.list);\n          if (curpage * curnum >= totalnum) {\n            this.setData({\n              searchResult: c,\n              isLoadAll: true,\n              canGetsearch: false,\n              isHide: false,\n              havaResult: true,\n              singer: singer\n            })\n          } else {\n            this.setData({\n              searchResult: c,\n              isLoadAll: false,\n              canGetsearch: true,\n              isHide: false,\n              havaResult: true,\n              singer: singer\n            })\n          }\n        }\n      }\n    })\n  },\n  scroll: function(e) {\n    var p = this.data.p,\n      sInput = this.data.sInput;\n    if (this.data.canGetsearch) {\n      p = p + 1;\n      this.searchKeyword(sInput, p);\n      this.setData({\n        canGetsearch: false,\n        p: p\n      })\n    }\n  },\n  goToplay: function(e) {\n    //跳到播放页\n    var id = e.currentTarget.dataset.id,\n      name = e.currentTarget.dataset.name,\n      song_id = wx.getStorageSync('song_id');\n    // console.log(song_id);\n    if (song_id == '') {\n      var songid = [],\n        mname = [];\n      songid.push(id);\n      mname.push(name);\n      wx.setStorage({\n        key: 'song_id',\n        data: songid,\n      });\n      wx.setStorage({\n        key: 'music_name',\n        data: mname,\n      });\n      wx.setStorage({\n        key: 'num',\n        data: 0,\n      })\n      app.globalData.shouldPlay = true;\n      // app.globalData.unload = true;\n    } else {\n      if (song_id.indexOf(id) != '-1') {\n        var num = song_id.indexOf(id);\n        wx.setStorage({\n          key: 'num',\n          data: num,\n        });\n      } else {\n        var num = wx.getStorageSync('num'),\n          musicName = wx.getStorageSync('music_name');\n        num++;\n        song_id.splice(num, 0, id);\n        musicName.splice(num, 0, name);\n        wx.setStorage({\n          key: 'song_id',\n          data: song_id,\n        });\n        wx.setStorage({\n          key: 'music_name',\n          data: musicName,\n        });\n        wx.setStorage({\n          key: 'num',\n          data: num,\n        })\n        app.globalData.shouldPlay = true;\n        // app.globalData.unload = true;\n      }\n    }\n\n    wx.switchTab({\n      url: '../playSong/playSong',\n    })\n  },\n  goToSinger(e) {\n    var id = e.currentTarget.dataset.singermid;\n    wx.navigateTo({\n      url: '../singer/singer?disstid=' + id,\n    })\n  }\n})"
  },
  {
    "path": "pages/search/search.json",
    "content": "{\n  \"navigationBarTitleText\": \"HMusic\"\n}"
  },
  {
    "path": "pages/search/search.wxml",
    "content": "<view class=\"searchPage\">\n  <!-- 输入框 -->\n  <!-- <view class=\"search-box-wrapper\">\n    <view class=\"search-box\">\n      <image class=\"icon\" src=\"../../img/search.png\"></image>\n      <input class=\"search_input\" value='{{sInput}}' placeholder='搜索歌曲、歌手' placeholder-class=\"input-placeholder\" bindfocus=\"inputFocus\" bindconfirm=\"searchKey\" bindinput=\"searchInput\"></input>\n      <image class=\"cc {{isNull?'hide':''}}\" src=\"../../img/close1.png\" bindtap='clearInput'></image>\n    </view>\n    <view class=\"cancel {{isCancel?'':'hide'}}\" bindtap='cancel'>取消</view>\n  </view> -->\n\n  <view class=\"page__bd\">\n    <view class=\"weui-search-bar\">\n        <view class=\"weui-search-bar__form\">\n            <view class=\"weui-search-bar__box\">\n                <icon class=\"weui-icon-search_in-box\" type=\"search\" size=\"14\"></icon>\n                <input type=\"text\" class=\"weui-search-bar__input\" placeholder=\"搜索歌曲、歌手\" value=\"{{sInput}}\" focus=\"{{inputShowed}}\" bindinput=\"searchInput\" bindconfirm=\"searchKey\"/>\n                <view class=\"weui-icon-clear {{isNull?'hide':''}}\" bindtap=\"clearInput\">\n                    <icon type=\"clear\" size=\"14\"></icon>\n                </view>\n            </view>\n            <label class=\"weui-search-bar__label\" hidden=\"{{inputShowed}}\" bindtap=\"inputFocus\">\n                <icon class=\"weui-icon-search\" type=\"search\" size=\"14\"></icon>\n                <view class=\"weui-search-bar__text\">搜索歌曲、歌手</view>\n            </label>\n        </view>\n        <view class=\"weui-search-bar__cancel-btn {{isCancel?'':'hide'}}\" bindtap=\"cancel\">取消</view>\n    </view>\n  </view>\n\n  <!-- 热门搜索 -->\n  <view class=\"hot_keys {{hotHide?'hide':''}}\">\n    <view class=\"title\">热门搜索</view>\n    <view class=\"res_tags\">\n      <block wx:for=\"{{list}}\" wx:key=\"{{list}}\">\n        <view class=\"list\" data-key=\"{{item.k}}\" bindtap='searchThisKey'>{{item.k}}</view>\n      </block>\n    </view>\n  </view>\n  <!-- 搜索记录模块 -->\n  <view class=\"record_keys {{isHide?'':'hide'}}\">\n    <block wx:for=\"{{keys}}\" wx:key=\"{{keys}}\">\n      <view class=\"key_list\">\n        <image class=\"clock\" src=\"../../img/clock.png\"></image>\n        <view class=\"key_text\" data-key=\"{{item}}\" bindtap='searchThisKey'>{{item}}</view>\n        <image data-key=\"{{item}}\" class=\"close\" src='../../img/close.png' bindtap='clearKey'></image>\n      </view>\n    </block>\n    <view class=\"clear {{haveKeys?'':'hide'}}\" bindtap='clearKeys'>清除搜索记录</view>\n  </view>\n  <!-- 搜索结果模块 -->\n  \n  <scroll-view wx:if=\"{{searchResult.length != 0}}\" scroll-y style=\"height:100vh;\" bindscrolltolower=\"scroll\" lower-threshold=\"50\" scroll-with-animation enable-back-to-top>\n  <view class=\"search_result {{havaResult?'':'hide'}}\">\n    <view class=\"search_page\" wx:if=\"{{singer.singerid}}\" data-singermid=\"{{singer.singermid}}\" data-id=\"{{singer.singerid}}\" bindtap='goToSinger'>\n        <image class=\"media\" wx:if=\"{{singer.singermid}}\" src=\"https://y.gtimg.cn/music/photo_new/T001R68x68M000{{singer.singermid}}.jpg?max_age=2592000\"></image>\n        <view class=\"title\">{{singer.singername}}</view>\n        <view class=\"name\">单曲:{{singer.songnum}} 专辑:{{singer.albumnum}}</view> \n      </view>\n    <block wx:for=\"{{searchResult}}\" wx:key=\"{{searchResult}}\">\n      <view class=\"search_page\" data-name=\"{{item.songname}}\" data-id=\"{{item.songid}}\" bindtap='goToplay'>\n        <image class=\"Micon\" src=\"../../img/icon.png\"></image>\n        <view class=\"title\">{{item.songname}}</view>\n        <view class=\"name\">{{item.singer[0].name}}</view> \n      </view>\n    </block>\n    <view class=\"loadAll {{isLoadAll?'':'hide'}}\">已加载全部</view>\n  </view>\n  </scroll-view>\n    \n</view>"
  },
  {
    "path": "pages/search/search.wxss",
    "content": "page {\n  background-color: #fff;\n}\n\n\n.page__bd {\n  position: fixed;\n  top:0;\n  width:100%;\n  background: #f4f4f4;\n  /* padding: 20rpx; */\n  display: -webkit-box;\n  -webkit-box-orient: horizontal;\n  -webkit-box-align: center;\n  z-index:1;\n}\n.weui-search-bar {\n  width:100%;\n}\n.weui-search-bar__cancel-btn {\n  color:#000;\n  font-size:24rpx;\n}\n.weui-search-bar__input {\n  color:#000;\n}\n/* 自己写的搜索框 */\n.search-box-wrapper {\n  position: fixed;\n  top:0;\n  width:95%;\n  background: #f4f4f4;\n  padding: 20rpx;\n  display: -webkit-box;\n  -webkit-box-orient: horizontal;\n  -webkit-box-align: center;\n  z-index:1;\n}\n.search-box {\n  position: relative;\n  border-radius: 3px;\n  background: #fff;\n  height: 40rpx;\n  line-height: 40rpx;\n  padding: 16rpx 24rpx 16rpx 70rpx;\n  -webkit-box-flex: 1;\n}\n.search-box .cc {\n  position: absolute;\n  top: 9px;\n  right: 12px;\n  width: 18px;\n  height: 18px;\n  background: #b1b1b1;\n  text-indent: -9999px;\n  border-radius: 99px;\n  z-index:999;\n}\n.icon {\n  position: absolute;\n  top: 18rpx;\n  left: 20rpx;\n  width: 36rpx;\n  height: 36rpx;\n  background-repeat: no-repeat;\n  background-size: cover;\n  /* text-indent: -999px; */\n}\ninput {\n  min-height: 40rpx;\n  height: 40rpx;\n  line-height: 40rpx;\n  width: 100%;\n  color: rgba(0,0,0,.3);\n  border: none;\n  -webkit-appearance: none;\n  font-size: 14px;\n}\n.input-placeholder {\n  font-size:14px;\n  color: rgba(0,0,0,.3);\n}\n.cancel {\n  padding-right: 20rpx;\n  padding-left: 20rpx;\n  font-size: 14px;\n  height: 72rpx;\n  line-height: 72rpx;\n}\n.hot_keys {\n  background: #fff;\n  padding: 30rpx 30rpx 20rpx 30rpx;\n  margin-top:96rpx;\n}\n.record_keys {\n  margin-top:96rpx;\n}\n.search_result {\n  margin-top:96rpx;\n}\n.title {\n  color: rgba(0,0,0,.6);\n  margin-bottom: 16rpx;\n}\n.list {\n  display: inline-block;\n  padding: 10rpx 20rpx;\n  margin: 0 40rpx 20rpx 0;\n  border-radius: 12rpx;\n  background: rgb(146, 144, 144);\n  font-size: 14px;\n  color: #fff;\n}\n\n.key_list {\n  border-top: 1px solid #ededed;\n  padding: 0 30rpx;\n  position: relative;\n  display: block;\n  height: 88rpx;\n  line-height: 88rpx;\n}\n.key_list .clock {\n  position: absolute;\n  left: 60rpx;\n  top: 24rpx;\n  width: 40rpx;\n  height: 40rpx;\n  text-indent: -999px;\n}\n.key_list .key_text {\n  position: absolute;\n  left: 140rpx;\n  right: 100rpx;\n  display: block;\n  height: 88rpx;\n  line-height: 88rpx;\n  color: #000;\n  font-size: 14px;\n  white-space: nowrap;\n  overflow: hidden;\n  text-overflow: ellipsis;\n}\n.key_list .close {\n  position: absolute;\n  right: 60rpx;\n  top: 24rpx;\n  width: 40rpx;\n  height: 40rpx;\n}\n.clear {\n  text-align: center;\n  height: 88rpx;\n  line-height: 88rpx;\n  color:#47c88a;\n  font-size:14px;\n}\n.search_page {\n  position:relative;\n  height: 110rpx;\n  padding-left: 112rpx;\n  overflow: hidden;\n}\n.search_page::after {\n  content:\"\";\n  position:absolute;\n  height: 1px;\n  top:0;\n  left:0;\n  right: 0;\n  background:#e5e5e5;\n}\n.search_page .Micon {\n  position: absolute;\n  top: 36rpx;\n  left: 36rpx;\n  width: 44rpx;\n  height: 40rpx;\n  background-position: 0 0;\n}\n.search_page .media {\n  position: absolute;\n  top: 16rpx;\n  left: 16rpx;\n  width: 80rpx;\n  height: 80rpx;\n  border-radius: 80rpx;\n}\n.search_page .title {\n  margin: 20rpx 0 2px;\n  line-height: 36rpx;\n  font-size: 16px;\n  font-weight: normal;\n  color: #000;\n  overflow: hidden;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n}\n.search_page .name {\n  color:#80808080;\n  font-size:14px;\n  overflow: hidden;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n}\n.search_result .loadAll {\n  line-height: 80rpx;\n  text-align: center;\n  color: #808080;\n}"
  },
  {
    "path": "pages/share/share.js",
    "content": "const app = getApp();\nPage({\n  data: {},\n  onLoad: function(options) {\n    wx.hideLoading();\n    app.globalData.backgroundAudioManager.onPlay(() => {\n      var that = this;\n      that.updateTime(that);\n      this.setData({\n        isPlay: true\n      });\n      app.globalData.isPlay = true;\n    });\n    app.globalData.backgroundAudioManager.onError((res) => {\n      if (res.errCode == '10001') {\n        wx.showToast({\n          icon: 'none',\n          title: '由于系统错误导致歌曲播放失败',\n        })\n      } else if (res.errCode == '10002') {\n        wx.showToast({\n          icon: 'none',\n          title: '由于网络错误导致歌曲播放失败',\n        })\n      } else if (res.errCode == '10003') {\n        wx.showToast({\n          icon: 'none',\n          title: '哎呀！播放文件错误',\n        })\n      } else if (res.errCode == '10004') {\n        wx.showToast({\n          icon: 'none',\n          title: '哎呀！播放格式错误',\n        })\n      } else if (res.errCode == '-1') {\n        wx.showToast({\n          icon: 'none',\n          title: '哎呀！数据出错了，别急，程序猿正在加急修改中',\n        })\n      }\n    });\n    app.globalData.backgroundAudioManager.onEnded(() => {\n      // var id = wx.getStorageSync('share_id');\n      // var this_id = id[0];\n      var background = wx.getStorageSync('backgrond');\n      app.globalData.backgroundAudioManager.title = background.title;\n      app.globalData.backgroundAudioManager.singer = background.singer;\n      app.globalData.backgroundAudioManager.src = background.src;\n      app.globalData.backgroundAudioManager.coverImgUrl = background.coverImgUrl;\n      app.globalData.backgroundAudioManager.play();\n      this.setData({\n        musicTime: 1,\n        toView: 'A0',\n        isPlay: true\n      });\n      app.globalData.isPlay = true;\n      wx.setStorage({\n        key: 'current',\n        data: {\n          toView: 'A0',\n          musicTime: 1\n        },\n      });\n      var that = this;\n      that.updateTime(that);\n      // this.music_fcg(this_id);\n    });\n    app.globalData.backgroundAudioManager.onPause(() => {\n      this.setData({\n        isPlay: false\n      })\n      app.globalData.isPlay = false;\n    });\n    app.globalData.backgroundAudioManager.onStop(() => {\n      app.globalData.startTime = 0;\n      wx.setStorage({\n        key: 'current',\n        data: {\n          toView: 'A0',\n          musicTime: 1\n        },\n      });\n      this.setData({\n        isPlay: false\n      });\n      wx.setStorage({\n        key: 'share_id',\n        data: '[]',\n      });\n      app.globalData.isPlay = false;\n    });\n  },\n  onShow() {\n    this.setData({\n      isPlay: app.globalData.isPlay\n    })\n    var startTime = app.globalData.startTime;\n    app.globalData.shouldPlay = false;\n    // console.log(startTime, app.globalData.changeMusic,this.data.isPlay);\n    if (startTime > 0) {\n      var background = wx.getStorageSync('backgrond'),\n        // msg = wx.getStorageSync('msg'),\n        msg = app.globalData.musicMsg,\n        current = wx.getStorageSync('current'),\n        changeMusic = app.globalData.changeMusic;\n      if (changeMusic) {\n        var song_id = wx.getStorageSync('share_id'),\n          music_name = wx.getStorageSync('share_name'),\n          this_id = song_id[0],\n          sid = wx.getStorageSync('song_id'),\n          mName = wx.getStorageSync('music_name'),\n          num = wx.getStorageSync('num');\n        if (sid) {\n          var index = sid.indexOf(this_id);\n          if (index == -1) {\n            sid.splice(parseInt(num + 1), 0, this_id);\n            mName.splice(parseInt(num + 1), 0, music_name[0]);\n            wx.setStorage({\n              key: 'num',\n              data: parseInt(num + 1),\n            })\n          } else {\n            wx.setStorage({\n              key: 'num',\n              data: index,\n            })\n          }\n          wx.setStorage({\n            key: 'song_id',\n            data: sid,\n          });\n          wx.setStorage({\n            key: 'music_name',\n            data: mName,\n          })\n\n        } else {\n          wx.setStorage({\n            key: 'song_id',\n            data: song_id,\n          });\n          wx.setStorage({\n            key: 'music_name',\n            data: music_name,\n          });\n          wx.setStorage({\n            key: 'num',\n            data: 0,\n          })\n        }\n        this.music_fcg(this_id);\n        this.setData({\n          haveMusicStorage: true,\n          MusicName: music_name,\n          isPlay: true,\n          toView: 'A0',\n          musicTime: 1,\n          time: 0\n        });\n        app.globalData.isPlay = true;\n        wx.setStorage({\n          key: 'current',\n          data: {\n            toView: 'A0',\n            musicTime: 1\n          },\n        })\n      } else {\n        if (current.toView) {\n          this.setData({\n            toView: current.toView,\n            musicTime: current.musicTime\n          });\n        }\n        this.setData({\n          lyrics: app.globalData.lyrics,\n          haveMusicStorage: true,\n          audioSrc: background.src,\n          time: startTime,\n          track_info: msg.track_info,\n          singer: msg.singer\n        });\n        if (!this.data.isPlay) {\n          app.globalData.backgroundAudioManager.title = background.title;\n          app.globalData.backgroundAudioManager.singer = background.singer;\n          app.globalData.backgroundAudioManager.src = background.src;\n          app.globalData.backgroundAudioManager.startTime = startTime;\n          app.globalData.backgroundAudioManager.coverImgUrl = background.coverImgUrl;\n          app.globalData.backgroundAudioManager.play();\n          app.globalData.isPlay = true;\n          this.setData({\n            isPlay: true\n          })\n        } else {\n          this.updateTime(this);\n        }\n      }\n    } else {\n      if (wx.getStorageSync('share_id').length == 0) {\n        wx.showModal({\n          title: '提示',\n          content: '暂时无法获取分享的歌曲，请移步推荐页哟',\n          showCancel: false,\n          success: function(res) {\n            if (res.confirm) {\n              wx.switchTab({\n                url: '../index/index',\n              })\n            }\n          }\n        });\n        this.setData({\n          haveMusicStorage: false\n        });\n      } else {\n        // var id = app.globalData.labelid,\n        //   rid = app.globalData.radioId,\n        //   radioid = wx.getStorageSync('labelid'),\n        //   shouldPlay = app.globalData.shouldPlay,\n        //   index = wx.getStorageSync('num');\n        // if (shouldPlay) {\n        var music_name = wx.getStorageSync('share_name');\n        var song_id = wx.getStorageSync('share_id'),\n          this_id = song_id[0],\n          sid = wx.getStorageSync('song_id'),\n          mName = wx.getStorageSync('music_name'),\n          num = wx.getStorageSync('num');\n        if (sid) {\n          var index = sid.indexOf(this_id);\n          if (index == -1) {\n            sid.splice(parseInt(num + 1), 0, this_id);\n            mName.splice(parseInt(num + 1), 0, music_name[0]);\n            wx.setStorage({\n              key: 'num',\n              data: parseInt(num + 1),\n            })\n          } else {\n            wx.setStorage({\n              key: 'num',\n              data: index,\n            })\n          }\n          wx.setStorage({\n            key: 'song_id',\n            data: sid,\n          });\n          wx.setStorage({\n            key: 'music_name',\n            data: mName,\n          });\n\n        } else {\n          wx.setStorage({\n            key: 'song_id',\n            data: song_id,\n          });\n          wx.setStorage({\n            key: 'music_name',\n            data: music_name,\n          });\n          wx.setStorage({\n            key: 'num',\n            data: 0,\n          })\n        }\n        this.music_fcg(this_id);\n        // this.setData({\n        //   num: index\n        // })\n        // app.globalData.labelid = radioid;\n        // app.globalData.shouldPlay = false;\n        // } else {\n        //   if (rid.indexOf(radioid) == -1) {\n        //     if (radioid != id) {\n        //       var song_id = wx.getStorageSync('share_id'),\n        //         this_id = song_id[0];\n        //       this.music_fcg(this_id);\n        //       this.setData({\n        //         num: 0\n        //       })\n        //       app.globalData.labelid = radioid;\n        //     }\n        //   }\n        // }\n        this.setData({\n          haveMusicStorage: true,\n          MusicName: music_name\n        });\n      }\n    }\n\n  },\n  music_fcg: function(this_id) {\n    wx.showLoading({\n      title: '加载中',\n    })\n    var musicu = this.data.musicu;\n    musicu.detail.param.song_id = this_id;\n    musicu.simsongs.param.songid = this_id;\n    musicu.gedan.param.song_id = this_id;\n    typeof this_id == 'string' ? musicu.video.param.songid = this_id.toString() : musicu.video.param.songid = this_id;\n\n    //歌曲相关信息\n    wx.request({\n      url: '歌曲API',\n      method: 'POST',\n      data: JSON.stringify(musicu),\n      success: res => {\n        var detail = res.data.detail,\n          gedan = res.data.gedan,\n          simsongs = res.data.simsongs,\n          songmid = detail.data.track_info.mid,\n          info = detail.data.info,\n          video = res.data.video.data.list,\n          vids = [],\n          lyric,\n          mediaArray = [],\n          haveLyric = false;\n        //将歌词字符串转为数组，并去掉前五组数据\n        for (var i = 0; i < info.length; i++) {\n          if (info[i].title == '歌词') {\n            lyric = info[i].content[0].value.split('\\n').slice(5);\n            haveLyric = true;\n          }\n        }\n        for (var i = 0; i < video.length; i++) {\n          vids.push(video[i].vid);\n        }\n        if (vids.length > 0) {\n          this.getVideoSrc(vids);\n        }\n        //将时间跟歌词分开\n        if (haveLyric) {\n          for (var j = 0; j < lyric.length; j++) {\n            var t = lyric[j].substring(lyric[j].indexOf('[') + 1, lyric[j].indexOf(']')),\n              c = lyric[j].substring(lyric[j].indexOf(\"]\") + 1, lyric[j].length);\n            if (c != '') {\n              mediaArray.push({\n                t: (parseInt(t.split(\":\")[0] * 60) + parseFloat(t.split(\":\")[1])).toFixed(1),\n                c: c,\n                id: 'A' + j\n              })\n            }\n          }\n        }\n        this.setData({\n          track_info: detail.data.track_info,\n          gedan: gedan.data.vec_gedan,\n          simsongs: simsongs.data.songInfoList,\n          singer: detail.data.track_info.singer,\n          songmid: songmid,\n          lyrics: mediaArray,\n          video: video\n        });\n        app.globalData.musicMsg = {\n          track_info: detail.data.track_info,\n          gedan: gedan.data.vec_gedan,\n          simsongs: simsongs.data.songInfoList,\n          singer: detail.data.track_info.singer,\n          songmid: songmid,\n          video: video\n        }\n        // wx.setStorage({\n        //   key: 'msg',\n        //   data: {\n        //     track_info: detail.data.track_info,\n        //     singer: detail.data.track_info.singer\n        //   },\n        // })\n        app.globalData.lyrics = mediaArray;\n        var songUrl = this.data.pUrl,\n          mid = songmid;\n        songUrl.req_0.param.songmid.splice(0, 1, mid);\n        //获取歌曲链接\n        wx.request({\n          url: '歌曲API',\n          method: 'post',\n          data: JSON.stringify(songUrl),\n          success: res => {\n            wx.hideLoading();\n            var pUrl = res.data.req_0.data.midurlinfo[0].purl;\n            if (pUrl == '') {\n              app.globalData.backgroundAudioManager.pause();\n              var that = this;\n              that.setData({\n                audioSrc: ''\n              });\n              wx.showModal({\n                title: '提示',\n                content: '很抱歉，该歌曲暂不支持播放哦，咱们听下一首歌吧',\n                success: function(res) {\n                  if (res.confirm) {\n                    that.nextAudio();\n                  }\n                }\n              })\n            } else if (this.data.time == 0) {\n              wx.setStorage({\n                key: 'backgrond',\n                data: {\n                  title: detail.data.track_info.name,\n                  singer: detail.data.track_info.singer[0].name,\n                  src: pUrl,\n                  coverImgUrl: 'https://y.gtimg.cn/music/photo_new/T002R300x300M000' + detail.data.track_info.album.mid + '.jpg?max_age=2592000'\n                },\n              });\n              app.globalData.backgroundAudioManager.title = detail.data.track_info.name;\n              app.globalData.backgroundAudioManager.singer = detail.data.track_info.singer[0].name;\n              app.globalData.backgroundAudioManager.src = pUrl;\n              app.globalData.backgroundAudioManager.coverImgUrl = 'https://y.gtimg.cn/music/photo_new/T002R300x300M000' + detail.data.track_info.album.mid + '.jpg?max_age=2592000'\n              app.globalData.backgroundAudioManager.play();\n              this.setData({\n                audioSrc: pUrl,\n                isPlay: true\n              });\n              app.globalData.isPlay = true;\n              app.globalData.musicMsg.audioSrc = pUrl;\n            }\n          },\n          error: req => {\n            wx.showToast({\n              icon: 'none',\n              title: '哎呀！数据出错了，别急，程序猿正在加急修改中',\n            })\n          }\n        });\n      },\n      error: req => {\n        wx.showToast({\n          icon: 'none',\n          title: '哎呀！数据出错了，别急，程序猿正在加急修改中',\n        })\n      }\n    });\n\n    //精彩评论\n    wx.request({\n      url: '评论API',\n      data: {},\n      success: res => {\n        var commentlist = res.data.hot_comment.commentlist,\n          list = [];\n        if (commentlist) {\n          if (commentlist.length > 4) {\n            list.push(commentlist[1]);\n            list.push(commentlist[2]);\n            list.push(commentlist[3]);\n          } else {\n            for (var i = 0; i < commentlist.length; i++) {\n              list.push(commentlist[i]);\n            }\n          }\n          for (var i = 0; i < list.length; i++) {\n            list[i].time = app.timestampToTime(list[i].time);\n          }\n          this.setData({\n            commentlist: list,\n            haveCommentlist: true\n          });\n          app.globalData.musicMsg.commentlist = list;\n          app.globalData.musicMsg.haveCommentlist = true;\n        } else {\n          this.setData({\n            haveCommentlist: false\n          });\n          app.globalData.musicMsg.haveCommentlist = false;\n          app.globalData.musicMsg.commentlist = '';\n        }\n\n      },\n      error: req => {\n        wx.showToast({\n          icon: 'none',\n          title: '哎呀！数据出错了，别急，程序猿正在加急修改中',\n        })\n      }\n    });\n  },\n  audioPlay() {\n    //音乐播放暂停\n    var isPlay = this.data.isPlay,\n      src = this.data.audioSrc;\n    if (isPlay) {\n      app.globalData.backgroundAudioManager.pause();\n      this.setData({\n        isPlay: false\n      })\n      app.globalData.isPlay = false;\n    } else if (isPlay == false && src != '') {\n      app.globalData.backgroundAudioManager.play();\n      this.setData({\n        isPlay: true\n      });\n      app.globalData.isPlay = true;\n    } else {\n      var that = this;\n      wx.showModal({\n        title: '提示',\n        content: '很抱歉，该歌曲需要vip哦，咱们听下一首歌吧',\n        success: function(res) {\n          if (res.confirm) {\n            that.nextAudio();\n          }\n        }\n      })\n    }\n  },\n  updateTime: function(that) {\n    //播放时更新时间\n    app.globalData.backgroundAudioManager.onTimeUpdate((res) => {\n      var duration = app.globalData.backgroundAudioManager.duration,\n        currentTime = app.globalData.backgroundAudioManager.currentTime.toFixed(1),\n        time = this.data.lyrics,\n        musicTime = this.data.musicTime;\n      app.globalData.startTime = app.globalData.backgroundAudioManager.currentTime;\n      for (var i = musicTime; i < time.length; i++) {\n        if (parseInt(currentTime) > parseInt(time[i].t)) {\n          if (this.data.toView != time[i].id) {\n            this.setData({\n              toView: time[i].id,\n              musicTime: musicTime + 1\n            });\n            wx.setStorage({\n              key: 'current',\n              data: {\n                toView: time[i].id,\n                musicTime: musicTime + 1\n              },\n            })\n          }\n          return;\n        }\n      }\n    })\n  },\n  goIndex(){\n    wx.switchTab({\n      url: '../../pages/index/index',\n    })\n  }\n})"
  },
  {
    "path": "pages/share/share.json",
    "content": "{\n  \"navigationBarTitleText\": \"HMusic\"\n}"
  },
  {
    "path": "pages/share/share.wxml",
    "content": "<view wx:if=\"{{haveMusicStorage}}\" class=\"playSong\" style=\"height:100%;\">\n  <view class=\"main\" style=\"height:100%;\">\n    <view class=\"main_bd\"  style=\"height:70%;\">\n      <view class=\"song_info\" style=\"height:70%;\">\n        <view class=\"song_info_hd\">\n          <view class=\"song_name\">\n            <view class=\"song_name__text\">\n              {{track_info.title}}\n            </view>\n          </view>\n\n          <view class=\"singer_name\">\n            <block wx:for=\"{{singer}}\" wx:key=\"singer\">\n              <view class=\"item_name\">{{index > 0 ? ' / ' : ''}}{{item.name}}</view>\n            </block>\n          </view>\n        </view>\n\n        <view class=\"song_info_bd\">\n          <view class=\"album_cover\">\n            <image wx:if=\"{{track_info.album.mid}}\" class=\"album_cover__img\" src=\"https://y.gtimg.cn/music/photo_new/T002R300x300M000{{track_info.album.mid}}.jpg?max_age=2592000\"></image>\n          </view>\n\n          <view class=\"lyric\">\n            <view class=\"lyric__bd\" style=\"position:reative;\">\n              <scroll-view scroll-y style=\"position:absolute;bottom:0;height:80%;white-space:nowrap;font-size:15px;\" scroll-into-view=\"{{toView}}\" upper-threshold=\"2000\" scroll-with-animation scroll-top=\"40rpx;\">\n                <block wx:for=\"{{lyrics}}\" wx:for-item=\"lyric\" wx:key=\"{{lyric}}\">\n                  <view style=\"color:{{toView == lyric.id ? '#31c27c':''}}\" class=\"lyric__para\" data-time=\"{{lyric.t}}\" id=\"{{lyric.id}}\">\n                    {{lyric.c}}\n                  </view>\n                </block>\n              </scroll-view>\n            </view>\n          </view>\n        </view>\n      </view>\n\n      <view class=\"opt\">\n        <view wx:if=\"{{havePop}}\" class=\"opt__item\" bindtap=\"\" style=\"opacity:.5;\">\n          <image class=\"opt__icon\" src=\"../../img/pop.png\"></image>\n        </view>\n        <view class=\"opt__item\" bindtap=\"audioPlay\">\n          <image wx:if=\"{{isPlay}}\" class=\"opt__icon\" src=\"../../img/pause.png\"></image>\n          <image wx:else class=\"opt__icon\" src=\"../../img/opt_icon.png\"></image>\n        </view>\n\n        <view wx:if=\"{{haveNext}}\" class=\"opt__item\" bindtap=\"\" style=\"opacity:.5;\">\n          <image class=\"opt__icon\" src=\"../../img/next.png\"></image>\n        </view>\n\n        <!-- <view class=\"opt__item\"> -->\n          <!-- <image class=\"opt__icon\" src=\"../../img/share.png\"></image> -->\n          <!-- <button open-type='share' style=\"border:0;\" plain><image class=\"opt__icon\" src=\"../../img/share.png\"></image></button> -->\n        <!-- </view> -->\n      </view>\n\n      <view class='opt'>\n        <button type=\"primary\" bindtap=\"goIndex\">回到首页</button>\n      </view>\n    </view>\n\n    <view class=\"bg\" style=\"height:100%;\">\n      <image wx:if=\"{{track_info.album.mid}}\" class=\"bg_img\" src=\"https://y.gtimg.cn/music/photo_new/T002R300x300M000{{track_info.album.mid}}.jpg?max_age=2592000\"></image>\n    </view>\n  </view>\n</view>"
  },
  {
    "path": "pages/share/share.wxss",
    "content": "page {\n  background: #fff;\n}\n.main {\n  position: relative;\n  /* padding-bottom: 30rpx; */\n  overflow: hidden;\n}\n.main_bd {\n  position: relative;\n  z-index: 4;\n}\n.song_name {\n  display: -webkit-box;\n  -webkit-box-pack: center;\n  -webkit-box-align: center;\n  margin-top: 40rpx;\n  font-size:18px;\n  font-weight: 300;\n}\n.song_name .song_name__text {\n    max-width: 222rpx;\n    overflow: hidden;\n    white-space: nowrap;\n    text-overflow: ellipsis;\n    font-size: 18px;\n    font-weight: 400;\n    color: #000;\n}\n.song_name .icon_playlist {\n    position: relative;\n    display: block;\n    width: 36rpx;\n    height: 36rpx;\n    margin: 0 -44rpx 0 8rpx;\n}\n.icon_playlist::after {\n  content: \"\";\n    position: absolute;\n    top: -100%;\n    left: -100%;\n    width: 300%;\n    height: 300%;\n}\n.singer_name {\n  margin: 0 40rpx 30rpx;\n  text-align: center;\n  overflow: hidden;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n  font-size: 14px;\n  color:grey;\n}\n.singer_name .item_name {\n  display: inline-block;\n}\n.song_info_bd {\n  position: relative;\n  /* height: 300rpx; */\n  height:80%;\n}\n.song_info_bd .album_cover {\n  position: absolute;\n  top: 0;\n  left: 50%;\n  z-index: 2;\n  width: 468rpx;\n  height: 468rpx;\n  margin-left: -234rpx;\n  box-shadow: 0 1rpx 4px rgba(0,0,0,.2);\n  display: none;\n}\n.album_cover__img {\n  position: absolute;\n  top: 0;\n  left: 0;\n  width: 100%;\n  height: 100%;\n  object-fit: cover;\n}\n.lyric {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 1;\n  display: -webkit-box;\n  -webkit-box-orient: vertical;\n  -webkit-box-pack: center;\n  -webkit-box-align: center;\n  width: 100%;\n  height: 100%;\n}\n.lyric .lyric__bd {\n  width: 100%;\n  /* height: 300rpx; */\n  height:100%;\n  overflow: hidden;\n  -webkit-mask: -webkit-linear-gradient(top,rgba(0,0,0,0),#fff 25%,#fff 75%,rgba(0,0,0,0));\n}\n.lyric__para {\n  line-height: 2;\n  margin: 0 40rpx;\n  text-align: center;\n  overflow: hidden;\n  white-space: normal;\n  text-overflow: ellipsis;\n  font-size: 15px;\n  /* color: #31c27c; */\n}\n/* .opt {\n  position: relative;\n  height:180rpx;\n}\n.opt__item {\n  position: absolute;\n  display: -webkit-box;\n  -webkit-box-pack: center;\n  -webkit-box-align: center;\n  width:80rpx;\n  height:80rpx;\n  margin: 0 40rpx;\n  border: solid 1px rgba(0,0,0,.2);\n  border-radius: 100%;\n  top:50%;\n  left:45%;\n  transform:translate(-50%,-50%);\n}\n.opt__icon {\n  display: block;\n  width: 44rpx;\n  height: 44rpx;\n  fill: #000;\n} */\n.opt {\n    display: -webkit-box;\n    -webkit-box-pack: center;\n    -webkit-box-align: center;\n    height: 180rpx;\n}\n.opt__item {\n    display: -webkit-box;\n    -webkit-box-pack: center;\n    -webkit-box-align: center;\n    width:76rpx;\n    height:76rpx;\n    margin: 0 40rpx;\n    /* border: solid 1px rgba(0,0,0,.2); */\n    border-radius: 100%;\n}\n.opt__icon {\n    display: block;\n    width: 64rpx;\n    height: 64rpx;\n    fill: #000;\n}\n.bg {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 1;\n  width: 100%;\n  height:750rpx;\n}\n.bg_img {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 2;\n  width: 100%;\n  height: 100%;\n  opacity: .06;\n  -webkit-transform: scale(1.2);\n}\n"
  },
  {
    "path": "pages/singer/singer.js",
    "content": "const app = getApp()\nPage({\n  data: {},\n  onLoad: function (option) {\n    wx.showLoading({\n      title: '加载中',\n    })\n    let disstid = option.disstid;\n    this.setData({\n      disstid: disstid\n    });\n    this.getSinger(disstid, 0);\n    wx.showShareMenu();\n  },\n  getSinger(dissitd, begin) {\n    wx.request({\n      url: '歌手详情API',\n      data: {},\n      success: (res) => {\n        var dataList = this.data.list,\n          data = res.data.data,\n          songids = this.data.songids,\n          songName = this.data.songName,\n          list = data.list;\n        if (parseInt(data.total - begin)< 15) {\n          this.setData({\n            havaMusic: false\n          })\n        } else {\n          this.setData({\n            havaMusic: true\n          })\n        }\n        if (dataList.list) {\n          dataList.list = dataList.list.concat(list);\n        } else {\n          dataList = data;\n        }\n        data.SingerDesc = data.SingerDesc.replace(/&#160;/g, '&nbsp;');\n        data.SingerDesc = data.SingerDesc.replace(/&#180;/g, \"'\");\n        data.SingerDesc = data.SingerDesc.replace(/<br>/g, \"\\n\");\n        for (var i = 0; i < list.length; i++) {\n          songids.push(parseInt(list[i].musicData.songid));\n          songName.push(list[i].musicData.songname);\n        }\n        this.setData({\n          list: dataList,\n          songids: songids,\n          songName: songName,\n          begin: begin\n        });\n        wx.hideLoading();\n      },\n      error: req => {\n        wx.showToast({\n          icon: 'none',\n          title: '哎呀！数据出错了，别急，程序猿正在加急修改中',\n        });\n      }\n    })\n  },\n  getMoreMusic: function () {\n    var disstid = this.data.disstid,\n      begin = this.data.begin;\n    begin = begin + 15;\n    this.getSinger(disstid, begin);\n  },\n  playAll() {\n    var songids = this.data.songids,\n      songName = this.data.songName;\n    wx.showLoading({\n      title: '加载中',\n    })\n    wx.setStorage({\n      key: 'song_id',\n      data: songids\n    });\n    wx.setStorage({\n      key: 'music_name',\n      data: songName,\n    });\n    wx.setStorage({\n      key: 'num',\n      data: 0,\n    });\n    app.globalData.shouldPlay = true;\n    // app.globalData.unload = false;\n    wx.switchTab({\n      url: '../playSong/playSong',\n    })\n  },\n  musicPlay(e){\n    var songids = this.data.songids,\n        songName = this.data.songName,\n      num = e.currentTarget.dataset.num;\n    wx.showLoading({\n      title: '加载中',\n    })\n    wx.setStorage({\n      key: 'song_id',\n      data: songids\n    });\n    wx.setStorage({\n      key: 'music_name',\n      data: songName,\n    });\n    wx.setStorage({\n      key: 'num',\n      data: num,\n    });\n    wx.setStorage({\n      key: 'labelid',\n      data: '',\n    });\n    app.globalData.shouldPlay = true;\n    // app.globalData.unload = false;\n    wx.switchTab({\n      url: '../playSong/playSong',\n    })\n  }\n})"
  },
  {
    "path": "pages/singer/singer.json",
    "content": "{\n  \"navigationBarTitleText\": \"HMusic\"\n}"
  },
  {
    "path": "pages/singer/singer.wxml",
    "content": "<view class=\"gedan\">\n  <view class=\"info_box\">\n    <view class=\"info_box__bd\">\n      <view class=\"album\">\n        <view class=\"album__media\">\n          <image wx:if=\"{{list.singer_mid}}\" src=\"https://y.gtimg.cn/music/photo_new/T001R150x150M000{{list.singer_mid}}.jpg?max_age=2592000\" class=\"album__cover\"></image>\n        </view>\n\n        <view class=\"album__bd\">\n          <view class=\"album__name\">\n            {{list.singer_name}}\n          </view>\n          <view class=\"fans_number\">\n            粉丝: {{list.fans}}人\n          </view>\n\n          <view class=\"album__desc\">\n          {{list.SingerDesc}}\n          </view>\n        </view>\n      </view>\n\n      <view class=\"opt_box\">\n        <view class=\"btn_play_all\" data-id=\"{{disstid}}\" bindtap='playAll'>\n          播放全部\n        </view>\n      </view>\n    </view>\n    <image wx:if=\"{{list.singer_mid}}\" src=\"https://y.gtimg.cn/music/photo_new/T001R150x150M000{{list.singer_mid}}.jpg?max_age=2592000\" class=\"info_box__bg\"></image>\n  </view>\n\n  <view class=\"wrap\">\n    <view class=\"main\">\n      <view class=\"count_box\">\n        <view class=\"count_box__desc\">\n          歌单 <view class=\"count_box__number\" style=\"display:inline-block;\">共{{list.total}}首</view>\n        </view>\n      </view>\n\n      <view class=\"qui_list\">\n        <block wx:for=\"{{list.list}}\" wx:key=\"{{list.list}}\">\n          <view style=\"opacity:{{item.musicData.alertid == 0? '0.5':'1'}};\" class=\"qui_list__item\" data-songid=\"{{item.musicData.songid}}\" data-num=\"{{index}}\" data-mid=\"{{item.musicData.songmid}}\" bindtap='musicPlay'>\n            <view class=\"qui_list__bd\">\n              <view class=\"qui_list__box\">\n                <view class=\"qui_list__tit\">\n                  {{item.musicData.songname}}\n                </view>\n                <view class=\"qui_list__desc\">\n                  {{list.singer_name}}{{item.musicData.albumdesc}}               \n                </view>\n              </view>\n            </view>\n          </view>\n        </block>\n      </view>\n\n      <view wx:if=\"{{havaMusic}}\" class=\"check_more\" bindtap='getMoreMusic'>点击加载更多歌曲</view>\n\n      <view class=\"qui_tit\">\n        <view class=\"qui_tit__text\">\n          歌手简介\n        </view>\n      </view>\n      <view class=\"intro\">\n        <text decode>\n        {{list.SingerDesc}}\n        </text>\n      </view>\n    </view>\n  </view>\n</view>"
  },
  {
    "path": "pages/singer/singer.wxss",
    "content": "page {\n  background: #fff;\n  color:#777;\n}\n.info_box {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 10;\n  width: 100%;\n  height: 480rpx;\n  overflow: hidden;\n  color: #fff;\n  background: #fff;\n}\n.info_box__bd {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 4;\n  display: -webkit-box;\n  -webkit-box-orient: vertical;\n  overflow: hidden;\n  background: rgba(0,0,0,.5);\n}\n.album {\n    display: -webkit-box;\n    -webkit-box-pack: center;\n    -webkit-box-align: center;\n    -webkit-box-sizing: border-box;\n    width: 100%;\n    margin-top: 34rpx;\n    padding: 0 32rpx;\n    overflow: hidden;\n}\n.album__media {\n  position: relative;\n  width: 250rpx;\n  margin-right: 20rpx;\n  overflow: hidden;\n}\n.album__cover {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 2;\n  width: 100%;\n  height: 100%;\n  object-fit: cover;\n}\n.album__media::after {\n  content: \"\";\n  display: block;\n  padding-top: 100%;\n}\n.album__bd {\n  position: relative;\n  -webkit-box-flex: 1;\n}\n.album__name {\n  display: -webkit-box;\n  -webkit-box-orient: vertical;\n  -webkit-line-clamp: 2;\n  max-height: 94rpx;\n  line-height: 1.3;\n  overflow: hidden;\n  font-size: 18px;\n  font-weight: 300;\n}\n.fans_number {\n  margin-top:16rpx;\n  font-size:28rpx;\n}\n.author {\n  display: -webkit-box;\n  -webkit-box-align: center;\n  margin-top: 16rpx;\n  overflow: hidden;\n}\n.author__avatar {\n  display: block;\n  width: 48rpx;\n  height: 48rpx;\n  margin-right: 16rpx;\n  border-radius: 48rpx;\n}\n.author__bd {\n  -webkit-box-flex: 1;\n}\n.author__name {\n  display: block;\n  width: 100%;\n  overflow: hidden;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n  font-size: 14px;\n  color: #fff;\n}\n.album__desc {\n  display: -webkit-box;\n  -webkit-box-orient: vertical;\n  -webkit-line-clamp: 2;\n  max-height: 72rpx;\n  overflow: hidden;\n  margin-top: 16rpx;\n  font-size: 12px;\n}\n.opt_box {\n  display: -webkit-box;\n  -webkit-box-pack: center;\n  -webkit-box-align: center;\n  height: 196rpx;\n  padding: 0 32rpx;\n  -webkit-transition: 1s ease-in-out;\n}\n.btn_play_all {\n  display: -webkit-box;\n  -webkit-box-pack: center;\n  -webkit-box-align: center;\n  min-width: 260rpx;\n  padding: 0 40rpx;\n  height: 80rpx;\n  overflow: hidden;\n  text-align: center;\n  font-size: 16px;\n  color: #fff;\n  border-radius: 40rpx;\n  background: #31c27c;\n}\n.btn_play_all::before {\n  content: \"\";\n  display: block;\n  height: 0;\n  width: 0;\n  margin-right: -6rpx;\n  border-color: transparent transparent transparent #fff;\n  border-width: 14rpx 22rpx;\n  border-style: solid;\n  border-radius: 4rpx;\n}\n.info_box__bg {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 3;\n  width: 100%;\n  height: 100%;\n  object-fit: cover;\n  -webkit-transform: scale(1.1) translateZ(0);\n  -webkit-filter: blur(36px);\n}\n.wrap {\n  /* position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 2;\n  padding-bottom: 0; */\n  overflow: hidden;\n}\n.main {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 2;\n  width: 100%;\n  padding-top: 480rpx;\n  padding-bottom: 100rpx;\n  overflow: hidden;\n  will-change: transform;\n  -webkit-transform: translateZ(0);\n}\n.count_box {\n  position: relative;\n  display: -webkit-box;\n  -webkit-box-align: center;\n  height: 108rpx;\n  margin: 0 32rpx -20rpx;\n}\n.count_box__desc {\n  font-size: 14px;\n}\n.count_box__number {\n  margin-left: 10rpx;\n}\n.qui_list {\n  overflow: hidden;\n}\n.qui_list__item {\n  position: relative;\n  display: -webkit-box;\n}\n.qui_list__bd {\n  position: relative;\n  -webkit-box-flex: 1;\n  display: -webkit-box;\n  -webkit-box-align: center;\n  padding: 20rpx 32rpx;\n  overflow: hidden;\n}\n.qui_list__box {\n  -webkit-box-flex: 1;\n  display: -webkit-box;\n  -webkit-box-orient: vertical;\n}\n.qui_list__tit {\n  font-size: 16px;\n  color: #000;\n  display: -webkit-box;\n  -webkit-box-align: center;\n  overflow: hidden;\n  max-width: 100%;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n}\n.qui_list__desc{\n  display: -webkit-box;\n  -webkit-box-align: center;\n  overflow: hidden;\n  font-size:12px;\n}\n.qui_list__txt {\n  display: block;\n  max-width: 100%;\n  overflow: hidden;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n  font-size:16px;\n}\n.check_more {\n  display: -webkit-box;\n  -webkit-box-pack: center;\n  -webkit-box-align: center;\n  height: 64rpx;\n  margin-bottom: 30rpx;\n  font-size: 28rpx;\n}\n.qui_tit {\n  position: relative;\n  display: -webkit-box;\n  -webkit-box-orient: vertical;\n  -webkit-box-pack: center;\n  -webkit-box-align: center;\n  height: 110rpx;\n  padding: 0 80rpx;\n  overflow: hidden;\n  text-align: center;\n}\n.intro {\n  position: relative;\n  margin: 0 32rpx 40rpx;\n  overflow: hidden;\n  text-align: justify;\n  word-wrap: break-word;\n  font-size: 14px;\n}"
  },
  {
    "path": "pages/top/top.js",
    "content": "const app = getApp()\nPage({\n  data: {},\n  onLoad: function (option) {\n    wx.showLoading({\n      title: '加载中',\n    })\n    let disstid = option.disstid;\n    this.setData({\n      disstid: disstid\n    });\n    this.getSinger(disstid);\n    wx.showShareMenu();\n  },\n  getSinger(dissitd) {\n    wx.request({\n      url: '歌单API',\n      data: {},\n      success: (res) => {\n        var dataList = this.data.list,\n          data = res.data,\n          songids = this.data.songids,\n          songName = this.data.songName,\n          list = data.songlist;\n          \n        data.topinfo.info = data.topinfo.info.replace(/&#160;/g, '&nbsp;');\n        data.topinfo.info = data.topinfo.info.replace(/&#180;/g, \"'\");\n        data.topinfo.info = data.topinfo.info.replace(/<br>/g, \"\\n\");\n        for (var i = 0; i < list.length; i++) {\n          songids.push(parseInt(list[i].data.songid));\n          songName.push(list[i].data.songname);\n        }\n        if (data.day_of_year == '') {\n          data.date = data.date.split('_')[1];\n        }\n        dataList = data;\n        this.setData({\n          list: dataList,\n          songids: songids,\n          songName: songName\n        });\n        // this.MusicFcg();\n        wx.hideLoading();\n      },\n      error: req => {\n        wx.showToast({\n          icon: 'none',\n          title: '哎呀！数据出错了，别急，程序猿正在加急修改中',\n        });\n      }\n    })\n  },\n  playAll() {\n    var songids = this.data.songids,\n      songName = this.data.songName;\n    wx.showLoading({\n      title: '加载中',\n    })\n    wx.setStorage({\n      key: 'song_id',\n      data: songids\n    });\n    wx.setStorage({\n      key: 'music_name',\n      data: songName,\n    });\n    wx.setStorage({\n      key: 'num',\n      data: 0,\n    });\n    app.globalData.shouldPlay = true;\n    // app.globalData.unload = true;\n    wx.switchTab({\n      url: '../playSong/playSong',\n    })\n  },\n  musicPlay(e) {\n    var songids = this.data.songids,\n      songName = this.data.songName,\n      num = e.currentTarget.dataset.num;\n    wx.showLoading({\n      title: '加载中',\n    })\n      wx.setStorage({\n        key: 'song_id',\n        data: songids\n      });\n      wx.setStorage({\n        key: 'music_name',\n        data: songName,\n      });\n      wx.setStorage({\n        key: 'num',\n        data: num,\n      });\n      wx.setStorage({\n        key: 'labelid',\n        data: '',\n      });\n      app.globalData.shouldPlay = true;\n    // app.globalData.unload = true;\n      wx.switchTab({\n        url: '../playSong/playSong',\n      })\n  }\n})"
  },
  {
    "path": "pages/top/top.json",
    "content": "{\n  \"navigationBarTitleText\": \"HMusic\"\n}"
  },
  {
    "path": "pages/top/top.wxml",
    "content": "<view class=\"gedan\">\n  <view class=\"info_box\">\n    <view class=\"info_box__bd\">\n      <view class=\"album\">\n        <view class=\"album__media\">\n          <image wx:if=\"{{list.songlist[0].data.albummid}}\" src=\"https://y.gtimg.cn/music/photo_new/T002R300x300M000{{list.songlist[0].data.albummid}}.jpg?max_age=2592000\" class=\"album__cover\"></image>\n        </view>\n        <view class=\"album__bd\">\n          <view class=\"album__name\">\n            {{list.topinfo.ListName}}\n          </view>\n          <view class=\"fans_number\" wx:if=\"{{list.day_of_year != ''}}\">\n            第{{list.day_of_year}}天\n          </view>\n          <view class=\"fans_number\" wx:else>\n            第{{list.date}}周\n          </view>\n          <view class=\"album__desc\">\n          {{list.topinfo.info}}\n          </view>\n        </view>\n      </view>\n\n      <view class=\"opt_box\">\n        <view class=\"btn_play_all\" data-id=\"{{disstid}}\" bindtap='playAll'>\n          播放全部\n        </view>\n      </view>\n    </view>\n    <image wx:if=\"{{list.songlist[0].data.albummid}}\" src=\"https://y.gtimg.cn/music/photo_new/T002R300x300M000{{list.songlist[0].data.albummid}}.jpg?max_age=2592000\" class=\"info_box__bg\"></image>\n  </view>\n\n  <view class=\"wrap\">\n    <view class=\"main\">\n      <view class=\"count_box\">\n        <view class=\"count_box__desc\">\n          排行榜 <view class=\"count_box__number\" style=\"display:inline-block;\">共{{list.cur_song_num}}首</view>\n        </view>\n      </view>\n\n      <view class=\"qui_list\">\n        <block wx:for=\"{{list.songlist}}\" wx:key=\"{{list.songlist}}\">\n          <view style=\"opacity:{{item.data.alertid == 0? '0.5':'1'}};\" class=\"qui_list__item\" data-songid=\"{{item.data.songid}}\" data-num=\"{{index}}\" data-mid=\"{{item.data.songmid}}\" bindtap='musicPlay'>\n          <view class=\"qui_list__order\" style=\"color:{{index < 3 ? '#FF400B':''}};\">{{index + 1}}</view>\n            <view class=\"qui_list__bd\">\n              <view class=\"qui_list__box\">\n                <view class=\"qui_list__tit\">\n                  {{item.data.songname}}\n                </view>\n                <view class=\"qui_list__desc\">\n                  <view style=\"display:inline-block;\" wx:for=\"{{item.data.singer}}\" wx:key=\"{{item.data.singer}}\" wx:for-item=\"singer\" wx:for-index=\"singerNum\">\n                    {{singerNum > 0 ? ' / ' : ''}}{{singer.name}} \n                  </view>· {{item.data.albumdesc}}\n                </view>\n              </view>\n            </view>\n          </view>\n        </block>\n      </view>\n\n      <!-- <view wx:if=\"{{havaMusic}}\" class=\"check_more\" bindtap='getMoreMusic'>点击加载更多歌曲</view> -->\n\n      <view class=\"qui_tit\">\n        <view class=\"qui_tit__text\">\n          简介\n        </view>\n      </view>\n      <view class=\"intro\">\n        <text decode>\n        {{list.topinfo.info}}\n        </text>\n      </view>\n    </view>\n  </view>\n</view>"
  },
  {
    "path": "pages/top/top.wxss",
    "content": "page {\n  background: #fff;\n  color:#777;\n}\n.info_box {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 10;\n  width: 100%;\n  height: 480rpx;\n  overflow: hidden;\n  color: #fff;\n  background: #fff;\n}\n.info_box__bd {\n  position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 4;\n  display: -webkit-box;\n  -webkit-box-orient: vertical;\n  overflow: hidden;\n  background: rgba(0,0,0,.5);\n}\n.album {\n    display: -webkit-box;\n    -webkit-box-pack: center;\n    -webkit-box-align: center;\n    -webkit-box-sizing: border-box;\n    width: 100%;\n    margin-top: 34rpx;\n    padding: 0 32rpx;\n    overflow: hidden;\n}\n.album__media {\n  position: relative;\n  width: 250rpx;\n  margin-right: 20rpx;\n  overflow: hidden;\n}\n.album__cover {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 2;\n  width: 100%;\n  height: 100%;\n  object-fit: cover;\n}\n.album__media::after {\n  content: \"\";\n  display: block;\n  padding-top: 100%;\n}\n.album__bd {\n  position: relative;\n  -webkit-box-flex: 1;\n}\n.album__name {\n  display: -webkit-box;\n  -webkit-box-orient: vertical;\n  -webkit-line-clamp: 2;\n  max-height: 94rpx;\n  line-height: 1.3;\n  overflow: hidden;\n  font-size: 18px;\n  font-weight: 300;\n}\n.fans_number {\n  margin-top:16rpx;\n  font-size:28rpx;\n}\n.author {\n  display: -webkit-box;\n  -webkit-box-align: center;\n  margin-top: 16rpx;\n  overflow: hidden;\n}\n.author__avatar {\n  display: block;\n  width: 48rpx;\n  height: 48rpx;\n  margin-right: 16rpx;\n  border-radius: 48rpx;\n}\n.author__bd {\n  -webkit-box-flex: 1;\n}\n.author__name {\n  display: block;\n  width: 100%;\n  overflow: hidden;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n  font-size: 14px;\n  color: #fff;\n}\n.album__desc {\n  display: -webkit-box;\n  -webkit-box-orient: vertical;\n  -webkit-line-clamp: 2;\n  max-height: 72rpx;\n  overflow: hidden;\n  margin-top: 16rpx;\n  font-size: 12px;\n}\n.opt_box {\n  display: -webkit-box;\n  -webkit-box-pack: center;\n  -webkit-box-align: center;\n  height: 196rpx;\n  padding: 0 32rpx;\n  -webkit-transition: 1s ease-in-out;\n}\n.btn_play_all {\n  display: -webkit-box;\n  -webkit-box-pack: center;\n  -webkit-box-align: center;\n  min-width: 260rpx;\n  padding: 0 40rpx;\n  height: 80rpx;\n  overflow: hidden;\n  text-align: center;\n  font-size: 16px;\n  color: #fff;\n  border-radius: 40rpx;\n  background: #31c27c;\n}\n.btn_play_all::before {\n  content: \"\";\n  display: block;\n  height: 0;\n  width: 0;\n  margin-right: -6rpx;\n  border-color: transparent transparent transparent #fff;\n  border-width: 14rpx 22rpx;\n  border-style: solid;\n  border-radius: 4rpx;\n}\n.info_box__bg {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 3;\n  width: 100%;\n  height: 100%;\n  object-fit: cover;\n  -webkit-transform: scale(1.1) translateZ(0);\n  -webkit-filter: blur(36px);\n}\n.wrap {\n  /* position: absolute;\n  top: 0;\n  right: 0;\n  bottom: 0;\n  left: 0;\n  z-index: 2;\n  padding-bottom: 0; */\n  overflow: hidden;\n}\n.main {\n  position: absolute;\n  top: 0;\n  left: 0;\n  z-index: 2;\n  width: 100%;\n  padding-top: 480rpx;\n  padding-bottom: 100rpx;\n  overflow: hidden;\n  will-change: transform;\n  -webkit-transform: translateZ(0);\n}\n.count_box {\n  position: relative;\n  display: -webkit-box;\n  -webkit-box-align: center;\n  height: 108rpx;\n  margin: 0 32rpx -20rpx;\n}\n.count_box__desc {\n  font-size: 14px;\n}\n.count_box__number {\n  margin-left: 10rpx;\n}\n.qui_list {\n  overflow: hidden;\n}\n.qui_list__item {\n  position: relative;\n  display: -webkit-box;\n}\n.qui_list__order {\n  display: -webkit-box;\n  -webkit-box-orient: vertical;\n  -webkit-box-pack: center;\n  -webkit-box-align: center;\n  width: 90rpx;\n  margin-right: -32rpx;\n  font-size: 32rpx;\n}\n.qui_list__bd {\n  position: relative;\n  -webkit-box-flex: 1;\n  display: -webkit-box;\n  -webkit-box-align: center;\n  padding: 20rpx 32rpx;\n  overflow: hidden;\n}\n.qui_list__box {\n  -webkit-box-flex: 1;\n  display: -webkit-box;\n  -webkit-box-orient: vertical;\n}\n.qui_list__tit {\n  font-size: 16px;\n  color: #000;\n  display: -webkit-box;\n  -webkit-box-align: center;\n  overflow: hidden;\n  max-width: 94%;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n}\n.qui_list__desc{\n  display: -webkit-box;\n  -webkit-box-align: center;\n  overflow: hidden;\n  font-size:12px;\n}\n.qui_list__txt {\n  display: block;\n  max-width: 100%;\n  overflow: hidden;\n  white-space: nowrap;\n  text-overflow: ellipsis;\n  font-size:16px;\n}\n.check_more {\n  display: -webkit-box;\n  -webkit-box-pack: center;\n  -webkit-box-align: center;\n  height: 64rpx;\n  margin-bottom: 30rpx;\n  font-size: 28rpx;\n}\n.qui_tit {\n  position: relative;\n  display: -webkit-box;\n  -webkit-box-orient: vertical;\n  -webkit-box-pack: center;\n  -webkit-box-align: center;\n  height: 110rpx;\n  padding: 0 80rpx;\n  overflow: hidden;\n  text-align: center;\n}\n.intro {\n  position: relative;\n  margin: 0 32rpx 40rpx;\n  overflow: hidden;\n  text-align: justify;\n  word-wrap: break-word;\n  font-size: 14px;\n}"
  },
  {
    "path": "project.config.json",
    "content": "{\n\t\"description\": \"项目配置文件\",\n\t\"packOptions\": {\n\t\t\"ignore\": []\n\t},\n\t\"setting\": {\n\t\t\"urlCheck\": true,\n\t\t\"es6\": true,\n\t\t\"postcss\": true,\n\t\t\"minified\": true,\n\t\t\"newFeature\": true,\n\t\t\"autoAudits\": false\n\t},\n\t\"compileType\": \"miniprogram\",\n\t\"libVersion\": \"2.5.1\",\n\t\"appid\": \"wxbc620d9c9d303f95\",\n\t\"projectname\": \"weChatApp-HMusic\",\n\t\"debugOptions\": {\n\t\t\"hidedInDevtools\": []\n\t},\n\t\"isGameTourist\": false,\n\t\"condition\": {\n\t\t\"search\": {\n\t\t\t\"current\": -1,\n\t\t\t\"list\": []\n\t\t},\n\t\t\"conversation\": {\n\t\t\t\"current\": -1,\n\t\t\t\"list\": []\n\t\t},\n\t\t\"game\": {\n\t\t\t\"currentL\": -1,\n\t\t\t\"list\": []\n\t\t},\n\t\t\"miniprogram\": {\n\t\t\t\"current\": -1,\n\t\t\t\"list\": []\n\t\t}\n\t}\n}"
  },
  {
    "path": "utils/util.js",
    "content": "const formatTime = date => {\n  const year = date.getFullYear()\n  const month = date.getMonth() + 1\n  const day = date.getDate()\n  const hour = date.getHours()\n  const minute = date.getMinutes()\n  const second = date.getSeconds()\n\n  return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(':')\n}\n\nconst formatNumber = n => {\n  n = n.toString()\n  return n[1] ? n : '0' + n\n}\n\nmodule.exports = {\n  formatTime: formatTime\n}\n"
  },
  {
    "path": "weui.wxss",
    "content": "/*!\n * WeUI v1.1.1 (https://github.com/weui/weui-wxss)\n * Copyright 2017 Tencent, Inc.\n * Licensed under the MIT license\n */\npage{line-height:1.6;font-family:-apple-system-font,Helvetica Neue,sans-serif}icon{vertical-align:middle}.weui-cells{position:relative;margin-top:1.17647059em;background-color:#fff;line-height:1.41176471;font-size:17px}.weui-cells:before{top:0;border-top:1rpx solid #d9d9d9}.weui-cells:after,.weui-cells:before{content:\" \";position:absolute;left:0;right:0;height:1px;color:#d9d9d9}.weui-cells:after{bottom:0;border-bottom:1rpx solid #d9d9d9}.weui-cells__title{margin-top:.77em;margin-bottom:.3em;padding-left:15px;padding-right:15px;color:#999;font-size:14px}.weui-cells_after-title{margin-top:0}.weui-cells__tips{margin-top:.3em;color:#999;padding-left:15px;padding-right:15px;font-size:14px}.weui-cell{padding:10px 15px;position:relative;display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.weui-cell:before{content:\" \";position:absolute;left:0;top:0;right:0;height:1px;border-top:1rpx solid #d9d9d9;color:#d9d9d9;left:15px}.weui-cell:first-child:before{display:none}.weui-cell_active{background-color:#ececec}.weui-cell_primary{-webkit-box-align:start;-webkit-align-items:flex-start;align-items:flex-start}.weui-cell__bd{-webkit-box-flex:1;-webkit-flex:1;flex:1}.weui-cell__ft{text-align:right;color:#999}.weui-cell_access{color:inherit}.weui-cell__ft_in-access{padding-right:13px;position:relative}.weui-cell__ft_in-access:after{content:\" \";display:inline-block;height:6px;width:6px;border-width:2px 2px 0 0;border-color:#c8c8cd;border-style:solid;-webkit-transform:matrix(.71,.71,-.71,.71,0,0);transform:matrix(.71,.71,-.71,.71,0,0);position:relative;top:-2px;position:absolute;top:50%;margin-top:-4px;right:2px}.weui-cell_link{color:#586c94;font-size:14px}.weui-cell_link:active{background-color:#ececec}.weui-cell_link:first-child:before{display:block}.weui-icon-radio{margin-left:3.2px;margin-right:3.2px}.weui-icon-checkbox_circle,.weui-icon-checkbox_success{margin-left:4.6px;margin-right:4.6px}.weui-check__label:active{background-color:#ececec}.weui-check{position:absolute;left:-9999px}.weui-check__hd_in-checkbox{padding-right:.35em}.weui-cell__ft_in-radio{padding-left:.35em}.weui-cell_input{padding-top:0;padding-bottom:0}.weui-label{width:105px;word-wrap:break-word;word-break:break-all}.weui-input{height:2.58823529em;min-height:2.58823529em;line-height:2.58823529em}.weui-toptips{position:fixed;-webkit-transform:translateZ(0);transform:translateZ(0);top:0;left:0;right:0;padding:5px;font-size:14px;text-align:center;color:#fff;z-index:5000;word-wrap:break-word;word-break:break-all}.weui-toptips_warn{background-color:#e64340}.weui-textarea{display:block;width:100%}.weui-textarea-counter{color:#b2b2b2;text-align:right}.weui-cell_warn,.weui-textarea-counter_warn{color:#e64340}.weui-form-preview{position:relative;background-color:#fff}.weui-form-preview:before{top:0;border-top:1rpx solid #d9d9d9}.weui-form-preview:after,.weui-form-preview:before{content:\" \";position:absolute;left:0;right:0;height:1px;color:#d9d9d9}.weui-form-preview:after{bottom:0;border-bottom:1rpx solid #d9d9d9}.weui-form-preview__value{font-size:14px}.weui-form-preview__value_in-hd{font-size:26px}.weui-form-preview__hd{position:relative;padding:10px 15px;text-align:right;line-height:2.5em}.weui-form-preview__hd:after{content:\" \";position:absolute;left:0;bottom:0;right:0;height:1px;border-bottom:1rpx solid #d9d9d9;color:#d9d9d9;left:15px}.weui-form-preview__bd{padding:10px 15px;font-size:.9em;text-align:right;color:#999;line-height:2}.weui-form-preview__ft{position:relative;line-height:50px;display:-webkit-box;display:-webkit-flex;display:flex}.weui-form-preview__ft:after{content:\" \";position:absolute;left:0;top:0;right:0;height:1px;border-top:1rpx solid #d5d5d6;color:#d5d5d6}.weui-form-preview__item{overflow:hidden}.weui-form-preview__label{float:left;margin-right:1em;min-width:4em;color:#999;text-align:justify;text-align-last:justify}.weui-form-preview__value{display:block;overflow:hidden;word-break:normal;word-wrap:break-word}.weui-form-preview__btn{position:relative;display:block;-webkit-box-flex:1;-webkit-flex:1;flex:1;color:#3cc51f;text-align:center}.weui-form-preview__btn:after{content:\" \";position:absolute;left:0;top:0;width:1px;bottom:0;border-left:1rpx solid #d5d5d6;color:#d5d5d6}.weui-form-preview__btn:first-child:after{display:none}.weui-form-preview__btn_active{background-color:#eee}.weui-form-preview__btn_default{color:#999}.weui-form-preview__btn_primary{color:#0bb20c}.weui-cell_select{padding:0}.weui-select{position:relative;padding-left:15px;padding-right:30px;height:2.58823529em;min-height:2.58823529em;line-height:2.58823529em;border-right:1rpx solid #d9d9d9}.weui-select:before{content:\" \";display:inline-block;height:6px;width:6px;border-width:2px 2px 0 0;border-color:#c8c8cd;border-style:solid;-webkit-transform:matrix(.71,.71,-.71,.71,0,0);transform:matrix(.71,.71,-.71,.71,0,0);position:relative;top:-2px;position:absolute;top:50%;right:15px;margin-top:-4px}.weui-select_in-select-after{padding-left:0}.weui-cell__bd_in-select-before,.weui-cell__hd_in-select-after{padding-left:15px}.weui-cell_vcode{padding-right:0}.weui-vcode-btn,.weui-vcode-img{margin-left:5px;height:2.58823529em;vertical-align:middle}.weui-vcode-btn{display:inline-block;padding:0 .6em 0 .7em;border-left:1px solid #e5e5e5;line-height:2.58823529em;font-size:17px;color:#3cc51f;white-space:nowrap}.weui-vcode-btn:active{color:#52a341}.weui-cell_switch{padding-top:6px;padding-bottom:6px}.weui-uploader__hd{display:-webkit-box;display:-webkit-flex;display:flex;padding-bottom:10px;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.weui-uploader__title{-webkit-box-flex:1;-webkit-flex:1;flex:1}.weui-uploader__info{color:#b2b2b2}.weui-uploader__bd{margin-bottom:-4px;margin-right:-9px;overflow:hidden}.weui-uploader__file{float:left;margin-right:9px;margin-bottom:9px}.weui-uploader__img{display:block;width:79px;height:79px}.weui-uploader__file_status{position:relative}.weui-uploader__file_status:before{content:\" \";position:absolute;top:0;right:0;bottom:0;left:0;background-color:rgba(0,0,0,.5)}.weui-uploader__file-content{position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);color:#fff}.weui-uploader__input-box{float:left;position:relative;margin-right:9px;margin-bottom:9px;width:77px;height:77px;border:1px solid #d9d9d9}.weui-uploader__input-box:after,.weui-uploader__input-box:before{content:\" \";position:absolute;top:50%;left:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);background-color:#d9d9d9}.weui-uploader__input-box:before{width:2px;height:39.5px}.weui-uploader__input-box:after{width:39.5px;height:2px}.weui-uploader__input-box:active{border-color:#999}.weui-uploader__input-box:active:after,.weui-uploader__input-box:active:before{background-color:#999}.weui-uploader__input{position:absolute;z-index:1;top:0;left:0;width:100%;height:100%;opacity:0}.weui-article{padding:20px 15px;font-size:15px}.weui-article__section{margin-bottom:1.5em}.weui-article__h1{font-size:18px;font-weight:400;margin-bottom:.9em}.weui-article__h2{font-size:16px;font-weight:400;margin-bottom:.34em}.weui-article__h3{font-weight:400;font-size:15px;margin-bottom:.34em}.weui-article__p{margin:0 0 .8em}.weui-msg{padding-top:36px;text-align:center}.weui-msg__link{display:inline;color:#586c94}.weui-msg__icon-area{margin-bottom:30px}.weui-msg__text-area{margin-bottom:25px;padding:0 20px}.weui-msg__title{margin-bottom:5px;font-weight:400;font-size:20px}.weui-msg__desc{font-size:14px;color:#999}.weui-msg__opr-area{margin-bottom:25px}.weui-msg__extra-area{margin-bottom:15px;font-size:14px;color:#999}@media screen and (min-height:438px){.weui-msg__extra-area{position:fixed;left:0;bottom:0;width:100%;text-align:center}}.weui-flex{display:-webkit-box;display:-webkit-flex;display:flex}.weui-flex__item{-webkit-box-flex:1;-webkit-flex:1;flex:1}.weui-btn{margin-top:15px}.weui-btn:first-child{margin-top:0}.weui-btn-area{margin:1.17647059em 15px .3em}.weui-agree{display:block;padding:.5em 15px;font-size:13px}.weui-agree__text{color:#999}.weui-agree__link{display:inline;color:#586c94}.weui-agree__checkbox{position:absolute;left:-9999px}.weui-agree__checkbox-icon{position:relative;top:2px;display:inline-block;border:1px solid #d1d1d1;background-color:#fff;border-radius:3px;width:11px;height:11px}.weui-agree__checkbox-icon-check{position:absolute;top:1px;left:1px}.weui-footer{color:#999;font-size:14px;text-align:center}.weui-footer_fixed-bottom{position:fixed;bottom:.52em;left:0;right:0}.weui-footer__links{font-size:0}.weui-footer__link{display:inline-block;vertical-align:top;margin:0 .62em;position:relative;font-size:14px;color:#586c94}.weui-footer__link:before{content:\" \";position:absolute;left:0;top:0;width:1px;bottom:0;border-left:1rpx solid #c7c7c7;color:#c7c7c7;left:-.65em;top:.36em;bottom:.36em}.weui-footer__link:first-child:before{display:none}.weui-footer__text{padding:0 .34em;font-size:12px}.weui-grids{border-top:1rpx solid #d9d9d9;border-left:1rpx solid #d9d9d9;overflow:hidden}.weui-grid{position:relative;float:left;padding:20px 10px;width:33.33333333%;box-sizing:border-box;border-right:1rpx solid #d9d9d9;border-bottom:1rpx solid #d9d9d9}.weui-grid_active{background-color:#ececec}.weui-grid__icon{display:block;width:28px;height:28px;margin:0 auto}.weui-grid__label{margin-top:5px;display:block;text-align:center;color:#000;font-size:14px;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.weui-loading{margin:0 5px;width:20px;height:20px;display:inline-block;vertical-align:middle;-webkit-animation:a 1s steps(12) infinite;animation:a 1s steps(12) infinite;background:transparent url(data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMjAiIGhlaWdodD0iMTIwIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgxMDB2MTAwSDB6Ii8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTlFOUU5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAgLTMwKSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iIzk4OTY5NyIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgzMCAxMDUuOTggNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjOUI5OTlBIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDYwIDc1Ljk4IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0EzQTFBMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSg5MCA2NSA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNBQkE5QUEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoMTIwIDU4LjY2IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0IyQjJCMiIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgxNTAgNTQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjQkFCOEI5IiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKDE4MCA1MCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDMkMwQzEiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTE1MCA0NS45OCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNDQkNCQ0IiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTEyMCA0MS4zNCA2NSkiLz48cmVjdCB3aWR0aD0iNyIgaGVpZ2h0PSIyMCIgeD0iNDYuNSIgeT0iNDAiIGZpbGw9IiNEMkQyRDIiIHJ4PSI1IiByeT0iNSIgdHJhbnNmb3JtPSJyb3RhdGUoLTkwIDM1IDY1KSIvPjxyZWN0IHdpZHRoPSI3IiBoZWlnaHQ9IjIwIiB4PSI0Ni41IiB5PSI0MCIgZmlsbD0iI0RBREFEQSIgcng9IjUiIHJ5PSI1IiB0cmFuc2Zvcm09InJvdGF0ZSgtNjAgMjQuMDIgNjUpIi8+PHJlY3Qgd2lkdGg9IjciIGhlaWdodD0iMjAiIHg9IjQ2LjUiIHk9IjQwIiBmaWxsPSIjRTJFMkUyIiByeD0iNSIgcnk9IjUiIHRyYW5zZm9ybT0icm90YXRlKC0zMCAtNS45OCA2NSkiLz48L3N2Zz4=) no-repeat;background-size:100%}.weui-loading.weui-loading_transparent{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 100 100'%3E%3Cpath fill='none' d='M0 0h100v100H0z'/%3E%3Crect xmlns='http://www.w3.org/2000/svg' width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.56)' rx='5' ry='5' transform='translate(0 -30)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.5)' rx='5' ry='5' transform='rotate(30 105.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.43)' rx='5' ry='5' transform='rotate(60 75.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.38)' rx='5' ry='5' transform='rotate(90 65 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.32)' rx='5' ry='5' transform='rotate(120 58.66 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.28)' rx='5' ry='5' transform='rotate(150 54.02 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.25)' rx='5' ry='5' transform='rotate(180 50 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.2)' rx='5' ry='5' transform='rotate(-150 45.98 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.17)' rx='5' ry='5' transform='rotate(-120 41.34 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.14)' rx='5' ry='5' transform='rotate(-90 35 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.1)' rx='5' ry='5' transform='rotate(-60 24.02 65)'/%3E%3Crect width='7' height='20' x='46.5' y='40' fill='rgba(255,255,255,.03)' rx='5' ry='5' transform='rotate(-30 -5.98 65)'/%3E%3C/svg%3E\")}@-webkit-keyframes a{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes a{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.weui-badge{display:inline-block;padding:.15em .4em;min-width:8px;border-radius:18px;background-color:#e64340;color:#fff;line-height:1.2;text-align:center;font-size:12px;vertical-align:middle}.weui-badge_dot{padding:.4em;min-width:0}.weui-loadmore{width:65%;margin:1.5em auto;line-height:1.6em;font-size:14px;text-align:center}.weui-loadmore__tips{display:inline-block;vertical-align:middle}.weui-loadmore_line{border-top:1px solid #e5e5e5;margin-top:2.4em}.weui-loadmore__tips_in-line{position:relative;top:-.9em;padding:0 .55em;background-color:#fff;color:#999}.weui-loadmore__tips_in-dot{position:relative;padding:0 .16em;width:4px;height:1.6em}.weui-loadmore__tips_in-dot:before{content:\" \";position:absolute;top:50%;left:50%;margin-top:-1px;margin-left:-2px;width:4px;height:4px;border-radius:50%;background-color:#e5e5e5}.weui-panel{background-color:#fff;margin-top:10px;position:relative;overflow:hidden}.weui-panel:first-child{margin-top:0}.weui-panel:before{top:0;border-top:1rpx solid #e5e5e5}.weui-panel:after,.weui-panel:before{content:\" \";position:absolute;left:0;right:0;height:1px;color:#e5e5e5}.weui-panel:after{bottom:0;border-bottom:1rpx solid #e5e5e5}.weui-panel__hd{padding:14px 15px 10px;color:#999;font-size:13px;position:relative}.weui-panel__hd:after{content:\" \";position:absolute;left:0;bottom:0;right:0;height:1px;border-bottom:1rpx solid #e5e5e5;color:#e5e5e5;left:15px}.weui-media-box{padding:15px;position:relative}.weui-media-box:before{content:\" \";position:absolute;left:0;top:0;right:0;height:1px;border-top:1rpx solid #e5e5e5;color:#e5e5e5;left:15px}.weui-media-box:first-child:before{display:none}.weui-media-box__title{font-weight:400;font-size:17px;width:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-wrap:normal;word-wrap:break-word;word-break:break-all}.weui-media-box__desc{color:#999;font-size:13px;line-height:1.2;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.weui-media-box__info{margin-top:15px;padding-bottom:5px;font-size:13px;color:#cecece;line-height:1em;list-style:none;overflow:hidden}.weui-media-box__info__meta{float:left;padding-right:1em}.weui-media-box__info__meta_extra{padding-left:1em;border-left:1px solid #cecece}.weui-media-box__title_in-text{margin-bottom:8px}.weui-media-box_appmsg{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.weui-media-box__thumb{width:100%;height:100%;vertical-align:top}.weui-media-box__hd_in-appmsg{margin-right:.8em;width:60px;height:60px;line-height:60px;text-align:center}.weui-media-box__bd_in-appmsg{-webkit-box-flex:1;-webkit-flex:1;flex:1;min-width:0}.weui-media-box_small-appmsg{padding:0}.weui-cells_in-small-appmsg{margin-top:0}.weui-cells_in-small-appmsg:before{display:none}.weui-progress{display:-webkit-box;display:-webkit-flex;display:flex;-webkit-box-align:center;-webkit-align-items:center;align-items:center}.weui-progress__bar{-webkit-box-flex:1;-webkit-flex:1;flex:1}.weui-progress__opr{margin-left:15px;font-size:0}.weui-navbar{display:-webkit-box;display:-webkit-flex;display:flex;position:absolute;z-index:500;top:0;width:100%;border-bottom:1rpx solid #ccc}.weui-navbar__item{position:relative;display:block;-webkit-box-flex:1;-webkit-flex:1;flex:1;padding:13px 0;text-align:center;font-size:0}.weui-navbar__item.weui-bar__item_on{color:#1aad19}.weui-navbar__slider{position:absolute;content:\" \";left:0;bottom:0;width:6em;height:3px;background-color:#1aad19;-webkit-transition:-webkit-transform .3s;transition:-webkit-transform .3s;transition:transform .3s;transition:transform .3s,-webkit-transform .3s}.weui-navbar__title{display:inline-block;font-size:15px;max-width:8em;width:auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;word-wrap:normal}.weui-tab{position:relative;height:100%}.weui-tab__panel{box-sizing:border-box;height:100%;padding-top:50px;overflow:auto;-webkit-overflow-scrolling:touch}.weui-search-bar{position:relative;padding:8px 10px;display:-webkit-box;display:-webkit-flex;display:flex;box-sizing:border-box;background-color:#efeff4;border-top:1rpx solid #d7d6dc;border-bottom:1rpx solid #d7d6dc}.weui-icon-search{margin-right:8px;font-size:inherit}.weui-icon-search_in-box{position:absolute;left:10px;top:7px}.weui-search-bar__text{display:inline-block;font-size:14px;vertical-align:middle}.weui-search-bar__form{position:relative;-webkit-box-flex:1;-webkit-flex:auto;flex:auto;border-radius:5px;background:#fff;border:1rpx solid #e6e6ea}.weui-search-bar__box{position:relative;padding-left:30px;padding-right:30px;width:100%;box-sizing:border-box;z-index:1}.weui-search-bar__input{height:28px;line-height:28px;font-size:14px}.weui-icon-clear{position:absolute;top:0;right:0;padding:7px 8px;font-size:0}.weui-search-bar__label{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;border-radius:3px;text-align:center;color:#9b9b9b;background:#fff;line-height:28px}.weui-search-bar__cancel-btn{margin-left:10px;line-height:28px;color:#09bb07;white-space:nowrap}"
  }
]