This commit is contained in:
wobeitaoleshigexuruo 2024-06-07 21:03:58 +08:00
parent c70f9ff81e
commit 5c60b0de8c
13 changed files with 1714 additions and 792 deletions

View File

@ -83,14 +83,14 @@
<div class="bar"> <div class="bar">
<div class="barbox"> <div class="barbox">
<ul class="clearfix"> <ul class="clearfix">
<li class="pulll_left counter">43 C</li> <li class="pulll_left counter" id="tem">43 C</li>
<li class="pulll_left counter">51135 mm</li> <li class="pulll_left counter" id="rain">51135 mm</li>
</ul> </ul>
</div> </div>
<div class="barbox2"> <div class="barbox2">
<ul class="clearfix"> <ul class="clearfix">
<li class="pulll_left">平均气温</li> <li class="pulll_left">平均气温</li>
<li class="pulll_left">平均降水</li> <li class="pulll_left">总计降水</li>
</ul> </ul>
</div> </div>
</div> </div>

View File

@ -3,94 +3,383 @@
* { * {
-webkit-box-sizing: border-box; -webkit-box-sizing: border-box;
-moz-box-sizing: border-box; -moz-box-sizing: border-box;
box-sizing: border-box} box-sizing: border-box
*,body{padding:0px; margin:0px;color: #222;font-family: "微软雅黑";} }
@font-face{font-family:electronicFont;src:url(../font/DS-DIGIT.TTF)}
body{ background:#000d4a url(../images/bg.jpg) center top; background-size:cover;color:#666;font-size: .1rem;} *, body {
li{ list-style-type:none;} padding: 0px;
table{} margin: 0px;
i{ margin:0px; padding:0px; text-indent:0px;} color: #222;
img{ border:none; max-width: 100%;} font-family: "微软雅黑";
a{ text-decoration:none; color:#399bff;} }
a.active,a:focus{ outline:none!important; text-decoration:none;}
ol,ul,p,h1,h2,h3,h4,h5,h6{ padding:0; margin:0} @font-face {
a:hover{ color:#06c; text-decoration: none!important} font-family: electronicFont;
src: url(../font/DS-DIGIT.TTF)
}
body {
background: #000d4a url(../images/bg.jpg) center top;
background-size: cover;
color: #666;
font-size: .1rem;
}
li {
list-style-type: none;
}
table {
}
i {
margin: 0px;
padding: 0px;
text-indent: 0px;
}
img {
border: none;
max-width: 100%;
}
a {
text-decoration: none;
color: #399bff;
}
a.active, a:focus {
outline: none !important;
text-decoration: none;
}
ol, ul, p, h1, h2, h3, h4, h5, h6 {
padding: 0;
margin: 0
}
a:hover {
color: #06c;
text-decoration: none !important
}
.clearfix:after, .clearfix:before { .clearfix:after, .clearfix:before {
display: table; display: table;
content: " " content: " "
} }
.clearfix:after { .clearfix:after {
clear: both clear: both
} }
.pulll_left{float:left;}
.pulll_right{float:right;} .pulll_left {
float: left;
}
.pulll_right {
float: right;
}
/*谷哥滚动条样式*/ /*谷哥滚动条样式*/
::-webkit-scrollbar {width:5px;height:5px;position:absolute} ::-webkit-scrollbar {
::-webkit-scrollbar-thumb {background-color:#5bc0de} width: 5px;
::-webkit-scrollbar-track {background-color:#ddd} height: 5px;
position: absolute
}
::-webkit-scrollbar-thumb {
background-color: #5bc0de
}
::-webkit-scrollbar-track {
background-color: #ddd
}
/***/ /***/
.canvas{position: absolute; width:100%; left: 0; top: 0; height: 99%; z-index: 1;} .canvas {
position: absolute;
width: 100%;
left: 0;
top: 0;
height: 99%;
z-index: 1;
}
.allnav{height: calc(100% - 30px);} .allnav {
.loading{position:fixed; left:0; top:0; font-size:18px; z-index:100000000;width:100%; height:100%; background:#1a1a1c; text-align:center;} height: calc(100% - 30px);
.loadbox{position:absolute; width:160px;height:150px; color: #aaa; left:50%; top:50%; margin-top:-100px; margin-left:-75px;} }
.loadbox img{ margin:10px auto; display:block; width:40px;}
.copyright{ background:rgba(19,31,64,.32); border: 1px solid rgba(255,255,255,.05); line-height:.5rem; text-align: center; padding-right: 15px; bottom: 0; color:rgba(255,255,255,.7); font-size: .16rem; } .loading {
position: fixed;
left: 0;
top: 0;
font-size: 18px;
z-index: 100000000;
width: 100%;
height: 100%;
background: #1a1a1c;
text-align: center;
}
.head{ height:1.05rem; background: url(../images/head_bg.png) no-repeat center center; background-size: 100% 100%; position: relative; z-index: 100;} .loadbox {
.head h1{ color:#fff; text-align: center; font-size: .4rem; line-height:.8rem;} position: absolute;
.head h1 img{ width:1.5rem; display: inline-block; vertical-align: middle; margin-right: .2rem} width: 160px;
.weather{ position:absolute; right:.3rem; top:0; line-height: .75rem;} height: 150px;
.weather img{ width:.37rem; display: inline-block; vertical-align: middle;} color: #aaa;
.weather span{color:rgba(255,255,255,.7); font-size: .18rem; padding-right: .1rem;} left: 50%;
.mainbox{ padding:.1rem .1rem 0rem .1rem;} top: 50%;
.mainbox>ul{} margin-top: -100px;
.mainbox>ul>li{ float: left; padding: 0 .1rem} margin-left: -75px;
}
.mainbox>ul>li{ width: 30%} .loadbox img {
.mainbox>ul>li:nth-child(2){ width: 40%;padding: 0} margin: 10px auto;
display: block;
width: 40px;
}
.copyright {
background: rgba(19, 31, 64, .32);
border: 1px solid rgba(255, 255, 255, .05);
line-height: .5rem;
text-align: center;
padding-right: 15px;
bottom: 0;
color: rgba(255, 255, 255, .7);
font-size: .16rem;
}
.head {
height: 1.05rem;
background: url(../images/head_bg.png) no-repeat center center;
background-size: 100% 100%;
position: relative;
z-index: 100;
}
.head h1 {
color: #fff;
text-align: center;
font-size: .4rem;
line-height: .8rem;
}
.head h1 img {
width: 1.5rem;
display: inline-block;
vertical-align: middle;
margin-right: .2rem
}
.weather {
position: absolute;
right: .3rem;
top: 0;
line-height: .75rem;
}
.weather img {
width: .37rem;
display: inline-block;
vertical-align: middle;
}
.weather span {
color: rgba(255, 255, 255, .7);
font-size: .18rem;
padding-right: .1rem;
}
.mainbox {
padding: .1rem .1rem 0rem .1rem;
}
.mainbox > ul {
}
.mainbox > ul > li {
float: left;
padding: 0 .1rem
}
.mainbox > ul > li {
width: 30%
}
.mainbox > ul > li:nth-child(2) {
width: 40%;
padding: 0
}
.boxall {
border: 1px solid rgba(25, 186, 139, .17);
padding: 0 .2rem .4rem .15rem;
background: rgba(255, 255, 255, .04) url(../images/line.png);
background-size: 100% auto;
position: relative;
margin-bottom: .15rem;
z-index: 10;
}
.boxall{ border: 1px solid rgba(25,186,139,.17); padding:0 .2rem .4rem .15rem; background: rgba(255,255,255,.04) url(../images/line.png); background-size: 100% auto; position: relative; margin-bottom: .15rem; z-index: 10;}
.boxall:before, .boxall:before,
.boxall:after{ position:absolute; width: .1rem; height: .1rem; content: ""; border-top: 2px solid #02a6b5; top: 0;} .boxall:after {
.boxall:before,.boxfoot:before{border-left: 2px solid #02a6b5;left: 0;} position: absolute;
.boxall:after,.boxfoot:after{border-right: 2px solid #02a6b5; right: 0;} width: .1rem;
.alltitle{ font-size:.2rem; color:#fff; text-align: center; line-height: .5rem;} height: .1rem;
content: "";
border-top: 2px solid #02a6b5;
top: 0;
}
.boxall:before, .boxfoot:before {
border-left: 2px solid #02a6b5;
left: 0;
}
.boxall:after, .boxfoot:after {
border-right: 2px solid #02a6b5;
right: 0;
}
.alltitle {
font-size: .2rem;
color: #fff;
text-align: center;
line-height: .5rem;
}
.boxfoot {
position: absolute;
bottom: 0;
width: 100%;
left: 0;
}
.boxfoot{ position:absolute; bottom: 0; width: 100%; left: 0;}
.boxfoot:before, .boxfoot:before,
.boxfoot:after{ position:absolute; width: .1rem; height: .1rem; content: "";border-bottom: 2px solid #02a6b5; bottom: 0;} .boxfoot:after {
position: absolute;
width: .1rem;
height: .1rem;
content: "";
border-bottom: 2px solid #02a6b5;
bottom: 0;
}
.bar {
background: rgba(101, 132, 226, .1);
padding: .15rem;
}
.barbox li, .barbox2 li {
width: 50%;
text-align: center;
position: relative;
z-index: 100;
}
.bar{background:rgba(101,132,226,.1); padding: .15rem;}
.barbox li,.barbox2 li{ width:50%; text-align: center; position: relative; z-index: 100;}
.barbox:before, .barbox:before,
.barbox:after{ position:absolute; width: .3rem; height: .1rem; content: ""; } .barbox:after {
.barbox:before{border-left: 2px solid #02a6b5;left: 0;border-top: 2px solid #02a6b5; } position: absolute;
.barbox:after{border-right: 2px solid #02a6b5; right: 0; bottom: 0;border-bottom: 2px solid #02a6b5; } width: .3rem;
height: .1rem;
content: "";
}
.barbox li:first-child:before{ position:absolute; content: ""; height:50%; width: 1px; background: rgba(255,255,255,.2); right: 0; top: 25%;} .barbox:before {
border-left: 2px solid #02a6b5;
left: 0;
border-top: 2px solid #02a6b5;
}
.barbox{ border: 1px solid rgba(25,186,139,.17); position: relative;} .barbox:after {
.barbox li{ font-size: .7rem; color: #ffeb7b; padding: .05rem 0; font-family:electronicFont; font-weight: bold;} border-right: 2px solid #02a6b5;
.barbox2 li{ font-size: .19rem; color:rgba(255,255,255,.7); padding-top: .1rem;} right: 0;
bottom: 0;
border-bottom: 2px solid #02a6b5;
}
.map{ position:relative; height: 7.2rem; z-index: 9;} .barbox li:first-child:before {
.map4{ width: 200%; height:7rem; position: relative; left: -50%; top: 4%; margin-top: .2rem; z-index: 5;} position: absolute;
.map1,.map2,.map3{ position:absolute; opacity: .5} content: "";
.map1{ width:6.43rem; z-index: 2;top:.45rem; left: .7rem; animation: myfirst2 15s infinite linear;} height: 50%;
.map2{ width:5.66rem; top:.85rem; left:1.2rem; z-index: 3; opacity: 0.2; animation: myfirst 10s infinite linear;} width: 1px;
.map3{ width:5.18rem; top:1.07rem; left: 1.4rem; z-index: 1;} background: rgba(255, 255, 255, .2);
right: 0;
top: 25%;
}
.barbox {
border: 1px solid rgba(25, 186, 139, .17);
position: relative;
}
.barbox li {
font-size: .7rem;
color: #ffeb7b;
padding: .05rem 0;
font-family: electronicFont;
font-weight: bold;
}
.barbox2 li {
font-size: .19rem;
color: rgba(255, 255, 255, .7);
padding-top: .1rem;
}
.map {
position: relative;
height: 7.2rem;
z-index: 9;
}
.map4 {
width: 200%;
height: 7rem;
position: relative;
left: -50%;
top: 4%;
margin-top: .2rem;
z-index: 5;
}
.map1, .map2, .map3 {
position: absolute;
opacity: .5
}
.map1 {
width: 6.43rem;
z-index: 2;
top: .45rem;
left: .7rem;
animation: myfirst2 15s infinite linear;
}
.map2 {
width: 5.66rem;
top: .85rem;
left: 1.2rem;
z-index: 3;
opacity: 0.2;
animation: myfirst 10s infinite linear;
}
.map3 {
width: 5.18rem;
top: 1.07rem;
left: 1.4rem;
z-index: 1;
}
.tabs {
text-align: center;
padding: .1rem 0 0 0;
}
.tabs { text-align: center; padding: .1rem 0 0 0;}
.tabs a { .tabs a {
position: relative; position: relative;
display: inline-block; display: inline-block;
@ -100,54 +389,165 @@ a:hover{ color:#06c; text-decoration: none!important}
transition: all .3s ease-out 0s; transition: all .3s ease-out 0s;
font-size: 14px; font-size: 14px;
} }
.tabs li{ display:inline-block;}
.tabs li {
display: inline-block;
}
.tabs a:after { .tabs a:after {
position: absolute; position: absolute;
width: 1px; width: 1px;
height: 10px; height: 10px;
background-color: rgba(255, 255, 255, .1); background-color: rgba(255, 255, 255, .1);
content: ''; content: '';
margin-left:0; right:-1px; margin-top: 7px; margin-left: 0;
right: -1px;
margin-top: 7px;
} }
.tabs li a.active {border: 1px solid rgba(25,186,139,.17); background: rgba(255,255,255,.05); color:#fff;}
.tit02{ text-align:center; margin: .1rem 0; position: relative} .tabs li a.active {
.tit02 span{border: 1px solid rgba(25,186,139,.17); letter-spacing: 2px; padding: .01rem .2rem; background: rgba(255,255,255,.05); font-size: .18rem; color: #49bcf7;} border: 1px solid rgba(25, 186, 139, .17);
.tit02:before,.tit02:after{ position:absolute; width:26%; height: 1px;background: rgba(25,186,139,.2); content: ""; top: .12rem;} background: rgba(255, 255, 255, .05);
.tit02:after{ right:0;} color: #fff;
.tit02:before{ left:0;}
.wrap{ height:2.54rem; overflow: hidden;}
.wrap li{ line-height:.42rem; height:.42rem; font-size: .18rem; text-indent: .24rem; margin-bottom: .1rem; }
.wrap li p{border: 1px solid rgba(25,186,139,.17);color: rgba(255,255,255,.6); }
.sy{ float:left; width: 33%; height:95%; margin-top: .25rem;}
.adduser{ height:1.5rem; overflow: hidden;}
.adduser li{height:.5rem;}
.adduser img{ width: .40rem; border-radius: .5rem; margin-right: .1rem; display: inline-block; vertical-align: middle;}
.adduser span{ line-height:.5rem; font-size: .18rem;color: rgba(255,255,255,.6); }
.sycm ul{ margin-left:-.5rem;margin-right:-.5rem; padding: .16rem 0;}
.sycm li{ float: left; width: 33.33%; text-align: center; position: relative}
.sycm li:before{ position:absolute; content: ""; height:30%; width: 1px; background: rgba(255,255,255,.1); right: 0; top: 15%;}
.sycm li:last-child:before{ width: 0;}
.sycm li h2{ font-size:.3rem; color: #c5ccff;}
.sycm li span{ font-size:.18rem; color: #fff; opacity: .5;}
@keyframes myfirst2
{
from {transform: rotate(0deg);}
to {transform: rotate(359deg);}
} }
@keyframes myfirst .tit02 {
{ text-align: center;
from {transform: rotate(0deg);} margin: .1rem 0;
to {transform: rotate(-359deg);} position: relative
}
.tit02 span {
border: 1px solid rgba(25, 186, 139, .17);
letter-spacing: 2px;
padding: .01rem .2rem;
background: rgba(255, 255, 255, .05);
font-size: .18rem;
color: #49bcf7;
}
.tit02:before, .tit02:after {
position: absolute;
width: 26%;
height: 1px;
background: rgba(25, 186, 139, .2);
content: "";
top: .12rem;
}
.tit02:after {
right: 0;
}
.tit02:before {
left: 0;
}
.wrap {
height: 2.54rem;
overflow: hidden;
}
.wrap li {
line-height: .42rem;
height: .42rem;
font-size: .18rem;
text-indent: .24rem;
margin-bottom: .1rem;
}
.wrap li p {
border: 1px solid rgba(25, 186, 139, .17);
color: rgba(255, 255, 255, .6);
}
.sy {
float: left;
width: 33%;
height: 95%;
margin-top: .25rem;
}
.adduser {
height: 1.5rem;
overflow: hidden;
}
.adduser li {
height: .5rem;
}
.adduser img {
width: .40rem;
border-radius: .5rem;
margin-right: .1rem;
display: inline-block;
vertical-align: middle;
}
.adduser span {
line-height: .5rem;
font-size: .18rem;
color: rgba(255, 255, 255, .6);
}
.sycm ul {
margin-left: -.5rem;
margin-right: -.5rem;
padding: .16rem 0;
}
.sycm li {
float: left;
width: 33.33%;
text-align: center;
position: relative
}
.sycm li:before {
position: absolute;
content: "";
height: 30%;
width: 1px;
background: rgba(255, 255, 255, .1);
right: 0;
top: 15%;
}
.sycm li:last-child:before {
width: 0;
}
.sycm li h2 {
font-size: .3rem;
color: #c5ccff;
}
.sycm li span {
font-size: .18rem;
color: #fff;
opacity: .5;
}
@keyframes myfirst2 {
from {
transform: rotate(0deg);
}
to {
transform: rotate(359deg);
}
}
@keyframes myfirst {
from {
transform: rotate(0deg);
}
to {
transform: rotate(-359deg);
}
} }
@ -170,6 +570,7 @@ to {transform: rotate(-359deg);}
left: 0; left: 0;
cursor: move; cursor: move;
} }
.str_move_clone { .str_move_clone {
display: inline-block; display: inline-block;
vertical-align: top; vertical-align: top;
@ -177,24 +578,29 @@ to {transform: rotate(-359deg);}
left: 100%; left: 100%;
top: 0; top: 0;
} }
.str_vertical .str_move_clone { .str_vertical .str_move_clone {
left: 0; left: 0;
top: 100%; top: 100%;
} }
.str_down .str_move_clone { .str_down .str_move_clone {
left: 0; left: 0;
bottom: 100%; bottom: 100%;
} }
.str_vertical .str_move, .str_vertical .str_move,
.str_down .str_move { .str_down .str_move {
white-space: normal; white-space: normal;
width: 100%; width: 100%;
} }
.str_static .str_move, .str_static .str_move,
.no_drag .str_move, .no_drag .str_move,
.noStop .str_move { .noStop .str_move {
cursor: inherit; cursor: inherit;
} }
.str_wrap img { .str_wrap img {
max-width: none !important; max-width: none !important;
} }

View File

@ -19,6 +19,8 @@ const Chart1_Data = {
] ]
} }
const RAIN_Data = 5.6
const Chart2_Data = { const Chart2_Data = {
"x": [ "x": [
"7 月", "7 月",
@ -109,6 +111,8 @@ const Chart4_Data = {
] ]
} }
const TMP_Data = 23.7
const Chart5_Data = { const Chart5_Data = {
"x": [ "x": [
"秀山", "秀山",

View File

@ -1,13 +1,13 @@
from sqlalchemy import create_engine from sqlalchemy import create_engine
from sqlmodel import Session from sqlmodel import Session
from rain import rain
from temp_24 import tem_24
from temp_now import tem_now
from hum_now import hum_now
from aqi_data import aqi_data from aqi_data import aqi_data
from info import info
from aqi_pie import aqi_pie from aqi_pie import aqi_pie
from hum_now import hum_now
from info import info
from rain import rain, rain_all
from temp_24 import tem_24
from temp_now import tem_now, tem_avg
from wind import wind from wind import wind
engine = create_engine("mysql://root:123456@localhost:3306/weather") # 替换为您的数据库 URI engine = create_engine("mysql://root:123456@localhost:3306/weather") # 替换为您的数据库 URI
@ -16,8 +16,10 @@ session = Session(engine)
def main(): def main():
rain(session) rain(session)
rain_all(session)
tem_24(session) tem_24(session)
tem_now(session) tem_now(session)
tem_avg(session)
hum_now(session) hum_now(session)
aqi_data(session) aqi_data(session)
info(session) info(session)

View File

@ -1,6 +1,7 @@
from sqlalchemy import text
import json import json
from sqlalchemy import text
def rain(session): def rain(session):
# 使用 text() 构造您的 SQL 查询 # 使用 text() 构造您的 SQL 查询
@ -24,3 +25,12 @@ def rain(session):
js_file.write('const Chart1_Data = ') js_file.write('const Chart1_Data = ')
js_file.write(data) js_file.write(data)
js_file.write("\n\n") js_file.write("\n\n")
def rain_all(session):
query = text('SELECT SUM(rain24h) FROM rain_24h_analyse')
data = session.execute(query).fetchall()
with open('data.js', 'a', encoding='utf-8') as js_file:
js_file.write('const RAIN_Data = ')
js_file.write(str(round(data[0][0], 1)))
js_file.write("\n\n")

View File

@ -20,3 +20,12 @@ def tem_now(session):
js_file.write('const Chart4_Data = ') js_file.write('const Chart4_Data = ')
js_file.write(data) js_file.write(data)
js_file.write("\n\n") js_file.write("\n\n")
def tem_avg(session):
query2 = text('SELECT AVG(temperature) FROM tem_now_analyse')
data = session.execute(query2).fetchall()
with open('data.js', 'a', encoding='utf-8') as js_file:
js_file.write('const TMP_Data = ')
js_file.write(str(round(data[0][0], 1)))
js_file.write("\n\n")

View File

@ -1,6 +1,6 @@
$(function () { $(function () {
map(); map();
function map() { function map() {
// 基于准备好的dom初始化echarts实例 // 基于准备好的dom初始化echarts实例
var myChart = echarts.init(document.getElementById('map_1')); var myChart = echarts.init(document.getElementById('map_1'));

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1,4 +1,5 @@
<html><head> <html>
<head>
<meta charset="utf-8"> <meta charset="utf-8">
<title>www.husonghe.com</title> <title>www.husonghe.com</title>
<style> <style>
@ -186,7 +187,6 @@ var trans = {
threeD.prototype.vupd = function () { threeD.prototype.vupd = function () {
this.transOut = trans.steps( this.transOut = trans.steps(
this.transIn.vtx, this.transIn.vtx,
this.transIn.sz, this.transIn.sz,
this.transIn.rot, this.transIn.rot,
@ -350,4 +350,5 @@ var trans = {
// canvas.height = h = window.innerHeight; // canvas.height = h = window.innerHeight;
// }, false); // }, false);
</script> </script>
</body></html> </body>
</html>

View File

@ -7,4 +7,7 @@
echarts_33(); echarts_33();
echarts_5(); echarts_5();
echarts_6(); echarts_6();
document.querySelector("#tem").innerHTML = `${TMP_Data} C`;
document.querySelector("#rain").innerHTML = `${RAIN_Data} mm`;
}) })