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. 22
      pages/heartNew/components/volunteer/volunteer.wxml
  4. 15
      pages/heartNew/components/volunteer/volunteer.wxss
  5. 237
      pages/heartNew/heartNew.js
  6. 38
      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. 214
      subpages/heart/pages/leaderboardNew/leaderboardNew.js
  13. 9
      subpages/heart/pages/leaderboardNew/leaderboardNew.json
  14. 69
      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 {
position: absolute;
z-index: 999;
z-index: 955;
font-size: 24rpx;
color: #fff;
width: 92rpx;
@ -63,7 +63,7 @@
/* object-fit: cover; *//* right: 0;
top: 20rpx; */
position: absolute;
z-index: 9999;
z-index: 955;
}
.infos {

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

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

22
pages/heartNew/components/volunteer/volunteer.wxml

@ -1,18 +1,6 @@
<view class="box">
<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 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 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 class="item">
<image src="{{volunteerItemObj.faceImg}}" />
<view class="name">{{volunteerItemObj.nickname}}</view>
<view class="autograph">{{volunteerItemObj.volunteerSignature}}</view>
</view>
<view class="show">*按姓氏拼音排序</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;
height: 282rpx;
margin-top: 20rpx;
@ -17,21 +10,21 @@
align-items: center;
}
.box .item image {
.item image {
width: 110rpx;
height: 110rpx;
border-radius: 50%;
margin-top: 40rpx;
}
.box .item .name {
.item .name {
margin-top: 11rpx;
font-size: 30rpx;
font-weight: bold;
color: rgba(51, 51, 51, 1);
}
.box .item .autograph {
.item .autograph {
margin-top: 18rpx;
font-size:26rpx;
font-weight:500;

237
pages/heartNew/heartNew.js

@ -1,5 +1,9 @@
// pages/heartNew/heartNew.js
const app = getApp()
var api = require('../../utils/activity.js')
import {
getTimestamp
} from '../../utils/common'
Page({
/**
@ -10,36 +14,129 @@ Page({
navigationHeight: 0, // 自定义头部导航栏高度
selectedTab: 'tab0',
// 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',
}],
banner: [],
indicatorDots: false, //指示点
autoplay: true, //true false,//自动播放
circular: true, //衔接滑动
interval: 4000, //自动播放间隔时长(ms)
duration: 500, //幻灯片切换时长(ms)
currentSwiper: 0
currentSwiper: 0,
// 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) {
this.bannerListV2()
this.setData({
statusHeight: app.globalData.deviceInfo.statusHeight,
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 切换
tabBarChange(e) {
console.log(e.currentTarget.dataset.tab)
if (e.currentTarget.dataset.tab == 'tab3') {
this.setData({
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({
url: `/subpages/heart/pages/leaderboardNew/leaderboardNew`
})
@ -48,6 +145,43 @@ Page({
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() {
wx.navigateBack({
@ -55,25 +189,25 @@ Page({
})
},
// banner 切换
swiperChange: function(e) {
swiperChange: function (e) {
this.setData({
currentSwiper: e.detail.current
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
// 通过判断列表的长度断定是否显示加载中
toActDetailDown(e) {
if (e.detail.listLength !== this.data.pageSize) {
this.setData({
loadMoreVisible: true,
loadMoreType: 'none',
})
}
this.setData({
actId: e.detail.actId,
listLength: e.detail.listLength
})
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
@ -93,14 +227,55 @@ Page({
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
this.bannerListV2()
},
bannerListV2: function () {
let that = this
api.bannerList().then(function (res) {
that.setData({
banner: res.data
})
wx.stopPullDownRefresh();
})
},
/**
* 页面上拉触底事件的处理函数
*/
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 () {
}
},
//跳转志愿者认证页面
govolunteer() {
wx.navigateTo({
url: `/subpages/heart/pages/volunteer/volunteer`
})
},
})

38
pages/heartNew/heartNew.wxml

@ -1,14 +1,12 @@
<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" />
<view class="navigation" style="height: {{navigationHeight}}px; top: {{statusHeight}}px;">
<view class="goback" bindtap="goback">
<image src="../../images/goback.png" />
</view>
<view class="title">
<view class="title-right">志愿者去哪儿</view>
</view>
<view class="title">
<view class="title-right">志愿者去哪儿</view>
</view>
<!-- 志愿者去哪儿 -->
</view>
</view>
@ -19,7 +17,7 @@
<view class="grid">
<image src="https://epdc-kongcun.elinkit.com.cn/epdcFile/M00/00/09/rBAB717MflOADIYLAACi6KzN7k4722.png" />
</view>
<view class="volunteer">
<view class="volunteer" bindtap="govolunteer">
<image src="https://epdc-kongcun.elinkit.com.cn/epdcFile/M00/00/09/rBAB717MhrKAB80nAAApr5c7VJQ292.png" />
</view>
</view>
@ -32,7 +30,7 @@
<block wx:if="{{banner.length > 0}}">
<block wx:for="{{banner}}" wx:key="*this">
<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" />
</view>
</swiper-item>
@ -41,11 +39,10 @@
<block wx:else>
<swiper-item>
<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>
</swiper-item>
</block>
</swiper>
<!-- 重置小圆点的样式 -->
<view class="dots">
@ -54,7 +51,6 @@
</block>
</view>
</view>
</view>
</view>
<view class="tab-all">
@ -69,16 +65,26 @@
精彩说说
</view>
<view class="tab tab3 {{selectedTab === 'tab3' ? 'select' : ''}}" data-tab="tab3" bindtap="tabBarChange">
志愿积分
志愿积分
</view>
<view class="select-bar {{selectedTab}}"></view>
</view>
</view>
<block wx:if="{{ selectedTab == 'tab0' }}">
<view class="details-top">2222</view>
</block>
<block wx:elif="{{ selectedTab == 'tab1' }}">
<!-- 订单多多列表 -->
<view class="details-top" hidden="{{dingdan}}">
<activity bind:toActDetail="toActDetailDown" id="state-0" state="0"></activity>
</view>
<!-- 志友朵朵 -->
<block wx:if="{{ selectedTab == 'tab1' }}">
<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>
</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%;
top: 0;
left: 0;
z-index: 888;
z-index: 999;
}
.header .header-bg {
@ -128,7 +128,7 @@ page {
height: 300rpx;
margin-left: 30rpx;
background-color: #fff;
z-index: 999;
z-index: 997;
margin-top: -36rpx;
box-shadow: 0px 6px 21px 0px rgba(122, 122, 122, 0.23);
border-radius: 14rpx;
@ -294,7 +294,7 @@ button:last-child {
width: 100%;
height: 370rpx;
background-color: #fff;
z-index: 998;
z-index: 996;
}
@ -365,5 +365,21 @@ button:last-child {
/* 内容 */
.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%
}
}

214
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({
/**
@ -6,67 +8,104 @@ Page({
*/
data: {
selectTab: 'tab1',
selectedTab_B: 'tab0',
typeList: [{ //排名方式:0-周,1-月
type: '0',
type: 'tab0',
name: '审核中',
select: true
},
{
type: '1',
type: 'tab1',
name: '已通过',
select: false
},
{
type: '2',
type: 'tab4',
name: '未通过',
select: false
},{
type: '3',
}, {
type: 'tab5',
name: '已结束',
select: false
}
],
// 积分排行榜相关
datalenght: 0,
loveRankingList: [],
preloadVisible: true,
// 列表相关
loadMoreVisible: false,
loadMoreType: 'none',
pageNo: 1,
pageSize: 10,
signedList: [],
timer: '',
timestamp: getTimestamp(),
jilu: true
},
// tab 切换
onTabChange(e) {
this.loadLoveRanking()
this.setData({
selectTab: e.currentTarget.dataset.tab,
})
if (e.currentTarget.dataset.tab == 'tab2') {
this.setData({
jilu: false,
})
this.getSignedList()
} else {
this.setData({
jilu: true,
})
}
},
// 参与记录切换
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,
})
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
this.loadLoveRanking()
this.setData({
timestamp: getTimestamp(),
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
// 加载 爱心互助排行榜
loadLoveRanking() {
this.setData({
loveRankingList: [],
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 () {
this.pulldownRefresh()
if (!app.globalData.previewImage) {
console.log('过滤previewImage引起的onShow')
}
app.globalData.previewImage = false
},
/**
@ -83,18 +122,125 @@ Page({
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
// 参与记录切换
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()
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
this.pullDownRefresh = this.selectComponent('#pulldown-refresh')
},
onPageScroll(e) {
this.pullDownRefresh.onPageScroll(e)
},
/**
* 页面上拉触底事件的处理函数
*/
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"
}
}

69
subpages/heart/pages/leaderboardNew/leaderboardNew.wxml

@ -1,21 +1,68 @@
<!-- tabbar -->
<view class="tab-bar">
<view class="tab tab1 {{selectTab === 'tab1' ? 'select-tab' : ''}}" data-tab="tab1" bindtap="onTabChange">积分排行
</view>
<view class="tab tab2 {{selectTab === 'tab2' ? 'select-tab' : ''}}" data-tab="tab2" bindtap="onTabChange">参与纪录
</view>
<view class="select-bar {{selectTab === 'tab1' ? 'tab1' : 'tab2'}}"></view>
<view class="tab tab1 {{selectTab === 'tab1' ? 'select-tab' : ''}}" data-tab="tab1" bindtap="onTabChange">志愿排行
</view>
<view class="tab tab2 {{selectTab === 'tab2' ? 'select-tab' : ''}}" data-tab="tab2" bindtap="onTabChange">参与纪录
</view>
<view class="select-bar {{selectTab === 'tab1' ? 'tab1' : 'tab2'}}"></view>
</view>
<!-- 积分排行 -->
<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 wx:else>
<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'}}">
{{item.name}}
</button>
<view hidden="{{jilu}}">
<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'}}">
{{item.name}}
</button>
</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>
<view class="no-data" wx:elif="{{signedList.length === 0 && !preloadVisible}}">暂无数据</view>
</view>
</block>
</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 {
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')
module.exports = {
getActivityList: getActivityList,
bannerList
bannerList,
bannerListV2,
volunteerlist
}
function getActivityList(params) {
@ -12,3 +14,10 @@ function bannerList() {
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