添加前端代码以及对应素材文件

pull/2/head
lyy 7 months ago
parent abda751792
commit 104a161ff0

@ -0,0 +1,231 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Title</title>
<link rel="stylesheet" type="text/css" href="msgList.css">
<link rel="stylesheet" href="./assets/css/style.css">
<script type="text/javascript" src="./assets/js/jquery.js"></script>
</head>
<style>
#pie {
width: 400px;
height: 400px;
}
</style>
<script type="text/javascript" src="echarts.js"></script>
<header class="top-navigation">
<div class="container">
<a class="logo" aria-label="MDN homepage"><svg id="mdn-docs-logo" x="0" y="0" viewBox="0 0 694.9 10.4" style="enable-background:new 0 0 694.9 104.4" role="img"><title>MDN Web Docs</title>
<button title="Open main menu" type="button" class="button action has-icon main-menu-toggle" aria-haspopup="true" aria-label="Open main menu" aria-expanded="true"><span class="button-wrap"><span class="icon icon-menu "></span><span class="visually-hidden"><a href="MainPageUI.html">Open main menu</a></span></span></button>
</div>
</header>
<body>
<div class="chart-container">
<!--
- #CHART CARD
-->
<div class="chart-card">
<h4 class="h3">消息类别统计表</h4>
<table class="card-table">
<tbody class="table-body flex-center">
<tr class="table-row flex-center">
<th class="table-heading" scope="col">北京</th>
<td class="table-data">
<div class="chart-bar" data-chart-bar="beijing"></div>
</td>
</tr>
<tr class="table-row flex-center">
<th class="table-heading" scope="col">上海</th>
<td class="table-data">
<div class="chart-bar" data-chart-bar="shanghai"></div>
</td>
</tr>
<tr class="table-row flex-center">
<th class="table-heading" scope="col">长沙</th>
<td class="table-data">
<div class="chart-bar" data-chart-bar="长沙"></div>
</td>
</tr>
</tbody>
</table>
<span class="tooltip text" data-tooltip></span>
<div class="wrapper flex-center">
<div class="card-meta">
<p class="text">最近7天总共有</p>
<data class="meta-value" value="478.33">478条</data>
</div>
<div class="card-meta">
<data class="meta-value small" value="2.4">+2.4%</data>
<p class="text">from last month</p>
</div>
</div>
</div>
</div>
<!--
- custom js link
-->
<script src="./assets/js/script.js" type="module" defer></script>
<div class="piechart" id="pie"></div>
<script>
var pie = echarts.init(document.getElementById('pie'));
pieOption = {
title: {
text: '数据统计饼状图'
},
tooltip: {
show: true,
trigger: "item",
backgroundColor: "#1677FF",
// {a}(系列名称),{b}(数据项名称),{c}(数值), {d}(百分比)
formatter: "{a}{b}<br/>{c}吨({d}%)"
},
color: ['#3e87ff', '#65b2f3', '#b9cfec'],
series: [
{
name: '品种',
type: 'pie',
// 数组的第一项是内半径,第二项是外半径;可以设置不同的内外半径显示成圆环图
radius: '50%',
// 饼图的中心(圆心)坐标,数组的第一项是横坐标,第二项是纵坐标;设置成百分比时第一项是相对于容器宽度,第二项是相对于容器高度
center: ['50%', '50%'],
data: [
{ value: 2000, name: '北京' },
{ value: 2000, name: '上海' },
{ value: 2000, name: '长沙' },
],
itemStyle: {
// 显示图例
normal: {
label: {
show: true
},
labelLine: {
show: true
}
},
emphasis: {
// 图形阴影的模糊大小
shadowBlur: 10,
// 阴影水平方向上的偏移距离
shadowOffsetX: 0,
// 阴影颜色
shadowColor: 'rgba(0, 0, 0, 0.5)'
}
}
}
]
};
pie.setOption(pieOption);
</script>
<div class="my_msg_list">
<div class="my_msg_list_view">
<div class="my_msg_list_box">
<div class="my_msg_list_con">
<div class="my_msg_list_title">
<span >消息列表:</span>
<a class="fr">清空所有消息</a>
<span class="line fr"></span>
<a class="fr">全部标记为已读</a>
</div>
<div class="ule">
<div class="lie"><a href="#home">服务器列表</a></div>
<div class="lie"><a href="#news">距离上次响应时间</a></div>
<div class="lie"><a href="#contact">当前服务器状态</a></div>
<div class="lie"><a href="#about">返回消息报头</a></div>
</div>
<div class="ula">
<div class="lia"><a href="#home"><span><div class="square"></div></span>北京</a></div>
<div class="lia"><a href="#news">
<script language="javascript"type="text/javascript">
a = $.ajax({
url: "./assets/js/data.json",
type: "GET",
dataType: "json",
async: false,
success: function(data) {
}
});
aa=a.recentTime ;
result=$.parseJSON(a["recentTime"])
</script>
</a></div>
<div class="lia"><a href="#contact">正常</a></div>
<div class="lia"><a href="#about">TCP</a></div>
</div>
<div class="fr options_info options-f">
<a class="btn-rush csdnc-trash" style="float: right;">
<img src="./assets/images/delete.png"
width="20px"
height="20px">
</a>
<em class="data-time" style="float: right;padding-right:10px">2019-03-28</em>
</div>
<div class="msg_content ">第一个测试发送消息的内容</div>
</li>
<li class="msg_list_ul_li">
<div class="ula">
<div class="lia"><a href="#home">长沙</a></div>
<div class="lia"><a href="#news">1300ms</a></div>
<div class="lia"><a href="#contact">受损</a></div>
<div class="lia"><a href="#about">TCP</a></div>
</div>
<div class="fr options_info options-f">
<a class="btn-rush csdnc-trash" style="float: right;">
<img src="./assets/images/delete.png"
width="20px"
height="20px">
</a>
<em class="data-time" style="float: right;padding-right:10px">2019-03-28</em>
</div>
<div class="msg_content ">第一个测试发送消息的内容</div>
</li>
<li class="msg_list_ul_li">
<div class="ula">
<div class="lia"><a href="#home">上海</a></div>
<div class="lia"><a href="#news">70ms</a></div>
<div class="lia"><a href="#contact">繁忙</a></div>
<div class="lia"><a href="#about">TCP</a></div>
</div>
<div class="fr options_info options-f">
<a class="btn-rush csdnc-trash" style="float: right;">
<img src="./assets/images/delete.png"
width="20px"
height="20px">
</a>
<em class="data-time" style="float: right;padding-right:10px">2019-03-28</em>
</div>
<div class="msg_content ">第三个测试发送消息的内容,大声说出你们的爱</div>
</li>
</ul>
</div>
<div class="page-box">
</div>
</div>
</div>
</div>
</div>
<script src="./assets/js/script.js" type="module" defer></script>
</>
</html>

