@ecolovo/uniapp-components 2.0.3 → 2.0.5

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 (200) hide show
  1. package/components/badge/badge.vue +22 -11
  2. package/components/badge/types.d.ts +6 -0
  3. package/components/badge/types.js +4 -0
  4. package/components/badge/types.ts +10 -0
  5. package/components/button/button.vue +77 -48
  6. package/components/button/types.d.ts +20 -0
  7. package/components/button/types.js +4 -0
  8. package/components/button/types.ts +24 -0
  9. package/components/checkbox/checkbox.scss +1 -1
  10. package/components/checkbox/checkbox.vue +2 -0
  11. package/components/checkbox/types.d.ts +10 -0
  12. package/components/checkbox/types.js +4 -0
  13. package/components/checkbox/types.ts +16 -0
  14. package/components/checkbox-group/checkbox-group.vue +2 -0
  15. package/components/checkbox-group/types.d.ts +10 -0
  16. package/components/checkbox-group/types.js +8 -0
  17. package/components/checkbox-group/types.ts +20 -0
  18. package/components/checkbox-group2/checkbox-group2.vue +2 -0
  19. package/components/data-list/data-list.vue +13 -7
  20. package/components/date-picker/date-picker.vue +2 -0
  21. package/components/date-picker/types.d.ts +12 -0
  22. package/components/date-picker/types.js +4 -0
  23. package/components/date-picker/types.ts +18 -0
  24. package/components/dialog/dialog-content.vue +61 -46
  25. package/components/dialog/dialog.vue +55 -29
  26. package/components/dialog/types.d.ts +20 -0
  27. package/components/dialog/types.js +4 -0
  28. package/components/dialog/types.ts +24 -0
  29. package/components/dropdown/dropdown.vue +2 -0
  30. package/components/dropdown/types.d.ts +10 -0
  31. package/components/dropdown/types.js +4 -0
  32. package/components/dropdown/types.ts +16 -0
  33. package/components/empty/empty.vue +37 -20
  34. package/components/empty/types.d.ts +12 -0
  35. package/components/empty/types.js +9 -0
  36. package/components/empty/types.ts +21 -0
  37. package/components/flex/flex.vue +2 -0
  38. package/components/flex/types.d.ts +12 -0
  39. package/components/flex/types.js +4 -0
  40. package/components/flex/types.ts +22 -0
  41. package/components/form/form.vue +2 -0
  42. package/components/form/types.d.ts +6 -0
  43. package/components/form/types.js +4 -0
  44. package/components/form/types.ts +10 -0
  45. package/components/form-item/form-item.scss +6 -0
  46. package/components/form-item/form-item.vue +9 -3
  47. package/components/form-item/types.d.ts +6 -0
  48. package/components/form-item/types.js +4 -0
  49. package/components/form-item/types.ts +12 -0
  50. package/components/image/image.vue +28 -21
  51. package/components/image/types.d.ts +18 -0
  52. package/components/image/types.js +4 -0
  53. package/components/image/types.ts +23 -0
  54. package/components/index.d.ts +2 -1
  55. package/components/index.js +2 -1
  56. package/components/index.ts +2 -1
  57. package/components/input/input.scss +9 -0
  58. package/components/input/input.vue +11 -4
  59. package/components/input/password-input.vue +3 -1
  60. package/components/input/types.d.ts +20 -0
  61. package/components/input/types.js +8 -0
  62. package/components/input/types.ts +31 -0
  63. package/components/list-page/list-page.vue +21 -24
  64. package/components/list-page/types.d.ts +6 -0
  65. package/components/list-page/types.js +4 -0
  66. package/components/list-page/types.ts +12 -0
  67. package/components/load-more/load-more.scss +1 -0
  68. package/components/load-more/load-more.vue +66 -6
  69. package/components/load-more/types.d.ts +6 -0
  70. package/components/load-more/types.js +4 -0
  71. package/components/load-more/types.ts +12 -0
  72. package/components/loading/loading.vue +2 -0
  73. package/components/loading/types.d.ts +6 -0
  74. package/components/loading/types.js +4 -0
  75. package/components/loading/types.ts +12 -0
  76. package/components/message-box/message-box.d.ts +14 -16
  77. package/components/message-box/message-box.ts +0 -2
  78. package/components/message-box/message-box.vue +18 -43
  79. package/components/message-box/types.d.ts +16 -0
  80. package/components/message-box/types.js +4 -0
  81. package/components/message-box/types.ts +22 -0
  82. package/components/number-dialog/number-dialog.vue +5 -3
  83. package/components/number-dialog/types.d.ts +18 -0
  84. package/components/number-dialog/types.js +4 -0
  85. package/components/number-dialog/types.ts +24 -0
  86. package/components/number-input/number-input.scss +1 -1
  87. package/components/number-input/number-input.vue +5 -3
  88. package/components/number-input/types.d.ts +20 -0
  89. package/components/number-input/types.js +4 -0
  90. package/components/number-input/types.ts +26 -0
  91. package/components/numpad/numpad.vue +2 -0
  92. package/components/numpad/types.d.ts +10 -0
  93. package/components/numpad/types.js +4 -0
  94. package/components/numpad/types.ts +14 -0
  95. package/components/page/page-body.scss +1 -1
  96. package/components/page/page-footer.vue +2 -3
  97. package/components/page/page-header.vue +19 -9
  98. package/components/page/page.vue +45 -14
  99. package/components/page/types.d.ts +16 -0
  100. package/components/page/types.js +8 -0
  101. package/components/page/types.ts +27 -0
  102. package/components/picker/picker-popup.vue +10 -6
  103. package/components/picker/picker.vue +8 -0
  104. package/components/picker/types.d.ts +14 -0
  105. package/components/picker/types.js +4 -0
  106. package/components/picker/types.ts +18 -0
  107. package/components/popover/popover-content.vue +10 -1
  108. package/components/popover/popover-mask.vue +5 -5
  109. package/components/popover/popover.vue +34 -29
  110. package/components/popover/types.d.ts +10 -0
  111. package/components/popover/types.js +4 -0
  112. package/components/popover/types.ts +16 -0
  113. package/components/popup/popup-content.vue +61 -43
  114. package/components/popup/popup.vue +34 -28
  115. package/components/popup/types.d.ts +20 -0
  116. package/components/popup/types.js +4 -0
  117. package/components/popup/types.ts +24 -0
  118. package/components/price/price.scss +7 -3
  119. package/components/price/price.vue +6 -0
  120. package/components/price/types.d.ts +10 -0
  121. package/components/price/types.js +4 -0
  122. package/components/price/types.ts +14 -0
  123. package/components/search/search.vue +2 -0
  124. package/components/search/types.d.ts +14 -0
  125. package/components/search/types.js +4 -0
  126. package/components/search/types.ts +18 -0
  127. package/components/searching/searching.scss +9 -9
  128. package/components/searching/searching.vue +2 -0
  129. package/components/searching/types.d.ts +8 -0
  130. package/components/searching/types.js +4 -0
  131. package/components/searching/types.ts +14 -0
  132. package/components/switch/switch.vue +5 -8
  133. package/components/switch/types.d.ts +8 -0
  134. package/components/switch/types.js +4 -0
  135. package/components/switch/types.ts +12 -0
  136. package/components/tab/tab.vue +2 -0
  137. package/components/tab/types.d.ts +8 -0
  138. package/components/tab/types.js +4 -0
  139. package/components/tab/types.ts +12 -0
  140. package/components/textarea/textarea.scss +10 -0
  141. package/components/textarea/textarea.vue +17 -9
  142. package/components/textarea/types.d.ts +12 -0
  143. package/components/textarea/types.js +4 -0
  144. package/components/textarea/types.ts +18 -0
  145. package/components/upload/composable.d.ts +24 -0
  146. package/components/upload/composable.js +173 -0
  147. package/components/upload/composable.ts +228 -0
  148. package/components/upload/media-upload.scss +12 -0
  149. package/components/upload/media-upload.vue +250 -0
  150. package/components/upload/types.d.ts +29 -0
  151. package/components/upload/types.js +4 -0
  152. package/components/upload/types.ts +38 -0
  153. package/composable/component-name.d.ts +8 -0
  154. package/composable/component-name.js +11 -4
  155. package/composable/component-name.ts +8 -0
  156. package/composable/dialog.d.ts +40 -0
  157. package/composable/dialog.js +96 -0
  158. package/composable/dialog.ts +113 -0
  159. package/composable/index.d.ts +5 -0
  160. package/composable/index.js +5 -0
  161. package/composable/index.ts +5 -0
  162. package/composable/message-box.d.ts +45 -28
  163. package/composable/message-box.js +68 -53
  164. package/composable/message-box.ts +101 -36
  165. package/composable/model.d.ts +8 -0
  166. package/composable/model.js +23 -0
  167. package/composable/model.ts +27 -0
  168. package/composable/page.d.ts +41 -0
  169. package/composable/page.js +25 -0
  170. package/composable/page.ts +34 -0
  171. package/configs/index.d.ts +24 -19
  172. package/configs/index.js +38 -35
  173. package/configs/index.ts +19 -0
  174. package/easyCom.d.ts +6 -6
  175. package/easyCom.js +19 -31
  176. package/easyCom.ts +4 -4
  177. package/globals.d.ts +93 -33
  178. package/globals.js +1 -0
  179. package/globals.ts +118 -0
  180. package/index.d.ts +3 -3
  181. package/index.js +2 -3
  182. package/index.ts +3 -2
  183. package/init.d.ts +11 -6
  184. package/init.js +84 -14
  185. package/init.ts +86 -1
  186. package/package.json +9 -9
  187. package/styles/var/component.scss +1 -0
  188. package/utils/date.d.ts +14 -19
  189. package/utils/date.js +77 -87
  190. package/utils/freezeDeep.js +7 -7
  191. package/utils/price.d.ts +15 -18
  192. package/utils/price.js +36 -37
  193. package/utils/upload.d.ts +1 -0
  194. package/utils/upload.js +8 -0
  195. package/utils/upload.ts +12 -0
  196. package/utils/windowInfo.d.ts +1 -9
  197. package/utils/windowInfo.js +10 -17
  198. package/utils/round.d.ts +0 -2
  199. package/utils/round.js +0 -13
  200. package/utils/round.ts +0 -14
