未验证 提交 7ecb45dd 编写于 作者: 张磊 提交者: GitHub

Create icon.js

add icon component.
上级 98645682
const iconChars = {
'success': '\uEA06',
'info': '\uEA03',
'warn': '\uEA0B',
'waiting': '\uEA09',
'safe_success': '\uEA04',
'safe_warn': '\uEA05',
'success_circle': '\uEA07',
'success_no_circle': '\uEA08',
'waiting_circle': '\uEA0A',
'circle': '\uEA01',
'download': '\uEA02',
'info_circle': '\uEA0C',
'cancel': '\uEA0D',
'search': '\uEA0E',
'clear': '\uEA0F'
}
// 测试中发现通过动态绑定 class 来设置样式没生效,暂时这样列出来通过 style 来处理。
const iconColors = {
'success': '#09bb07',
'info': '#10aeff',
'warn': '#f76260',
'waiting': '#10aeff',
'safe_success': '#09bb07',
'safe_warn': '#ffbe00',
'success_circle': '#09bb07',
'success_no_circle': '#09bb07',
'waiting_circle': '#10aeff',
'circle': '#c9c9c9',
'download': '#09bb07',
'info_circle': '#09bb07',
'cancel': '#f43530',
'search': '#b2b2b2',
'clear': '#b2b2b2'
}
function getIcon (weex) {
return {
name: 'Icon',
props: {
type: {
type: String,
default: ''
},
size: {
type: [String, Number],
default: 23
},
color: {
type: String,
default: ''
}
},
data () {
return {
iconChars
}
},
beforeCreate () {
},
computed: {
styles () {
return {
color: this.color || iconColors[this.type],
fontSize: this.size
}
}
},
render (createElement) {
const _vm = this
return createElement('u-text', _vm._g({
staticClass: ['uni-icon'],
style: _vm.styles
}, _vm.$listeners), [_vm.iconChars[_vm.type]])
},
style: {
'uni-icon': {
'fontFamily': 'unincomponents'
}
}
}
}
export default function init (Vue, weex) {
Vue.component('icon', getIcon(weex))
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册