@zfqh/uview-x 0.0.0-stage → 0.0.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/CHANGELOG.md +16 -0
- package/LICENSE +21 -0
- package/README.md +127 -3
- package/components/uv-badge/props.ts +83 -0
- package/components/uv-badge/uv-badge.vue +186 -0
- package/components/uv-button/props.ts +148 -0
- package/components/uv-button/uv-button.vue +565 -0
- package/components/uv-checkbox/props.ts +83 -0
- package/components/uv-checkbox/uv-checkbox.vue +403 -0
- package/components/uv-checkbox-group/props.ts +97 -0
- package/components/uv-checkbox-group/uv-checkbox-group.vue +163 -0
- package/components/uv-code/props.ts +48 -0
- package/components/uv-code/uv-code.vue +156 -0
- package/components/uv-dialog/props.ts +56 -0
- package/components/uv-dialog/uv-dialog.vue +492 -0
- package/components/uv-form/props.ts +59 -0
- package/components/uv-form/uv-form.vue +256 -0
- package/components/uv-form/valid.ts +1344 -0
- package/components/uv-form-item/props.ts +62 -0
- package/components/uv-form-item/uv-form-item.vue +335 -0
- package/components/uv-icon/icons.ts +161 -0
- package/components/uv-icon/props.ts +91 -0
- package/components/uv-icon/uv-icon.vue +208 -0
- package/components/uv-icon/uvicons.ttf +0 -0
- package/components/uv-input/props.ts +185 -0
- package/components/uv-input/uv-input.vue +431 -0
- package/components/uv-line/props.ts +42 -0
- package/components/uv-line/uv-line.vue +75 -0
- package/components/uv-line-progress/props.ts +43 -0
- package/components/uv-line-progress/uv-line-progress.vue +166 -0
- package/components/uv-loading-icon/props.ts +78 -0
- package/components/uv-loading-icon/uv-loading-icon.vue +226 -0
- package/components/uv-overlay/props.ts +38 -0
- package/components/uv-overlay/uv-overlay.vue +120 -0
- package/components/uv-popup/props.ts +101 -0
- package/components/uv-popup/uv-popup.vue +371 -0
- package/components/uv-safe-bottom/props.ts +18 -0
- package/components/uv-safe-bottom/uv-safe-bottom.vue +120 -0
- package/components/uv-status-bar/props.ts +22 -0
- package/components/uv-status-bar/uv-status-bar.vue +121 -0
- package/components/uv-tabs/props.ts +84 -0
- package/components/uv-tabs/uv-tabs.vue +432 -0
- package/components/uv-transition/props.ts +38 -0
- package/components/uv-transition/uv-transition.vue +170 -0
- package/hooks/index.ts +5 -0
- package/hooks/useDebounce.ts +35 -0
- package/hooks/useI18n.ts +95 -0
- package/hooks/useThrottle.ts +38 -0
- package/index.ts +23 -0
- package/libs/dayjs/index.ts +217 -0
- package/libs/index.ts +4 -0
- package/libs/luch-request/adapters/index.ts +133 -0
- package/libs/luch-request/core/InterceptorManager.ts +52 -0
- package/libs/luch-request/core/Request.ts +202 -0
- package/libs/luch-request/core/buildFullPath.ts +21 -0
- package/libs/luch-request/core/defaults.ts +34 -0
- package/libs/luch-request/core/dispatchRequest.ts +7 -0
- package/libs/luch-request/core/mergeConfig.ts +127 -0
- package/libs/luch-request/core/settle.ts +17 -0
- package/libs/luch-request/helpers/buildURL.ts +65 -0
- package/libs/luch-request/helpers/combineURLs.ts +15 -0
- package/libs/luch-request/helpers/isAbsoluteURL.ts +15 -0
- package/libs/luch-request/index.d.ts +197 -0
- package/libs/luch-request/index.ts +3 -0
- package/libs/luch-request/utils/clone.ts +265 -0
- package/libs/luch-request/utils.ts +136 -0
- package/locales/en.ts +78 -0
- package/locales/index.ts +169 -0
- package/locales/zh-Hans.ts +78 -0
- package/package.json +42 -4
- package/styles/color.scss +33 -0
- package/styles/common.scss +134 -0
- package/styles/components.scss +19 -0
- package/styles/index.scss +7 -0
- package/styles/theme.scss +44 -0
- package/styles/var.module.scss +32 -0
- package/styles/vue.scss +39 -0
- package/theme.scss +2 -0
- package/types/index.d.ts +66 -0
- package/utils/colorGradient.ts +139 -0
- package/utils/compat.ts +165 -0
- package/utils/compress.ts +34 -0
- package/utils/config.ts +95 -0
- package/utils/debounce.ts +7 -0
- package/utils/digit.ts +157 -0
- package/utils/function.ts +771 -0
- package/utils/http.ts +5 -0
- package/utils/index.ts +57 -0
- package/utils/locale.ts +296 -0
- package/utils/platform.ts +71 -0
- package/utils/route.ts +142 -0
- package/utils/test.ts +256 -0
- package/utils/throttle.ts +7 -0
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
|
|
3
|
+
import config from '../../utils/config';
|
|
4
|
+
|
|
5
|
+
const props = {
|
|
6
|
+
// input的label提示语
|
|
7
|
+
label: {
|
|
8
|
+
type: String,
|
|
9
|
+
default: '',
|
|
10
|
+
},
|
|
11
|
+
// 绑定的值
|
|
12
|
+
prop: {
|
|
13
|
+
type: String,
|
|
14
|
+
default: '',
|
|
15
|
+
},
|
|
16
|
+
// 是否显示表单域的下划线边框
|
|
17
|
+
borderBottom: {
|
|
18
|
+
type: [Boolean],
|
|
19
|
+
default: false,
|
|
20
|
+
},
|
|
21
|
+
// label的位置,left-左边,top-上边
|
|
22
|
+
labelPosition: {
|
|
23
|
+
type: String,
|
|
24
|
+
default: '',
|
|
25
|
+
},
|
|
26
|
+
// label的宽度,单位px
|
|
27
|
+
labelWidth: {
|
|
28
|
+
type: [String, Number],
|
|
29
|
+
default: '',
|
|
30
|
+
},
|
|
31
|
+
// 右侧图标
|
|
32
|
+
rightIcon: {
|
|
33
|
+
type: String,
|
|
34
|
+
default: '',
|
|
35
|
+
},
|
|
36
|
+
// 左侧图标
|
|
37
|
+
leftIcon: {
|
|
38
|
+
type: String,
|
|
39
|
+
default: '',
|
|
40
|
+
},
|
|
41
|
+
// 是否显示左边的必填星号,只作显示用,具体校验必填的逻辑,请在rules中配置
|
|
42
|
+
required: {
|
|
43
|
+
type: Boolean,
|
|
44
|
+
default: false,
|
|
45
|
+
},
|
|
46
|
+
leftIconStyle: {
|
|
47
|
+
type: [String, Object],
|
|
48
|
+
default: '',
|
|
49
|
+
},
|
|
50
|
+
customStyle: {
|
|
51
|
+
type: [Object, String],
|
|
52
|
+
default: () => ({}),
|
|
53
|
+
},
|
|
54
|
+
customClass: {
|
|
55
|
+
type: String,
|
|
56
|
+
default: '',
|
|
57
|
+
},
|
|
58
|
+
|
|
59
|
+
...config.props.formItem,
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
export default props;
|
|
@@ -0,0 +1,335 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<view class="uv-form-item" :class="[p.customClass]">
|
|
3
|
+
<view
|
|
4
|
+
class="uv-form-item__body"
|
|
5
|
+
:style="[bodyStyle]"
|
|
6
|
+
@tap="clickHandler"
|
|
7
|
+
>
|
|
8
|
+
<!-- 微信小程序中,将一个参数设置空字符串,结果会变成字符串"true" -->
|
|
9
|
+
<slot name="label">
|
|
10
|
+
<view
|
|
11
|
+
v-if="p.required || p.leftIcon || p.label"
|
|
12
|
+
class="uv-form-item__body__left"
|
|
13
|
+
:style="[leftStyle]"
|
|
14
|
+
>
|
|
15
|
+
<!-- 为了块对齐 -->
|
|
16
|
+
<view class="uv-form-item__body__left__content">
|
|
17
|
+
<text
|
|
18
|
+
v-if="p.required"
|
|
19
|
+
class="uv-form-item__body__left__content__required"
|
|
20
|
+
>*</text>
|
|
21
|
+
<view
|
|
22
|
+
v-if="p.leftIcon"
|
|
23
|
+
class="uv-form-item__body__left__content__icon"
|
|
24
|
+
>
|
|
25
|
+
<uv-icon
|
|
26
|
+
:name="p.leftIcon"
|
|
27
|
+
:custom-style="p.leftIconStyle"
|
|
28
|
+
></uv-icon>
|
|
29
|
+
</view>
|
|
30
|
+
<view
|
|
31
|
+
class="uv-form-item__body__left__content__label"
|
|
32
|
+
:style="[labelStyle]"
|
|
33
|
+
>
|
|
34
|
+
<text class="uv-form-item__body__left__content__label__text">{{ p.label }}</text>
|
|
35
|
+
</view>
|
|
36
|
+
</view>
|
|
37
|
+
</view>
|
|
38
|
+
</slot>
|
|
39
|
+
<view class="uv-form-item__body__right">
|
|
40
|
+
<view class="uv-form-item__body__right__content">
|
|
41
|
+
<view class="uv-form-item__body__right__content__slot">
|
|
42
|
+
<slot />
|
|
43
|
+
</view>
|
|
44
|
+
<view class="uv-form-item__body__right__content__icon">
|
|
45
|
+
<slot name="right" />
|
|
46
|
+
</view>
|
|
47
|
+
</view>
|
|
48
|
+
</view>
|
|
49
|
+
</view>
|
|
50
|
+
<slot name="error">
|
|
51
|
+
<uv-transition
|
|
52
|
+
v-if="!!message && parentData.errorType === 'message'"
|
|
53
|
+
:show="true"
|
|
54
|
+
:duration="100"
|
|
55
|
+
mode="fade"
|
|
56
|
+
>
|
|
57
|
+
<text
|
|
58
|
+
class="uv-form-item__body__right__message"
|
|
59
|
+
:style="[messageStyle]"
|
|
60
|
+
>{{ message }}</text>
|
|
61
|
+
</uv-transition>
|
|
62
|
+
</slot>
|
|
63
|
+
<uv-line
|
|
64
|
+
v-if="p.borderBottom"
|
|
65
|
+
:color="message && parentData.errorType === 'border-bottom' ? '#f56c6c' : '#d6d7d9'"
|
|
66
|
+
></uv-line>
|
|
67
|
+
</view>
|
|
68
|
+
</template>
|
|
69
|
+
|
|
70
|
+
<script setup lang="ts">
|
|
71
|
+
import { computed, inject, onUnmounted, provide, reactive, ref, watch } from 'vue'
|
|
72
|
+
import { $uv } from '../../utils'
|
|
73
|
+
import props from './props'
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
defineOptions({
|
|
77
|
+
name: 'uv-form-item',
|
|
78
|
+
// #ifdef UNI-APP-X
|
|
79
|
+
styleIsolation: 'app-and-page',
|
|
80
|
+
// #endif
|
|
81
|
+
virtualHost: true,
|
|
82
|
+
})
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* FormItem 表单域
|
|
86
|
+
* @description 此组件一般用于表单场景,可以配置Input输入框,Select弹出框,进行表单验证等。
|
|
87
|
+
* @tutorial https://www.uvui.cn/components/form.html
|
|
88
|
+
* @property {String} label input的label提示语
|
|
89
|
+
* @property {String} prop 绑定的值
|
|
90
|
+
* @property {String | Boolean} borderBottom 是否显示表单域的下划线边框
|
|
91
|
+
* @property {String | Number} labelWidth label的宽度,单位px
|
|
92
|
+
* @property {String} rightIcon 右侧图标
|
|
93
|
+
* @property {String} leftIcon 左侧图标
|
|
94
|
+
* @property {String | Object} leftIconStyle 左侧图标的样式
|
|
95
|
+
* @property {Boolean} required 是否显示左边的必填星号,只作显示用,具体校验必填的逻辑,请在rules中配置 (默认 false )
|
|
96
|
+
* @property {Object} customStyle 定义需要用到的外部样式
|
|
97
|
+
* @event {Function} click 点击时触发
|
|
98
|
+
* @example <uv-form-item label="姓名" prop="userInfo.name" borderBottom ref="item1"></uv-form-item>
|
|
99
|
+
*/
|
|
100
|
+
const p = defineProps(props)
|
|
101
|
+
|
|
102
|
+
const emit = defineEmits(['click'])
|
|
103
|
+
|
|
104
|
+
// 错误提示语
|
|
105
|
+
const message = ref<string | null>('')
|
|
106
|
+
|
|
107
|
+
// 注入 uv-form 提供的表单上下文
|
|
108
|
+
const formContext: any = inject('uv-form-context', null)
|
|
109
|
+
|
|
110
|
+
// 注册到 form 的句柄,form 通过它读取当前 prop / 写入错误信息
|
|
111
|
+
const handle: any = {
|
|
112
|
+
prop: p.prop,
|
|
113
|
+
setMessage: (msg: string | null) => {
|
|
114
|
+
message.value = msg
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
if (formContext) {
|
|
118
|
+
formContext.register(handle)
|
|
119
|
+
} else {
|
|
120
|
+
$uv.error('uv-form-item需要结合uv-form组件使用')
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
watch(
|
|
124
|
+
() => p.prop,
|
|
125
|
+
(prop: string) => {
|
|
126
|
+
handle.prop = prop
|
|
127
|
+
}
|
|
128
|
+
)
|
|
129
|
+
|
|
130
|
+
onUnmounted(() => {
|
|
131
|
+
if (formContext) formContext.unregister(handle)
|
|
132
|
+
})
|
|
133
|
+
|
|
134
|
+
// 提供给 uv-input / uv-textarea / uv-checkbox / uv-radio 等触发校验
|
|
135
|
+
const formItemContext: any = reactive({
|
|
136
|
+
prop: p.prop,
|
|
137
|
+
validate: (trigger: string) => {
|
|
138
|
+
if (formContext && p.prop) formContext.validateField([p.prop], null, trigger)
|
|
139
|
+
}
|
|
140
|
+
})
|
|
141
|
+
provide('uv-form-item-context', formItemContext)
|
|
142
|
+
|
|
143
|
+
watch(
|
|
144
|
+
() => p.prop,
|
|
145
|
+
(prop: string) => {
|
|
146
|
+
formItemContext.prop = prop
|
|
147
|
+
}
|
|
148
|
+
)
|
|
149
|
+
|
|
150
|
+
const parentData = computed(() => {
|
|
151
|
+
const ctx: any = formContext || {}
|
|
152
|
+
return {
|
|
153
|
+
// 提示文本的位置
|
|
154
|
+
labelPosition: p.labelPosition || ctx.labelPosition || 'left',
|
|
155
|
+
// 提示文本对齐方式
|
|
156
|
+
labelAlign: ctx.labelAlign || 'left',
|
|
157
|
+
// 提示文本的样式
|
|
158
|
+
labelStyle: ctx.labelStyle || {},
|
|
159
|
+
// 提示文本的宽度
|
|
160
|
+
labelWidth: p.labelWidth || ctx.labelWidth || 45,
|
|
161
|
+
// 错误提示方式
|
|
162
|
+
errorType: ctx.errorType || 'message'
|
|
163
|
+
}
|
|
164
|
+
})
|
|
165
|
+
|
|
166
|
+
const bodyStyle = computed(() => {
|
|
167
|
+
// 与旧版保持一致:自定义样式在前,flexDirection 在后覆盖
|
|
168
|
+
const customStyle = $uv.addStyle(p.customStyle) || {}
|
|
169
|
+
const style: any = {
|
|
170
|
+
flexDirection: parentData.value.labelPosition === 'left' ? 'row' : 'column'
|
|
171
|
+
}
|
|
172
|
+
return $uv.deepMerge(customStyle, style)
|
|
173
|
+
})
|
|
174
|
+
|
|
175
|
+
const leftStyle = computed(() => {
|
|
176
|
+
const style: any = {
|
|
177
|
+
width: $uv.addUnit(parentData.value.labelWidth),
|
|
178
|
+
marginBottom: parentData.value.labelPosition === 'left' ? 0 : '5px'
|
|
179
|
+
}
|
|
180
|
+
return style
|
|
181
|
+
})
|
|
182
|
+
|
|
183
|
+
const labelStyle = computed(() => {
|
|
184
|
+
const style: any = {
|
|
185
|
+
justifyContent:
|
|
186
|
+
parentData.value.labelAlign === 'left'
|
|
187
|
+
? 'flex-start'
|
|
188
|
+
: parentData.value.labelAlign === 'center'
|
|
189
|
+
? 'center'
|
|
190
|
+
: 'flex-end'
|
|
191
|
+
}
|
|
192
|
+
return $uv.deepMerge($uv.addStyle(parentData.value.labelStyle), style)
|
|
193
|
+
})
|
|
194
|
+
|
|
195
|
+
const messageStyle = computed(() => {
|
|
196
|
+
const style: any = {
|
|
197
|
+
marginLeft: $uv.addUnit(parentData.value.labelPosition === 'top' ? 0 : parentData.value.labelWidth)
|
|
198
|
+
}
|
|
199
|
+
return style
|
|
200
|
+
})
|
|
201
|
+
|
|
202
|
+
// 移除uv-form-item的校验结果
|
|
203
|
+
const clearValidate = () => {
|
|
204
|
+
message.value = null
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
// 清空当前的组件的校验结果,并重置为初始值
|
|
208
|
+
const resetField = () => {
|
|
209
|
+
if (!formContext) return
|
|
210
|
+
// 找到原始值
|
|
211
|
+
const value = $uv.getProperty(formContext.originalModel, p.prop)
|
|
212
|
+
// 将uv-form的model的prop属性链还原原始值
|
|
213
|
+
$uv.setProperty(formContext.model, p.prop, value)
|
|
214
|
+
// 移除校验结果
|
|
215
|
+
message.value = null
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
// 点击组件
|
|
219
|
+
const clickHandler = () => {
|
|
220
|
+
emit('click')
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
defineExpose({
|
|
224
|
+
clearValidate,
|
|
225
|
+
resetField
|
|
226
|
+
})
|
|
227
|
+
</script>
|
|
228
|
+
|
|
229
|
+
<style lang="scss">
|
|
230
|
+
@import '../../styles/components.scss';
|
|
231
|
+
@import '../../styles/color.scss';
|
|
232
|
+
|
|
233
|
+
.uv-form-item {
|
|
234
|
+
display: flex;
|
|
235
|
+
flex-direction: column;
|
|
236
|
+
font-size: 14px;
|
|
237
|
+
color: $uv-main-color;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
.uv-form-item__body {
|
|
241
|
+
display: flex;
|
|
242
|
+
flex-direction: row;
|
|
243
|
+
padding: 10px 0;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
.uv-form-item__body__left {
|
|
247
|
+
display: flex;
|
|
248
|
+
flex-direction: row;
|
|
249
|
+
align-items: center;
|
|
250
|
+
/* #ifndef APP-NVUE */
|
|
251
|
+
flex-shrink: 0;
|
|
252
|
+
/* #endif */
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
.uv-form-item__body__left__content {
|
|
256
|
+
display: flex;
|
|
257
|
+
flex-direction: row;
|
|
258
|
+
position: relative;
|
|
259
|
+
align-items: center;
|
|
260
|
+
padding-right: 10rpx;
|
|
261
|
+
/* #ifndef APP-NVUE */
|
|
262
|
+
width: 100%;
|
|
263
|
+
flex: none;
|
|
264
|
+
/* #endif */
|
|
265
|
+
}
|
|
266
|
+
|
|
267
|
+
.uv-form-item__body__left__content__icon {
|
|
268
|
+
margin-right: 8rpx;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
.uv-form-item__body__left__content__required {
|
|
272
|
+
position: absolute;
|
|
273
|
+
left: -9px;
|
|
274
|
+
color: $uv-error;
|
|
275
|
+
line-height: 20px;
|
|
276
|
+
font-size: 20px;
|
|
277
|
+
top: 3px;
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
.uv-form-item__body__left__content__label {
|
|
281
|
+
display: flex;
|
|
282
|
+
flex-direction: row;
|
|
283
|
+
align-items: center;
|
|
284
|
+
/* #ifndef APP-NVUE */
|
|
285
|
+
width: 100%;
|
|
286
|
+
flex: none;
|
|
287
|
+
overflow: visible;
|
|
288
|
+
/* #endif */
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
.uv-form-item__body__left__content__label__text {
|
|
292
|
+
/* #ifndef APP-NVUE */
|
|
293
|
+
flex-shrink: 0;
|
|
294
|
+
white-space: nowrap;
|
|
295
|
+
/* #endif */
|
|
296
|
+
/* #ifdef APP-NVUE */
|
|
297
|
+
lines: 1;
|
|
298
|
+
overflow: hidden;
|
|
299
|
+
text-overflow: ellipsis;
|
|
300
|
+
/* #endif */
|
|
301
|
+
color: $uv-main-color;
|
|
302
|
+
font-size: 15px;
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
.uv-form-item__body__right {
|
|
306
|
+
flex: 1;
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
.uv-form-item__body__right__content {
|
|
310
|
+
display: flex;
|
|
311
|
+
flex-direction: row;
|
|
312
|
+
align-items: center;
|
|
313
|
+
flex: 1;
|
|
314
|
+
}
|
|
315
|
+
|
|
316
|
+
.uv-form-item__body__right__content__slot {
|
|
317
|
+
flex: 1;
|
|
318
|
+
display: flex;
|
|
319
|
+
flex-direction: row;
|
|
320
|
+
align-items: center;
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
.uv-form-item__body__right__content__icon {
|
|
324
|
+
/* uv-ui 上游模板类名笔误导致该容器实际未应用样式,为保持 H5 demo 一致,这里不设置 margin-left */
|
|
325
|
+
color: $uv-light-color;
|
|
326
|
+
font-size: 30rpx;
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
.uv-form-item__body__right__message {
|
|
330
|
+
margin-top: -6px;
|
|
331
|
+
line-height: 24px;
|
|
332
|
+
font-size: 12px;
|
|
333
|
+
color: $uv-error;
|
|
334
|
+
}
|
|
335
|
+
</style>
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
export default {
|
|
3
|
+
'uvicon-level': 'e68f',
|
|
4
|
+
'uvicon-checkbox-mark': 'e659',
|
|
5
|
+
'uvicon-folder': 'e694',
|
|
6
|
+
'uvicon-movie': 'e67c',
|
|
7
|
+
'uvicon-star-fill': 'e61e',
|
|
8
|
+
'uvicon-star': 'e618',
|
|
9
|
+
'uvicon-phone-fill': 'e6ac',
|
|
10
|
+
'uvicon-phone': 'e6ba',
|
|
11
|
+
'uvicon-apple-fill': 'e635',
|
|
12
|
+
'uvicon-backspace': 'e64d',
|
|
13
|
+
'uvicon-attach': 'e640',
|
|
14
|
+
'uvicon-empty-data': 'e671',
|
|
15
|
+
'uvicon-empty-address': 'e68a',
|
|
16
|
+
'uvicon-empty-favor': 'e662',
|
|
17
|
+
'uvicon-empty-car': 'e657',
|
|
18
|
+
'uvicon-empty-order': 'e66b',
|
|
19
|
+
'uvicon-empty-list': 'e672',
|
|
20
|
+
'uvicon-empty-search': 'e677',
|
|
21
|
+
'uvicon-empty-permission': 'e67d',
|
|
22
|
+
'uvicon-empty-news': 'e67e',
|
|
23
|
+
'uvicon-empty-history': 'e685',
|
|
24
|
+
'uvicon-empty-coupon': 'e69b',
|
|
25
|
+
'uvicon-empty-page': 'e60e',
|
|
26
|
+
'uvicon-empty-wifi-off': 'e6cc',
|
|
27
|
+
'uvicon-reload': 'e627',
|
|
28
|
+
'uvicon-order': 'e695',
|
|
29
|
+
'uvicon-server-man': 'e601',
|
|
30
|
+
'uvicon-search': 'e632',
|
|
31
|
+
'uvicon-more-dot-fill': 'e66f',
|
|
32
|
+
'uvicon-scan': 'e631',
|
|
33
|
+
'uvicon-map': 'e665',
|
|
34
|
+
'uvicon-map-fill': 'e6a8',
|
|
35
|
+
'uvicon-tags': 'e621',
|
|
36
|
+
'uvicon-tags-fill': 'e613',
|
|
37
|
+
'uvicon-eye': 'e664',
|
|
38
|
+
'uvicon-eye-fill': 'e697',
|
|
39
|
+
'uvicon-eye-off': 'e69c',
|
|
40
|
+
'uvicon-eye-off-outline': 'e688',
|
|
41
|
+
'uvicon-mic': 'e66d',
|
|
42
|
+
'uvicon-mic-off': 'e691',
|
|
43
|
+
'uvicon-calendar': 'e65c',
|
|
44
|
+
'uvicon-trash': 'e623',
|
|
45
|
+
'uvicon-trash-fill': 'e6ce',
|
|
46
|
+
'uvicon-play-left': 'e6bf',
|
|
47
|
+
'uvicon-play-right': 'e6b3',
|
|
48
|
+
'uvicon-minus': 'e614',
|
|
49
|
+
'uvicon-plus': 'e625',
|
|
50
|
+
'uvicon-info-circle': 'e69f',
|
|
51
|
+
'uvicon-info-circle-fill': 'e6a7',
|
|
52
|
+
'uvicon-question-circle': 'e622',
|
|
53
|
+
'uvicon-question-circle-fill': 'e6bc',
|
|
54
|
+
'uvicon-close': 'e65a',
|
|
55
|
+
'uvicon-checkmark': 'e64a',
|
|
56
|
+
'uvicon-checkmark-circle': 'e643',
|
|
57
|
+
'uvicon-checkmark-circle-fill': 'e668',
|
|
58
|
+
'uvicon-setting': 'e602',
|
|
59
|
+
'uvicon-setting-fill': 'e6d0',
|
|
60
|
+
'uvicon-heart': 'e6a2',
|
|
61
|
+
'uvicon-heart-fill': 'e68b',
|
|
62
|
+
'uvicon-camera': 'e642',
|
|
63
|
+
'uvicon-camera-fill': 'e650',
|
|
64
|
+
'uvicon-more-circle': 'e69e',
|
|
65
|
+
'uvicon-more-circle-fill': 'e684',
|
|
66
|
+
'uvicon-chat': 'e656',
|
|
67
|
+
'uvicon-chat-fill': 'e63f',
|
|
68
|
+
'uvicon-bag': 'e647',
|
|
69
|
+
'uvicon-error-circle': 'e66e',
|
|
70
|
+
'uvicon-error-circle-fill': 'e655',
|
|
71
|
+
'uvicon-close-circle': 'e64e',
|
|
72
|
+
'uvicon-close-circle-fill': 'e666',
|
|
73
|
+
'uvicon-share': 'e629',
|
|
74
|
+
'uvicon-share-fill': 'e6bb',
|
|
75
|
+
'uvicon-share-square': 'e6c4',
|
|
76
|
+
'uvicon-shopping-cart': 'e6cb',
|
|
77
|
+
'uvicon-shopping-cart-fill': 'e630',
|
|
78
|
+
'uvicon-bell': 'e651',
|
|
79
|
+
'uvicon-bell-fill': 'e604',
|
|
80
|
+
'uvicon-list': 'e690',
|
|
81
|
+
'uvicon-list-dot': 'e6a9',
|
|
82
|
+
'uvicon-zhifubao-circle-fill': 'e617',
|
|
83
|
+
'uvicon-weixin-circle-fill': 'e6cd',
|
|
84
|
+
'uvicon-weixin-fill': 'e620',
|
|
85
|
+
'uvicon-qq-fill': 'e608',
|
|
86
|
+
'uvicon-qq-circle-fill': 'e6b9',
|
|
87
|
+
'uvicon-moments-circel-fill': 'e6c2',
|
|
88
|
+
'uvicon-moments': 'e6a0',
|
|
89
|
+
'uvicon-car': 'e64f',
|
|
90
|
+
'uvicon-car-fill': 'e648',
|
|
91
|
+
'uvicon-warning-fill': 'e6c7',
|
|
92
|
+
'uvicon-warning': 'e6c1',
|
|
93
|
+
'uvicon-clock-fill': 'e64b',
|
|
94
|
+
'uvicon-clock': 'e66c',
|
|
95
|
+
'uvicon-edit-pen': 'e65d',
|
|
96
|
+
'uvicon-edit-pen-fill': 'e679',
|
|
97
|
+
'uvicon-email': 'e673',
|
|
98
|
+
'uvicon-email-fill': 'e683',
|
|
99
|
+
'uvicon-minus-circle': 'e6a5',
|
|
100
|
+
'uvicon-plus-circle': 'e603',
|
|
101
|
+
'uvicon-plus-circle-fill': 'e611',
|
|
102
|
+
'uvicon-file-text': 'e687',
|
|
103
|
+
'uvicon-file-text-fill': 'e67f',
|
|
104
|
+
'uvicon-pushpin': 'e6d1',
|
|
105
|
+
'uvicon-pushpin-fill': 'e6b6',
|
|
106
|
+
'uvicon-grid': 'e68c',
|
|
107
|
+
'uvicon-grid-fill': 'e698',
|
|
108
|
+
'uvicon-play-circle': 'e6af',
|
|
109
|
+
'uvicon-play-circle-fill': 'e62a',
|
|
110
|
+
'uvicon-pause-circle-fill': 'e60c',
|
|
111
|
+
'uvicon-pause': 'e61c',
|
|
112
|
+
'uvicon-pause-circle': 'e696',
|
|
113
|
+
'uvicon-gift-fill': 'e6b0',
|
|
114
|
+
'uvicon-gift': 'e680',
|
|
115
|
+
'uvicon-kefu-ermai': 'e660',
|
|
116
|
+
'uvicon-server-fill': 'e610',
|
|
117
|
+
'uvicon-coupon-fill': 'e64c',
|
|
118
|
+
'uvicon-coupon': 'e65f',
|
|
119
|
+
'uvicon-integral': 'e693',
|
|
120
|
+
'uvicon-integral-fill': 'e6b1',
|
|
121
|
+
'uvicon-home-fill': 'e68e',
|
|
122
|
+
'uvicon-home': 'e67b',
|
|
123
|
+
'uvicon-account': 'e63a',
|
|
124
|
+
'uvicon-account-fill': 'e653',
|
|
125
|
+
'uvicon-thumb-down-fill': 'e628',
|
|
126
|
+
'uvicon-thumb-down': 'e60a',
|
|
127
|
+
'uvicon-thumb-up': 'e612',
|
|
128
|
+
'uvicon-thumb-up-fill': 'e62c',
|
|
129
|
+
'uvicon-lock-fill': 'e6a6',
|
|
130
|
+
'uvicon-lock-open': 'e68d',
|
|
131
|
+
'uvicon-lock-opened-fill': 'e6a1',
|
|
132
|
+
'uvicon-lock': 'e69d',
|
|
133
|
+
'uvicon-red-packet': 'e6c3',
|
|
134
|
+
'uvicon-photo-fill': 'e6b4',
|
|
135
|
+
'uvicon-photo': 'e60d',
|
|
136
|
+
'uvicon-volume-off-fill': 'e6c8',
|
|
137
|
+
'uvicon-volume-off': 'e6bd',
|
|
138
|
+
'uvicon-volume-fill': 'e624',
|
|
139
|
+
'uvicon-volume': 'e605',
|
|
140
|
+
'uvicon-download': 'e670',
|
|
141
|
+
'uvicon-arrow-up-fill': 'e636',
|
|
142
|
+
'uvicon-arrow-down-fill': 'e638',
|
|
143
|
+
'uvicon-play-left-fill': 'e6ae',
|
|
144
|
+
'uvicon-play-right-fill': 'e6ad',
|
|
145
|
+
'uvicon-arrow-downward': 'e634',
|
|
146
|
+
'uvicon-arrow-leftward': 'e63b',
|
|
147
|
+
'uvicon-arrow-rightward': 'e644',
|
|
148
|
+
'uvicon-arrow-upward': 'e641',
|
|
149
|
+
'uvicon-arrow-down': 'e63e',
|
|
150
|
+
'uvicon-arrow-right': 'e63c',
|
|
151
|
+
'uvicon-arrow-left': 'e646',
|
|
152
|
+
'uvicon-arrow-up': 'e633',
|
|
153
|
+
'uvicon-skip-back-left': 'e6c5',
|
|
154
|
+
'uvicon-skip-forward-right': 'e61f',
|
|
155
|
+
'uvicon-arrow-left-double': 'e637',
|
|
156
|
+
'uvicon-man': 'e675',
|
|
157
|
+
'uvicon-woman': 'e626',
|
|
158
|
+
'uvicon-en': 'e6b8',
|
|
159
|
+
'uvicon-twitte': 'e607',
|
|
160
|
+
'uvicon-twitter-circle-fill': 'e6cf'
|
|
161
|
+
}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
// @ts-nocheck
|
|
2
|
+
|
|
3
|
+
import icons from './icons';
|
|
4
|
+
import config from '../../utils/config';
|
|
5
|
+
|
|
6
|
+
const props = {
|
|
7
|
+
icons: {
|
|
8
|
+
type: Object,
|
|
9
|
+
default: () => icons,
|
|
10
|
+
},
|
|
11
|
+
name: {
|
|
12
|
+
type: String,
|
|
13
|
+
default: '',
|
|
14
|
+
},
|
|
15
|
+
color: {
|
|
16
|
+
type: String,
|
|
17
|
+
default: '',
|
|
18
|
+
},
|
|
19
|
+
size: {
|
|
20
|
+
type: [String, Number],
|
|
21
|
+
default: '16px',
|
|
22
|
+
},
|
|
23
|
+
bold: {
|
|
24
|
+
type: Boolean,
|
|
25
|
+
default: false,
|
|
26
|
+
},
|
|
27
|
+
index: {
|
|
28
|
+
type: [String, Number],
|
|
29
|
+
default: null,
|
|
30
|
+
},
|
|
31
|
+
hoverClass: {
|
|
32
|
+
type: String,
|
|
33
|
+
default: '',
|
|
34
|
+
},
|
|
35
|
+
customPrefix: {
|
|
36
|
+
type: String,
|
|
37
|
+
default: 'uvicon',
|
|
38
|
+
},
|
|
39
|
+
label: {
|
|
40
|
+
type: [String, Number],
|
|
41
|
+
default: '',
|
|
42
|
+
},
|
|
43
|
+
labelPos: {
|
|
44
|
+
type: String,
|
|
45
|
+
default: 'right',
|
|
46
|
+
},
|
|
47
|
+
labelSize: {
|
|
48
|
+
type: [String, Number],
|
|
49
|
+
default: '15px',
|
|
50
|
+
},
|
|
51
|
+
labelColor: {
|
|
52
|
+
type: String,
|
|
53
|
+
default: '#606266',
|
|
54
|
+
},
|
|
55
|
+
space: {
|
|
56
|
+
type: [String, Number],
|
|
57
|
+
default: '3px',
|
|
58
|
+
},
|
|
59
|
+
imgMode: {
|
|
60
|
+
type: String,
|
|
61
|
+
default: 'aspectFit',
|
|
62
|
+
},
|
|
63
|
+
width: {
|
|
64
|
+
type: [String, Number],
|
|
65
|
+
default: '',
|
|
66
|
+
},
|
|
67
|
+
height: {
|
|
68
|
+
type: [String, Number],
|
|
69
|
+
default: '',
|
|
70
|
+
},
|
|
71
|
+
top: {
|
|
72
|
+
type: [String, Number],
|
|
73
|
+
default: 0,
|
|
74
|
+
},
|
|
75
|
+
stop: {
|
|
76
|
+
type: Boolean,
|
|
77
|
+
default: false,
|
|
78
|
+
},
|
|
79
|
+
customStyle: {
|
|
80
|
+
type: [Object, String],
|
|
81
|
+
default: () => ({}),
|
|
82
|
+
},
|
|
83
|
+
customClass: {
|
|
84
|
+
type: String,
|
|
85
|
+
default: '',
|
|
86
|
+
},
|
|
87
|
+
|
|
88
|
+
...config.props.icon,
|
|
89
|
+
};
|
|
90
|
+
|
|
91
|
+
export default props;
|