package/globals.d.ts CHANGED
@@ -1,36 +1,96 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
1
  export {};
3
-
4
2
  declare global {
5
- // 覆盖 input 元素的 onInput 事件信息
6
- interface Event {
7
- detail: { value: string };
8
- }
9
- // 覆盖 input 元素的 obBlur 事件信息
10
- interface FocusEvent {
11
- detail: { value: string };
12
- }
13
- interface ScrollEvent {
14
- detail: {
15
- scrollLeft: number;
16
- scrollTop: number;
17
- scrollHeight: number;
18
- scrollWidth: number;
19
- deltaX: number;
20
- deltaY: number;
21
- };
22
- }
23
- declare namespace UniApp {
24
- type PromiseResolver<T> = Parameters<Promise<T>['then']>[0];
25
- type PromiseRejector<T> = Parameters<Promise<T>['then']>[1];
26
- type PromiseResolvers<T> = {
27
- resolve: PromiseResolver<T>;
28
- reject: PromiseRejector<T>;
29
- };
30
-
31
- type EventWithDetail<T extends Record<string, any>> = {
32
- detail: T;
33
- };
34
- type GetPhoneNumberEvent = EventWithDetail<{ code: string }>;
35
- }
3
+ type PromiseResolvers<T> = Pick<PromiseWithResolvers<T>, 'resolve' | 'reject'>;
4
+ interface Event {
5
+ detail: {
6
+ value: string;
7
+ };
8
+ }
9
+ interface FocusEvent {
10
+ detail: {
11
+ value: string;
12
+ };
13
+ }
14
+ interface ScrollEvent {
15
+ detail: {
16
+ scrollLeft: number;
17
+ scrollTop: number;
18
+ scrollHeight: number;
19
+ scrollWidth: number;
20
+ deltaX: number;
21
+ deltaY: number;
22
+ };
23
+ }
24
+ namespace UniApp {
25
+ type EventWithDetail<T extends Record<string, any>> = {
26
+ detail: T;
27
+ };
28
+ type GetPhoneNumberEvent = EventWithDetail<{
29
+ code: string;
30
+ }>;
31
+ /**
32
+ * 图片显示模式
33
+ *
34
+ * - `scaleToFill` : 不保持纵横比缩放图片,使图片的宽高完全拉伸至填满 image 元素
35
+ * - `aspectFit` : 保持纵横比缩放图片,使图片的长边能完全显示出来。也就是说,可以完整地将图片显示出来。
36
+ * - `aspectFill` : 保持纵横比缩放图片,只保证图片的短边能完全显示出来。也就是说,图片通常只在水平或垂直方向是完整的,另一个方向将会发生截取。
37
+ * - `widthFix` : 宽度不变,高度自动变化,保持原图宽高比不变
38
+ * - `heightFix` : 高度不变,宽度自动变化,保持原图宽高比不变 App 和 H5 平台 HBuilderX 2.9.3+ 支持、微信小程序需要基础库 2.10.3
39
+ * - `top` : 不缩放图片,只显示图片的顶部区域
40
+ * - `bottom` : 不缩放图片,只显示图片的底部区域
41
+ * - `center` : 不缩放图片,只显示图片的中间区域
42
+ * - `left` : 不缩放图片,只显示图片的左边区域
43
+ * - `right` : 不缩放图片,只显示图片的右边区域
44
+ * - `top left` : 不缩放图片,只显示图片的左上边区域
45
+ * - `top right` : 不缩放图片,只显示图片的右上边区域
46
+ * - `bottom left` : 不缩放图片,只显示图片的左下边区域
47
+ * - `bottom right` : 不缩放图片,只显示图片的右下边区域
48
+ */
49
+ type ImageMode = 'scaleToFill' | 'aspectFit' | 'aspectFill' | 'widthFix' | 'heightFix' | 'top' | 'bottom' | 'center' | 'left' | 'right' | 'top left' | 'top right' | 'bottom left' | 'bottom right';
50
+ interface UploadResponse {
51
+ name?: string;
52
+ url: string;
53
+ }
54
+ type UploadMediaFile = Partial<UniApp.MediaFile> & {
55
+ name?: string;
56
+ type?: string;
57
+ url?: string;
58
+ uploadStatus?: 'ready' | 'uploading' | 'success' | 'error';
59
+ };
60
+ }
61
+ type ComponentsProps = {
62
+ badge?: import('./components/badge/types').ConfigurableBadgeProps;
63
+ button?: import('./components/button/types').ConfigurableButtonProps;
64
+ checkbox?: import('./components/checkbox/types').ConfigurableCheckboxProps;
65
+ checkboxGroup?: import('./components/checkbox-group/types').ConfigurableCheckboxGroupProps;
66
+ datePicker?: import('./components/date-picker/types').ConfigurableDatePickerProps;
67
+ dialog?: import('./components/dialog/types').ConfigurableDialogProps;
68
+ dropdown?: import('./components/dropdown/types').ConfigurableDropdownProps;
69
+ empty?: import('./components/empty/types').ConfigurableEmptyProps;
70
+ flex?: import('./components/flex/types').ConfigurableFlexProps;
71
+ form?: import('./components/form/types').ConfigurableFormProps;
72
+ formItem?: import('./components/form-item/types').ConfigurableFormItemProps;
73
+ image?: import('./components/image/types').ConfigurableImageProps;
74
+ input?: import('./components/input/types').ConfigurableInputProps;
75
+ passwordInput?: import('./components/input/types').ConfigurablePasswordInputProps;
76
+ listPage?: import('./components/list-page/types').ConfigurableListPageProps;
77
+ loadMore?: import('./components/load-more/types').ConfigurableLoadMoreProps;
78
+ loading?: import('./components/loading/types').ConfigurableLoadingProps;
79
+ messageBox?: import('./components/message-box/types').ConfigurableMessageBoxProps;
80
+ numberDialog?: import('./components/number-dialog/types').ConfigurableNumberDialogProps;
81
+ numberInput?: import('./components/number-input/types').ConfigurableNumberInputProps;
82
+ numpad?: import('./components/numpad/types').ConfigurableNumpadProps;
83
+ page?: import('./components/page/types').ConfigurablePageProps;
84
+ pageHeader?: import('./components/page/types').ConfigurablePageHeaderProps;
85
+ picker?: import('./components/picker/types').ConfigurablePickerProps;
86
+ popover?: import('./components/popover/types').ConfigurablePopoverProps;
87
+ popup?: import('./components/popup/types').ConfigurablePopupProps;
88
+ price?: import('./components/price/types').ConfigurablePriceProps;
89
+ search?: import('./components/search/types').ConfigurableSearchProps;
90
+ searching?: import('./components/searching/types').ConfigurableSearchingProps;
91
+ switch?: import('./components/switch/types').ConfigurableSwitchProps;
92
+ tab?: import('./components/tab/types').ConfigurableTabProps;
93
+ textarea?: import('./components/textarea/types').ConfigurableTextareaProps;
94
+ mediaUpload?: import('./components/upload/types').ConfigurableMediaUploadProps;
95
+ };
36
96
  }
