vant/packages/dialog/dialog.vue
neverland 83f9654681
[Improvement] optimize staticClass (#337)
* fix: Tabbar icon line-height

* [new feature] progress add showPivot prop

* [new feature] TabItem support vue-router

* [new feature] update document header style

* [Doc] add toast english ducoment

* [bugfix] Search box-sizing wrong

* [Doc] update vant-demo respo

* [Doc] translate theme & demo pages

* [Doc] add Internationalization document

* [bugfix] remove unnecessary props

* [fix] optimize clickoutside

* [new feature] optimize find-parent

* [new feature]: change document title accordinng to language

* [new feature] Pagination code review

* [improvement] adjust icon-font unicode

* [improvement] Icon spinner color inherit

* [improvement] icon default width

* [bugfix] DateTimePicker validate date props

* [bugfix] Tab item text ellipsis

* [improvement] optimize single line ellipsis

* [Improvement] optimzie staticClass
2017-11-22 10:51:01 +08:00

81 lines
1.9 KiB
Vue

<template>
<transition name="van-dialog-bounce">
<div class="van-dialog" v-show="value">
<div class="van-dialog__header" v-if="title" v-text="title" />
<div class="van-dialog__content van-hairline">
<slot>
<div class="van-dialog__message" v-if="message" :class="{ 'van-dialog__message--withtitle': title }" v-html="message" />
</slot>
</div>
<div class="van-dialog__footer" :class="{ 'is-twobtn': showCancelButton && showConfirmButton }">
<van-button
size="large"
class="van-dialog__cancel"
v-show="showCancelButton"
@click="handleAction('cancel')"
>
{{ cancelButtonText || $t('cancel') }}
</van-button>
<van-button
size="large"
class="van-dialog__confirm"
:class="{ 'van-hairline--left': showCancelButton && showConfirmButton }"
v-show="showConfirmButton"
@click="handleAction('confirm')"
>
{{ confirmButtonText || $t('confirm') }}
</van-button>
</div>
</div>
</transition>
</template>
<script>
import Button from '../button';
import Popup from '../mixins/popup';
import { i18n } from '../locale';
export default {
name: 'van-dialog',
components: {
[Button.name]: Button
},
mixins: [Popup, i18n],
props: {
title: String,
message: String,
callback: Function,
confirmButtonText: String,
cancelButtonText: String,
showConfirmButton: {
type: Boolean,
default: true
},
showCancelButton: {
type: Boolean,
default: false
},
overlay: {
default: true
},
closeOnClickOverlay: {
default: false
},
lockOnScroll: {
default: true
}
},
methods: {
handleAction(action) {
this.$emit('input', false);
this.$emit(action);
this.callback && this.callback(action);
}
}
};
</script>