2019-02-05 10:23:06 +00:00
|
|
|
<template>
|
2019-02-05 12:18:53 +00:00
|
|
|
<transition name="p-messages">
|
|
|
|
<div :class="containerClass" v-if="visible">
|
|
|
|
<div class="p-messages-wrapper">
|
|
|
|
<span :class="iconClass"></span>
|
|
|
|
<div class="p-messages-text">
|
|
|
|
<slot></slot>
|
|
|
|
</div>
|
|
|
|
<button class="p-messages-close p-link" @click="visible = false" v-if="closable">
|
|
|
|
<i class="p-messages-close-icon pi pi-times"></i>
|
|
|
|
</button>
|
|
|
|
</div>
|
2019-02-05 10:23:06 +00:00
|
|
|
</div>
|
2019-02-05 12:18:53 +00:00
|
|
|
</transition>
|
2019-02-05 10:23:06 +00:00
|
|
|
</template>
|
|
|
|
|
|
|
|
<script>
|
|
|
|
export default {
|
|
|
|
props: {
|
|
|
|
severity: {
|
|
|
|
type: String,
|
|
|
|
default: 'info'
|
|
|
|
},
|
|
|
|
closable: {
|
|
|
|
type: Boolean,
|
|
|
|
default: true
|
|
|
|
},
|
|
|
|
sticky: {
|
|
|
|
type: Boolean,
|
|
|
|
default: true
|
|
|
|
},
|
|
|
|
life: {
|
|
|
|
type: Number,
|
|
|
|
default: 3000
|
|
|
|
}
|
|
|
|
},
|
2019-02-05 12:18:53 +00:00
|
|
|
timeout: null,
|
|
|
|
data() {
|
|
|
|
return {
|
|
|
|
visible: true
|
|
|
|
}
|
|
|
|
},
|
|
|
|
mounted() {
|
|
|
|
if (!this.sticky) {
|
|
|
|
setTimeout(() => {
|
|
|
|
this.visible = false;
|
|
|
|
}, this.life);
|
|
|
|
}
|
|
|
|
},
|
2019-02-05 10:23:06 +00:00
|
|
|
computed: {
|
|
|
|
containerClass() {
|
|
|
|
return 'p-messages p-component p-messages-' + this.severity;
|
|
|
|
},
|
|
|
|
iconClass() {
|
|
|
|
return ['p-messages-icon pi', {
|
|
|
|
'pi-check': this.severity === 'info',
|
|
|
|
'pi-info-circle': this.severity === 'success',
|
|
|
|
'pi-exclamation-triangle': this.severity === 'warn',
|
2019-02-05 12:18:53 +00:00
|
|
|
'pi-times-circle': this.severity === 'error'
|
2019-02-05 10:23:06 +00:00
|
|
|
}];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
</script>
|
|
|
|
|
|
|
|
<style>
|
|
|
|
|
|
|
|
</style>
|