let urlPrefix = getUrlPrefix() let browser = checkVersion() let queryObj = getQueryString() if (EnvCheck() === 'test') new VConsole // 封装layer消息提醒框 let layerIndex const showLoading = () => { layer.open({ type: 2, shadeClose: false, content: '加載中...', success(e) { layerIndex = $(e).attr('index') } }) } const hideLoading = (index) => { layer.close(index) } const toastMsg = (content = '操作完成', time = 2) => { layer.open({ content, time, skin: 'msg' }) } let showReceiveRankTotal //是否展示总榜 let showMonthList // 获取后台配置信息 const getShowInfo = () => { networkRequest({ type: 'GET', url: urlPrefix + '/room/rankings/showInfo', data: { roomUid: queryObj.roomUid }, success(res) { if (res.code === 200) { showReceiveRankTotal = res.data.showReceiveRankTotal showMonthList = res.data.showMonthList if (res.data.showMonthList) { $('title').text('主播榜'); // $('.wrap .tab_wrap').hide(); // $('.wrap .rank_wrap .top_three_wrap').css("margin-top", "0"); // $('.wrap .rank_wrap ul').css("height", "6.4rem"); $('.wrap .tab_wrap .rank_type p:last-child').text('月榜'); $('.wrap .tab_wrap .tab_contain p').eq(0).text('贡献榜') $('.wrap .tab_wrap .rank_type p:last-child').show(); getList('day') $('.wrap').show() } else { $('.wrap').show() if (showReceiveRankTotal) { $('.rank_type p').eq(2).show() } else { $('.rank_type p').eq(2).hide() } getList('day') } } else { toastMsg(res.message) } }, error(err) { toastMsg('網絡錯誤') } }) } let page = 1 let pageSize = 10 let rankList = [] let isLock = true let dayListNext = true let weekListNext = true let monthListNext = true let totalListNext = true let dayCharmListNext = true let weekCharmListNext = true let monthCharmListNext = true let totalCharmListNext = true // 获取财富榜数据 const getList = (type, page = 1) => { console.log('贡献榜'); console.log(type); networkRequest({ type: 'GET', url: urlPrefix + '/room/rankings', data: { type, page, pageSize, roomUid: queryObj.roomUid }, success(res) { if (res.code === 200) { if (res.data.rankings.length === pageSize) { // 能够继续请求下一页 if (type == 'day') { dayListNext = true } else if (type == 'week') { weekListNext = true } else if (type == 'month') { monthListNext = true } else { totalListNext = true } } else { if (type == 'day') { dayListNext = false } else if (type == 'week') { weekListNext = false } else if (type == 'month') { monthListNext = false } else { totalListNext = false } } rankList.push(...res.data.rankings) if (showMonthList) { if (type == 'day') { sessionStorage.setItem('dayList', JSON.stringify(rankList)) renderList(sessionStorage.getItem('dayList')) } else if (type == 'week') { sessionStorage.setItem('weekList', JSON.stringify(rankList)) renderList(sessionStorage.getItem('weekList')) } else if (type == 'month') { sessionStorage.setItem('monthList', JSON.stringify(rankList)) renderList(sessionStorage.getItem('monthList')) } } else { if (type == 'day') { sessionStorage.setItem('dayList', JSON.stringify(rankList)) renderList(sessionStorage.getItem('dayList')) } else if (type == 'week') { sessionStorage.setItem('weekList', JSON.stringify(rankList)) renderList(sessionStorage.getItem('weekList')) } else if (type == 'total') { sessionStorage.setItem('totalList', JSON.stringify(rankList)) renderList(sessionStorage.getItem('totalList')) } } isLock = true } else { toastMsg(res.message) } }, error(err) { toastMsg('網絡錯誤') } }) } // 获取魅力榜数据 const getCharmList = (type, page = 1) => { console.log('魅力榜'); console.log(type); networkRequest({ type: 'GET', url: urlPrefix + '/room/recive/rankings', data: { type, page, pageSize, roomUid: queryObj.roomUid }, success(res) { if (res.code === 200) { if (res.data.rankings.length === pageSize) { // 能够继续请求下一页 if (type == 'day') { dayCharmListNext = true } else if (type == 'week') { weekCharmListNext = true } else if (type == 'month') { monthCharmListNext = true } else { totalCharmListNext = true } } else { if (type == 'day') { dayCharmListNext = false } else if (type == 'week') { weekCharmListNext = false } else if (type == 'month') { monthCharmListNext = false } else { totalCharmListNext = false } } rankList.push(...res.data.rankings) if (showMonthList) { if (type == 'day') { sessionStorage.setItem('dayCharmList', JSON.stringify(rankList)) renderList(sessionStorage.getItem('dayCharmList')) } else if (type == 'week') { sessionStorage.setItem('weekCharmList', JSON.stringify(rankList)) renderList(sessionStorage.getItem('weekCharmList')) } else if (type == 'month') { sessionStorage.setItem('monthCharmList', JSON.stringify(rankList)) renderList(sessionStorage.getItem('monthCharmList')) } } else { if (type == 'day') { sessionStorage.setItem('dayCharmList', JSON.stringify(rankList)) renderList(sessionStorage.getItem('dayCharmList')) } else if (type == 'week') { sessionStorage.setItem('weekCharmList', JSON.stringify(rankList)) renderList(sessionStorage.getItem('weekCharmList')) } else if (type == 'total') { sessionStorage.setItem('totalCharmList', JSON.stringify(rankList)) renderList(sessionStorage.getItem('totalCharmList')) } } // renderList() isLock = true } else { toastMsg(res.message) } }, error(err) { toastMsg('網絡錯誤') } }) } const renderList = (List) => { let list = JSON.parse(List) rankList = list let topThreeArr = list.slice(0, 3) if (list.length < 3) { let len = 3 - list.length let arr = new Array(len).fill({ nick: '', erbanNo: '', goldAmount: '', gender: '' }) topThreeArr.push(...arr) } let topThreeStr = '' topThreeArr.map((item, index) => { let tostr, goldAmount if (item.goldAmount) { tostr = item.goldAmount.toString() } if (tostr) { if (tostr.length >= 5) { goldAmount = (item.goldAmount / 10000).toFixed(2) + 'w' } else { goldAmount = item.goldAmount } } topThreeStr += `

