// pages/fragmentsList/fragmentsList.js var net = require('../../utils/net.js') var url = require('../../utils/url.js') var common = require('../../utils/common.js') var lock = require('../../utils/lock.js') const app = getApp() // const fragments = [ // { id: 0, fragment: '胎教期', star: 1, consume: '100万' }, // { id: 1, fragment: '幼儿园', star: 4, consume: '200万' }, // { id: 2, fragment: '小学', star: 6, consume: '500万' }, // { id: 3, fragment: '初中', star: 3, consume: '900万' }, // { id: 4, fragment: '高中', star: 3, consume: '1100万' }, // { id: 5, fragment: '本科', star: 4, consume: '1500万' }, // { id: 6, fragment: '硕士', star: 3, consume: '2000万' }, // { id: 7, fragment: '博士', star: 3, consume: '2700万' }, // { id: 8, fragment: '讲师', star: 5, consume: '3000万' }, // { id: 9, fragment: '教授', star: 5, consume: '1亿' }, // { id: 10, fragment: '院士', star: 0, consume: '3亿', top: true }] Page({ /** * 页面的初始数据 */ data: { isFirstLoad: true, rankType: '1', rankInfo: {}, rankStar: {}, currentFragment: 0,//从0开始,跟接口文档不一致 currentStarNum:0, isCurrentFragment: false,//是否在当前段位pk fragmentsList: [], allFragmentsNum: 0,//一共有多少个段位 scrollBottomId: '',//列表最后一个id formId: '', dialogBrainLack: { hidden: true }, dialogRank: { hidden: true }, }, showRankDialog: function () { this.setData({ dialogRank: { hidden: false, headImg: '../../resource/head_rank.png' } }) }, hideRankDialog: function () { this.setData({ dialogRank: { hidden: true } }) }, hideBrainLackDialog: function () { this.data.dialogBrainLack.hidden = true this.setData({ dialogBrainLack: this.data.dialogBrainLack }) }, showNoBrainLackDialog: function () { this.setData({ dialogBrainLack: { hidden: false, title: '脑力值不足', subtitle: '无法参加排位赛、冲刺院士荣誉并争夺至尊大奖哦', button: '赚更多脑力值', tap: 'goToTask', } }) }, showShareBrainLackDialog: function (cell) { this.setData({ dialogBrainLack: { hidden: false, title: '哎呀,你的脑力值不足', subtitle: '无法参加排位赛、冲刺院士荣誉并争夺至尊大奖哦', button: '分享到群 赚取' + common.unit(cell) + '脑力值', openType: 'share' }, }) }, goToTask: function (e) { if (lock.lockTapDelay()) { return } this.hideBrainLackDialog() wx.navigateTo({ url: '../task/task' }) }, goToPK: function (e) { if (lock.lockTapDelay()) { return } if (app.globalData.timeDifference + new Date().getTime() > this.data.rankInfo.endTime) { this.showRankDialog() return } var rankDan = Number(e.currentTarget.id.substring(1)) + 1 var fragment = rankDan - 1 var cell = app.server.config.rankDanList[fragment].cellRankCost if (app.globalData.user.cell < cell) { var flag1 = this.data.rankType == '1' && app.server.rankStarMap.main.shareRankCellLack < app.server.config.shareRankCellLackMax var flag2 = this.data.rankType == '2' && app.server.rankStarMap.topic.shareRankCellLack < app.server.config.shareRankCellLackMax app.log(app.server.rankStarMap.topic.shareRankPkResult) app.log(app.server.config.shareRankPkResultMax) if (flag1 || flag2) { var c = app.server.config.rankDanList[this.data.currentFragment].cellRankCost this.showShareBrainLackDialog(c) } else { this.showNoBrainLackDialog() } return } if (rankDan - 1 == this.data.currentFragment) { this.data.isCurrentFragment = true } else { this.data.isCurrentFragment = false } wx.navigateTo({ url: '/pages/pk/pk?type=1&rankDan=' + rankDan + '&rankGameId=' + this.data.rankInfo.gameId + '&rankType=' + this.data.rankType }) }, goToRecord: function () { wx.navigateTo({ url: '../fragmentsRecord/fragmentsRecord?rankType=' + this.data.rankType, }) }, joinFragments: function () { net.connect({ url: url.host + url.join_fragments, data: { formId: this.data.formId , gameId: this.data.rankInfo.gameId }, method: 'POST', success: res => { this.data.rankStar.rank = res.data.data.rank this.refreshGlobalRank() this.setData({ rankStar: this.data.rankStar }) }, }) }, refreshGlobalRank: function () { switch (this.data.rankType) { case '1': { app.server.rankStarMap.main = this.data.rankStar break } case '2': { app.server.rankStarMap.topic = this.data.rankStar break } default: break } }, goToPoster: function () { wx.previewImage({ urls: [this.data.rankInfo.poster], }) }, confirmFragmentsList: function () { if (this.data.currentFragment + 3 >= this.data.allFragmentsNum) { this.data.fragmentsList = app.server.config.rankDanList.slice(0) var { ...item } = this.data.fragmentsList[this.data.allFragmentsNum - 1] item.star = 0 this.data.fragmentsList[this.data.allFragmentsNum - 1] = item } else { this.data.fragmentsList = app.server.config.rankDanList.slice(0, this.data.currentFragment + 3) } }, getFragmentsResult: function (result) { if (this.data.isCurrentFragment) { if (result) { this.data.rankStar.starC++ var r = common.starToFragment(app.server.config.rankDanList, this.data.rankStar.starC) this.data.currentFragment = r[0] this.data.currentStarNum = r[1] } else { var r = common.decreaseStar(app.server.config.rankDanList, this.data.rankStar.starC) this.data.currentFragment = r[0] this.data.currentStarNum = r[1] this.data.rankStar.starC = r[2] } this.refreshGlobalRank() } }, /** * 生命周期函数--监听页面加载 */ //rankType:1是排位赛,2是专场赛 onLoad: function (options) { app.log(app.server) if (options.rankType) { this.data.rankType = options.rankType } var title switch (this.data.rankType) { case '1': { this.data.rankInfo = app.globalData.rankInfo this.data.rankStar = app.server.rankStarMap.main title = '排位赛' break } case '2': { this.data.rankInfo = app.globalData.rankOneInfo this.data.rankStar = app.server.rankStarMap.topic title = '专场排位赛' break } default: break } wx.setNavigationBarTitle({ title: title, }) app.log(this.data.rankInfo) // app.log(app.globalData.rankOneInfo) wx.hideShareMenu({}) if (options.formId) { this.data.formId = options.formId } var f = common.starToFragment(app.server.config.rankDanList, this.data.rankStar.starC) this.data.currentFragment = f[0] this.data.currentStarNum = f[1] this.data.allFragmentsNum = app.server.config.rankDanList.length this.confirmFragmentsList() this.data.scrollBottomId = 'a' + this.data.currentFragment app.log(this.data.scrollBottomId) this.setData({ rankStar: this.data.rankStar, rankInfo: this.data.rankInfo, fragmentsList: this.data.fragmentsList, currentFragment: this.data.currentFragment, currentStarNum: this.data.currentStarNum, allFragmentsNum: this.data.allFragmentsNum, scrollBottomId: this.data.scrollBottomId }) }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { }, /** * 生命周期函数--监听页面显示 */ onShow: function () { if (this.data.isFirstLoad) { //陈总叫每次掉的 this.joinFragments() this.data.isFirstLoad = false } else { switch (this.data.rankType) { case '1': { this.data.rankStar = app.server.rankStarMap.main break } case '2': { this.data.rankStar = app.server.rankStarMap.topic break } default: break } this.confirmFragmentsList() this.setData({ fragmentsList: this.data.fragmentsList, currentFragment: this.data.currentFragment, currentStarNum: this.data.currentStarNum, rankStar: this.data.rankStar }) setTimeout(function () { this.getRank() }.bind(this), 500) } }, getRank: function () { net.connect({ url: url.host + url.get_my_ranking, data: { gameId: this.data.rankInfo.gameId }, success: res => { if (this.data.rankStar.starC != res.data.data.starC) { app.log('change') this.data.rankStar.starC = res.data.data.starC this.data.rankStar.rank = res.data.data.rank this.refreshGlobalRank() } var r = common.starToFragment(app.server.config.rankDanList, this.data.rankStar.starC) this.data.currentFragment = r[0] this.data.currentStarNum = r[1] this.confirmFragmentsList() this.setData({ fragmentsList: this.data.fragmentsList, currentFragment: this.data.currentFragment, currentStarNum: this.data.currentStarNum, rankStar: this.data.rankStar }) } }) }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { wx.showShareMenu({ withShareTicket: true }) this.hideBrainLackDialog() return common.shareAction({ title: app.globalData.userInfo.nickName + '邀请你来瓜分8万8千8百8十8元现金奖励!', path: '', type: 12, rankType: this.data.rankType, success: res => { if (res.data.data.addCell > 0) { wx.showToast({ title: '分享+' + common.unit(res.data.data.addCell) + '脑力值', icon: 'none', duration: 2500 }) } this.setData({ user: app.globalData.user }) wx.hideShareMenu({}) }, fail: e =>{ wx.hideShareMenu({}) } }) } })