liveh5-nuxt/app/components/x-message/index.vue
xingyy 525cec428f feat(layout): 重构首页布局并添加新功能
- 重写首页模板,使用新的拍卖列表组件
- 添加下拉刷新和加载更多功能
- 新增拍卖说明页面
- 使用自定义图标替换默认图标
- 优化消息提示组件
2025-01-09 19:01:35 +08:00

48 lines
924 B
Vue

<script setup>
import MessageContent from './message/index.vue'
import { ref } from 'vue'
const visible = ref(false)
const messageText = ref('')
const messageType = ref('')
const emit = defineEmits(['after-leave'])
const showMessage = ({ type = 'warning', message, duration = 2000 }) => {
messageText.value = message
messageType.value = type
visible.value = true
setTimeout(() => {
visible.value = false
}, duration)
}
defineExpose({ showMessage })
</script>
<template>
<transition
name="fade"
@after-leave="$emit('after-leave')"
>
<MessageContent
v-if="visible"
:text="messageText"
:type="messageType"
class="fixed top-20px left-1/2 -translate-x-1/2 z-9999"
/>
</transition>
</template>
<style lang="scss" scoped>
.fade-enter-active,
.fade-leave-active {
transition: opacity 0.2s ease;
}
.fade-enter-from,
.fade-leave-to {
opacity: 0;
}
</style>