@zfqh/uview-x 0.0.6 → 0.0.8

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.
Files changed (55) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +52 -9
  3. package/components/uv-badge/uv-badge.vue +4 -4
  4. package/components/uv-button/uv-button.vue +11 -11
  5. package/components/uv-checkbox/uv-checkbox.vue +11 -9
  6. package/components/uv-checkbox-group/uv-checkbox-group.vue +2 -2
  7. package/components/uv-code/uv-code.vue +2 -2
  8. package/components/uv-dialog/uv-dialog.vue +10 -11
  9. package/components/uv-form/uv-form.vue +244 -246
  10. package/components/uv-form-item/uv-form-item.vue +10 -9
  11. package/components/uv-icon/uv-icon.vue +13 -13
  12. package/components/uv-input/uv-input.vue +6 -5
  13. package/components/uv-line/uv-line.vue +7 -6
  14. package/components/uv-line-progress/uv-line-progress.vue +5 -5
  15. package/components/uv-loading-icon/uv-loading-icon.vue +9 -8
  16. package/components/uv-overlay/uv-overlay.vue +3 -2
  17. package/components/uv-popup/uv-popup.vue +6 -5
  18. package/components/uv-safe-bottom/uv-safe-bottom.vue +4 -3
  19. package/components/uv-status-bar/uv-status-bar.vue +4 -3
  20. package/components/uv-tabs/uv-tabs.vue +15 -12
  21. package/components/uv-transition/uv-transition.vue +2 -2
  22. package/hooks/index.ts +5 -5
  23. package/hooks/useDebounce.ts +33 -35
  24. package/hooks/useI18n.ts +4 -3
  25. package/hooks/useThrottle.ts +36 -38
  26. package/index.ts +50 -29
  27. package/locales/en.ts +56 -0
  28. package/locales/es.ts +57 -0
  29. package/locales/fr.ts +57 -0
  30. package/locales/index.ts +15 -159
  31. package/locales/ru.ts +57 -0
  32. package/locales/zh-Hans.ts +57 -0
  33. package/locales/zh-Hant.ts +57 -0
  34. package/package.json +2 -2
  35. package/types/index.d.ts +68 -59
  36. package/utils/color.ts +139 -0
  37. package/utils/compress.ts +28 -28
  38. package/utils/config.ts +46 -11
  39. package/utils/debounce.ts +4 -4
  40. package/utils/function.ts +11 -89
  41. package/utils/locale.ts +444 -270
  42. package/utils/merge.ts +74 -0
  43. package/utils/platform.ts +28 -28
  44. package/utils/route.ts +123 -129
  45. package/utils/scrollbar.ts +19 -19
  46. package/utils/throttle.ts +4 -4
  47. package/locales/en-US.ts +0 -79
  48. package/locales/es-ES.ts +0 -79
  49. package/locales/fr-FR.ts +0 -79
  50. package/locales/ru-RU.ts +0 -79
  51. package/locales/zh-CN.ts +0 -79
  52. package/locales/zh-TW.ts +0 -79
  53. package/utils/colorGradient.ts +0 -139
  54. package/utils/index.ts +0 -58
  55. /package/components/uv-form/{valid.ts → validator.ts} +0 -0
