diff --git a/language/original-web.txt b/language/original-web.txt
index 61f4a25b9..c10fe2523 100644
--- a/language/original-web.txt
+++ b/language/original-web.txt
@@ -1710,8 +1710,6 @@ WiFi签到延迟时长为±1分钟。
注意:此操作不可恢复,部门下的成员将移至默认部门。
维护中...
-你确定要登出系统?
-
(*)评论了(*)的「(**)」审批
抄送(*)提交的「(**)」记录
(*)提交的「(**)」待你审批
diff --git a/language/translate.json b/language/translate.json
index 1f1212183..384c0c429 100644
--- a/language/translate.json
+++ b/language/translate.json
@@ -24503,18 +24503,6 @@
"id": "Terjemahan gagal",
"ru": "Ошибка перевода"
},
- {
- "key": "你确定要登出系统?",
- "zh": "",
- "zh-CHT": "你確定要登出系統?",
- "en": "Are you sure you want to log out of the system?",
- "ko": "시스템에서 로그아웃하시겠습니까?",
- "ja": "システムからログアウトしてもよろしいですか?",
- "de": "Sind Sie sicher, dass Sie sich vom System abmelden möchten?",
- "fr": "Êtes-vous sûr de vouloir vous déconnecter du système ?",
- "id": "Apakah Anda yakin ingin keluar dari sistem?",
- "ru": "Вы уверены, что хотите выйти из системы?"
- },
{
"key": "翻译",
"zh": "",
@@ -29507,4 +29495,4 @@
"id": "Arsip Tugas Otomatis",
"ru": "Автоматическое архивирование задач"
}
-]
\ No newline at end of file
+]
diff --git a/public/images/device/android.svg b/public/images/device/android.svg
new file mode 100644
index 000000000..dfb03ae22
--- /dev/null
+++ b/public/images/device/android.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/images/device/apple.svg b/public/images/device/apple.svg
new file mode 100644
index 000000000..572569b8d
--- /dev/null
+++ b/public/images/device/apple.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/images/device/macos.svg b/public/images/device/macos.svg
new file mode 100644
index 000000000..f8f16fb8d
--- /dev/null
+++ b/public/images/device/macos.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/images/device/web.svg b/public/images/device/web.svg
new file mode 100644
index 000000000..27d898980
--- /dev/null
+++ b/public/images/device/web.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/public/images/device/window.svg b/public/images/device/window.svg
new file mode 100644
index 000000000..e0d4716ec
--- /dev/null
+++ b/public/images/device/window.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/resources/assets/js/pages/manage.vue b/resources/assets/js/pages/manage.vue
index 21ed181af..1d4a47b42 100644
--- a/resources/assets/js/pages/manage.vue
+++ b/resources/assets/js/pages/manage.vue
@@ -839,8 +839,12 @@ export default {
$A.modalConfirm({
title: '退出登录',
content: '你确定要登出系统吗?',
+ loading: true,
onOk: () => {
- this.$store.dispatch("logout", false)
+ return new Promise(async resolve => {
+ await this.$store.dispatch("logout", false)
+ resolve()
+ })
}
});
return;
diff --git a/resources/assets/js/pages/manage/setting/index.vue b/resources/assets/js/pages/manage/setting/index.vue
index 457852fe1..085e37e75 100644
--- a/resources/assets/js/pages/manage/setting/index.vue
+++ b/resources/assets/js/pages/manage/setting/index.vue
@@ -163,8 +163,12 @@ export default {
$A.modalConfirm({
title: '退出登录',
content: '你确定要登出系统吗?',
+ loading: true,
onOk: () => {
- this.$store.dispatch("logout", false)
+ return new Promise(async resolve => {
+ await this.$store.dispatch("logout", false)
+ resolve()
+ })
}
});
break;
diff --git a/resources/assets/js/store/actions.js b/resources/assets/js/store/actions.js
index e43997191..bd6060c2f 100644
--- a/resources/assets/js/store/actions.js
+++ b/resources/assets/js/store/actions.js
@@ -983,20 +983,24 @@ export default {
* @param state
* @param dispatch
* @param appendFrom
+ * @returns {Promise}
*/
logout({state, dispatch}, appendFrom = true) {
- try {
- dispatch("call", "users/logout")
- } catch (e) {
- console.log(e);
- }
- dispatch("handleClearCache", {}).then(() => {
- let from = ["/", "/login"].includes(window.location.pathname) ? "" : encodeURIComponent(window.location.href);
- if (appendFrom === false) {
- from = null;
+ return new Promise(async resolve => {
+ try {
+ await dispatch("call", "users/logout")
+ } catch (e) {
+ console.log(e);
}
- $A.goForward({name: 'login', query: from ? {from: from} : {}}, true);
- });
+ dispatch("handleClearCache", {}).then(() => {
+ let from = ["/", "/login"].includes(window.location.pathname) ? "" : encodeURIComponent(window.location.href);
+ if (appendFrom === false) {
+ from = null;
+ }
+ $A.goForward({name: 'login', query: from ? {from: from} : {}}, true);
+ resolve();
+ });
+ })
},
/**