Browse Source

tijiao

master
zhaoyongnian 5 years ago
parent
commit
9ae4f557ed
  1. 4
      components/activity/activity.wxss
  2. 5
      pages/heartNew/components/volunteer/volunteer.js
  3. 20
      pages/heartNew/components/volunteer/volunteer.wxml
  4. 15
      pages/heartNew/components/volunteer/volunteer.wxss
  5. 235
      pages/heartNew/heartNew.js
  6. 32
      pages/heartNew/heartNew.wxml
  7. 24
      pages/heartNew/heartNew.wxss
  8. 11
      subpages/heart/pages/leaderboardNew/components/preloadLoverankingItem/preloadLoverankingItem.js
  9. 3
      subpages/heart/pages/leaderboardNew/components/preloadLoverankingItem/preloadLoverankingItem.json
  10. 7
      subpages/heart/pages/leaderboardNew/components/preloadLoverankingItem/preloadLoverankingItem.wxml
  11. 42
      subpages/heart/pages/leaderboardNew/components/preloadLoverankingItem/preloadLoverankingItem.wxss
  12. 206
      subpages/heart/pages/leaderboardNew/leaderboardNew.js
  13. 9
      subpages/heart/pages/leaderboardNew/leaderboardNew.json
  14. 53
      subpages/heart/pages/leaderboardNew/leaderboardNew.wxml
  15. 140
      subpages/heart/pages/leaderboardNew/leaderboardNew.wxss
  16. 11
      utils/activity.js

4
components/activity/activity.wxss

