From e54dedc458d1abe5ceafd93f7d33ad14025f834a Mon Sep 17 00:00:00 2001 From: zhaoyongnian <541231643@qq.com> Date: Tue, 26 May 2020 15:23:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BF=97=E6=84=BF=E8=80=85=E6=94=B9=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app.json | 1 + pages/heartNew/heartNew.js | 7 + pages/heartNew/heartNew.wxml | 18 +++ pages/heartNew/heartNew.wxss | 86 ++++++++++ .../components/activityItem/activityItem.js | 39 +++++ .../components/activityItem/activityItem.json | 3 + .../components/activityItem/activityItem.wxml | 31 ++++ .../components/activityItem/activityItem.wxss | 148 ++++++++++++++++++ .../preloadActivityItem.js | 5 + .../preloadActivityItem.json | 3 + .../preloadActivityItem.wxml | 9 ++ .../preloadActivityItem.wxss | 61 ++++++++ .../pages/leaderboardNew/leaderboardNew.js | 106 +++++++++++++ .../pages/leaderboardNew/leaderboardNew.json | 3 + .../pages/leaderboardNew/leaderboardNew.wxml | 21 +++ .../pages/leaderboardNew/leaderboardNew.wxss | 95 +++++++++++ 16 files changed, 636 insertions(+) create mode 100644 subpages/heart/pages/leaderboardNew/components/activityItem/activityItem.js create mode 100644 subpages/heart/pages/leaderboardNew/components/activityItem/activityItem.json create mode 100644 subpages/heart/pages/leaderboardNew/components/activityItem/activityItem.wxml create mode 100644 subpages/heart/pages/leaderboardNew/components/activityItem/activityItem.wxss create mode 100644 subpages/heart/pages/leaderboardNew/components/preloadActivityItem/preloadActivityItem.js create mode 100644 subpages/heart/pages/leaderboardNew/components/preloadActivityItem/preloadActivityItem.json create mode 100644 subpages/heart/pages/leaderboardNew/components/preloadActivityItem/preloadActivityItem.wxml create mode 100644 subpages/heart/pages/leaderboardNew/components/preloadActivityItem/preloadActivityItem.wxss create mode 100644 subpages/heart/pages/leaderboardNew/leaderboardNew.js create mode 100644 subpages/heart/pages/leaderboardNew/leaderboardNew.json create mode 100644 subpages/heart/pages/leaderboardNew/leaderboardNew.wxml create mode 100644 subpages/heart/pages/leaderboardNew/leaderboardNew.wxss diff --git a/app.json b/app.json index 5081102..a99fe59 100644 --- a/app.json +++ b/app.json @@ -89,6 +89,7 @@ "pages": [ "pages/heartDetail/heartDetail", "pages/leaderboard/leaderboard", + "pages/leaderboardNew/leaderboardNew", "pages/myNews/myNews", "pages/clockIn/clockIn", "pages/volunteer/volunteer", diff --git a/pages/heartNew/heartNew.js b/pages/heartNew/heartNew.js index f8241cf..25767b2 100644 --- a/pages/heartNew/heartNew.js +++ b/pages/heartNew/heartNew.js @@ -8,6 +8,7 @@ Page({ data: { statusHeight: 0, // 自定义头部状态栏高度 navigationHeight: 0, // 自定义头部导航栏高度 + selectedTab: 'tab0', }, /** @@ -19,6 +20,12 @@ Page({ navigationHeight: app.globalData.deviceInfo.navigationHeight, }) }, + // tab 切换 + tabBarChange(e) { + this.setData({ + selectedTab: e.currentTarget.dataset.tab + }) + }, /** * 生命周期函数--监听页面初次渲染完成 diff --git a/pages/heartNew/heartNew.wxml b/pages/heartNew/heartNew.wxml index 6672990..03b993f 100644 --- a/pages/heartNew/heartNew.wxml +++ b/pages/heartNew/heartNew.wxml @@ -16,4 +16,22 @@ + + + + + + 订单多多 + + + 志友朵朵 + + + 精彩说说 + + + 志愿积分 + + + \ No newline at end of file diff --git a/pages/heartNew/heartNew.wxss b/pages/heartNew/heartNew.wxss index 0dc0d2d..0d14c6b 100644 --- a/pages/heartNew/heartNew.wxss +++ b/pages/heartNew/heartNew.wxss @@ -91,4 +91,90 @@ page { .belong-grid .newbelong-grid .volunteer image { width: 100%; height: 100%; +} + +/* banner 样式 */ +.banner { + position: absolute; + width: calc(100% - 60rpx); + height: 300rpx; + margin-left: 30rpx; + background-color: royalblue; + z-index: 999; + margin-top: -36rpx; + box-shadow: 0px 6px 21px 0px rgba(122, 122, 122, 0.23); + border-radius: 14rpx; +} + +.tab-all { + position: absolute; + width: 100%; + height: 370rpx; + background-color: #fff; + z-index: 998; +} + + +.tab-bar { + margin-top: 278rpx; + width: 100%; + height: 92rpx; + background: #fff; + display: flex; + align-items: center; + position: relative; +} + +.tab-bar .tab { + font-size: 30rpx; + font-weight: 500; + color: rgba(171, 171, 171, 1); + width: 25%; + height: 100%; + line-height: 92rpx; + /* text-indent: 20rpx; */ + text-align: center; + position: relative; + z-index: 10; +} + +.tab-bar .tab.select { + font-size: 32rpx; + font-weight: bold; + color: rgba(229, 15, 0, 1); +} + +.tab-bar .select-bar { + position: absolute; + left: 14rpx; + bottom: 0rpx; + width: 30rpx; + height: 8rpx; + border-radius: 4rpx; + background: #fc5555; + z-index: 1; +} + +.tab-bar .tab0.select-bar { + left: calc(12.5% - 15rpx); + transition: left 0.3s linear; +} + +.tab-bar .tab1.select-bar { + left: calc(37.5% - 15rpx); + transition: left 0.3s linear; +} + +.tab-bar .tab2.select-bar { + left: calc(62.5% - 15rpx); + transition: left 0.3s linear; +} + +.tab-bar .tab3.select-bar { + left: calc(87.5% - 15rpx); + transition: left 0.3s linear; +} + +.tab-bar .hover-tab { + background: #f7f7f7; } \ No newline at end of file diff --git a/subpages/heart/pages/leaderboardNew/components/activityItem/activityItem.js b/subpages/heart/pages/leaderboardNew/components/activityItem/activityItem.js new file mode 100644 index 0000000..d4c79d2 --- /dev/null +++ b/subpages/heart/pages/leaderboardNew/components/activityItem/activityItem.js @@ -0,0 +1,39 @@ +const app = getApp() + +Component({ + data: { + imageUrl: '../../../../images/uploadImg3.png' + }, + properties: { + activityItemObj: { + type: Object, + value: {} + }, + actType: { + type: String, + value: 'tab0' + } + }, + lifetimes: { + attached () { + + } + }, + pageLifetimes: { + show () { + + } + }, + methods: { + // 预览图片 + previewImage (e) { + app.globalData.previewImage = true + wx.previewImage({ + urls: [e.currentTarget.dataset.src] + }) + }, + toDetail (e) { + this.triggerEvent('toDetail', {detailId: e.currentTarget.dataset.detailid, actCurrentState: e.currentTarget.dataset.state}) + } + } +}) \ No newline at end of file diff --git a/subpages/heart/pages/leaderboardNew/components/activityItem/activityItem.json b/subpages/heart/pages/leaderboardNew/components/activityItem/activityItem.json new file mode 100644 index 0000000..32640e0 --- /dev/null +++ b/subpages/heart/pages/leaderboardNew/components/activityItem/activityItem.json @@ -0,0 +1,3 @@ +{ + "component": true +} \ No newline at end of file diff --git a/subpages/heart/pages/leaderboardNew/components/activityItem/activityItem.wxml b/subpages/heart/pages/leaderboardNew/components/activityItem/activityItem.wxml new file mode 100644 index 0000000..7df4fee --- /dev/null +++ b/subpages/heart/pages/leaderboardNew/components/activityItem/activityItem.wxml @@ -0,0 +1,31 @@ + + + + {{activityItemObj.actCurrentState == 0 ? '报名中' : activityItemObj.actCurrentState == 1 ? '已报满' : activityItemObj.actCurrentState == 2 ? '未开始' : activityItemObj.actCurrentState == 3 ? '进行中' : activityItemObj.actCurrentState == 4 ? '已结束' : activityItemObj.actCurrentState == 5 ? '已取消' : ''}} + + + {{activityItemObj.title}} + + + + 活动时间: + + + {{activityItemObj.actStartTime}}至 + {{activityItemObj.actEndTime}} + + + + + + 活动地点: + + {{activityItemObj.actAddress}} + + + 活动名额 {{activityItemObj.actQuotaCategory == 0 ? '不限' : activityItemObj.actQuota + '人'}} + 已报名 {{activityItemObj.signupNum}}人 + + + + \ No newline at end of file diff --git a/subpages/heart/pages/leaderboardNew/components/activityItem/activityItem.wxss b/subpages/heart/pages/leaderboardNew/components/activityItem/activityItem.wxss new file mode 100644 index 0000000..19a6ccd --- /dev/null +++ b/subpages/heart/pages/leaderboardNew/components/activityItem/activityItem.wxss @@ -0,0 +1,148 @@ +.activity-item { + width: 100%; + height: 290rpx; + border-radius: 16rpx; + box-sizing: border-box; + padding: 20rpx; + display: flex; + background: #fff; + margin-bottom: 20rpx; +} + +.activity-item .left { + width: 220rpx; + height: 246rpx; + border-radius: 16rpx; + overflow: hidden; + margin-right: 20rpx; + position: relative; +} + +.activity-item .left .activity-image { + width: 100%; + height: 100%; + object-fit: cover; +} + +.activity-item .left .user-state { + position: absolute; + left: 0; + top: 0; + font-size: 24rpx; + color: #fff; + width: 92rpx; + height: 36rpx; + line-height: 36rpx; + text-align: center; + border-radius: 16rpx 0; + background: #d1d1d1; +} + +.activity-item .right { + width: calc(100% - 240rpx); + position: relative; +} + +.activity-item .right .signed-logo { + width: 174rpx; + height: 118rpx; + object-fit: cover; + right: 0; + top: 20rpx; + position: absolute; +} + +.activity-item .right .title { + font-size: 36rpx; + color: #333; + line-height: 44rpx; + display: -webkit-box; + overflow: hidden; + text-overflow: ellipsis; + word-wrap: break-word; + white-space: normal !important; + -webkit-line-clamp: 2; + -webkit-box-orient: vertical; +} + +.activity-item .right .activity-time { + font-size: 24rpx; + color: #a8a8a8; + line-height: 34rpx; + display: flex; +} + +.activity-item .right .activity-time .activity-time-title { + display: flex; + align-items: center; + width: 150rpx; + height: 34rpx; +} + +.activity-item .right .activity-time .activity-time-title image { + width: 24rpx; + height: 24rpx; + object-fit: cover; + margin-right: 4rpx; +} + +.activity-item .right .activity-time .activity-time-content { + width: calc(100% - 150rpx); +} + +.activity-item .right .activity-address { + font-size: 24rpx; + color: #a8a8a8; + line-height: 34rpx; + display: flex; + align-items: center; +} + +.activity-item .right .activity-address .activity-address-title { + display: flex; + align-items: center; + width: 150rpx; +} + +.activity-item .right .activity-address .activity-address-title image { + width: 24rpx; + height: 24rpx; + object-fit: cover; + margin-right: 4rpx; +} + +.activity-item .right .activity-address .activity-address-content { + width: calc(100% - 150rpx); + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; +} + +.activity-item .right .activity-info { + display: flex; + align-items: center; + margin-top: 20rpx; +} + +.activity-item .right .activity-info .num { + height: 42rpx; + line-height: 42rpx; + background: rgba(217, 217, 217, 0.4); + text-align: center; + font-size: 26rpx; + color: #666; + border-radius: 21rpx; + margin-right: 10rpx; + padding: 0 20rpx; +} + +.activity-item .right .activity-info .already { + height: 42rpx; + line-height: 42rpx; + text-align: center; + background: rgba(252, 85, 85, 0.1); + color: #fc5555; + font-size: 26rpx; + border-radius: 21rpx; + padding: 0 20rpx; +} diff --git a/subpages/heart/pages/leaderboardNew/components/preloadActivityItem/preloadActivityItem.js b/subpages/heart/pages/leaderboardNew/components/preloadActivityItem/preloadActivityItem.js new file mode 100644 index 0000000..a8352da --- /dev/null +++ b/subpages/heart/pages/leaderboardNew/components/preloadActivityItem/preloadActivityItem.js @@ -0,0 +1,5 @@ +Component({ + data: { + + } +}) \ No newline at end of file diff --git a/subpages/heart/pages/leaderboardNew/components/preloadActivityItem/preloadActivityItem.json b/subpages/heart/pages/leaderboardNew/components/preloadActivityItem/preloadActivityItem.json new file mode 100644 index 0000000..32640e0 --- /dev/null +++ b/subpages/heart/pages/leaderboardNew/components/preloadActivityItem/preloadActivityItem.json @@ -0,0 +1,3 @@ +{ + "component": true +} \ No newline at end of file diff --git a/subpages/heart/pages/leaderboardNew/components/preloadActivityItem/preloadActivityItem.wxml b/subpages/heart/pages/leaderboardNew/components/preloadActivityItem/preloadActivityItem.wxml new file mode 100644 index 0000000..31e866b --- /dev/null +++ b/subpages/heart/pages/leaderboardNew/components/preloadActivityItem/preloadActivityItem.wxml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/subpages/heart/pages/leaderboardNew/components/preloadActivityItem/preloadActivityItem.wxss b/subpages/heart/pages/leaderboardNew/components/preloadActivityItem/preloadActivityItem.wxss new file mode 100644 index 0000000..65d13d0 --- /dev/null +++ b/subpages/heart/pages/leaderboardNew/components/preloadActivityItem/preloadActivityItem.wxss @@ -0,0 +1,61 @@ +.preload-activity-item { + width: 100%; + height: 290rpx; + border-radius: 16rpx; + box-sizing: border-box; + padding: 20rpx; + display: flex; + background: #fff; + margin-bottom: 20rpx; +} +.preload-activity-item .left { + width: 220rpx; + height: 246rpx; + border-radius: 16rpx; + overflow: hidden; + margin-right: 20rpx; + background: linear-gradient(90deg, #f2f2f2 25%, #e6e6e6 37%, #f2f2f2 63%); + animation: loading 1.4s ease infinite; + background-size: 400% 100%; +} +.preload-activity-item .right { + width: calc(100% - 240rpx); +} +.preload-activity-item .right .title { + height: 44rpx; + margin-top: 20rpx; + background: linear-gradient(90deg, #f2f2f2 25%, #e6e6e6 37%, #f2f2f2 63%); + animation: loading 1.4s ease infinite; + background-size: 400% 100%; +} +.preload-activity-item .right .activity-time { + height: 34rpx; + margin-top: 20rpx; + background: linear-gradient(90deg, #f2f2f2 25%, #e6e6e6 37%, #f2f2f2 63%); + animation: loading 1.4s ease infinite; + background-size: 400% 100%; +} +.preload-activity-item .right .activity-address { + height: 34rpx; + margin-top: 20rpx; + background: linear-gradient(90deg, #f2f2f2 25%, #e6e6e6 37%, #f2f2f2 63%); + animation: loading 1.4s ease infinite; + background-size: 400% 100%; +} +.preload-activity-item .right .activity-info { + margin-top: 20rpx; + height: 44rpx; + background: linear-gradient(90deg, #f2f2f2 25%, #e6e6e6 37%, #f2f2f2 63%); + animation: loading 1.4s ease infinite; + background-size: 400% 100%; +} + +@keyframes loading { + 0% { + background-position: 100% 50% + } + + 100% { + background-position: 0 50% + } +} \ No newline at end of file diff --git a/subpages/heart/pages/leaderboardNew/leaderboardNew.js b/subpages/heart/pages/leaderboardNew/leaderboardNew.js new file mode 100644 index 0000000..ce7d6a3 --- /dev/null +++ b/subpages/heart/pages/leaderboardNew/leaderboardNew.js @@ -0,0 +1,106 @@ +// subpages/heart/pages/leaderboardNew/leaderboardNew.js +Page({ + + /** + * 页面的初始数据 + */ + data: { + selectTab: 'tab1', + typeList: [{ //排名方式:0-周,1-月 + type: '0', + name: '审核中', + select: true + }, + { + type: '1', + name: '已通过', + select: false + }, + { + type: '2', + name: '未通过', + select: false + },{ + type: '3', + name: '已结束', + select: false + } + ], + }, + // tab 切换 + onTabChange(e) { + this.setData({ + selectTab: e.currentTarget.dataset.tab, + }) + }, + // 参与记录切换 + 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) { + + }, + + /** + * 生命周期函数--监听页面初次渲染完成 + */ + onReady: function () { + + }, + + /** + * 生命周期函数--监听页面显示 + */ + onShow: function () { + + }, + + /** + * 生命周期函数--监听页面隐藏 + */ + onHide: function () { + + }, + + /** + * 生命周期函数--监听页面卸载 + */ + onUnload: function () { + + }, + + /** + * 页面相关事件处理函数--监听用户下拉动作 + */ + onPullDownRefresh: function () { + + }, + + /** + * 页面上拉触底事件的处理函数 + */ + onReachBottom: function () { + + }, + + /** + * 用户点击右上角分享 + */ + onShareAppMessage: function () { + + } +}) \ No newline at end of file diff --git a/subpages/heart/pages/leaderboardNew/leaderboardNew.json b/subpages/heart/pages/leaderboardNew/leaderboardNew.json new file mode 100644 index 0000000..0393dc9 --- /dev/null +++ b/subpages/heart/pages/leaderboardNew/leaderboardNew.json @@ -0,0 +1,3 @@ +{ + "navigationBarTitleText": "志愿积分" +} \ No newline at end of file diff --git a/subpages/heart/pages/leaderboardNew/leaderboardNew.wxml b/subpages/heart/pages/leaderboardNew/leaderboardNew.wxml new file mode 100644 index 0000000..953686e --- /dev/null +++ b/subpages/heart/pages/leaderboardNew/leaderboardNew.wxml @@ -0,0 +1,21 @@ + + + 积分排行 + + 参与纪录 + + + + + + + + + + + + + + \ No newline at end of file diff --git a/subpages/heart/pages/leaderboardNew/leaderboardNew.wxss b/subpages/heart/pages/leaderboardNew/leaderboardNew.wxss new file mode 100644 index 0000000..0822262 --- /dev/null +++ b/subpages/heart/pages/leaderboardNew/leaderboardNew.wxss @@ -0,0 +1,95 @@ +page { + background: #f7f7f7; +} + +.tab-bar { + width: 100%; + height: 90rpx; + background: #fff; + display: flex; + justify-content: space-around; + position: relative; +} + +.tab-bar .tab { + flex: 1; + height: 90rpx; + line-height: 90rpx; + text-align: center; + width: 50%; + font-size: 32rpx; + font-weight: 500; + color: rgba(153, 153, 153, 1); +} + +.tab-bar .select-tab { + color: #E50F00; + font-size: 32rpx; + font-weight: bold; +} + +.tab-bar .select-bar { + width: 40rpx; + height: 8rpx; + border-radius: 5rpx; + background: #E50F00; + position: absolute; + bottom: 0rpx; +} + +.tab-bar .select-bar.tab1 { + left: calc(25% - 15rpx); + transition: left linear 0.4s; +} + +.tab-bar .select-bar.tab2 { + left: calc(75% - 15rpx); + transition: left linear 0.4s; +} + +/* 参与记录 */ +.tab-item { + background: #fff; + height: 80rpx; + width: calc(100% - 60rpx); + padding: 0 30rpx; + display: flex; + align-items: center; +} + +.tab-item button { + position: relative; + display: inline-block; + /* margin: 0 42rpx 0 0; */ + flex-shrink: 0; + /* width: auto !important; */ + width: 164rpx; + height: 52rpx; + min-height: 52rpx !important; + line-height: 52rpx; + border-radius: 30rpx; + padding: 0 20rpx; +} + +button::after { + border: 0rpx; +} + +.tab-item .font-w { + font-size: 30rpx; + font-weight: bold; + color: #fff; + background: linear-gradient(to right, #e95027, #db1a1f); +} + +.tab-item .font-b { + background: #fff; + font-size: 30rpx; + font-weight: 500; + color: #333; + border: 1rpx solid #dbdbdb; +} + +.tab-item .hover-btn { + box-shadow: 0px 0px 10px 0px rgba(188, 0, 5, 0.22); +} \ No newline at end of file