@ -0,0 +1,132 @@
<style>
.loader {
background: #ffffff;
background: radial-gradient(#ffffff, #ffffff);
bottom: 0;
left: 0;
overflow: hidden;
position: fixed;
right: 0;
top: 0;
z-index: 99999;
}
.loader-inner {
bottom: 0;
height: 60px;
left: 0;
margin: auto;
position: absolute;
right: 0;
top: 0;
width: 100px;
}
.loader-line-wrap {
animation:
spin 2000ms cubic-bezier(.175, .885, .32, 1.275) infinite
;
box-sizing: border-box;
height: 50px;
left: 0;
overflow: hidden;
position: absolute;
top: 0;
transform-origin: 50% 100%;
width: 100px;
}
.loader-line {
border: 4px solid transparent;
border-radius: 100%;
box-sizing: border-box;
height: 100px;
left: 0;
margin: 0 auto;
position: absolute;
right: 0;
top: 0;
width: 100px;
}
.loader-line-wrap:nth-child(1) { animation-delay: -50ms; }
.loader-line-wrap:nth-child(2) { animation-delay: -100ms; }
.loader-line-wrap:nth-child(3) { animation-delay: -150ms; }
.loader-line-wrap:nth-child(4) { animation-delay: -200ms; }
.loader-line-wrap:nth-child(5) { animation-delay: -250ms; }
.loader-line-wrap:nth-child(1) .loader-line {
border-color: hsl(0, 80%, 60%);
height: 90px;
width: 90px;
top: 7px;
}
.loader-line-wrap:nth-child(2) .loader-line {
border-color: hsl(60, 80%, 60%);
height: 76px;
width: 76px;
top: 14px;
}
.loader-line-wrap:nth-child(3) .loader-line {
border-color: hsl(120, 80%, 60%);
height: 62px;
width: 62px;
top: 21px;
}
.loader-line-wrap:nth-child(4) .loader-line {
border-color: hsl(180, 80%, 60%);
height: 48px;
width: 48px;
top: 28px;
}
.loader-line-wrap:nth-child(5) .loader-line {
border-color: hsl(240, 80%, 60%);
height: 34px;
width: 34px;
top: 35px;
}
@keyframes spin {
0%, 15% {
transform: rotate(0);
}
100% {
transform: rotate(360deg);
}
}
</style>
<div class="loader">
<div class="loader-inner">
<div class="loader-line-wrap">
<div class="loader-line"></div>
</div>
<div class="loader-line-wrap">
<div class="loader-line"></div>
</div>
<div class="loader-line-wrap">
<div class="loader-line"></div>
</div>
<div class="loader-line-wrap">
<div class="loader-line"></div>
</div>
<div class="loader-line-wrap">
<div class="loader-line"></div>
</div>
</div>
</div>
<style>
.login {
position: absolute;
top: 50%;
left: 75%;
margin: -150px 0 0 -150px;
width:300px;
height:300px;
}
</style>
<html>
<body>
<h1>welcome</h1>
</body>
<script>
setTimeout(()=>location.href="LoginUI.html",5000);
</script>
</html>

@ -0,0 +1,158 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>LoginUI</title>
<script type="text/javascript">
function submits(btn){
var userName = document.getElementById("username").value;
var pwd = document.getElementById("pwd").value;
console.log(userName)
if (userName == "admin" && pwd == "admin") {
window.location.href="MainPageUI.html";
window.event.returnValue=false;
}
else {
alert("用户名或密码不正确!");
}
}
</script>
<style>
/* 让页面所有元素的padding和margin都设置为0 */
/*{margin:0;padding:0;box-sizing:border-box;}*/
h3{
right: 0;
}
.wrapper {
display: grid;
grid-template-columns: 1fr 1fr;
grid-template-rows: 150px 150px;
grid-gap: 10px;
}
/* 设置背景图,字体设置为微软雅黑 */
body{background:url(bg.jpg);font-family: "微软雅黑", sans-serif;}
/* 引用图片高度设置为28px就是页面最上方像屋檐一样的黑色图 */
.headtop{background:url(dove.png);height:28px;}
/* 整个登录框的css并使用绝对定位居中 */
.login {
position: absolute;
top: 50%;
left: 75%;
margin: -150px 0 0 -150px;
width:300px;
height:300px;
}
.login h1 { color:#555555; text-shadow: 0px 10px 8px #CDC673; letter-spacing:2px;text-align:center;margin-bottom:20px; }
input{
grid-column: 2;
grid-row: 1/3;
padding:10px;
width:100%;
color:white;
margin-bottom:10px;
background-color:#555555;
border: 1px solid black;
border-radius:4px;
letter-spacing:2px;
}
.imgBox{
padding-top: 180px;
border-top: 2px solid cadetblue;
width: 100%;
height: 450px;
margin: 0 auto;
}
.imgBox img{
width: 100%;
height: 450px;
margin: 0 auto;
padding-top: 30px;
}
.img1{
display: block;
}
.img2{
display: none
}
.img3{
display: block;
}
.box1 {
grid-column: 2;
grid-row: 1/3;
}
label{
color: #ffffff;
font-weight: bold;
font-size: 20px;
margin-left: 40px;
}
.box2 {
grid-column: 1;
grid-row: 1 / 3;
}
/* 登录按钮的csscursor:pointer当鼠标移到按钮上面时变成小手形状 */
form button{
width: 107%;
padding:10px;
background-color:#CDC673;
border:1px solid black;
border-radius:4px;
cursor:pointer;
}
</style>
</head>
<body style="background-image:url('./assets/images/R-C\ \(1\).png'); background-repeat:no-repeat; background-position:center center; background-attachment:fixed; background-size:cover;">
<div class="wrapper">
<div class="box1">
<div class="headtop"></div>
<div class="login">
<h1 style="font-size: 25px;">//欢迎来到HADG的登入界面//</h1>
<h1 style="font-size: 15px;">请核实您登入的身份</h1>
<form action="" method="post">
<label for="username">用户名</label><br>
<input type="text" name="username" id="username" class="input" value="" placeholder="用户名admin"><br>
<label for="pwd">密码</label><br>
<input type="password" name="" id="pwd" class="input" value="" placeholder="密码admin">
<button type="submit" class="submit" onclick="submits(this)">开始登录</button>
</form>
<td class="login_td" align="right" width=71><a
href="RegisterUI.html"
>新用户注册</a></td>
</div>
</div>
<div class="imgBox">
<img class="img-slide img1"
src="./assets/images/img1.jpg"
alt="1"
/>
<img class="img-slide img2"
src="./assets/images/img2.jpg"
alt="2"
/>
</div>
</div>
</div>
</body>
<script type="text/javascript">
var index=0;
//效果
function ChangeImg() {
index++;
var a=document.getElementsByClassName("img-slide");
if(index>=a.length) index=0;
for(var i=0;i<a.length;i++){
a[i].style.display='none';
}
a[index].style.display='block';
}
//设置定时器,每隔两秒切换一张图片
setInterval(ChangeImg,8000);
</script>
</html>

@ -0,0 +1,192 @@
<!DOCTYPE html>
<!-- 声明文档类型-->
<html lang="en">
<!-- 确定语言形态 -->
<style>
#pie {
width: 400px;
height: 400px;
}
</style>
<script type="text/javascript" src="echarts.js"></script>
<head>
<meta charset="UTF-8">
<!--控制网页的编码格式 utf-8 国际性编码-->
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!--控制视口比例以及缩放-->
<title>首页</title>
<!-- 先引入重置样式表和公共样式表以及主页样式表 -->
<link rel="stylesheet" href="./css/index.css">
<link rel="stylesheet" href="./css/public.css">
<link rel="stylesheet" href="./css/reset.css">
<!-- 这个顺序引入更规范 -->
</head>
<body>
<!-- 这是网页的头部版心盒子 -->
<div class="header_con">
<!-- h1里面放logo哦 -->
<h1>
<img src="./assets/images/Nginx.jpg" alt="">
</h1>
<!-- 头部右侧表单标签-->
<form action="">
<input type="text" class="search" value="SEARCH...">
<div>
<input type="button" class="btn">
</div>
</form>
</div>
<!-- 导航栏平铺部分:会显示黑色 -->
<div id="nav">
<!-- 导航栏版心部分 -->
<div class="nav_con">
<ul>
<li><a href="#">首页</a></li>
<li><a href="#">系统设置</a></li>
</ul>
</div>
</div>
<!-- banner的平铺部分 -->
<div id="banner">
<div class="banner_con">
<img src="./assets/images/R-C.png"
height="466px"
width="1000px">
</div>
</div>
<!-- 新闻列表的版心部分 -->
<div class="news_con">
<!-- 最左侧的盒子 -->
<div class="news_l">
<h3 class="news_title">版本更新情况</h3>
<ul class="news_list">
<li>
<a>alpha 0.11 更新ui版本</a>
<span>2024-05-05</span>
</li>
<li>
<a>alpha 0.10 更新跳转其他界面逻辑</a>
<span>2024-05-03</span>
</li>
<li>
<a>alpha 0.09 更新LoginUI设计</a>
<span>1998-09-15</span>
</li>
</ul>
</div>
<!-- 中间的盒子-->
<div class="news_c">
<h3 class="news_title">服务器列表</h3>
<p class="txt1">北京 ip192.168.20.2</p>
<p class="txt1">广州 ip192.168.21.4</p>
<p class="txt1">长沙 ip192.168.23.4</p>
</div>
<!-- 右边的盒子 -->
<div class="news_r">
<h3 class="news_title">最近操作</h3>
<p class="txt3">开启主备切换服务</p>
<p class="txt3">开启Nginx服务</p>
<a href="#"><img src="./images/btn_img_05.jpg" alt=""></a>
</div>
</div>
<!-- 市场项目那一部分 -->
<div class="case_con">
<h3>当前可用服务</h3>
<div class="case_box">
<dl>
<dt><a href="DetectUI.html"><img src="./assets/images/R-C green.png" alt=""></a></dt>
<dd>查看主动探测</dd>
</dl>
<dl>
<dt><img src="./assets/images/R-C red.png" alt=""></dt>
<dd>查看流量控制</dd>
</dl>
<dl>
<dt><img src="./assets/images/R-C pink.png" alt=""></dt>
<dd>启用主备切换</dd>
</dl>
<dl>
<dt><img src="./assets/images/R-C blue.png"></dt>
<dd>查看Nginx日志</dd>
</dl>
</div>
</div>
<!-- 产品中心那一部分的平铺-->
<div id="links">
<!-- 这个顺序引入更规范 -->
<div class="links_con">
<!-- 版心部分 -->
<!-- 左边的盒子 -->
<div class="links_l">
<h3 class="links_title">技术支持</h3>
<ul class="links_list">
<li>
<a href="#">国防科技大学信息中心</a>
</li>
<li>
<a href="#">全军指挥控制中心</a>
</li>
<li>
<a href="#">国防科技大学网络安全小组</a>
</li>
<li>
<a href="#">软体生物开发小组</a>
</li>
<li>
<a href="#">国防科技大学软件体系结构课程</a>
</li>
</ul>
</div>
<!-- 中间的盒子 -->
<div class="links_c">
<h3 class="links_title">开发者联系方式</h3>
<ul class="links_list">
<li>
<a href="#">liuyuyang21a@gfkd.mtn</a>
</li>
<li>
<a href="#">yuankaifeng21@gfkd.mtn</a>
</li>
<li>
<a href="#">xumingyang21@gfkd.mtn</a>
</li>
<li>
<a href="#">dongjiaqi21@gfkd.mtn</a>
</li>
</ul>
</div>
<!-- 右边的盒子 -->
<div class="links_r">
<h3 class="links_title">HADG</h3>
<h3 class="links_a"> 旨在为全军指挥信息系统提供坚实保障,开发更高效的网关服务</h3>
<div class="map">
<img src="./assets/images/nginx.gif">
</div>
</div>
</div>
</div>
<!-- 页脚 -->
<div class="footer_con">
<!-- 页脚左边的盒子 -->
<p class="footer_l">
<a href="#">意见反馈</a>
<a href="#">用户协议</a>
<a href="#">交流QQ群</a>
<a href="#" class="footer-right">湘ICP备20002562号-1</a>
</p>
<!-- 页脚右边的盒子 -->
<p class="footer_r">
国防科技大学软件体系结构课程徐明洋小组开发
</p>
</div>
</body>
</html>

@ -0,0 +1,147 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>注册页面</title>
<!-- 引入格式文件-->
<link rel="stylesheet" href="html&css.css">
</head>
<body>
<style>
*{
margin: 0px;/*所有的外边距为0*/
padding: 0px;/*所有的内边距为0*/
box-sizing: border-box;/*规定两个并排的带边框的框*/
}
table{
text-align: center;
}
body{
background: url("image/register_bg.png")no-repeat center;
padding-top: 25px;
}
.rg_layout{
width: 900px;
height: 500px;
border: 8px solid #EEEEEE;/*solid 定义实线*/
background-color: white;
margin: auto;
}
.rg_left{
float: none;
text-align: center;
margin: 15px;
}
.rg_left>p:first-child{
color: #FFD026;
font-size: 20px;
}
.rg_left>p:last-child{
color: #A6A6A6;
font-size: 20px;
}
.rg_center{
float: left;
}
.rg_right{
float: none;
margin: 250px;
padding-left: 10px;
white-space:nowrap;
}
.rg_right p{
font-size: 15px;
}
.rg_right p a{
color: coral;
}
.td_left{
padding-left: 250px;
width: 100px;
text-align: center;
height: 45px;
white-space:nowrap;
}
.td_right{
padding-left: 40px;
text-align: center;
white-space:nowrap;
}
.bt_center{
padding-left: 310px;
}
#username,#password,#email,#name,#tel,#birthday,#checkcode{
width: 251px;
height: 32px;
border: 1px solid #A6A6A6;
/*设置边框圆角*/
border-radius: 5px;
padding-left: 10px;
}
#checkcode{
width: 110px;
}
#img_check{
height: 32px;
vertical-align: middle;/*设置图片的位置垂直居中*/
}
#btn_sub{
width: 100px;
height: 40px;
background-color: #FFD026;
border: 1px solid #FFD026;
padding-left: 10px;
}
</style>
<div class="rg_layout">
<div class="rg_left">
<p>新用户注册</p>
<p>USER REGISTER</p>
</div>
<div class="rg_center">
<div class="rg_form">
<form action="#" method="post">
<table>
<tr><!--label 标签的作用是当点击文字也会跳到文本输出框-->
<!--for属性与ID属性对应规定 label 绑定到哪个表单元素。-->
<td class="td_left"><label for="username">用户名</label> </td>
<td class="td_right"><input type="text" name="username" id="username"> </td>
</tr>
<tr>
<td class="td_left"><label for="password">姓名</label> </td>
<td class="td_right"><input type="password" name="password" id="password"> </td>
</tr>
<tr><!--label 标签的作用是当点击文字也会跳到文本输出框-->
<td class="td_left"><label for="email">身份证号</label> </td>
<td class="td_right"><input type="email" name="email" id="email"> </td>
</tr>
<tr>
<td class="td_left"><label for="name">密码</label> </td>
<td class="td_right"><input type="text" name="name" id="name"> </td>
</tr>
<tr>
<td class="td_left"><label for="tel">再次输入密码</label> </td>
<td class="td_right"><input type="text" name="tel" id="tel"> </td>
</tr>
<tr>
<td colspan="2" align="center" class="bt_center">
<input type="submit" value="注册" id="btn_sub">
</td>
</tr>
</table>
</form>
</div>
</div>
<div class="rg_right">
<p><a href="LoginUI.html">返回登录界面</a></p>
</div>
</div>
</body>
</html>

