Commit 672a2805ef8bf83031e25e7fcbc49df0a844abe5
1 parent
c2db4f92
fixed #505
Showing
2 changed files
with
28 additions
and
36 deletions
Show diff stats
examples/routers/modal.vue
1 | <template> | 1 | <template> |
2 | <div> | 2 | <div> |
3 | - <Button @click="confirm">标准</Button> | ||
4 | - <Button @click="custom">自定义按钮文字</Button> | ||
5 | - <Button @click="async">异步关闭</Button> | 3 | + <Button type="primary" @click="modal1 = true">显示对话框</Button> |
4 | + <Modal | ||
5 | + v-model="modal1" | ||
6 | + title="普通的Modal对话框标题" | ||
7 | + :transition-names="['slide-up', 'ease']" | ||
8 | + @on-ok="ok" | ||
9 | + @on-cancel="cancel"> | ||
10 | + <p>对话框内容</p> | ||
11 | + <p>对话框内容</p> | ||
12 | + <p>对话框内容</p> | ||
13 | + </Modal> | ||
6 | </div> | 14 | </div> |
7 | </template> | 15 | </template> |
8 | <script> | 16 | <script> |
9 | export default { | 17 | export default { |
18 | + data () { | ||
19 | + return { | ||
20 | + modal1: false | ||
21 | + } | ||
22 | + }, | ||
10 | methods: { | 23 | methods: { |
11 | - confirm () { | ||
12 | - this.$Modal.confirm({ | ||
13 | - title: '确认对话框标题', | ||
14 | - content: '<p>一些对话框内容</p><p>一些对话框内容</p>', | ||
15 | - onOk: () => { | ||
16 | - this.$Message.info('点击了确定'); | ||
17 | - }, | ||
18 | - onCancel: () => { | ||
19 | - this.$Message.info('点击了取消'); | ||
20 | - } | ||
21 | - }); | ||
22 | - }, | ||
23 | - custom () { | ||
24 | - this.$Modal.confirm({ | ||
25 | - title: '确认对话框标题', | ||
26 | - content: '<p>一些对话框内容</p><p>一些对话框内容</p>', | ||
27 | - okText: 'OK', | ||
28 | - cancelText: 'Cancel' | ||
29 | - }); | 24 | + ok () { |
25 | + this.$Message.info('点击了确定'); | ||
30 | }, | 26 | }, |
31 | - async () { | ||
32 | - this.$Modal.confirm({ | ||
33 | - title: '确认对话框标题', | ||
34 | - content: '<p>对话框将在 2秒 后关闭</p>', | ||
35 | - loading: true, | ||
36 | - onOk: () => { | ||
37 | - setTimeout(() => { | ||
38 | - this.$Modal.remove(); | ||
39 | - this.$Message.info('异步关闭了对话框'); | ||
40 | - }, 2000); | ||
41 | - } | ||
42 | - }); | 27 | + cancel () { |
28 | + this.$Message.info('点击了取消'); | ||
43 | } | 29 | } |
44 | } | 30 | } |
45 | } | 31 | } |
src/components/modal/modal.vue
1 | <template> | 1 | <template> |
2 | <span> | 2 | <span> |
3 | - <transition name="fade"> | 3 | + <transition :name="transitionNames[1]"> |
4 | <div :class="maskClasses" v-show="visible" @click="mask"></div> | 4 | <div :class="maskClasses" v-show="visible" @click="mask"></div> |
5 | </transition> | 5 | </transition> |
6 | <div :class="wrapClasses" @click="handleWrapClick"> | 6 | <div :class="wrapClasses" @click="handleWrapClick"> |
7 | - <transition name="ease"> | 7 | + <transition :name="transitionNames[0]"> |
8 | <div :class="classes" :style="mainStyles" v-show="visible"> | 8 | <div :class="classes" :style="mainStyles" v-show="visible"> |
9 | <div :class="[prefixCls + '-content']"> | 9 | <div :class="[prefixCls + '-content']"> |
10 | <a :class="[prefixCls + '-close']" v-if="closable" @click="close"> | 10 | <a :class="[prefixCls + '-close']" v-if="closable" @click="close"> |
@@ -82,6 +82,12 @@ | @@ -82,6 +82,12 @@ | ||
82 | scrollable: { | 82 | scrollable: { |
83 | type: Boolean, | 83 | type: Boolean, |
84 | default: false | 84 | default: false |
85 | + }, | ||
86 | + transitionNames: { | ||
87 | + type: Array, | ||
88 | + default () { | ||
89 | + return ['ease', 'fade']; | ||
90 | + } | ||
85 | } | 91 | } |
86 | }, | 92 | }, |
87 | data () { | 93 | data () { |