liveh5-nuxt/app/components/x-message/index.vue
xingyy 4ab0a5ca81 refactor(api): 重构 HTTP模块并优化错误处理
- 将 http.ts 重命名为 http.js
- 添加全局错误处理逻辑
- 更新 API 调用和错误处理方式
- 优化登录页面的验证码发送逻辑
- 调整消息组件的显示位置
2025-01-16 16:18:38 +08:00

47 lines
923 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-50px 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>