From b8c2b3a97afc0c4685c1bdd8d786ca740d18d395 Mon Sep 17 00:00:00 2001 From: kuaifan Date: Fri, 21 Jul 2023 15:46:03 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20Safari=E6=94=AF=E6=8C=81=E6=9A=97?= =?UTF-8?q?=E9=BB=91=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- language/original-web.txt | 3 +- resources/assets/js/functions/web.js | 43 ++++++++++++++++++++++------ resources/assets/js/store/actions.js | 2 +- 3 files changed, 38 insertions(+), 10 deletions(-) diff --git a/language/original-web.txt b/language/original-web.txt index 95dcdb971..1102fc970 100644 --- a/language/original-web.txt +++ b/language/original-web.txt @@ -95,7 +95,7 @@ 仅限项目负责人操作 任务描述,回车创建 你好,扫码确认登录 -你确定要登出系统? +你确定要登出系统吗? 你确认领取任务吗? 列表名称,回车创建 同步修改子任务时间 @@ -1252,3 +1252,4 @@ Markdown 格式发送 计划时间冲突提示 忽略并继续 +你确定要清除缓存吗? diff --git a/resources/assets/js/functions/web.js b/resources/assets/js/functions/web.js index 2c20ac8c8..7c36ff2e0 100755 --- a/resources/assets/js/functions/web.js +++ b/resources/assets/js/functions/web.js @@ -1140,9 +1140,36 @@ $.extend({ dark: { utils: { - filter: '-webkit-filter: url(#dark-mode-filter) !important; filter: url(#dark-mode-filter) !important;', - reverseFilter: '-webkit-filter: url(#dark-mode-reverse-filter) !important; filter: url(#dark-mode-reverse-filter) !important;', - noneFilter: '-webkit-filter: none !important; filter: none !important;', + supportMode() { + let ua = typeof window !== 'undefined' && window.navigator.userAgent.toLowerCase(); + if (`${ua.match(/Chrome/i)}` === 'chrome') { + return 'chrome'; + } + if (`${ua.match(/Safari/i)}` === 'safari') { + return 'safari'; + } + return null; + }, + + defaultFilter() { + if (this.supportMode() === 'chrome') { + return '-webkit-filter: url(#dark-mode-filter) !important; filter: url(#dark-mode-filter) !important;'; + } else if (this.supportMode() === 'safari') { + return '-webkit-filter: invert(0.92) hue-rotate(180deg) !important; filter: invert(0.92) hue-rotate(180deg) !important;'; + } + }, + + reverseFilter() { + if (this.supportMode() === 'chrome') { + return '-webkit-filter: url(#dark-mode-reverse-filter) !important; filter: url(#dark-mode-reverse-filter) !important;'; + } else if (this.supportMode() === 'safari') { + return '-webkit-filter: invert(0.92) hue-rotate(180deg) !important; filter: invert(0.92) hue-rotate(180deg) !important;'; + } + }, + + noneFilter() { + return '-webkit-filter: none !important; filter: none !important;'; + }, addExtraStyle() { try { @@ -1206,7 +1233,7 @@ this.utils.addStyle('dark-mode-style', 'style', ` @media screen { html { - ${this.utils.filter} + ${this.utils.defaultFilter()} } /* Default Reverse rule */ @@ -1225,7 +1252,7 @@ .no-dark-mode, .no-dark-content, .no-dark-before:before { - ${this.utils.reverseFilter} + ${this.utils.reverseFilter()} } [style*="background:url"] *, @@ -1237,7 +1264,7 @@ .no-dark-content img, .no-dark-content canvas, .no-dark-content svg image { - ${this.utils.noneFilter} + ${this.utils.noneFilter()} } /* Text contrast */ @@ -1253,7 +1280,7 @@ :-moz-full-screen *, :fullscreen, :fullscreen * { - ${this.utils.noneFilter} + ${this.utils.noneFilter()} } /* Page background */ @@ -1273,7 +1300,7 @@ }, enableDarkMode() { - if (!$A.isChrome()) { + if (!this.utils.supportMode()) { return; } if (this.isDarkEnabled()) { diff --git a/resources/assets/js/store/actions.js b/resources/assets/js/store/actions.js index 272dbf77f..ea0eb15b5 100644 --- a/resources/assets/js/store/actions.js +++ b/resources/assets/js/store/actions.js @@ -461,7 +461,7 @@ export default { resolve(false) return; } - if (!$A.isChrome()) { + if (!$A.dark.utils.supportMode()) { if ($A.isEEUiApp) { $A.modalWarning("仅Android设置支持主题功能"); } else {