package/locales/es-ES.ts DELETED
@@ -1,79 +0,0 @@
1
- /**
2
- * uview-x 可选组件语言包:西班牙语(es-ES)。
3
- *
4
- * 不参与内部聚合、不会被 `createI18n` 自动合并;需要西班牙语时由使用方显式引入并合并:
5
- * `import esES from '@zfqh/uview-x/locales/es-ES'`,再在 `createI18n({ messages: { 'es-ES': esES } })` 中使用。
6
- * 键空间固定为 `uv.*`,`uv.form.*` 与 async-validator 默认 messages 完全对齐,`%s` 占位符由校验器替换。
7
- */
8
- const esES = {
9
- uv: {
10
- dialog: {
11
- title: 'Consejo',
12
- cancel: 'Cancelar',
13
- confirm: 'Confirmar',
14
- },
15
- code: {
16
- start: 'Obtener código',
17
- // 组件会把 x / X 替换为剩余秒数
18
- change: 'X segundos para reenviar',
19
- end: 'Reenviar',
20
- },
21
- time: {
22
- justNow: 'Ahora mismo',
23
- minutesAgo: 'hace {n} minutos',
24
- hoursAgo: 'hace {n} horas',
25
- daysAgo: 'hace {n} días',
26
- monthsAgo: 'hace {n} meses',
27
- yearsAgo: 'hace {n} años',
28
- },
29
- form: {
30
- default: 'Error de validación en el campo %s',
31
- required: '%s es obligatorio',
32
- enum: '%s debe ser uno de %s',
33
- whitespace: '%s no puede estar vacío',
34
- date: {
35
- format: '%s la fecha %s no es válida para el formato %s',
36
- parse: '%s no se pudo analizar la fecha, %s no es válido',
37
- invalid: '%s la fecha %s no es válida',
38
- },
39
- types: {
40
- string: '%s no es de tipo %s',
41
- method: '%s no es de tipo %s (función)',
42
- array: '%s no es de tipo %s',
43
- object: '%s no es de tipo %s',
44
- number: '%s no es de tipo %s',
45
- date: '%s no es de tipo %s',
46
- boolean: '%s no es de tipo %s',
47
- integer: '%s no es de tipo %s',
48
- float: '%s no es de tipo %s',
49
- regexp: '%s no es un %s válido',
50
- email: '%s no es un %s válido',
51
- url: '%s no es un %s válido',
52
- hex: '%s no es un %s válido',
53
- },
54
- string: {
55
- len: '%s debe tener exactamente %s caracteres',
56
- min: '%s debe tener al menos %s caracteres',
57
- max: '%s no puede tener más de %s caracteres',
58
- range: '%s debe tener entre %s y %s caracteres',
59
- },
60
- number: {
61
- len: '%s debe ser igual a %s',
62
- min: '%s no puede ser menor que %s',
63
- max: '%s no puede ser mayor que %s',
64
- range: '%s debe estar entre %s y %s',
65
- },
66
- array: {
67
- len: '%s debe tener exactamente %s elementos',
68
- min: '%s no puede tener menos de %s elementos',
69
- max: '%s no puede tener más de %s elementos',
70
- range: '%s debe tener entre %s y %s elementos',
71
- },
72
- pattern: {
73
- mismatch: '%s el valor %s no coincide con el patrón %s',
74
- },
75
- },
76
- },
77
- };
78
-
79
- export default esES;
package/locales/fr-FR.ts DELETED
@@ -1,79 +0,0 @@
1
- /**
2
- * uview-x 可选组件语言包:法语(fr-FR)。
3
- *
4
- * 不参与内部聚合、不会被 `createI18n` 自动合并;需要法语时由使用方显式引入并合并:
5
- * `import frFR from '@zfqh/uview-x/locales/fr-FR'`,再在 `createI18n({ messages: { 'fr-FR': frFR } })` 中使用。
6
- * 键空间固定为 `uv.*`,`uv.form.*` 与 async-validator 默认 messages 完全对齐,`%s` 占位符由校验器替换。
7
- */
8
- const frFR = {
9
- uv: {
10
- dialog: {
11
- title: 'Conseil',
12
- cancel: 'Annuler',
13
- confirm: 'Confirmer',
14
- },
15
- code: {
16
- start: 'Obtenir le code',
17
- // 组件会把 x / X 替换为剩余秒数
18
- change: 'X secondes avant de renvoyer',
19
- end: 'Renvoyer',
20
- },
21
- time: {
22
- justNow: "À l'instant",
23
- minutesAgo: 'il y a {n} minutes',
24
- hoursAgo: 'il y a {n} heures',
25
- daysAgo: 'il y a {n} jours',
26
- monthsAgo: 'il y a {n} mois',
27
- yearsAgo: 'il y a {n} ans',
28
- },
29
- form: {
30
- default: 'Erreur de validation du champ %s',
31
- required: '%s est requis',
32
- enum: "%s doit être l'un de %s",
33
- whitespace: '%s ne peut pas être vide',
34
- date: {
35
- format: "%s la date %s n'est pas valide pour le format %s",
36
- parse: "%s la date n'a pas pu être analysée, %s n'est pas valide",
37
- invalid: "%s la date %s n'est pas valide",
38
- },
39
- types: {
40
- string: "%s n'est pas de type %s",
41
- method: "%s n'est pas de type %s (fonction)",
42
- array: "%s n'est pas de type %s",
43
- object: "%s n'est pas de type %s",
44
- number: "%s n'est pas de type %s",
45
- date: "%s n'est pas de type %s",
46
- boolean: "%s n'est pas de type %s",
47
- integer: "%s n'est pas de type %s",
48
- float: "%s n'est pas de type %s",
49
- regexp: "%s n'est pas un %s valide",
50
- email: "%s n'est pas un %s valide",
51
- url: "%s n'est pas un %s valide",
52
- hex: "%s n'est pas un %s valide",
53
- },
54
- string: {
55
- len: '%s doit contenir exactement %s caractères',
56
- min: '%s doit contenir au moins %s caractères',
57
- max: '%s ne peut pas dépasser %s caractères',
58
- range: '%s doit contenir entre %s et %s caractères',
59
- },
60
- number: {
61
- len: '%s doit être égal à %s',
62
- min: '%s ne peut pas être inférieur à %s',
63
- max: '%s ne peut pas être supérieur à %s',
64
- range: '%s doit être compris entre %s et %s',
65
- },
66
- array: {
67
- len: '%s doit contenir exactement %s éléments',
68
- min: '%s ne peut pas contenir moins de %s éléments',
69
- max: '%s ne peut pas contenir plus de %s éléments',
70
- range: '%s doit contenir entre %s et %s éléments',
71
- },
72
- pattern: {
73
- mismatch: '%s la valeur %s ne correspond pas au motif %s',
74
- },
75
- },
76
- },
77
- };
78
-
79
- export default frFR;
package/locales/ru-RU.ts DELETED
@@ -1,79 +0,0 @@
1
- /**
2
- * uview-x 可选组件语言包:俄语(ru-RU)。
3
- *
4
- * 不参与内部聚合、不会被 `createI18n` 自动合并;需要俄语时由使用方显式引入并合并:
5
- * `import ruRU from '@zfqh/uview-x/locales/ru-RU'`,再在 `createI18n({ messages: { 'ru-RU': ruRU } })` 中使用。
6
- * 键空间固定为 `uv.*`,`uv.form.*` 与 async-validator 默认 messages 完全对齐,`%s` 占位符由校验器替换。
7
- */
8
- const ruRU = {
9
- uv: {
10
- dialog: {
11
- title: 'Подсказка',
12
- cancel: 'Отмена',
13
- confirm: 'Подтвердить',
14
- },
15
- code: {
16
- start: 'Получить код',
17
- // 组件会把 x / X 替换为剩余秒数
18
- change: 'Повторная отправка через X секунд',
19
- end: 'Отправить повторно',
20
- },
21
- time: {
22
- justNow: 'Только что',
23
- minutesAgo: '{n} мин. назад',
24
- hoursAgo: '{n} ч. назад',
25
- daysAgo: '{n} дн. назад',
26
- monthsAgo: '{n} мес. назад',
27
- yearsAgo: '{n} г. назад',
28
- },
29
- form: {
30
- default: 'Ошибка проверки поля %s',
31
- required: '%s обязательно для заполнения',
32
- enum: '%s должно быть одним из %s',
33
- whitespace: '%s не может быть пустым',
34
- date: {
35
- format: '%s дата %s недействительна для формата %s',
36
- parse: '%s не удалось разобрать дату, %s недействительна',
37
- invalid: '%s дата %s недействительна',
38
- },
39
- types: {
40
- string: '%s не является типом %s',
41
- method: '%s не является типом %s (функция)',
42
- array: '%s не является типом %s',
43
- object: '%s не является типом %s',
44
- number: '%s не является типом %s',
45
- date: '%s не является типом %s',
46
- boolean: '%s не является типом %s',
47
- integer: '%s не является типом %s',
48
- float: '%s не является типом %s',
49
- regexp: '%s не является допустимым %s',
50
- email: '%s не является допустимым %s',
51
- url: '%s не является допустимым %s',
52
- hex: '%s не является допустимым %s',
53
- },
54
- string: {
55
- len: 'Длина %s должна быть ровно %s символов',
56
- min: 'Длина %s должна быть не менее %s символов',
57
- max: 'Длина %s не должна превышать %s символов',
58
- range: 'Длина %s должна быть от %s до %s символов',
59
- },
60
- number: {
61
- len: '%s должно быть равно %s',
62
- min: '%s не может быть меньше %s',
63
- max: '%s не может быть больше %s',
64
- range: '%s должно быть между %s и %s',
65
- },
66
- array: {
67
- len: 'Длина %s должна быть ровно %s элементов',
68
- min: 'Длина %s должна быть не меньше %s элементов',
69
- max: 'Длина %s не должна превышать %s элементов',
70
- range: 'Длина %s должна быть от %s до %s элементов',
71
- },
72
- pattern: {
73
- mismatch: '%s значение %s не соответствует шаблону %s',
74
- },
75
- },
76
- },
77
- };
78
-
79
- export default ruRU;
package/locales/zh-CN.ts DELETED
@@ -1,79 +0,0 @@
1
- /**
2
- * uview-x 默认组件语言包:简体中文(zh-CN)。
3
- *
4
- * 默认语言由 `createI18n` 自动注入(可传 `messages['zh-CN']` 覆盖同名 key);
5
- * 键空间固定为 `uv.*`;
6
- * `uv.form.*` 与 `components/uv-form/valid.ts` 的 async-validator 默认 messages 对齐,`%s` 占位符由校验器替换。
7
- */
8
- const zhCN = {
9
- uv: {
10
- dialog: {
11
- title: '提示',
12
- cancel: '取消',
13
- confirm: '确定',
14
- },
15
- code: {
16
- start: '获取验证码',
17
- // 组件会把 x / X 替换为剩余秒数
18
- change: 'X秒重新获取',
19
- end: '重新获取',
20
- },
21
- time: {
22
- justNow: '刚刚',
23
- minutesAgo: '{n}分钟前',
24
- hoursAgo: '{n}小时前',
25
- daysAgo: '{n}天前',
26
- monthsAgo: '{n}个月前',
27
- yearsAgo: '{n}年前',
28
- },
29
- form: {
30
- default: '%s 校验失败',
31
- required: '%s 是必填项',
32
- enum: '%s 必须是 %s 之一',
33
- whitespace: '%s 不能为空',
34
- date: {
35
- format: '%s 的日期 %s 格式 %s 无效',
36
- parse: '%s 的日期无法解析,%s 无效',
37
- invalid: '%s 的日期 %s 无效',
38
- },
39
- types: {
40
- string: '%s 不是 %s 类型',
41
- method: '%s 不是 %s 类型',
42
- array: '%s 不是 %s 类型',
43
- object: '%s 不是 %s 类型',
44
- number: '%s 不是 %s 类型',
45
- date: '%s 不是 %s 类型',
46
- boolean: '%s 不是 %s 类型',
47
- integer: '%s 不是 %s 类型',
48
- float: '%s 不是 %s 类型',
49
- regexp: '%s 不是有效的 %s 类型',
50
- email: '%s 不是有效的 %s 类型',
51
- url: '%s 不是有效的 %s 类型',
52
- hex: '%s 不是有效的 %s 类型',
53
- },
54
- string: {
55
- len: '%s 长度必须为 %s 个字符',
56
- min: '%s 至少为 %s 个字符',
57
- max: '%s 不能超过 %s 个字符',
58
- range: '%s 长度必须在 %s 到 %s 个字符之间',
59
- },
60
- number: {
61
- len: '%s 必须等于 %s',
62
- min: '%s 不能小于 %s',
63
- max: '%s 不能大于 %s',
64
- range: '%s 必须在 %s 到 %s 之间',
65
- },
66
- array: {
67
- len: '%s 长度必须为 %s',
68
- min: '%s 长度不能小于 %s',
69
- max: '%s 长度不能大于 %s',
70
- range: '%s 长度必须在 %s 到 %s 之间',
71
- },
72
- pattern: {
73
- mismatch: '%s 的值 %s 不匹配格式 %s',
74
- },
75
- },
76
- },
77
- };
78
-
79
- export default zhCN;
package/locales/zh-TW.ts DELETED
@@ -1,79 +0,0 @@
1
- /**
2
- * uview-x 可选组件语言包:繁体中文(zh-TW)。
3
- *
4
- * 不参与内部聚合、不会被 `createI18n` 自动合并;需要繁体中文时由使用方显式引入并合并:
5
- * `import zhTW from '@zfqh/uview-x/locales/zh-TW'`,再在 `createI18n({ messages: { 'zh-TW': zhTW } })` 中使用。
6
- * 键空间固定为 `uv.*`,`uv.form.*` 与 async-validator 默认 messages 完全对齐,`%s` 占位符由校验器替换。
7
- */
8
- const zhTW = {
9
- uv: {
10
- dialog: {
11
- title: '提示',
12
- cancel: '取消',
13
- confirm: '確定',
14
- },
15
- code: {
16
- start: '取得驗證碼',
17
- // 组件会把 x / X 替换为剩余秒数
18
- change: 'X秒重新取得',
19
- end: '重新取得',
20
- },
21
- time: {
22
- justNow: '剛剛',
23
- minutesAgo: '{n}分鐘前',
24
- hoursAgo: '{n}小時前',
25
- daysAgo: '{n}天前',
26
- monthsAgo: '{n}個月前',
27
- yearsAgo: '{n}年前',
28
- },
29
- form: {
30
- default: '%s 驗證失敗',
31
- required: '%s 為必填項',
32
- enum: '%s 必須是 %s 之一',
33
- whitespace: '%s 不能為空',
34
- date: {
35
- format: '%s 的日期 %s 格式 %s 無效',
36
- parse: '%s 的日期無法解析,%s 無效',
37
- invalid: '%s 的日期 %s 無效',
38
- },
39
- types: {
40
- string: '%s 不是 %s 類型',
41
- method: '%s 不是 %s 類型',
42
- array: '%s 不是 %s 類型',
43
- object: '%s 不是 %s 類型',
44
- number: '%s 不是 %s 類型',
45
- date: '%s 不是 %s 類型',
46
- boolean: '%s 不是 %s 類型',
47
- integer: '%s 不是 %s 類型',
48
- float: '%s 不是 %s 類型',
49
- regexp: '%s 不是有效的 %s 類型',
50
- email: '%s 不是有效的 %s 類型',
51
- url: '%s 不是有效的 %s 類型',
52
- hex: '%s 不是有效的 %s 類型',
53
- },
54
- string: {
55
- len: '%s 長度必須為 %s 個字元',
56
- min: '%s 至少為 %s 個字元',
57
- max: '%s 不能超過 %s 個字元',
58
- range: '%s 長度必須在 %s 到 %s 個字元之間',
59
- },
60
- number: {
61
- len: '%s 必須等於 %s',
62
- min: '%s 不能小於 %s',
63
- max: '%s 不能大於 %s',
64
- range: '%s 必須在 %s 到 %s 之間',
65
- },
66
- array: {
67
- len: '%s 長度必須為 %s',
68
- min: '%s 長度不能小於 %s',
69
- max: '%s 長度不能大於 %s',
70
- range: '%s 長度必須在 %s 到 %s 之間',
71
- },
72
- pattern: {
73
- mismatch: '%s 的值 %s 與格式 %s 不符',
74
- },
75
- },
76
- },
77
- };
78
-
79
- export default zhTW;
@@ -1,139 +0,0 @@
1
- /**
2
- * 求两个颜色之间的渐变值
3
- * @param {string} startColor 开始的颜色
4
- * @param {string} endColor 结束的颜色
5
- * @param {number} step 颜色等分的份额
6
- * */
7
- export function colorGradient(
8
- startColor = 'rgb(0, 0, 0)',
9
- endColor = 'rgb(255, 255, 255)',
10
- step = 10
11
- ): string[] {
12
- const startRGB = hexToRgb(startColor, false) as number[] // 转换为rgb数组模式
13
- const startR = startRGB[0]
14
- const startG = startRGB[1]
15
- const startB = startRGB[2]
16
-
17
- const endRGB = hexToRgb(endColor, false) as number[]
18
- const endR = endRGB[0]
19
- const endG = endRGB[1]
20
- const endB = endRGB[2]
21
-
22
- const sR = (endR - startR) / step // 总差值
23
- const sG = (endG - startG) / step
24
- const sB = (endB - startB) / step
25
- const colorArr = []
26
- for (let i = 0; i < step; i++) {
27
- // 计算每一步的hex值
28
- let hex = rgbToHex(`rgb(${Math.round((sR * i + startR))},${Math.round((sG * i + startG))},${Math.round((sB
29
- * i + startB))})`)
30
- // 确保第一个颜色值为startColor的值
31
- if (i === 0) hex = rgbToHex(startColor)
32
- // 确保最后一个颜色值为endColor的值
33
- if (i === step - 1) hex = rgbToHex(endColor)
34
- colorArr.push(hex)
35
- }
36
- return colorArr
37
- }
38
-
39
- /**
40
- * 将颜色转换为 RGB。
41
- *
42
- * @param sColor 颜色字符串,支持 `#rgb`、`#rrggbb`、`rgb(...)`。
43
- * @param str 为 `true`(默认)时返回 `rgb(r,g,b)` 字符串;为 `false` 时返回 `[r,g,b]` 数组。
44
- * @returns `str=false` 时返回 RGB 数组;否则返回 rgb 字符串;无法识别的颜色原样返回。
45
- */
46
- export function hexToRgb(sColor: string, str = true): string | number[] {
47
- const reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/
48
- sColor = String(sColor).toLowerCase()
49
- if (sColor && reg.test(sColor)) {
50
- if (sColor.length === 4) {
51
- let sColorNew = '#'
52
- for (let i = 1; i < 4; i += 1) {
53
- sColorNew += sColor.slice(i, i + 1).concat(sColor.slice(i, i + 1))
54
- }
55
- sColor = sColorNew
56
- }
57
- // 处理六位的颜色值
58
- const sColorChange = []
59
- for (let i = 1; i < 7; i += 2) {
60
- sColorChange.push(parseInt(`0x${sColor.slice(i, i + 2)}`))
61
- }
62
- if (!str) {
63
- return sColorChange
64
- }
65
- return `rgb(${sColorChange[0]},${sColorChange[1]},${sColorChange[2]})`
66
- } if (/^(rgb|RGB)/.test(sColor)) {
67
- const arr = sColor.replace(/(?:\(|\)|rgb|RGB)*/g, '').split(',')
68
- return arr.map((val) => Number(val))
69
- }
70
- return sColor
71
- }
72
-
73
- // 将rgb表示方式转换为hex表示方式
74
- export function rgbToHex(rgb: string): string {
75
- const _this = rgb
76
- const reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/
77
- if (/^(rgb|RGB)/.test(_this)) {
78
- const aColor = _this.replace(/(?:\(|\)|rgb|RGB)*/g, '').split(',')
79
- let strHex = '#'
80
- for (let i = 0; i < aColor.length; i++) {
81
- let hex = Number(aColor[i]).toString(16)
82
- hex = String(hex).length == 1 ? `${0}${hex}` : hex // 保证每个rgb的值为2位
83
- if (hex === '0') {
84
- hex += hex
85
- }
86
- strHex += hex
87
- }
88
- if (strHex.length !== 7) {
89
- strHex = _this
90
- }
91
- return strHex
92
- } if (reg.test(_this)) {
93
- const aNum = _this.replace(/#/, '').split('')
94
- if (aNum.length === 6) {
95
- return _this
96
- } if (aNum.length === 3) {
97
- let numHex = '#'
98
- for (let i = 0; i < aNum.length; i += 1) {
99
- numHex += (aNum[i] + aNum[i])
100
- }
101
- return numHex
102
- }
103
- } else {
104
- return _this
105
- }
106
- // 合法 hex 但长度不是 3/6 时保持原值返回,保证返回类型为 string
107
- return _this
108
- }
109
-
110
- /**
111
- * JS颜色十六进制转换为rgb或rgba,返回的格式为 rgba(255,255,255,0.5)字符串
112
- * sHex为传入的十六进制的色值
113
- * alpha为rgba的透明度
114
- */
115
- export function colorToRgba(color: string, alpha: number): string {
116
- color = rgbToHex(color)
117
- // 十六进制颜色值的正则表达式
118
- const reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/
119
- /* 16进制颜色转为RGB格式 */
120
- let sColor = String(color).toLowerCase()
121
- if (sColor && reg.test(sColor)) {
122
- if (sColor.length === 4) {
123
- let sColorNew = '#'
124
- for (let i = 1; i < 4; i += 1) {
125
- sColorNew += sColor.slice(i, i + 1).concat(sColor.slice(i, i + 1))
126
- }
127
- sColor = sColorNew
128
- }
129
- // 处理六位的颜色值
130
- const sColorChange = []
131
- for (let i = 1; i < 7; i += 2) {
132
- sColorChange.push(parseInt(`0x${sColor.slice(i, i + 2)}`))
133
- }
134
- // return sColorChange.join(',')
135
- return `rgba(${sColorChange.join(',')},${alpha})`
136
- }
137
-
138
- return sColor
139
- }
package/utils/index.ts DELETED
@@ -1,58 +0,0 @@
1
- import * as utils from './function';
2
- import * as test from './test';
3
- import * as colorGradientModule from './colorGradient';
4
- import { route } from './route';
5
- import config from './config';
6
- import http from './http';
7
- import compress from './compress';
8
- import platform from './platform';
9
- import debounce from './debounce';
10
- import throttle from './throttle';
11
-
12
- /**
13
- * uview-x 工具聚合对象。
14
- *
15
- * - 组件通过 `import { $uv } from '../../utils'` 使用,模板中沿用 `$uv.addStyle()` 等写法;
16
- * - 包入口(`index.ts`)通过 `export * from './utils'` 统一出口,并负责全局注入:
17
- * 入口把 `$uv` 挂到 `uni` 全局对象,`install` 内再挂载到 `app.config.globalProperties.$uv`;
18
- * - 组件/工具内部仍必须显式具名导入,不依赖全局对象;
19
- * - 单位读取 `$uv.config.unit`,运行时修改 `config.unit` 后立即生效。
20
- */
21
- export const $uv = {
22
- route,
23
- config,
24
- test,
25
- compress,
26
- date: utils.timeFormat,
27
- ...utils,
28
- colorGradient: colorGradientModule.colorGradient,
29
- hexToRgb: colorGradientModule.hexToRgb,
30
- rgbToHex: colorGradientModule.rgbToHex,
31
- colorToRgba: colorGradientModule.colorToRgba,
32
- http,
33
- debounce,
34
- throttle,
35
- platform,
36
- };
37
-
38
- // 保持原有入口的具名导出(命名空间形式)
39
- export { utils, test, colorGradientModule, route, config, http, compress, platform, debounce, throttle };
40
-
41
- // 所有工具方法扁平导出,可直接从 `@zfqh/uview-x` 具名导入
42
- export * from './function';
43
- export * from './test';
44
- export * from './digit';
45
- export * from './compat';
46
- // i18n 只对外暴露 4 个公共 API,其余 helper / 内部状态不导出(见 utils/locale.ts)
47
- export { createI18n, getLocale, getLocaleMessage, setLocale } from './locale';
48
- export { colorGradient, hexToRgb, rgbToHex, colorToRgba } from './colorGradient';
49
- // `utils/function.ts` 与 `utils/test.ts` 都存在 `range`:入口取主工具实现,
50
- // `test.range` 仍可通过 `test` 命名空间或深引用 `utils/test.ts` 使用。
51
- export { range } from './function';
52
-
53
- // 对外类型:工具配置、路由、压缩与平台
54
- export type { UviewXConfig } from './config';
55
- export type { UviewXScrollbar, UviewXScrollbarOptions, UviewXScrollbarStyle } from './scrollbar';
56
- export type { CompressOptions } from './compress';
57
- export type { RouteFunction, RouteOptions, RouteParams, RouteType } from './route';
58
- export type { UviewXPlatform } from './platform';
File without changes