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 | 1 | <template> |
| 2 | 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 | 14 | </div> |
| 7 | 15 | </template> |
| 8 | 16 | <script> |
| 9 | 17 | export default { |
| 18 | + data () { | |
| 19 | + return { | |
| 20 | + modal1: false | |
| 21 | + } | |
| 22 | + }, | |
| 10 | 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 | 1 | <template> |
| 2 | 2 | <span> |
| 3 | - <transition name="fade"> | |
| 3 | + <transition :name="transitionNames[1]"> | |
| 4 | 4 | <div :class="maskClasses" v-show="visible" @click="mask"></div> |
| 5 | 5 | </transition> |
| 6 | 6 | <div :class="wrapClasses" @click="handleWrapClick"> |
| 7 | - <transition name="ease"> | |
| 7 | + <transition :name="transitionNames[0]"> | |
| 8 | 8 | <div :class="classes" :style="mainStyles" v-show="visible"> |
| 9 | 9 | <div :class="[prefixCls + '-content']"> |
| 10 | 10 | <a :class="[prefixCls + '-close']" v-if="closable" @click="close"> |
| ... | ... | @@ -82,6 +82,12 @@ |
| 82 | 82 | scrollable: { |
| 83 | 83 | type: Boolean, |
| 84 | 84 | default: false |
| 85 | + }, | |
| 86 | + transitionNames: { | |
| 87 | + type: Array, | |
| 88 | + default () { | |
| 89 | + return ['ease', 'fade']; | |
| 90 | + } | |
| 85 | 91 | } |
| 86 | 92 | }, |
| 87 | 93 | data () { | ... | ... |