@ -44,7 +44,7 @@
.user-state { .user-state {
position: absolute; position: absolute;
z-index: 999; z-index: 955;
font-size: 24rpx; font-size: 24rpx;
color: #fff; color: #fff;
width: 92rpx; width: 92rpx;
@ -63,7 +63,7 @@
/* object-fit: cover; *//* right: 0; /* object-fit: cover; *//* right: 0;
top: 20rpx; */ top: 20rpx; */
position: absolute; position: absolute;
z-index: 9999; z-index: 955;
} }
.infos { .infos {

5
pages/heartNew/components/volunteer/volunteer.js

@ -4,7 +4,10 @@ Component({
* 组件的属性列表 * 组件的属性列表
*/ */
properties: { properties: {
volunteerItemObj: {
type: Object,
value: {}
}
}, },
/** /**

20
pages/heartNew/components/volunteer/volunteer.wxml

@ -1,18 +1,6 @@
<view class="box">
<view class="item"> <view class="item">
<image src="https://epdc-shibei.elinkservice.cn/epdcFile/M00/02/B2/rBAAM16W7SqAY1XjAAMWUuGo2D4654.jpg" /> <image src="{{volunteerItemObj.faceImg}}" />
<view class="name">李先生</view> <view class="name">{{volunteerItemObj.nickname}}</view>
<view class="autograph">我志愿我骄傲</view> <view class="autograph">{{volunteerItemObj.volunteerSignature}}</view>
</view> </view>
<view class="item"> <!-- <view class="show">*按姓氏拼音排序</view> -->
<image src="https://epdc-shibei.elinkservice.cn/epdcFile/M00/02/B2/rBAAM16W7SqAY1XjAAMWUuGo2D4654.jpg" />
<view class="name">李先生</view>
<view class="autograph">我志愿我骄傲</view>
</view>
<view class="item">
<image src="https://epdc-shibei.elinkservice.cn/epdcFile/M00/02/B2/rBAAM16W7SqAY1XjAAMWUuGo2D4654.jpg" />
<view class="name">李先生</view>
<view class="autograph">我志愿我骄傲</view>
</view>
</view>
<view class="show">*按姓氏拼音排序</view>

15
pages/heartNew/components/volunteer/volunteer.wxss

@ -1,12 +1,5 @@
.box {
display: flex;
align-items: center;
justify-content: space-between;
flex-wrap: wrap;
padding: 0rpx 40rpx 19rpx 40rpx;
}
.box .item { .item {
width: 320rpx; width: 320rpx;
height: 282rpx; height: 282rpx;
margin-top: 20rpx; margin-top: 20rpx;
@ -17,21 +10,21 @@
align-items: center; align-items: center;
} }
.box .item image { .item image {
width: 110rpx; width: 110rpx;
height: 110rpx; height: 110rpx;
border-radius: 50%; border-radius: 50%;
margin-top: 40rpx; margin-top: 40rpx;
} }
.box .item .name { .item .name {
margin-top: 11rpx; margin-top: 11rpx;
font-size: 30rpx; font-size: 30rpx;
font-weight: bold; font-weight: bold;
color: rgba(51, 51, 51, 1); color: rgba(51, 51, 51, 1);
} }
.box .item .autograph { .item .autograph {
margin-top: 18rpx; margin-top: 18rpx;
font-size:26rpx; font-size:26rpx;
font-weight:500; font-weight:500;

235
pages/heartNew/heartNew.js

@ -1,5 +1,9 @@
// pages/heartNew/heartNew.js // pages/heartNew/heartNew.js
const app = getApp() const app = getApp()
var api = require('../../utils/activity.js')
import {
getTimestamp
} from '../../utils/common'
Page({ Page({
/** /**
@ -10,36 +14,129 @@ Page({
navigationHeight: 0, // 自定义头部导航栏高度 navigationHeight: 0, // 自定义头部导航栏高度
selectedTab: 'tab0', selectedTab: 'tab0',
// banner 相关 // banner 相关
banner: [{ banner: [],
actId:'1',
bannerImg:'https://epdc-shibei.elinkservice.cn/epdcFile/M00/02/B2/rBAAM16W7SqAY1XjAAMWUuGo2D4654.jpg',
},
{
actId:'2',
bannerImg:'https://epdc-shibei.elinkservice.cn/epdcFile/M00/02/B2/rBAAM16W7SqAY1XjAAMWUuGo2D4654.jpg',
}],
indicatorDots: false, //指示点 indicatorDots: false, //指示点
autoplay: true, //true false,//自动播放 autoplay: true, //true false,//自动播放
circular: true, //衔接滑动 circular: true, //衔接滑动
interval: 4000, //自动播放间隔时长(ms) interval: 4000, //自动播放间隔时长(ms)
duration: 500, //幻灯片切换时长(ms) duration: 500, //幻灯片切换时长(ms)
currentSwiper: 0 currentSwiper: 0,
// banner 相关end // banner 相关end
// 列表相关
loadMoreVisible: false, //false
loadMoreType: 'none', //loading none
dingdan: false,//判断订单列表隐藏
jingcai: true,//判断精彩列表隐藏
indexPage: 1,
pageSize: 10,
qkdat: false,//判断是否清空数据
actId: '',//判断返回以后是否需要刷新列表
volunteerlist:[],//志愿者列表
listLength:0,//数据长度判断是否需要加载
}, },
/** /**
* 生命周期函数--监听页面加载 * 生命周期函数--监听页面加载
*/ */
onLoad: function (options) { onLoad: function (options) {
this.bannerListV2()
this.setData({ this.setData({
statusHeight: app.globalData.deviceInfo.statusHeight, statusHeight: app.globalData.deviceInfo.statusHeight,
navigationHeight: app.globalData.deviceInfo.navigationHeight, navigationHeight: app.globalData.deviceInfo.navigationHeight,
}) })
let parms = {
pageIndex: this.data.indexPage,
pageSize: this.data.pageSize,
timestamp: getTimestamp(),
actType: 0,
qkdat: true
}
this.selectComponent("#state-0").getActivityList(parms)
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
// if (this.data.selectedTab === 'tab3') {
// this.setData({
// selectedTab: 'tab0',
// dingdan: false,//判断订单列表隐藏
// jingcai: true,//判断精彩列表隐藏
// qkdat: true
// })
// let parms = {
// pageIndex: 1,
// pageSize: this.data.pageSize,
// qkdat: this.data.qkdat,
// timestamp: getTimestamp(),
// actType: 0
// }
// this.selectComponent("#state-0").getActivityList(parms)
// }
if (this.data.actId) {
this.updateActivityList()
}
}, },
// tab 切换 // tab 切换
tabBarChange(e) { tabBarChange(e) {
console.log(e.currentTarget.dataset.tab) this.setData({
if (e.currentTarget.dataset.tab == 'tab3') { loadMoreVisible: false,
loadMoreType: 'none',
indexPage: 1,
})
if (e.currentTarget.dataset.tab == 'tab0') {
this.setData({
dingdan: false,
jingcai: true,
})
let parms = {
pageIndex: this.data.indexPage,
pageSize: this.data.pageSize,
timestamp: getTimestamp(),
actType: 0,//活动列表类型(0-招募令,1-精彩活动)
qkdat: true
}
this.selectComponent("#state-0").getActivityList(parms)
} else if (e.currentTarget.dataset.tab == 'tab1') {
this.setData({
dingdan: true,
jingcai: true,
volunteerlist:[],//列表置空
listLength:0
})
let parms = {
pageIndex: this.data.indexPage,
pageSize: this.data.pageSize,
}
console.log('志愿者列表传值:'+JSON.stringify(parms))
this.volunteerlist(parms)
} else if (e.currentTarget.dataset.tab == 'tab2') {
this.setData({
dingdan: true,
jingcai: false,
})
let parms = {
pageIndex: this.data.indexPage,
pageSize: this.data.pageSize,
timestamp: getTimestamp(),
actType: 1,//活动列表类型(0-招募令,1-精彩活动)
qkdat: true
}
this.selectComponent("#state-2").getActivityList(parms)
} else if (e.currentTarget.dataset.tab == 'tab3') {
this.setData({
dingdan: true,
jingcai: true,
})
wx.navigateTo({ wx.navigateTo({
url: `/subpages/heart/pages/leaderboardNew/leaderboardNew` url: `/subpages/heart/pages/leaderboardNew/leaderboardNew`
}) })
@ -48,6 +145,43 @@ Page({
selectedTab: e.currentTarget.dataset.tab selectedTab: e.currentTarget.dataset.tab
}) })
}, },
// 返回以后刷新列表
updateActivityList() {
if ((this.data.selectedTab === 'tab0')) {
let params = {
pageIndex: 1,
pageSize: 10,
timestamp: getTimestamp(),
actType: 0,
actId: this.data.actId
}
this.selectComponent("#state-0").updateActivityList(params)
} else if (this.data.selectedTab === 'tab2') {
let params = {
pageIndex: 1,
pageSize: 10,
timestamp: getTimestamp(),
actType: 1,
actId: this.data.actId
}
this.selectComponent("#state-2").updateActivityList(params)
}
this.setData({
actId: ''
})
},
// 志愿者列表
volunteerlist(params){
let that = this
api.volunteerlist(params).then(function (res) {
console.log(res.data.length)
that.setData({
listLength:res.data.length,
volunteerlist: res.data
})
})
},
//返回上一级 //返回上一级
goback() { goback() {
wx.navigateBack({ wx.navigateBack({
@ -60,20 +194,20 @@ Page({
currentSwiper: e.detail.current currentSwiper: e.detail.current
}) })
}, },
// 通过判断列表的长度断定是否显示加载中
/** toActDetailDown(e) {
* 生命周期函数--监听页面初次渲染完成 if (e.detail.listLength !== this.data.pageSize) {
*/ this.setData({
onReady: function () { loadMoreVisible: true,
loadMoreType: 'none',
})
}
this.setData({
actId: e.detail.actId,
listLength: e.detail.listLength
})
}, },
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/** /**
* 生命周期函数--监听页面隐藏 * 生命周期函数--监听页面隐藏
@ -93,14 +227,55 @@ Page({
* 页面相关事件处理函数--监听用户下拉动作 * 页面相关事件处理函数--监听用户下拉动作
*/ */
onPullDownRefresh: function () { onPullDownRefresh: function () {
this.bannerListV2()
},
bannerListV2: function () {
let that = this
api.bannerList().then(function (res) {
that.setData({
banner: res.data
})
wx.stopPullDownRefresh();
})
}, },
/** /**
* 页面上拉触底事件的处理函数 * 页面上拉触底事件的处理函数
*/ */
onReachBottom: function () { onReachBottom: function () {
if (this.data.listLength !== this.data.pageSize) {
this.setData({
loadMoreVisible: true,
loadMoreType: 'none',
})
} else {
this.setData({
loadMoreVisible: true,
loadMoreType: 'loading',
})
}
if (this.data.selectedTab == 'tab0') {
this.setData({
indexPage: this.data.indexPage + 1
})
let parms = {
pageIndex: this.data.indexPage,
pageSize: this.data.pageSize,
timestamp: getTimestamp(),
actType: 0
}
this.selectComponent("#state-0").getActivityList(parms)
} else if (this.data.selectedTab == 'tab2') {
this.setData({
indexPage: this.data.indexPage + 1
})
let parms = {
pageIndex: this.data.indexPage,
pageSize: this.data.pageSize,
timestamp: getTimestamp(),
actType: 1
}
this.selectComponent("#state-2").getActivityList(parms)
}
}, },
/** /**
@ -108,5 +283,11 @@ Page({
*/ */
onShareAppMessage: function () { onShareAppMessage: function () {
} },
//跳转志愿者认证页面
govolunteer() {
wx.navigateTo({
url: `/subpages/heart/pages/volunteer/volunteer`
})
},
}) })

