diff --git a/resources/assets/js/pages/manage/components/DialogWrapper.vue b/resources/assets/js/pages/manage/components/DialogWrapper.vue index 9f70e6465..4bf4f5fb7 100644 --- a/resources/assets/js/pages/manage/components/DialogWrapper.vue +++ b/resources/assets/js/pages/manage/components/DialogWrapper.vue @@ -1520,7 +1520,8 @@ export default { msg_id: this.msgId, msg_type: this.msgType, prev_id: this.prevId, - save_before: _ => this.scrollDisabled = true + save_before: _ => this.scrollDisabled = true, + save_after: _ => this.scrollDisabled = false }).then(({data}) => { const ids = data.list.map(item => item.id) this.$nextTick(() => { @@ -1534,7 +1535,7 @@ export default { offset -= 36 } this.onToOffset(offset) - this.scrollDisabled = false + setTimeout(_ => scroller.virtual.handleFront(), 10) }); }).catch(() => {}) }, diff --git a/resources/assets/js/store/actions.js b/resources/assets/js/store/actions.js index bb5c2dc0f..ad4bb4d89 100644 --- a/resources/assets/js/store/actions.js +++ b/resources/assets/js/store/actions.js @@ -2524,18 +2524,23 @@ export default { * @param state * @param dispatch * @param getters - * @param data {dialog_id, msg_id, ?msg_type, ?position_id, ?prev_id, ?next_id, ?save_before, ?clear_before, ?spinner} + * @param data {dialog_id, msg_id, ?msg_type, ?position_id, ?prev_id, ?next_id, ?save_before, ?save_after, ?clear_before, ?spinner} * @returns {Promise} */ getDialogMsgs({state, dispatch, getters}, data) { return new Promise((resolve, reject) => { let saveBefore = _ => {} + let saveAfter = _ => {} let clearBefore = false let spinner = false if (typeof data.save_before !== "undefined") { saveBefore = typeof data.save_before === "function" ? data.save_before : _ => {} delete data.save_before } + if (typeof data.save_after !== "undefined") { + saveAfter = typeof data.save_after === "function" ? data.save_after : _ => {} + delete data.save_after + } if (typeof data.clear_before !== "undefined") { clearBefore = typeof data.clear_before === "boolean" ? data.clear_before : false delete data.clear_before @@ -2582,6 +2587,7 @@ export default { // dispatch("saveDialogMsg", resData.list) resolve(result) + saveAfter() }).catch(e => { console.warn(e); reject(e) diff --git a/resources/assets/sass/pages/components/dialog-wrapper.scss b/resources/assets/sass/pages/components/dialog-wrapper.scss index b8f925bfd..8b5a163c9 100644 --- a/resources/assets/sass/pages/components/dialog-wrapper.scss +++ b/resources/assets/sass/pages/components/dialog-wrapper.scss @@ -1469,8 +1469,8 @@ } .dialog-wrapper-loading { - width: 10px; - height: 10px; + width: 8px; + height: 8px; border-radius: 50%; display: block; margin: 0 auto;