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 () { |