diff --git a/resources/assets/js/components/Mobile/Back.vue b/resources/assets/js/components/Mobile/Back.vue index f4034db0c..ab00d90c6 100644 --- a/resources/assets/js/components/Mobile/Back.vue +++ b/resources/assets/js/components/Mobile/Back.vue @@ -44,7 +44,7 @@ export default { }, computed: { - ...mapState(['fileLists']), + ...mapState(['fileLists', 'messengerSearchKey']), style() { const offset = 135; @@ -119,6 +119,17 @@ export default { if (this.fileFolderId > 0) { return true; } + if (this.routeName === 'manage-messenger') { + if (this.$route.params.dialogAction === 'contacts') { + if (this.messengerSearchKey.contacts) { + return true; + } + } else { + if (this.messengerSearchKey.dialog) { + return true; + } + } + } return false; }, @@ -138,6 +149,19 @@ export default { this.goForward({name: 'manage-file'}); return; } + if (this.routeName === 'manage-messenger') { + if (this.$route.params.dialogAction === 'contacts') { + if (this.messengerSearchKey.contacts) { + this.$store.state.messengerSearchKey.contacts = "" + return; + } + } else { + if (this.messengerSearchKey.dialog) { + this.$store.state.messengerSearchKey.dialog = "" + return; + } + } + } this.goBack(); }, diff --git a/resources/assets/js/pages/manage/messenger.vue b/resources/assets/js/pages/manage/messenger.vue index 47d1c2a0e..db020dbab 100644 --- a/resources/assets/js/pages/manage/messenger.vue +++ b/resources/assets/js/pages/manage/messenger.vue @@ -257,7 +257,7 @@ export default { }, computed: { - ...mapState(['cacheDialogs', 'loadDialogs', 'dialogId', 'appNotificationPermission']), + ...mapState(['cacheDialogs', 'loadDialogs', 'dialogId', 'messengerSearchKey', 'appNotificationPermission']), routeName() { return this.$route.name @@ -456,13 +456,22 @@ export default { immediate: true }, + messengerSearchKey: { + handler(obj) { + this.dialogSearchKey = obj.dialog + this.contactsKey = obj.contacts + }, + deep: true + }, + dialogSearchKey(val) { + this.$store.state.messengerSearchKey.dialog = val switch (val) { case 'log.o': - $A.IDBSet("logOpen", "open").then(_ => $A.reloadUrl()); + $A.IDBSet("logOpen", "open").then($A.reloadUrl); break; case 'log.c': - $A.IDBSet("logOpen", "close").then(_ => $A.reloadUrl()); + $A.IDBSet("logOpen", "close").then($A.reloadUrl); break; } // @@ -477,6 +486,7 @@ export default { }, contactsKey(val) { + this.$store.state.messengerSearchKey.contacts = val if (val == '') { return; } diff --git a/resources/assets/js/store/state.js b/resources/assets/js/store/state.js index e1e886533..a9bf4b9e1 100644 --- a/resources/assets/js/store/state.js +++ b/resources/assets/js/store/state.js @@ -86,6 +86,9 @@ export default { dialogInputCache: [], dialogMsgTransfer: {time: 0}, + // 搜索关键词(主要用于移动端判断滑动返回) + messengerSearchKey: {dialog: '', contacts: ''}, + // 文件 fileLists: [], fileLinks: [],