package/globals.js ADDED
@@ -0,0 +1 @@
1
+ export {};
package/globals.ts ADDED
@@ -0,0 +1,118 @@
1
+ export {};
2
+
3
+ declare global {
4
+ type PromiseResolvers<T> = Pick<
5
+ PromiseWithResolvers<T>,
6
+ 'resolve' | 'reject'
7
+ >;
8
+
9
+ // 覆盖 input 元素的 onInput 事件信息
10
+ interface Event {
11
+ detail: { value: string };
12
+ }
13
+ // 覆盖 input 元素的 obBlur 事件信息
14
+ interface FocusEvent {
15
+ detail: { value: string };
16
+ }
17
+ interface ScrollEvent {
18
+ detail: {
19
+ scrollLeft: number;
20
+ scrollTop: number;
21
+ scrollHeight: number;
22
+ scrollWidth: number;
23
+ deltaX: number;
24
+ deltaY: number;
25
+ };
26
+ }
27
+
28
+ // eslint-disable-next-line @typescript-eslint/no-namespace
29
+ namespace UniApp {
30
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
31
+ type EventWithDetail<T extends Record<string, any>> = {
32
+ detail: T;
33
+ };
34
+
35
+ type GetPhoneNumberEvent = EventWithDetail<{ code: string }>;
36
+ /**
37
+ * 图片显示模式
38
+ *
39
+ * - `scaleToFill` : 不保持纵横比缩放图片,使图片的宽高完全拉伸至填满 image 元素
40
+ * - `aspectFit` : 保持纵横比缩放图片,使图片的长边能完全显示出来。也就是说,可以完整地将图片显示出来。
41
+ * - `aspectFill` : 保持纵横比缩放图片,只保证图片的短边能完全显示出来。也就是说,图片通常只在水平或垂直方向是完整的,另一个方向将会发生截取。
42
+ * - `widthFix` : 宽度不变,高度自动变化,保持原图宽高比不变
43
+ * - `heightFix` : 高度不变,宽度自动变化,保持原图宽高比不变 App 和 H5 平台 HBuilderX 2.9.3+ 支持、微信小程序需要基础库 2.10.3
44
+ * - `top` : 不缩放图片,只显示图片的顶部区域
45
+ * - `bottom` : 不缩放图片,只显示图片的底部区域
46
+ * - `center` : 不缩放图片,只显示图片的中间区域
47
+ * - `left` : 不缩放图片,只显示图片的左边区域
48
+ * - `right` : 不缩放图片,只显示图片的右边区域
49
+ * - `top left` : 不缩放图片,只显示图片的左上边区域
50
+ * - `top right` : 不缩放图片,只显示图片的右上边区域
51
+ * - `bottom left` : 不缩放图片,只显示图片的左下边区域
52
+ * - `bottom right` : 不缩放图片,只显示图片的右下边区域
53
+ */
54
+ type ImageMode =
55
+ | 'scaleToFill'
56
+ | 'aspectFit'
57
+ | 'aspectFill'
58
+ | 'widthFix'
59
+ | 'heightFix'
60
+ | 'top'
61
+ | 'bottom'
62
+ | 'center'
63
+ | 'left'
64
+ | 'right'
65
+ | 'top left'
66
+ | 'top right'
67
+ | 'bottom left'
68
+ | 'bottom right';
69
+
70
+ interface UploadResponse {
71
+ name?: string;
72
+ url: string;
73
+ }
74
+
75
+ type UploadMediaFile = Partial<UniApp.MediaFile> & {
76
+ name?: string;
77
+ type?: string;
78
+ url?: string;
79
+ uploadStatus?: 'ready' | 'uploading' | 'success' | 'error';
80
+ };
81
+ }
82
+
83
+ type ComponentsProps = {
84
+ badge?: import('./components/badge/types').ConfigurableBadgeProps;
85
+ button?: import('./components/button/types').ConfigurableButtonProps;
86
+ checkbox?: import('./components/checkbox/types').ConfigurableCheckboxProps;
87
+ checkboxGroup?: import('./components/checkbox-group/types').ConfigurableCheckboxGroupProps;
88
+ datePicker?: import('./components/date-picker/types').ConfigurableDatePickerProps;
89
+ dialog?: import('./components/dialog/types').ConfigurableDialogProps;
90
+ dropdown?: import('./components/dropdown/types').ConfigurableDropdownProps;
91
+ empty?: import('./components/empty/types').ConfigurableEmptyProps;
92
+ flex?: import('./components/flex/types').ConfigurableFlexProps;
93
+ form?: import('./components/form/types').ConfigurableFormProps;
94
+ formItem?: import('./components/form-item/types').ConfigurableFormItemProps;
95
+ image?: import('./components/image/types').ConfigurableImageProps;
96
+ input?: import('./components/input/types').ConfigurableInputProps;
97
+ passwordInput?: import('./components/input/types').ConfigurablePasswordInputProps;
98
+ listPage?: import('./components/list-page/types').ConfigurableListPageProps;
99
+ loadMore?: import('./components/load-more/types').ConfigurableLoadMoreProps;
100
+ loading?: import('./components/loading/types').ConfigurableLoadingProps;
101
+ messageBox?: import('./components/message-box/types').ConfigurableMessageBoxProps;
102
+ numberDialog?: import('./components/number-dialog/types').ConfigurableNumberDialogProps;
103
+ numberInput?: import('./components/number-input/types').ConfigurableNumberInputProps;
104
+ numpad?: import('./components/numpad/types').ConfigurableNumpadProps;
105
+ page?: import('./components/page/types').ConfigurablePageProps;
106
+ pageHeader?: import('./components/page/types').ConfigurablePageHeaderProps;
107
+ picker?: import('./components/picker/types').ConfigurablePickerProps;
108
+ popover?: import('./components/popover/types').ConfigurablePopoverProps;
109
+ popup?: import('./components/popup/types').ConfigurablePopupProps;
110
+ price?: import('./components/price/types').ConfigurablePriceProps;
111
+ search?: import('./components/search/types').ConfigurableSearchProps;
112
+ searching?: import('./components/searching/types').ConfigurableSearchingProps;
113
+ switch?: import('./components/switch/types').ConfigurableSwitchProps;
114
+ tab?: import('./components/tab/types').ConfigurableTabProps;
115
+ textarea?: import('./components/textarea/types').ConfigurableTextareaProps;
116
+ mediaUpload?: import('./components/upload/types').ConfigurableMediaUploadProps;
117
+ };
118
+ }
package/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- export * from './globals.d';
1
+ export * from './globals';
2
2
  export { default as init } from './init';
