选择地区

This commit is contained in:
dong_bo0602 2020-08-06 16:49:55 +08:00
parent 4b92002e83
commit cd5bbba85d
9 changed files with 257 additions and 20 deletions

View File

@ -7,11 +7,38 @@ Page({
*/ */
data: { data: {
dataList: [], dataList: [],
areaList: [],
pages: { pages: {
page: 1, page: 1,
rows: 5 rows: 5,
county: ''
} }
}, },
getAreaList: function () {
var self = this;
app.restAjax.get(app.restAjax.path(app.usercenterUrl + '/app/dataarea/listareabyparentidrelease/640675', []),
self.data.pages, null, function (code, data) {
if (code == '200') {
self.setData({
areaList: data
})
}
}
)
},
changeArea: function (e) {
app.dialog.loading('正在加载');
this.setData({
'pages.county': e.currentTarget.dataset.area
})
this.getActivityList()
},
loadAll: function () {
this.setData({
'pages.county': ''
})
this.getActivityList()
},
goDetail: function (e) { goDetail: function (e) {
var id = e.currentTarget.dataset.id; var id = e.currentTarget.dataset.id;
wx.navigateTo({ wx.navigateTo({
@ -50,6 +77,7 @@ Page({
}, function() { }, function() {
wx.hideNavigationBarLoading(); //完成停止加载图标 wx.hideNavigationBarLoading(); //完成停止加载图标
wx.stopPullDownRefresh(); wx.stopPullDownRefresh();
wx.hideLoading();
}) })
}, },
/** /**
@ -57,6 +85,7 @@ Page({
*/ */
onLoad: function (options) { onLoad: function (options) {
this.getActivityList(); this.getActivityList();
this.getAreaList()
}, },
/** /**

View File

@ -1,3 +1,7 @@
<view class="area">
<view class="area-box {{'' == pages.county?'active': ''}}" bindtap="loadAll">全部</view>
<view class="area-box {{item.areaId == pages.county?'active': ''}}" wx:for="{{areaList}}" wx:key="index" data-area="{{item.areaId}}" bindtap="changeArea">{{item.areaName}}</view>
</view>
<view class="activity"> <view class="activity">
<view class="activity-box" bindtap="goDetail" data-id="{{item.activityLibraryId}}" wx:for="{{dataList}}" wx:key="index"> <view class="activity-box" bindtap="goDetail" data-id="{{item.activityLibraryId}}" wx:for="{{dataList}}" wx:key="index">
<view class="activity-img"> <view class="activity-img">

View File

@ -1,5 +1,6 @@
.activity{ .activity{
padding: 20rpx 30rpx 0; padding: 20rpx 30rpx 0;
margin-top: 80rpx;
} }
.activity-box{ .activity-box{
margin-bottom: 20rpx; margin-bottom: 20rpx;
@ -66,4 +67,23 @@
margin-top: 10rpx; margin-top: 10rpx;
font-size: 24rpx; font-size: 24rpx;
color: #242424; color: #242424;
}
.area{
position: fixed;
top: 0;
left: 0;
right: 0;
height: 80rpx;
white-space: nowrap;
overflow-x: auto;
}
.area-box{
display: inline-block;
width: 25%;
line-height: 80rpx;
text-align: center;
font-size: 30rpx;
}
.area-box.active{
color: #9F1512;
} }

View File

@ -13,7 +13,8 @@ Page({
directoriesParentId: 'f497904b-7727-4832-891c-604c36ae4167', directoriesParentId: 'f497904b-7727-4832-891c-604c36ae4167',
currentNewsDictionariesId: '', currentNewsDictionariesId: '',
currentPage: 1, currentPage: 1,
rows: 10 rows: 10,
areaId: ''
}, },
doGetNewsDictionariesList: function() { doGetNewsDictionariesList: function() {
var self = this; var self = this;
@ -43,15 +44,21 @@ Page({
}); });
self.doGetNewsList(1); self.doGetNewsList(1);
}, },
doGetNewsList: function(page) { doGetNewsList: function(page, lv) {
var self = this; var self = this;
app.dialog.loading('正在加载'); app.dialog.loading('正在加载');
app.restAjax.get(app.restAjax.path('{newsUrl}/app/newscontent/listpagenewscontentrelease', [self.data.news.newsUrl]), { var info = {
newsDirectoriesParentId: self.data.directoriesParentId, newsDirectoriesParentId: self.data.directoriesParentId,
newsDirectoriesId: self.data.currentNewsDictionariesId ? self.data.currentNewsDictionariesId : '', newsDirectoriesId: self.data.currentNewsDictionariesId ? self.data.currentNewsDictionariesId : '',
page: page, page: page,
rows: self.data.rows rows: self.data.rows
}, null, function(code, data) { }
if (lv) {
lv = 'area' + lv
info[lv] = self.data.areaId
}
console.log(info)
app.restAjax.get(app.restAjax.path('{newsUrl}/app/newscontent/listpagenewscontentrelease', [self.data.news.newsUrl]), info, null, function(code, data) {
var newsArray; var newsArray;
if(page <= 1) { if(page <= 1) {
newsArray = data.rows; newsArray = data.rows;
@ -79,6 +86,32 @@ Page({
url: '../newsDetail/newsDetail?templateRecordUrl='+ event.currentTarget.dataset.templateRecordUrl, url: '../newsDetail/newsDetail?templateRecordUrl='+ event.currentTarget.dataset.templateRecordUrl,
}) })
}, },
getAreaList: function () {
var self = this;
app.restAjax.get(app.restAjax.path(app.usercenterUrl + '/app/dataarea/listareabyparentidrelease/640675', []),
self.data.pages, null, function (code, data) {
if (code == '200') {
self.setData({
areaList: data
})
}
}
)
},
changeArea: function (e) {
app.dialog.loading('正在加载');
var lv = parseInt(e.currentTarget.dataset.level) + 1
this.setData({
areaId: e.currentTarget.dataset.area
})
this.doGetNewsList(1, lv)
},
loadAll: function () {
this.setData({
areaId: ''
})
this.doGetNewsList(1)
},
/** /**
* 生命周期函数--监听页面加载 * 生命周期函数--监听页面加载
*/ */
@ -94,6 +127,7 @@ Page({
}); });
} }
self.doGetNewsDictionariesList(); self.doGetNewsDictionariesList();
self.getAreaList();
}, },
/** /**

View File

@ -1,13 +1,27 @@
<view class="top-tab"> <view class="top-tab">
<view class="tab-box {{!currentNewsDictionariesId ? 'active' : ''}}" bindtap="doClearCurrentNewsDictionariesId"> <view class="type">
<image src="../../images/selected-l.png" class="selected-l"></image> <view class="tab-box {{!currentNewsDictionariesId ? 'active' : ''}}" bindtap="doClearCurrentNewsDictionariesId">
全部 <image src="../../images/selected-l.png" class="selected-l"></image>
<image src="../../images/selected-r.png" class="selected-r"></image> 全部
<image src="../../images/selected-r.png" class="selected-r"></image>
</view>
<view class="tab-box {{ item.newsDirectoriesId == currentNewsDictionariesId ? 'active' : ''}}" wx:for="{{news.newsDictionaries}}" wx:for-index="index" wx:for-item="item" wx:key="newsDictionaries" bindtap="doClickDictionaries" data-news-directories-id="{{item.newsDirectoriesId}}">
<image src="../../images/selected-l.png" class="selected-l"></image>
{{item.directoriesName}}
<image src="../../images/selected-r.png" class="selected-r"></image>
</view>
</view> </view>
<view class="tab-box {{ item.newsDirectoriesId == currentNewsDictionariesId ? 'active' : ''}}" wx:for="{{news.newsDictionaries}}" wx:for-index="index" wx:for-item="item" wx:key="newsDictionaries" bindtap="doClickDictionaries" data-news-directories-id="{{item.newsDirectoriesId}}"> <view class="area">
<image src="../../images/selected-l.png" class="selected-l"></image> <view class="area-box {{'' == areaId?'active': ''}}" bindtap="loadAll">
{{item.directoriesName}} <image src="../../images/selected-l.png" class="selected-l"></image>
<image src="../../images/selected-r.png" class="selected-r"></image> 全部
<image src="../../images/selected-r.png" class="selected-r"></image>
</view>
<view class="area-box {{item.areaId == areaId?'active': ''}}" wx:for="{{areaList}}" wx:key="index" data-area="{{item.areaId}}" data-level="{{item.areaLevel}}" bindtap="changeArea">
<image src="../../images/selected-l.png" class="selected-l"></image>
{{item.areaName}}
<image src="../../images/selected-r.png" class="selected-r"></image>
</view>
</view> </view>
</view> </view>
<view class="news"> <view class="news">

View File

@ -3,12 +3,14 @@
top: 0; top: 0;
left: 0; left: 0;
right: 0; right: 0;
display: flex;
box-shadow:0 0 17rpx 0 rgba(0,0,0,0.1); box-shadow:0 0 17rpx 0 rgba(0,0,0,0.1);
border-radius:0 0 31rpx 31rpx; border-radius:0 0 31rpx 31rpx;
background: #fff; background: #fff;
overflow-x: auto; overflow-x: auto;
} }
.type{
display: flex;
}
.tab-box{ .tab-box{
display: inline-flex; display: inline-flex;
justify-content: center; justify-content: center;
@ -35,15 +37,52 @@
display: block; display: block;
} }
.tab-box image.selected-l{ .tab-box image.selected-l{
left: 40rpx; left: 20rpx;
} }
.tab-box image.selected-r{ .tab-box image.selected-r{
right: 40rpx; right: 20rpx;
}
.area{
overflow-x: auto;
white-space: nowrap;
}
.area-box{
display: inline-block;
width: 30%;
height: 90rpx;
line-height: 90rpx;
text-align: center;
padding: 0 20px;
box-sizing: border-box;
position: relative;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.area-box.active{
color: #9F1512;
}
.area-box image{
position: absolute;
width: 15rpx;
height: 40rpx;
top: 50%;
margin-top: -20rpx;
display: none;
}
.area-box.active image{
display: block;
}
.area-box image.selected-l{
left: 20rpx;
}
.area-box image.selected-r{
right: 20rpx;
} }
.news{ .news{
padding: 30rpx; padding: 30rpx;
border-bottom: 5px solid #FBFBFB; border-bottom: 5px solid #FBFBFB;
margin-top: 90rpx; margin-top: 180rpx;
} }
.news-box{ .news-box{
padding: 30rpx 0; padding: 30rpx 0;

View File

@ -16,7 +16,11 @@ Page({
orderKey : '', orderKey : '',
venueType : '', venueType : '',
latitude: '', latitude: '',
longitude: '' longitude: '',
selectingArea: false, // 显示隐藏选择区域
areaList: [],
venueArea: '',
areaName: ''
}, },
//获取定位 //获取定位
@ -63,6 +67,7 @@ Page({
latitude: self.data.latitude, latitude: self.data.latitude,
longitude: self.data.longitude, longitude: self.data.longitude,
selfLocation: 'TX', selfLocation: 'TX',
venueArea: self.data.venueArea
}, null, }, null,
function(code, data){ function(code, data){
data.rows.forEach(element => { data.rows.forEach(element => {
@ -77,11 +82,15 @@ Page({
venuesList : data.rows, venuesList : data.rows,
page : data.page page : data.page
}); });
if (data.rows.length == 0) {
app.dialog.msg('暂无数据');
}
}, function(code,data){ }, function(code,data){
app.dialog.msg(data.msg); app.dialog.msg(data.msg);
},function(){ },function(){
wx.hideNavigationBarLoading(); wx.hideNavigationBarLoading();
wx.stopPullDownRefresh(); wx.stopPullDownRefresh();
wx.hideLoading();
} }
); );
}, },
@ -115,12 +124,51 @@ Page({
}) })
}, },
//选择区域
selectArea: function () {
this.setData({
selectingArea: true
})
},
// 获取地区列表
getAreaList: function () {
var self = this;
app.restAjax.get(app.restAjax.path(app.usercenterUrl + '/app/dataarea/listareabyparentidrelease/640675', []),
self.data.pages, null, function (code, data) {
if (code == '200') {
self.setData({
areaList: data
})
}
})
},
// 切换地区
changeArea: function (e) {
app.dialog.loading('正在加载');
this.setData({
venueArea: e.currentTarget.dataset.area,
selectingArea: false,
areaName: e.currentTarget.dataset.areaname
})
this.listPageVenuesInfo()
},
// 全部地区
loadAll: function () {
this.setData({
venueArea: '',
selectingArea: false
})
this.listPageVenuesInfo()
},
/** /**
* 生命周期函数--监听页面加载 * 生命周期函数--监听页面加载
*/ */
onLoad: function (options) { onLoad: function (options) {
this.listVenueType(); this.listVenueType();
this.getLocation(); this.getLocation();
this.getAreaList();
}, },
/** /**

View File

@ -19,6 +19,12 @@
<view class="select-box {{orderKey == 'timeDesc' ? 'active' : ''}}" bindtap="changeVenuesOrderBy" data-becheck="timeDesc"> <view class="select-box {{orderKey == 'timeDesc' ? 'active' : ''}}" bindtap="changeVenuesOrderBy" data-becheck="timeDesc">
最新发布 最新发布
</view> </view>
<view class="select-box" bindtap="selectArea" wx:if="{{venueArea == ''}}">
选择区域
</view>
<view class="select-box" bindtap="selectArea" wx:if="{{venueArea != ''}}">
{{areaName}}
</view>
</view> </view>
</view> </view>
<view class="venue"> <view class="venue">
@ -35,3 +41,9 @@
</view> </view>
</view> </view>
</view> </view>
<view class="select-area" wx:if="{{selectingArea}}">
<view class="area-container">
<view class="area-box {{'' == venueArea?'active': ''}}" bindtap="loadAll">全部</view>
<view class="area-box {{item.areaId == venueArea?'active': ''}}" wx:for="{{areaList}}" wx:key="index" data-area="{{item.areaId}}" data-areaName="{{item.areaName}}" bindtap="changeArea">{{item.areaName}}</view>
</view>
</view>

View File

@ -3,7 +3,7 @@
top: 0; top: 0;
left: 0; left: 0;
right: 0; right: 0;
padding: 0 30rpx; padding: 0 30rpx 10rpx;
background: #fff; background: #fff;
} }
.fixed-tab{ .fixed-tab{
@ -44,7 +44,7 @@
} }
.venue{ .venue{
height: 400rpx; height: 400rpx;
margin-top: 240rpx; margin-top: 250rpx;
padding: 0 30rpx; padding: 0 30rpx;
} }
@ -85,4 +85,41 @@
font-size: 28rpx; font-size: 28rpx;
color: #242424; color: #242424;
margin-top: 10rpx; margin-top: 10rpx;
}
.select-area{
position: fixed;
top: 0;
bottom: 0;
right: 0;
left: 0;
background: rgba(0,0,0,0.6);
}
.area-container{
background: #fff;
padding: 15rpx 15rpx 0;
font-size: 0;
}
.area-box{
display: inline-block;
width: 32%;
height: 60rpx;
line-height: 60rpx;
margin-bottom: 15rpx;
margin-right: 2%;
text-align: center;
font-size: 30rpx;
border: 1px solid #DDD;
border-radius: 10rpx;
box-sizing: border-box;
padding: 0 10rpx;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.area-box.active{
border: #9F1512 1px solid;
color: #9F1512;
}
.area-box:nth-child(3n){
margin-right: 0;
} }