From b498ae1be52ca2f3a3825c3af67d9005a8f5751b Mon Sep 17 00:00:00 2001
From: lh11117 <99455215+lh11117@users.noreply.github.com>
Date: Thu, 17 Aug 2023 08:37:52 +0800
Subject: [PATCH] =?UTF-8?q?=E5=8A=9F=E8=83=BD=E4=BC=98=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
优化计算器、断网页面(深色模式)、以及一些细节
---
calculator_kernel.js | 165 +++++++++++++++++++++++++++++++++++
desktop.html | 132 ++++++++++------------------
desktop.js | 107 +++++++++--------------
disconnected_dark.html | 90 +++++++++++++++++++
mainpage.html | 2 +-
media/Windows Background.wav | Bin 0 -> 247624 bytes
widgets.css | 2 +-
7 files changed, 346 insertions(+), 152 deletions(-)
create mode 100644 calculator_kernel.js
create mode 100644 disconnected_dark.html
create mode 100644 media/Windows Background.wav
diff --git a/calculator_kernel.js b/calculator_kernel.js
new file mode 100644
index 0000000..1a631ca
--- /dev/null
+++ b/calculator_kernel.js
@@ -0,0 +1,165 @@
+var num1 = 0, num2 = 0;
+var c = 0;
+
+function get_num(id) {
+ return Number(document.getElementById(id).value);
+}
+
+
+function on_click_number_key(key, id) {
+ //key:按下的数字键,int
+ //id:显示区的id
+ if (document.getElementById(id).value == "0") {
+ document.getElementById(id).value = ""
+ }
+ document.getElementById(id).value += key;
+}
+
+function on_click_fun_key(key, id) {
+ //key:按下的功能键,int,加1,减2,乘3,除4
+ num1 = Number(document.getElementById(id).value);
+ c = key;
+ document.getElementById(id).value = "0"
+}
+
+function on_click_point(id) {
+ if (document.getElementById(id).value == "") {
+ document.getElementById(id).value = "0"
+ }
+ if (!(document.getElementById(id).value.includes('.'))) {
+ document.getElementById(id).value += "."
+ }
+}
+
+function kernel_Square(id) {
+ document.getElementById(id).value = Math.pow(get_num(id), 2)
+}
+
+function kernel_SquareRoot(id) {
+ document.getElementById(id).value = Math.sqrt(get_num(id))
+}
+
+function backspace(id) {
+ if (document.getElementById(id).value.length > 0) {
+ document.getElementById(id).value = document.getElementById(id).value.substring(0, document.getElementById(id).value.length - 1)
+ }
+ if (document.getElementById(id).value == "") {
+ document.getElementById(id).value = "0"
+ }
+}
+
+
+function clear_num(id) {
+ document.getElementById(id).value = "0"
+ num1 = 0, num2 = 0, c = 0;
+}
+
+function on_click_eq(id) {
+ if (c == 0) {
+ return true;
+ }
+ num2 = Number(document.getElementById(id).value);
+ var num = _calc(num1, num2, c);
+ if (num != null) {
+ document.getElementById(id).value = num.toString()
+ return true;
+ }
+ return false;
+}
+
+function accAdd(arg1, arg2) {
+ var r1, r2, m, c;
+ try {
+ r1 = arg1.toString().split(".")[1].length;
+ }
+ catch (e) {
+ r1 = 0;
+ }
+ try {
+ r2 = arg2.toString().split(".")[1].length;
+ }
+ catch (e) {
+ r2 = 0;
+ }
+ c = Math.abs(r1 - r2);
+ m = Math.pow(10, Math.max(r1, r2));
+ if (c > 0) {
+ var cm = Math.pow(10, c);
+ if (r1 > r2) {
+ arg1 = Number(arg1.toString().replace(".", ""));
+ arg2 = Number(arg2.toString().replace(".", "")) * cm;
+ } else {
+ arg1 = Number(arg1.toString().replace(".", "")) * cm;
+ arg2 = Number(arg2.toString().replace(".", ""));
+ }
+ } else {
+ arg1 = Number(arg1.toString().replace(".", ""));
+ arg2 = Number(arg2.toString().replace(".", ""));
+ }
+ return (arg1 + arg2) / m;
+}
+function accSub(arg1, arg2) {
+ var r1, r2, m, n;
+ try {
+ r1 = arg1.toString().split(".")[1].length;
+ }
+ catch (e) {
+ r1 = 0;
+ }
+ try {
+ r2 = arg2.toString().split(".")[1].length;
+ }
+ catch (e) {
+ r2 = 0;
+ }
+ m = Math.pow(10, Math.max(r1, r2)); //last modify by deeka //动态控制精度长度
+ n = (r1 >= r2) ? r1 : r2;
+ return ((arg1 * m - arg2 * m) / m).toFixed(n);
+}
+function accMul(arg1, arg2) {
+ var m = 0, s1 = arg1.toString(), s2 = arg2.toString();
+ try {
+ m += s1.split(".")[1].length;
+ }
+ catch (e) {
+ }
+ try {
+ m += s2.split(".")[1].length;
+ }
+ catch (e) {
+ }
+ return Number(s1.replace(".", "")) * Number(s2.replace(".", "")) / Math.pow(10, m);
+}
+
+function accDiv(arg1, arg2) {
+ var t1 = 0, t2 = 0, r1, r2;
+ try {
+ t1 = arg1.toString().split(".")[1].length;
+ }
+ catch (e) {
+ }
+ try {
+ t2 = arg2.toString().split(".")[1].length;
+ }
+ catch (e) {
+ }
+ with (Math) {
+ r1 = Number(arg1.toString().replace(".", ""));
+ r2 = Number(arg2.toString().replace(".", ""));
+ return (r1 / r2) * pow(10, t2 - t1);
+ }
+}
+
+
+function _calc(n1, n2, c) {
+ switch (c) {
+ case 1:
+ return accAdd(n1, n2);
+ case 2:
+ return accSub(n1, n2);
+ case 3:
+ return accMul(n1, n2);
+ case 4:
+ return (n2 != 0) ? accDiv(n1, n2) : null;
+ }
+}
\ No newline at end of file
diff --git a/desktop.html b/desktop.html
index a31beac..06f848d 100644
--- a/desktop.html
+++ b/desktop.html
@@ -40,6 +40,7 @@
+
主题
设置 Windows 的主题 想要上传自己的主题?
错误
+除数不得等于0
`, + btn: [ + { type: 'main', text: '好', js: 'closenotice();' }, + ] + }, 'widgets.monitor': { cnt: `切换监视器类型
@@ -551,6 +566,7 @@ let apps = { cs.forEach(c => { if (c.type == 'dir') { $.get(c.url).then(cnt => { + $('#set-theme').html(''); cnt.forEach(cn => { if (cn.name == 'theme.json') { $.getJSON('https://tjy-gitnub.github.io/win12-theme/' + cn.path).then(inf => { @@ -597,7 +613,7 @@ let apps = { }, 300); }, run: (cmd) => { - if (cmd == 'cmd') { + if (cmd == 'cmd' || cmd == 'cmd.exe') { openapp('terminal'); } else if (cmd != '') { @@ -1770,18 +1786,7 @@ let apps = { }, calc: { init: () => { - $('#calc-input').val('0'); - }, - add: (arg) => { - if (arg >= 1 && arg <= 9 && $('#calc-input')[0].value == '0') { - $('#calc-input')[0].value = arg; - } - else if (arg == '0' && $('#calc-input')[0].value == '0') { - $('#calc-input')[0].value = arg; - } - else { - $('#calc-input')[0].value += arg; - } + document.getElementById('calc-input').innerHTML = "0"; } }, about: { @@ -2183,7 +2188,7 @@ Microsoft Windows [版本 12.0.39035.7324] }, reload: () => { if (wifiStatus == false) { - $('#win-edge>iframe.show').attr('src', './disconnected.html'); + $('#win-edge>iframe.show').attr('src', './disconnected' + (isDrak?'_dark':'') + '.html'); } else { $('#win-edge>iframe.show').attr('src', $('#win-edge>iframe.show').attr('src')); @@ -2206,7 +2211,7 @@ Microsoft Windows [版本 12.0.39035.7324] }, goto: (u) => { if (wifiStatus == false) { - $('#win-edge>iframe.show').attr('src', './disconnected.html'); + $('#win-edge>iframe.show').attr('src', './disconnected' + (isDrak?'_dark':'') + '.html'); apps.edge.rename(u); $('#win-edge>.tool>input.url').val(u); } @@ -2214,7 +2219,7 @@ Microsoft Windows [版本 12.0.39035.7324] // 6 if (!/^(((ht|f)tps?):\/\/)?([^!@#$%^&*?.\s-]([^!@#$%^&*?.\s]{0,63}[^!@#$%^&*?.\s])?\.)+[a-z]{2,6}\/?/.test(u)) { // 启用必应搜索 - $('#win-edge>iframe.show').attr('src', 'https://bing.com/search?q=' + u); + $('#win-edge>iframe.show').attr('src', 'https://bing.com/search?q=' + encodeURIComponent(u)/*encodeURIComponent 可以对搜索内容进行编码*/); apps.edge.rename(u); } // 检测网址是否带有http头 @@ -2275,19 +2280,8 @@ let widgets = { init: () => { null }, - add: (arg) => { - if (arg >= 1 && arg <= 9 && $('*:not(.template)>*>.wg.calc>.content>input')[0].value == '0') { - $('*:not(.template)>*>.wg.calc>.content>input')[0].value = arg; - } - else if (arg == '0' && $('*:not(.template)>*>.wg.calc>.content>input')[0].value == '0') { - $('*:not(.template)>*>.wg.calc>.content>input')[0].value = arg; - } - else { - $('*:not(.template)>*>.wg.calc>.content>input')[0].value += arg; - } - }, remove: () => { - null + document.getElementById('calc-input-widgets').value = "0"; } }, weather: { @@ -2562,6 +2556,8 @@ function loadtime() { $('.dock.date>.time').text(time); $('#datebox>.tit>.time').text(time); } +apps.setting.theme_get();//提前加载主题 + setInterval(loadtime, 1000); let d = new Date(); let today = new Date().getDate(); @@ -3031,6 +3027,8 @@ window.addEventListener('mouseup', e => { $('#desktop>.choose').css('width', 0); $('#desktop>.choose').css('height', 0); }) +let isDrak = false; + // 主题 function toggletheme() { $('.dock.theme').toggleClass('dk'); @@ -3038,12 +3036,26 @@ function toggletheme() { if ($(':root').hasClass('dark')) { $('.window.whiteboard>.titbar>p').text('Blackboard'); setData('theme', 'dark'); + isDrak = true; } else { $('.window.whiteboard>.titbar>p').text('Whiteboard'); setData('theme', 'light'); + isDrak = false; } } +const isDarkTheme = window.matchMedia("(prefers-color-scheme: dark)"); +if (isDarkTheme.matches) { //是深色 + $('.dock.theme').toggleClass('dk'); + $(':root').toggleClass('dark'); + $('.window.whiteboard>.titbar>p').text('Blackboard'); + localStorage.setItem('theme', 'dark'); + isDrak = true; +} else { // 不是深色 + $('.window.whiteboard>.titbar>p').text('Whiteboard'); + localStorage.setItem('theme', 'light'); +} + function saveDesktop() { localStorage.setItem('desktop', $('#desktop')[0].innerHTML); } @@ -3307,38 +3319,3 @@ if (!location.href.match(/((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.){3}(\d|[1-9]\d| function sendToSw(msg) { navigator.serviceWorker.controller.postMessage(msg); } - -function calculate() { - let matches = $('#calc-input')[0].value.match(/([-+]?\d*\.?\d+)\s*([-+×÷])\s*([-+]?\d*\.?\d+)/); - if (matches) { - let operand1 = matches[1]; - let operator = matches[2]; - let operand2 = matches[3]; - switch (operator) { - case '+': - $('#calc-input')[0].value = new Big(operand1).plus(operand2).toString(); - break - case '-': - $('#calc-input')[0].value = new Big(operand1).minus(operand2).toString(); - break - case '×': - case '*': - $('#calc-input')[0].value = new Big(operand1).times(operand2).toString(); - break - case '÷': - case '/': - $('#calc-input')[0].value = new Big(operand1).div(operand2).toString(); - break - } - } -} - -function calculateSquare() { - let num = new Big($('#calc-input')[0].value) - $('#calc-input')[0].value = num.times(num).toString() -} - -function calculateSquareRoot() { - let num = new Big($('#calc-input')[0].value) - $('#calc-input')[0].value = num.sqrt().toString() -} diff --git a/disconnected_dark.html b/disconnected_dark.html new file mode 100644 index 0000000..cb1bfbb --- /dev/null +++ b/disconnected_dark.html @@ -0,0 +1,90 @@ + + + + + +Web 因你而不同。让我们帮你重新联机!
+请尝试:
+ERR_INTERNET_DISCONNECTED
+