3
3
  export { default as componentEasyCom } from './easyCom';
4
- export * from './components';
5
- export * from './composable/message-box';
4
+ export * from './composable';
5
+ export type { ImageProps } from './components/image/types';
6
6
  export * from './components/message-box/message-box';
package/index.js CHANGED
@@ -1,6 +1,5 @@
1
- export * from './globals.d';
1
+ export * from './globals';
2
2
  export { default as init } from './init';
3
3
  export { default as componentEasyCom } from './easyCom';
4
- export * from './components';
5
- export * from './composable/message-box';
4
+ export * from './composable';
6
5
  export * from './components/message-box/message-box';
package/index.ts CHANGED
@@ -1,6 +1,7 @@
1
- export * from './globals.d';
1
+ export * from './globals';
2
2
  export { default as init } from './init';
3
3
  export { default as componentEasyCom } from './easyCom';
4
4
 
5
- export * from './composable/message-box';
5
+ export * from './composable';
6
+ export type { ImageProps } from './components/image/types';
6
7
  export * from './components/message-box/message-box';
package/init.d.ts CHANGED
@@ -1,12 +1,17 @@
1
+ import type { TabBarItem } from '@ecolovo/utils';
1
2
  import type { IconFontJson } from './configs';
2
3
  /** 组件库初始化配置 */
