|
@@ -2,39 +2,39 @@
|
|
|
* Created by zsq on 2016/11/13.
|
|
* Created by zsq on 2016/11/13.
|
|
|
*/
|
|
*/
|
|
|
//调用jsonp函数请求当前所在城市
|
|
//调用jsonp函数请求当前所在城市
|
|
|
-jsonp('https://api.map.baidu.com/api?v=2.0&ak=Dv1NMU23dh1sGS9n2tUouDEYY96Dfzh3&s=1&callback=loadCityWeather');
|
|
|
|
|
|
|
+// jsonp('https://api.map.baidu.com/api?v=2.0&ak=Dv1NMU23dh1sGS9n2tUouDEYY96Dfzh3&s=1&callback=loadCityWeather');
|
|
|
|
|
+//
|
|
|
|
|
+// (function ($) {
|
|
|
|
|
+// $.getUrlParam = function (name) {
|
|
|
|
|
+// var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
|
|
|
|
|
+// var r = window.location.search.substr(1).match(reg);
|
|
|
|
|
+// if (r != null) return unescape(r[2]); return null;
|
|
|
|
|
+// }
|
|
|
|
|
+// })(jQuery);
|
|
|
|
|
|
|
|
-(function ($) {
|
|
|
|
|
- $.getUrlParam = function (name) {
|
|
|
|
|
- var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
|
|
|
|
|
- var r = window.location.search.substr(1).match(reg);
|
|
|
|
|
- if (r != null) return unescape(r[2]); return null;
|
|
|
|
|
|
|
+function loadCityWeather() {
|
|
|
|
|
+
|
|
|
|
|
+ var authCid = $.getUrlParam('auth_cid');
|
|
|
|
|
+ if (authCid == "" || authCid == null) {
|
|
|
|
|
+ authCid = 0;
|
|
|
}
|
|
}
|
|
|
-})(jQuery);
|
|
|
|
|
-
|
|
|
|
|
-function loadCityWeather(){
|
|
|
|
|
-
|
|
|
|
|
- var authCid = $.getUrlParam('auth_cid');
|
|
|
|
|
- if(authCid == "" || authCid == null){
|
|
|
|
|
- authCid = 0;
|
|
|
|
|
- }
|
|
|
|
|
- $.ajax({
|
|
|
|
|
- url:"/web/area/getLoginUserInfo.json",
|
|
|
|
|
- data:{authCid : authCid},
|
|
|
|
|
- dataType:"json",
|
|
|
|
|
- success:function(jsonData){
|
|
|
|
|
- if(jsonData.data != null){
|
|
|
|
|
- //请求登录账号设置地区的天气数据
|
|
|
|
|
- var cityName = jsonData.data.title;
|
|
|
|
|
- if(cityName.endWith("市") || cityName.endWith("县")){
|
|
|
|
|
- cityName = cityName.substring(0, cityName.length - 1);
|
|
|
|
|
- }
|
|
|
|
|
- jsonp(createUrl(cityName));
|
|
|
|
|
- }else{
|
|
|
|
|
- getCity();
|
|
|
|
|
- }
|
|
|
|
|
- }
|
|
|
|
|
- });
|
|
|
|
|
|
|
+ $.ajax({
|
|
|
|
|
+ url: "/web/area/getLoginUserInfo.json",
|
|
|
|
|
+ data: {authCid: authCid},
|
|
|
|
|
+ dataType: "json",
|
|
|
|
|
+ success: function (jsonData) {
|
|
|
|
|
+ if (jsonData.data != null) {
|
|
|
|
|
+ //请求登录账号设置地区的天气数据
|
|
|
|
|
+ var cityName = jsonData.data.title;
|
|
|
|
|
+ if (cityName.endWith("市") || cityName.endWith("县")) {
|
|
|
|
|
+ cityName = cityName.substring(0, cityName.length - 1);
|
|
|
|
|
+ }
|
|
|
|
|
+ jsonp(createUrl(cityName));
|
|
|
|
|
+ } else {
|
|
|
|
|
+ getCity();
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// 数据请求函数
|
|
// 数据请求函数
|
|
@@ -52,6 +52,7 @@ function getCity() {
|
|
|
//请求当前城市的天气数据
|
|
//请求当前城市的天气数据
|
|
|
jsonp(createUrl(city));
|
|
jsonp(createUrl(city));
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
var cityName = new BMap.LocalCity();
|
|
var cityName = new BMap.LocalCity();
|
|
|
cityName.get(city);
|
|
cityName.get(city);
|
|
|
}
|
|
}
|
|
@@ -60,12 +61,12 @@ function getCity() {
|
|
|
function getWeather(response) {
|
|
function getWeather(response) {
|
|
|
var oSpan = document.getElementsByClassName('info');
|
|
var oSpan = document.getElementsByClassName('info');
|
|
|
var data = response.result;
|
|
var data = response.result;
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
//如果获取到的天气为空(地区信息有错,查不到天气)则获取当前网络IP的天气情况
|
|
//如果获取到的天气为空(地区信息有错,查不到天气)则获取当前网络IP的天气情况
|
|
|
- if(data == null || data == 'undefined'){
|
|
|
|
|
- getCity();
|
|
|
|
|
|
|
+ if (data == null || data == 'undefined') {
|
|
|
|
|
+ getCity();
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
oSpan[0].innerHTML = data[0].citynm;
|
|
oSpan[0].innerHTML = data[0].citynm;
|
|
|
oSpan[1].innerHTML = data[0].weather;
|
|
oSpan[1].innerHTML = data[0].weather;
|
|
|
oSpan[2].innerHTML = data[0].temperature;
|
|
oSpan[2].innerHTML = data[0].temperature;
|
|
@@ -137,19 +138,19 @@ function chooseImg(id, index) {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-String.prototype.endWith = function(s){
|
|
|
|
|
- if(s==null||s==""||this.length==0||s.length>this.length)
|
|
|
|
|
- return false;
|
|
|
|
|
- if(this.substring(this.length-s.length)==s)
|
|
|
|
|
- return true;
|
|
|
|
|
- else
|
|
|
|
|
- return false;
|
|
|
|
|
- return true;
|
|
|
|
|
|
|
+String.prototype.endWith = function (s) {
|
|
|
|
|
+ if (s == null || s == "" || this.length == 0 || s.length > this.length)
|
|
|
|
|
+ return false;
|
|
|
|
|
+ if (this.substring(this.length - s.length) == s)
|
|
|
|
|
+ return true;
|
|
|
|
|
+ else
|
|
|
|
|
+ return false;
|
|
|
|
|
+ return true;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//根据城市名创建请求数据及url
|
|
//根据城市名创建请求数据及url
|
|
|
function createUrl(cname) {
|
|
function createUrl(cname) {
|
|
|
- var cityName = '';
|
|
|
|
|
|
|
+ var cityName = '';
|
|
|
if (arguments.length == 0) {
|
|
if (arguments.length == 0) {
|
|
|
cityName = cname;
|
|
cityName = cname;
|
|
|
} else {
|
|
} else {
|
|
@@ -160,8 +161,8 @@ function createUrl(cname) {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
//高德地图获取天气
|
|
//高德地图获取天气
|
|
|
-function getAdcode(){
|
|
|
|
|
- return new Promise((resolve, reject)=>{
|
|
|
|
|
|
|
+function getAdcode() {
|
|
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
$.ajax({
|
|
$.ajax({
|
|
|
url: "https://restapi.amap.com/v3/ip?key=ee001a52e68437f9a030eaa01c3a9646",
|
|
url: "https://restapi.amap.com/v3/ip?key=ee001a52e68437f9a030eaa01c3a9646",
|
|
|
type: 'get',
|
|
type: 'get',
|
|
@@ -175,26 +176,27 @@ function getAdcode(){
|
|
|
})
|
|
})
|
|
|
})
|
|
})
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
function getGdWeather(mode) {
|
|
function getGdWeather(mode) {
|
|
|
- getAdcode().then((adcode)=>{
|
|
|
|
|
- if(adcode && adcode.status == "1"){
|
|
|
|
|
|
|
+ getAdcode().then((adcode) => {
|
|
|
|
|
+ if (adcode && adcode.status == "1") {
|
|
|
$.ajax({
|
|
$.ajax({
|
|
|
url: `https://restapi.amap.com/v3/weather/weatherInfo?key=ee001a52e68437f9a030eaa01c3a9646&city=${adcode.adcode}&extensions=base`,
|
|
url: `https://restapi.amap.com/v3/weather/weatherInfo?key=ee001a52e68437f9a030eaa01c3a9646&city=${adcode.adcode}&extensions=base`,
|
|
|
type: 'get',
|
|
type: 'get',
|
|
|
dataType: 'json',
|
|
dataType: 'json',
|
|
|
success: function (data) {
|
|
success: function (data) {
|
|
|
- if(data && data.status == "1"){
|
|
|
|
|
|
|
+ if (data && data.status == "1") {
|
|
|
var weather = data.lives[0];
|
|
var weather = data.lives[0];
|
|
|
let nowText = new Date(weather.reporttime).toLocaleDateString('zh').replaceAll('/', '-')
|
|
let nowText = new Date(weather.reporttime).toLocaleDateString('zh').replaceAll('/', '-')
|
|
|
- if(mode=="classic"){
|
|
|
|
|
|
|
+ if (mode == "classic") {
|
|
|
var name = weather.city + ' ' + nowText + ' ' +
|
|
var name = weather.city + ' ' + nowText + ' ' +
|
|
|
- weather.temperature + "°C" + ' ' + weather.winddirection+ ' ' + weather.windpower+ '级';
|
|
|
|
|
|
|
+ weather.temperature + "°C" + ' ' + weather.winddirection + ' ' + weather.windpower + '级';
|
|
|
$("#weatherWX").html(name);
|
|
$("#weatherWX").html(name);
|
|
|
- }else{
|
|
|
|
|
|
|
+ } else {
|
|
|
var oSpan = document.getElementsByClassName('info');
|
|
var oSpan = document.getElementsByClassName('info');
|
|
|
oSpan[0].innerHTML = weather.city;
|
|
oSpan[0].innerHTML = weather.city;
|
|
|
oSpan[1].innerHTML = nowText;
|
|
oSpan[1].innerHTML = nowText;
|
|
|
- oSpan[2].innerHTML = weather.temperature+ "°C";
|
|
|
|
|
|
|
+ oSpan[2].innerHTML = weather.temperature + "°C";
|
|
|
oSpan[3].innerHTML = weather.winddirection + " " + weather.windpower + "级";
|
|
oSpan[3].innerHTML = weather.winddirection + " " + weather.windpower + "级";
|
|
|
var firstImg = document.getElementsByTagName("img")[0];
|
|
var firstImg = document.getElementsByTagName("img")[0];
|
|
|
var code = getWeatherImage(weather.weather);
|
|
var code = getWeatherImage(weather.weather);
|
|
@@ -221,6 +223,7 @@ const iconWeatherMap = {
|
|
|
'雨': ['阵雨', '雷阵雨', '雷阵雨并伴有冰雹', '小雨', '中雨', '大雨', '暴雨', '大暴雨', '特大暴雨', '强阵雨', '强雷阵雨', '极端降雨', '毛毛雨/细雨', '雨', '小雨-中雨', '中雨-大雨', '大雨-暴雨', '暴雨-大暴雨', '大暴雨-特大暴雨', '冻雨'],
|
|
'雨': ['阵雨', '雷阵雨', '雷阵雨并伴有冰雹', '小雨', '中雨', '大雨', '暴雨', '大暴雨', '特大暴雨', '强阵雨', '强雷阵雨', '极端降雨', '毛毛雨/细雨', '雨', '小雨-中雨', '中雨-大雨', '大雨-暴雨', '暴雨-大暴雨', '大暴雨-特大暴雨', '冻雨'],
|
|
|
'阴': ['阴', '霾', '中度霾', '重度霾', '严重霾', '未知']
|
|
'阴': ['阴', '霾', '中度霾', '重度霾', '严重霾', '未知']
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
function getWeatherImage(weather) {
|
|
function getWeatherImage(weather) {
|
|
|
for (const weatherKey in iconWeatherMap) {
|
|
for (const weatherKey in iconWeatherMap) {
|
|
|
if (Object.hasOwnProperty.call(iconWeatherMap, weatherKey)) {
|
|
if (Object.hasOwnProperty.call(iconWeatherMap, weatherKey)) {
|