diff --git a/resources/assets/js/pages/manage.vue b/resources/assets/js/pages/manage.vue index 91513a955..d9aae5eda 100644 --- a/resources/assets/js/pages/manage.vue +++ b/resources/assets/js/pages/manage.vue @@ -889,9 +889,17 @@ export default { project_id: this.topOperateItem.id, }, }).then(() => { - this.$store.dispatch("getProjects").catch(() => {}); + this.$store.dispatch("getProjects").then(() => { + let active = this.$refs.projectWrapper.querySelector(".active") + if (active) { + $A.scrollToView(active, { + behavior: 'smooth', + scrollMode: 'if-needed', + }); + } + }).catch(() => {}); }).catch(({msg}) => { - $A.modalError(msg, 301); + $A.modalError(msg); }); }, diff --git a/resources/assets/js/pages/manage/messenger.vue b/resources/assets/js/pages/manage/messenger.vue index 5aaf50fc0..e450f7843 100644 --- a/resources/assets/js/pages/manage/messenger.vue +++ b/resources/assets/js/pages/manage/messenger.vue @@ -470,11 +470,11 @@ export default { dialog_id: this.topOperateItem.id, }, }).then(() => { - this.$store.dispatch("getDialogs"); - this.$Modal.remove(); + this.$store.dispatch("getDialogs").then(() => { + this.scrollIntoActive(true) + }); }).catch(({msg}) => { - $A.modalError(msg, 301); - this.$Modal.remove(); + $A.modalError(msg); }); } } diff --git a/resources/assets/js/store/actions.js b/resources/assets/js/store/actions.js index 3a66cf60f..eacbbad96 100644 --- a/resources/assets/js/store/actions.js +++ b/resources/assets/js/store/actions.js @@ -205,7 +205,7 @@ export default { */ getBasicData({dispatch}) { dispatch("getProjects").catch(() => {}); - dispatch("getDialogs"); + dispatch("getDialogs").catch(() => {}); dispatch("getTaskForDashboard"); }, @@ -1813,18 +1813,24 @@ export default { * 获取会话列表 * @param state * @param dispatch + * @returns {Promise} */ getDialogs({state, dispatch}) { - if (state.userId === 0) { - state.cacheDialogs = []; - return; - } - dispatch("call", { - url: 'dialog/lists', - }).then(result => { - dispatch("saveDialog", result.data.data); - }).catch(e => { - console.warn(e); + return new Promise(function (resolve, reject) { + if (state.userId === 0) { + state.cacheDialogs = []; + reject({msg: 'Parameter error'}); + return; + } + dispatch("call", { + url: 'dialog/lists', + }).then(result => { + dispatch("saveDialog", result.data.data); + resolve(result) + }).catch(e => { + console.warn(e); + reject(e) + }); }); },