3
4
  interface InitOptions {
4
- /** 组件前缀 */
5
- componentPrefix?: string;
6
- /** 首页路径 */
7
- homePath?: string;
8
- /** iconfont 图标 json 文件 */
9
- iconfont?: IconFontJson | IconFontJson[];
5
+ /** 组件前缀 */
6
+ componentPrefix?: string;
7
+ /** 首页路径 */
8
+ homePath?: string;
9
+ /** tabbar 页面列表 */
10
+ tabbarList?: TabBarItem[];
11
+ /** iconfont 图标 json 文件 */
12
+ iconfont?: IconFontJson | IconFontJson[];
13
+ /** 修改组件库默认配置 */
14
+ componentsProps?: ComponentsProps;
10
15
  }
11
16
  /**
12
17
  * 组件库初始化方法,在使用组件库前调用
package/init.js CHANGED
@@ -1,21 +1,91 @@
1
- import { setComponentPrefix, setHomePath, addIcons } from './configs';
1
+ import { setComponentPrefix, setHomePath, addIcons, setTabbarList, } from './configs';
2
+ import { setDefaultBadgeProps } from './components/badge/types';
3
+ import { setDefaultButtonProps } from './components/button/types';
4
+ import { setDefaultCheckboxProps } from './components/checkbox/types';
5
+ import { setDefaultCheckboxGroupProps } from './components/checkbox-group/types';
6
+ import { setDefaultDatePickerProps } from './components/date-picker/types';
7
+ import { setDefaultDialogProps } from './components/dialog/types';
8
+ import { setDefaultDropdownProps } from './components/dropdown/types';
9
+ import { setDefaultEmptyProps } from './components/empty/types';
10
+ import { setDefaultFlexProps } from './components/flex/types';
11
+ import { setDefaultFormProps } from './components/form/types';
12
+ import { setDefaultFormItemProps } from './components/form-item/types';
13
+ import { setDefaultImageProps } from './components/image/types';
14
+ import { setDefaultInputProps, setDefaultPasswordInputProps, } from './components/input/types';
15
+ import { setDefaultListPageProps } from './components/list-page/types';
16
+ import { setDefaultLoadMoreProps } from './components/load-more/types';
17
+ import { setDefaultLoadingProps } from './components/loading/types';
18
+ import { setDefaultMessageBoxProps } from './components/message-box/types';
19
+ import { setDefaultNumberDialogProps } from './components/number-dialog/types';
20
+ import { setDefaultNumberInputProps } from './components/number-input/types';
21
+ import { setDefaultNumpadProps } from './components/numpad/types';
22
+ import { setDefaultPageProps, setDefaultPageHeaderProps, } from './components/page/types';
23
+ import { setDefaultPickerProps } from './components/picker/types';
24
+ import { setDefaultPopoverProps } from './components/popover/types';
25
+ import { setDefaultPopupProps } from './components/popup/types';
26
+ import { setDefaultPriceProps } from './components/price/types';
27
+ import { setDefaultSearchProps } from './components/search/types';
28
+ import { setDefaultSearchingProps } from './components/searching/types';
29
+ import { setDefaultSwitchProps } from './components/switch/types';
30
+ import { setDefaultTabProps } from './components/tab/types';
31
+ import { setDefaultTextareaProps } from './components/textarea/types';
32
+ import { setDefaultMediaUploadProps } from './components/upload/types';
2
33
  /**
3
34
  * 组件库初始化方法,在使用组件库前调用
4
35
  * @param options 组件库初始化配置
5
36
  */
