@tdesign/uniapp 0.8.0 → 0.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -0
- package/README.md +43 -34
- package/dist/action-sheet/README.md +8 -3
- package/dist/avatar/README.md +3 -1
- package/dist/back-top/README.md +3 -1
- package/dist/badge/README.en-US.md +1 -0
- package/dist/badge/README.md +4 -1
- package/dist/badge/badge.css +1 -1
- package/dist/button/README.md +3 -1
- package/dist/button/button.vue +5 -0
- package/dist/calendar/README.md +3 -1
- package/dist/calendar/calendar.vue +6 -2
- package/dist/cascader/README.md +3 -1
- package/dist/cell/README.md +3 -1
- package/dist/checkbox/README.md +3 -1
- package/dist/col/README.md +3 -1
- package/dist/collapse/README.md +3 -1
- package/dist/color-picker/README.md +3 -1
- package/dist/common/common.ts +121 -5
- package/dist/common/src/index.js +0 -1
- package/dist/common/style/theme/index-light.css +282 -0
- package/dist/common/style/theme/index-light.less +9 -0
- package/dist/common/style/theme/raw/_components-light.less +8 -0
- package/dist/common/style/theme/raw/_light-only.less +181 -0
- package/dist/common/validator.ts +496 -0
- package/dist/config-provider/README.md +3 -1
- package/dist/count-down/README.md +3 -1
- package/dist/date-time-picker/README.md +3 -1
- package/dist/dialog/README.md +3 -1
- package/dist/divider/README.md +3 -1
- package/dist/drawer/README.md +3 -1
- package/dist/dropdown-item/dropdown-item.vue +2 -0
- package/dist/dropdown-menu/README.md +2 -2
- package/dist/dropdown-menu/dropdown-menu.vue +1 -1
- package/dist/empty/README.md +3 -1
- package/dist/fab/README.md +3 -1
- package/dist/fab/fab.vue +2 -2
- package/dist/fab/props.ts +1 -1
- package/dist/fab/type.ts +1 -1
- package/dist/footer/README.md +3 -1
- package/dist/form/README.en-US.md +2 -2
- package/dist/form/README.md +5 -3
- package/dist/form/form.vue +1 -1
- package/dist/form/type.ts +3 -3
- package/dist/form-item/form-item.css +6 -2
- package/dist/form-item/form-item.vue +30 -24
- package/dist/form-item/type.ts +2 -2
- package/dist/grid/README.md +3 -1
- package/dist/guide/README.md +3 -1
- package/dist/icon/README.md +10 -7
- package/dist/icon/icon.css +1633 -1624
- package/dist/image/README.md +3 -1
- package/dist/image-viewer/README.md +3 -1
- package/dist/index.js +13 -0
- package/dist/indexes/README.md +3 -1
- package/dist/indexes/computed.js +6 -2
- package/dist/indexes/indexes.css +7 -2
- package/dist/indexes/indexes.vue +1 -1
- package/dist/indexes/props.ts +5 -0
- package/dist/indexes/type.ts +5 -0
- package/dist/input/README.md +3 -1
- package/dist/input/input.vue +8 -32
- package/dist/link/README.md +3 -1
- package/dist/loading/README.md +3 -1
- package/dist/message/README.md +8 -3
- package/dist/mixins/page-scroll.d.ts +19 -0
- package/dist/mixins/skyline.js +1 -1
- package/dist/navbar/README.md +3 -1
- package/dist/notice-bar/README.md +3 -1
- package/dist/overlay/README.md +3 -1
- package/dist/picker/README.md +3 -1
- package/dist/popover/README.md +3 -1
- package/dist/popup/README.md +3 -1
- package/dist/progress/README.md +2 -2
- package/dist/pull-down-refresh/README.md +3 -1
- package/dist/qrcode/README.md +3 -1
- package/dist/radio/README.md +3 -1
- package/dist/rate/README.md +3 -1
- package/dist/rate/rate.css +1 -0
- package/dist/result/README.md +3 -1
- package/dist/search/README.md +3 -1
- package/dist/search/search.css +5 -0
- package/dist/search/search.vue +7 -12
- package/dist/segmented/README.en-US.md +42 -0
- package/dist/segmented/README.md +75 -0
- package/dist/segmented/props.ts +31 -0
- package/dist/segmented/segmented.css +66 -0
- package/dist/segmented/segmented.vue +174 -0
- package/dist/segmented/type.ts +41 -0
- package/dist/side-bar/README.md +3 -1
- package/dist/skeleton/README.md +3 -1
- package/dist/slider/README.md +3 -1
- package/dist/stepper/README.md +3 -1
- package/dist/steps/README.md +3 -1
- package/dist/sticky/README.md +3 -1
- package/dist/swipe-cell/README.md +3 -1
- package/dist/swiper/README.md +3 -1
- package/dist/switch/README.md +3 -1
- package/dist/tab-bar/README.md +3 -1
- package/dist/tab-bar-item/tab-bar-item.vue +4 -6
- package/dist/table/README.en-US.md +72 -0
- package/dist/table/README.md +117 -0
- package/dist/table/base-table-props.ts +105 -0
- package/dist/table/props.ts +94 -0
- package/dist/table/table.css +251 -0
- package/dist/table/table.vue +551 -0
- package/dist/table/type.ts +180 -0
- package/dist/tabs/README.md +3 -1
- package/dist/tabs/tabs.css +4 -0
- package/dist/tag/README.md +3 -1
- package/dist/textarea/README.md +3 -1
- package/dist/textarea/textarea.vue +1 -25
- package/dist/theme-light.css +282 -0
- package/dist/theme-light.css.d.ts +2 -0
- package/dist/theme-light.less +1 -0
- package/dist/theme-light.less.d.ts +2 -0
- package/dist/theme.css +467 -0
- package/dist/theme.css.d.ts +2 -0
- package/dist/theme.less +1 -0
- package/dist/theme.less.d.ts +2 -0
- package/dist/toast/README.md +3 -1
- package/dist/transition/README.md +4 -6
- package/dist/tree-select/README.md +3 -1
- package/dist/types/index.d.ts +17 -0
- package/dist/types/segmented.d.ts +7 -0
- package/dist/types/table.d.ts +7 -0
- package/dist/upload/README.md +3 -1
- package/dist/watermark/README.md +3 -1
- package/global.d.ts +2 -0
- package/package.json +66 -8
- package/script/postinstall.js +87 -0
- package/dist/common/src/superComponent.js +0 -5
- package/dist/common/validator.js +0 -210
- package/dist/script/postinstall.js +0 -46
|
@@ -81,7 +81,7 @@ name | type | default | description | required
|
|
|
81
81
|
-- | -- | -- | -- | --
|
|
82
82
|
boolean | Boolean | - | \- | N
|
|
83
83
|
date | Boolean / Object | - | Typescript: `boolean \| IsDateOptions` `interface IsDateOptions { format: string; strictMode: boolean; delimiters: string[] }`。[see more ts definition](https://github.com/tencent/tdesign-miniprogram/blob/develop/packages/uniapp-components/form/type.ts) | N
|
|
84
|
-
email | Boolean / Object | - | Typescript: `boolean \| IsEmailOptions
|
|
84
|
+
email | Boolean / Object | - | Typescript: `boolean \| IsEmailOptions`。[see more ts definition](https://github.com/tencent/tdesign-miniprogram/blob/develop/packages/uniapp-components/form/type.ts) | N
|
|
85
85
|
enum | Array | - | Typescript: `Array<string>` | N
|
|
86
86
|
idcard | Boolean | - | \- | N
|
|
87
87
|
len | Number / Boolean | - | \- | N
|
|
@@ -94,7 +94,7 @@ required | Boolean | - | \- | N
|
|
|
94
94
|
telnumber | Boolean | - | \- | N
|
|
95
95
|
trigger | String | change | Typescript: `ValidateTriggerType` | N
|
|
96
96
|
type | String | error | options: error/warning | N
|
|
97
|
-
url | Boolean / Object | - | Typescript: `boolean \| IsURLOptions
|
|
97
|
+
url | Boolean / Object | - | Typescript: `boolean \| IsURLOptions`。[see more ts definition](https://github.com/tencent/tdesign-miniprogram/blob/develop/packages/uniapp-components/form/type.ts) | N
|
|
98
98
|
validator | Function | - | Typescript: `CustomValidator` `type CustomValidator = (val: ValueType, context?: { formData: Data , name: string }) => CustomValidateResolveType \| Promise<CustomValidateResolveType>` `type CustomValidateResolveType = boolean \| CustomValidateObj` `interface CustomValidateObj { result: boolean; message: string; type?: 'error' \| 'warning' \| 'success' }` `type ValueType = any`。[see more ts definition](https://github.com/tencent/tdesign-miniprogram/blob/develop/packages/uniapp-components/form/type.ts) | N
|
|
99
99
|
whitespace | Boolean | - | \- | N
|
|
100
100
|
|
package/dist/form/README.md
CHANGED
|
@@ -8,7 +8,9 @@ toc: false
|
|
|
8
8
|
|
|
9
9
|
## 引入
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
推荐使用 easycom 模式引入组件,配置后无需手动 import 即可直接在模板中使用 `<t-form />`。详细配置请参考 [快速开始](../getting-started)。
|
|
12
|
+
|
|
13
|
+
如需手动引入:
|
|
12
14
|
|
|
13
15
|
```js
|
|
14
16
|
import TForm from '@tdesign/uniapp/form/form.vue';
|
|
@@ -90,7 +92,7 @@ label | 自定义 `label` 显示内容
|
|
|
90
92
|
-- | -- | -- | -- | --
|
|
91
93
|
boolean | Boolean | - | 内置校验方法,校验值类型是否为布尔类型,示例:`{ boolean: true, message: '数据类型必须是布尔类型' }` | N
|
|
92
94
|
date | Boolean / Object | - | 内置校验方法,校验值是否为日期格式,[参数文档](https://github.com/validatorjs/validator.js),示例:`{ date: { delimiters: '-' }, message: '日期分隔线必须是短横线(-)' }`。TS 类型:`boolean \| IsDateOptions` `interface IsDateOptions { format: string; strictMode: boolean; delimiters: string[] }`。[详细类型定义](https://github.com/tencent/tdesign-miniprogram/blob/develop/packages/uniapp-components/form/type.ts) | N
|
|
93
|
-
email | Boolean / Object | - | 内置校验方法,校验值是否为邮件格式,[参数文档](https://github.com/validatorjs/validator.js),示例:`{ email: { ignore_max_length: true }, message: '请输入正确的邮箱地址' }`。TS 类型:`boolean \| IsEmailOptions
|
|
95
|
+
email | Boolean / Object | - | 内置校验方法,校验值是否为邮件格式,[参数文档](https://github.com/validatorjs/validator.js),示例:`{ email: { ignore_max_length: true }, message: '请输入正确的邮箱地址' }`。TS 类型:`boolean \| IsEmailOptions`。[详细类型定义](https://github.com/tencent/tdesign-miniprogram/blob/develop/packages/uniapp-components/form/type.ts) | N
|
|
94
96
|
enum | Array | - | 内置校验方法,校验值是否属于枚举值中的值。示例:`{ enum: ['primary', 'info', 'warning'], message: '值只能是 primary/info/warning 中的一种' }`。TS 类型:`Array<string>` | N
|
|
95
97
|
idcard | Boolean | - | 内置校验方法,校验值是否为身份证号码,组件校验正则为 `/^(\\d{18,18}\|\\d{15,15}\|\\d{17,17}x)$/i`,示例:`{ idcard: true, message: '请输入正确的身份证号码' }` | N
|
|
96
98
|
len | Number / Boolean | - | 内置校验方法,校验值固定长度,如:len: 10 表示值的字符长度只能等于 10 ,中文表示 2 个字符,英文为 1 个字符。示例:`{ len: 10, message: '内容长度不对' }`。<br />如果希望字母和中文都是同样的长度,示例:`{ validator: (val) => val.length === 10, message: '内容文本长度只能是 10 个字' }` | N
|
|
@@ -103,7 +105,7 @@ required | Boolean | - | 内置校验方法,校验值是否已经填写。该
|
|
|
103
105
|
telnumber | Boolean | - | 内置校验方法,校验值是否为手机号码,校验正则为 `/^1[3-9]\d{9}$/`,示例:`{ telnumber: true, message: '请输入正确的手机号码' }` | N
|
|
104
106
|
trigger | String | change | 校验触发方式。TS 类型:`ValidateTriggerType` | N
|
|
105
107
|
type | String | error | 校验未通过时呈现的错误信息类型,有 告警信息提示 和 错误信息提示 等两种。可选项:error/warning | N
|
|
106
|
-
url | Boolean / Object | - | 内置校验方法,校验值是否为网络链接地址,[参数文档](https://github.com/validatorjs/validator.js),示例:`{ url: { protocols: ['http','https','ftp'] }, message: '请输入正确的 Url 地址' }`。TS 类型:`boolean \| IsURLOptions
|
|
108
|
+
url | Boolean / Object | - | 内置校验方法,校验值是否为网络链接地址,[参数文档](https://github.com/validatorjs/validator.js),示例:`{ url: { protocols: ['http','https','ftp'] }, message: '请输入正确的 Url 地址' }`。TS 类型:`boolean \| IsURLOptions`。[详细类型定义](https://github.com/tencent/tdesign-miniprogram/blob/develop/packages/uniapp-components/form/type.ts) | N
|
|
107
109
|
validator | Function | - | 自定义校验规则,context 中 formData 为当前完整表单值,name为该字段的标识,示例:`{ validator: (val) => val.length > 0, message: '请输入内容'}`。TS 类型:`CustomValidator` `type CustomValidator = (val: ValueType, context?: { formData: Data , name: string }) => CustomValidateResolveType \| Promise<CustomValidateResolveType>` `type CustomValidateResolveType = boolean \| CustomValidateObj` `interface CustomValidateObj { result: boolean; message: string; type?: 'error' \| 'warning' \| 'success' }` `type ValueType = any`。[详细类型定义](https://github.com/tencent/tdesign-miniprogram/blob/develop/packages/uniapp-components/form/type.ts) | N
|
|
108
110
|
whitespace | Boolean | - | 内置校验方法,校验值是否为空格。示例:`{ whitespace: true, message: '值不能为空' }` | N
|
|
109
111
|
|
package/dist/form/form.vue
CHANGED
package/dist/form/type.ts
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* 该文件为脚本自动生成文件,请勿随意修改。如需修改请联系 PMC
|
|
5
5
|
* */
|
|
6
6
|
|
|
7
|
-
import type { IsEmailOptions } from '
|
|
8
|
-
import type { IsURLOptions } from '
|
|
7
|
+
import type { IsEmailOptions } from '../common/common';
|
|
8
|
+
import type { IsURLOptions } from '../common/common';
|
|
9
9
|
import type { FormResetEvent, FormSubmitEvent } from '../common/common';
|
|
10
10
|
|
|
11
11
|
export interface TdFormProps<FormData extends Data = Data> {
|
|
@@ -36,7 +36,7 @@ export interface TdFormProps<FormData extends Data = Data> {
|
|
|
36
36
|
/**
|
|
37
37
|
* 是否显示必填符号(*),默认显示
|
|
38
38
|
*/
|
|
39
|
-
requiredMark?: boolean;
|
|
39
|
+
requiredMark?: boolean | null;
|
|
40
40
|
/**
|
|
41
41
|
* 表单必填符号(*)显示位置
|
|
42
42
|
*/
|
|
@@ -49,6 +49,10 @@
|
|
|
49
49
|
display: flex;
|
|
50
50
|
flex-direction: column;
|
|
51
51
|
}
|
|
52
|
+
.t-form__item__icon {
|
|
53
|
+
font-size: 48rpx;
|
|
54
|
+
color: var(--td-text-color-placeholder, var(--td-font-gray-3, rgba(0, 0, 0, 0.4)));
|
|
55
|
+
}
|
|
52
56
|
.t-form--top {
|
|
53
57
|
align-items: center;
|
|
54
58
|
}
|
|
@@ -69,13 +73,13 @@
|
|
|
69
73
|
.t-form__label--right {
|
|
70
74
|
text-align: right;
|
|
71
75
|
}
|
|
72
|
-
.t-form__label--required:not(.t-form__label--required-right)
|
|
76
|
+
.t-form__label--required:not(.t-form__label--required-right) .t-form__label-text::before {
|
|
73
77
|
display: inline;
|
|
74
78
|
margin-right: calc(var(--td-spacer, 16rpx) / 2);
|
|
75
79
|
color: var(--td-error-color-6, #d54941);
|
|
76
80
|
content: '*';
|
|
77
81
|
}
|
|
78
|
-
.t-form__label--required-right
|
|
82
|
+
.t-form__label--required-right .t-form__label-text::after {
|
|
79
83
|
display: inline;
|
|
80
84
|
margin-left: calc(var(--td-spacer, 16rpx) / 2);
|
|
81
85
|
color: var(--td-error-color-6, #d54941);
|
|
@@ -1,23 +1,28 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<view
|
|
3
3
|
:class="classPrefix + ' ' + formItemClass + ' ' + formClass + '--' + dataLabelAlign + ' ' + formItemClass + '__' + name + ' ' + errorClasses + ' ' + tClass"
|
|
4
|
-
:style="tools._style([customStyle])"
|
|
4
|
+
:style="'' + tools._style([customStyle])"
|
|
5
5
|
>
|
|
6
6
|
<view :class="formItemClass + '-wrap ' + formItemClass + '--' + dataLabelAlign + ' ' + tClassWrap">
|
|
7
7
|
<!-- 标签区域 -->
|
|
8
|
-
<
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
+
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
8
|
+
<slot name="label">
|
|
9
|
+
<view
|
|
10
|
+
v-if="label"
|
|
11
|
+
:class="labelClass + ' ' + labelClass + '--' + dataLabelAlign
|
|
12
|
+
+ (dataRequiredMark ? ' ' + labelClass + '--required' : '')
|
|
13
|
+
+ (dataRequiredMark && requiredMarkPosition === 'right' ? ' ' + labelClass + '--required-right' : '')
|
|
14
|
+
+ ' ' + tClassLabel"
|
|
15
|
+
:style="'width: ' + dataLabelWidth"
|
|
16
|
+
>
|
|
17
|
+
<label
|
|
18
|
+
:class="labelClass + '-text'"
|
|
19
|
+
:for="forId"
|
|
20
|
+
>{{ label }}</label>
|
|
21
|
+
<template v-if="colon">
|
|
22
|
+
{{ globalConfig.colonText }}
|
|
23
|
+
</template>
|
|
24
|
+
</view>
|
|
25
|
+
</slot>
|
|
21
26
|
|
|
22
27
|
<!-- 内容区域 -->
|
|
23
28
|
<view :class="formClass + '__controls ' + errorClasses + ' ' + tClassControls">
|
|
@@ -28,12 +33,14 @@
|
|
|
28
33
|
<slot />
|
|
29
34
|
</view>
|
|
30
35
|
<!-- 帮助信息 -->
|
|
31
|
-
<
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
36
|
+
<slot name="help">
|
|
37
|
+
<view
|
|
38
|
+
v-if="help"
|
|
39
|
+
:class="formItemClass + '-help ' + formClass + '__controls--' + dataContentAlign + ' ' + tClassHelp"
|
|
40
|
+
>
|
|
41
|
+
{{ help }}
|
|
42
|
+
</view>
|
|
43
|
+
</slot>
|
|
37
44
|
|
|
38
45
|
<!-- 校验提示信息 -->
|
|
39
46
|
<view
|
|
@@ -48,8 +55,7 @@
|
|
|
48
55
|
<t-icon
|
|
49
56
|
v-if="arrow"
|
|
50
57
|
name="chevron-right"
|
|
51
|
-
|
|
52
|
-
color="rgba(0, 0, 0, 0.4)"
|
|
58
|
+
:class="formItemClass + '__icon'"
|
|
53
59
|
/>
|
|
54
60
|
</view>
|
|
55
61
|
</template>
|
|
@@ -163,14 +169,14 @@ export default {
|
|
|
163
169
|
const formRules = target.rules?.[this.name];
|
|
164
170
|
const isRequired = formRules?.some(rule => rule.required);
|
|
165
171
|
|
|
166
|
-
this.dataRules = formRules;
|
|
172
|
+
this.dataRules = formRules || [];
|
|
167
173
|
this.colon = target.colon;
|
|
168
174
|
this.dataLabelAlign = labelAlign || target.labelAlign;
|
|
169
175
|
this.dataLabelWidth = normalizeLabelWidth(labelWidth || target.labelWidth);
|
|
170
176
|
this.dataContentAlign = contentAlign || target.contentAlign;
|
|
171
177
|
this.dataRequiredMark = requiredMark || target.requiredMark || globalConfig.requiredMark || isRequired;
|
|
172
178
|
this.dataShowErrorMessage = typeof showErrorMessage === 'boolean' ? showErrorMessage : target.showErrorMessage;
|
|
173
|
-
this.requiredMarkPosition = target.requiredMarkPosition || globalConfig.requiredMarkPosition;
|
|
179
|
+
this.requiredMarkPosition = target.requiredMarkPosition || globalConfig.requiredMarkPosition || 'left';
|
|
174
180
|
},
|
|
175
181
|
innerAfterUnlinked() {
|
|
176
182
|
if (this.form) {
|
package/dist/form-item/type.ts
CHANGED
|
@@ -37,7 +37,7 @@ export interface TdFormItemProps {
|
|
|
37
37
|
/**
|
|
38
38
|
* 是否显示必填符号(*),优先级高于 Form.requiredMark
|
|
39
39
|
*/
|
|
40
|
-
requiredMark?: boolean;
|
|
40
|
+
requiredMark?: boolean | null;
|
|
41
41
|
/**
|
|
42
42
|
* 表单字段校验规则
|
|
43
43
|
*/
|
|
@@ -45,5 +45,5 @@ export interface TdFormItemProps {
|
|
|
45
45
|
/**
|
|
46
46
|
* 校验不通过时,是否显示错误提示信息,优先级高于 `Form.showErrorMessage`
|
|
47
47
|
*/
|
|
48
|
-
showErrorMessage?: boolean;
|
|
48
|
+
showErrorMessage?: boolean | null;
|
|
49
49
|
}
|
package/dist/grid/README.md
CHANGED
package/dist/guide/README.md
CHANGED
package/dist/icon/README.md
CHANGED
|
@@ -9,7 +9,9 @@ isComponent: true
|
|
|
9
9
|
|
|
10
10
|
## 引入
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
推荐使用 easycom 模式引入组件,配置后无需手动 import 即可直接在模板中使用 `<t-icon />`。详细配置请参考 [快速开始](../getting-started)。
|
|
13
|
+
|
|
14
|
+
如需手动引入:
|
|
13
15
|
|
|
14
16
|
```js
|
|
15
17
|
import TIcon from '@tdesign/uniapp/icon/icon.vue';
|
|
@@ -40,7 +42,7 @@ import TIcon from '@tdesign/uniapp/icon/icon.vue';
|
|
|
40
42
|
|
|
41
43
|
#### 准备图标文件
|
|
42
44
|
|
|
43
|
-
|
|
45
|
+
内容如下方代码块所示:
|
|
44
46
|
|
|
45
47
|
```css
|
|
46
48
|
@font-face {
|
|
@@ -57,15 +59,16 @@ import TIcon from '@tdesign/uniapp/icon/icon.vue';
|
|
|
57
59
|
content: '\e64d';
|
|
58
60
|
}
|
|
59
61
|
```
|
|
60
|
-
- 添加所需图标,下载图标。图标库一般会提供 **在线链接** 或者 **下载至本地** 等使用方式。**在线链接** 方式会指向一个 `.css` 文件,可以下载或复制其内容,将其修改成后缀名为 `.wxss` 的文件
|
|
61
|
-
- 将 `.wxss` 文件中的 `FontClass/Symbol前缀` 与 `Font Family` 两项内容保持一致,如: `FontClass/Symbol` 前缀为 `icon-`,则 `Font Family` 为 `icon`。
|
|
62
62
|
|
|
63
|
-
|
|
63
|
+
- 添加所需图标,下载图标。图标库一般会提供 **在线链接** 或者 **下载至本地** 等使用方式。**在线链接** 方式会指向一个 `.css` 文件,可以下载或复制其内容。
|
|
64
|
+
- 将 `.css` 文件中的 `FontClass/Symbol前缀` 与 `Font Family` 两项内容保持一致,如: `FontClass/Symbol` 前缀为 `icon-`,则 `Font Family` 为 `icon`。
|
|
65
|
+
|
|
66
|
+
> 注:若是采用 `下载至本地` 方式,需关注 `.css` 和 `.ttf` 文件。由于微信小程序不支持处理 `ttf、woff、eot` 等文件,但支持 `base64`,所以需要将 `.ttf` 文件转换为 `base64` (可借助转换工具,如 [transfonter.org](https://transfonter.org/),会得到一个 `stylesheet.css` 文件),然后将 `.css` 文件中的 `@font-face {}` 内容替换为 `stylesheet.css` 中的 `base64` 内容。
|
|
64
67
|
|
|
65
68
|
#### 引入自定义图标
|
|
66
69
|
|
|
67
|
-
- 全局引入:在项目 `
|
|
68
|
-
-
|
|
70
|
+
- 全局引入:在项目 `App.vue` 或 `main.ts` 等位置,引入上述图标文件
|
|
71
|
+
- 局部引入:在页面/组件对应的样式文件中,引入上述图标文件
|
|
69
72
|
|
|
70
73
|
#### 自定义图标的使用
|
|
71
74
|
|