@ -0,0 +1,288 @@
/*-----------------------------------*\
#style.css
\*-----------------------------------*/
/**
* copyright 2022 codewithsadee
*/
/*-----------------------------------*\
#CUSTOM PROPERTY
\*-----------------------------------*/
:root {
/**
* colors
*/
--medium-slate-blue: hsl(240, 73%, 65%);
--space-cadet_10: hsl(226, 54%, 26%, 0.1);
--space-cadet: hsl(226, 54%, 26%);
--ghost-white: hsl(227, 69%, 97%);
--cool-gray: hsl(226, 19%, 63%);
--cultured: hsl(0, 0%, 95%);
--white: hsl(0, 0%, 100%);
/**
* typography
*/
--ff-dm-sans: 'Roboto', sans-serif;
--ff-helvetica: 'Helvetica', sans-serif;
--fs-1: 3rem;
--fs-2: 2.4rem;
--fs-3: 1.5rem;
--fs-4: 1.2rem;
--fw-500: 500;
--fw-600: 600;
--fw-700: 700;
/**
* shadow
*/
--shadow: 1px 1px 3px hsla(0, 0%, 0%, 0.15);
/**
* radius
*/
--radius-5: 5px;
--radius-15: 15px;
/**
* transition
*/
--transition-1: 0.25s ease;
--transition-2: 1s ease;
}
/*-----------------------------------*\
#RESET
\*-----------------------------------*/
*,
*::before,
*::after {
margin: 0;
padding: 0;
box-sizing: border-box;
}
span,
data { display: block; }
img { height: auto; }
table,
tbody,
tr,
th,
td {
all: unset;
}
html {
font-family: var(--ff-dm-sans);
font-size: 10px;
}
body {
background-color: var(--ghost-white);
color: var(--cool-gray);
font-size: 1.6rem;
padding-inline: 15px;
min-height: 100vh;
}
/*-----------------------------------*\
#REUSED STYLE
\*-----------------------------------*/
.flex-center {
display: flex;
justify-content: center;
align-items: center;
}
.balance-card,
.chart-card {
width: 300px;
height: 150px;
position: relative;
padding: 5px;
border-radius: var(--radius-10);
}
.text { font-size: var(--fs-3); }
.h2 { font-size: var(--fs-2); }
/*-----------------------------------*\
#BALANCE CARD
\*-----------------------------------*/
.chart-container {
width: 100%;
max-width: 540px;
margin-inline: 100px;
left: 50px;
}
.balance-card {
background-color: var(--medium-slate-blue);
color: var(--white);
justify-content: space-between;
margin-block-end: 15px;
}
.balance-card .text {
font-weight: unset;
margin-block-end: 5px;
}
.balance-card .h2 { font-weight: var(--fw-700); }
.balance-card .logo { width: 60px; }
/*-----------------------------------*\
#CHART CARD
\*-----------------------------------*/
.chart-card {
position: relative;
margin-right: 30px;
background-color: var(--white);
}
.chart-card .h2 {
color: var(--space-cadet);
font-weight: var(--fw-500);
margin-block-end: 50px;
}
.chart-card .card-table {
display: block;
padding-block-end: 24px;
border-block-end: 1px solid var(--space-cadet_10);
margin-block-end: 24px;
}
.chart-card .table-body {
justify-content: space-evenly;
align-items: stretch;
gap: 12px;
}
.chart-card .table-row {
flex-direction: column-reverse;
justify-content: flex-start;
gap: 10px;
min-height: calc(150px + 31px);
}
.chart-card .table-heading {
color: var(--space-cadet);
font-family: var(--ff-helvetica);
font-size: var(--fs-4);
}
.chart-card .table-data {
min-width: 20px;
height: 100%;
background-color: var(--cultured);
cursor: pointer;
}
.chart-card .chart-bar {
background-color: var(--medium-slate-blue);
height: 100%;
transform-origin: bottom;
transition: transform var(--transition-2);
}
.chart-card .chart-bar:hover { opacity: 0.75; }
.tooltip {
position: fixed;
top: 0;
left: 50%;
transform: translateX(-50%);
background-color: var(--white);
color: var(--space-cadet);
font-family: var(--ff-helvetica);
font-weight: var(--fw-600);
padding: 8px;
border: 1px solid var(--cultured);
border-radius: var(--radius-5);
box-shadow: var(--shadow);
pointer-events: none;
opacity: 0;
transition: var(--transition-1);
}
.tooltip.active { opacity: 1; }
.chart-card .wrapper {
justify-content: space-between;
align-items: flex-start;
}
.chart-card .meta-value {
color: var(--space-cadet);
font-weight: var(--fw-500);
margin-block-start: 5px;
}
.chart-card .meta-value:not(.small) { font-size: var(--fs-1); }
.chart-card .card-meta:last-child {
align-self: flex-end;
text-align: right;
}
.piechart{
margin-top: -180px;
left: 600px;
width: 150px;
height: 150px;
position: fixed;
padding: 5px;
border-radius: var(--radius-10);
}
/*-----------------------------------*\
#MEDIA QUERIES
\*-----------------------------------*/
/**
* responsive for large than 768px screen
*/