6
37
  function init(options = {}) {
7
- if (options.componentPrefix) {
8
- setComponentPrefix(options.componentPrefix);
9
- }
10
- if (options.homePath) {
11
- setHomePath(options.homePath);
12
- }
13
- if (options.iconfont) {
14
- if (Array.isArray(options.iconfont)) {
15
- options.iconfont.forEach(addIcons);
16
- } else {
17
- addIcons(options.iconfont);
18
- }
19
- }
38
+ if (options.componentPrefix) {
39
+ setComponentPrefix(options.componentPrefix);
40
+ }
41
+ if (options.homePath) {
42
+ setHomePath(options.homePath);
43
+ }
44
+ if (options.tabbarList) {
45
+ setTabbarList(options.tabbarList);
46
+ }
47
+ if (options.iconfont) {
48
+ if (Array.isArray(options.iconfont)) {
49
+ options.iconfont.forEach(addIcons);
50
+ }
51
+ else {
52
+ addIcons(options.iconfont);
53
+ }
54
+ }
55
+ if (options.componentsProps) {
56
+ setDefaultBadgeProps(options.componentsProps.badge);
57
+ setDefaultButtonProps(options.componentsProps.button);
58
+ setDefaultCheckboxProps(options.componentsProps.checkbox);
59
+ setDefaultCheckboxGroupProps(options.componentsProps.checkboxGroup);
60
+ setDefaultDatePickerProps(options.componentsProps.datePicker);
61
+ setDefaultDialogProps(options.componentsProps.dialog);
62
+ setDefaultDropdownProps(options.componentsProps.dropdown);
63
+ setDefaultEmptyProps(options.componentsProps.empty);
64
+ setDefaultFlexProps(options.componentsProps.flex);
65
+ setDefaultFormProps(options.componentsProps.form);
66
+ setDefaultFormItemProps(options.componentsProps.formItem);
67
+ setDefaultImageProps(options.componentsProps.image);
68
+ setDefaultInputProps(options.componentsProps.input);
69
+ setDefaultPasswordInputProps(options.componentsProps.passwordInput);
70
+ setDefaultListPageProps(options.componentsProps.listPage);
71
+ setDefaultLoadMoreProps(options.componentsProps.loadMore);
72
+ setDefaultLoadingProps(options.componentsProps.loading);
73
+ setDefaultMessageBoxProps(options.componentsProps.messageBox);
74
+ setDefaultNumberDialogProps(options.componentsProps.numberDialog);
75
+ setDefaultNumberInputProps(options.componentsProps.numberInput);
76
+ setDefaultNumpadProps(options.componentsProps.numpad);
77
+ setDefaultPageProps(options.componentsProps.page);
78
+ setDefaultPageHeaderProps(options.componentsProps.pageHeader);
79
+ setDefaultPickerProps(options.componentsProps.picker);
80
+ setDefaultPopoverProps(options.componentsProps.popover);
81
+ setDefaultPopupProps(options.componentsProps.popup);
82
+ setDefaultPriceProps(options.componentsProps.price);
83
+ setDefaultSearchProps(options.componentsProps.search);
84
+ setDefaultSearchingProps(options.componentsProps.searching);
85
+ setDefaultSwitchProps(options.componentsProps.switch);
86
+ setDefaultTabProps(options.componentsProps.tab);
87
+ setDefaultTextareaProps(options.componentsProps.textarea);
88
+ setDefaultMediaUploadProps(options.componentsProps.mediaUpload);
89
+ }
20
90
  }
