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