Binary file not shown.

After

Width:  |  Height:  |  Size: 710 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 313 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 148 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 173 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 164 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 155 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 237 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 533 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 740 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 409 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

@ -0,0 +1,4 @@
<svg width="61" height="42" viewBox="0 0 61 42" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M40.7182 41C51.9195 41 60.9999 32.0457 60.9999 21C60.9999 9.9543 51.9195 1 40.7182 1C29.5169 1 20.4365 9.9543 20.4365 21C20.4365 32.0457 29.5169 41 40.7182 41Z" fill="#1E2F65"/>
<path d="M20.4366 40.1666C31.1712 40.1666 39.8732 31.5854 39.8732 21C39.8732 10.4145 31.1712 1.83331 20.4366 1.83331C9.70207 1.83331 1 10.4145 1 21C1 31.5854 9.70207 40.1666 20.4366 40.1666Z" stroke="white" stroke-width="2"/>
</svg>

After

Width:  |  Height:  |  Size: 516 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

@ -0,0 +1,20 @@
[
{
"server": "shanghai",
"stat": "busy",
"amount": 70,
"recentTime":70
},
{
"server": "changsha",
"stat": "busy",
"amount": 50,
"recentTime": 1300
},
{
"server": "beijing",
"stat": "busy",
"amount": 56,
"recentTime": 70
}
]

