62 lines
1.5 KiB
Vue
62 lines
1.5 KiB
Vue
|
<template>
|
||
|
<text :style="{ color: color, 'font-size': size + 'rpx' }" :class="{isTheme:isTheme}" class="lw-icons"
|
||
|
@click="_onClick">{{icons[icon]}}</text>
|
||
|
</template>
|
||
|
|
||
|
<script>
|
||
|
import icons from './icons.js';
|
||
|
// #ifdef APP-NVUE
|
||
|
var domModule = weex.requireModule('dom');
|
||
|
domModule.addRule('fontFace', {
|
||
|
'fontFamily': 'iconfont',
|
||
|
'src': 'url(\'https://at.alicdn.com/t/font_2294175_vq7ymlkpbtm.ttf\')',
|
||
|
});
|
||
|
// #endif
|
||
|
export default {
|
||
|
name: 'UniIcons',
|
||
|
props: {
|
||
|
icon: {
|
||
|
type: String,
|
||
|
default: ''
|
||
|
},
|
||
|
color: {
|
||
|
type: String,
|
||
|
default: '#333333'
|
||
|
},
|
||
|
size: {
|
||
|
type: [Number, String],
|
||
|
default: 50
|
||
|
},
|
||
|
isTheme: {
|
||
|
type: Boolean,
|
||
|
default: false
|
||
|
}
|
||
|
},
|
||
|
data() {
|
||
|
return {
|
||
|
icons: icons
|
||
|
}
|
||
|
},
|
||
|
methods: {
|
||
|
_onClick() {
|
||
|
this.$emit('click')
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
</script>
|
||
|
|
||
|
<style lang="scss" scoped>
|
||
|
/* #ifndef APP-NVUE */
|
||
|
@font-face {
|
||
|
font-family: iconfont;
|
||
|
src: url('https://at.alicdn.com/t/font_2294175_vq7ymlkpbtm.ttf')
|
||
|
}
|
||
|
|
||
|
/* #endif */
|
||
|
.lw-icons {
|
||
|
font-family: iconfont;
|
||
|
text-decoration: none;
|
||
|
text-align: center;
|
||
|
}
|
||
|
</style>
|