From 1be7e676551ed09d7f542119d75b795df4584feb Mon Sep 17 00:00:00 2001 From: kuaifan Date: Sat, 22 Jul 2023 01:21:26 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96iOS=E6=B7=B1=E8=89=B2?= =?UTF-8?q?=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resources/assets/js/App.vue | 36 ++++++++++++++++++++-------- resources/assets/js/store/actions.js | 34 ++++++++++++++++---------- resources/mobile | 2 +- 3 files changed, 48 insertions(+), 24 deletions(-) diff --git a/resources/assets/js/App.vue b/resources/assets/js/App.vue index 9c4eea5ad..c0f92ed05 100755 --- a/resources/assets/js/App.vue +++ b/resources/assets/js/App.vue @@ -58,6 +58,7 @@ export default { this.eeuiEvents(); this.otherEvents(); this.synchThemeLanguage(); + this.synchAppTheme(); }, mounted() { @@ -73,7 +74,7 @@ export default { }, computed: { - ...mapState(['ws', 'themeMode', 'windowOrientation']), + ...mapState(['ws', 'themeMode', 'themeIsDark', 'windowOrientation']), isSoftware() { return this.$Electron || this.$isEEUiApp; @@ -174,7 +175,7 @@ export default { this.$store.dispatch("websocketConnection") }) if (this.themeMode === "auto") { - $A.dark.autoDarkMode() + this.$store.dispatch("synchTheme") } }, 600) } else { @@ -182,7 +183,7 @@ export default { } }, - themeMode() { + themeIsDark() { this.synchThemeLanguage(); } }, @@ -225,9 +226,19 @@ export default { this.iframes = this.iframes.filter(({key}) => key != 'synchThemeLanguage') this.iframes.push({ key: 'synchThemeLanguage', - url: $A.apiUrl(`../setting/theme_language?theme=${this.themeMode}&language=${languageType}`) + url: $A.apiUrl(`../setting/theme_language?theme=${this.themeIsDark ? 'dark' : 'light'}&language=${languageType}`) }) } + this.synchAppTheme() + }, + + synchAppTheme() { + if (this.$isEEUiApp) { + $A.eeuiAppSendMessage({ + action: 'updateTheme', + themeName: this.themeIsDark ? 'dark' : 'light', + }); + } }, windowSizeListener() { @@ -285,6 +296,12 @@ export default { if (!this.$isEEUiApp) { return; } + // APP进入前台 + window.__onAppActive = () => { + if (this.themeMode === "auto") { + this.$store.dispatch("synchTheme") + } + } // 页面失活 window.__onPagePause = () => { this.$store.state.windowActive = false; @@ -301,7 +318,7 @@ export default { window.__onMeetingEvent = ({act,uuid,meetingid}) => { switch (act) { // 获取用户信息 - case "getInfo": + case "getInfo": this.$store.dispatch("call", { url: 'users/basic', data: { @@ -321,22 +338,21 @@ export default { }); break; //加入成功 - case "success": + case "success": this.$store.dispatch("closeMeetingWindow","add") break; // 邀请 - case "invent": + case "invent": this.$store.dispatch("showMeetingWindow",{ type: "invitation", meetingid: meetingid }) break; //结束会议 - case "endMeeting": - + case "endMeeting": break; //加入失败 - case "error": + case "error": this.$store.dispatch("closeMeetingWindow","error") break; default: diff --git a/resources/assets/js/store/actions.js b/resources/assets/js/store/actions.js index ea0eb15b5..f55277b9f 100644 --- a/resources/assets/js/store/actions.js +++ b/resources/assets/js/store/actions.js @@ -55,19 +55,7 @@ export default { } // 主题皮肤 - switch (state.themeMode) { - case 'dark': - $A.dark.enableDarkMode() - break; - case 'light': - $A.dark.disableDarkMode() - break; - default: - state.themeMode = "auto" - $A.dark.autoDarkMode() - break; - } - state.themeIsDark = $A.dark.isDarkEnabled() + await dispatch("synchTheme") // 客户端ID if (!state.clientId) { @@ -488,6 +476,26 @@ export default { }); }, + /** + * 同步主题 + * @param state + */ + synchTheme({state}) { + switch (state.themeMode) { + case 'dark': + $A.dark.enableDarkMode() + break; + case 'light': + $A.dark.disableDarkMode() + break; + default: + state.themeMode = "auto" + $A.dark.autoDarkMode() + break; + } + state.themeIsDark = $A.dark.isDarkEnabled() + }, + /** * 获取基本数据(项目、对话、仪表盘任务、会员基本信息) * @param state diff --git a/resources/mobile b/resources/mobile index 8a4c11011..b95b0a9c4 160000 --- a/resources/mobile +++ b/resources/mobile @@ -1 +1 @@ -Subproject commit 8a4c11011f43f728c5e18a6fc141efd8807102d9 +Subproject commit b95b0a9c439f04f9f19648bb2159187eb2b936ea