${item.nick.length > 5 ? item.nick.slice(0, 5) + '...' : item.nick}
${item.erbanNo ? 'ID:' + item.erbanNo : ''}
${goldAmount ? goldAmount : ''}
` }) $('.top_three_wrap').html(topThreeStr) // 渲染非前3 let othersArr = list.slice(3) let others = '' othersArr.map((item, index) => { let tostr = item.goldAmount.toString() let goldAmount if (tostr.length >= 5) { goldAmount = (item.goldAmount / 10000).toFixed(2) + 'w' } else { goldAmount = item.goldAmount } others += `
  • ${index + 4}
    ${item.nick.length > 5 ? item.nick.slice(0, 5) + '...' : item.nick}
    ID:${item.erbanNo}
    ${goldAmount}
  • ` }) $('ul').html(others) } $(function () { getInfoFromClient() setTimeout(() => { getShowInfo() // getList( 'day' ) }, 50) // tab切换 let currentTabIndex = 0 $('.tab_contain').on('click', 'p', function () { let index = $(this).index() if (currentTabIndex == index) return; currentTabIndex = index $(this).addClass('active').siblings('p').removeClass('active') rankList = [] $('.rank_wrap').scrollTop(0) page = 1 if (index) { // 魅力榜单 $('.rank_type p').eq(2).hide() $('.rank_type p').eq(currentCharmRankType).addClass('active').siblings('p').removeClass('active') if (showMonthList) { $('.wrap .tab_wrap .rank_type p:last-child').show(); if (currentCharmRankType == 0) { if (sessionStorage.getItem('dayCharmList')) { renderList(sessionStorage.getItem('dayCharmList')) } else { getCharmList('day') } } else if (currentCharmRankType == 1) { if (sessionStorage.getItem('weekCharmList')) { renderList(sessionStorage.getItem('weekCharmList')) } else { getCharmList('week') } } else if (currentCharmRankType == 2) { if (sessionStorage.getItem('monthCharmList')) { renderList(sessionStorage.getItem('monthCharmList')) } else { getCharmList('month') } } } else { if (currentCharmRankType == 0) { if (sessionStorage.getItem('dayCharmList')) { renderList(sessionStorage.getItem('dayCharmList')) } else { getCharmList('day') } } else if (currentCharmRankType == 1) { if (sessionStorage.getItem('weekCharmList')) { renderList(sessionStorage.getItem('weekCharmList')) } else { getCharmList('week') } } else if (currentCharmRankType == 2) { if (sessionStorage.getItem('totalCharmList')) { renderList(sessionStorage.getItem('totalCharmList')) } else { getCharmList('total') } } } } else { // 贡献榜&爱意榜 if (showReceiveRankTotal) { $('.rank_type p').eq(2).show() } if (showMonthList) { $('.wrap .tab_wrap .rank_type p:last-child').show(); $('.rank_type p').eq(currentRankType).addClass('active').siblings('p').removeClass('active') if (currentRankType == 0) { if (sessionStorage.getItem('dayList')) { renderList(sessionStorage.getItem('dayList')) } else { getList('day') } } else if (currentRankType == 1) { if (sessionStorage.getItem('weekList')) { renderList(sessionStorage.getItem('weekList')) } else { getList('week') } } else if (currentRankType == 2) { if (sessionStorage.getItem('monthList')) { renderList(sessionStorage.getItem('monthList')) } else { getList('month') } } } else { $('.rank_type p').eq(currentRankType).addClass('active').siblings('p').removeClass('active') if (currentRankType == 0) { if (sessionStorage.getItem('dayList')) { renderList(sessionStorage.getItem('dayList')) } else { getList('day') } } else if (currentRankType == 1) { if (sessionStorage.getItem('weekList')) { renderList(sessionStorage.getItem('weekList')) } else { getList('week') } } else if (currentRankType == 2) { if (sessionStorage.getItem('totalList')) { renderList(sessionStorage.getItem('totalList')) } else { getList('total') } } } } }) // 日榜周榜总榜切换 let currentRankType = 0 let currentCharmRankType = 0 $('.rank_type').on('click', 'p', function () { $('.rank_wrap').scrollTop(0) page = 1 if (currentTabIndex) { // 魅力榜 let index = $(this).index() if (currentCharmRankType == index) return; currentCharmRankType = index $(this).addClass('active').siblings('p').removeClass('active') rankList = [] if (showMonthList) { if (index == 0) { if (sessionStorage.getItem('dayCharmList')) { renderList(sessionStorage.getItem('dayCharmList')) } else { getCharmList('day') } } else if (index == 1) { if (sessionStorage.getItem('weekCharmList')) { renderList(sessionStorage.getItem('weekCharmList')) } else { getCharmList('week') } } else if (index == 2) { if (sessionStorage.getItem('monthCharmList')) { renderList(sessionStorage.getItem('monthCharmList')) } else { getCharmList('month') } } } else { if (index == 0) { if (sessionStorage.getItem('dayCharmList')) { renderList(sessionStorage.getItem('dayCharmList')) } else { getCharmList('day') } } else if (index == 1) { if (sessionStorage.getItem('weekCharmList')) { renderList(sessionStorage.getItem('weekCharmList')) } else { getCharmList('week') } } else if (index == 2) { if (sessionStorage.getItem('totalCharmList')) { renderList(sessionStorage.getItem('totalCharmList')) } else { getCharmList('total') } } } } else { // 财富榜 let index = $(this).index() if (currentRankType == index) return; currentRankType = index $(this).addClass('active').siblings('p').removeClass('active') rankList = [] if (showMonthList) { if (index == 0) { if (sessionStorage.getItem('dayList')) { renderList(sessionStorage.getItem('dayList')) } else { getList('day') } } else if (index == 1) { if (sessionStorage.getItem('weekList')) { renderList(sessionStorage.getItem('weekList')) } else { getList('week') } } else if (index == 2) { if (sessionStorage.getItem('monthList')) { renderList(sessionStorage.getItem('monthList')) } else { getList('month') } } } else { if (index == 0) { if (sessionStorage.getItem('dayList')) { renderList(sessionStorage.getItem('dayList')) } else { getList('day') } } else if (index == 1) { if (sessionStorage.getItem('weekList')) { renderList(sessionStorage.getItem('weekList')) } else { getList('week') } } else if (index == 2) { if (sessionStorage.getItem('totalList')) { renderList(sessionStorage.getItem('totalList')) } else { getList('total') } } } } }) // 监听滚动 $('.rank_wrap').scroll(function () { let scrollTop = $(this).scrollTop() let scrollHeight = $('.rank_wrap')[0].scrollHeight let ulHeight = $(this).innerHeight() if (scrollTop + ulHeight + 100 >= scrollHeight) { if (isLock) { // 请求下一页 // if (canNext) { if (showMonthList) { if (currentTabIndex) { if (currentCharmRankType == 0) { if (!dayCharmListNext) return getCharmList('day', ++page) } else if (currentCharmRankType == 1) { if (!weekCharmListNext) return getCharmList('week', ++page) } else if (currentCharmRankType == 2) { if (!monthCharmListNext) return getCharmList('month', ++page) } } else { if (currentRankType == 0) { if (!dayListNext) return getList('day', ++page) } else if (currentRankType == 1) { if (!weekListNext) return getList('week', ++page) } else if (currentRankType == 2) { if (!monthListNext) return getList('month', ++page) } } } else { if (currentTabIndex) { if (currentCharmRankType == 0) { if (!dayCharmListNext) return getCharmList('day', ++page) } else if (currentCharmRankType == 1) { if (!weekCharmListNext) return getCharmList('week', ++page) } else if (currentCharmRankType == 2) { if (!totalCharmListNext) return getCharmList('total', ++page) } } else { if (currentRankType == 0) { if (!dayListNext) return getList('day', ++page) } else if (currentRankType == 1) { if (!weekListNext) return getList('week', ++page) } else if (currentRankType == 2) { if (!totalListNext) return getList('total', ++page) } } } isLock = false // } } } }) //跳转个人主页 function openPerson(document, dom) { $(document).on('click', dom, function () { let erbanUid = $(this).data('uid') if (!browser.app) return if (browser.ios) { window.webkit.messageHandlers.openPersonPage.postMessage(erbanUid); } else if (browser.android) { if (androidJsObj && typeof androidJsObj === 'object') { window.androidJsObj.openPersonPage(erbanUid); } } }) } openPerson('.top_three_wrap', '.avatar') openPerson('ul', '.others_avatar') })