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 }
})