21
91
  export default init;
package/init.ts CHANGED
@@ -1,5 +1,48 @@
1
- import { setComponentPrefix, setHomePath, addIcons } from './configs';
1
+ import type { TabBarItem } from '@ecolovo/utils';
2
+ import {
3
+ setComponentPrefix,
4
+ setHomePath,
5
+ addIcons,
6
+ setTabbarList,
7
+ } from './configs';
2
8
  import type { IconFontJson } from './configs';
9
+ import { setDefaultBadgeProps } from './components/badge/types';
10
+ import { setDefaultButtonProps } from './components/button/types';
11
+ import { setDefaultCheckboxProps } from './components/checkbox/types';
12
+ import { setDefaultCheckboxGroupProps } from './components/checkbox-group/types';
13
+ import { setDefaultDatePickerProps } from './components/date-picker/types';
14
+ import { setDefaultDialogProps } from './components/dialog/types';
15
+ import { setDefaultDropdownProps } from './components/dropdown/types';
16
+ import { setDefaultEmptyProps } from './components/empty/types';
17
+ import { setDefaultFlexProps } from './components/flex/types';
18
+ import { setDefaultFormProps } from './components/form/types';
19
+ import { setDefaultFormItemProps } from './components/form-item/types';
20
+ import { setDefaultImageProps } from './components/image/types';
21
+ import {
22
+ setDefaultInputProps,
23
+ setDefaultPasswordInputProps,
24
+ } from './components/input/types';
25
+ import { setDefaultListPageProps } from './components/list-page/types';
26
+ import { setDefaultLoadMoreProps } from './components/load-more/types';
27
+ import { setDefaultLoadingProps } from './components/loading/types';
28
+ import { setDefaultMessageBoxProps } from './components/message-box/types';
29
+ import { setDefaultNumberDialogProps } from './components/number-dialog/types';
30
+ import { setDefaultNumberInputProps } from './components/number-input/types';
31
+ import { setDefaultNumpadProps } from './components/numpad/types';
32
+ import {
33
+ setDefaultPageProps,
34
+ setDefaultPageHeaderProps,
35
+ } from './components/page/types';
36
+ import { setDefaultPickerProps } from './components/picker/types';
37
+ import { setDefaultPopoverProps } from './components/popover/types';
38
+ import { setDefaultPopupProps } from './components/popup/types';
39
+ import { setDefaultPriceProps } from './components/price/types';
40
+ import { setDefaultSearchProps } from './components/search/types';
41
+ import { setDefaultSearchingProps } from './components/searching/types';
42
+ import { setDefaultSwitchProps } from './components/switch/types';
43
+ import { setDefaultTabProps } from './components/tab/types';
44
+ import { setDefaultTextareaProps } from './components/textarea/types';
45
+ import { setDefaultMediaUploadProps } from './components/upload/types';
3
46
 
4
47
  /** 组件库初始化配置 */