File diff suppressed because one or more lines are too long

@ -0,0 +1,149 @@
'use strict';
/**
* import json data
*/
import data from './data.json' assert { type: 'json' };
/**
* -> select all DOM elements
*/
const tooltip = document.querySelector("[data-tooltip]");
const chartBars = document.querySelectorAll("[data-chart-bar]");
/**
* add event on element
*/
const addEventOnElem = function (elem, type, callback) {
if (elem.length > 1) {
for (let i = 0; i < elem.length; i++) {
elem[i].addEventListener(type, callback);
}
} else {
elem.addEventListener(type, callback);
}
}
/**
* -> get the max day amount from data
*/
let maxDayAmount = 0;
for (let i = 0; i < data.length; i++) {
if (data[i].amount > maxDayAmount) {
maxDayAmount = data[i].amount;
}
}
/**
* -> get chart bars height as array
* -> set the height of all bars in chart
*/
const setChartBarsHeight = function (height) {
for (let i = 0; i < height.length; i++) {
chartBars[i].style.transform = `scaleY(${height[i] / 100})`;
}
}
/**
* -> get the day amount from data
* -> find the percentage of every number
* -> push all number in chartBarsHeight
*/
const charBarsHeight = [];
for (let i = 0; i < data.length; i++) {
const dayAmount = data[i].amount;
const percentOfNum = dayAmount / maxDayAmount * 100;
charBarsHeight.push(percentOfNum);
}
setChartBarsHeight(charBarsHeight);
/**
* -> get top, left, and chart bar width
* -> get tooltip height
* -> set the gap between chart bar and tooltip
* -> set the tooltip position
*/
const setTooltipPos = function (top, left, chartBarWidth) {
const tooltipHeight = tooltip.offsetHeight;
const gap = 8;
tooltip.style.top = `${top - tooltipHeight - gap}px`;
tooltip.style.left = `${left + chartBarWidth / 2}px`;
}
/**
* when chart bar is hover
* -> add active class in tooltip
* -> get chart bar top position from window
* -> get chart bar left position from window
* -> get chart bar width
* -> call setTooltipPos and pass the chart bar top,
* left position and width
*/
const chartBarOnHover = function () {
tooltip.classList.add("active");
const barTopPos = this.getBoundingClientRect().top;
const barLeftPos = this.getBoundingClientRect().left;
const barWidth = this.offsetWidth;
setTooltipPos(barTopPos, barLeftPos, barWidth);
}
addEventOnElem(chartBars, "mouseover", chartBarOnHover);
/**
* -> hide tooltip when leave cursor from chart bar
*/
const hideTooltip = function () {
tooltip.classList.remove("active");
}
addEventOnElem(chartBars, "mouseleave", hideTooltip);
/**
* -> add tooltip value when hover on any bar chart
*/
const addTooltipValue = function () {
for (let i = 0; i < data.length; i++) {
if (data[i].server === this.dataset.chartBar) {
tooltip.innerHTML = data[i].amount.toString();
break;
}
}
}
addEventOnElem(chartBars, "mouseover", addTooltipValue);

