diff --git a/src/platforms/app-plus-nvue/runtime/components/icon.js b/src/platforms/app-plus-nvue/runtime/components/icon.js new file mode 100644 index 0000000000000000000000000000000000000000..e4aa14d2a1718cea1f3553eb5f3b35836a500312 --- /dev/null +++ b/src/platforms/app-plus-nvue/runtime/components/icon.js @@ -0,0 +1,86 @@ +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)) +}