xz_dingri/subpages/search/commonSearch.js
2023-03-15 17:58:44 +08:00

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) {
},
)
}
})