@ -0,0 +1,235 @@
@charset "utf-8";
/* 统一板块宽度和左右居中 */
.banner_con,
.news_con,
.case_con,
.links_con,
.footer_con {
width: 1002px;
margin: 0 auto;
}
#banner {
height: 465px;
background: gray url("../images/banner1_02_02.jpg") no-repeat center;
}
#banner .banner_con {
height: 465px;
/* background: pink; */
margin: 0 auto;
}
.news_con {
height: 243px;
background: white;
}
.news_title {
/* background: cadetblue; */
font-size: 18px;
color: #3f434f;
line-height: 18px;
padding-top: 36px;
}
.news_list {
/* background: cornflowerblue; */
margin-top: 23px;
}
.news_list li {
width: 437px;
height: 25px;
background: url("../images/ico_05.jpg") no-repeat left;
padding-left: 14px;
/* margin-top: 23px;不能给li加哦 要给他爹,不然每个儿子顶部都会空出来*/
}
.news_list li a {
float: left;
font-size: 12px;
color: #565656;
line-height: 25px;
}
.news_list li span {
float: right;
color: #9a9a9a;
font-size: 12px;
}
.news_l {
width: 480px;
height: 243px;
/* background: rebeccapurple; */
float: left;
padding-left: 21px;
}
.news_c {
width: 194px;
height: 243px;
background: #f1f1f1;
float: left;
padding: 0 27px 0 20px;
}
.news_c .txt1 {
font-size: 12px;
color: #555555;
line-height: 25px;
margin-top: 34px;
/* 行高自己去量哦 */
}
.news_c .txt2 {
font-size: 12px;
color: #979797;
line-height: 25px;
margin-top: 15 px;
/* 行高自己去量哦 */
}
.news_r {
width: 180px;
height: 243px;
background: #fbfbfb url("../images/ma_05.jpg") no-repeat right bottom;
float: left;
padding: 0 38px 0 24px;
}
.news_r .txt3 {
font-size: 12px;
color: #585858;
line-height: 24px;
margin: 21px 0 22px 0;
}
.case_con {
height: 304px;
/* background: goldenrod; */
}
.case_con h3 {
font-size: 18px;
color: #3f434f;
/* background: pink; */
padding: 28px 0 18px 22px;
}
.case_con .case_box {
height: 240px;
/* background: orange; */
}
.case_box dl {
width: 210px;
/* 这是由图片尺寸为210得出的这样文本就会屈居于一处 */
/* background: burlywood; */
float: left;
margin: 0 20px;
}
/* 这里很重要!一定要设置宽高,也就是图片尺寸得出,这样以后图片更换,结构就不会乱! */
.case_box dl dt {
width: 190px;
height: 190px;
}
.case_box dl dd {
font-size: 24px;
color: #4f4f4f;
line-height: 24px;
margin-top: 13px;
float: center;
left: 10px;
}
/* 上面给dt这个容器指定了宽高现在让img跟随这个容器的宽高 */
.case_box dl dt img {
width: 100%;
height: 100%;
}
#links {
background: #e5e5e5;
}
.links_con {
height: 250px;
/* */
}
.links_con .links_title {
color: #5d5d5d;
line-height: 16px;
border-bottom: 1px solid #c1c1c1;
padding: 31px 0 11px 13px;
}
.links_con .links_l {
width: 452px;
height: 250px;
background: #e5e5e5;
float: left;
margin-left: 20px;
}
.links_con .links_list {
/* background: cornsilk; */
height: 170px;
padding-left: 5px;
padding-top: 15px;
}
.links_con .links_list li {
width: 136px;
height: 24px;
background: url("../images/btn_img_13.jpg") no-repeat left center;
font-size: 12px;
line-height: 24px;
padding-left: 13px;
float: left;
}
.links_con .links_list li a {
color: #5f5f5f;
white-space:nowrap;
}
.links_con .links_c {
width: 153px;
height: 250px;
background: #e5e5e5;
float: left;
margin: 0 50px;
}
.links_con .links_a {
width: 265px;
height: 24px;
font-size: 14px;
color: #8f8585;
}
.links_con .links_c .links_list li {
width: 130px;
}
.links_con .links_r {
width: 256px;
height: 250px;
background: #e5e5e5;
float: left;
}
.links_con .links_r .map {
text-align: center;
padding-top: 11px;
}

