介绍
本文档主要用于描述 ShadcnModal
组件的一些特性和用法。
用法
查看代码
vue
<template>
<ShadcnButton @click="modal = true">Click</ShadcnButton>
<ShadcnModal v-model="modal" title="Modal Title" description="This is a modal description">
<div class="flex items-center justify-center h-32">Content</div>
</ShadcnModal>
</template>
<script setup lang="ts">
import { ref } from 'vue';
const modal = ref(false);
</script>
无标题 (no-title)
查看代码
vue
<template>
<ShadcnButton @click="modal = true">Click</ShadcnButton>
<ShadcnModal v-model="modal">
<div class="flex items-center justify-center h-32">Content</div>
</ShadcnModal>
</template>
<script setup lang="ts">
import { ref } from 'vue';
const modal = ref(false);
</script>
标题 (title)
查看代码
vue
<template>
<ShadcnButton @click="modal = true">Click</ShadcnButton>
<ShadcnModal v-model="modal">
<template #title>Custom Title</template>
<div class="flex items-center justify-center h-32">Content</div>
</ShadcnModal>
</template>
<script setup lang="ts">
import { ref } from 'vue';
const modal = ref(false);
</script>
底部 (footer)
查看代码
vue
<template>
<ShadcnButton @click="modal = true">Click</ShadcnButton>
<ShadcnModal v-model="modal" title="Custom Footer">
<div class="flex items-center justify-center h-32">Content</div>
<template #footer>This is a footer</template>
</ShadcnModal>
</template>
<script setup lang="ts">
import { ref } from 'vue';
const modal = ref(false);
</script>
内容 (content)
查看代码
vue
<template>
<ShadcnButton @click="modal = true">Click</ShadcnButton>
<ShadcnModal v-model="modal" title="Custom Content">
<template #content>Custom Content</template>
</ShadcnModal>
</template>
<script setup lang="ts">
import { ref } from 'vue';
const modal = ref(false);
</script>
宽度 (width)
查看代码
vue
<template>
<ShadcnButton @click="modal = true">Click</ShadcnButton>
<ShadcnModal v-model="modal" title="Custom Width" width="200">
<div class="flex items-center justify-center h-32">Content</div>
</ShadcnModal>
</template>
<script setup lang="ts">
import { ref } from 'vue';
const modal = ref(false);
</script>
高度 (height)
查看代码
vue
<template>
<ShadcnButton @click="modal = true">Click</ShadcnButton>
<ShadcnModal v-model="modal" title="Custom Height" height="200">
<div class="flex items-center justify-center h-32">Content</div>
</ShadcnModal>
</template>
<script setup lang="ts">
import { ref } from 'vue';
const modal = ref(false);
</script>
可关闭 (closeable)
查看代码
vue
<template>
<ShadcnButton @click="closeableModal = true">Closeable</ShadcnButton>
<ShadcnModal v-model="closeableModal" title="Closeable" closable>
<div class="flex items-center justify-center h-32">Content</div>
</ShadcnModal>
<ShadcnButton @click="noClosableModal = true">No Closeable</ShadcnButton>
<ShadcnModal v-model="noClosableModal" title="Not Closeable" :closable="false">
<div class="flex items-center justify-center h-32">Content</div>
</ShadcnModal>
<ShadcnButton @click="customClosableModal = true">Custom Closable</ShadcnButton>
<ShadcnModal v-model="customClosableModal" title="Custom Closable">
<template #close>Custom Close</template>
<div class="flex items-center justify-center h-32">Content</div>
</ShadcnModal>
</template>
<script setup lang="ts">
import { ref } from 'vue';
const closeableModal = ref(false);
const noClosableModal = ref(false);
const customClosableModal = ref(false);
</script>
背景关闭 (mask-closable)
查看代码
vue
<template>
<ShadcnButton @click="value = true">Mask Closable</ShadcnButton>
<ShadcnModal v-model="value" title="Mask Closable" :mask-closable="false">
<div class="flex items-center justify-center h-32">Content</div>
</ShadcnModal>
</template>
<script setup lang="ts">
import { ref } from 'vue';
const value = ref(false);
</script>