im-ui-mobile 0.1.0 → 0.1.2
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/components/im-avatar/im-avatar.vue +7 -7
- package/components/im-badge/im-badge.vue +326 -0
- package/components/im-button/im-button.vue +71 -34
- package/components/im-card/im-card.vue +563 -0
- package/components/im-chat-item/im-chat-item.vue +5 -4
- package/components/im-col/im-col.vue +191 -0
- package/components/im-dialog/im-dialog.vue +543 -0
- package/components/im-double-tap-view/im-double-tap-view.vue +93 -0
- package/components/im-emoji-picker/im-emoji-picker.vue +1143 -0
- package/components/im-friend-item/im-friend-item.vue +1 -1
- package/components/im-group-item/im-group-item.vue +1 -1
- package/components/im-group-member-selector/im-group-member-selector.vue +5 -5
- package/components/im-group-rtc-join/im-group-rtc-join.vue +8 -8
- package/components/im-icon/im-icon.vue +593 -0
- package/components/im-image-upload/im-image-upload.vue +0 -2
- package/components/im-link/im-link.vue +628 -0
- package/components/im-loading/im-loading.vue +13 -4
- package/components/im-mention-picker/im-mention-picker.vue +8 -7
- package/components/im-message-action/im-message-action.vue +678 -0
- package/components/im-message-item/im-message-item.vue +28 -26
- package/components/im-message-list/im-message-list.vue +1108 -0
- package/components/im-modal/im-modal.vue +373 -0
- package/components/im-nav-bar/im-nav-bar.vue +689 -75
- package/components/im-parse/im-parse.vue +1054 -0
- package/components/im-popup/im-popup.vue +467 -0
- package/components/im-read-receipt/im-read-receipt.vue +10 -10
- package/components/im-row/im-row.vue +189 -0
- package/components/im-search/im-search.vue +762 -0
- package/components/im-sku/im-sku.vue +720 -0
- package/components/im-sku/utils/helper.ts +182 -0
- package/components/im-stepper/im-stepper.vue +585 -0
- package/components/im-stepper/utils/helper.ts +167 -0
- package/components/im-tabs/im-tabs.vue +1022 -0
- package/components/im-tabs/tabs-navigation.vue +489 -0
- package/components/im-tabs/utils/helper.ts +181 -0
- package/components/im-tabs-tab-pane/im-tabs-tab-pane.vue +145 -0
- package/components/im-upload/im-upload.vue +1236 -0
- package/components/im-voice-input/im-voice-input.vue +1 -1
- package/index.js +3 -5
- package/index.scss +19 -0
- package/libs/emoji-data.ts +229 -0
- package/libs/index.ts +16 -16
- package/package.json +1 -2
- package/styles/button.scss +33 -33
- package/theme.scss +2 -2
- package/types/components/badge.d.ts +42 -0
- package/types/components/button.d.ts +2 -1
- package/types/components/card.d.ts +122 -0
- package/types/components/col.d.ts +37 -0
- package/types/components/dialog.d.ts +125 -0
- package/types/components/double-tap-view.d.ts +31 -0
- package/types/components/emoji-picker.d.ts +121 -0
- package/types/components/group-rtc-join.d.ts +1 -1
- package/types/components/icon.d.ts +77 -0
- package/types/components/link.d.ts +55 -0
- package/types/components/loading.d.ts +1 -0
- package/types/components/message-action.d.ts +96 -0
- package/types/components/message-item.d.ts +2 -2
- package/types/components/message-list.d.ts +136 -0
- package/types/components/modal.d.ts +106 -0
- package/types/components/nav-bar.d.ts +125 -0
- package/types/components/parse.d.ts +90 -0
- package/types/components/popup.d.ts +58 -0
- package/types/components/row.d.ts +31 -0
- package/types/components/search.d.ts +54 -0
- package/types/components/sku.d.ts +195 -0
- package/types/components/stepper.d.ts +99 -0
- package/types/components/tabs-tab-pane.d.ts +27 -0
- package/types/components/tabs.d.ts +117 -0
- package/types/components/upload.d.ts +137 -0
- package/types/components.d.ts +19 -1
- package/types/index.d.ts +38 -1
- package/types/libs/index.d.ts +10 -10
- package/types/utils/base64.d.ts +5 -0
- package/types/utils/dom.d.ts +3 -0
- package/types/utils/enums.d.ts +4 -5
- package/types/utils/validator.d.ts +74 -0
- package/utils/base64.js +18 -0
- package/utils/dom.js +353 -1
- package/utils/enums.js +4 -5
- package/utils/validator.js +230 -0
- package/components/im-file-upload/im-file-upload.vue +0 -309
- package/plugins/uview-plus.js +0 -29
- package/types/components/arrow-bar.d.ts +0 -14
- package/types/components/file-upload.d.ts +0 -58
|
@@ -0,0 +1,593 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<!-- 字体图标 -->
|
|
3
|
+
<text v-if="type === 'font'" class="im-icon im-icon--font" :class="[
|
|
4
|
+
`im-icon--${name}`,
|
|
5
|
+
`im-icon--${size}`,
|
|
6
|
+
spin ? 'im-icon--spin' : '',
|
|
7
|
+
rotate ? 'im-icon--rotate' : '',
|
|
8
|
+
customClass
|
|
9
|
+
]" :style="[
|
|
10
|
+
iconStyles,
|
|
11
|
+
colorStyle,
|
|
12
|
+
rotateStyle,
|
|
13
|
+
customStyle
|
|
14
|
+
]" @click="handleClick">
|
|
15
|
+
{{ iconChar }}
|
|
16
|
+
</text>
|
|
17
|
+
|
|
18
|
+
<!-- 图片图标 -->
|
|
19
|
+
<image v-else-if="type === 'image'" class="im-icon im-icon--image" :class="[
|
|
20
|
+
`im-icon--${size}`,
|
|
21
|
+
spin ? 'im-icon--spin' : '',
|
|
22
|
+
rotate ? 'im-icon--rotate' : '',
|
|
23
|
+
customClass
|
|
24
|
+
]" :style="[
|
|
25
|
+
iconStyles,
|
|
26
|
+
rotateStyle,
|
|
27
|
+
customStyle
|
|
28
|
+
]" :src="src || name" :mode="imageMode" :lazy-load="lazyLoad" :show-menu-by-longpress="showMenuByLongpress"
|
|
29
|
+
@click="handleClick" @error="handleError" @load="handleLoad" />
|
|
30
|
+
|
|
31
|
+
<!-- SVG图标 -->
|
|
32
|
+
<view v-else-if="type === 'svg'" class="im-icon im-icon--svg" :class="[
|
|
33
|
+
`im-icon--${size}`,
|
|
34
|
+
spin ? 'im-icon--spin' : '',
|
|
35
|
+
rotate ? 'im-icon--rotate' : '',
|
|
36
|
+
customClass
|
|
37
|
+
]" :style="[
|
|
38
|
+
iconStyles,
|
|
39
|
+
colorStyle,
|
|
40
|
+
rotateStyle,
|
|
41
|
+
customStyle
|
|
42
|
+
]" @click="handleClick">
|
|
43
|
+
<!-- 外部SVG内容 -->
|
|
44
|
+
<view v-if="useSvgContent" class="im-icon__svg-content" v-html="svgContent" />
|
|
45
|
+
<!-- 内置SVG图标 -->
|
|
46
|
+
<view v-else class="im-icon__svg-content">
|
|
47
|
+
<!-- 这里可以放置内置的SVG图标 -->
|
|
48
|
+
<slot>
|
|
49
|
+
{{ svgContent }}
|
|
50
|
+
</slot>
|
|
51
|
+
</view>
|
|
52
|
+
</view>
|
|
53
|
+
|
|
54
|
+
<!-- 自定义渲染 -->
|
|
55
|
+
<view v-else-if="type === 'custom'" class="im-icon im-icon--custom" :class="[
|
|
56
|
+
`im-icon--${size}`,
|
|
57
|
+
customClass
|
|
58
|
+
]" :style="[
|
|
59
|
+
iconStyles,
|
|
60
|
+
customStyle
|
|
61
|
+
]" @click="handleClick">
|
|
62
|
+
<slot>
|
|
63
|
+
<text v-if="name" class="im-icon__custom-text">{{ name }}</text>
|
|
64
|
+
</slot>
|
|
65
|
+
</view>
|
|
66
|
+
</template>
|
|
67
|
+
|
|
68
|
+
<script setup lang="ts">
|
|
69
|
+
import { computed, ref } from 'vue'
|
|
70
|
+
import { validator } from '../../index'
|
|
71
|
+
|
|
72
|
+
// 图标类型
|
|
73
|
+
type IconType = 'font' | 'image' | 'svg' | 'custom'
|
|
74
|
+
|
|
75
|
+
// 图标大小预设
|
|
76
|
+
type IconSize = 'xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge' | string
|
|
77
|
+
|
|
78
|
+
// 旋转方向
|
|
79
|
+
type RotateDirection = 'clockwise' | 'counterclockwise'
|
|
80
|
+
|
|
81
|
+
// 定义Props
|
|
82
|
+
interface IconProps {
|
|
83
|
+
/** 图标名称或标识 */
|
|
84
|
+
name?: string
|
|
85
|
+
/** 图标类型 */
|
|
86
|
+
type?: IconType
|
|
87
|
+
/** 图标大小 */
|
|
88
|
+
size?: IconSize | number
|
|
89
|
+
/** 图标颜色(仅对字体图标和SVG有效) */
|
|
90
|
+
color?: string
|
|
91
|
+
/** 旋转角度(0-360) */
|
|
92
|
+
rotate?: number
|
|
93
|
+
/** 旋转方向 */
|
|
94
|
+
rotateDirection?: RotateDirection
|
|
95
|
+
/** 是否旋转动画 */
|
|
96
|
+
spin?: boolean
|
|
97
|
+
/** 旋转动画速度(秒) */
|
|
98
|
+
spinSpeed?: number
|
|
99
|
+
/** 是否禁用 */
|
|
100
|
+
disabled?: boolean
|
|
101
|
+
/** 点击时的波纹效果 */
|
|
102
|
+
ripple?: boolean
|
|
103
|
+
/** 波纹颜色 */
|
|
104
|
+
rippleColor?: string
|
|
105
|
+
/** 自定义类名 */
|
|
106
|
+
customClass?: string
|
|
107
|
+
/** 自定义样式 */
|
|
108
|
+
customStyle?: Record<string, string | number>
|
|
109
|
+
/** 图片模式(仅type='image'时有效) */
|
|
110
|
+
imageMode?: 'scaleToFill' | 'aspectFit' | 'aspectFill' | 'widthFix' | 'heightFix' | 'top' | 'bottom' | 'center' | 'left' | 'right' | 'top left' | 'top right' | 'bottom left' | 'bottom right'
|
|
111
|
+
/** 图片地址(仅type='image'时有效) */
|
|
112
|
+
src?: string
|
|
113
|
+
/** 是否懒加载图片(仅type='image'时有效) */
|
|
114
|
+
lazyLoad?: boolean
|
|
115
|
+
/** 是否长按显示菜单(仅type='image'时有效) */
|
|
116
|
+
showMenuByLongpress?: boolean
|
|
117
|
+
/** SVG内容(仅type='svg'时有效) */
|
|
118
|
+
svgContent?: string
|
|
119
|
+
/** 使用SVG内容而不是内置图标(仅type='svg'时有效) */
|
|
120
|
+
useSvgContent?: boolean
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
const props = withDefaults(defineProps<IconProps>(), {
|
|
124
|
+
name: '',
|
|
125
|
+
type: 'font',
|
|
126
|
+
size: 'medium',
|
|
127
|
+
color: 'currentColor',
|
|
128
|
+
rotate: 0,
|
|
129
|
+
rotateDirection: 'clockwise',
|
|
130
|
+
spin: false,
|
|
131
|
+
spinSpeed: 1,
|
|
132
|
+
disabled: false,
|
|
133
|
+
ripple: true,
|
|
134
|
+
rippleColor: 'rgba(0, 0, 0, 0.1)',
|
|
135
|
+
customClass: '',
|
|
136
|
+
customStyle: () => ({}),
|
|
137
|
+
imageMode: 'scaleToFill',
|
|
138
|
+
lazyLoad: false,
|
|
139
|
+
showMenuByLongpress: false,
|
|
140
|
+
svgContent: '',
|
|
141
|
+
useSvgContent: false
|
|
142
|
+
})
|
|
143
|
+
|
|
144
|
+
// 定义Emits
|
|
145
|
+
const emit = defineEmits<{
|
|
146
|
+
/** 点击事件 */
|
|
147
|
+
click: [event: MouseEvent]
|
|
148
|
+
/** 图片加载成功 */
|
|
149
|
+
load: [event: any]
|
|
150
|
+
/** 图片加载失败 */
|
|
151
|
+
error: [event: any]
|
|
152
|
+
}>()
|
|
153
|
+
|
|
154
|
+
// 响应式数据
|
|
155
|
+
const isLoaded = ref(false)
|
|
156
|
+
const loadError = ref(false)
|
|
157
|
+
|
|
158
|
+
// 内置字体图标映射表
|
|
159
|
+
const iconUnicodeMap = {
|
|
160
|
+
// 基础操作图标
|
|
161
|
+
'settings': '\ue800',
|
|
162
|
+
'home': '\ue801',
|
|
163
|
+
'user': '\ue802',
|
|
164
|
+
'search': '\ue803',
|
|
165
|
+
'plus': '\ue804',
|
|
166
|
+
'minus': '\ue805',
|
|
167
|
+
'close': '\ue806',
|
|
168
|
+
'ok': '\ue807',
|
|
169
|
+
'edit': '\ue808',
|
|
170
|
+
'delete': '\ue809',
|
|
171
|
+
|
|
172
|
+
// 视图与显示
|
|
173
|
+
'eye': '\ue80a',
|
|
174
|
+
'eye-off': '\ue80b',
|
|
175
|
+
'fullscreen': '\ue832',
|
|
176
|
+
'zoom-in': '\ue82d',
|
|
177
|
+
'zoom-out': '\ue82e',
|
|
178
|
+
|
|
179
|
+
// 通知与反馈
|
|
180
|
+
'bell': '\ue80c',
|
|
181
|
+
'bell-off': '\uf1f7',
|
|
182
|
+
'star': '\ue80d',
|
|
183
|
+
'star-o': '\ue80e',
|
|
184
|
+
'star-half': '\uf123',
|
|
185
|
+
'heart': '\ue80f',
|
|
186
|
+
'heart-o': '\ue810',
|
|
187
|
+
'heart-broken': '\uf028',
|
|
188
|
+
|
|
189
|
+
// 文件与文档类型
|
|
190
|
+
'file': '\ue817',
|
|
191
|
+
'file-pdf': '\uf1c1',
|
|
192
|
+
'file-word': '\uf1c2',
|
|
193
|
+
'file-excel': '\uf1c3',
|
|
194
|
+
'file-ppt': '\uf1c4',
|
|
195
|
+
'file-audio': '\uf1c7',
|
|
196
|
+
'folder': '\uf114',
|
|
197
|
+
|
|
198
|
+
// 媒体内容
|
|
199
|
+
'picture': '\ue818',
|
|
200
|
+
'video': '\ue819',
|
|
201
|
+
'play': '\ue837',
|
|
202
|
+
'pause': '\ue838',
|
|
203
|
+
'stop': '\ue83b',
|
|
204
|
+
'fast': '\ue839',
|
|
205
|
+
'rewind': '\ue83a',
|
|
206
|
+
'record': '\ue83c',
|
|
207
|
+
|
|
208
|
+
// 设备相关
|
|
209
|
+
'phone': '\ue81a',
|
|
210
|
+
'mobile': '\ue81f',
|
|
211
|
+
'tablet': '\ue81b',
|
|
212
|
+
'laptop': '\ue81c',
|
|
213
|
+
'monitor': '\uf032',
|
|
214
|
+
'monitor-o': '\ue827',
|
|
215
|
+
'camera': '\ue81e',
|
|
216
|
+
'headphone': '\ue820',
|
|
217
|
+
|
|
218
|
+
// 通讯与社交
|
|
219
|
+
'chat': '\ue821',
|
|
220
|
+
'comment': '\ue822',
|
|
221
|
+
'mail': '\ue825',
|
|
222
|
+
'share': '\ue811',
|
|
223
|
+
'send': '\uf1d8',
|
|
224
|
+
'qq': '\uf1d6',
|
|
225
|
+
'wechat': '\uf1d7',
|
|
226
|
+
'github': '\uf09b',
|
|
227
|
+
|
|
228
|
+
// 方向与导航
|
|
229
|
+
'arrow-up': '\ue815',
|
|
230
|
+
'arrow-down': '\ue812',
|
|
231
|
+
'arrow-left': '\ue813',
|
|
232
|
+
'arrow-right': '\ue814',
|
|
233
|
+
'location': '\uf031',
|
|
234
|
+
'compass': '\ue834',
|
|
235
|
+
|
|
236
|
+
// 状态与提示
|
|
237
|
+
'error': '\ue828',
|
|
238
|
+
'warning': '\ue829',
|
|
239
|
+
'info': '\ue82a',
|
|
240
|
+
'help': '\ue82b',
|
|
241
|
+
'loading': '\ue830',
|
|
242
|
+
|
|
243
|
+
// 工具与操作
|
|
244
|
+
'power': '\ue826',
|
|
245
|
+
'refresh': '\ue82c',
|
|
246
|
+
'sync': '\ue816',
|
|
247
|
+
'filter': '\uf0b0',
|
|
248
|
+
'sort': '\uf0dc',
|
|
249
|
+
'menu': '\uf0c9',
|
|
250
|
+
'download': '\uf0ed',
|
|
251
|
+
'upload': '\uf0ee',
|
|
252
|
+
'more': '\ue81d',
|
|
253
|
+
|
|
254
|
+
// 媒体控制
|
|
255
|
+
'volume-up': '\ue840',
|
|
256
|
+
'volume-down': '\ue83f',
|
|
257
|
+
'volume-off': '\ue83e',
|
|
258
|
+
|
|
259
|
+
// 安全与权限
|
|
260
|
+
'lock': '\ue843',
|
|
261
|
+
'lock-open': '\ue844',
|
|
262
|
+
'key': '\ue845',
|
|
263
|
+
|
|
264
|
+
// 工具与附件
|
|
265
|
+
'params': '\ue841',
|
|
266
|
+
'repair': '\ue842',
|
|
267
|
+
'tag': '\ue846',
|
|
268
|
+
'attach': '\ue847',
|
|
269
|
+
'link': '\ue848',
|
|
270
|
+
'bookmark': '\uf097',
|
|
271
|
+
|
|
272
|
+
// 扫码与识别
|
|
273
|
+
'qrcode': '\ue849',
|
|
274
|
+
'barcode': '\ue84a',
|
|
275
|
+
|
|
276
|
+
// 其他功能
|
|
277
|
+
'basket': '\ue824',
|
|
278
|
+
'clock': '\ue835',
|
|
279
|
+
'calendar-o': '\uf133',
|
|
280
|
+
'flag-o': '\uf11d',
|
|
281
|
+
'plus-squared': '\ue82f',
|
|
282
|
+
'minus-squared': '\ue831'
|
|
283
|
+
};
|
|
284
|
+
|
|
285
|
+
// 计算属性
|
|
286
|
+
const iconChar = computed(() => {
|
|
287
|
+
if (props.type === 'font') {
|
|
288
|
+
return iconUnicodeMap[props.name as keyof typeof iconUnicodeMap] || ''
|
|
289
|
+
}
|
|
290
|
+
return ''
|
|
291
|
+
})
|
|
292
|
+
|
|
293
|
+
const sizeValue = computed(() => {
|
|
294
|
+
if (validator.isNumber(props.size)) {
|
|
295
|
+
return `${props.size}rpx`
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
const sizeMap: Record<IconSize, string> = {
|
|
299
|
+
xxsmall: '24rpx',
|
|
300
|
+
xsmall: '32rpx',
|
|
301
|
+
small: '40rpx',
|
|
302
|
+
medium: '48rpx',
|
|
303
|
+
large: '56rpx',
|
|
304
|
+
xlarge: '64rpx',
|
|
305
|
+
xxlarge: '72rpx'
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
return sizeMap[props.size as IconSize] || '48rpx'
|
|
309
|
+
})
|
|
310
|
+
|
|
311
|
+
const fontSizeValue = computed(() => {
|
|
312
|
+
if (validator.isNumber(props.size)) {
|
|
313
|
+
return `${props.size}rpx`
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
const sizeMap: Record<IconSize, string> = {
|
|
317
|
+
xxsmall: '20rpx',
|
|
318
|
+
xsmall: '24rpx',
|
|
319
|
+
small: '28rpx',
|
|
320
|
+
medium: '32rpx',
|
|
321
|
+
large: '36rpx',
|
|
322
|
+
xlarge: '40rpx',
|
|
323
|
+
xxlarge: '44rpx'
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
return sizeMap[props.size as IconSize] || '32rpx'
|
|
327
|
+
})
|
|
328
|
+
|
|
329
|
+
// 样式计算
|
|
330
|
+
const iconStyles = computed(() => {
|
|
331
|
+
const styles: Record<string, string> = {}
|
|
332
|
+
|
|
333
|
+
if (props.type === 'font') {
|
|
334
|
+
styles.fontSize = fontSizeValue.value
|
|
335
|
+
} else if (props.type === 'image' || props.type === 'svg') {
|
|
336
|
+
styles.width = sizeValue.value
|
|
337
|
+
styles.height = sizeValue.value
|
|
338
|
+
} else if (props.type === 'custom') {
|
|
339
|
+
styles.width = sizeValue.value
|
|
340
|
+
styles.height = sizeValue.value
|
|
341
|
+
styles.display = 'flex'
|
|
342
|
+
styles.alignItems = 'center'
|
|
343
|
+
styles.justifyContent = 'center'
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
if (props.disabled) {
|
|
347
|
+
styles.opacity = '0.5'
|
|
348
|
+
styles.cursor = 'not-allowed'
|
|
349
|
+
} else {
|
|
350
|
+
styles.cursor = 'pointer'
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
return styles
|
|
354
|
+
})
|
|
355
|
+
|
|
356
|
+
const colorStyle = computed(() => ({
|
|
357
|
+
color: props.color
|
|
358
|
+
}))
|
|
359
|
+
|
|
360
|
+
const rotateStyle = computed(() => {
|
|
361
|
+
if (!props.rotate && !props.spin) return {}
|
|
362
|
+
|
|
363
|
+
const direction = props.rotateDirection === 'counterclockwise' ? -1 : 1
|
|
364
|
+
|
|
365
|
+
return {
|
|
366
|
+
transform: `rotate(${props.rotate * direction}deg)`
|
|
367
|
+
}
|
|
368
|
+
})
|
|
369
|
+
|
|
370
|
+
// 事件处理
|
|
371
|
+
const handleClick = (event: MouseEvent) => {
|
|
372
|
+
if (props.disabled) return
|
|
373
|
+
|
|
374
|
+
emit('click', event)
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
const handleLoad = (event: any) => {
|
|
378
|
+
isLoaded.value = true
|
|
379
|
+
loadError.value = false
|
|
380
|
+
emit('load', event)
|
|
381
|
+
}
|
|
382
|
+
|
|
383
|
+
const handleError = (event: any) => {
|
|
384
|
+
loadError.value = true
|
|
385
|
+
isLoaded.value = false
|
|
386
|
+
emit('error', event)
|
|
387
|
+
}
|
|
388
|
+
|
|
389
|
+
// 暴露方法
|
|
390
|
+
defineExpose({
|
|
391
|
+
/** 重新加载图标 */
|
|
392
|
+
reload: () => {
|
|
393
|
+
if (props.type === 'image') {
|
|
394
|
+
isLoaded.value = false
|
|
395
|
+
loadError.value = false
|
|
396
|
+
}
|
|
397
|
+
},
|
|
398
|
+
/** 获取图标状态 */
|
|
399
|
+
getStatus: () => ({
|
|
400
|
+
isLoaded: isLoaded.value,
|
|
401
|
+
loadError: loadError.value,
|
|
402
|
+
type: props.type,
|
|
403
|
+
name: props.name
|
|
404
|
+
})
|
|
405
|
+
})
|
|
406
|
+
</script>
|
|
407
|
+
|
|
408
|
+
<style lang="scss" scoped>
|
|
409
|
+
@font-face {
|
|
410
|
+
font-family: 'im-iconfont';
|
|
411
|
+
src: url("data:font/woff2;charset=utf-8;base64,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") format('woff2');
|
|
412
|
+
font-weight: normal;
|
|
413
|
+
font-style: normal;
|
|
414
|
+
font-display: swap;
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
.im-icon {
|
|
418
|
+
display: inline-flex;
|
|
419
|
+
align-items: center;
|
|
420
|
+
justify-content: center;
|
|
421
|
+
vertical-align: middle;
|
|
422
|
+
transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
|
|
423
|
+
|
|
424
|
+
// 通用点击效果
|
|
425
|
+
&:active:not(.im-icon--disabled) {
|
|
426
|
+
opacity: 0.7;
|
|
427
|
+
transform: scale(0.95);
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
// 旋转动画
|
|
431
|
+
&--spin {
|
|
432
|
+
animation: im-icon-spin linear infinite;
|
|
433
|
+
animation-duration: v-bind('`${props.spinSpeed}s`');
|
|
434
|
+
|
|
435
|
+
@keyframes im-icon-spin {
|
|
436
|
+
from {
|
|
437
|
+
transform: rotate(0deg);
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
to {
|
|
441
|
+
transform: rotate(360deg);
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
// 大小类
|
|
447
|
+
&--xxsmall {
|
|
448
|
+
font-size: 20rpx;
|
|
449
|
+
width: 24rpx;
|
|
450
|
+
height: 24rpx;
|
|
451
|
+
}
|
|
452
|
+
|
|
453
|
+
&--xsmall {
|
|
454
|
+
font-size: 24rpx;
|
|
455
|
+
width: 32rpx;
|
|
456
|
+
height: 32rpx;
|
|
457
|
+
}
|
|
458
|
+
|
|
459
|
+
&--small {
|
|
460
|
+
font-size: 28rpx;
|
|
461
|
+
width: 40rpx;
|
|
462
|
+
height: 40rpx;
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
&--medium {
|
|
466
|
+
font-size: 32rpx;
|
|
467
|
+
width: 48rpx;
|
|
468
|
+
height: 48rpx;
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
&--large {
|
|
472
|
+
font-size: 36rpx;
|
|
473
|
+
width: 56rpx;
|
|
474
|
+
height: 56rpx;
|
|
475
|
+
}
|
|
476
|
+
|
|
477
|
+
&--xlarge {
|
|
478
|
+
font-size: 40rpx;
|
|
479
|
+
width: 64rpx;
|
|
480
|
+
height: 64rpx;
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
&--xxlarge {
|
|
484
|
+
font-size: 44rpx;
|
|
485
|
+
width: 72rpx;
|
|
486
|
+
height: 72rpx;
|
|
487
|
+
}
|
|
488
|
+
|
|
489
|
+
// 字体图标
|
|
490
|
+
&--font {
|
|
491
|
+
font-family: 'im-iconfont', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
|
|
492
|
+
font-weight: normal;
|
|
493
|
+
font-style: normal;
|
|
494
|
+
line-height: 1;
|
|
495
|
+
text-transform: none;
|
|
496
|
+
letter-spacing: normal;
|
|
497
|
+
word-wrap: normal;
|
|
498
|
+
white-space: nowrap;
|
|
499
|
+
direction: ltr;
|
|
500
|
+
-webkit-font-smoothing: antialiased;
|
|
501
|
+
-moz-osx-font-smoothing: grayscale;
|
|
502
|
+
text-rendering: optimizeLegibility;
|
|
503
|
+
font-feature-settings: 'liga';
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
// 图片图标
|
|
507
|
+
&--image {
|
|
508
|
+
object-fit: contain;
|
|
509
|
+
|
|
510
|
+
&.im-icon--spin {
|
|
511
|
+
animation: im-icon-spin linear infinite;
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
// SVG图标
|
|
516
|
+
&--svg {
|
|
517
|
+
.im-icon__svg-content {
|
|
518
|
+
width: 100%;
|
|
519
|
+
height: 100%;
|
|
520
|
+
|
|
521
|
+
:deep(svg) {
|
|
522
|
+
width: 100%;
|
|
523
|
+
height: 100%;
|
|
524
|
+
fill: currentColor;
|
|
525
|
+
|
|
526
|
+
* {
|
|
527
|
+
fill: inherit;
|
|
528
|
+
}
|
|
529
|
+
}
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
// 自定义图标
|
|
534
|
+
&--custom {
|
|
535
|
+
.im-icon__custom-text {
|
|
536
|
+
font-size: inherit;
|
|
537
|
+
color: inherit;
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
|
|
541
|
+
// 禁用状态
|
|
542
|
+
&--disabled {
|
|
543
|
+
opacity: 0.5;
|
|
544
|
+
cursor: not-allowed !important;
|
|
545
|
+
|
|
546
|
+
&:active {
|
|
547
|
+
opacity: 0.5;
|
|
548
|
+
transform: none;
|
|
549
|
+
}
|
|
550
|
+
}
|
|
551
|
+
}
|
|
552
|
+
|
|
553
|
+
// 波纹效果
|
|
554
|
+
.im-icon-ripple {
|
|
555
|
+
position: relative;
|
|
556
|
+
overflow: hidden;
|
|
557
|
+
|
|
558
|
+
&::after {
|
|
559
|
+
content: '';
|
|
560
|
+
position: absolute;
|
|
561
|
+
top: 50%;
|
|
562
|
+
left: 50%;
|
|
563
|
+
width: 5px;
|
|
564
|
+
height: 5px;
|
|
565
|
+
background: v-bind('props.rippleColor');
|
|
566
|
+
opacity: 0;
|
|
567
|
+
border-radius: 100%;
|
|
568
|
+
transform: scale(1, 1) translate(-50%, -50%);
|
|
569
|
+
transform-origin: 50% 50%;
|
|
570
|
+
}
|
|
571
|
+
|
|
572
|
+
&:focus:not(:active)::after {
|
|
573
|
+
animation: im-icon-ripple 1s ease-out;
|
|
574
|
+
}
|
|
575
|
+
|
|
576
|
+
@keyframes im-icon-ripple {
|
|
577
|
+
0% {
|
|
578
|
+
transform: scale(0, 0);
|
|
579
|
+
opacity: 0.5;
|
|
580
|
+
}
|
|
581
|
+
|
|
582
|
+
20% {
|
|
583
|
+
transform: scale(25, 25);
|
|
584
|
+
opacity: 0.3;
|
|
585
|
+
}
|
|
586
|
+
|
|
587
|
+
100% {
|
|
588
|
+
opacity: 0;
|
|
589
|
+
transform: scale(40, 40);
|
|
590
|
+
}
|
|
591
|
+
}
|
|
592
|
+
}
|
|
593
|
+
</style>
|