470 lines
15 KiB
JavaScript
470 lines
15 KiB
JavaScript
|
// subpages/search/commonSearch.js
|
||
|
const app = getApp();
|
||
|
Page({
|
||
|
|
||
|
/**
|
||
|
* 页面的初始数据
|
||
|
*/
|
||
|
data: {
|
||
|
// (网页|安卓|小程序)[a-zA-Z0-9-]{36}(新闻|活动|非遗|场馆|直播|志愿) 我后台正则是这样的
|
||
|
tabList: ['新闻', '活动', '非遗数据', '场馆', '直播', '志愿者活动'],
|
||
|
currentIndex: 0,
|
||
|
keywords: '',
|
||
|
newsList: [],//新闻
|
||
|
activityList: [],//活动
|
||
|
legacyList: [],//非遗
|
||
|
placeList: [],//场馆
|
||
|
liveList: [],//直播
|
||
|
volumerList: [],//志愿者活动
|
||
|
isLoading: false,//是否正在加载
|
||
|
isInit: true,//初始化搜索
|
||
|
imgUrl: app.imgUrl,
|
||
|
url: app.newsUrl,
|
||
|
liveUrl: app.liveUrl,
|
||
|
liveImgUrl: app.liveImgUrl,
|
||
|
page: 1,
|
||
|
rows: 10,
|
||
|
hasMore: true,
|
||
|
latitude: '',
|
||
|
longitude: ''
|
||
|
},
|
||
|
|
||
|
/**
|
||
|
* 生命周期函数--监听页面加载
|
||
|
*/
|
||
|
onLoad(options) {
|
||
|
this.getLocation();
|
||
|
},
|
||
|
changeTab(e) {
|
||
|
var _self = this;
|
||
|
var index = e.currentTarget.dataset.index;
|
||
|
this.setData({
|
||
|
currentIndex: index,
|
||
|
hasMore: true
|
||
|
})
|
||
|
//刷新
|
||
|
if (_self.data.keywords != '') {
|
||
|
_self.setData({
|
||
|
isLoading: true,
|
||
|
page: 1,
|
||
|
isInit: false
|
||
|
})
|
||
|
//tabList: ['新闻', '活动', '非遗数据', '场馆', '直播', '志愿者活动'],
|
||
|
switch (_self.data.currentIndex) {
|
||
|
case 0:
|
||
|
_self.setData({
|
||
|
newsList: [],
|
||
|
})
|
||
|
_self.getNewsList()
|
||
|
_self.doSaveKeyword('新闻')
|
||
|
break;
|
||
|
case 1:
|
||
|
_self.setData({
|
||
|
activityList: [],
|
||
|
})
|
||
|
_self.getActivityList()
|
||
|
_self.doSaveKeyword('活动')
|
||
|
break;
|
||
|
case 2:
|
||
|
_self.setData({
|
||
|
legacyList: []
|
||
|
})
|
||
|
_self.getLegacyList()
|
||
|
_self.doSaveKeyword('非遗')
|
||
|
break;
|
||
|
case 3:
|
||
|
_self.setData({
|
||
|
placeList: []
|
||
|
})
|
||
|
_self.getPlaceList()
|
||
|
_self.doSaveKeyword('场馆')
|
||
|
break;
|
||
|
case 4:
|
||
|
_self.setData({
|
||
|
liveList: []
|
||
|
})
|
||
|
_self.getLiveList()
|
||
|
_self.doSaveKeyword('直播')
|
||
|
break;
|
||
|
case 5:
|
||
|
_self.setData({
|
||
|
volumerList: []
|
||
|
})
|
||
|
_self.getVolumerList()
|
||
|
_self.doSaveKeyword('志愿')
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
//新闻详情
|
||
|
goNewsDetail: function (event) {
|
||
|
wx.navigateTo({
|
||
|
url: '/pages/newsDetail/newsDetail?id=' + event.currentTarget.dataset.item.newsContentId
|
||
|
})
|
||
|
},
|
||
|
//活动详情
|
||
|
goDetail: function (e) {
|
||
|
var id = e.currentTarget.dataset.id;
|
||
|
wx.navigateTo({
|
||
|
url: '/pages/activityDetail/activityDetail?id=' + id
|
||
|
})
|
||
|
},
|
||
|
//非遗详情
|
||
|
legacyDetail(e) {
|
||
|
wx.navigateTo({
|
||
|
url: '/pages/cultureDetail/cultureDetail?libraryId=' + e.currentTarget.dataset.libraryId,
|
||
|
})
|
||
|
},
|
||
|
//场馆详情
|
||
|
placeDetail: function (options) {
|
||
|
var venuesInfoId = options.currentTarget.dataset.id;
|
||
|
wx.navigateTo({
|
||
|
url: '/pages/venueDetail/venueDetail?venuesInfoId=' + venuesInfoId,
|
||
|
})
|
||
|
},
|
||
|
volumerDetail(e) {
|
||
|
var id = e.currentTarget.dataset.id;
|
||
|
wx.navigateTo({
|
||
|
url: '/pages/serviceActivityDetail/serviceActivityDetail?id=' + id
|
||
|
})
|
||
|
},
|
||
|
//直播点播详情
|
||
|
detailLive(event) {
|
||
|
//判断是直播还是录播
|
||
|
var item = event.currentTarget.dataset.id;
|
||
|
if ('0' == item.liveStatus) {
|
||
|
//直播回放
|
||
|
wx.navigateTo({
|
||
|
url: '/subpages/liverecord/liverecord?id=' + item.livePlanId,
|
||
|
})
|
||
|
} else if ('2' == item.liveStatus) {
|
||
|
//直播中
|
||
|
wx.navigateTo({
|
||
|
url: '/pages/broadcastDetail/broadcastDetail?livePlanId=' + event.currentTarget.dataset.id.livePlanId,
|
||
|
})
|
||
|
} else {
|
||
|
//未开始
|
||
|
}
|
||
|
},
|
||
|
//输入监听
|
||
|
inputKeywords(e) {
|
||
|
this.setData({
|
||
|
keywords: e.detail.value
|
||
|
})
|
||
|
if (e.detail.value == '') {
|
||
|
this.setData({
|
||
|
isInit: true
|
||
|
})
|
||
|
}
|
||
|
},
|
||
|
//搜索
|
||
|
doSearch() {
|
||
|
//tabList: ['新闻', '活动', '非遗数据', '场馆', '直播', '志愿者活动'],
|
||
|
var _self = this;
|
||
|
if (_self.data.keywords == '') {
|
||
|
wx.showToast({
|
||
|
icon: 'error',
|
||
|
title: '请输入关键词',
|
||
|
})
|
||
|
} else {
|
||
|
_self.setData({
|
||
|
isLoading: true,
|
||
|
page: 1,
|
||
|
isInit: false,
|
||
|
hasMore: true
|
||
|
})
|
||
|
switch (_self.data.currentIndex) {
|
||
|
case 0:
|
||
|
_self.setData({
|
||
|
newsList: [],
|
||
|
})
|
||
|
_self.getNewsList()
|
||
|
_self.doSaveKeyword('新闻')
|
||
|
break;
|
||
|
case 1:
|
||
|
_self.setData({
|
||
|
activityList: [],
|
||
|
})
|
||
|
_self.getActivityList()
|
||
|
_self.doSaveKeyword('活动')
|
||
|
break;
|
||
|
case 2:
|
||
|
_self.setData({
|
||
|
legacyList: []
|
||
|
})
|
||
|
_self.getLegacyList()
|
||
|
_self.doSaveKeyword('非遗')
|
||
|
break;
|
||
|
case 3:
|
||
|
_self.setData({
|
||
|
placeList: []
|
||
|
})
|
||
|
_self.getPlaceList()
|
||
|
_self.doSaveKeyword('场馆')
|
||
|
break;
|
||
|
case 4:
|
||
|
_self.setData({
|
||
|
liveList: []
|
||
|
})
|
||
|
_self.getLiveList()
|
||
|
_self.doSaveKeyword('直播')
|
||
|
break;
|
||
|
case 5:
|
||
|
_self.setData({
|
||
|
volumerList: []
|
||
|
})
|
||
|
_self.getVolumerList()
|
||
|
_self.doSaveKeyword('志愿')
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
//获取新闻
|
||
|
getNewsList() {
|
||
|
var _self = this;
|
||
|
app.restAjax.get(app.restAjax.path(_self.data.url + '/app/newscontent/listpagenewscontentrelease/' + app.areaCode, []),
|
||
|
{
|
||
|
page: _self.data.page,
|
||
|
rows: _self.data.rows,
|
||
|
keywords: _self.data.keywords
|
||
|
}, null,
|
||
|
function (code, data) {
|
||
|
_self.data.newsList = _self.data.newsList.concat(data.rows)
|
||
|
_self.setData({
|
||
|
newsList: _self.data.newsList,
|
||
|
isLoading: false,
|
||
|
hasMore: _self.data.newsList.length < data.total
|
||
|
})
|
||
|
},
|
||
|
function (code, err) {
|
||
|
//加载失败
|
||
|
app.dialog.msg('网络错误')
|
||
|
_self.setData({
|
||
|
isLoading: false
|
||
|
})
|
||
|
},
|
||
|
)
|
||
|
},
|
||
|
//获取活动
|
||
|
getActivityList() {
|
||
|
var _self = this;
|
||
|
app.restAjax.get(app.restAjax.path(_self.data.url + '/app/activitylibrary/listpageactivitylibraryfornetrelease/' + app.areaCode, []),
|
||
|
{
|
||
|
page: _self.data.page,
|
||
|
rows: _self.data.rows,
|
||
|
keywords: _self.data.keywords
|
||
|
}, null,
|
||
|
function (code, data) {
|
||
|
for (var item of data.rows) {
|
||
|
if ('' != item.activityImage) {
|
||
|
item.activityImage = _self.data.imgUrl + item.activityImage;
|
||
|
}
|
||
|
}
|
||
|
_self.data.activityList = _self.data.activityList.concat(data.rows)
|
||
|
_self.setData({
|
||
|
activityList: _self.data.activityList,
|
||
|
isLoading: false,
|
||
|
hasMore: _self.data.activityList.length < data.total
|
||
|
})
|
||
|
},
|
||
|
function (code, err) {
|
||
|
app.dialog.msg('网络错误')
|
||
|
_self.setData({
|
||
|
isLoading: false
|
||
|
})
|
||
|
},
|
||
|
)
|
||
|
},
|
||
|
//获取非遗
|
||
|
getLegacyList() {
|
||
|
var _self = this;
|
||
|
app.restAjax.get(app.restAjax.path(_self.data.url + '/app/intangiblelibrary/listpageintangiblelibraryrelease/' + app.areaCode, []),
|
||
|
{
|
||
|
page: _self.data.page,
|
||
|
rows: _self.data.rows,
|
||
|
keywords: _self.data.keywords
|
||
|
}, null,
|
||
|
function (code, data) {
|
||
|
for (var i = 0, item; item = data.rows[i++];) {
|
||
|
item.libraryApplyTime = item.libraryApplyTime.substring(0, item.libraryApplyTime.length - 10);
|
||
|
item.libraryCoverArray = item.libraryCover.split(',');
|
||
|
}
|
||
|
_self.data.legacyList = _self.data.legacyList.concat(data.rows)
|
||
|
_self.setData({
|
||
|
legacyList: _self.data.legacyList,
|
||
|
isLoading: false,
|
||
|
hasMore: _self.data.legacyList.length < data.total
|
||
|
})
|
||
|
},
|
||
|
function (code, err) {
|
||
|
app.dialog.msg('网络错误')
|
||
|
_self.setData({
|
||
|
isLoading: false
|
||
|
})
|
||
|
},
|
||
|
)
|
||
|
},
|
||
|
//获取场馆
|
||
|
getPlaceList() {
|
||
|
var _self = this;
|
||
|
|
||
|
app.restAjax.get(app.restAjax.path(_self.data.url + '/app/venuesinfo/listpagevenuesinforelease/' + app.areaCode, []),
|
||
|
{
|
||
|
page: _self.data.page,
|
||
|
rows: _self.data.rows,
|
||
|
keywords: _self.data.keywords,
|
||
|
latitude: _self.data.latitude,
|
||
|
longitude: _self.data.longitude
|
||
|
}, null,
|
||
|
function (code, data) {
|
||
|
data.rows.forEach(element => {
|
||
|
element.venuePanorama = element.venuePanorama.split(',')[0];
|
||
|
if (element.apart >= 1000) {
|
||
|
element.apart = (element.apart / 1000).toFixed(2) + 'km';
|
||
|
} else {
|
||
|
element.apart += 'm';
|
||
|
}
|
||
|
});
|
||
|
_self.data.placeList = _self.data.placeList.concat(data.rows)
|
||
|
_self.setData({
|
||
|
placeList: _self.data.placeList,
|
||
|
isLoading: false,
|
||
|
hasMore: _self.data.placeList.length < data.total
|
||
|
})
|
||
|
},
|
||
|
function (code, err) {
|
||
|
app.dialog.msg('网络错误')
|
||
|
_self.setData({
|
||
|
isLoading: false
|
||
|
})
|
||
|
},
|
||
|
)
|
||
|
},
|
||
|
//获取直播
|
||
|
getLiveList() {
|
||
|
var _self = this;
|
||
|
app.restAjax.get(app.restAjax.path(_self.data.liveUrl + '/app/liveplan/listpageliveplanrelease/', []),
|
||
|
{
|
||
|
page: _self.data.page,
|
||
|
rows: _self.data.rows,
|
||
|
keywords: _self.data.keywords
|
||
|
}, null,
|
||
|
function (code, data) {
|
||
|
_self.data.liveList = _self.data.liveList.concat(data.rows)
|
||
|
_self.setData({
|
||
|
liveList: _self.data.liveList,
|
||
|
isLoading: false,
|
||
|
hasMore: _self.data.liveList.length < data.total
|
||
|
})
|
||
|
},
|
||
|
function (code, err) {
|
||
|
app.dialog.msg('网络错误')
|
||
|
_self.setData({
|
||
|
isLoading: false
|
||
|
})
|
||
|
},
|
||
|
)
|
||
|
},
|
||
|
//获取志愿者活动
|
||
|
getVolumerList() {
|
||
|
var _self = this;
|
||
|
app.restAjax.get(app.restAjax.path(_self.data.url + '/app/volunteerservice/listpagevolunteerservicerelease/' + app.areaCode, []),
|
||
|
{
|
||
|
page: _self.data.page,
|
||
|
rows: _self.data.rows,
|
||
|
keywords: _self.data.keywords
|
||
|
}, null,
|
||
|
function (code, data) {
|
||
|
_self.setData({
|
||
|
isLoading: false,
|
||
|
hasMore: false
|
||
|
})
|
||
|
for (var item of data.rows) {
|
||
|
if ('' != item.photo) {
|
||
|
var photoArr = item.photo.split(",");
|
||
|
item.photo = app.imgUrl + photoArr[0];
|
||
|
}
|
||
|
}
|
||
|
_self.data.volumerList = _self.data.volumerList.concat(data.rows)
|
||
|
_self.setData({
|
||
|
volumerList: _self.data.volumerList,
|
||
|
isLoading: false,
|
||
|
hasMore: _self.data.volumerList.length < data.total
|
||
|
})
|
||
|
},
|
||
|
function (code, err) {
|
||
|
app.dialog.msg('网络错误')
|
||
|
_self.setData({
|
||
|
isLoading: false
|
||
|
})
|
||
|
},
|
||
|
)
|
||
|
},
|
||
|
//获取定位
|
||
|
getLocation: function () {
|
||
|
var self = this;
|
||
|
wx.getLocation({
|
||
|
type: 'gcj02',
|
||
|
success: function (res) {
|
||
|
self.setData({
|
||
|
latitude: res.latitude,
|
||
|
longitude: res.longitude
|
||
|
})
|
||
|
},
|
||
|
complete: function () {
|
||
|
}
|
||
|
})
|
||
|
},
|
||
|
/**
|
||
|
* 页面上拉触底事件的处理函数
|
||
|
*/
|
||
|
onReachBottom() {
|
||
|
var _self = this;
|
||
|
if (_self.data.hasMore) {
|
||
|
if (!_self.data.isInit) {
|
||
|
_self.setData({
|
||
|
page: _self.data.page + 1,
|
||
|
isInit: false
|
||
|
})
|
||
|
//tabList: ['新闻', '活动', '非遗数据', '场馆', '直播', '志愿者活动'],
|
||
|
switch (_self.data.currentIndex) {
|
||
|
case 0:
|
||
|
_self.getNewsList()
|
||
|
break;
|
||
|
case 1:
|
||
|
_self.getActivityList()
|
||
|
break;
|
||
|
case 2:
|
||
|
_self.getLegacyList()
|
||
|
break;
|
||
|
case 3:
|
||
|
_self.getPlaceList()
|
||
|
break;
|
||
|
case 4:
|
||
|
_self.getLiveList()
|
||
|
break;
|
||
|
case 5:
|
||
|
_self.getVolumerList()
|
||
|
break;
|
||
|
}
|
||
|
}
|
||
|
} else {
|
||
|
app.dialog.msg('暂无更多数据了')
|
||
|
}
|
||
|
},
|
||
|
doSaveKeyword(type) {
|
||
|
var _self = this;
|
||
|
var params = "小程序" + _self.data.keywords + type
|
||
|
app.restAjax.get(app.restAjax.path(app.bigDataUrl + '/app/contentcensusrelease/log', []),
|
||
|
{
|
||
|
requestUrl: params
|
||
|
}, null,
|
||
|
function (code, data) {
|
||
|
|
||
|
},
|
||
|
function (code, err) {
|
||
|
},
|
||
|
)
|
||
|
}
|
||
|
|
||
|
})
|