5
48
  interface InitOptions {
@@ -7,8 +50,12 @@ interface InitOptions {
7
50
  componentPrefix?: string;
8
51
  /** 首页路径 */
9
52
  homePath?: string;
53
+ /** tabbar 页面列表 */
54
+ tabbarList?: TabBarItem[];
10
55
  /** iconfont 图标 json 文件 */
11
56
  iconfont?: IconFontJson | IconFontJson[];
57
+ /** 修改组件库默认配置 */
58
+ componentsProps?: ComponentsProps;
12
59
  }
13
60
 
14
61
  /**
@@ -22,6 +69,9 @@ function init(options: InitOptions = {}) {
22
69
  if (options.homePath) {
23
70
  setHomePath(options.homePath);
24
71
  }
72
+ if (options.tabbarList) {
73
+ setTabbarList(options.tabbarList);
74
+ }
25
75
  if (options.iconfont) {
26
76
  if (Array.isArray(options.iconfont)) {
27
77
  options.iconfont.forEach(addIcons);
@@ -29,6 +79,41 @@ function init(options: InitOptions = {}) {
29
79
  addIcons(options.iconfont);
30
80
  }
31
81
  }
82
+ if (options.componentsProps) {
83
+ setDefaultBadgeProps(options.componentsProps.badge);
84
+ setDefaultButtonProps(options.componentsProps.button);
85
+ setDefaultCheckboxProps(options.componentsProps.checkbox);
86
+ setDefaultCheckboxGroupProps(options.componentsProps.checkboxGroup);
87
+ setDefaultDatePickerProps(options.componentsProps.datePicker);
88
+ setDefaultDialogProps(options.componentsProps.dialog);
89
+ setDefaultDropdownProps(options.componentsProps.dropdown);
90
+ setDefaultEmptyProps(options.componentsProps.empty);
91
+ setDefaultFlexProps(options.componentsProps.flex);
92
+ setDefaultFormProps(options.componentsProps.form);
93
+ setDefaultFormItemProps(options.componentsProps.formItem);
94
+ setDefaultImageProps(options.componentsProps.image);
95
+ setDefaultInputProps(options.componentsProps.input);
96
+ setDefaultPasswordInputProps(options.componentsProps.passwordInput);
97
+ setDefaultListPageProps(options.componentsProps.listPage);
98
+ setDefaultLoadMoreProps(options.componentsProps.loadMore);
99
+ setDefaultLoadingProps(options.componentsProps.loading);
100
+ setDefaultMessageBoxProps(options.componentsProps.messageBox);
101
+ setDefaultNumberDialogProps(options.componentsProps.numberDialog);
102
+ setDefaultNumberInputProps(options.componentsProps.numberInput);
103
+ setDefaultNumpadProps(options.componentsProps.numpad);
104
+ setDefaultPageProps(options.componentsProps.page);
105
+ setDefaultPageHeaderProps(options.componentsProps.pageHeader);
106
+ setDefaultPickerProps(options.componentsProps.picker);
107
+ setDefaultPopoverProps(options.componentsProps.popover);
108
+ setDefaultPopupProps(options.componentsProps.popup);
109
+ setDefaultPriceProps(options.componentsProps.price);
110
+ setDefaultSearchProps(options.componentsProps.search);
111
+ setDefaultSearchingProps(options.componentsProps.searching);
112
+ setDefaultSwitchProps(options.componentsProps.switch);
113
+ setDefaultTabProps(options.componentsProps.tab);
114
+ setDefaultTextareaProps(options.componentsProps.textarea);
115
+ setDefaultMediaUploadProps(options.componentsProps.mediaUpload);
116
+ }
32
117
  }
33
118
 
34
119
  export default init;
package/package.json CHANGED
@@ -1,22 +1,22 @@
1
1
  {
2
2
  "name": "@ecolovo/uniapp-components",
3
- "version": "2.0.3",
3
+ "version": "2.0.5",
4
4
  "description": "Ecolovo UniApp Vue3 组件库",
5
+ "keywords": [
6
+ "components",
7
+ "uniapp"
8
+ ],
9
+ "license": "ISC",
10
+ "author": "Yang",
11
+ "types": "./index.d.ts",
5
12
  "scripts": {
6
13
  "lint": "eslint",
7
14
  "lint:fix": "eslint --fix",
8
15
  "build": "vue-tsc --noEmit && tsc",
9
16
  "postbuild": "eslint --fix"
10
17
  },
11
- "keywords": [
12
- "uniapp",
13
- "components"
14
- ],
15
- "types": "./index.d.ts",
16
- "author": "Yang",
17
- "license": "ISC",
18
18
  "dependencies": {
19
- "@ecolovo/utils": "^1.0.10",
19
+ "@ecolovo/utils": "^1.0.11",
20
20
  "case-anything": "3.1.2",
21
21
  "lodash-es": "4.17.21",
22
22
  "vue": "3.4.21"
@@ -7,6 +7,7 @@
7
7
  @forward '../../components/empty/empty.scss';
8
8
  @forward '../../components/form-item/form-item.scss';
9
9
  @forward '../../components/icon/icon.scss';
10
+ @forward '../../components/input/input.scss';
10
11
  @forward '../../components/load-more/load-more.scss';
11
12
  @forward '../../components/number-dialog/number-dialog.scss';
12
13
  @forward '../../components/number-input/number-input.scss';
package/utils/date.d.ts CHANGED
@@ -4,22 +4,20 @@ type ValidDateValue = Date | number | string;
4
4
  * @param dateValue Date 对象、时间戳或时间格式字符串
5
5
  * @returns Date 对象
6
6
  */
7
- export declare function toDate(
8
- dateValue: ValidDateValue | null | undefined
9
- ): Date | null;
7
+ export declare function toDate(dateValue: ValidDateValue | null | undefined): Date | null;
10
8
  type FormatFn = {
11
- (date: Date | null | undefined, format?: string): string;
12
- DATE: string;
13
- DATE_WITH_YEAR: string;
14
- TIME: string;
15
- TIME_MS: string;
16
- TIME_MINUTE: string;
17
- DATE_TIME: string;
18
- DATE_TIME_MS: string;
19
- DATE_TIME_WITH_YEAR: string;
20
- DATE_TIME_MS_WITH_YEAR: string;
21
- DATE_MINUTE: string;
22
- DATE_MINUTE_WITH_YEAR: string;
9
+ (date: Date | null | undefined, format?: string): string;
10
+ DATE: string;
11
+ DATE_WITH_YEAR: string;
12
+ TIME: string;
13
+ TIME_MS: string;
14
+ TIME_MINUTE: string;
15
+ DATE_TIME: string;
16
+ DATE_TIME_MS: string;
17
+ DATE_TIME_WITH_YEAR: string;
18
+ DATE_TIME_MS_WITH_YEAR: string;
19
+ DATE_MINUTE: string;
20
+ DATE_MINUTE_WITH_YEAR: string;
23
21
  };
24
22
  /**
25
23
  * 格式化日期
@@ -45,8 +43,5 @@ export declare const formatDate: FormatFn;
45
43
  * @param day2 时间2
46
44
  * @returns 天数差,负数: day1 < day2
47
45
  */
48
- export declare function daysDiff(
49
- day1: ValidDateValue,
50
- day2: ValidDateValue
51
- ): number;
46
+ export declare function daysDiff(day1: ValidDateValue, day2: ValidDateValue): number;
52
47
  export {};