vue使用elementPlus ui框架,如何给Dialog 对话框添加Loading 自定义类名显示隐藏
在Vue中使用Element Plus UI框架时,可以通过v-loading
指令来给Dialog
对话框添加自定义类名的Loading效果。以下是一个简单的示例:
首先,确保你已经安装并正确导入了Element Plus。
// 安装Element Plus
npm install element-plus --save
// 在main.js中导入Element Plus
import { createApp } from 'vue'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import App from './App.vue'
const app = createApp(App)
app.use(ElementPlus)
app.mount('#app')
然后,在你的组件中,可以这样使用Dialog
和v-loading
指令:
<template>
<el-button @click="dialogVisible = true">打开对话框</el-button>
<el-dialog
:visible.sync="dialogVisible"
:append-to-body="true"
custom-class="my-dialog"
>
<template #title>
<div class="dialog-title">
对话框标题
<el-button
type="text"
class="dialog-close-btn"
@click="dialogVisible = false"
>
X
</el-button>
</div>
</template>
<div v-loading.fullscreen.lock="isLoading" class="dialog-content">
对话框内容
</div>
</el-dialog>
</template>
<script>
import { ref } from 'vue'
export default {
setup() {
const dialogVisible = ref(false)
const isLoading = ref(true)
// 模拟加载数据的异步操作
setTimeout(() => {
isLoading.value = false
}, 3000)
return { dialogVisible, isLoading }
}
}
</script>
<style>
.my-dialog .dialog-title {
display: flex;
justify-content: space-between;
align-items: center;
}
.my-dialog .dialog-close-btn {
font-size: 16px;
}
.dialog-content {
min-height: 150px;
}
</style>
在这个示例中,我们创建了一个带有关闭按钮的自定义标题,并通过.sync
修饰符绑定了dialogVisible
来控制对话框的显示。v-loading
指令绑定到对话框的内容区域,并通过isLoading
变量控制全屏遮罩的显示。当isLoading
为true
时,显示Loading效果,数据加载完毕后,将其设置为false
,Loading效果消失。
注意,这里使用了.fullscreen.lock
修饰符来应用全屏的Loading遮罩,并且通过自定义的my-dialog
类来调整对话框的样式。你可以根据需要调整样式和逻辑。
评论已关闭