2018-03-26 16:04:04 +08:00
|
|
|
<template>
|
|
|
|
|
<div
|
|
|
|
|
class="md-agree"
|
|
|
|
|
:class="[
|
|
|
|
|
disabled ? 'disabled' : ''
|
|
|
|
|
]">
|
|
|
|
|
<div
|
2018-06-24 16:14:23 +08:00
|
|
|
class="md-agree-icon"
|
2018-03-26 16:04:04 +08:00
|
|
|
:class="[
|
|
|
|
|
value ? 'checked' : ''
|
|
|
|
|
]"
|
|
|
|
|
@click="$_onChange($event)">
|
|
|
|
|
<md-icon
|
|
|
|
|
:name="iconName"
|
|
|
|
|
:size="size"></md-icon>
|
|
|
|
|
</div>
|
2018-06-24 16:14:23 +08:00
|
|
|
<div class="md-agree-content">
|
|
|
|
|
<slot></slot>
|
|
|
|
|
</div>
|
2018-03-26 16:04:04 +08:00
|
|
|
</div>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script>
import Icon from '../icon'
|
|
|
|
|
export default {
|
|
|
|
|
name: 'md-agree',
|
|
|
|
|
|
|
|
|
|
components: {
|
|
|
|
|
[Icon.name]: Icon,
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
props: {
|
|
|
|
|
value: {
|
|
|
|
|
type: Boolean,
|
|
|
|
|
default: false,
|
|
|
|
|
},
|
|
|
|
|
disabled: {
|
|
|
|
|
type: Boolean,
|
|
|
|
|
default: false,
|
|
|
|
|
},
|
|
|
|
|
size: {
|
|
|
|
|
type: String,
|
|
|
|
|
default: 'md',
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
data() {
|
|
|
|
|
return {}
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
computed: {
|
|
|
|
|
iconName() {
|
|
|
|
|
return this.value ? 'circle-right' : 'circle'
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
methods: {
|
|
|
|
|
// MARK: events handler, 如 $_onButtonClick
|
|
|
|
|
$_onChange(event) {
|
|
|
|
|
if (this.disabled) {
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
|
this.$emit('input', !this.value)
|
|
|
|
|
this.$emit('change', event)
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style lang="stylus">
|
|
|
|
|
.md-agree
|
|
|
|
|
display flex
|
|
|
|
|
&.disabled
|
2018-06-05 18:34:40 +08:00
|
|
|
opacity agree-disabled-opacity
|
2018-06-24 16:14:23 +08:00
|
|
|
.md-agree-icon
|
2018-03-26 16:04:04 +08:00
|
|
|
margin-right 10px
|
2018-06-24 16:14:23 +08:00
|
|
|
flex-shrink 0
|
2018-03-26 16:04:04 +08:00
|
|
|
color agree-fill-inverse
|
|
|
|
|
&.checked
|
|
|
|
|
color agree-fill
|
2018-06-24 16:14:23 +08:00
|
|
|
.md-agree-content
|
|
|
|
|
flex 1 1 0%
|
2018-03-26 16:04:04 +08:00
|
|
|
</style>
|