File size: 586 Bytes
8ede856 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | import { defineStore } from 'pinia'
import { ref, computed } from 'vue'
export const useToastStore = defineStore('toast', () => {
const queue = ref([])
const current = computed(() => queue.value[0])
function add({
message,
color = 'info', // Vuetify 颜色
timeout = 3000,
closable = true,
multiLine = false,
location = 'top center'
}) {
queue.value.push({
message,
color,
timeout,
closable,
multiLine,
location
})
}
function shift() {
queue.value.shift()
}
return { current, add, shift }
})
|