Files
2021-07-23 20:26:31 +03:00

240 lines
5.5 KiB
Vue
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<div>
<div class="page-row">
<div class="page-content">
<section class="mb-24">
<h1>Modal</h1>
<p class="text-dark">
Modal dialogs.
</p>
</section>
<a-divider />
<section class="mb-24" id="When-To-Use">
<h2>When To Use</h2>
<p>
When requiring users to interact with the application, but without jumping to a new page and interrupting
the users workflow, you can use <code>Modal</code> to create a new floating layer over the current page to get user
feedback or display information.
Additionally, if you need show a simple confirmation dialog, you can use <code>antd.Modal.confirm()</code>,
and so on.
</p>
</section>
<h2>Examples</h2>
<section class="mb-24" id="Basic">
<a-divider orientation="left">Basic</a-divider>
<p>
Basic modal.
</p>
<div class="showcase">
<a-button type="primary" @click="showModal">
Open Modal
</a-button>
<a-modal v-model="visible" title="Basic Modal" @ok="handleOk">
<p>Some contents...</p>
<p>Some contents...</p>
<p>Some contents...</p>
</a-modal>
</div>
<muse-snippet :code="codeSample"></muse-snippet>
</section>
<section class="mb-24" id="Information-modal-dialog">
<a-divider orientation="left">Information modal dialog</a-divider>
<p>
In the various types of information modal dialog, only one button to close dialog is provided.
</p>
<div class="showcase">
<a-button @click="info">
Info
</a-button>
<a-button @click="success">
Success
</a-button>
<a-button @click="error">
Error
</a-button>
<a-button @click="warning">
Warning
</a-button>
</div>
<muse-snippet :code="informationModalCode"></muse-snippet>
</section>
<p class="text-right font-semibold mb-24">
Looking for more Ant Design Vue Modal? Please check the
<a target="_blank" href="https://antdv.com/components/modal/">official docs</a>.
</p>
</div>
<muse-anchor :anchors="anchors"></muse-anchor>
</div>
</div>
</template>
<script>
export default {
head () {
return {
title: 'Modal | Muse Vue Ant Design Dashboard @ Creative Tim',
meta: [
{ hid: 'description', name: 'description', content: 'Modal dialogs.' }
]
}
},
data(){
return {
anchors: {
"When-To-Use": "When To Use",
"Basic": "Basic",
"Information-modal-dialog": "Information modal dialog",
},
ModalText: 'Content of the modal',
visible: false,
codeSample: `
<template>
<div>
<a-button type="primary" @click="showModal">
Open Modal
</a-button>
<a-modal v-model="visible" title="Basic Modal" @ok="handleOk">
<p>Some contents...</p>
<p>Some contents...</p>
<p>Some contents...</p>
</a-modal>
</div>
</template>
<script>
export default {
data() {
return {
visible: false,
};
},
methods: {
showModal() {
this.visible = true;
},
handleOk(e) {
console.log(e);
this.visible = false;
},
},
};
<\/script>`,
informationModalCode: `
<template>
<div>
<a-button @click="info">
Info
</a-button>
<a-button @click="success">
Success
</a-button>
<a-button @click="error">
Error
</a-button>
<a-button @click="warning">
Warning
</a-button>
</div>
</template>
<script>
import { Modal } from 'ant-design-vue';
export default {
methods: {
info() {
const h = this.$createElement;
this.$info({
title: 'This is a notification message',
content: h('div', {}, [
h('p', 'some messages...some messages...'),
h('p', 'some messages...some messages...'),
]),
onOk() {},
});
},
success() {
this.$success({
title: 'This is a success message',
// JSX support
content: (
<div>
<p>some messages...some messages...</p>
<p>some messages...some messages...</p>
</div>
),
});
},
error() {
this.$error({
title: 'This is an error message',
content: 'some messages...some messages...',
});
},
warning() {
this.$warning({
title: 'This is a warning message',
content: 'some messages...some messages...',
});
},
},
};
<\/script>`,
}
},
methods: {
showModal() {
this.visible = true;
},
handleCancel(e) {
this.visible = false;
},
info() {
this.$info({
title: 'This is a notification message',
// JSX support
content: (
<div>
<p class="mb-0">some messages...some messages...</p>
<p class="mb-0">some messages...some messages...</p>
</div>
),
});
},
success() {
this.$success({
title: 'This is a success message',
// JSX support
content: (
<div>
<p class="mb-0">some messages...some messages...</p>
<p class="mb-0">some messages...some messages...</p>
</div>
),
});
},
error() {
this.$error({
title: 'This is an error message',
content: 'some messages...some messages...',
});
},
warning() {
this.$warning({
title: 'This is a warning message',
content: 'some messages...some messages...',
});
},
}
}
</script>
<style lang="scss" scoped>
</style>