32
pages/heartNew/heartNew.wxml

@ -1,8 +1,6 @@
<view class="header" style="height: {{statusHeight + navigationHeight}}px;"> <view class="header" style="height: {{statusHeight + navigationHeight}}px;">
<image class="header-bg" src="https://epdc-kongcun.elinkit.com.cn/epdcFile/M00/00/06/rBAB7160-w6AJBH6AAAk6D4lsPc207.png" /> <image class="header-bg" src="https://epdc-kongcun.elinkit.com.cn/epdcFile/M00/00/06/rBAB7160-w6AJBH6AAAk6D4lsPc207.png" />
<view class="navigation" style="height: {{navigationHeight}}px; top: {{statusHeight}}px;"> <view class="navigation" style="height: {{navigationHeight}}px; top: {{statusHeight}}px;">
<view class="goback" bindtap="goback"> <view class="goback" bindtap="goback">
<image src="../../images/goback.png" /> <image src="../../images/goback.png" />
</view> </view>
@ -19,7 +17,7 @@
<view class="grid"> <view class="grid">
<image src="https://epdc-kongcun.elinkit.com.cn/epdcFile/M00/00/09/rBAB717MflOADIYLAACi6KzN7k4722.png" /> <image src="https://epdc-kongcun.elinkit.com.cn/epdcFile/M00/00/09/rBAB717MflOADIYLAACi6KzN7k4722.png" />
</view> </view>
<view class="volunteer"> <view class="volunteer" bindtap="govolunteer">
<image src="https://epdc-kongcun.elinkit.com.cn/epdcFile/M00/00/09/rBAB717MhrKAB80nAAApr5c7VJQ292.png" /> <image src="https://epdc-kongcun.elinkit.com.cn/epdcFile/M00/00/09/rBAB717MhrKAB80nAAApr5c7VJQ292.png" />
</view> </view>
</view> </view>
@ -32,7 +30,7 @@
<block wx:if="{{banner.length > 0}}"> <block wx:if="{{banner.length > 0}}">
<block wx:for="{{banner}}" wx:key="*this"> <block wx:for="{{banner}}" wx:key="*this">
<swiper-item> <swiper-item>
<view bindtap="toActDetail" class="swiper-item" data-id="{{item.actId}}"> <view class="swiper-item" data-id="{{item.actId}}">
<image class="banner" src='{{item.bannerImg}}' mode="aspectFill" /> <image class="banner" src='{{item.bannerImg}}' mode="aspectFill" />
</view> </view>
</swiper-item> </swiper-item>
@ -41,11 +39,10 @@
<block wx:else> <block wx:else>
<swiper-item> <swiper-item>
<view> <view>
<image class="banner" src="https://epdc-shibei.elinkservice.cn/epdcFile/M00/02/B2/rBAAM16W7SqAY1XjAAMWUuGo2D4654.jpg" mode="aspectFill" /> <image class="banner" src="https://epdc-kongcun.elinkit.com.cn/epdcFile/M00/00/09/rBAB717N1ouAPcXVAAJZd_4ygpQ518.jpg" mode="aspectFill" />
</view> </view>
</swiper-item> </swiper-item>
</block> </block>
</swiper> </swiper>
<!-- 重置小圆点的样式 --> <!-- 重置小圆点的样式 -->
<view class="dots"> <view class="dots">
@ -54,7 +51,6 @@
</block> </block>
</view> </view>
</view> </view>
</view> </view>
</view> </view>
<view class="tab-all"> <view class="tab-all">
@ -69,16 +65,26 @@
精彩说说 精彩说说
</view> </view>
<view class="tab tab3 {{selectedTab === 'tab3' ? 'select' : ''}}" data-tab="tab3" bindtap="tabBarChange"> <view class="tab tab3 {{selectedTab === 'tab3' ? 'select' : ''}}" data-tab="tab3" bindtap="tabBarChange">
志愿积分 志愿积分
</view> </view>
<view class="select-bar {{selectedTab}}"></view> <view class="select-bar {{selectedTab}}"></view>
</view> </view>
</view> </view>
<block wx:if="{{ selectedTab == 'tab0' }}"> <!-- 订单多多列表 -->
<view class="details-top">2222</view> <view class="details-top" hidden="{{dingdan}}">
</block> <activity bind:toActDetail="toActDetailDown" id="state-0" state="0"></activity>
<block wx:elif="{{ selectedTab == 'tab1' }}"> </view>
<!-- 志友朵朵 -->
<block wx:if="{{ selectedTab == 'tab1' }}">
<view class="details-top"> <view class="details-top">
<volunteer-list></volunteer-list> <view class="volunteer-box">
<volunteer-list wx:for="{{volunteerlist}}" volunteerItemObj="{{item}}" wx:for-index="index" wx:for-item="item" wx:key="{{index}}"></volunteer-list>
</view>
<view class="show">*按姓氏拼音排序</view>
</view> </view>
</block> </block>
<!-- 精彩说说 -->
<view class="details-top" hidden="{{jingcai}}">
<activity bind:toActDetail="toActDetailDown" id="state-2" state="2"></activity>
</view>
<load-more loadMoreVisible="{{loadMoreVisible}}" loadMoreType="{{loadMoreType}}"></load-more>

