|
|
import http from '../../utils/api'const baseUrl = require('../../utils/baseUrl')Page({ data: { // 轮播图数据
currentSwiper: 0, baseUrl: baseUrl, swiperList: [], // 通知公告数据
currentNotice: 0, noticeList: [], forum: [], suffer: [], // 添加用户数据
user: {}, county: '' },
// 查询用户信息
getUserInfo() { http.UserInfo({ data: {}, success: res => { this.setData({ user: res.data.area }) } }) },
// 在线问答列表
getforumList() { http.forumList({ data: {}, success: res => { const zxwd = [] zxwd.push(res.rows[0]) this.setData({ forum: zxwd }) } }) },
// 经验分享列表
getexperience() { http.experience({ data: {}, success: res => { console.log(111, res); const zyfx = [] zyfx.push(res.rows[0]) this.setData({ suffer: zyfx }) } }) },
// 轮播
getCarousel() { http.carousel({ data: {}, success: res => { this.setData({ swiperList: res.rows }) } }) },
// 灾害/通知公告
getDisaster() { http.disaster({ data: {}, success: res => { // 处理通知数据,添加时间戳
const notices = res.rows.map(item => { return { ...item, // // 判断是否是24小时内的通知
// isNew: this.isNewNotification(item.createdTime)
} }) this.setData({ noticeList: notices }) } }) },
// // 判断通知是否在24小时内
// isNewNotification(createdTime) {
// if (!createdTime) return false
// const noticeTime = new Date(createdTime.replace(/-/g, '/')).getTime()
// const now = new Date().getTime()
// const twentyFourHours = 24 * 60 * 60 * 1000
// return now - noticeTime < twentyFourHours
// },
// 区域划分跳转
bindXzqh() { wx.navigateTo({ url: '/pagesB/pages/administrativeDivision/administrativeDivision', }) },
// AI问诊
bindAI() { wx.navigateTo({ url: '/pagesA/pages/wzai/wzai', }) },
// 问兽医
bindWsy() { wx.navigateTo({ url: '/pagesA/pages/askingSy/askingSy', }) },
// 找专家
bindZj() { wx.navigateTo({ url: '/pagesA/pages/expert/expert', }) },
// 去买药
bindYao() { wx.navigateTo({ url: '/pagesA/pages/medicine/medicine', }) },
// 养殖知识库
bindZsk() { wx.navigateTo({ url: '/pagesB/pages/repository/repository', }) },
// 在线培训
bindPx() { wx.navigateTo({ url: '/pagesB/pages/training/training', }) },
// 政策解读
bindJd() { wx.navigateTo({ url: '/pagesB/pages/policyElucidation/policyElucidation', }) },
// 问答列表
bindwdlist() { wx.navigateTo({ url: '/pagesB/pages/forumlist/forumlist', }) },
// 问答详情
bindTw(e) { console.log(e); const id = e.currentTarget.dataset.id wx.navigateTo({ url: `/pagesB/pages/onlineAsk/onlineAsk?id=${id}`, }) },
// 经验分享列表
viewexperience() { wx.navigateTo({ url: '/pagesB/pages/experienceList/experienceList', }) },
// 经验分享详情
bindfx(e) { const id = e.currentTarget.dataset.id wx.navigateTo({ url: `/pagesB/pages/experienceDetails/experienceDetails?id=${id}`, }) },
// 查看所有通知
viewAllNotices() { wx.navigateTo({ url: '/pagesB/pages/noticeList/noticeList', }) },
// 查看所有问题
viewAllQuestions() { this.bindwdlist() },
// 获取当前位置信息
getLocation() { let that = this; // 腾讯获取的密钥
let key = 'AOBBZ-6LUK7-WXGXX-HJUXS-HHUM5-FWFPJ' wx.getLocation({ isHighAccuracy: true, type: 'gcj02', success: function (res) { let latitude = res.latitude; let longitude = res.longitude; wx.request({ url: `https://apis.map.qq.com/ws/geocoder/v1/?location=${latitude},${longitude}&key=${key}`, success: res => { that.setData({ county: res.data.result.address_component.district //城市
}); } }) } }) },
onLoad() { this.getUserInfo() this.getDisaster() this.getCarousel() this.getLocation() this.getforumList() this.getexperience() },
onShow() { // 页面显示时重置轮播图(解决某些手机上的轮播问题)
this.resetSwiper() },
// 重置轮播图(解决轮播不自动播放的问题)
resetSwiper() { setTimeout(() => { if (this.data.swiperList.length > 0) { this.setData({ currentSwiper: this.data.currentSwiper }) } }, 300) },
// 轮播图变化事件
onSwiperChange(e) { const current = e.detail.current; this.setData({ currentSwiper: current }); },
// 轮播图指示器点击
onIndicatorTap(e) { const index = e.currentTarget.dataset.index; this.setData({ currentSwiper: index }); },
// 通知轮播变化事件
onNoticeSwiperChange(e) { const current = e.detail.current; this.setData({ currentNotice: current }); },
// 轮播图点击
onSwiperTap(e) { console.log(1111, e); var item = e.currentTarget.dataset.value wx.showToast({ title: `进入${item.adsType}`, icon: 'none', duration: 1000 }); },
// 通知点击
onNoticeTap(e) { const id = e.currentTarget.dataset.id; console.log('通知点击:', id);
// 显示当前点击的通知内容
const notice = this.data.noticeList.find(item => item.id === id); if (notice) { wx.showModal({ title: notice.warningLevel || '通知详情', content: notice.title, showCancel: true, cancelText: '关闭', confirmText: '查看详情', success: (res) => { if (res.confirm) { wx.navigateTo({ url: '/pagesB/pages/noticeDetail/noticeDetail?id=' + id }); } } }); } },
onReady() { // 当前网络状态
wx.getNetworkType({ success: function (res) { // 返回网络类型, 有效值:
// wifi/2g/3g/4g/unknown(Android下不常见的网络类型)/none(无网络)
console.log(res); var networkType = res.networkType if (networkType !== 'unknown') { wx.showToast({ title: '当前使用"' + networkType + '"网络', icon: 'none', duration: 1000 }) } } }) },
// 下拉刷新
onPullDownRefresh() { wx.showNavigationBarLoading() // 重新加载所有数据
Promise.all([ new Promise(resolve => this.getUserInfo(resolve)), new Promise(resolve => this.getDisaster(resolve)), new Promise(resolve => this.getCarousel(resolve)), new Promise(resolve => this.getforumList(resolve)), new Promise(resolve => this.getexperience(resolve)) ]).then(() => { wx.showToast({ title: '刷新成功', icon: 'none', duration: 1000 }) wx.hideNavigationBarLoading() wx.stopPullDownRefresh() }).catch(() => { wx.hideNavigationBarLoading() wx.stopPullDownRefresh() }) },
// 页面滚动
onPageScroll(e) { // 可以根据需要添加滚动效果
}});
|