初始化项目
1
xz_angren/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
/project.config.json
|
73
xz_angren/app.js
Normal file
@ -0,0 +1,73 @@
|
||||
//app.js
|
||||
var restAjax = require('utils/restAjax.js');
|
||||
var dialog = require('utils/dialog.js');
|
||||
var utils = require('utils/util.js');
|
||||
// + 'https://www.xzszwhy.cn/usercenter'
|
||||
App({
|
||||
loginUrl: restAjax.baseUrl,
|
||||
usercenterUrl: restAjax.baseUrl,
|
||||
newsUrl: restAjax.baseUrl,
|
||||
newsContentUrl: restAjax.url,
|
||||
libraryUrl: restAjax.baseUrl,
|
||||
venueUrl: restAjax.baseUrl,
|
||||
activityUrl: restAjax.baseUrl,
|
||||
volunteerUrl: restAjax.baseUrl,
|
||||
activityUrl: restAjax.baseUrl,
|
||||
volunteerUrl: restAjax.baseUrl,
|
||||
liveUrl: restAjax.url + 'live',
|
||||
liveRecordUrl: restAjax.baseUrl,
|
||||
socialUrl: restAjax.baseUrl,
|
||||
areaCode: '540226000000',
|
||||
areaName: '昂仁县',
|
||||
areaId: '641622',
|
||||
appKey:'wx5cc200792f3b7761',
|
||||
shopUrl: restAjax.url + "xzshop",
|
||||
bigDataUrl: restAjax.url + "module",
|
||||
restAjax: restAjax,
|
||||
shopImgUrl: restAjax.url + "xzshop/route/file/download/true/",
|
||||
imgUrl: restAjax.baseUrl + "/route/file/download/true/",
|
||||
liveImgUrl: restAjax.url + "live/route/file/download/true/",
|
||||
dialog: dialog,
|
||||
utils: utils,
|
||||
wssUrl: restAjax.wssUrl,
|
||||
onLaunch: function () {
|
||||
// 展示本地存储能力
|
||||
var logs = wx.getStorageSync('logs') || []
|
||||
logs.unshift(Date.now())
|
||||
wx.setStorageSync('logs', logs)
|
||||
|
||||
// 登录
|
||||
wx.login({
|
||||
success: res => {
|
||||
// 发送 res.code 到后台换取 openId, sessionKey, unionId
|
||||
}
|
||||
})
|
||||
// 获取用户信息
|
||||
wx.getSetting({
|
||||
success: res => {
|
||||
if (res.authSetting['scope.userInfo']) {
|
||||
// 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框
|
||||
wx.getUserInfo({
|
||||
success: res => {
|
||||
// 可以将 res 发送给后台解码出 unionId
|
||||
this.globalData.userInfo = res.userInfo
|
||||
|
||||
// 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
|
||||
// 所以此处加入 callback 以防止这种情况
|
||||
if (this.userInfoReadyCallback) {
|
||||
this.userInfoReadyCallback(res)
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
globalData: {
|
||||
userInfo: null,
|
||||
curLat: -1,
|
||||
curLng: -1,
|
||||
carList: [],
|
||||
isPublic: false,//是否关注了公众号
|
||||
}
|
||||
})
|
120
xz_angren/app.json
Normal file
@ -0,0 +1,120 @@
|
||||
{
|
||||
"pages": [
|
||||
"pages/index/index",
|
||||
"pages/travel/travel",
|
||||
"pages/resource/resource",
|
||||
"pages/template/template",
|
||||
"pages/train/train",
|
||||
"pages/cultureMap/cultureMap",
|
||||
"pages/order/order",
|
||||
"pages/venue/venue",
|
||||
"pages/center/center",
|
||||
"pages/myFriendCircle/myFriendCircle",
|
||||
"pages/friendCircle/friendCircle",
|
||||
"pages/orderDetail/orderDetail",
|
||||
"pages/broadcastList/broadcastList",
|
||||
"pages/myVenueOrder/myVenueOrder",
|
||||
"pages/broadcast/broadcast",
|
||||
"pages/activityDialog/activityDialog",
|
||||
"pages/teamDetail/teamDetail",
|
||||
"pages/volunteerRegister/volunteerRegister",
|
||||
"pages/volunteer/volunteer",
|
||||
"pages/heritage/heritage",
|
||||
"pages/broadcastDetail/broadcastDetail",
|
||||
"pages/venueDetail/venueDetail",
|
||||
"pages/book/book",
|
||||
"pages/register/register",
|
||||
"pages/commonQrCode/commonQrCode",
|
||||
"pages/newVolunteerActivity/newVolunteerActivity",
|
||||
"pages/newTeam/newTeam",
|
||||
"pages/volunteerTeam/volunteerTeam",
|
||||
"pages/cultureDetail/cultureDetail",
|
||||
"pages/activitySign/activitySign",
|
||||
"pages/activityDetail/activityDetail",
|
||||
"pages/activity/activity",
|
||||
"pages/newsDetail/newsDetail",
|
||||
"pages/newsList/newsList",
|
||||
"pages/myActivity/myActivity",
|
||||
"pages/myVolunteerTeam/myVolunteerTeam",
|
||||
"pages/myVolunteerActivity/myVolunteerActivity",
|
||||
"pages/serviceActivityDetail/serviceActivityDetail",
|
||||
"pages/shop/shopcategory"
|
||||
],
|
||||
"subPackages": [
|
||||
{
|
||||
"root": "subpages/",
|
||||
"pages": [
|
||||
"goodslist/goodslist",
|
||||
"goodsdetail/goodsdetail",
|
||||
"goodscar/goodscar",
|
||||
"goodsaddress/goodsaddress",
|
||||
"goodsorder/goodsorder",
|
||||
"addshopaddress/addshopaddress",
|
||||
"editshopaddress/editshopaddress",
|
||||
"orderconfirm/orderconfirm",
|
||||
"addresschoose/addresschoose",
|
||||
"webcontentview/webcontent",
|
||||
"search/commonSearch",
|
||||
"liverecord/liverecord"
|
||||
]
|
||||
}
|
||||
],
|
||||
"window": {
|
||||
"backgroundTextStyle": "light",
|
||||
"navigationBarBackgroundColor": "#9F1512",
|
||||
"navigationBarTitleText": "昂仁县公共文化数字云",
|
||||
"navigationBarTextStyle": "white"
|
||||
},
|
||||
"tabBar": {
|
||||
"color": "#BBBBBB",
|
||||
"borderStyle": "black",
|
||||
"selectedColor": "#000000",
|
||||
"list": [
|
||||
{
|
||||
"pagePath": "pages/index/index",
|
||||
"iconPath": "images/index.png",
|
||||
"text": "首页",
|
||||
"selectedIconPath": "images/index-on.png"
|
||||
},
|
||||
{
|
||||
"pagePath": "pages/activity/activity",
|
||||
"iconPath": "images/activity.png",
|
||||
"text": "活动",
|
||||
"selectedIconPath": "images/activity-on.png"
|
||||
},
|
||||
{
|
||||
"pagePath": "pages/venue/venue",
|
||||
"iconPath": "images/venue.png",
|
||||
"text": "场馆",
|
||||
"selectedIconPath": "images/venue-on.png"
|
||||
},
|
||||
{
|
||||
"pagePath": "pages/shop/shopcategory",
|
||||
"iconPath": "images/culture.png",
|
||||
"text": "商城",
|
||||
"selectedIconPath": "images/culture-on.png"
|
||||
},
|
||||
{
|
||||
"pagePath": "pages/center/center",
|
||||
"iconPath": "images/center.png",
|
||||
"text": "我的",
|
||||
"selectedIconPath": "images/center-on.png"
|
||||
}
|
||||
]
|
||||
},
|
||||
"usingComponents": {
|
||||
"page-loading": "/components/loading/pageloading",
|
||||
"page-empty": "/components/empty/empty",
|
||||
"loading-more": "/components/loadmore/loading-more"
|
||||
},
|
||||
"permission": {
|
||||
"scope.userLocation": {
|
||||
"desc": "你的位置信息将用于您当前所在位置"
|
||||
}
|
||||
},
|
||||
"requiredPrivateInfos": [
|
||||
"getLocation"
|
||||
],
|
||||
"style": "v2",
|
||||
"sitemapLocation": "sitemap.json"
|
||||
}
|
188
xz_angren/app.wxss
Normal file
@ -0,0 +1,188 @@
|
||||
/**app.wxss**/
|
||||
.container {
|
||||
height: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
padding: 200rpx 0;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
radio-group text {
|
||||
font-size: 25rpx;
|
||||
}
|
||||
|
||||
radio .wx-radio-input {
|
||||
border-radius: 50%;
|
||||
width: 24rpx;
|
||||
border: 2rpx solid #5e5e5f;
|
||||
height: 24rpx;
|
||||
}
|
||||
|
||||
radio .wx-radio-input.wx-radio-input-checked {
|
||||
border: none;
|
||||
background: #07c160;
|
||||
}
|
||||
|
||||
radio .wx-radio-input.wx-radio-input-checked::before {
|
||||
border-radius: 50%;
|
||||
/* 圆角 */
|
||||
width: 28rpx;
|
||||
/* 选中后对勾大小,不要超过背景的尺寸 */
|
||||
height: 28rpx;
|
||||
/* 选中后对勾大小,不要超过背景的尺寸 */
|
||||
line-height: 28rpx;
|
||||
text-align: center;
|
||||
font-size: 20rpx;
|
||||
/* 对勾大小 30rpx */
|
||||
color: #fff;
|
||||
/* 对勾颜色 白色 */
|
||||
background: #07c160;
|
||||
transform: translate(-50%, -50%) scale(1);
|
||||
}
|
||||
|
||||
|
||||
|
||||
checkbox-group text {
|
||||
font-size: 25rpx;
|
||||
|
||||
}
|
||||
|
||||
checkbox .wx-checkbox-input {
|
||||
width: 24rpx;
|
||||
border: 2rpx solid #5e5e5f;
|
||||
height: 24rpx;
|
||||
margin-left: 5rpx;
|
||||
}
|
||||
|
||||
checkbox .wx-checkbox-input.wx-checkbox-input-checked {
|
||||
border: none;
|
||||
background: #07c160;
|
||||
}
|
||||
|
||||
checkbox .wx-checkbox-input.wx-checkbox-input-checked::before {
|
||||
/* 圆角 */
|
||||
width: 28rpx;
|
||||
/* 选中后对勾大小,不要超过背景的尺寸 */
|
||||
height: 28rpx;
|
||||
/* 选中后对勾大小,不要超过背景的尺寸 */
|
||||
line-height: 28rpx;
|
||||
text-align: center;
|
||||
font-size: 20rpx;
|
||||
margin-left: 5rpx;
|
||||
/* 对勾大小 30rpx */
|
||||
color: #fff;
|
||||
/* 对勾颜色 白色 */
|
||||
background: #07c160;
|
||||
transform: translate(-50%, -50%) scale(1);
|
||||
}
|
||||
|
||||
|
||||
|
||||
.text-clamp1 {
|
||||
overflow: hidden;
|
||||
display: -webkit-box;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-line-clamp: 1;
|
||||
}
|
||||
|
||||
.text-clamp2 {
|
||||
overflow: hidden;
|
||||
display: -webkit-box;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-line-clamp: 2;
|
||||
}
|
||||
|
||||
.text-clamp3 {
|
||||
overflow: hidden;
|
||||
display: -webkit-box;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-line-clamp: 3;
|
||||
}
|
||||
|
||||
.text-clamp4 {
|
||||
overflow: hidden;
|
||||
display: -webkit-box;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-line-clamp: 4;
|
||||
}
|
||||
|
||||
.text-clamp5 {
|
||||
overflow: hidden;
|
||||
display: -webkit-box;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-line-clamp: 5;
|
||||
}
|
||||
|
||||
.flex {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.flex-center {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
-webkit-align-items: center;
|
||||
-webkit-justify-content: center;
|
||||
}
|
||||
|
||||
.flex-alignStart {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
-webkit-align-items: flex-start;
|
||||
}
|
||||
|
||||
.flex-alignCenter {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
-webkit-align-items: center;
|
||||
}
|
||||
|
||||
.flex-alignEnd {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
align-items: flex-end;
|
||||
-webkit-align-items: flex-end;
|
||||
}
|
||||
|
||||
.flex-between {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
-webkit-justify-content: space-between;
|
||||
}
|
||||
|
||||
.flex-around {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
-webkit-justify-content: space-around;
|
||||
}
|
||||
|
||||
.flex-middle {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
-webkit-justify-content: center;
|
||||
}
|
||||
|
||||
.flex-end {
|
||||
display: -webkit-box;
|
||||
display: -webkit-flex;
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
-webkit-justify-content: flex-end;
|
||||
}
|
23
xz_angren/components/empty/empty.js
Normal file
@ -0,0 +1,23 @@
|
||||
// components/empty/empty.js
|
||||
Component({
|
||||
/**
|
||||
* 组件的属性列表
|
||||
*/
|
||||
properties: {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 组件的初始数据
|
||||
*/
|
||||
data: {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 组件的方法列表
|
||||
*/
|
||||
methods: {
|
||||
|
||||
}
|
||||
})
|
4
xz_angren/components/empty/empty.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"component": true,
|
||||
"usingComponents": {}
|
||||
}
|
5
xz_angren/components/empty/empty.wxml
Normal file
@ -0,0 +1,5 @@
|
||||
<!--components/empty/empty.wxml-->
|
||||
<view class="data-empty">
|
||||
<image src="/images/ic_empty_data.png" mode="scaleToFill"></image>
|
||||
<text class="hint">暂无数据</text>
|
||||
</view>
|
24
xz_angren/components/empty/empty.wxss
Normal file
@ -0,0 +1,24 @@
|
||||
/* components/empty/empty.wxss */
|
||||
.data-empty {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
text-align: center;
|
||||
align-self: center;
|
||||
|
||||
position: fixed;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translateX(-50%)translateY(-50%);
|
||||
}
|
||||
|
||||
.data-empty image {
|
||||
width: 180rpx;
|
||||
height: 120rpx;
|
||||
}
|
||||
|
||||
.data-empty .hint {
|
||||
margin-top: 30rpx;
|
||||
font-size: 32rpx;
|
||||
}
|
80
xz_angren/components/expandabletext/expandabletext.js
Normal file
@ -0,0 +1,80 @@
|
||||
// components/expandabletext/expandabletext.js
|
||||
/**
|
||||
* 长文本内容展开与收起
|
||||
* @param {String} content 长文本内容
|
||||
* @param {Number} maxline 最多展示行数[只允许 1-5 的正整数]
|
||||
* @param {String} position 展开收起按钮位置[可选值为 left right]
|
||||
* @param {Boolean} foldable 点击长文本是否展开收起
|
||||
*/
|
||||
|
||||
Component({
|
||||
options: {
|
||||
addGlobalClass: true
|
||||
},
|
||||
/**
|
||||
* 组件的属性列表
|
||||
*/
|
||||
properties: {
|
||||
content: {
|
||||
type: String,
|
||||
observer(val) {
|
||||
console.log(val)
|
||||
if (this.data.onReady) {
|
||||
setTimeout(() => this.checkFold(), 10)
|
||||
}
|
||||
}
|
||||
},
|
||||
maxline: {
|
||||
type: Number,
|
||||
value: 1,
|
||||
observer(value) {
|
||||
if (!(/^[1-5]$/).test(value)) {
|
||||
throw new Error(`Maxline field value can only be digits (1-5), Error value: ${value}`)
|
||||
} else if (this.data.onReady) {
|
||||
setTimeout(() => this.checkFold(), 10)
|
||||
}
|
||||
}
|
||||
},
|
||||
position: {
|
||||
type: String,
|
||||
value: "left"
|
||||
},
|
||||
foldable: {
|
||||
type: Boolean,
|
||||
value: true
|
||||
}
|
||||
},
|
||||
|
||||
/**
|
||||
* 组件的初始数据
|
||||
*/
|
||||
data: {
|
||||
onFold: false,
|
||||
showFold: false,
|
||||
onReady: false
|
||||
},
|
||||
lifetimes: {
|
||||
ready() {
|
||||
this.checkFold()
|
||||
this.data.onReady = true
|
||||
}
|
||||
},
|
||||
/**
|
||||
* 组件的方法列表
|
||||
*/
|
||||
methods: {
|
||||
checkFold() {
|
||||
const query = wx.createSelectorQuery().in(this);
|
||||
query.selectAll(".showArea, .hideArea").boundingClientRect(res => {
|
||||
this.setData({
|
||||
showFold: res[0].height < res[1].height
|
||||
})
|
||||
}).exec()
|
||||
},
|
||||
handleFold() {
|
||||
this.setData({
|
||||
onFold: !this.data.onFold
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
4
xz_angren/components/expandabletext/expandabletext.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"component": true,
|
||||
"usingComponents": {}
|
||||
}
|
7
xz_angren/components/expandabletext/expandabletext.wxml
Normal file
@ -0,0 +1,7 @@
|
||||
<view class="content">
|
||||
<view class="contentInner showArea {{!onFold ? 'text-clamp' + maxline : ''}}" bindtap="{{foldable ? 'handleFold' : ''}}">{{content || "示例文本"}}</view>
|
||||
<view class="contentInner hideArea">{{content || "示例文本"}}</view>
|
||||
<view class="foldInner {{position === 'right' ? 'flex-end' : 'flex'}}" wx:if="{{showFold}}">
|
||||
<text class="fold" catchtap="handleFold">{{onFold ? "收起" : "展开"}}</text>
|
||||
</view>
|
||||
</view>
|
34
xz_angren/components/expandabletext/expandabletext.wxss
Normal file
@ -0,0 +1,34 @@
|
||||
.content {
|
||||
width: 690rpx;
|
||||
padding: 0 30rpx;
|
||||
border-top: 20rpx solid transparent;
|
||||
border-bottom: 20rpx solid transparent;
|
||||
margin-bottom: 20rpx;
|
||||
}
|
||||
|
||||
.contentInner {
|
||||
width: 690rpx;
|
||||
color: #ffffff;
|
||||
font-size: 30rpx;
|
||||
line-height: 1.35;
|
||||
text-align: justify;
|
||||
}
|
||||
|
||||
.hideArea {
|
||||
display: -webkit-box;
|
||||
overflow: hidden;
|
||||
position: fixed;
|
||||
top: 100vh;
|
||||
left: -100vw;
|
||||
}
|
||||
|
||||
.foldInner {
|
||||
width: 690rpx;
|
||||
padding-top: 10rpx;
|
||||
}
|
||||
|
||||
.foldInner .fold {
|
||||
color: #eb0000;
|
||||
font-size: 32rpx;
|
||||
cursor: pointer;
|
||||
}
|
23
xz_angren/components/loading/pageloading.js
Normal file
@ -0,0 +1,23 @@
|
||||
// components/loading/pageloading.js
|
||||
Component({
|
||||
/**
|
||||
* 组件的属性列表
|
||||
*/
|
||||
properties: {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 组件的初始数据
|
||||
*/
|
||||
data: {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 组件的方法列表
|
||||
*/
|
||||
methods: {
|
||||
|
||||
}
|
||||
})
|
4
xz_angren/components/loading/pageloading.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"component": true,
|
||||
"usingComponents": {}
|
||||
}
|
5
xz_angren/components/loading/pageloading.wxml
Normal file
@ -0,0 +1,5 @@
|
||||
<!--components/loading/pageloading.wxml-->
|
||||
<view class="page-loading-box">
|
||||
<image src="/images/loading-small.gif" mode="scaleToFill"></image>
|
||||
<view class="text">加载中...</view>
|
||||
</view>
|
24
xz_angren/components/loading/pageloading.wxss
Normal file
@ -0,0 +1,24 @@
|
||||
/* components/loading/pageloading.wxss */
|
||||
.page-loading-box {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
/* background: rgba(255, 255, 255, 1); */
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
z-index: 99;
|
||||
}
|
||||
|
||||
.page-loading-box image {
|
||||
width: 128rpx;
|
||||
height: 128rpx;
|
||||
}
|
||||
|
||||
.page-loading-box .text {
|
||||
margin-top: 20rpx;
|
||||
font-size: 28rpx;
|
||||
}
|
30
xz_angren/components/loadmore/loading-more.js
Normal file
@ -0,0 +1,30 @@
|
||||
// components/loadmore/loading-more.js
|
||||
Component({
|
||||
/**
|
||||
* 组件的属性列表
|
||||
*/
|
||||
properties: {
|
||||
isShowloading: true,
|
||||
loadingTxt: "加载中..."
|
||||
},
|
||||
|
||||
/**
|
||||
* 组件的初始数据
|
||||
*/
|
||||
data: {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 组件的方法列表
|
||||
*/
|
||||
methods: {
|
||||
|
||||
},
|
||||
observers: {
|
||||
'isShowloading,loadingTxt': function (ss, sss) {
|
||||
console.log(ss)
|
||||
console.log(sss)
|
||||
}
|
||||
}
|
||||
})
|
4
xz_angren/components/loadmore/loading-more.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"component": true,
|
||||
"usingComponents": {}
|
||||
}
|
5
xz_angren/components/loadmore/loading-more.wxml
Normal file
@ -0,0 +1,5 @@
|
||||
<!--components/loadmore/loading-more.wxml-->
|
||||
<view class="loading-box">
|
||||
<image src="/images/loading.gif" wx:if="{{isShowloading}}"></image>
|
||||
<view class="loading-content">{{loadingTxt}}</view>
|
||||
</view>
|
20
xz_angren/components/loadmore/loading-more.wxss
Normal file
@ -0,0 +1,20 @@
|
||||
/* components/loadmore/loading-more.wxss */
|
||||
|
||||
.loading-box {
|
||||
width: 100%;
|
||||
height: 80rpx;
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
font-size: 35rpx;
|
||||
}
|
||||
|
||||
.loading-box image {
|
||||
width: 40rpx;
|
||||
height: 40rpx;
|
||||
}
|
||||
|
||||
.loading-content {
|
||||
margin-left: 20rpx;
|
||||
}
|
BIN
xz_angren/images/activity-on.png
Executable file
After Width: | Height: | Size: 600 B |
BIN
xz_angren/images/activity.png
Executable file
After Width: | Height: | Size: 539 B |
BIN
xz_angren/images/address.png
Executable file
After Width: | Height: | Size: 400 B |
BIN
xz_angren/images/app_logo.png
Normal file
After Width: | Height: | Size: 7.3 KiB |
BIN
xz_angren/images/avatar.png
Executable file
After Width: | Height: | Size: 530 B |
BIN
xz_angren/images/big-news.png
Executable file
After Width: | Height: | Size: 2.1 KiB |
BIN
xz_angren/images/center-bg.png
Executable file
After Width: | Height: | Size: 26 KiB |
BIN
xz_angren/images/center-on.png
Executable file
After Width: | Height: | Size: 537 B |
BIN
xz_angren/images/center.png
Executable file
After Width: | Height: | Size: 507 B |
BIN
xz_angren/images/collect.png
Executable file
After Width: | Height: | Size: 541 B |
BIN
xz_angren/images/collected.png
Executable file
After Width: | Height: | Size: 445 B |
BIN
xz_angren/images/culture-on.png
Executable file
After Width: | Height: | Size: 756 B |
BIN
xz_angren/images/culture.png
Executable file
After Width: | Height: | Size: 632 B |
BIN
xz_angren/images/delete-photo.png
Executable file
After Width: | Height: | Size: 289 B |
BIN
xz_angren/images/delete.png
Executable file
After Width: | Height: | Size: 284 B |
BIN
xz_angren/images/friend.png
Executable file
After Width: | Height: | Size: 459 B |
BIN
xz_angren/images/good.png
Executable file
After Width: | Height: | Size: 349 B |
BIN
xz_angren/images/ic_audio_bg.png
Executable file
After Width: | Height: | Size: 14 KiB |
BIN
xz_angren/images/ic_empty_data.png
Executable file
After Width: | Height: | Size: 444 B |
BIN
xz_angren/images/ic_goods_type_default.png
Executable file
After Width: | Height: | Size: 455 B |
BIN
xz_angren/images/ic_music_icon.png
Normal file
After Width: | Height: | Size: 921 B |
BIN
xz_angren/images/ic_search_black.png
Normal file
After Width: | Height: | Size: 1.9 KiB |
BIN
xz_angren/images/ic_search_gray.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
xz_angren/images/ic_shop_car_icon.png
Executable file
After Width: | Height: | Size: 341 B |
BIN
xz_angren/images/index-on.png
Executable file
After Width: | Height: | Size: 461 B |
BIN
xz_angren/images/index.png
Executable file
After Width: | Height: | Size: 399 B |
BIN
xz_angren/images/loading-small.gif
Normal file
After Width: | Height: | Size: 9.6 KiB |
BIN
xz_angren/images/loading.gif
Normal file
After Width: | Height: | Size: 6.6 KiB |
BIN
xz_angren/images/login-bg.png
Executable file
After Width: | Height: | Size: 33 KiB |
BIN
xz_angren/images/logo.png
Executable file
After Width: | Height: | Size: 4.3 KiB |
BIN
xz_angren/images/marker_red.png
Executable file
After Width: | Height: | Size: 671 B |
BIN
xz_angren/images/marker_yellow.png
Executable file
After Width: | Height: | Size: 713 B |
BIN
xz_angren/images/my-collect.png
Executable file
After Width: | Height: | Size: 537 B |
BIN
xz_angren/images/my-comment.png
Executable file
After Width: | Height: | Size: 573 B |
BIN
xz_angren/images/my-sign.png
Executable file
After Width: | Height: | Size: 450 B |
BIN
xz_angren/images/new.png
Normal file
After Width: | Height: | Size: 174 B |
BIN
xz_angren/images/next.png
Normal file
After Width: | Height: | Size: 597 B |
BIN
xz_angren/images/order.png
Normal file
After Width: | Height: | Size: 513 B |
BIN
xz_angren/images/people.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
xz_angren/images/person.png
Normal file
After Width: | Height: | Size: 620 B |
BIN
xz_angren/images/play.png
Executable file
After Width: | Height: | Size: 507 B |
BIN
xz_angren/images/play_next.png
Executable file
After Width: | Height: | Size: 578 B |
BIN
xz_angren/images/play_pause.png
Executable file
After Width: | Height: | Size: 737 B |
BIN
xz_angren/images/play_prev.png
Executable file
After Width: | Height: | Size: 573 B |
BIN
xz_angren/images/play_resume.png
Executable file
After Width: | Height: | Size: 805 B |
BIN
xz_angren/images/prev.png
Executable file
After Width: | Height: | Size: 270 B |
BIN
xz_angren/images/qrcode_gzh.png
Normal file
After Width: | Height: | Size: 19 KiB |
BIN
xz_angren/images/select-tab.png
Executable file
After Width: | Height: | Size: 5.5 KiB |
BIN
xz_angren/images/selected-l.png
Executable file
After Width: | Height: | Size: 121 B |
BIN
xz_angren/images/selected-r.png
Executable file
After Width: | Height: | Size: 122 B |
BIN
xz_angren/images/setting.png
Executable file
After Width: | Height: | Size: 636 B |
BIN
xz_angren/images/share.png
Executable file
After Width: | Height: | Size: 687 B |
BIN
xz_angren/images/tab1.png
Normal file
After Width: | Height: | Size: 1.5 KiB |
BIN
xz_angren/images/tab2.png
Normal file
After Width: | Height: | Size: 1.7 KiB |
BIN
xz_angren/images/tab3.png
Normal file
After Width: | Height: | Size: 1.6 KiB |
BIN
xz_angren/images/tab4.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
xz_angren/images/tab5.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
xz_angren/images/tab6.png
Normal file
After Width: | Height: | Size: 3.2 KiB |
BIN
xz_angren/images/tab7.png
Normal file
After Width: | Height: | Size: 2.8 KiB |
BIN
xz_angren/images/team.png
Normal file
After Width: | Height: | Size: 2.2 KiB |
BIN
xz_angren/images/time.png
Normal file
After Width: | Height: | Size: 886 B |
BIN
xz_angren/images/venue-on.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
xz_angren/images/venue.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
xz_angren/images/venue1.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
xz_angren/images/venue2.png
Normal file
After Width: | Height: | Size: 1.3 KiB |
BIN
xz_angren/images/venue3.png
Normal file
After Width: | Height: | Size: 1.0 KiB |
BIN
xz_angren/images/venueall.png
Normal file
After Width: | Height: | Size: 4.7 KiB |
BIN
xz_angren/images/view.png
Normal file
After Width: | Height: | Size: 594 B |
452
xz_angren/libs/bmap-wx.js
Normal file
@ -0,0 +1,452 @@
|
||||
/**
|
||||
* @file 微信小程序JSAPI
|
||||
* @author 崔健 cuijian03@baidu.com 2017.01.10
|
||||
* @update 邓淑芳 623996689@qq.com 2019.07.03
|
||||
*/
|
||||
|
||||
/**
|
||||
* 百度地图微信小程序API类
|
||||
*
|
||||
* @class
|
||||
*/
|
||||
class BMapWX {
|
||||
|
||||
/**
|
||||
* 百度地图微信小程序API类
|
||||
*
|
||||
* @constructor
|
||||
*/
|
||||
constructor(param) {
|
||||
this.ak = param["ak"];
|
||||
}
|
||||
|
||||
/**
|
||||
* 使用微信接口进行定位
|
||||
*
|
||||
* @param {string} type 坐标类型
|
||||
* @param {Function} success 成功执行
|
||||
* @param {Function} fail 失败执行
|
||||
* @param {Function} complete 完成后执行
|
||||
*/
|
||||
getWXLocation(type, success, fail, complete) {
|
||||
type = type || 'gcj02',
|
||||
success = success || function () { };
|
||||
fail = fail || function () { };
|
||||
complete = complete || function () { };
|
||||
wx.getLocation({
|
||||
type: type,
|
||||
success: success,
|
||||
fail: fail,
|
||||
complete: complete
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* POI周边检索
|
||||
*
|
||||
* @param {Object} param 检索配置
|
||||
* 参数对象结构可以参考
|
||||
* http://lbsyun.baidu.com/index.php?title=webapi/guide/webservice-placeapi
|
||||
*/
|
||||
search(param) {
|
||||
var that = this;
|
||||
param = param || {};
|
||||
let searchparam = {
|
||||
query: param["query"] || '生活服务$美食&酒店',
|
||||
scope: param["scope"] || 1,
|
||||
filter: param["filter"] || '',
|
||||
coord_type: param["coord_type"] || 2,
|
||||
page_size: param["page_size"] || 10,
|
||||
page_num: param["page_num"] || 0,
|
||||
output: param["output"] || 'json',
|
||||
ak: that.ak,
|
||||
sn: param["sn"] || '',
|
||||
timestamp: param["timestamp"] || '',
|
||||
radius: param["radius"] || 2000,
|
||||
ret_coordtype: 'gcj02ll'
|
||||
};
|
||||
let otherparam = {
|
||||
iconPath: param["iconPath"],
|
||||
iconTapPath: param["iconTapPath"],
|
||||
width: param["width"],
|
||||
height: param["height"],
|
||||
alpha: param["alpha"] || 1,
|
||||
success: param["success"] || function () { },
|
||||
fail: param["fail"] || function () { }
|
||||
};
|
||||
let type = 'gcj02';
|
||||
let locationsuccess = function (result) {
|
||||
searchparam["location"] = result["latitude"] + ',' + result["longitude"];
|
||||
wx.request({
|
||||
url: 'https://api.map.baidu.com/place/v2/search',
|
||||
data: searchparam,
|
||||
header: {
|
||||
"content-type": "application/json"
|
||||
},
|
||||
method: 'GET',
|
||||
success(data) {
|
||||
let res = data["data"];
|
||||
if (res["status"] === 0) {
|
||||
let poiArr = res["results"];
|
||||
// outputRes 包含两个对象,
|
||||
// originalData为百度接口返回的原始数据
|
||||
// wxMarkerData为小程序规范的marker格式
|
||||
let outputRes = {};
|
||||
outputRes["originalData"] = res;
|
||||
outputRes["wxMarkerData"] = [];
|
||||
for (let i = 0; i < poiArr.length; i++) {
|
||||
outputRes["wxMarkerData"][i] = {
|
||||
id: i,
|
||||
latitude: poiArr[i]["location"]["lat"],
|
||||
longitude: poiArr[i]["location"]["lng"],
|
||||
title: poiArr[i]["name"],
|
||||
iconPath: otherparam["iconPath"],
|
||||
iconTapPath: otherparam["iconTapPath"],
|
||||
address: poiArr[i]["address"],
|
||||
telephone: poiArr[i]["telephone"],
|
||||
alpha: otherparam["alpha"],
|
||||
width: otherparam["width"],
|
||||
height: otherparam["height"]
|
||||
}
|
||||
}
|
||||
otherparam.success(outputRes);
|
||||
} else {
|
||||
otherparam.fail({
|
||||
errMsg: res["message"],
|
||||
statusCode: res["status"]
|
||||
});
|
||||
}
|
||||
},
|
||||
fail(data) {
|
||||
otherparam.fail(data);
|
||||
}
|
||||
});
|
||||
}
|
||||
let locationfail = function (result) {
|
||||
otherparam.fail(result);
|
||||
};
|
||||
let locationcomplete = function (result) {
|
||||
};
|
||||
if (!param["location"]) {
|
||||
that.getWXLocation(type, locationsuccess, locationfail, locationcomplete);
|
||||
} else {
|
||||
let longitude = param.location.split(',')[1];
|
||||
let latitude = param.location.split(',')[0];
|
||||
let errMsg = 'input location';
|
||||
let res = {
|
||||
errMsg: errMsg,
|
||||
latitude: latitude,
|
||||
longitude: longitude
|
||||
};
|
||||
locationsuccess(res);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* sug模糊检索
|
||||
*
|
||||
* @param {Object} param 检索配置
|
||||
* 参数对象结构可以参考
|
||||
* http://lbsyun.baidu.com/index.php?title=webapi/place-suggestion-api
|
||||
*/
|
||||
suggestion(param) {
|
||||
var that = this;
|
||||
param = param || {};
|
||||
let suggestionparam = {
|
||||
query: param["query"] || '',
|
||||
region: param["region"] || '全国',
|
||||
city_limit: param["city_limit"] || false,
|
||||
output: param["output"] || 'json',
|
||||
ak: that.ak,
|
||||
sn: param["sn"] || '',
|
||||
timestamp: param["timestamp"] || '',
|
||||
ret_coordtype: 'gcj02ll'
|
||||
};
|
||||
let otherparam = {
|
||||
success: param["success"] || function () { },
|
||||
fail: param["fail"] || function () { }
|
||||
};
|
||||
wx.request({
|
||||
url: 'https://api.map.baidu.com/place/v2/suggestion',
|
||||
data: suggestionparam,
|
||||
header: {
|
||||
"content-type": "application/json"
|
||||
},
|
||||
method: 'GET',
|
||||
success(data) {
|
||||
let res = data["data"];
|
||||
if (res["status"] === 0) {
|
||||
otherparam.success(res);
|
||||
} else {
|
||||
otherparam.fail({
|
||||
errMsg: res["message"],
|
||||
statusCode: res["status"]
|
||||
});
|
||||
}
|
||||
},
|
||||
fail(data) {
|
||||
otherparam.fail(data);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* rgc检索(逆地理编码:经纬度->地点描述)
|
||||
*
|
||||
* @param {Object} param 检索配置
|
||||
* 参数对象结构可以参考
|
||||
* https://lbs.baidu.com/index.php?title=webapi/guide/webservice-geocoding-abroad
|
||||
*
|
||||
*/
|
||||
regeocoding (param) {
|
||||
var that = this;
|
||||
param = param || {};
|
||||
let regeocodingparam = {
|
||||
coordtype: param["coordtype"] || 'gcj02ll',
|
||||
ret_coordtype: 'gcj02ll',
|
||||
radius: param["radius"] || 1000,
|
||||
ak: that.ak,
|
||||
sn: param["sn"] || '',
|
||||
output: param["output"] || 'json',
|
||||
callback: param["callback"] || function () { },
|
||||
extensions_poi: param["extensions_poi"] || 1,
|
||||
extensions_road: param["extensions_road"] || false,
|
||||
extensions_town: param["extensions_town"] || false,
|
||||
language: param["language"] || 'zh-CN',
|
||||
language_auto: param["language_auto"] || 0
|
||||
};
|
||||
let otherparam = {
|
||||
iconPath: param["iconPath"],
|
||||
iconTapPath: param["iconTapPath"],
|
||||
width: param["width"],
|
||||
height: param["height"],
|
||||
alpha: param["alpha"] || 1,
|
||||
success: param["success"] || function () { },
|
||||
fail: param["fail"] || function () { }
|
||||
};
|
||||
let type = 'gcj02';
|
||||
let locationsuccess = function (result) {
|
||||
regeocodingparam["location"] = result["latitude"] + ',' + result["longitude"];
|
||||
wx.request({
|
||||
url: 'https://api.map.baidu.com/reverse_geocoding/v3',
|
||||
data: regeocodingparam,
|
||||
header: {
|
||||
"content-type": "application/json"
|
||||
},
|
||||
method: 'GET',
|
||||
success(data) {
|
||||
let res = data["data"];
|
||||
if (res["status"] === 0) {
|
||||
let poiObj = res["result"];
|
||||
// outputRes 包含两个对象:
|
||||
// originalData为百度接口返回的原始数据
|
||||
// wxMarkerData为小程序规范的marker格式
|
||||
let outputRes = {};
|
||||
outputRes["originalData"] = res;
|
||||
outputRes["wxMarkerData"] = [];
|
||||
outputRes["wxMarkerData"][0] = {
|
||||
id: 0,
|
||||
latitude: result["latitude"],
|
||||
longitude: result["longitude"],
|
||||
address: poiObj["formatted_address"],
|
||||
iconPath: otherparam["iconPath"],
|
||||
iconTapPath: otherparam["iconTapPath"],
|
||||
desc: poiObj["sematic_description"],
|
||||
business: poiObj["business"],
|
||||
alpha: otherparam["alpha"],
|
||||
width: otherparam["width"],
|
||||
height: otherparam["height"]
|
||||
}
|
||||
otherparam.success(outputRes);
|
||||
} else {
|
||||
otherparam.fail({
|
||||
errMsg: res["message"],
|
||||
statusCode: res["status"]
|
||||
});
|
||||
}
|
||||
},
|
||||
fail(data) {
|
||||
otherparam.fail(data);
|
||||
}
|
||||
});
|
||||
};
|
||||
let locationfail = function (result) {
|
||||
otherparam.fail(result);
|
||||
}
|
||||
let locationcomplete = function (result) {
|
||||
};
|
||||
if (!param["location"]) {
|
||||
that.getWXLocation(type, locationsuccess, locationfail, locationcomplete);
|
||||
} else {
|
||||
let longitude = param.location.split(',')[1];
|
||||
let latitude = param.location.split(',')[0];
|
||||
let errMsg = 'input location';
|
||||
let res = {
|
||||
errMsg: errMsg,
|
||||
latitude: latitude,
|
||||
longitude: longitude
|
||||
};
|
||||
locationsuccess(res);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* gc检索(地理编码:地点->经纬度)
|
||||
*
|
||||
* @param {Object} param 检索配置
|
||||
* 参数对象结构可以参考
|
||||
* https://lbs.baidu.com/index.php?title=webapi/guide/webservice-geocoding
|
||||
*
|
||||
*/
|
||||
geocoding(param) {
|
||||
var that = this;
|
||||
param = param || {};
|
||||
let geocodingparam = {
|
||||
address: param["address"] || '',
|
||||
city: param["city"] || '',
|
||||
ret_coordtype: param["coordtype"] || 'gcj02ll',
|
||||
ak: that.ak,
|
||||
sn: param["sn"] || '',
|
||||
output: param["output"] || 'json',
|
||||
callback: param["callback"] || function () { }
|
||||
};
|
||||
let otherparam = {
|
||||
iconPath: param["iconPath"],
|
||||
iconTapPath: param["iconTapPath"],
|
||||
width: param["width"],
|
||||
height: param["height"],
|
||||
alpha: param["alpha"] || 1,
|
||||
success: param["success"] || function () { },
|
||||
fail: param["fail"] || function () { }
|
||||
};
|
||||
if (param["address"]) {
|
||||
wx.request({
|
||||
url: 'https://api.map.baidu.com/geocoding/v3',
|
||||
data: geocodingparam,
|
||||
header: {
|
||||
"content-type": "application/json"
|
||||
},
|
||||
method: 'GET',
|
||||
success(data) {
|
||||
let res = data["data"];
|
||||
if (res["status"] === 0){
|
||||
let poiObj = res["result"];
|
||||
// outputRes 包含两个对象:
|
||||
// originalData为百度接口返回的原始数据
|
||||
// wxMarkerData为小程序规范的marker格式
|
||||
let outputRes = res;
|
||||
outputRes["originalData"] = res;
|
||||
outputRes["wxMarkerData"] = [];
|
||||
outputRes["wxMarkerData"][0] = {
|
||||
id: 0,
|
||||
latitude: poiObj["location"]["lat"],
|
||||
longitude: poiObj["location"]["lng"],
|
||||
iconPath: otherparam["iconPath"],
|
||||
iconTapPath: otherparam["iconTapPath"],
|
||||
alpha: otherparam["alpha"],
|
||||
width: otherparam["width"],
|
||||
height: otherparam["height"]
|
||||
}
|
||||
otherparam.success(outputRes);
|
||||
} else {
|
||||
otherparam.fail({
|
||||
errMsg: res["message"],
|
||||
statusCode: res["status"]
|
||||
});
|
||||
}
|
||||
},
|
||||
fail(data) {
|
||||
otherparam.fail(data);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
let errMsg = 'input address!';
|
||||
let res = {
|
||||
errMsg: errMsg
|
||||
};
|
||||
otherparam.fail(res);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 天气检索
|
||||
*
|
||||
* @param {Object} param 检索配置
|
||||
*/
|
||||
weather(param) {
|
||||
var that = this;
|
||||
param = param || {};
|
||||
let weatherparam = {
|
||||
coord_type: param["coord_type"] || 'gcj02',
|
||||
output: param["output"] || 'json',
|
||||
ak: that.ak,
|
||||
sn: param["sn"] || '',
|
||||
timestamp: param["timestamp"] || ''
|
||||
};
|
||||
let otherparam = {
|
||||
success: param["success"] || function () { },
|
||||
fail: param["fail"] || function () { }
|
||||
};
|
||||
let type = 'gcj02';
|
||||
let locationsuccess = function (result) {
|
||||
weatherparam["location"] = result["longitude"] + ',' + result["latitude"];
|
||||
wx.request({
|
||||
url: 'https://api.map.baidu.com/telematics/v3/weather',
|
||||
data: weatherparam,
|
||||
header: {
|
||||
"content-type": "application/json"
|
||||
},
|
||||
method: 'GET',
|
||||
success(data) {
|
||||
let res = data["data"];
|
||||
if (res["error"] === 0 && res["status"] === 'success') {
|
||||
let weatherArr = res["results"];
|
||||
// outputRes 包含两个对象,
|
||||
// originalData为百度接口返回的原始数据
|
||||
// wxMarkerData为小程序规范的marker格式
|
||||
let outputRes = {};
|
||||
outputRes["originalData"] = res;
|
||||
outputRes["currentWeather"] = [];
|
||||
outputRes["currentWeather"][0] = {
|
||||
currentCity: weatherArr[0]["currentCity"],
|
||||
pm25: weatherArr[0]["pm25"],
|
||||
date: weatherArr[0]["weather_data"][0]["date"],
|
||||
temperature: weatherArr[0]["weather_data"][0]["temperature"],
|
||||
weatherDesc: weatherArr[0]["weather_data"][0]["weather"],
|
||||
wind: weatherArr[0]["weather_data"][0]["wind"]
|
||||
};
|
||||
otherparam.success(outputRes);
|
||||
} else {
|
||||
otherparam.fail({
|
||||
errMsg: res["message"],
|
||||
statusCode: res["status"]
|
||||
});
|
||||
}
|
||||
},
|
||||
fail(data) {
|
||||
otherparam.fail(data);
|
||||
}
|
||||
});
|
||||
}
|
||||
let locationfail = function (result) {
|
||||
otherparam.fail(result);
|
||||
}
|
||||
let locationcomplete = function (result) {
|
||||
}
|
||||
if (!param["location"]) {
|
||||
that.getWXLocation(type, locationsuccess, locationfail, locationcomplete);
|
||||
} else {
|
||||
let longitude = param.location.split(',')[0];
|
||||
let latitude = param.location.split(',')[1];
|
||||
let errMsg = 'input location';
|
||||
let res = {
|
||||
errMsg: errMsg,
|
||||
latitude: latitude,
|
||||
longitude: longitude
|
||||
};
|
||||
locationsuccess(res);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module.exports.BMapWX = BMapWX;
|
174
xz_angren/pages/activity/activity.js
Normal file
@ -0,0 +1,174 @@
|
||||
// pages/activity/activity.js
|
||||
var app = getApp();
|
||||
Page({
|
||||
|
||||
/**
|
||||
* 页面的初始数据
|
||||
*/
|
||||
data: {
|
||||
dataList: [],
|
||||
areaList: [],
|
||||
typeList: [],
|
||||
pages: {
|
||||
page: 1,
|
||||
rows: 5,
|
||||
activityType: ''
|
||||
}
|
||||
},
|
||||
//获取活动分类
|
||||
getActivityTypeList() {
|
||||
var _self = this;
|
||||
app.restAjax.get(app.restAjax.path(app.usercenterUrl + '/app/dictionaryself/listdictionarybyparentidrelease/e36ad682-c6b4-44fe-a05c-889a5ff7c284', []),
|
||||
null, null,
|
||||
function (code, data) {
|
||||
_self.setData({
|
||||
typeList: data,
|
||||
'pages.activityType': data[0].dataId
|
||||
})
|
||||
_self.getActivityList()
|
||||
},
|
||||
function (err) {
|
||||
|
||||
}
|
||||
);
|
||||
},
|
||||
getAreaList: function () {
|
||||
var self = this;
|
||||
app.restAjax.get(app.restAjax.path(app.usercenterUrl + '/app/dictionaryself/listdictionarybyparentidrelease/e36ad682-c6b4-44fe-a05c-889a5ff7c284', []),
|
||||
self.data.pages, null,
|
||||
function (code, data) {
|
||||
if (code == '200') {
|
||||
self.setData({
|
||||
areaList: data,
|
||||
|
||||
})
|
||||
}
|
||||
}
|
||||
)
|
||||
},
|
||||
changeArea: function (e) {
|
||||
app.dialog.loading('正在加载');
|
||||
console.log(e)
|
||||
this.setData({
|
||||
'pages.activityType': e.currentTarget.dataset.dataid
|
||||
})
|
||||
this.getActivityList()
|
||||
},
|
||||
loadAll: function () {
|
||||
this.setData({
|
||||
'pages.county': ''
|
||||
})
|
||||
this.getActivityList()
|
||||
},
|
||||
goDetail: function (e) {
|
||||
var id = e.currentTarget.dataset.id;
|
||||
wx.navigateTo({
|
||||
url: '../activityDetail/activityDetail?id=' + id
|
||||
})
|
||||
},
|
||||
getActivityList: function () {
|
||||
var self = this;
|
||||
app.restAjax.get(app.restAjax.path(app.activityUrl + '/app/activitylibrary/listpageactivitylibraryfornetrelease/{areaCode}', [app.areaCode]),
|
||||
self.data.pages, null,
|
||||
function (code, data) {
|
||||
console.log(code + "===" + data)
|
||||
if ('200' == code) {
|
||||
for (var item of data.rows) {
|
||||
if ('' != item.activityImage) {
|
||||
item.activityImage = app.activityUrl + '/route/file/download/true/' + item.activityImage;
|
||||
}
|
||||
}
|
||||
if (1 === self.data.pages.page) {
|
||||
self.setData({
|
||||
dataList: data.rows,
|
||||
})
|
||||
} else {
|
||||
if (data.rows.length == 0) {
|
||||
self.setData({
|
||||
[`pages.page`]: self.data.pages.page - 1
|
||||
})
|
||||
app.dialog.msg('暂无更多')
|
||||
return false;
|
||||
}
|
||||
self.setData({
|
||||
dataList: data.rows.concat(self.data.dataList),
|
||||
})
|
||||
}
|
||||
}
|
||||
},
|
||||
function () {
|
||||
|
||||
},
|
||||
function () {
|
||||
wx.hideNavigationBarLoading(); //完成停止加载图标
|
||||
wx.stopPullDownRefresh();
|
||||
wx.hideLoading();
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
onLoad: function (options) {
|
||||
this.getActivityTypeList()
|
||||
// this.getActivityList();
|
||||
// this.getAreaList()
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面初次渲染完成
|
||||
*/
|
||||
onReady: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面显示
|
||||
*/
|
||||
onShow: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面隐藏
|
||||
*/
|
||||
onHide: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面卸载
|
||||
*/
|
||||
onUnload: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面相关事件处理函数--监听用户下拉动作
|
||||
*/
|
||||
onPullDownRefresh: function () {
|
||||
// 在标题栏中显示加载图标
|
||||
wx.showNavigationBarLoading();
|
||||
var self = this;
|
||||
self.setData({
|
||||
[`pages.page`]: 1,
|
||||
dataList: []
|
||||
|
||||
})
|
||||
this.getActivityList();
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面上拉触底事件的处理函数
|
||||
*/
|
||||
onReachBottom: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 用户点击右上角分享
|
||||
*/
|
||||
onShareAppMessage: function () {
|
||||
|
||||
}
|
||||
})
|
5
xz_angren/pages/activity/activity.json
Normal file
@ -0,0 +1,5 @@
|
||||
{
|
||||
"usingComponents": {},
|
||||
"enablePullDownRefresh": true,
|
||||
"backgroundTextStyle": "dark"
|
||||
}
|
23
xz_angren/pages/activity/activity.wxml
Normal file
@ -0,0 +1,23 @@
|
||||
<view class="area">
|
||||
<!-- <view class="area-box {{'' == pages.county?'active': ''}}" bindtap="loadAll">全部</view> -->
|
||||
<view class="area-box {{item.dataId == pages.activityType? 'active' : ''}}" wx:for="{{typeList}}" wx:key="index" data-dataId="{{item.dataId}}" bindtap="changeArea">{{item.dataName}}</view>
|
||||
</view>
|
||||
<view class="activity">
|
||||
<view class="activity-box" bindtap="goDetail" data-id="{{item.activityLibraryId}}" wx:for="{{dataList}}" wx:key="index">
|
||||
<view class="activity-img">
|
||||
<image src="{{item.activityImage}}"></image>
|
||||
</view>
|
||||
<view class="activity-info">
|
||||
<view class="title">
|
||||
<view class="activity-title">{{item.activityTitle}}</view>
|
||||
<view class="sign" wx:if="{{item.activityState == '3'}}">报名中</view>
|
||||
<view class="sign" wx:if="{{item.activityState == '4'}}">报名人数已满</view>
|
||||
<view class="sign" wx:if="{{item.activityState == '5'}}">停止报名</view>
|
||||
<view class="sign" wx:if="{{item.activityState == '6'}}">进行中</view>
|
||||
<view class="sign" wx:if="{{item.activityState == '7'}}">直接进入</view>
|
||||
<view class="sign" wx:if="{{item.activityState == '99'}}">已结束</view>
|
||||
</view>
|
||||
<view class="date">{{item.activityStartTime}}至{{item.activityEndTime}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
105
xz_angren/pages/activity/activity.wxss
Normal file
@ -0,0 +1,105 @@
|
||||
.activity {
|
||||
padding: 20rpx 30rpx 0;
|
||||
margin-top: 80rpx;
|
||||
}
|
||||
|
||||
.activity-box {
|
||||
margin-bottom: 20rpx;
|
||||
box-shadow: 0px 0px 17rpx 0px rgba(0, 0, 0, 0.1);
|
||||
border-radius: 10rpx;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.activity-img {
|
||||
height: 320rpx;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.activity-img image {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.corner {
|
||||
position: absolute;
|
||||
top: 20rpx;
|
||||
right: 20rpx;
|
||||
display: flex;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.corner view {
|
||||
padding: 0 10rpx;
|
||||
background: rgba(0, 0, 0, 0.6);
|
||||
line-height: 40rpx;
|
||||
vertical-align: middle;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
border-radius: 5rpx;
|
||||
}
|
||||
|
||||
.view-count {
|
||||
margin-right: 20rpx;
|
||||
}
|
||||
|
||||
.view-count image {
|
||||
width: 40rpx;
|
||||
height: 40rpx;
|
||||
}
|
||||
|
||||
.activity-info {
|
||||
padding: 15rpx 20rpx;
|
||||
}
|
||||
|
||||
.title {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.activity-title {
|
||||
width: 70%;
|
||||
white-space: nowrap;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
font-size: 32rpx;
|
||||
color: #242424;
|
||||
line-height: 40rpx;
|
||||
}
|
||||
|
||||
.sign {
|
||||
background: rgba(159, 21, 18, .1);
|
||||
color: #9F1512;
|
||||
border-radius: 10rpx;
|
||||
padding: 0 20rpx;
|
||||
line-height: 40rpx;
|
||||
font-size: 28rpx;
|
||||
}
|
||||
|
||||
.date {
|
||||
margin-top: 10rpx;
|
||||
font-size: 24rpx;
|
||||
color: #242424;
|
||||
}
|
||||
|
||||
.area {
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
height: 80rpx;
|
||||
white-space: nowrap;
|
||||
overflow-x: auto;
|
||||
box-shadow: 10rpx 10rpx 5rpx #f2f2f2;
|
||||
}
|
||||
|
||||
.area-box {
|
||||
display: inline-block;
|
||||
width: 25%;
|
||||
line-height: 80rpx;
|
||||
text-align: center;
|
||||
font-size: 30rpx;
|
||||
}
|
||||
|
||||
.area-box.active {
|
||||
color: #9F1512;
|
||||
}
|
144
xz_angren/pages/activityDetail/activityDetail.js
Normal file
@ -0,0 +1,144 @@
|
||||
// pages/activityDetail/activityDetail.js
|
||||
var app = getApp();
|
||||
Page({
|
||||
|
||||
/**
|
||||
* 页面的初始数据
|
||||
*/
|
||||
data: {
|
||||
activityUrl: app.activityUrl,
|
||||
dataMap: {},
|
||||
token: ''
|
||||
},
|
||||
getToken: function () {
|
||||
var self = this;
|
||||
return new Promise(resolve => {
|
||||
wx.getStorage({
|
||||
key: 'token',
|
||||
success(res) {
|
||||
self.setData({
|
||||
token: res.data
|
||||
})
|
||||
return resolve();
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
goSign: function (e) {
|
||||
var activityId = e.currentTarget.dataset.id;
|
||||
wx.navigateTo({
|
||||
url: '../activitySign/activitySign?id=' + activityId
|
||||
})
|
||||
},
|
||||
cancel: function (e) {
|
||||
var activityId = e.currentTarget.dataset.id;
|
||||
app.restAjax.get(app.restAjax.path(app.activityUrl + '/app/activityuserapply/cancelapply/' + activityId, []),
|
||||
{}, {
|
||||
headers: {
|
||||
token: self.data.token
|
||||
}
|
||||
}, function (code, data) {
|
||||
if ('200' == code) {
|
||||
wx.navigateTo({
|
||||
url: '../activityDetail/activityDetail?id=' + activityId
|
||||
})
|
||||
}
|
||||
}, function () {
|
||||
|
||||
}, function () {
|
||||
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
onLoad: function (options) {
|
||||
var self = this;
|
||||
this.getToken().then(result => {
|
||||
var url;
|
||||
var id = options.id;
|
||||
if (!self.data.token) {
|
||||
url = '/app/activitylibrary/getactivitylibrarybyidrelease/' + id;
|
||||
self.setData({
|
||||
token: null
|
||||
})
|
||||
} else {
|
||||
url = '/app/activitylibrary/getactivitylibrarybyid/' + id
|
||||
self.getToken()
|
||||
}
|
||||
app.restAjax.get(app.restAjax.path(app.activityUrl + url, []), {}, {
|
||||
headers: {
|
||||
token: self.data.token
|
||||
}
|
||||
}, function (code, data) {
|
||||
data.activityImageArray = data.activityImage.split(',');
|
||||
self.setData({
|
||||
dataMap: data
|
||||
})
|
||||
}, function (code, data) {
|
||||
app.dialog.msg(data.msg);
|
||||
});
|
||||
})
|
||||
this.saveBigdata(options.id);
|
||||
},
|
||||
saveBigdata(id) {
|
||||
var params = "小程序" + id + "活动";
|
||||
var info = {
|
||||
requestUrl: params
|
||||
}
|
||||
app.restAjax.get(app.restAjax.path(app.bigDataUrl + '/app/contentcensusrelease/log', []), info, null,
|
||||
function (code, data) {
|
||||
|
||||
}, function (code, err) {
|
||||
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 生命周期函数--监听页面初次渲染完成
|
||||
*/
|
||||
onReady: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面显示
|
||||
*/
|
||||
onShow: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面隐藏
|
||||
*/
|
||||
onHide: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面卸载
|
||||
*/
|
||||
onUnload: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面相关事件处理函数--监听用户下拉动作
|
||||
*/
|
||||
onPullDownRefresh: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面上拉触底事件的处理函数
|
||||
*/
|
||||
onReachBottom: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 用户点击右上角分享
|
||||
*/
|
||||
onShareAppMessage: function () {
|
||||
|
||||
}
|
||||
})
|
3
xz_angren/pages/activityDetail/activityDetail.json
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"usingComponents": {}
|
||||
}
|
53
xz_angren/pages/activityDetail/activityDetail.wxml
Normal file
@ -0,0 +1,53 @@
|
||||
<view class="activity-img">
|
||||
<swiper indicator-dots="false" autoplay="true" >
|
||||
<swiper-item class="swiper-item" wx:for="{{dataMap.activityImageArray}}" wx:for-index="idx" wx:for-item="item" wx:key="activityImageArray">
|
||||
<image src="{{activityUrl}}/route/file/download/true/{{item}}"></image>
|
||||
</swiper-item>
|
||||
</swiper>
|
||||
</view>
|
||||
<view class="activity-detail">
|
||||
<view class="activity-title">{{dataMap.activityTitle}}</view>
|
||||
<view class="activity-info">
|
||||
<view class="activity-text">
|
||||
<image src="../../images/people.png"></image>
|
||||
<text>活动人数:</text>
|
||||
{{dataMap.activityUserNum }}
|
||||
</view>
|
||||
<view class="activity-text">
|
||||
<image src="../../images/time.png"></image>
|
||||
<text>活动时间:</text>
|
||||
{{dataMap.activityStartTime}}至{{dataMap.activityEndTime}}
|
||||
</view>
|
||||
<view class="activity-text">
|
||||
<image src="../../images/people.png"></image>
|
||||
<text>活动地址:</text>
|
||||
{{dataMap.activityAddress }}
|
||||
</view>
|
||||
</view>
|
||||
<view class="activity-container">
|
||||
<view class="part">
|
||||
<view class="part-title">活动详情</view>
|
||||
<rich-text class="part-content" nodes="{{dataMap.activityDetails}}"></rich-text>
|
||||
</view>
|
||||
<view class="part">
|
||||
<view class="part-title">活动单位</view>
|
||||
<view class="part-content">
|
||||
<view class="part-info">
|
||||
<text>主办单位:</text>{{dataMap.activitySponsor}}
|
||||
</view>
|
||||
<view class="part-info">
|
||||
<text>承办单位:</text>{{dataMap.activityOrganizer}}
|
||||
</view>
|
||||
<view class="part-info">
|
||||
<text>协办单位:</text>{{dataMap.activityCoOrganizer}}
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view class="sign-box" bindtap="goSign" data-id="{{dataMap.activityLibraryId}}" wx-if="{{dataMap.activityState == '3'}}">
|
||||
<view class="sign-btn">报名</view>
|
||||
</view>
|
||||
<!-- <view class="sign-box" bindtap="cancel" data-id="{{dataMap.activityLibraryId}}" wx-if="{{dataMap.activityState != '6' && dataMap.activityState != '7' && dataMap.activityState != '99' && dataMap.isEnroll != ''}}">
|
||||
<view class="sign-btn">取消报名</view>
|
||||
</view> -->
|
91
xz_angren/pages/activityDetail/activityDetail.wxss
Normal file
@ -0,0 +1,91 @@
|
||||
.activity-img, .activity-img image{
|
||||
width: 100%;
|
||||
height: 480rpx;
|
||||
}
|
||||
swiper {
|
||||
height: 100%;
|
||||
}
|
||||
.activity-detail{
|
||||
position: absolute;
|
||||
left: 0;
|
||||
right: 0;
|
||||
top: 430rpx;
|
||||
background: #fff;
|
||||
border-radius:30rpx 30rpx 0px 0px;
|
||||
overflow: hidden;
|
||||
padding-bottom: 120rpx;
|
||||
}
|
||||
.activity-title, .activity-info{
|
||||
padding: 30rpx;
|
||||
font-size: 32rpx;
|
||||
color: #242424;
|
||||
border-bottom: 5px solid #FBFBFB;
|
||||
}
|
||||
.activity-text{
|
||||
line-height: 35rpx;
|
||||
font-size: 28rpx;
|
||||
margin-bottom: 15rpx;
|
||||
}
|
||||
.activity-text:last-child{
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.activity-info image{
|
||||
width: 35rpx;
|
||||
height: 35rpx;
|
||||
margin-right: 10rpx;
|
||||
vertical-align: middle;
|
||||
margin-top: -5rpx;
|
||||
}
|
||||
.activity-text text{
|
||||
color: #BBBBBB;
|
||||
}
|
||||
.activity-container{
|
||||
padding: 30rpx;
|
||||
}
|
||||
.part{
|
||||
margin-bottom: 30rpx;
|
||||
}
|
||||
.part:last-child{
|
||||
margin-bottom: 0;
|
||||
}
|
||||
.part-title{
|
||||
border-left: 3px solid #9F1512;
|
||||
color: #242424;
|
||||
padding-left: 10rpx;
|
||||
font-size: 30rpx;
|
||||
margin-bottom: 10rpx;
|
||||
}
|
||||
.part-content{
|
||||
font-size: 28rpx;
|
||||
line-height: 40rpx;
|
||||
}
|
||||
.part-info{
|
||||
line-height: 50rpx;
|
||||
color: #242424;
|
||||
font-size: 28rpx;
|
||||
}
|
||||
.part-info text{
|
||||
color: #BBBBBB;
|
||||
}
|
||||
.sign-box{
|
||||
position: fixed;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
box-shadow:0px 0px 17px 0px rgba(0,0,0,0.1);
|
||||
height: 120rpx;
|
||||
padding: 20rpx 30rpx;
|
||||
box-sizing: border-box;
|
||||
background: #fff;
|
||||
}
|
||||
.sign-btn{
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background: #9F1512;
|
||||
border-radius: 10rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
font-size: 30rpx;
|
||||
color: #fff;
|
||||
}
|
156
xz_angren/pages/activityDialog/activityDialog.js
Normal file
@ -0,0 +1,156 @@
|
||||
// pages/activityDialog/activityDialog.js
|
||||
var app = getApp();
|
||||
Page({
|
||||
|
||||
/**
|
||||
* 页面的初始数据
|
||||
*/
|
||||
data: {
|
||||
token: '',
|
||||
serviceId: '',
|
||||
pages: {
|
||||
page: 1,
|
||||
rows: 5
|
||||
},
|
||||
dataList: {},
|
||||
status: ''
|
||||
},
|
||||
getToken: function() {
|
||||
var self = this;
|
||||
return new Promise(resolve =>{
|
||||
wx.getStorage({
|
||||
key: 'token',
|
||||
success(res) {
|
||||
self.setData({
|
||||
token: res.data
|
||||
})
|
||||
return resolve();
|
||||
}
|
||||
})
|
||||
})
|
||||
},
|
||||
getActivityHis: function() {
|
||||
var self = this;
|
||||
app.restAjax.get(app.restAjax.path(app.volunteerUrl + '/app/teamactivityhis/listpageteamactivityhis?serviceId=' + self.data.serviceId, []),
|
||||
self.data.pages, {
|
||||
headers: {
|
||||
token: self.data.token
|
||||
}
|
||||
}, function(code, data) {
|
||||
if('200' == code) {
|
||||
var photos = [];
|
||||
for(var item of data.rows) {
|
||||
if('' != item.photo) {
|
||||
item.photo = app.volunteerUrl + '/route/file/download/true/' + item.photo;
|
||||
}
|
||||
if('' != item.photos) {
|
||||
var photoArr = item.photos.split(",");
|
||||
for(var i=0; i<photoArr.length; i++) {
|
||||
photoArr[i] = app.volunteerUrl + '/route/file/download/true/' + photoArr[i];
|
||||
}
|
||||
item.photos = photoArr
|
||||
}
|
||||
if('' != item.videos) {
|
||||
var videoArr = item.videos.split(",");
|
||||
for(var i=0; i<videoArr.length; i++) {
|
||||
videoArr[i] = app.volunteerUrl + '/route/file/download/true/' + videoArr[i];
|
||||
}
|
||||
item.videos = videoArr
|
||||
}
|
||||
}
|
||||
if(1 === self.data.pages.page) {
|
||||
self.setData({
|
||||
dataList: data.rows
|
||||
})
|
||||
console.log(self.data.dataList)
|
||||
}else {
|
||||
if(data.rows.length == 0) {
|
||||
self.setData({
|
||||
[`pages.page`] : self.data.pages.page - 1
|
||||
})
|
||||
app.dialog.msg('暂无更多')
|
||||
return false;
|
||||
}
|
||||
|
||||
self.setData({
|
||||
dataList: data.rows.concat(self.data.dataList)
|
||||
})
|
||||
}
|
||||
}
|
||||
}, function() {
|
||||
|
||||
}, function() {
|
||||
wx.hideNavigationBarLoading(); //完成停止加载图标
|
||||
wx.stopPullDownRefresh();
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
onLoad: function (options) {
|
||||
var self = this;
|
||||
self.setData({
|
||||
serviceId: options.serviceId,
|
||||
status: options.status
|
||||
})
|
||||
this.getToken().then(result => {
|
||||
this.getActivityHis()
|
||||
})
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面初次渲染完成
|
||||
*/
|
||||
onReady: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面显示
|
||||
*/
|
||||
onShow: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面隐藏
|
||||
*/
|
||||
onHide: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面卸载
|
||||
*/
|
||||
onUnload: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面相关事件处理函数--监听用户下拉动作
|
||||
*/
|
||||
onPullDownRefresh: function () {
|
||||
// 在标题栏中显示加载图标
|
||||
wx.showNavigationBarLoading();
|
||||
var self = this;
|
||||
self.setData({
|
||||
[`pages.page`] : self.data.pages.page + 1
|
||||
})
|
||||
console.log(self.data.pages)
|
||||
this.getActivityHis();
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面上拉触底事件的处理函数
|
||||
*/
|
||||
onReachBottom: function () {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 用户点击右上角分享
|
||||
*/
|
||||
onShareAppMessage: function () {
|
||||
|
||||
}
|
||||
})
|
5
xz_angren/pages/activityDialog/activityDialog.json
Normal file
@ -0,0 +1,5 @@
|
||||
{
|
||||
"usingComponents": {},
|
||||
"enablePullDownRefresh": true,
|
||||
"backgroundTextStyle": "dark"
|
||||
}
|
24
xz_angren/pages/activityDialog/activityDialog.wxml
Normal file
@ -0,0 +1,24 @@
|
||||
<view class="dialog">
|
||||
<view class="dialog-box" wx:if="{{dataList < 1}}">
|
||||
暂无评论
|
||||
</view>
|
||||
<view class="dialog-box" wx:for="{{dataList}}">
|
||||
<view class="avatar">
|
||||
<image wx:if="{{item.photo}}" src="{{item.photo}}"></image>
|
||||
<image wx:else src="../../images/avatar.png"></image>
|
||||
</view>
|
||||
<view class="user-info">
|
||||
<view class="name">{{item.volunteerName}}</view>
|
||||
<view class="content">{{item.content}}</view>
|
||||
<view class="content" wx:if="{{item.photos}}">
|
||||
<image wx:for="{{item.photos}}" wx:for-item="subItem" src="{{subItem}}"></image>
|
||||
</view>
|
||||
<view class="content" wx:if="{{item.videos}}">
|
||||
<video wx:for="{{item.videos}}" wx:for-item="subItem" src="{{subItem}}"></video>
|
||||
</view>
|
||||
<view class="public-time">
|
||||
<view class="time">{{item.uploadTime}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|