Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
DCloud
hello uni-app x
提交
a6700de3
H
hello uni-app x
项目概览
DCloud
/
hello uni-app x
通知
5995
Star
90
Fork
162
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
18
列表
看板
标记
里程碑
合并请求
1
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
H
hello uni-app x
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
18
Issue
18
列表
看板
标记
里程碑
合并请求
1
合并请求
1
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
a6700de3
编写于
1月 12, 2024
作者:
M
mehaotian
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix: 修改 uni-icons 兼容问题
上级
4783369e
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
223 addition
and
221 deletion
+223
-221
uni_modules/uni-icons/changelog.md
uni_modules/uni-icons/changelog.md
+2
-0
uni_modules/uni-icons/components/uni-icons/uni-icons.uvue
uni_modules/uni-icons/components/uni-icons/uni-icons.uvue
+90
-90
uni_modules/uni-icons/components/uni-icons/uni-icons.vue
uni_modules/uni-icons/components/uni-icons/uni-icons.vue
+109
-109
uni_modules/uni-icons/components/uni-icons/uniicons_file.ts
uni_modules/uni-icons/components/uni-icons/uniicons_file.ts
+18
-18
uni_modules/uni-icons/components/uni-icons/uniicons_file_vue.js
...dules/uni-icons/components/uni-icons/uniicons_file_vue.js
+3
-3
uni_modules/uni-icons/package.json
uni_modules/uni-icons/package.json
+1
-1
未找到文件。
uni_modules/uni-icons/changelog.md
浏览文件 @
a6700de3
## 2.0.9(2024-01-12)
fix: 修复图标大小默认值错误的问题
## 2.0.8(2023-12-14)
-
修复 项目未使用 ts 情况下,打包报错的bug
## 2.0.7(2023-12-14)
...
...
uni_modules/uni-icons/components/uni-icons/uni-icons.uvue
浏览文件 @
a6700de3
<template>
<text class="uni-icons" :style="styleObj">
<slot>{{unicode}}</slot>
</text>
</template>
<script>
import { fontData, IconsDataItem } from './uniicons_file'
/**
* Icons 图标
* @description 用于展示 icon 图标
* @tutorial https://ext.dcloud.net.cn/plugin?id=28
* @property {Number} size 图标大小
* @property {String} type 图标图案,参考示例
* @property {String} color 图标颜色
* @property {String} customPrefix 自定义图标
* @event {Function} click 点击 Icon 触发事件
*/
export default {
name: "uni-icons",
props: {
type: {
type: String,
default: ''
},
color: {
type: String,
default: '#333333'
},
size: {
type: Object,
default:
24
},
fontFamily: {
type: String,
default: ''
}
},
data() {
return {};
},
computed: {
unicode() : string {
let codes = fontData.find((item : IconsDataItem) : boolean => { return item.font_class == this.type })
if (codes !== null) {
return codes.unicode
}
return ''
},
iconSize() : string {
const size = this.size
if (typeof size == 'string') {
const reg = /^[0-9]*$/g
return reg.test(size as string) ? '' + size + 'px' : '' + size;
// return '' + this.size
}
return this.getFontSize(size as number)
},
styleObj() : UTSJSONObject {
if (this.fontFamily !== '') {
return { color: this.color, fontSize: this.iconSize, fontFamily: this.fontFamily }
}
return { color: this.color, fontSize: this.iconSize }
}
},
created() { },
methods: {
/**
* 字体大小
*/
getFontSize(size : number) : string {
return size + 'px';
},
},
}
</script>
<style scoped>
@font-face {
font-family: UniIconsFontFamily;
src: url('./uniicons.ttf');
}
.uni-icons {
font-family: UniIconsFontFamily;
font-size: 18px;
font-style: normal;
color: #333;
}
<template>
<text class="uni-icons" :style="styleObj">
<slot>{{unicode}}</slot>
</text>
</template>
<script>
import { fontData, IconsDataItem } from './uniicons_file'
/**
* Icons 图标
* @description 用于展示 icon 图标
* @tutorial https://ext.dcloud.net.cn/plugin?id=28
* @property {Number} size 图标大小
* @property {String} type 图标图案,参考示例
* @property {String} color 图标颜色
* @property {String} customPrefix 自定义图标
* @event {Function} click 点击 Icon 触发事件
*/
export default {
name: "uni-icons",
props: {
type: {
type: String,
default: ''
},
color: {
type: String,
default: '#333333'
},
size: {
type: Object,
default:
16
},
fontFamily: {
type: String,
default: ''
}
},
data() {
return {};
},
computed: {
unicode() : string {
let codes = fontData.find((item : IconsDataItem) : boolean => { return item.font_class == this.type })
if (codes !== null) {
return codes.unicode
}
return ''
},
iconSize() : string {
const size = this.size
if (typeof size == 'string') {
const reg = /^[0-9]*$/g
return reg.test(size as string) ? '' + size + 'px' : '' + size;
// return '' + this.size
}
return this.getFontSize(size as number)
},
styleObj() : UTSJSONObject {
if (this.fontFamily !== '') {
return { color: this.color, fontSize: this.iconSize, fontFamily: this.fontFamily }
}
return { color: this.color, fontSize: this.iconSize }
}
},
created() { },
methods: {
/**
* 字体大小
*/
getFontSize(size : number) : string {
return size + 'px';
},
},
}
</script>
<style scoped>
@font-face {
font-family: UniIconsFontFamily;
src: url('./uniicons.ttf');
}
.uni-icons {
font-family: UniIconsFontFamily;
font-size: 18px;
font-style: normal;
color: #333;
}
</style>
uni_modules/uni-icons/components/uni-icons/uni-icons.vue
浏览文件 @
a6700de3
<
template
>
<!-- #ifdef APP-NVUE -->
<text
:style=
"styleObj"
class=
"uni-icons"
@
click=
"_onClick"
>
{{
unicode
}}
</text>
<!-- #endif -->
<!-- #ifndef APP-NVUE -->
<text
:style=
"styleObj"
class=
"uni-icons"
:class=
"['uniui-'+type,customPrefix,customPrefix?type:'']"
@
click=
"_onClick"
>
<slot></slot>
</text>
<!-- #endif -->
</
template
>
<
script
>
import
{
fontData
}
from
'
./uniicons_file_vue.js
'
;
const
getVal
=
(
val
)
=>
{
const
reg
=
/^
[
0-9
]
*$/g
return
(
typeof
val
===
'
number
'
||
reg
.
test
(
val
))
?
val
+
'
px
'
:
val
;
}
// #ifdef APP-NVUE
var
domModule
=
weex
.
requireModule
(
'
dom
'
);
import
iconUrl
from
'
./uniicons.ttf
'
domModule
.
addRule
(
'
fontFace
'
,
{
'
fontFamily
'
:
"
uniicons
"
,
'
src
'
:
"
url('
"
+
iconUrl
+
"
')
"
});
// #endif
/**
* Icons 图标
* @description 用于展示 icons 图标
* @tutorial https://ext.dcloud.net.cn/plugin?id=28
* @property {Number} size 图标大小
* @property {String} type 图标图案,参考示例
* @property {String} color 图标颜色
* @property {String} customPrefix 自定义图标
* @event {Function} click 点击 Icon 触发事件
*/
export
default
{
name
:
'
UniIcons
'
,
emits
:
[
'
click
'
],
props
:
{
type
:
{
type
:
String
,
default
:
''
},
color
:
{
type
:
String
,
default
:
'
#333333
'
},
size
:
{
type
:
[
Number
,
String
],
default
:
24
},
customPrefix
:
{
type
:
String
,
default
:
''
},
fontFamily
:
{
type
:
String
,
default
:
''
}
},
data
()
{
return
{
icons
:
fontData
}
},
computed
:
{
unicode
()
{
let
code
=
this
.
icons
.
find
(
v
=>
v
.
font_class
===
this
.
type
)
if
(
code
)
{
return
code
.
unicode
}
return
''
},
iconSize
()
{
return
getVal
(
this
.
size
)
},
styleObj
()
{
if
(
this
.
fontFamily
!==
''
)
{
return
`color:
${
this
.
color
}
; font-size:
${
this
.
iconSize
}
; font-family:
${
this
.
fontFamily
}
;`
}
return
`color:
${
this
.
color
}
; font-size:
${
this
.
iconSize
}
;`
}
},
methods
:
{
_onClick
()
{
this
.
$emit
(
'
click
'
)
}
}
}
</
script
>
<
style
lang=
"scss"
>
/* #ifndef APP-NVUE */
@import
'./uniicons.css'
;
@font-face
{
font-family
:
uniicons
;
src
:
url('./uniicons.ttf')
;
}
/* #endif */
.uni-icons
{
font-family
:
uniicons
;
text-decoration
:
none
;
text-align
:
center
;
}
<
template
>
<!-- #ifdef APP-NVUE -->
<text
:style=
"styleObj"
class=
"uni-icons"
@
click=
"_onClick"
>
{{
unicode
}}
</text>
<!-- #endif -->
<!-- #ifndef APP-NVUE -->
<text
:style=
"styleObj"
class=
"uni-icons"
:class=
"['uniui-'+type,customPrefix,customPrefix?type:'']"
@
click=
"_onClick"
>
<slot></slot>
</text>
<!-- #endif -->
</
template
>
<
script
>
import
{
fontData
}
from
'
./uniicons_file_vue.js
'
;
const
getVal
=
(
val
)
=>
{
const
reg
=
/^
[
0-9
]
*$/g
return
(
typeof
val
===
'
number
'
||
reg
.
test
(
val
))
?
val
+
'
px
'
:
val
;
}
// #ifdef APP-NVUE
var
domModule
=
weex
.
requireModule
(
'
dom
'
);
import
iconUrl
from
'
./uniicons.ttf
'
domModule
.
addRule
(
'
fontFace
'
,
{
'
fontFamily
'
:
"
uniicons
"
,
'
src
'
:
"
url('
"
+
iconUrl
+
"
')
"
});
// #endif
/**
* Icons 图标
* @description 用于展示 icons 图标
* @tutorial https://ext.dcloud.net.cn/plugin?id=28
* @property {Number} size 图标大小
* @property {String} type 图标图案,参考示例
* @property {String} color 图标颜色
* @property {String} customPrefix 自定义图标
* @event {Function} click 点击 Icon 触发事件
*/
export
default
{
name
:
'
UniIcons
'
,
emits
:
[
'
click
'
],
props
:
{
type
:
{
type
:
String
,
default
:
''
},
color
:
{
type
:
String
,
default
:
'
#333333
'
},
size
:
{
type
:
[
Number
,
String
],
default
:
16
},
customPrefix
:
{
type
:
String
,
default
:
''
},
fontFamily
:
{
type
:
String
,
default
:
''
}
},
data
()
{
return
{
icons
:
fontData
}
},
computed
:
{
unicode
()
{
let
code
=
this
.
icons
.
find
(
v
=>
v
.
font_class
===
this
.
type
)
if
(
code
)
{
return
code
.
unicode
}
return
''
},
iconSize
()
{
return
getVal
(
this
.
size
)
},
styleObj
()
{
if
(
this
.
fontFamily
!==
''
)
{
return
`color:
${
this
.
color
}
; font-size:
${
this
.
iconSize
}
; font-family:
${
this
.
fontFamily
}
;`
}
return
`color:
${
this
.
color
}
; font-size:
${
this
.
iconSize
}
;`
}
},
methods
:
{
_onClick
()
{
this
.
$emit
(
'
click
'
)
}
}
}
</
script
>
<
style
lang=
"scss"
>
/* #ifndef APP-NVUE */
@import
'./uniicons.css'
;
@font-face
{
font-family
:
uniicons
;
src
:
url('./uniicons.ttf')
;
}
/* #endif */
.uni-icons
{
font-family
:
uniicons
;
text-decoration
:
none
;
text-align
:
center
;
}
</
style
>
uni_modules/uni-icons/components/uni-icons/uniicons_file.ts
浏览文件 @
a6700de3
export
type
IconsData
=
{
id
:
string
name
:
string
font_family
:
string
css_prefix_text
:
string
description
:
string
glyphs
:
Array
<
IconsDataItem
>
}
export
type
IconsDataItem
=
{
font_class
:
string
unicode
:
string
}
export
type
IconsData
=
{
id
:
string
name
:
string
font_family
:
string
css_prefix_text
:
string
description
:
string
glyphs
:
Array
<
IconsDataItem
>
}
export
type
IconsDataItem
=
{
font_class
:
string
unicode
:
string
}
export
const
fontData
=
[
{
"
font_class
"
:
"
arrow-down
"
,
...
...
@@ -659,6 +659,6 @@ export const fontData = [
"
font_class
"
:
"
weixin
"
,
"
unicode
"
:
"
\
ue691
"
}
]
as
IconsDataItem
[]
]
as
IconsDataItem
[]
// export const fontData = JSON.parse<IconsDataItem>(fontDataJson)
uni_modules/uni-icons/components/uni-icons/uniicons_file_vue.js
浏览文件 @
a6700de3
export
const
fontData
=
[
{
"
font_class
"
:
"
arrow-down
"
,
...
...
@@ -644,6 +644,6 @@ export const fontData = [
"
font_class
"
:
"
weixin
"
,
"
unicode
"
:
"
\
ue691
"
}
]
]
// export const fontData = JSON.parse<IconsDataItem>(fontDataJson)
uni_modules/uni-icons/package.json
浏览文件 @
a6700de3
{
"id"
:
"uni-icons"
,
"displayName"
:
"uni-icons 图标"
,
"version"
:
"2.0.
8
"
,
"version"
:
"2.0.
9
"
,
"description"
:
"图标组件,用于展示移动端常见的图标,可自定义颜色、大小。"
,
"keywords"
:
[
"uni-ui"
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录