@ -0,0 +1,138 @@
@charset "utf-8";
/* 公共区域版心宽度一样,左右居中 */
/* .header-wrap {
width: 1100px;
height: 62px;
margin: 0 auto;
} */
.header_con {
width: 1002px;
height: 100px;
/* background: pink; */
/* 左右居中 */
margin: 0 auto;
}
.header_con h1 {
width: 604px;
height: 66px;
/* background: orange; */
float: left;
padding: 34px 0 0 20px;
}
.header_con form {
width: 227px;
height: 61px;
/* background: orangered; */
float: left;
padding-top: 39px;
padding-right: 21px;
}
.header_con .search {
width: 195px;
height: 26px;
background: #f1f1f1;
border: 1px solid #e5e5e5;
/* 清除右侧边框 */
border-right: none;
float: left;
color: #888888;
}
.header_con .btn {
width: 30px;
height: 26px;
border: none;
background: #f1f1f1 url("../images/search_03.jpg") no-repeat center;
}
.header_con form div {
width: 30px;
height: 26px;
border: 1px solid #e5e5e5;
border-left: none;
float: left;
/* 给btn套盒子的时候也要加浮动 */
}
#nav {
height: 58px;
background: black;
}
#nav .nav_con {
width: 1002px;
height: 58px;
background: black;
margin: 0 auto;
}
/* 导航横向排列 */
#nav .nav_con li {
width: 498px;
height: 58px;
float: left;
background: black;
/* 左右居中 */
text-align: center;
/* 上下居中 */
line-height: 58px;
border-left: 1px solid #4a4a4a;
font-size: 12px;
}
.nav_con li a {
color: white;
}
.margin-left {
margin-left: 25px;
border-left: none!important;
}
/* 公共样式的footer */
.footer_con {
height: 82px;
/* background: #cccccc; */
}
.footer_con .footer_l {
height: 58px;
float: left;
/* background: red; */
padding-top: 24px;
}
.footer_con .footer_l a {
font-size: 12px;
float: left;
color: #868686;
border-right: 1px solid #868686;
/* padding:字体和边框的距离哈 */
padding: 0 7px;
padding-left: 15px;
}
.footer_con .footer_l .footer-right {
border-right: none!important;
}
.footer_con .footer_r {
height: 57px;
color: #8a8a8a;
font-size: 12px;
padding-top: 25px;
/* background: pink; */
padding-right: 21px;
float: right;
}

