mirror of
https://github.com/oopuuu/zTC1.git
synced 2025-12-12 13:08:13 +08:00
478 lines
21 KiB
HTML
478 lines
21 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
|
<meta name="description" content="A front-end template that helps you build fast, modern mobile web apps.">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0">
|
|
<title>TC1 Material</title>
|
|
<meta name="mobile-web-app-capable" content="yes">
|
|
<link rel="icon" sizes="192x192" href="http://119.23.191.79/tc1/images/android-desktop.png">
|
|
<!-- Add to homescreen for Safari on iOS -->
|
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
|
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
|
<meta name="apple-mobile-web-app-title" content="Material Design Lite">
|
|
<link rel="apple-touch-icon-precomposed" href="http://119.23.191.79/tc1/images/ios-desktop.png">
|
|
<!-- Tile icon for Win8 (144x144 + tile color) -->
|
|
<meta name="msapplication-TileImage" content="http://119.23.191.79/tc1/images/touch/ms-touch-icon-144x144-precomposed.png">
|
|
<meta name="msapplication-TileColor" content="#3372DF">
|
|
<link rel="shortcut icon" href="http://119.23.191.79/tc1/images/favicon.png">
|
|
<link rel="stylesheet" href="assets/css_pack.css">
|
|
</head>
|
|
<body>
|
|
<div class="demo-layout mdl-layout mdl-js-layout mdl-layout--fixed-drawer mdl-layout--fixed-header">
|
|
<header class="demo-header mdl-layout__header">
|
|
<div class="mdl-layout__header-row">
|
|
<span class="mdl-layout-title">TC1</span>
|
|
<div class="mdl-layout-spacer"></div>
|
|
<div class="mdl-textfield mdl-js-textfield mdl-textfield--expandable">
|
|
<label class="mdl-button mdl-js-button mdl-button--icon" for="search">
|
|
<i class="material-icons">search</i>
|
|
</label>
|
|
<div class="mdl-textfield__expandable-holder">
|
|
<input class="mdl-textfield__input" type="text" id="search">
|
|
<label class="mdl-textfield__label" for="search">Enter your query...</label>
|
|
</div>
|
|
</div>
|
|
<button class="mdl-button mdl-js-button mdl-js-ripple-effect mdl-button--icon" id="hdrbtn">
|
|
<i class="material-icons">more_vert</i>
|
|
</button>
|
|
<ul class="mdl-menu mdl-js-menu mdl-js-ripple-effect mdl-menu--bottom-right" for="hdrbtn">
|
|
<li class="mdl-menu__item">About</li>
|
|
<li class="mdl-menu__item">Contact</li>
|
|
<li class="mdl-menu__item">Legal information</li>
|
|
</ul>
|
|
</div>
|
|
</header>
|
|
<div class="demo-drawer mdl-layout__drawer mdl-color--blue-grey-900 mdl-color-text--blue-grey-50">
|
|
<header class="demo-drawer-header">
|
|
<img src="http://119.23.191.79/tc1/images/user.jpg" class="demo-avatar">
|
|
<div class="demo-avatar-dropdown">
|
|
<span>hello@example.com</span>
|
|
<div class="mdl-layout-spacer"></div>
|
|
<button id="accbtn" class="mdl-button mdl-js-button mdl-js-ripple-effect mdl-button--icon">
|
|
<i class="material-icons" role="presentation">arrow_drop_down</i>
|
|
<span class="visuallyhidden">Accounts</span>
|
|
</button>
|
|
<ul class="mdl-menu mdl-menu--bottom-right mdl-js-menu mdl-js-ripple-effect" for="accbtn">
|
|
<li class="mdl-menu__item">hello@example.com</li>
|
|
<li class="mdl-menu__item">info@example.com</li>
|
|
<li class="mdl-menu__item"><i class="material-icons">add</i>Add another account...</li>
|
|
</ul>
|
|
</div>
|
|
</header>
|
|
<nav class="demo-navigation mdl-navigation mdl-color--blue-grey-800">
|
|
<a class="mdl-navigation__link mdl-nav-active" href="javascript:ShowPage(1);"><i class="mdl-color-text--blue-grey-400 material-icons" role="presentation">home</i>Home</a>
|
|
<a class="mdl-navigation__link" href="javascript:ShowPage(2);"><i class="mdl-color-text--blue-grey-400 material-icons" role="presentation">settings</i>Config</a>
|
|
<a class="mdl-navigation__link" href="javascript:ShowPage(3);"><i class="mdl-color-text--blue-grey-400 material-icons" role="presentation">delete</i>Timed Task</a>
|
|
<a class="mdl-navigation__link" href="javascript:ShowPage(4);"><i class="mdl-color-text--blue-grey-400 material-icons" role="presentation">report</i>System Status</a>
|
|
<a class="mdl-navigation__link" href="javascript:ShowPage(5);"><i class="mdl-color-text--blue-grey-400 material-icons" role="presentation">forum</i>OTA</a>
|
|
<a class="mdl-navigation__link" href="javascript:ShowPage(6);"><i class="mdl-color-text--blue-grey-400 material-icons" role="presentation">flag</i>System Log</a>
|
|
<a class="mdl-navigation__link" href="javascript:ShowPage(7);"><i class="mdl-color-text--blue-grey-400 material-icons" role="presentation">local_offer</i>XXX</a>
|
|
<a class="mdl-navigation__link" href="javascript:ShowPage(8);"><i class="mdl-color-text--blue-grey-400 material-icons" role="presentation">shopping_cart</i>XXX</a>
|
|
<a class="mdl-navigation__link" href="https://getmdl.io/components/index.html" target="_blank"><i class="mdl-color-text--blue-grey-400 material-icons" role="presentation">people</i>Social</a>
|
|
</nav>
|
|
</div>
|
|
<main class="mdl-layout__content">
|
|
<div class="mdl-grid demo-content">
|
|
|
|
|
|
<div class="page page1 demo-cards mdl-cell mdl-cell--4-col mdl-cell--8-col-tablet mdl-grid mdl-grid--no-spacing">
|
|
<div class="demo-options mdl-card mdl-shadow--2dp mdl-cell mdl-cell--4-col mdl-cell--3-col-tablet mdl-cell--12-col-desktop">
|
|
<div class="mdl-card__supporting-text">
|
|
|
|
<h3>Power Control</h3>
|
|
<span class="mdl-list__item-secondary-action">
|
|
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="list-switch-0">
|
|
<input type="checkbox" id="list-switch-0" class="mdl-switch__input" checked />
|
|
</label>
|
|
</span>
|
|
<ul class="demo-list-control mdl-list">
|
|
<li class="mdl-list__item">
|
|
<span class="mdl-list__item-primary-content">
|
|
Socket-1
|
|
</span>
|
|
<span class="mdl-list__item-secondary-action">
|
|
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="list-switch-1">
|
|
<input type="checkbox" id="list-switch-1" class="mdl-switch__input" checked />
|
|
</label>
|
|
</span>
|
|
</li>
|
|
<li class="mdl-list__item">
|
|
<span class="mdl-list__item-primary-content">
|
|
Socket-2
|
|
</span>
|
|
<span class="mdl-list__item-secondary-action">
|
|
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="list-switch-2">
|
|
<input type="checkbox" id="list-switch-2" class="mdl-switch__input" checked />
|
|
</label>
|
|
</span>
|
|
</li>
|
|
<li class="mdl-list__item">
|
|
<span class="mdl-list__item-primary-content">
|
|
Socket-3
|
|
</span>
|
|
<span class="mdl-list__item-secondary-action">
|
|
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="list-switch-3">
|
|
<input type="checkbox" id="list-switch-3" class="mdl-switch__input" checked />
|
|
</label>
|
|
</span>
|
|
</li>
|
|
<li class="mdl-list__item">
|
|
<span class="mdl-list__item-primary-content">
|
|
Socket-4
|
|
</span>
|
|
<span class="mdl-list__item-secondary-action">
|
|
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="list-switch-4">
|
|
<input type="checkbox" id="list-switch-4" class="mdl-switch__input" checked />
|
|
</label>
|
|
</span>
|
|
</li>
|
|
<li class="mdl-list__item">
|
|
<span class="mdl-list__item-primary-content">
|
|
Socket-5
|
|
</span>
|
|
<span class="mdl-list__item-secondary-action">
|
|
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="list-switch-5">
|
|
<input type="checkbox" id="list-switch-5" class="mdl-switch__input" checked />
|
|
</label>
|
|
</span>
|
|
</li>
|
|
<li class="mdl-list__item">
|
|
<span class="mdl-list__item-primary-content">
|
|
Socket-6
|
|
</span>
|
|
<span class="mdl-list__item-secondary-action">
|
|
<label class="mdl-switch mdl-js-switch mdl-js-ripple-effect" for="list-switch-6">
|
|
<input type="checkbox" id="list-switch-6" class="mdl-switch__input" checked />
|
|
</label>
|
|
</span>
|
|
</li>
|
|
</ul>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="ct-chart-par" class="page page1 mdl-card__supporting-text mdl-shadow--2dp mdl-cell mdl-cell--6-col"
|
|
style="height:300px;overflow-x:scroll;overflow-y:hidden;">
|
|
<div id="ct-chart" class="ct-chart ct-perfect-fourth" style="height:280px;"></div>
|
|
</div>
|
|
|
|
<div class="page page2 mdl-cell mdl-cell--5-col demo-card-square mdl-card mdl-shadow--2dp" style="overflow: unset;">
|
|
<div class="mdl-card__title mdl-card--expand">
|
|
<h2 class="mdl-card__title-text">Network Config</h2>
|
|
</div>
|
|
<div class="mdl-card__supporting-text" style="overflow: unset;">
|
|
<form action="#">
|
|
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label getmdl-select getmdl-select__fix-height">
|
|
<input id="wifi_sel_name" type="text" value="" class="mdl-textfield__input" readonly>
|
|
<input id="wifi_sel_data" type="hidden" value="" name="sample4">
|
|
<i class="mdl-icon-toggle__label material-icons">keyboard_arrow_down</i>
|
|
<label for="sample4" class="mdl-textfield__label">SSID</label>
|
|
<ul id="ssid_sel_list" for="sample4" class="mdl-menu mdl-menu--bottom-left mdl-js-menu">
|
|
</ul>
|
|
</div>
|
|
<div id="div_custom_ssid" class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label" hidden>
|
|
<input id="custom_ssid" class="mdl-textfield__input" type="text" id="sample3">
|
|
<label class="mdl-textfield__label" for="sample3">SSID</label>
|
|
</div>
|
|
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
|
|
<input class="mdl-textfield__input" type="text" id="sample3">
|
|
<label class="mdl-textfield__label" for="sample3">Password</label>
|
|
</div>
|
|
<div>
|
|
<label class="mdl-radio mdl-js-radio mdl-js-ripple-effect" for="option-1">
|
|
<input type="radio" id="option-1" class="mdl-radio__button" name="options" value="1" checked>
|
|
<span class="mdl-radio__label">AP</span>
|
|
</label>
|
|
<label class="station-radio mdl-radio mdl-js-radio mdl-js-ripple-effect" for="option-2">
|
|
<input type="radio" id="option-2" class="mdl-radio__button" name="options" value="2">
|
|
<span class="mdl-radio__label">Station</span>
|
|
</label>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
<div class="mdl-card__actions mdl-card--border">
|
|
<a id="demo-show-toast" class="mdl-button mdl-button--colored mdl-js-button mdl-js-ripple-effect">
|
|
Submit
|
|
</a>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="page page2 mdl-cell mdl-cell--5-col demo-card-square mdl-card mdl-shadow--2dp" style="z-index: unset;">
|
|
<div class="mdl-card__title mdl-card--expand">
|
|
<h2 class="mdl-card__title-text">MQTT Config</h2>
|
|
</div>
|
|
<div class="mdl-card__supporting-text">
|
|
<form action="#">
|
|
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
|
|
<input class="mdl-textfield__input" type="text" id="sample3">
|
|
<label class="mdl-textfield__label" for="sample3">MQTT Addr</label>
|
|
</div>
|
|
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
|
|
<input class="mdl-textfield__input" type="text" id="sample3">
|
|
<label class="mdl-textfield__label" for="sample3">MQTT Port</label>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
<div class="mdl-card__actions mdl-card--border">
|
|
<a class="mdl-button mdl-button--colored mdl-js-button mdl-js-ripple-effect">
|
|
Submit
|
|
</a>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="page page3 mdl-cell mdl-cell--12-col demo-card-event mdl-card mdl-shadow--2dp">
|
|
<table class="mdl-data-table mdl-js-data-table">
|
|
<tr>
|
|
<th>Index</th>
|
|
<th>Time</th>
|
|
<th>Socket</th>
|
|
<th>On</th>
|
|
<th>Option</th>
|
|
</tr>
|
|
<tr>
|
|
<td>1</td>
|
|
<td>2020-02-15<br>07:11:08</td>
|
|
<td>1</td>
|
|
<td>0</td>
|
|
<td><a>Delete</a></td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="5">No Timed Task</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
|
|
<div class="page page4 mdl-cell mdl-cell--12-col demo-card-event mdl-card mdl-shadow--2dp">
|
|
<table class="mdl-data-table mdl-js-data-table">
|
|
<tr>
|
|
<th>Version</th>
|
|
<th>v1.0.33</th>
|
|
</tr>
|
|
<tr>
|
|
<td>IP</td>
|
|
<td>192.168.33.222</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Mask</td>
|
|
<td>255.255.255.0</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Gateway</td>
|
|
<td>192.168.33.1</td>
|
|
</tr>
|
|
<tr>
|
|
<td>Uptime</td>
|
|
<td>10:13:43</td>
|
|
</tr>
|
|
</table>
|
|
<div class="mdl-card__actions mdl-card--border">
|
|
<div class="mdl-layout-spacer"></div>
|
|
<i class="material-icons">event</i>
|
|
<!-- <span>2020-02-22</span> -->
|
|
<a class="mdl-button">
|
|
2020-02-22
|
|
</a>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="page page5 mdl-cell mdl-cell--12-col demo-card-square mdl-card mdl-shadow--2dp">
|
|
<div class="mdl-card__title mdl-card--expand">
|
|
<h2 class="mdl-card__title-text">OTA</h2>
|
|
</div>
|
|
<div class="mdl-card__supporting-text">
|
|
<form action="#">
|
|
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label">
|
|
<input class="mdl-textfield__input" type="text" id="sample3" value="http://119.23.191.79/tc1/tc1ota.bin">
|
|
<label class="mdl-textfield__label" for="sample3">OTA Url</label>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
<div class="mdl-card__actions mdl-card--border">
|
|
<a class="mdl-button mdl-button--colored mdl-js-button mdl-js-ripple-effect">
|
|
Submit
|
|
</a>
|
|
</div>
|
|
<div id="p1" class="mdl-progress mdl-js-progress"></div>
|
|
<script>
|
|
document.querySelector('#p1').addEventListener('mdl-componentupgraded', function() {
|
|
this.MaterialProgress.setProgress(44);
|
|
});
|
|
</script>
|
|
</div>
|
|
|
|
<div class="page page6 mdl-cell mdl-cell--12-col demo-card-square mdl-card mdl-shadow--2dp">
|
|
<div class="mdl-card__title mdl-card--expand">
|
|
<h2 class="mdl-card__title-text">System Log</h2>
|
|
</div>
|
|
<div class="sys-log mdl-card__supporting-text">
|
|
<pre id="sys_log"></pre>
|
|
</div>
|
|
<div class="mdl-card__actions mdl-card--border">
|
|
<a href="javascript:GetSysLog();" class="mdl-button mdl-button--colored mdl-js-button mdl-js-ripple-effect">
|
|
Refresh
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</main>
|
|
</div>
|
|
|
|
<!-- <button id="demo-show-toast" class="mdl-button mdl-js-button mdl-button--raised" type="button">Show Toast</button> -->
|
|
<div id="demo-toast-example" class="mdl-js-snackbar mdl-snackbar">
|
|
<div class="mdl-snackbar__text"></div>
|
|
<button class="mdl-snackbar__action" type="button"></button>
|
|
</div>
|
|
|
|
<script type="text/javascript" src="assets/js_pack.js"></script>
|
|
<script>
|
|
//弹框
|
|
(function() {
|
|
'use strict';
|
|
window['counter'] = 0;
|
|
var snackbarContainer = document.querySelector('#demo-toast-example');
|
|
var showToastButton = document.querySelector('#demo-show-toast');
|
|
showToastButton.addEventListener('click', function() {
|
|
'use strict';
|
|
var data = {message: 'Config Success # ' + ++counter};
|
|
snackbarContainer.MaterialSnackbar.showSnackbar(data);
|
|
});
|
|
}());
|
|
|
|
//Ajax
|
|
function AjaxErr(re) {
|
|
//alert(re.status);
|
|
}
|
|
function Ajax(url, onsuccess, type, data) {
|
|
$.ajax({
|
|
url: url,
|
|
type: type,
|
|
data: data,
|
|
success: onsuccess,
|
|
error: AjaxErr
|
|
});
|
|
}
|
|
function HttpGet(url, onsuccess) {
|
|
Ajax(url, onsuccess, "GET", null);
|
|
}
|
|
function HttpPost(url, onsuccess, data) {
|
|
Ajax(url, onsuccess, "POST", data);
|
|
}
|
|
function HttpDel(url, onsuccess, data) {
|
|
Ajax(url, onsuccess, "DELET", data);
|
|
}
|
|
|
|
var chart_par = document.getElementById("ct-chart-par");
|
|
chart_par.scrollTo(chart_par.scrollWidth, 0);
|
|
|
|
var ssid_slt = document.getElementById("ssid_sel_list");
|
|
var div_custom_ssid = document.getElementById("div_custom_ssid");
|
|
var input_div_custom_ssid = document.getElementById("custom_ssid");
|
|
var input_wifi_sel_data = document.getElementById("wifi_sel_data");
|
|
var input_wifi_sel_name = document.getElementById("wifi_sel_name");
|
|
|
|
var rescan_timer;
|
|
|
|
function ShowPage(id) {
|
|
$(".page").hide();
|
|
$(".page"+id).show();
|
|
$(".is-small-screen >> .mdl-layout__drawer-button").click()
|
|
|
|
chart_par.scrollTo(chart_par.scrollWidth, 0);
|
|
|
|
$(".mdl-navigation__link").removeClass("mdl-nav-active");
|
|
$(".mdl-navigation__link:eq("+(id-1)+")").addClass("mdl-nav-active");
|
|
|
|
if(id == 2) {
|
|
Rescan();
|
|
}
|
|
else {
|
|
window.clearTimeout(rescan_timer);
|
|
}
|
|
}
|
|
ShowPage(6);
|
|
|
|
$("#wifi_sel_name").on("change", function() {
|
|
if (input_wifi_sel_data.value == "0") {
|
|
$("#div_custom_ssid")[0].hidden = false;
|
|
} else {
|
|
$("#div_custom_ssid")[0].hidden = true;
|
|
input_div_custom_ssid.value = input_wifi_sel_name.value;
|
|
}
|
|
});
|
|
|
|
function Rescan() {
|
|
HttpPost("/wifi/scan", function (re) {
|
|
if (re == "OK") {
|
|
window.setTimeout(GetScanResult, 1000);
|
|
} else {
|
|
alert(re);
|
|
}
|
|
});
|
|
}
|
|
|
|
function GetScanResult() {
|
|
HttpGet("/wifi/scan", function (re) {
|
|
if (re != "NO") {
|
|
var ret = JSON.parse(re.replace(/'/g, '"')); //TODO: Fix this later
|
|
var html = "<li class='mdl-menu__item' data-val='0'>Manual</li>";
|
|
for (var i = 0; i < ret.ssids.length; i++) {
|
|
html += "<li class='mdl-menu__item' data-val='"+(i+1)+"'>"+ret.ssids[i]+"</li>";
|
|
}
|
|
ssid_slt.innerHTML = html;
|
|
getmdlSelect.init(".getmdl-select");
|
|
rescan_timer = window.setTimeout(Rescan, 20000);
|
|
return;
|
|
}
|
|
window.setTimeout(GetScanResult, 1000);
|
|
});
|
|
}
|
|
|
|
var data = {
|
|
series: [
|
|
[]
|
|
]
|
|
};
|
|
var t = new Chartist.Line('.ct-chart', data, {showArea: true, axisY: {position: 'end'}});
|
|
var power_idx = 0;
|
|
var chart_wth = 0;
|
|
function GetPowerRecord() {
|
|
HttpPost("/power", function (re) {
|
|
re = re.replace(/'/g, '"');
|
|
var power = JSON.parse(re);
|
|
power_idx = power.idx + 1;
|
|
|
|
var x = chart_par.scrollWidth - chart_par.offsetWidth - chart_par.scrollLeft;
|
|
|
|
power.powers.forEach(element => {
|
|
data.series[0].push(element/10);
|
|
});
|
|
chart_wth += power.powers.length;
|
|
$("#ct-chart").width(chart_wth * 10);
|
|
t.update(data);
|
|
if (power.powers.length != 0 && x < 100) {
|
|
chart_par.scrollTo(chart_par.scrollWidth, 0);
|
|
}
|
|
window.setTimeout(GetPowerRecord, 3000);
|
|
}, power_idx.toString());
|
|
}
|
|
$(document).ready(function(){
|
|
GetPowerRecord();
|
|
})
|
|
|
|
var sys_log = document.getElementById("sys_log");
|
|
var log_div = document.getElementsByClassName("sys-log")[0];
|
|
function GetSysLog() {
|
|
HttpGet("/log", function (re) {
|
|
sys_log.innerHTML = re;
|
|
log_div.scrollTo(0, log_div.scrollHeight);
|
|
});
|
|
}
|
|
GetSysLog();
|
|
|
|
</script>
|
|
</body>
|
|
</html>
|