diff --git a/app.json b/app.json index 2486bdc..3e49e54 100644 --- a/app.json +++ b/app.json @@ -68,7 +68,8 @@ "pages/volunteerTeam/volunteerTeam", "pages/teamIntroduction/teamIntroduction", "pages/allianceDetail/allianceDetail", - "pages/leaderboardDetail/leaderboardDetail" + "pages/leaderboardDetail/leaderboardDetail", + "pages/allianceActDetail/allianceActDetail" ] }, { diff --git a/subpages/heart/pages/allianceActDetail/allianceActDetail.js b/subpages/heart/pages/allianceActDetail/allianceActDetail.js new file mode 100644 index 0000000..8bf7f69 --- /dev/null +++ b/subpages/heart/pages/allianceActDetail/allianceActDetail.js @@ -0,0 +1,48 @@ +const api = require("../../utils/api") +import util from "../../../../utils/util" +Page({ + data: { + activeDetail: {}, + activeDetailContent: '', + id: '', + actStartTime: '', + actEndTime: '', + imageList: [], // 精彩瞬间 + }, + onLoad: function (options) { + if (options.id) { + this.setData({ + id: options.id + }) + this.getVolunteerUnionActDetail(options.id) + } + }, + // 获取 + getVolunteerUnionActDetail (id) { + api.getVolunteerUnionActDetail(id).then(res => { + let startTime = res.data.actStartTime.replace(/-/g, '.') + let endTime = res.data.actEndTime.replace(/-/g, '.') + // let arr = res.data.images.sort(util.compare('imgSort')) + // console.log(arr) + let imageList = [] + res.data.images.forEach(item => { + imageList.push(item.url) + }) + this.setData({ + activeDetail: res.data, + actStartTime: startTime.substring(0, startTime.length - 3), + actEndTime: endTime.substring(0, endTime.length - 3), + activeDetailContent: util.formatRichText(res.data.content), + imageList + }) + }).catch(err => { + console.log(err) + }) + }, + preViewImage (e) { + wx.previewImage({ + urls: this.data.imageList, + current: e.currentTarget.dataset.src + }) + }, +}) \ No newline at end of file diff --git a/subpages/heart/pages/allianceActDetail/allianceActDetail.json b/subpages/heart/pages/allianceActDetail/allianceActDetail.json new file mode 100644 index 0000000..d4e2f89 --- /dev/null +++ b/subpages/heart/pages/allianceActDetail/allianceActDetail.json @@ -0,0 +1,6 @@ +{ + "navigationBarTitleText": "活动详情", + "usingComponents": { + "parser": "../../../../components/parser/parser" + } +} \ No newline at end of file diff --git a/subpages/heart/pages/allianceActDetail/allianceActDetail.wxml b/subpages/heart/pages/allianceActDetail/allianceActDetail.wxml new file mode 100644 index 0000000..a93db00 --- /dev/null +++ b/subpages/heart/pages/allianceActDetail/allianceActDetail.wxml @@ -0,0 +1,14 @@ + + + {{activeDetail.title}} + 活动时间: {{actStartTime}}-{{actEndTime}} + 活动简介: + + + + 精彩瞬间 + + + + + diff --git a/subpages/heart/pages/allianceActDetail/allianceActDetail.wxss b/subpages/heart/pages/allianceActDetail/allianceActDetail.wxss new file mode 100644 index 0000000..2d71e75 --- /dev/null +++ b/subpages/heart/pages/allianceActDetail/allianceActDetail.wxss @@ -0,0 +1,42 @@ +page { + background-color: #f7f7f7; +} +.alliance-act-detail { + width: 100%; + overflow: hidden; + background: #fff; + padding: 20rpx; + box-sizing: border-box; +} +.alliance-act { + width: 100%; + margin-bottom: 100rpx; +} +.alliance-act .title{ + font-size: 40rpx; + margin-bottom: 30rpx; + text-align: center; +} +.alliance-act .time{ + font-size: 32rpx; + margin-bottom: 30rpx; +} +.alliance-act .intro{ + font-size: 32rpx; + margin-bottom: 30rpx; +} +.wonderful-title { + font-size: 32rpx; + margin-bottom: 30rpx; +} +.wonderful-list { + display: flex; + flex-wrap: wrap; + justify-content: flex-start; +} +.wonderful-list .wonderful-image { + width: 320rpx; + height: 240rpx; + margin: 0 15rpx; + margin-bottom: 20rpx; +} \ No newline at end of file diff --git a/subpages/heart/pages/allianceDetail/allianceDetail.js b/subpages/heart/pages/allianceDetail/allianceDetail.js index c62caaa..68e588a 100644 --- a/subpages/heart/pages/allianceDetail/allianceDetail.js +++ b/subpages/heart/pages/allianceDetail/allianceDetail.js @@ -3,21 +3,95 @@ import util from "../../../../utils/util" Page({ data: { noticeObj: '', - noticeObjContent: '' + noticeObjContent: '

项目位于合作社院内,紧邻220国道,距离济菏高速平阴县出入口不到2公里, 交通方便、地理位置优越。

项目位于平阴县城西部前阮二村盆三津区内,西临龙桥洼区,东临博士注区。三个洼区都属于黄河淤积平原,土地肥沃,是平阴县主要小麦、玉米、大豆等粮食主产区,项目资源丰富。

项目位于合作社院内,紧邻220国道,距离济菏高速平阴县出入口不到2公里, 交通方便、地理位置优越。

项目位于平阴县城西部前阮二村盆三津区内,西临龙桥洼区,东临博士注区。三个洼区都属于黄河淤积平原,土地肥沃,是平阴县主要小麦、玉米、大豆等粮食主产区,项目资源丰富。

项目位于合作社院内,紧邻220国道,距离济菏高速平阴县出入口不到2公里, 交通方便、地理位置优越。

项目位于平阴县城西部前阮二村盆三津区内,西临龙桥洼区,东临博士注区。三个洼区都属于黄河淤积平原,土地肥沃,是平阴县主要小麦、玉米、大豆等粮食主产区,项目资源丰富。

项目位于合作社院内,紧邻220国道,距离济菏高速平阴县出入口不到2公里, 交通方便、地理位置优越。

项目位于平阴县城西部前阮二村盆三津区内,西临龙桥洼区,东临博士注区。三个洼区都属于黄河淤积平原,土地肥沃,是平阴县主要小麦、玉米、大豆等粮食主产区,项目资源丰富。

', + isShow: false, + isShowBtn: false, // 是否显示 展开-收起 + pageIndex: 1, + pageSize: 10, + loadMoreType: 'none', + loadMoreVisible: false, + activeList: [], + id: '', }, onLoad: function (options) { if (options.id) { + this.setData({ + id: options.id + }) this.getVolunteerUnionDetail(options.id) + this.getVolunteerUnionActiveList() } }, + onReachBottom: function () { + this.setData({ + loadMoreVisible: true + }) + if (this.data.loadMoreType === "loading") { + this.setData({ + pageIndex: this.data.pageIndex + 1 + }) + this.getVolunteerUnionActiveList() + } + }, + // 获取 getVolunteerUnionDetail (id) { api.getVolunteerUnionDetail({ id }).then(res => { this.setData({ noticeObj: res.data, noticeObjContent: util.formatRichText(res.data.content) }) + let query = wx.createSelectorQuery().in(this) + query.select('.alliance-introduce').boundingClientRect() + query.exec(res => { + console.log(res[0].height) + if (res[0].height > 100) { + this.setData({ + isShowBtn: true + }) + } + }) + }).catch(err => { + console.log(err) + }) + }, + getVolunteerUnionActiveList () { + const para = { + pageIndex: this.data.pageIndex, + pageSize: this.data.pageSize, + unionActId: this.data.id + } + api.getVolunteerUnionActList(para).then(res => { + console.log(res) + this.setData({ + activeList: [...this.data.activeList,...res.data], + loadMoreType: res.data.length === this.data.pageSize ? 'loading' : 'none', + loadMoreVisible: res.data.length === this.data.pageSize ? false : true + }) + if (this.data.activeList.length == 0) { + this.setData({ + loadMoreType: 'none', + loadMoreVisible: false, + }) + } }).catch(err => { + this.setData({ + activeList: [], + loadMoreType: 'none', + loadMoreVisible: false, + }) console.log(err) }) + }, + // 展开和收起 富文本内容 + isShowOrHide () { + this.setData({ + isShow: !this.data.isShow + }) + }, + // 前往活动详情 + navigateToActDetail (e) { + wx.navigateTo({ + url: `../allianceActDetail/allianceActDetail?id=${e.currentTarget.dataset.id}` + }) } }) \ No newline at end of file diff --git a/subpages/heart/pages/allianceDetail/allianceDetail.json b/subpages/heart/pages/allianceDetail/allianceDetail.json index 1a0bac0..2109bd4 100644 --- a/subpages/heart/pages/allianceDetail/allianceDetail.json +++ b/subpages/heart/pages/allianceDetail/allianceDetail.json @@ -1,6 +1,7 @@ { "navigationBarTitleText": "详情", "usingComponents": { + "load-more": "/components/loadMore/loadMore", "parser": "../../../../components/parser/parser" } } \ No newline at end of file diff --git a/subpages/heart/pages/allianceDetail/allianceDetail.wxml b/subpages/heart/pages/allianceDetail/allianceDetail.wxml index f4f67c1..7da5e15 100644 --- a/subpages/heart/pages/allianceDetail/allianceDetail.wxml +++ b/subpages/heart/pages/allianceDetail/allianceDetail.wxml @@ -1,3 +1,40 @@ - + + + + + + {{noticeObj.unionName}} + {{noticeObj.contacts}} + {{noticeObj.phone}} + + + + 联盟简介 + + {{isShow ? '收起' : '展开'}} + + + + 共建活动 + + + + + {{item.title}} + + 时间: + + {{item.actStartTime}} 至 + {{item.actEndTime}} + + + + + + + + + diff --git a/subpages/heart/pages/allianceDetail/allianceDetail.wxss b/subpages/heart/pages/allianceDetail/allianceDetail.wxss index 67a8f9a..fb835b7 100644 --- a/subpages/heart/pages/allianceDetail/allianceDetail.wxss +++ b/subpages/heart/pages/allianceDetail/allianceDetail.wxss @@ -1,4 +1,105 @@ +page { + background-color: #f7f7f7; +} .alliance-detail { padding: 20rpx; box-sizing: border-box; +} +.alliance-detail-card { + width: 690rpx; + overflow: hidden; + margin: 20rpx auto; + background: #fff; + box-shadow: 0rpx 5rpx 32rpx 0rpx hsla(0,0%,78%,.56); + border-radius: 14rpx; + padding: 20rpx 20rpx 0 20rpx; + box-sizing: border-box; +} +.alliance-info { + display: flex; + align-items: center; + justify-content: space-around; + margin-bottom: 40rpx; +} +.alliance-info .info-head-img { + width: 180rpx; + height: 180rpx; +} +.alliance-info .info-head-img image{ + width: 100%; + height: 100%; +} +.alliance-info .info-content { + width: 400rpx; +} +.alliance-introduce { + width: 100%; + position: relative; + padding-bottom: 84rpx; +} +.intro-show { + height: auto; + padding-bottom: 80rpx; +} +.intro-hide { + max-height: 350rpx; +} +.alliance-introduce .title{ + font-size: 34rpx; + margin-bottom: 20rpx; +} +.alliance-introduce .bottom { + position: absolute; + bottom: 0; + background: rgba(255, 255, 255, 1); + color: royalblue; + width: 100%; + text-align: center; + padding: 20rpx; + box-sizing: border-box; +} +.alliance-detail-card .active-list { + +} +.active-list .title { + font-size: 34rpx; + margin-bottom: 20rpx; +} +.active-list .active-item { + display: flex; + align-items: center; + margin: 20rpx; +} +.active-list .active-item .active-img { + width: 150rpx; + height: 120rpx; + margin-right: 20rpx; +} +.active-img image { + width: 100%; + height: 100%; +} +.active-list .active-item .active-content { + +} +.active-list .active-item .active-content .active-contacts { + margin-bottom: 10rpx; +} +.time-box { + display: flex; +} +.time-box .time-label { + font-size: 24rpx; + color: silver; + margin-right: 10rpx; +} +.active-list .active-item .active-content .active-time { + font-size: 24rpx; + color: silver; +} +.active-list .active-line { + width: 95%; + height: 1px; + background: #eeeeee; + margin: 20rpx auto; } \ No newline at end of file diff --git a/subpages/heart/pages/allianceList/allianceList.js b/subpages/heart/pages/allianceList/allianceList.js index 6e3fe56..d0c8daa 100644 --- a/subpages/heart/pages/allianceList/allianceList.js +++ b/subpages/heart/pages/allianceList/allianceList.js @@ -10,8 +10,7 @@ Page({ }, onLoad: function (options) { this.setData({ - pageIndex: 1, - dropbylist: [] + pageIndex: 1 }) this.getVolunteerUnionList() }, diff --git a/subpages/heart/pages/allianceList/allianceList.wxml b/subpages/heart/pages/allianceList/allianceList.wxml index cdf8679..7f22a80 100644 --- a/subpages/heart/pages/allianceList/allianceList.wxml +++ b/subpages/heart/pages/allianceList/allianceList.wxml @@ -1,8 +1,12 @@ - {{item.unionName}} - + + + 名称: {{item.unionName}} + 联系人: {{item.contacts}} + 电话: {{item.phone}} + diff --git a/subpages/heart/pages/allianceList/allianceList.wxss b/subpages/heart/pages/allianceList/allianceList.wxss index 95c4eab..533011e 100644 --- a/subpages/heart/pages/allianceList/allianceList.wxss +++ b/subpages/heart/pages/allianceList/allianceList.wxss @@ -11,23 +11,28 @@ page { } .alliance-list .alliance-item { width: 690rpx; - height: 110rpx; display: flex; align-items: center; - justify-content: space-between; + justify-content: space-around; + padding: 20rpx 0; + box-sizing: border-box; } -.alliance-list .alliance-item .alliance-title { - width: 650rpx; +.alliance-item .headpic { + width: 180rpx; + height: 180rpx; +} +.alliance-item .alliance-info { + +} +.alliance-list .alliance-item .title { + width: 450rpx; + margin: 10rpx 0; font-size: 34rpx; color: #333333; overflow: hidden; text-overflow:ellipsis; white-space: nowrap; } -.alliance-list .alliance-item .alliance-icon { - width: 22rpx; - height: 22rpx; -} .alliance-list .list-line { width: 690rpx; height: 1px; diff --git a/subpages/heart/utils/api.js b/subpages/heart/utils/api.js index 7c3bf6a..c027848 100644 --- a/subpages/heart/utils/api.js +++ b/subpages/heart/utils/api.js @@ -29,7 +29,9 @@ module.exports = { getAppTeamListByType, getAppTeamDetail, getTeamVolunteerList, - joinTeam + joinTeam, + getVolunteerUnionActList, + getVolunteerUnionActDetail } //顺道捎-首页列表 @@ -179,6 +181,19 @@ function getVolunteerUnionDetail ({ id }) { id }) } +// 共建联盟-下属活动-列表 +function getVolunteerUnionActList ({ pageIndex, pageSize, unionActId }) { + return fly.get("heart/volunteer/getVolunteerUnionActList", { + pageIndex, + pageSize, + unionActId + }) +} +// 共建联盟-下属活动-详情 +function getVolunteerUnionActDetail (id) { + return fly.get(`heart/volunteer/getVolunteerUnionActDetail/${id}`) +} + // 志愿团队类别-列表 function getTeamTypeList ({ pageIndex, pageSize, teamId }) { return fly.get("heart/volunteer/getTeamTypeList", { diff --git a/utils/util.js b/utils/util.js index 6eba77f..1df442c 100644 --- a/utils/util.js +++ b/utils/util.js @@ -18,8 +18,16 @@ const formatRichText = html => { let newContent= html.replace(/ { + return function (a, b) { + var value1 = a[property] + var value2 = b[property] + return value1 - value2 + } +} module.exports = { formatTime: formatTime, - formatRichText: formatRichText + formatRichText: formatRichText, + compare }