123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262 |
- <!DOCTYPE html>
- <html class="">
- <head>
- <meta charset="UTF-8">
- <meta name="viewport"
- content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no"/>
- <title>配置终端</title>
- </head>
- <style>
- #qrcode {
- padding: 10px;
- background: #fff;
- border-radius: 2px;
- }
- .grid-hero {
- margin-top: 1rem;
- margin-bottom: 1rem;
- }
- .section {
- color: #fff;
- }
- .bg-grey {
- padding: 1rem;
- }
- .modal-container {
- width: 80%;
- }
- .input-section {
- overflow: hidden;
- }
- html {
- /*可以选其中一种背景色*/
- background-blend-mode: multiply;
- background-image: linear-gradient(to top, #a3bded 0%, #6991c7 100%);
- height: 100%;
- }
- body {
- background: transparent !important;
- height: 100%;
- position: relative;
- }
- body .btn.btn-primary {
- height: 4rem;
- background: rgba(16, 142, 233, 0.92);
- border-color: rgba(16, 142, 233, 96);
- }
- body .btn.btn-primary:hover, body .btn.btn-primary:active {
- background: rgba(16, 142, 233, 0.96);
- border-color: rgba(16, 142, 233, 1);
- }
- body .form-input {
- border-color: rgba(16, 142, 233, .1);
- height: 4rem;
- }
- body .form-input:focus {
- border-color: rgba(16, 142, 233, 1);
- }
- #connect {
- margin-top: 20px;
- padding: 0 40px;
- }
- .toast-msg {
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- z-index: 99999;
- padding: 10px 15px;
- color: #fff;
- text-align: center;
- white-space: nowrap;
- background-color: rgba(0, 0, 0, .9);
- border-radius: 3px;
- }
- .toast-msg .toast-text {
- font-size: 14px
- }
- </style>
- <body>
- <section class="section bg-grey">
- <section class="grid-hero container grid-480">
- <header class="text-center">
- <div id="qrcode" style="display: inline-block"></div>
- <p id="imei">IMEI</p>
- </header>
- </section>
- </section>
- <section class="section input-section">
- <section class="container grid-480">
- <header class="text-left mb-10"><h5 class="top-tips" style="margin-top: 0">配置终端接入一个无线网络</h5></header>
- <form class="main-form">
- <div class="form-group">
- <label class="form-label">让我连接到</label>
- <div class="input-group">
- <input type="text" id="ssid" class="form-input" placeholder="无线网络名">
- <button type="button" id="scanap" class="btn btn-primary input-group-btn">附近网络</button>
- </div>
- </div>
- <div class="form-group">
- <label class="form-label" for="input-pwd">网络密码</label>
- <input id="pwd" class="form-input" type="text" id="input-pwd" placeholder="无线网络密码(无密码请留空)">
- </div>
- <div class="form-group text-center ">
- <button type="button" id="connect" class="btn btn-primary ">连接网络</button>
- </div>
- </form>
- </section>
- </section>
- <div id="selectwifi" class="modal">
- <div class="modal-overlay"></div>
- <div class="modal-container">
- <div class="modal-header">
- <div class="modal-title">选择一个无线网络</div>
- </div>
- <div id="aplist" class="modal-body"></div>
- </div>
- </div>
- <script id="item-ap" type="text/html">
- <div class="chip hand text-ellipsis">
- <svg width="30px" height="20px" class="chip-icon">
- <path d="M15,20 L0.86,5.86 A20,20 0 0,1 29.14,5.86" fill="#d0d0d0"/>
- <path d="M15,20 L{0},{1} A{2},{2} 0 0,1 {3},{1}" fill="#666"/>
- </svg>
- <span class="chip-content">{4}</span>
- </div>
- </script>
- <link href="spectre.min.css" rel="stylesheet"/>
- <script src="zepto.min.js"></script>
- <script src="qrcode.min.js"></script>
- <!--<script src="vconsole.min.js"></script>-->
- <script>
- // new VConsole();
- function toast(e) {
- var t = ($("body").append('<div class=""></div>'), $(".toast")),
- n = '<div class="toast-msg"><div class="toast-text">' + e + "</div></div>";
- $("body").append(n), setTimeout(function () {
- t.remove(), $(".toast-msg").remove()
- }, 3000)
- }
- String.prototype.format = function () {
- var args = arguments;
- return this.replace(/\{(\d+)\}/g
- , function (m, i) {
- return args[i];
- });
- }
- $(function () {
- $.get('../devInfo', function (resJson) {
- if (resJson.imei) {
- var imei = resJson.imei || "没有编号";
- $('#imei').text(imei);
- var qrcode = new QRCode("qrcode", {
- text: imei,
- width: 128,
- height: 128,
- colorDark: "#108EE9",
- colorLight: "#ffffff",
- correctLevel: QRCode.CorrectLevel.H
- });
- }
- },'json');
- $('#connect').click(function () {
- var ssid = $('#ssid').val()
- if (!ssid) {
- toast('请选择要连接的网络!');
- return
- }
- $('#connect').addClass('loading').prop('disabled', true);
- $.get('../config?ssid={0}&pwd={1}'.format(ssid, $('#pwd').val())
- , function (resJson) {
- var status = resJson.result || resJson.status
- var tips
- if (status) {
- tips = '已经连接网络'
- toast(tips)
- $('.top-tips').text(tips).css('text-align', 'center')
- $('.main-form').hide()
- } else {
- toast('连接失败,请确保输入正确')
- }
- $('#connect').removeClass('loading').prop('disabled', false);
- }, 'json');
- });
- $('#scanap').click(function () {
- $('#scanap').addClass('loading').prop('disabled', true);
- $.get('../scanap', function (resJson) {
- $('#scanap').removeClass('loading').prop('disabled', false);
- //resJson = JSON.parse(resJson);
- var template = $('#item-ap').html();
- var cos45, sin45 = cos45 = 0.70710678118655;
- var html = '';
- for (var i = 0; i < resJson.length; i++) {
- var r = 0.3333 * parseInt(resJson[i]["rssi"]) + 33.3333;
- r = r > 20 ? 20 : (r < 0 ? 0 : r)
- html += template.format(
- 15 - r * cos45
- , 20 - r * sin45
- , r
- , 15 + r * cos45
- , resJson[i]["ssid"]
- );
- }
- $('#aplist').html(html)
- $('#selectwifi').addClass('active');
- $(".modal-overlay").click(function () {
- $('#selectwifi').removeClass('active');
- });
- $("#aplist div").click(function () {
- $('#selectwifi').removeClass('active');
- var ssid = $(this).children('.chip-content').html()
- $('#ssid').val(ssid);
- });
- },'json');
- });
- })
- </script>
- </body>
- </html>
|