@ -0,0 +1,93 @@
.loader {
background: #000;
background: radial-gradient(#222, #000);
bottom: 0;
left: 0;
overflow: hidden;
position: fixed;
right: 0;
top: 0;
z-index: 99999;
}
.loader-inner {
bottom: 0;
height: 60px;
left: 0;
margin: auto;
position: absolute;
right: 0;
top: 0;
width: 100px;
}
.loader-line-wrap {
animation:
spin 2000ms cubic-bezier(.175, .885, .32, 1.275) infinite
;
box-sizing: border-box;
height: 50px;
left: 0;
overflow: hidden;
position: absolute;
top: 0;
transform-origin: 50% 100%;
width: 100px;
}
.loader-line {
border: 4px solid transparent;
border-radius: 100%;
box-sizing: border-box;
height: 100px;
left: 0;
margin: 0 auto;
position: absolute;
right: 0;
top: 0;
width: 100px;
}
.loader-line-wrap:nth-child(1) { animation-delay: -50ms; }
.loader-line-wrap:nth-child(2) { animation-delay: -100ms; }
.loader-line-wrap:nth-child(3) { animation-delay: -150ms; }
.loader-line-wrap:nth-child(4) { animation-delay: -200ms; }
.loader-line-wrap:nth-child(5) { animation-delay: -250ms; }
.loader-line-wrap:nth-child(1) .loader-line {
border-color: hsl(0, 80%, 60%);
height: 90px;
width: 90px;
top: 7px;
}
.loader-line-wrap:nth-child(2) .loader-line {
border-color: hsl(60, 80%, 60%);
height: 76px;
width: 76px;
top: 14px;
}
.loader-line-wrap:nth-child(3) .loader-line {
border-color: hsl(120, 80%, 60%);
height: 62px;
width: 62px;
top: 21px;
}
.loader-line-wrap:nth-child(4) .loader-line {
border-color: hsl(180, 80%, 60%);
height: 48px;
width: 48px;
top: 28px;
}
.loader-line-wrap:nth-child(5) .loader-line {
border-color: hsl(240, 80%, 60%);
height: 34px;
width: 34px;
top: 35px;
}
@keyframes spin {
0%, 15% {
transform: rotate(0);
}
100% {
transform: rotate(360deg);
}
}

@ -0,0 +1,76 @@
@charset "utf-8";
/* 重置样式表 */
* {
margin: 0;
padding: 0;
}
/* 统一页面文本 */
body {
font-size: 16px;
font-family: "微软雅黑";
}
/* 清除列表符号 */
ul,
ol,
li {
list-style: none;
}
/* 清除下划线 */
u,
a {
text-decoration: none;
}
/* 清除倾斜 */
i,
em {
font-style: normal;
}
/* 清除加粗 */
b,
strong {
font-weight: normal;
}
/* 清除文本默认大小和加粗 */
h1,
h2,
h3,
h4,
h5,
h6 {
font-size: 16px;
font-weight: normal;
}
/* 边框清零 */
img {
border: none;
}
/* 清除聚焦时候的边框 */
input {
outline: none;
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -0,0 +1,206 @@
div{
display: block;
}
.h1, .h2, .h3, .h4, .h5, .h6, a, abbr, body, cite, dd, dl, dt, h1, h2, h3, h4, h5, h6, iframe, input, li, object, ol, p, pre, span, ul {
font-family: 'Microsoft YaHei','SF Pro Display',Roboto,Noto,Arial,'PingFang SC',sans-serif;
}
a{
text-decoration: none;
cursor: pointer;
}
ul, li, ol, dl, dt, dd {
list-style: none;
}
div, figure, footer, header, hgroup, html, iframe, img, mark, menu, nav, object, section, span, table, tr, td, th, tbody, tfoot, thead, video {
border: 0;
margin: 0;
padding: 0;
}
.my_msg_list{
position: fixed;
margin-top: 50px;
width: 1400px;
min-height: 400px;
margin-bottom: 20px;
}
.my_msg_list_view{
position: relative;
margin-left: 100px;
background-color: #fff;
padding: 24px 16px;
-webkit-box-shadow: 0 2px 4px 0 rgba(0,0,0,0.28);
box-shadow: 0 2px 4px 0 rgba(0,0,0,0.28);
min-height: 520px;
box-sizing: border-box;
}
.my_msg_list_box{
border: 0;
margin: 0;
padding: 0;
box-sizing: border-box;
}
.my_msg_list_con{
border: 0;
margin: 0;
padding: 0;
box-sizing: border-box;
}
.my_msg_list_title{
width: 100%;
margin: 0;
font-size: 14px;
color: #3d3d3d;
margin-bottom: 8px;
display: block;
overflow: hidden;
zoom: 1;
box-sizing: border-box;
}
.fr{
float: right!important;
display: inline-block;
color: #4a90e2;
}
.line{
display: inline-block;
height: 12px;
margin: 2px 12px;
border-right: 1px solid #979797;
}
.msg_list{
padding: 0 0 0 15px;
min-height: 370px;
box-sizing: border-box;
}
.msg_list_ul{
font-size: 14px;
vertical-align: baseline;
margin: 0;
padding: 0;
}
.msg_list_ul_li{
position: relative;
padding: 16px 0;
border-bottom: 1px solid #e0e0e0;
}
.msg_type{
display: inline-block;
height: 40px;
line-height: 40px;
padding: 0 5px;
color: #4d4d4d;
font-size: 25px;
text-align: center;
background-color: #fff;
border: 1px solid #e0e0e0;
vertical-align: top;
}
.msg_info_box{
width: 100%;
color: #4d4d4d;
display: inline-block;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
vertical-align: middle;
}
.msg_title{
display: inline-block;
width: 85%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
vertical-align: middle;
}
.options-f{
width: 16%;
height: 20px;
margin: 0;
margin-top: -20px;
padding: 0;
}
.msg_delete{
width: 10px;
height: 10px;
float: right;
}
.msg_content{
margin-top: 15px;
margin-bottom: -16px;
padding: 15px;
background-color: #f7f7f7;
font-size: 14px;
color: #4d4d4d;
line-height: 22px;
}
.page-box{
width: 100%;
margin: 32px 0 20px;
text-align: center;
border-top-color: initial;
border-right-color: initial;
border-bottom-color: initial;
border-left-color: initial;
}
.ule {
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
}
.lie {
width: 23%;
display: inline-block;
font: 13px sans-serif;
}
.lie a {
display: block;
color: rgb(39, 124, 184);
text-align: center;
padding: 14px 70px;
text-decoration: none;
}
/*鼠标移动到选项上修改背景颜色 */
.lie a:hover {
background-color: #e3e3f5;
}
.ula {
width: 100%;
list-style-type: none;
margin: 0;
padding: 0;
overflow: hidden;
}
.lia {
width: 23%;
display: inline-block;
font: 13px sans-serif;
}
.lia a {
display: block;
font-size: larger;
color: rgb(0, 0, 0);
text-align: center;
padding: 14px 50px;
text-decoration: none;
}
/*鼠标移动到选项上修改背景颜色 */
.lia a:hover {
background-color: #b7b7b7;
}
.square{
width:200px;
height:5px;
border:1px solid transparent;
background: #06b81a;
}
Loading…
Cancel
Save