From 7ecb45ddc1e5876dc3b8c2e697485094f0c4bc3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=BC=A0=E7=A3=8A?= <1633537611@qq.com> Date: Thu, 8 Aug 2019 15:30:18 +0800 Subject: [PATCH] Create icon.js add icon component. --- .../app-plus-nvue/runtime/components/icon.js | 86 +++++++++++++++++++ 1 file changed, 86 insertions(+) create mode 100644 src/platforms/app-plus-nvue/runtime/components/icon.js 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 000000000..e4aa14d2a --- /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)) +} -- GitLab