24
pages/heartNew/heartNew.wxss

@ -10,7 +10,7 @@ page {
width: 100%; width: 100%;
top: 0; top: 0;
left: 0; left: 0;
z-index: 888; z-index: 999;
} }
.header .header-bg { .header .header-bg {
@ -128,7 +128,7 @@ page {
height: 300rpx; height: 300rpx;
margin-left: 30rpx; margin-left: 30rpx;
background-color: #fff; background-color: #fff;
z-index: 999; z-index: 997;
margin-top: -36rpx; margin-top: -36rpx;
box-shadow: 0px 6px 21px 0px rgba(122, 122, 122, 0.23); box-shadow: 0px 6px 21px 0px rgba(122, 122, 122, 0.23);
border-radius: 14rpx; border-radius: 14rpx;
@ -294,7 +294,7 @@ button:last-child {
width: 100%; width: 100%;
height: 370rpx; height: 370rpx;
background-color: #fff; background-color: #fff;
z-index: 998; z-index: 996;
} }
@ -365,5 +365,21 @@ button:last-child {
/* 内容 */ /* 内容 */
.details-top { .details-top {
margin-top: 370rpx; margin-top: 385rpx;
}
.volunteer-box {
display: flex;
align-items: center;
justify-content: space-between;
flex-wrap: wrap;
padding: 0rpx 40rpx 19rpx 40rpx;
}
.show {
padding: 0rpx 40rpx;
height: 24rpx;
font-size: 24rpx;
line-height: 24rpx;
font-weight: 500;
color: #C5C5C5;
} }

11
subpages/heart/pages/leaderboardNew/components/preloadLoverankingItem/preloadLoverankingItem.js

@ -0,0 +1,11 @@
Component({
data: {
},
properties: {
},
methods: {
}
})

3
subpages/heart/pages/leaderboardNew/components/preloadLoverankingItem/preloadLoverankingItem.json

@ -0,0 +1,3 @@
{
"component": true
}

7
subpages/heart/pages/leaderboardNew/components/preloadLoverankingItem/preloadLoverankingItem.wxml

@ -0,0 +1,7 @@
<view class="preload-loveranking-item">
<view class="avatar"></view>
<view class="info">
<view class="top"></view>
<view class="bottom"></view>
</view>
</view>

42
subpages/heart/pages/leaderboardNew/components/preloadLoverankingItem/preloadLoverankingItem.wxss

@ -0,0 +1,42 @@
.preload-loveranking-item {
width: 100%;
height: 140rpx;
display: flex;
align-items: center;
}
.preload-loveranking-item .avatar {
width: 90rpx;
height: 90rpx;
border-radius: 50%;
margin: 0 15rpx;
background: linear-gradient(90deg, #f2f2f2 25%, #e6e6e6 37%, #f2f2f2 63%);
animation: loading 1.4s ease infinite;
background-size: 400% 100%;
}
.preload-loveranking-item .info {
height: 90rpx;
display: flex;
flex-direction: column;
justify-content: center;
width: calc(100% - 150rpx - 20rpx);
}
.preload-loveranking-item .info .top, .preload-loveranking-item .info .bottom {
width: 100%;
height: 30rpx;
background: linear-gradient(90deg, #f2f2f2 25%, #e6e6e6 37%, #f2f2f2 63%);
animation: loading 1.4s ease infinite;
background-size: 400% 100%;
}
.preload-loveranking-item .info .top {
margin-bottom: 20rpx;
}
@keyframes loading {
0% {
background-position: 100% 50%
}
100% {
background-position: 0 50%
}
}

206
subpages/heart/pages/leaderboardNew/leaderboardNew.js

@ -1,4 +1,6 @@
// subpages/heart/pages/leaderboardNew/leaderboardNew.js import { getTimestamp } from '../../../../utils/common'
const api = require('../../../../utils/api')
const app = getApp()
Page({ Page({
/** /**
@ -6,67 +8,104 @@ Page({
*/ */
data: { data: {
selectTab: 'tab1', selectTab: 'tab1',
selectedTab_B: 'tab0',
typeList: [{ //排名方式:0-周,1-月 typeList: [{ //排名方式:0-周,1-月
type: '0', type: 'tab0',
name: '审核中', name: '审核中',
select: true select: true
}, },
{ {
type: '1', type: 'tab1',
name: '已通过', name: '已通过',
select: false select: false
}, },
{ {
type: '2', type: 'tab4',
name: '未通过', name: '未通过',
select: false select: false
}, { }, {
type: '3', type: 'tab5',
name: '已结束', name: '已结束',
select: false select: false
} }
], ],
// 积分排行榜相关
datalenght: 0,
loveRankingList: [],
preloadVisible: true,
// 列表相关
loadMoreVisible: false,
loadMoreType: 'none',
pageNo: 1,
pageSize: 10,
signedList: [],
timer: '',
timestamp: getTimestamp(),
jilu: true
}, },
// tab 切换 // tab 切换
onTabChange(e) { onTabChange(e) {
this.loadLoveRanking()
this.setData({ this.setData({
selectTab: e.currentTarget.dataset.tab, selectTab: e.currentTarget.dataset.tab,
}) })
},
// 参与记录切换 if (e.currentTarget.dataset.tab == 'tab2') {
onButtonChange: function (e) { this.setData({
const list = this.data.typeList jilu: false,
let that = this;
list.forEach(item => {
if (item.type === e.currentTarget.dataset.type) {
item.select = true
} else {
item.select = false
}
}) })
that.setData({ this.getSignedList()
typeList: list, } else {
this.setData({
jilu: true,
}) })
}
}, },
/** /**
* 生命周期函数--监听页面加载 * 生命周期函数--监听页面加载
*/ */
onLoad: function (options) { onLoad: function (options) {
this.loadLoveRanking()
this.setData({
timestamp: getTimestamp(),
})
}, },
// 加载 爱心互助排行榜
/** loadLoveRanking() {
* 生命周期函数--监听页面初次渲染完成 this.setData({
*/ loveRankingList: [],
onReady: function () { preloadVisible: true
})
api.leaderboard().then(res => {
this.setData({
datalenght: res.data.length
})
res.data.forEach((item, index) => {
this.data.loveRankingList.push(item)
})
this.setData({
loveRankingList: this.data.loveRankingList,
preloadVisible: false
})
}).catch(() => {
this.setData({
loveRankingList: [],
preloadVisible: false
})
})
}, },
/** /**
* 生命周期函数--监听页面显示 * 生命周期函数--监听页面显示
*/ */
onShow: function () { onShow: function () {
this.pulldownRefresh()
if (!app.globalData.previewImage) {
console.log('过滤previewImage引起的onShow')
}
app.globalData.previewImage = false
}, },
/** /**
@ -83,18 +122,125 @@ Page({
}, },
// 参与记录切换
onButtonChange: function (e) {
const list = this.data.typeList
let that = this;
list.forEach(item => {
if (item.type === e.currentTarget.dataset.type) {
item.select = true
} else {
item.select = false
}
})
that.setData({
typeList: list,
selectedTab_B: e.currentTarget.dataset.type
})
this.pulldownRefresh()
},
/** /**
* 页面相关事件处理函数--监听用户下拉动作 * 生命周期函数--监听页面初次渲染完成
*/ */
onPullDownRefresh: function () { onReady: function () {
this.pullDownRefresh = this.selectComponent('#pulldown-refresh')
},
onPageScroll(e) {
this.pullDownRefresh.onPageScroll(e)
}, },
/** /**
* 页面上拉触底事件的处理函数 * 页面上拉触底事件的处理函数
*/ */
onReachBottom: function () { onReachBottom: function () {
this.setData({
loadMoreVisible: true
})
if (this.data.loadMoreType === 'loading') {
this.setData({
pageNo: this.data.pageNo + 1
})
this.getSignedList()
}
},
// 列表 下拉刷新, 初始化加载
pulldownRefresh() {
this.setData({
pageNo: 1,
pageSize: 10,
loadMoreVisible: false,
loadMoreType: 'none',
preloadVisible: true,
signedList: [],
timestamp: getTimestamp()
})
const para = {
pageIndex: this.data.pageNo,
pageSize: this.data.pageSize,
timestamp: this.data.timestamp,
actType: this.data.selectedTab_B.substr(3, 1)
}
api.getSignedList(para).then(res => {
this.pullDownRefresh.stopRefresh()
console.log('已报名活动', res)
this.setData({
signedList: [...res.data],
loadMoreType: res.data.length === 10 ? 'loading' : 'none',
preloadVisible: false
})
}).catch(err => {
this.pullDownRefresh.stopRefresh()
this.setData({
signedList: [],
loadMoreType: 'none',
preloadVisible: false
})
console.log(err)
})
},
// 列表 上拉加载
getSignedList() {
console.log('+++++++++++++++++++++++++')
const para = {
pageIndex: this.data.pageNo,
pageSize: this.data.pageSize,
timestamp: this.data.timestamp,
actType: this.data.selectedTab_B.substr(3, 1)
}
api.getSignedList(para).then(res => {
console.log('已报名活动', res.data.length)
this.setData({
signedList: [...this.data.signedList, ...res.data],
loadMoreType: res.data.length === 10 ? 'loading' : 'none',
preloadVisible: false
})
}).catch(err => {
this.setData({
signedList: [],
loadMoreType: 'none',
preloadVisible: false
})
console.log(err)
}).finally(() => {
this.pullDownRefresh.stopRefresh()
})
},
// 查看详情
toDetail(e) {
if (this.data.selectedTab === 'tab4') {
wx.navigateTo({
url: `/subpages/heart/pages/refusedOrEndedDetail/refusedOrEndedDetail?id=${e.detail.detailId}`
})
} else if (e.detail.actCurrentState == 5) {
wx.navigateTo({
url: `/subpages/heart/pages/cancelDetail/cancelDetail?id=${e.detail.detailId}`
})
} else {
wx.navigateTo({
url: `/subpages/heart/pages/heartDetail/heartDetail?id=${e.detail.detailId}`
})
}
}, },
/** /**

9
subpages/heart/pages/leaderboardNew/leaderboardNew.json

@ -1,3 +1,10 @@
{ {
"navigationBarTitleText": "志愿积分" "navigationBarTitleText": "志愿积分榜",
"usingComponents": {
"preload-loveranking-item": "./components/preloadLoverankingItem/preloadLoverankingItem",
"activity-item": "./components/activityItem/activityItem",
"pulldown-refresh": "/components/pullDownRefresh/pullDownRefresh",
"load-more": "/components/loadMore/loadMore",
"preload-activity-item": "./components/preloadActivityItem/preloadActivityItem"
}
} }

53
subpages/heart/pages/leaderboardNew/leaderboardNew.wxml

@ -1,6 +1,6 @@
<!-- tabbar --> <!-- tabbar -->
<view class="tab-bar"> <view class="tab-bar">
<view class="tab tab1 {{selectTab === 'tab1' ? 'select-tab' : ''}}" data-tab="tab1" bindtap="onTabChange">积分排行 <view class="tab tab1 {{selectTab === 'tab1' ? 'select-tab' : ''}}" data-tab="tab1" bindtap="onTabChange">志愿排行
</view> </view>
<view class="tab tab2 {{selectTab === 'tab2' ? 'select-tab' : ''}}" data-tab="tab2" bindtap="onTabChange">参与纪录 <view class="tab tab2 {{selectTab === 'tab2' ? 'select-tab' : ''}}" data-tab="tab2" bindtap="onTabChange">参与纪录
</view> </view>
@ -8,14 +8,61 @@
</view> </view>
<!-- 积分排行 --> <!-- 积分排行 -->
<block wx:if="{{selectTab === 'tab1'}}"> <block wx:if="{{selectTab === 'tab1'}}">
<view class="bottom">
<block wx:if="{{loveRankingList.length === 0 && preloadVisible}}">
<preload-loveranking-item wx:for="{{[1,2,3,4]}}" wx:for-index="index" wx:key="index">
</preload-loveranking-item>
</block>
<block wx:elif="{{loveRankingList.length > 0}}">
<view class="list-item" wx:for-item="item" wx:key="index" wx:for-index="index" wx:for="{{loveRankingList}}">
<view class="num {{index === 0 ? 'color1' : index === 1 ? 'color2' : index === 2 ? 'color3' : ''}}">
{{index + 1}}</view>
<image class="avatar" src="{{item.faceImg}}" />
<view class="info">
<view class="name">{{item.nickname}}</view>
<view class="info-detail">
<image class="heart-time" src="../../images/aixin.png"></image>
<view> 爱心时长 {{item.kindnessTime}}分钟</view>
<image class="enter-times" src="../../images/bofangcishu.png"></image>
<view> 参加次数 {{item.participationNum}}次</view>
</view>
</view>
</view>
</block>
<block wx:if="{{datalenght == 0}}">
<view class="project-nodata">
<image class="nodata-image" src="../../../../images/mine/project-nodata.png" />
<view class="nodata-tip">暂无排名</view>
<view class="nodata-tip">快来参加吧</view>
</view>
</block>
</view>
</block> </block>
<!-- 参与记录 --> <!-- 参与记录 -->
<block wx:else> <view hidden="{{jilu}}">
<view class="tab-item"> <view class="tab-item">
<button wx:for="{{typeList}}" wx:key="index" wx:for-index="index" bindtap="onButtonChange" hover-class="hover-btn" data-type="{{item.type}}" id="item-{{ item.type }}" class="{{item.select ? 'font-w' : 'font-b'}}"> <button wx:for="{{typeList}}" wx:key="index" wx:for-index="index" bindtap="onButtonChange" hover-class="hover-btn"
data-type="{{item.type}}" id="item-{{ item.type }}" class="{{item.select ? 'font-w' : 'font-b'}}">
{{item.name}} {{item.name}}
</button> </button>
</view> </view>
<pulldown-refresh id="pulldown-refresh" bind:pullDownRefresh="pulldownRefresh">
<view class="activity-list" slot="content">
<block wx:if="{{preloadVisible}}">
<preload-activity-item wx:for="{{[1,2]}}" wx:for-index="index" wx:for-item="item" wx:key="{{index}}">
</preload-activity-item>
</block>
<block wx:elif="{{signedList.length > 0 && !preloadVisible}}">
<activity-item wx:for="{{signedList}}" activityItemObj="{{item}}" wx:for-index="index" wx:for-item="item"
bind:toDetail="toDetail" actType="{{selectedTab}}" wx:key="{{index}}">
</activity-item>
</block> </block>
<view class="no-data" wx:elif="{{signedList.length === 0 && !preloadVisible}}">暂无数据</view>
</view>
</pulldown-refresh>
<load-more loadMoreVisible="{{loadMoreVisible}}" loadMoreType="{{loadMoreType}}"></load-more>
</view>

140
subpages/heart/pages/leaderboardNew/leaderboardNew.wxss

@ -93,3 +93,143 @@ button::after {
.tab-item .hover-btn { .tab-item .hover-btn {
box-shadow: 0px 0px 10px 0px rgba(188, 0, 5, 0.22); box-shadow: 0px 0px 10px 0px rgba(188, 0, 5, 0.22);
} }
/* 爱心排行 */
.bottom {
width: 100%;
box-sizing: border-box;
background: #fff;
margin-top: 17rpx;
padding: 0 30rpx;
}
.bottom .love-ranking-list {
width: 100%;
background: #fff;
border-radius: 16rpx;
box-sizing: border-box;
padding: 0 20rpx;
position: relative;
top: -10rpx;
}
.bottom .list-item {
width: 100%;
height: 140rpx;
display: flex;
align-items: center;
}
.bottom .list-item+.list-item {
border-top: 1rpx solid #e5e5e5;
}
.bottom .list-item .num {
font-size: 36rpx;
color: #333;
font-weight: bolder;
width: 60rpx;
text-indent: 6rpx;
}
.bottom .list-item .num.color1 {
color: #D42E31;
}
.bottom .list-item .num.color2 {
color: #DD5800;
}
.bottom .list-item .num.color3 {
color: #FFA800;
}
.bottom .list-item .avatar {
width: 90rpx;
height: 90rpx;
object-fit: cover;
border-radius: 50%;
margin-right: 15rpx;
}
.bottom .list-item .info {
width: calc(100% - 105rpx);
}
.bottom .list-item .info .name {
font-size: 32rpx;
color: #333;
line-height: 52rpx;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
}
.bottom .list-item .info .info-detail {
font-size: 24rpx;
color: #999;
display: flex;
align-items: center;
}
.bottom .list-item .info .info-detail .heart-time {
width: 24rpx;
height: 24rpx;
object-fit: cover;
margin-right: 6rpx;
}
.bottom .list-item .info .info-detail .enter-times {
width: 24rpx;
height: 24rpx;
object-fit: cover;
margin-right: 6rpx;
margin-left: 20rpx;
}
.project-nodata {
width: 100%;
height: calc(100vh - 300rpx);
background: #f7f7f7;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}
.project-nodata .nodata-image {
width: 256rpx;
height: 245rpx;
object-fit: cover;
}
.project-nodata .nodata-tip {
font-size: 28rpx;
color: #bcbcbc;
height: 50rpx;
line-height: 50rpx;
}
/* 参与记录样式 */
.activity-list {
width: 100%;
min-height: calc(100vh - 500rpx);
box-sizing: border-box;
padding: 15rpx 20rpx;
}
.activity-list .no-data {
width:100%;
height: calc(100vh - 538rpx);
display: flex;
align-items: center;
justify-content: center;
font-size: 30rpx;
color: #999;
background: #f7f7f7;
}

11
utils/activity.js

@ -1,7 +1,9 @@
var fly = require('./request.js') var fly = require('./request.js')
module.exports = { module.exports = {
getActivityList: getActivityList, getActivityList: getActivityList,
bannerList bannerList,
bannerListV2,
volunteerlist
} }
function getActivityList(params) { function getActivityList(params) {
@ -12,3 +14,10 @@ function bannerList() {
return fly.get('heart/act/banner/list') return fly.get('heart/act/banner/list')
} }
function bannerListV2() {
return fly.get('heart/actbanner/banner/list')
}
// 志愿者列表
function volunteerlist(params) {
return fly.get('app-user/volunteer/list',params)
}

Loading…
Cancel
Save