42 lines
669 B
Vue
42 lines
669 B
Vue
|
<template>
|
||
|
<view class="m-icon" :class="['m-icon-'+type]" :style="{color:color,'font-size':fontSize}" @click="onClick()"></view>
|
||
|
</template>
|
||
|
|
||
|
<script>
|
||
|
export default {
|
||
|
props: {
|
||
|
/**
|
||
|
* 图标类型
|
||
|
*/
|
||
|
type: String,
|
||
|
/**
|
||
|
* 图标颜色
|
||
|
*/
|
||
|
color: String,
|
||
|
/**
|
||
|
* 图标大小
|
||
|
*/
|
||
|
size: {
|
||
|
type: [Number, String],
|
||
|
default: 24
|
||
|
}
|
||
|
},
|
||
|
computed: {
|
||
|
fontSize() {
|
||
|
var size = Number(this.size)
|
||
|
size = isNaN(size) ? 24 : size
|
||
|
return `${size}px`
|
||
|
}
|
||
|
},
|
||
|
methods: {
|
||
|
onClick() {
|
||
|
this.$emit('click')
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
</script>
|
||
|
|
||
|
<style>
|
||
|
@import "./m-icon.css";
|
||
|
</style>
|