12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- import { computed, ref } from 'vue'
- import { mount } from '../../utils/componentHelper'
- import { toRawType } from '../../utils/index'
- import Message from './message.vue'
- const types = ['success', 'warning', 'error']
- Message.use = function use(app) {
- const indexs = ref([])
- Message.show = function (config) {
- if (toRawType(config) === 'String') {
- config = { msg: config }
- }
- config.time = config.time || 3000
- config.type = types.includes(config.type) ? config.type : types[0]
- const instance = ref(null)
- const index = computed(() => (instance.value ? indexs.value.indexOf(instance) : 0))
- const hide = () => {
- instance.value.destroy()
- indexs.value = indexs.value.filter(i => i !== instance.value)
- }
- instance.value = mount(Message, {
- app,
- props: {
- ...config,
- index,
- destroy: hide,
- },
- })
- indexs.value.push(instance)
- }
- for (const type of types) {
- Message[type] = config => {
- if (toRawType(config) === 'String') {
- config = {
- msg: config,
- type,
- }
- }
- return Message.show(config)
- }
- }
- }
- export default Message
|