优化消息弹窗交互

This commit is contained in:
GoEdgeLab
2021-09-18 11:02:23 +08:00
parent c5debefa8e
commit cde964fe82
2 changed files with 46 additions and 36 deletions

View File

@@ -1,5 +1,5 @@
Vue.component("message-row", { Vue.component("message-row", {
props: ["v-message"], props: ["v-message", "v-can-close"],
data: function () { data: function () {
let paramsJSON = this.vMessage.params let paramsJSON = this.vMessage.params
let params = null let params = null
@@ -9,7 +9,8 @@ Vue.component("message-row", {
return { return {
message: this.vMessage, message: this.vMessage,
params: params params: params,
isClosing: false
} }
}, },
methods: { methods: {
@@ -20,6 +21,8 @@ Vue.component("message-row", {
}) })
}, },
readMessage: function (messageId) { readMessage: function (messageId) {
let that = this
Tea.action("/messages/readPage") Tea.action("/messages/readPage")
.params({"messageIds": [messageId]}) .params({"messageIds": [messageId]})
.post() .post()
@@ -30,12 +33,19 @@ Vue.component("message-row", {
} }
// 刷新当前页面 // 刷新当前页面
if (that.vCanClose && typeof (NotifyPopup) != "undefined") {
that.isClosing = true
setTimeout(function () {
NotifyPopup({})
}, 1000)
} else {
teaweb.reload() teaweb.reload()
}
}) })
} }
}, },
template: `<div> template: `<div>
<table class="ui table selectable"> <table class="ui table selectable" v-if="!isClosing">
<tr :class="{error: message.level == 'error', positive: message.level == 'success', warning: message.level == 'warning'}"> <tr :class="{error: message.level == 'error', positive: message.level == 'success', warning: message.level == 'warning'}">
<td style="position: relative"> <td style="position: relative">
<strong>{{message.datetime}}</strong> <strong>{{message.datetime}}</strong>

View File

@@ -8,6 +8,6 @@
<p class="comment" v-if="messages.length == 0">暂时还没有消息。</p> <p class="comment" v-if="messages.length == 0">暂时还没有消息。</p>
<message-row v-for="message in messages" :v-message="message" :key="message.id"></message-row> <message-row v-for="message in messages" :v-message="message" :key="message.id" :v-can-close="messages.length == 1"></message-row>
<div class="page" v-html="page"></div> <div class="page" v-html="page"></div>