//index.js
const api = require('../../libs/api');
Page({
data: {
citySelected: {},
weatherData: {},
topCity: {},
current: 0
},
/**
* 显示天气管理页面
*/
showDetailPage: function (event) {
// 从属性data-city_code获取数据
let cityAdCode = event.currentTarget.dataset.city_code || '';
wx.navigateTo({
url: '../detail/detail?city_code=' + cityAdCode
})
},
/**
* 显示城市管理页面
*/
showSettingPage: function () {
wx.navigateTo({
url: '../setting/setting'
})
},
/**
* 更新首页顶部的显示的城市信息
* @param event 事件发生后返回的数据
*/
updateTopCity: function (event) {
let citySelected = wx.getStorageSync('citySelected');
let weatherData = wx.getStorageSync('weatherData');
let topCity = {
left: "",
center: "",
right: "",
};
// 获取轮播图中页面的索引
let current = event.detail.current;
wx.setStorageSync('currentPage', current);
try {
if (citySelected[current - 1] !== undefined) {
topCity.left = weatherData[citySelected[current - 1]].realtime.city_name;
}
} catch (e) {
console.error(e.message)
}
try {
topCity.center = weatherData[citySelected[current]].realtime.city_name;
} catch (e) {
console.error(e.message)
}
try {
if (citySelected[current + 1] !== undefined) {
topCity.right = weatherData[citySelected[current + 1]].realtime.city_name;
}
} catch (e) {
console.error(e.message)
}
this.setData({
topCity: topCity,
})
},
/**
* 获取本地城市adCode和天气数据或者更新天气数据所有城市的天气数据
*/
onLoad: function () {
let defaultCityAdCode = "local_adCode";
let citySelected = wx.getStorageSync('citySelected') || [];
let weatherData = wx.getStorageSync('weatherData') || {};
let that = this;
if (citySelected.length === 0) {
citySelected.unshift("local_adCode");
wx.setStorageSync('citySelected', citySelected);
}
if (weatherData.length === 0) {
api.getWeatherData(defaultCityAdCode, function (cityAdCode, data) {
weatherData[cityAdCode] = data;
wx.setStorageSync('weatherData', weatherData);
that.setHomeData([cityAdCode], weatherData);
});
} else {
this.updateWeatherData();
}
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
let citySelected = wx.getStorageSync('citySelected');
let weatherData = wx.getStorageSync('weatherData');
this.setHomeData(citySelected, weatherData)
wx.setStorageSync('isDetail', false)
},
/**
* 更新已管理城市的天气数据
*/
updateWeatherData() {
let citySelected = wx.getStorageSync('citySelected');
let weatherData = wx.getStorageSync('weatherData') || {};
let that = this;
for (let idx in citySelected) {
let cityAdCode = citySelected[idx];
api.getWeatherData(cityAdCode, function (cityAdCode, data) {
weatherData = wx.getStorageSync('weatherData') || {};
weatherData[cityAdCode] = data;
wx.setStorageSync('weatherData', weatherData);
that.setHomeData(citySelected, weatherData);
});
}
},
/**
* 设置主页数据
* @param citySelected 已经被管理的城市信息
* @param weatherData 天气信息
*/
setHomeData: function (citySelected, weatherData) {
let isDetail = wx.getStorageSync("isDetail") || false;
let removeCount = wx.getStorageSync('removeCount');
if (!isDetail) {
let topCity = {
left: "",
center: "",
right: "",
};
let currentPage = wx.getStorageSync('currentPage');
if (currentPage == 0 || removeCount >= 2) {
try {
topCity.center = weatherData[citySelected[0]].realtime.city_name;
} catch (e) {
console.error('获取顶部中间城市名错误:', e.message)
}
try {
topCity.right = weatherData[citySelected[1]].realtime.city_name;
} catch (e) {
console.error('获取顶部右边城市名错误:', e.message)
}
} else {
try {
topCity.left = weatherData[citySelected[currentPage - 1]].realtime.city_name;
} catch (e) {
console.error('获取顶部左边城市名错误:', e.message)
}
try {
topCity.center = weatherData[citySelected[currentPage]].realtime.city_name;
} catch (e) {
console.error('获取顶部中间城市名错误:', e.message)
}
try {
topCity.right = weatherData[citySelected[currentPage + 1]].realtime.city_name;
} catch (e) {
console.error('获取顶部右边城市名错误:', e.message)
}
}
this.setData({
weatherData: weatherData,
topCity: topCity,
citySelected: citySelected,
})
}
},
})
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
界面美观,功能齐全,适合用作毕业设计、课程设计作业等,项目均经过测试,可快速部署运行! 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
资源推荐
资源详情
资源评论
收起资源包目录
wechat-weather-master.zip (20个子文件)
wechat-weather-master
project.private.config.json 391B
pages
detail
detail.json 2B
detail.js 884B
detail.wxml 3KB
detail.wxss 2KB
index
index.wxml 3KB
index.js 6KB
index.json 2B
index.wxss 2KB
setting
setting.js 4KB
setting.wxml 2KB
setting.wxss 1KB
setting.json 99B
app.json 602B
project.config.json 541B
app.js 9B
libs
api.js 4KB
app.wxss 77B
api格式.json 9KB
.gitignore 6KB
共 20 条
- 1
资源评论
机智的程序员zero
- 粉丝: 1902
- 资源: 4185
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 使用堆栈数据结构解迷宫问题
- SoftFloat-3e.zip
- Easy Save - 3.5.6
- 基于tensorflow的目标检测系统源码+部署教程文档+全部数据+训练好的模型(高分项目)
- 基于Python皮肤电信号的情绪识别算法源码+模型+PPT+详细文档+全部数据资料.zip
- 基于Python皮肤电信号的情绪识别算法源码+模型+PPT+详细文档+全部数据资料.zip
- 区块链毕业设计 基于区块链的慈善募捐平台的智能合约源码+详细文档+全部资料(高分项目).zip
- 区块链毕业设计 基于区块链的慈善募捐平台的智能合约源码+详细文档+全部资料(高分项目).zip
- 区块链毕业设计 基于区块链的慈善募捐平台的智能合约源码+详细文档+全部资料(高分项目).zip
- 免费听歌软件,支持无损音乐下载,支持收藏音乐同步
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功