@10yun/cv-mobile-ui 0.5.27 → 0.5.30

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 (918) hide show
  1. package/build/parse-pages.js +50 -14
  2. package/build/parse-pages2.js +11 -10
  3. package/other/uParse/components/wxParseAudio.vue +1 -1
  4. package/other/uParse/components/wxParseVideo.vue +1 -1
  5. package/package.json +1 -1
  6. package/plugins/luch-request/adapters/index.js +131 -0
  7. package/plugins/luch-request/core/InterceptorManager.js +50 -0
  8. package/plugins/luch-request/core/Request.js +199 -0
  9. package/plugins/luch-request/core/buildFullPath.js +20 -0
  10. package/plugins/luch-request/core/defaults.js +32 -0
  11. package/plugins/luch-request/core/dispatchRequest.js +5 -0
  12. package/plugins/luch-request/core/mergeConfig.js +125 -0
  13. package/plugins/luch-request/core/settle.js +16 -0
  14. package/plugins/luch-request/helpers/buildURL.js +71 -0
  15. package/plugins/luch-request/helpers/combineURLs.js +12 -0
  16. package/plugins/luch-request/helpers/isAbsoluteURL.js +14 -0
  17. package/plugins/luch-request/index.d.ts +197 -0
  18. package/plugins/luch-request/index.js +2 -0
  19. package/plugins/luch-request/readme.md +3 -0
  20. package/plugins/luch-request/utils/clone.js +264 -0
  21. package/plugins/luch-request/utils.js +131 -0
  22. package/plugins/request.js +84 -69
  23. package/ui-cv/components/cv-btn-base/cv-btn-base.vue +66 -14
  24. package/ui-cv/components/cv-code-sms/cv-code-sms.vue +22 -15
  25. package/ui-cv/components/cv-date-base/cv-date-base.vue +1 -1
  26. package/ui-cv/components/cv-form-item/cv-form-item.vue +1 -1
  27. package/ui-cv/components/cv-input-text/input.css +13 -0
  28. package/ui-cv/components/cv-picker1/cv-picker1.vue +1 -1
  29. package/ui-fireui/fui-actionsheet/fui-actionsheet.vue +202 -0
  30. package/ui-fireui/fui-alert/fui-alert.vue +141 -0
  31. package/ui-fireui/fui-badge/fui-badge.vue +158 -0
  32. package/ui-fireui/fui-bottom-navigation/fui-bottom-navigation.vue +390 -0
  33. package/ui-fireui/fui-bottom-popup/fui-bottom-popup.vue +100 -0
  34. package/ui-fireui/fui-bubble-popup/fui-bubble-popup.vue +236 -0
  35. package/ui-fireui/fui-button/fui-button.vue +424 -0
  36. package/ui-fireui/fui-calendar/fui-calendar.js +915 -0
  37. package/ui-fireui/fui-calendar/fui-calendar.vue +868 -0
  38. package/ui-fireui/fui-card/fui-card.vue +231 -0
  39. package/ui-fireui/fui-cascade-selection/fui-cascade-selection.vue +538 -0
  40. package/ui-fireui/fui-circular-progress/fui-circular-progress.vue +261 -0
  41. package/ui-fireui/fui-collapse/fui-collapse.vue +179 -0
  42. package/ui-fireui/fui-countdown/fui-countdown.vue +301 -0
  43. package/ui-fireui/fui-datetime/fui-datetime.vue +570 -0
  44. package/ui-fireui/fui-divider/fui-divider.vue +118 -0
  45. package/ui-fireui/fui-drawer/fui-drawer.vue +103 -0
  46. package/ui-fireui/fui-dropdown-list/fui-dropdown-list.vue +70 -0
  47. package/ui-fireui/fui-fab/fui-fab.vue +284 -0
  48. package/ui-fireui/fui-footer/fui-footer.vue +131 -0
  49. package/ui-fireui/fui-grid/fui-grid.vue +42 -0
  50. package/ui-fireui/fui-grid-item/fui-grid-item.vue +142 -0
  51. package/ui-fireui/fui-icon/fui-icon.vue +820 -0
  52. package/ui-fireui/fui-image-cropper/fui-image-cropper.vue +1058 -0
  53. package/ui-fireui/fui-image-group/fui-image-group.vue +149 -0
  54. package/ui-fireui/fui-keyboard/fui-keyboard.vue +254 -0
  55. package/ui-fireui/fui-keyboard-input/fui-keyboard-input.vue +78 -0
  56. package/ui-fireui/fui-list-cell/fui-list-cell.vue +178 -0
  57. package/ui-fireui/fui-list-view/fui-list-view.vue +87 -0
  58. package/ui-fireui/fui-loading/fui-loading.vue +78 -0
  59. package/ui-fireui/fui-loadmore/fui-loadmore.vue +163 -0
  60. package/ui-fireui/fui-modal/fui-modal.vue +392 -0
  61. package/ui-fireui/fui-navigation-bar/fui-navigation-bar.vue +180 -0
  62. package/ui-fireui/fui-no-data/fui-no-data.vue +116 -0
  63. package/ui-fireui/fui-nomore/fui-nomore.vue +116 -0
  64. package/ui-fireui/fui-numberbox/fui-numberbox.vue +234 -0
  65. package/ui-fireui/fui-numberbox-border/fui-numberbox-border.vue +232 -0
  66. package/ui-fireui/fui-picture-cropper/fui-picture-cropper.vue +682 -0
  67. package/ui-fireui/fui-picture-cropper/fui-picture-cropper.wxs +560 -0
  68. package/ui-fireui/fui-rate/fui-rate.vue +167 -0
  69. package/ui-fireui/fui-round-progress/fui-round-progress.vue +306 -0
  70. package/ui-fireui/fui-scroll-top/fui-scroll-top.vue +189 -0
  71. package/ui-fireui/fui-sharemodel/fui-sharemodel.vue +181 -0
  72. package/ui-fireui/fui-skeleton/fui-skeleton.vue +248 -0
  73. package/ui-fireui/fui-steps/fui-steps.vue +214 -0
  74. package/ui-fireui/fui-sticky/fui-sticky.vue +155 -0
  75. package/ui-fireui/fui-sticky-wxs/fui-sticky-wxs.vue +133 -0
  76. package/ui-fireui/fui-sticky-wxs/fui-sticky.wxs +44 -0
  77. package/ui-fireui/fui-swipe-action/fui-swipe-action.vue +301 -0
  78. package/ui-fireui/fui-tabbar/fui-tabbar.vue +283 -0
  79. package/ui-fireui/fui-tabs/fui-tabs.vue +284 -0
  80. package/ui-fireui/fui-tabs2/fui-tabs2.vue +284 -0
  81. package/ui-fireui/fui-tag/fui-tag.vue +374 -0
  82. package/ui-fireui/fui-time-axis/fui-time-axis.vue +36 -0
  83. package/ui-fireui/fui-timeaxis-item/fui-timeaxis-item.vue +48 -0
  84. package/ui-fireui/fui-tips/fui-tips.vue +161 -0
  85. package/ui-fireui/fui-toast/fui-toast.vue +117 -0
  86. package/ui-fireui/fui-top-dropdown/fui-top-dropdown.vue +129 -0
  87. package/ui-fireui/fui-upload/fui-upload.vue +446 -0
  88. package/ui-fireui/fui-uploadsamll/fui-uploadsamll.vue +472 -0
  89. package/uni-ui/lib/uni-icons/changelog.md +22 -0
  90. package/uni-ui/lib/uni-icons/package.json +42 -0
  91. package/uni-ui/lib/uni-icons/readme.md +8 -0
  92. package/uview-plus/LICENSE +1 -1
  93. package/uview-plus/README.md +22 -12
  94. package/uview-plus/changelog-wu-tool.md +21 -0
  95. package/uview-plus/changelog-wu.md +91 -0
  96. package/uview-plus/changelog.md +752 -0
  97. package/uview-plus/components/u--form/u--form.vue +1 -1
  98. package/uview-plus/components/u--image/u--image.vue +1 -1
  99. package/uview-plus/components/u--input/u--input.vue +3 -3
  100. package/uview-plus/components/u--text/u--text.vue +1 -1
  101. package/uview-plus/components/u--textarea/u--textarea.vue +1 -1
  102. package/uview-plus/components/u-action-sheet/_doc/changelog.md +12 -0
  103. package/uview-plus/components/u-action-sheet/_doc/package.json +92 -0
  104. package/uview-plus/components/u-action-sheet/_doc/readme.md +16 -0
  105. package/uview-plus/{libs/config/props → components/u-action-sheet}/actionSheet.js +3 -2
  106. package/uview-plus/components/u-action-sheet/props.js +20 -13
  107. package/uview-plus/components/u-action-sheet/style.css +18 -4
  108. package/uview-plus/components/u-action-sheet/style.scss +2 -2
  109. package/uview-plus/components/u-action-sheet/u-action-sheet.vue +21 -13
  110. package/uview-plus/components/u-action-sheet-data/style.css +10 -0
  111. package/uview-plus/components/u-action-sheet-data/style.scss +12 -0
  112. package/uview-plus/components/u-action-sheet-data/u-action-sheet-data.vue +94 -0
  113. package/uview-plus/{libs/config/props → components/u-album}/album.js +5 -2
  114. package/uview-plus/components/u-album/props.js +40 -14
  115. package/uview-plus/components/u-album/style.css +16 -2
  116. package/uview-plus/components/u-album/style.scss +0 -1
  117. package/uview-plus/components/u-album/u-album.vue +55 -30
  118. package/uview-plus/components/u-alert/props.js +12 -11
  119. package/uview-plus/components/u-alert/style.css +17 -2
  120. package/uview-plus/components/u-alert/u-alert.vue +12 -6
  121. package/uview-plus/components/u-app-update/_doc/changelog.md +26 -0
  122. package/uview-plus/components/u-app-update/_doc/package.json +89 -0
  123. package/uview-plus/components/u-app-update/_doc/readme.md +16 -0
  124. package/uview-plus/components/u-app-update/config.js +120 -0
  125. package/uview-plus/components/u-app-update/img/act.png +0 -0
  126. package/uview-plus/components/u-app-update/img/appUploadAlertBoxBg.png +0 -0
  127. package/uview-plus/components/u-app-update/img/close.png +0 -0
  128. package/uview-plus/components/u-app-update/js-sdk/checkVersion.js +81 -0
  129. package/uview-plus/components/u-app-update/js-sdk/silentlyAppUpdate.js +41 -0
  130. package/uview-plus/components/u-app-update/pages/index.vue +8 -0
  131. package/uview-plus/components/u-app-update/u-app-update.vue +583 -0
  132. package/uview-plus/components/u-avatar/props.js +20 -18
  133. package/uview-plus/components/u-avatar/style.css +18 -2
  134. package/uview-plus/components/u-avatar/style.scss +1 -0
  135. package/uview-plus/components/u-avatar/u-avatar.vue +20 -15
  136. package/uview-plus/{libs/config/props → components/u-avatar-group}/avatarGroup.js +1 -1
  137. package/uview-plus/components/u-avatar-group/props.js +13 -12
  138. package/uview-plus/components/u-avatar-group/style.css +17 -2
  139. package/uview-plus/components/u-avatar-group/u-avatar-group.vue +2 -73
  140. package/uview-plus/{libs/config/props → components/u-back-top}/backtop.js +2 -2
  141. package/uview-plus/components/u-back-top/props.js +14 -13
  142. package/uview-plus/components/u-back-top/style.css +17 -2
  143. package/uview-plus/components/u-back-top/u-back-top.vue +11 -9
  144. package/uview-plus/{libs/config/props → components/u-badge}/badge.js +1 -1
  145. package/uview-plus/components/u-badge/props.js +18 -17
  146. package/uview-plus/components/u-badge/style.css +17 -2
  147. package/uview-plus/components/u-badge/u-badge.vue +11 -7
  148. package/uview-plus/components/u-box/props.js +27 -0
  149. package/uview-plus/components/u-box/style.css +77 -0
  150. package/uview-plus/components/u-box/style.scss +38 -0
  151. package/uview-plus/components/u-box/u-box.vue +3 -0
  152. package/uview-plus/{libs/config/props → components/u-button}/button.js +2 -1
  153. package/uview-plus/components/u-button/nvue-parse.scss +2 -2
  154. package/uview-plus/components/u-button/props.js +37 -40
  155. package/uview-plus/components/u-button/style.css +21 -5
  156. package/uview-plus/components/u-button/u-button.vue +32 -21
  157. package/uview-plus/components/u-button/vue-parse.scss +4 -3
  158. package/uview-plus/components/u-button/vue.scss +9 -8
  159. package/uview-plus/components/u-button-wu/_doc/changelog.md +6 -0
  160. package/uview-plus/components/u-button-wu/_doc/package.json +89 -0
  161. package/uview-plus/components/u-button-wu/_doc/readme.md +16 -0
  162. package/uview-plus/components/u-button-wu/u-button-wu.vue +522 -0
  163. package/uview-plus/components/u-button-wu/vue.scss +81 -0
  164. package/uview-plus/{libs/config/props → components/u-calendar}/calendar.js +7 -4
  165. package/uview-plus/components/u-calendar/header.vue +3 -1
  166. package/uview-plus/components/u-calendar/month.vue +43 -19
  167. package/uview-plus/components/u-calendar/props.js +45 -30
  168. package/uview-plus/components/u-calendar/style.css +17 -2
  169. package/uview-plus/components/u-calendar/u-calendar.vue +53 -17
  170. package/uview-plus/components/u-calendar-wu/_doc/changelog.md +145 -0
  171. package/uview-plus/components/u-calendar-wu/_doc/package.json +90 -0
  172. package/uview-plus/components/u-calendar-wu/_doc/readme.md +16 -0
  173. package/uview-plus/components/u-calendar-wu/calendar.js +664 -0
  174. package/uview-plus/components/u-calendar-wu/i18n/en.json +14 -0
  175. package/uview-plus/components/u-calendar-wu/i18n/index.js +8 -0
  176. package/uview-plus/components/u-calendar-wu/i18n/zh-Hans.json +14 -0
  177. package/uview-plus/components/u-calendar-wu/i18n/zh-Hant.json +14 -0
  178. package/uview-plus/components/u-calendar-wu/props.js +166 -0
  179. package/uview-plus/components/u-calendar-wu/style.css +196 -0
  180. package/uview-plus/components/u-calendar-wu/u-calendar-wu.vue +921 -0
  181. package/uview-plus/components/u-calendar-wu/util.js +552 -0
  182. package/uview-plus/components/u-calendar-wu/wu-calendar-block/props.js +73 -0
  183. package/uview-plus/components/u-calendar-wu/wu-calendar-block/wu-calendar-block.vue +122 -0
  184. package/uview-plus/components/u-calendar-wu/wu-calendar-item/props.js +55 -0
  185. package/uview-plus/components/u-calendar-wu/wu-calendar-item/wu-calendar-item.vue +293 -0
  186. package/uview-plus/components/u-car-keyboard/props.js +5 -3
  187. package/uview-plus/components/u-car-keyboard/style.css +18 -3
  188. package/uview-plus/components/u-car-keyboard/u-car-keyboard.vue +205 -1
  189. package/uview-plus/components/u-card/card.js +40 -0
  190. package/uview-plus/components/u-card/props.js +134 -0
  191. package/uview-plus/components/u-card/style.css +60 -0
  192. package/uview-plus/components/u-card/style.scss +47 -0
  193. package/uview-plus/components/u-card/u-card.vue +3 -0
  194. package/uview-plus/components/u-cate-tab/style.css +97 -0
  195. package/uview-plus/components/u-cate-tab/style.scss +114 -0
  196. package/uview-plus/components/u-cate-tab/u-cate-tab.vue +3 -0
  197. package/uview-plus/components/u-cell/_doc/changelog.md +6 -0
  198. package/uview-plus/components/u-cell/_doc/package.json +89 -0
  199. package/uview-plus/components/u-cell/_doc/readme.md +25 -0
  200. package/uview-plus/components/u-cell/props.js +24 -23
  201. package/uview-plus/components/u-cell/style.css +43 -3
  202. package/uview-plus/components/u-cell/style.scss +25 -2
  203. package/uview-plus/components/u-cell/u-cell.vue +44 -31
  204. package/uview-plus/components/u-cell-group/props.js +6 -5
  205. package/uview-plus/components/u-cell-group/style.css +17 -2
  206. package/uview-plus/components/u-cell-group/u-cell-group.vue +10 -6
  207. package/uview-plus/components/u-checkbox/_doc/changelog.md +8 -0
  208. package/uview-plus/components/u-checkbox/_doc/package.json +88 -0
  209. package/uview-plus/components/u-checkbox/_doc/readme.md +25 -0
  210. package/uview-plus/components/u-checkbox/props.js +22 -16
  211. package/uview-plus/components/u-checkbox/style.css +17 -2
  212. package/uview-plus/components/u-checkbox/u-checkbox.vue +87 -57
  213. package/uview-plus/{libs/config/props → components/u-checkbox-group}/checkboxGroup.js +1 -1
  214. package/uview-plus/components/u-checkbox-group/props.js +21 -19
  215. package/uview-plus/components/u-checkbox-group/style.css +17 -2
  216. package/uview-plus/components/u-checkbox-group/u-checkbox-group.vue +5 -5
  217. package/uview-plus/components/u-circle-progress/props.js +5 -4
  218. package/uview-plus/components/u-circle-progress/style.css +23 -8
  219. package/uview-plus/components/u-circle-progress/u-circle-progress.vue +5 -4
  220. package/uview-plus/components/u-code/_doc/changelog.md +6 -0
  221. package/uview-plus/components/u-code/_doc/package.json +86 -0
  222. package/uview-plus/components/u-code/_doc/readme.md +16 -0
  223. package/uview-plus/components/u-code/props.js +10 -9
  224. package/uview-plus/components/u-code/style.css +17 -2
  225. package/uview-plus/components/u-code/u-code.vue +6 -5
  226. package/uview-plus/components/u-code-input/props.js +28 -18
  227. package/uview-plus/components/u-code-input/style.css +22 -6
  228. package/uview-plus/components/u-code-input/style.scss +5 -4
  229. package/uview-plus/components/u-code-input/u-code-input.vue +57 -11
  230. package/uview-plus/components/u-col/props.js +9 -8
  231. package/uview-plus/components/u-col/style.css +29 -14
  232. package/uview-plus/components/u-col/u-col.vue +10 -8
  233. package/uview-plus/components/u-collapse/props.js +7 -6
  234. package/uview-plus/components/u-collapse/style.css +17 -2
  235. package/uview-plus/components/u-collapse/u-collapse.vue +4 -3
  236. package/uview-plus/{libs/config/props → components/u-collapse-item}/collapseItem.js +7 -1
  237. package/uview-plus/components/u-collapse-item/props.js +51 -14
  238. package/uview-plus/components/u-collapse-item/style.css +17 -2
  239. package/uview-plus/components/u-collapse-item/u-collapse-item.vue +3 -1
  240. package/uview-plus/{libs/config/props → components/u-column-notice}/columnNotice.js +2 -1
  241. package/uview-plus/components/u-column-notice/props.js +18 -13
  242. package/uview-plus/components/u-column-notice/style.css +17 -2
  243. package/uview-plus/components/u-column-notice/u-column-notice.vue +15 -7
  244. package/uview-plus/components/u-copy/u-copy.vue +1 -0
  245. package/uview-plus/components/u-count-down/props.js +8 -7
  246. package/uview-plus/components/u-count-down/style.css +17 -2
  247. package/uview-plus/components/u-count-down/u-count-down.vue +146 -1
  248. package/uview-plus/components/u-count-to/props.js +15 -14
  249. package/uview-plus/components/u-count-to/style.css +17 -2
  250. package/uview-plus/components/u-count-to/u-count-to.vue +7 -4
  251. package/uview-plus/{libs/config/props → components/u-datetime-picker}/datetimePicker.js +7 -1
  252. package/uview-plus/components/u-datetime-picker/props.js +68 -26
  253. package/uview-plus/components/u-datetime-picker/style.css +42 -1
  254. package/uview-plus/components/u-datetime-picker/style.scss +26 -0
  255. package/uview-plus/components/u-datetime-picker/u-datetime-picker.vue +140 -40
  256. package/uview-plus/components/u-divider/props.js +12 -11
  257. package/uview-plus/components/u-divider/style.css +17 -2
  258. package/uview-plus/components/u-divider/u-divider.vue +8 -5
  259. package/uview-plus/components/u-drag-sort/_doc/changelog.md +0 -0
  260. package/uview-plus/components/u-drag-sort/_doc/package.json +85 -0
  261. package/uview-plus/components/u-drag-sort/_doc/readme.md +16 -0
  262. package/uview-plus/components/u-drag-sort/u-drag-sort.vue +3 -0
  263. package/uview-plus/components/u-dropdown/props.js +12 -17
  264. package/uview-plus/components/u-dropdown/style.css +63 -3
  265. package/uview-plus/components/u-dropdown/style.scss +68 -18
  266. package/uview-plus/components/u-dropdown/u-dropdown.vue +208 -1
  267. package/uview-plus/components/u-dropdown-item/props.js +47 -37
  268. package/uview-plus/components/u-dropdown-item/style.css +19 -6
  269. package/uview-plus/components/u-dropdown-item/style.scss +4 -9
  270. package/uview-plus/components/u-dropdown-item/u-dropdown-item.vue +126 -1
  271. package/uview-plus/components/u-empty/props.js +15 -14
  272. package/uview-plus/components/u-empty/style.css +17 -2
  273. package/uview-plus/components/u-empty/u-empty.vue +39 -9
  274. package/uview-plus/components/u-float-button/style.css +41 -0
  275. package/uview-plus/components/u-float-button/style.scss +17 -0
  276. package/uview-plus/components/u-float-button/u-float-button.vue +164 -0
  277. package/uview-plus/{libs/config/props → components/u-form}/form.js +3 -3
  278. package/uview-plus/components/u-form/props.js +12 -11
  279. package/uview-plus/components/u-form/u-form.vue +1 -1
  280. package/uview-plus/{libs/config/props → components/u-form-item}/formItem.js +2 -0
  281. package/uview-plus/components/u-form-item/props.js +22 -11
  282. package/uview-plus/components/u-form-item/style.css +17 -4
  283. package/uview-plus/components/u-form-item/style.scss +0 -2
  284. package/uview-plus/components/u-form-item/u-form-item.vue +42 -15
  285. package/uview-plus/components/u-gap/_doc/changelog.md +4 -0
  286. package/uview-plus/components/u-gap/_doc/package.json +86 -0
  287. package/uview-plus/components/u-gap/_doc/readme.md +22 -0
  288. package/uview-plus/components/u-gap/props.js +8 -7
  289. package/uview-plus/components/u-gap/style.css +17 -2
  290. package/uview-plus/components/u-gap/u-gap.vue +8 -7
  291. package/uview-plus/components/u-grid/props.js +12 -6
  292. package/uview-plus/components/u-grid/style.css +23 -3
  293. package/uview-plus/components/u-grid/style.scss +8 -1
  294. package/uview-plus/components/u-grid/u-grid.vue +11 -4
  295. package/uview-plus/components/u-grid-item/props.js +6 -5
  296. package/uview-plus/components/u-grid-item/style.css +17 -2
  297. package/uview-plus/components/u-grid-item/u-grid-item.vue +17 -14
  298. package/uview-plus/components/u-icon/_doc/changelog.md +10 -0
  299. package/uview-plus/components/u-icon/_doc/package.json +85 -0
  300. package/uview-plus/components/u-icon/_doc/readme.md +10 -0
  301. package/uview-plus/components/u-icon/icon.js +34 -0
  302. package/uview-plus/components/u-icon/icons.js +213 -213
  303. package/uview-plus/components/u-icon/props.js +21 -20
  304. package/uview-plus/components/u-icon/style.css +18 -3
  305. package/uview-plus/components/u-icon/style.scss +2 -3
  306. package/uview-plus/components/u-icon/u-icon.vue +85 -34
  307. package/uview-plus/components/u-icon/u-icon2.vue +149 -0
  308. package/uview-plus/components/u-image/props.js +20 -19
  309. package/uview-plus/components/u-image/style.css +17 -2
  310. package/uview-plus/components/u-image/u-image.vue +59 -24
  311. package/uview-plus/components/u-image-wu/_doc/changelog.md +21 -0
  312. package/uview-plus/components/u-image-wu/_doc/package.json +88 -0
  313. package/uview-plus/components/u-image-wu/_doc/readme.md +11 -0
  314. package/uview-plus/components/u-image-wu/props.js +94 -0
  315. package/uview-plus/components/u-image-wu/u-image-wu.vue +243 -0
  316. package/uview-plus/components/u-index-anchor/props.js +9 -8
  317. package/uview-plus/components/u-index-anchor/style.css +17 -2
  318. package/uview-plus/components/u-index-anchor/u-index-anchor.vue +12 -10
  319. package/uview-plus/components/u-index-item/props.js +5 -3
  320. package/uview-plus/components/u-index-item/style.css +17 -2
  321. package/uview-plus/components/u-index-item/u-index-item.vue +7 -6
  322. package/uview-plus/{libs/config/props → components/u-index-list}/indexList.js +3 -2
  323. package/uview-plus/components/u-index-list/props.js +14 -8
  324. package/uview-plus/components/u-index-list/style.css +19 -3
  325. package/uview-plus/components/u-index-list/style.scss +2 -1
  326. package/uview-plus/components/u-index-list/u-index-list.vue +193 -60
  327. package/uview-plus/components/u-input/_doc/changelog.md +6 -0
  328. package/uview-plus/components/u-input/_doc/package.json +88 -0
  329. package/uview-plus/components/u-input/_doc/readme.md +16 -0
  330. package/uview-plus/{libs/config/props → components/u-input}/input.js +1 -1
  331. package/uview-plus/components/u-input/props.js +40 -38
  332. package/uview-plus/components/u-input/style.css +17 -2
  333. package/uview-plus/components/u-input/u-input.vue +70 -54
  334. package/uview-plus/components/u-keyboard/props.js +20 -19
  335. package/uview-plus/components/u-keyboard/style.css +17 -2
  336. package/uview-plus/components/u-keyboard/u-keyboard.vue +4 -3
  337. package/uview-plus/components/u-lazy-load/style.css +38 -0
  338. package/uview-plus/components/u-lazy-load/style.scss +17 -0
  339. package/uview-plus/components/u-lazy-load/u-lazy-load.vue +3 -0
  340. package/uview-plus/components/u-line/_doc/changelog.md +8 -0
  341. package/uview-plus/components/u-line/_doc/package.json +86 -0
  342. package/uview-plus/components/u-line/_doc/readme.md +16 -0
  343. package/uview-plus/components/u-line/props.js +10 -9
  344. package/uview-plus/components/u-line/style.css +17 -2
  345. package/uview-plus/components/u-line/u-line.vue +7 -6
  346. package/uview-plus/components/u-line-progress/props.js +9 -8
  347. package/uview-plus/components/u-line-progress/style.css +17 -2
  348. package/uview-plus/components/u-line-progress/u-line-progress.vue +11 -8
  349. package/uview-plus/components/u-link/_doc/changelog.md +8 -0
  350. package/uview-plus/components/u-link/_doc/package.json +86 -0
  351. package/uview-plus/components/u-link/_doc/readme.md +20 -0
  352. package/uview-plus/{libs/config/props → components/u-link}/link.js +1 -1
  353. package/uview-plus/components/u-link/props.js +11 -10
  354. package/uview-plus/components/u-link/style.css +17 -2
  355. package/uview-plus/components/u-link/u-link.vue +10 -7
  356. package/uview-plus/components/u-list/props.js +43 -18
  357. package/uview-plus/components/u-list/style.css +17 -2
  358. package/uview-plus/components/u-list/u-list.vue +41 -10
  359. package/uview-plus/components/u-list-item/props.js +5 -4
  360. package/uview-plus/components/u-list-item/style.css +17 -2
  361. package/uview-plus/components/u-list-item/u-list-item.vue +5 -4
  362. package/uview-plus/components/u-loading-icon/_doc/changelog.md +12 -0
  363. package/uview-plus/components/u-loading-icon/_doc/package.json +86 -0
  364. package/uview-plus/components/u-loading-icon/_doc/readme.md +16 -0
  365. package/uview-plus/{libs/config/props → components/u-loading-icon}/loadingIcon.js +1 -1
  366. package/uview-plus/components/u-loading-icon/props.js +16 -15
  367. package/uview-plus/components/u-loading-icon/style.css +21 -5
  368. package/uview-plus/components/u-loading-icon/style.scss +3 -3
  369. package/uview-plus/components/u-loading-icon/u-loading-icon.vue +3 -1
  370. package/uview-plus/{libs/config/props → components/u-loading-page}/loadingPage.js +2 -1
  371. package/uview-plus/components/u-loading-page/props.js +19 -12
  372. package/uview-plus/components/u-loading-page/style.css +19 -4
  373. package/uview-plus/components/u-loading-page/u-loading-page.vue +15 -9
  374. package/uview-plus/components/u-loadmore/props.js +22 -21
  375. package/uview-plus/components/u-loadmore/style.css +17 -2
  376. package/uview-plus/components/u-loadmore/u-loadmore.vue +13 -9
  377. package/uview-plus/components/u-mask/u-mask.vue +122 -0
  378. package/uview-plus/{libs/config/props → components/u-modal}/modal.js +5 -1
  379. package/uview-plus/components/u-modal/props.js +40 -19
  380. package/uview-plus/components/u-modal/style.css +21 -2
  381. package/uview-plus/components/u-modal/style.scss +69 -65
  382. package/uview-plus/components/u-modal/u-modal.vue +184 -1
  383. package/uview-plus/components/u-navbar/_doc/changelog.md +6 -0
  384. package/uview-plus/components/u-navbar/_doc/package.json +89 -0
  385. package/uview-plus/components/u-navbar/_doc/readme.md +16 -0
  386. package/uview-plus/{libs/config/props → components/u-navbar}/navbar.js +2 -1
  387. package/uview-plus/components/u-navbar/props.js +26 -19
  388. package/uview-plus/components/u-navbar/style.css +17 -2
  389. package/uview-plus/components/u-navbar/u-navbar.vue +25 -12
  390. package/uview-plus/components/u-navbar-mini/props.js +51 -0
  391. package/uview-plus/components/u-navbar-mini/style.css +60 -0
  392. package/uview-plus/components/u-navbar-mini/style.scss +38 -0
  393. package/uview-plus/components/u-navbar-mini/u-navbar-mini.vue +89 -0
  394. package/uview-plus/components/u-navbar-wu/props.js +102 -0
  395. package/uview-plus/components/u-navbar-wu/u-navbar-wu.vue +196 -0
  396. package/uview-plus/components/u-no-network/props.js +7 -6
  397. package/uview-plus/components/u-no-network/style.css +17 -2
  398. package/uview-plus/components/u-no-network/u-no-network.vue +8 -6
  399. package/uview-plus/{libs/config/props → components/u-notice-bar}/noticeBar.js +3 -2
  400. package/uview-plus/components/u-notice-bar/props.js +21 -16
  401. package/uview-plus/components/u-notice-bar/style.css +17 -2
  402. package/uview-plus/components/u-notice-bar/u-notice-bar.vue +10 -4
  403. package/uview-plus/components/u-notify/props.js +13 -12
  404. package/uview-plus/components/u-notify/style.css +17 -2
  405. package/uview-plus/components/u-notify/u-notify.vue +20 -16
  406. package/uview-plus/components/u-number-box/_doc/changelog.md +19 -0
  407. package/uview-plus/components/u-number-box/_doc/package.json +88 -0
  408. package/uview-plus/components/u-number-box/_doc/readme.md +16 -0
  409. package/uview-plus/{libs/config/props → components/u-number-box}/numberBox.js +5 -1
  410. package/uview-plus/components/u-number-box/props.js +46 -25
  411. package/uview-plus/components/u-number-box/style.css +17 -2
  412. package/uview-plus/components/u-number-box/u-number-box.vue +72 -35
  413. package/uview-plus/components/u-number-keyboard/props.js +7 -6
  414. package/uview-plus/components/u-number-keyboard/style.css +19 -4
  415. package/uview-plus/components/u-number-keyboard/u-number-keyboard.vue +9 -6
  416. package/uview-plus/components/u-overlay/_doc/changelog.md +4 -0
  417. package/uview-plus/components/u-overlay/_doc/package.json +88 -0
  418. package/uview-plus/components/u-overlay/_doc/readme.md +16 -0
  419. package/uview-plus/components/u-overlay/props.js +8 -7
  420. package/uview-plus/components/u-overlay/style.css +17 -2
  421. package/uview-plus/components/u-overlay/u-overlay.vue +14 -5
  422. package/uview-plus/components/u-parse/node/node.vue +12 -4
  423. package/uview-plus/components/u-parse/parser.js +1337 -1333
  424. package/uview-plus/components/u-parse/props.js +48 -47
  425. package/uview-plus/components/u-parse/u-parse.vue +6 -6
  426. package/uview-plus/{libs/config/props → components/u-picker}/picker.js +10 -4
  427. package/uview-plus/components/u-picker/props.js +60 -18
  428. package/uview-plus/components/u-picker/style.css +29 -2
  429. package/uview-plus/components/u-picker/style.scss +12 -1
  430. package/uview-plus/components/u-picker/u-picker.vue +174 -58
  431. package/uview-plus/components/u-picker-column/props.js +4 -3
  432. package/uview-plus/components/u-picker-column/style.css +17 -2
  433. package/uview-plus/components/u-picker-column/u-picker-column.vue +3 -3
  434. package/uview-plus/components/u-picker-data/style.css +10 -0
  435. package/uview-plus/components/u-picker-data/style.scss +12 -0
  436. package/uview-plus/components/u-picker-data/u-picker-data.vue +110 -0
  437. package/uview-plus/components/u-popup/_doc/changelog.md +4 -0
  438. package/uview-plus/components/u-popup/_doc/package.json +92 -0
  439. package/uview-plus/components/u-popup/_doc/readme.md +16 -0
  440. package/uview-plus/{libs/config/props → components/u-popup}/popup.js +1 -1
  441. package/uview-plus/components/u-popup/props.js +19 -18
  442. package/uview-plus/components/u-popup/style.css +27 -2
  443. package/uview-plus/components/u-popup/style.scss +86 -75
  444. package/uview-plus/components/u-popup/u-popup.vue +250 -1
  445. package/uview-plus/components/u-popup-wu/keypress.js +45 -0
  446. package/uview-plus/components/u-popup-wu/u-popup-wu.vue +519 -0
  447. package/uview-plus/components/u-qrcode/qrcode.js +1235 -0
  448. package/uview-plus/components/u-qrcode/style.css +20 -0
  449. package/uview-plus/components/u-qrcode/style.scss +23 -0
  450. package/uview-plus/components/u-qrcode/u-qrcode.vue +3 -0
  451. package/uview-plus/components/u-radio/_doc/changelog.md +6 -0
  452. package/uview-plus/components/u-radio/_doc/package.json +88 -0
  453. package/uview-plus/components/u-radio/_doc/readme.md +25 -0
  454. package/uview-plus/components/u-radio/props.js +17 -16
  455. package/uview-plus/components/u-radio/style.css +17 -2
  456. package/uview-plus/components/u-radio/u-radio.vue +32 -27
  457. package/uview-plus/components/u-radio-group/props.js +26 -20
  458. package/uview-plus/{libs/config/props → components/u-radio-group}/radioGroup.js +4 -3
  459. package/uview-plus/components/u-radio-group/style.css +17 -2
  460. package/uview-plus/components/u-radio-group/u-radio-group.vue +12 -4
  461. package/uview-plus/components/u-rate/props.js +18 -17
  462. package/uview-plus/components/u-rate/style.css +17 -2
  463. package/uview-plus/components/u-rate/u-rate.vue +17 -14
  464. package/uview-plus/components/u-read-more/props.js +12 -11
  465. package/uview-plus/components/u-read-more/style.css +18 -2
  466. package/uview-plus/components/u-read-more/style.scss +23 -22
  467. package/uview-plus/components/u-read-more/u-read-more.vue +2 -118
  468. package/uview-plus/components/u-row/_doc/changelog.md +8 -0
  469. package/uview-plus/components/u-row/_doc/package.json +86 -0
  470. package/uview-plus/components/u-row/_doc/readme.md +16 -0
  471. package/uview-plus/components/u-row/props.js +7 -6
  472. package/uview-plus/components/u-row/style.css +17 -2
  473. package/uview-plus/components/u-row/u-row.vue +9 -7
  474. package/uview-plus/components/u-row-notice/props.js +11 -10
  475. package/uview-plus/components/u-row-notice/style.css +18 -2
  476. package/uview-plus/components/u-row-notice/style.scss +1 -0
  477. package/uview-plus/components/u-row-notice/u-row-notice.vue +17 -15
  478. package/uview-plus/components/u-safe-bottom/_doc/changelog.md +6 -0
  479. package/uview-plus/components/u-safe-bottom/_doc/package.json +86 -0
  480. package/uview-plus/components/u-safe-bottom/_doc/readme.md +16 -0
  481. package/uview-plus/components/u-safe-bottom/props.js +5 -3
  482. package/uview-plus/components/u-safe-bottom/u-safe-bottom.vue +3 -1
  483. package/uview-plus/components/u-scroll-list/nvue.js +1 -3
  484. package/uview-plus/components/u-scroll-list/props.js +10 -9
  485. package/uview-plus/components/u-scroll-list/style.css +18 -2
  486. package/uview-plus/components/u-scroll-list/style.scss +2 -0
  487. package/uview-plus/components/u-scroll-list/u-scroll-list.vue +17 -12
  488. package/uview-plus/components/u-search/props.js +42 -27
  489. package/uview-plus/{libs/config/props → components/u-search}/search.js +3 -2
  490. package/uview-plus/components/u-search/style.css +23 -2
  491. package/uview-plus/components/u-search/style.scss +8 -0
  492. package/uview-plus/components/u-search/u-search.vue +22 -8
  493. package/uview-plus/components/u-select/style.css +45 -0
  494. package/uview-plus/components/u-select/style.scss +47 -0
  495. package/uview-plus/components/u-select/u-select.vue +3 -0
  496. package/uview-plus/components/u-skeleton/props.js +15 -14
  497. package/uview-plus/components/u-skeleton/style.css +17 -2
  498. package/uview-plus/components/u-skeleton/u-skeleton.vue +22 -19
  499. package/uview-plus/components/u-sku-wu/_doc/changelog.md +27 -0
  500. package/uview-plus/components/u-sku-wu/_doc/package.json +93 -0
  501. package/uview-plus/components/u-sku-wu/_doc/readme.md +16 -0
  502. package/uview-plus/components/u-sku-wu/props.js +86 -0
  503. package/uview-plus/components/u-sku-wu/style.css +271 -0
  504. package/uview-plus/components/u-sku-wu/u-sku-wu.vue +864 -0
  505. package/uview-plus/components/u-slider/mpwxs.js +2 -1
  506. package/uview-plus/components/u-slider/nvue.js +2 -1
  507. package/uview-plus/components/u-slider/props.js +50 -14
  508. package/uview-plus/{libs/config/props → components/u-slider}/slider.js +3 -1
  509. package/uview-plus/components/u-slider/style.css +81 -1
  510. package/uview-plus/components/u-slider/style.scss +76 -0
  511. package/uview-plus/components/u-slider/u-slider.vue +446 -1
  512. package/uview-plus/components/u-status-bar/_doc/changelog.md +4 -0
  513. package/uview-plus/components/u-status-bar/_doc/package.json +86 -0
  514. package/uview-plus/components/u-status-bar/_doc/readme.md +16 -0
  515. package/uview-plus/components/u-status-bar/props.js +10 -4
  516. package/uview-plus/{libs/config/props → components/u-status-bar}/statusBar.js +2 -1
  517. package/uview-plus/components/u-status-bar/u-status-bar.vue +23 -8
  518. package/uview-plus/components/u-steps/props.js +11 -10
  519. package/uview-plus/components/u-steps/style.css +21 -2
  520. package/uview-plus/components/u-steps/style.scss +4 -0
  521. package/uview-plus/components/u-steps/u-steps.vue +9 -5
  522. package/uview-plus/components/u-steps-item/props.js +13 -7
  523. package/uview-plus/components/u-steps-item/style.css +19 -3
  524. package/uview-plus/components/u-steps-item/style.scss +3 -2
  525. package/uview-plus/components/u-steps-item/u-steps-item.vue +53 -25
  526. package/uview-plus/components/u-sticky/props.js +10 -9
  527. package/uview-plus/components/u-sticky/u-sticky.vue +21 -14
  528. package/uview-plus/components/u-subsection/props.js +13 -12
  529. package/uview-plus/components/u-subsection/style.css +31 -16
  530. package/uview-plus/components/u-subsection/style.scss +13 -13
  531. package/uview-plus/components/u-subsection/u-subsection.vue +35 -22
  532. package/uview-plus/components/u-swipe-action/props.js +10 -4
  533. package/uview-plus/components/u-swipe-action/u-swipe-action.vue +18 -3
  534. package/uview-plus/components/u-swipe-action-item/alipay.sjs +229 -0
  535. package/uview-plus/components/u-swipe-action-item/index.wxs +20 -15
  536. package/uview-plus/components/u-swipe-action-item/nvue - backup.js +3 -2
  537. package/uview-plus/components/u-swipe-action-item/nvue.js +4 -3
  538. package/uview-plus/components/u-swipe-action-item/other.js +178 -0
  539. package/uview-plus/components/u-swipe-action-item/props.js +15 -10
  540. package/uview-plus/components/u-swipe-action-item/style.css +18 -2
  541. package/uview-plus/components/u-swipe-action-item/style.scss +1 -0
  542. package/uview-plus/{libs/config/props → components/u-swipe-action-item}/swipeActionItem.js +1 -0
  543. package/uview-plus/components/u-swipe-action-item/u-swipe-action-item.vue +85 -28
  544. package/uview-plus/components/u-swiper/props.js +28 -27
  545. package/uview-plus/components/u-swiper/style.css +20 -2
  546. package/uview-plus/components/u-swiper/style.scss +3 -0
  547. package/uview-plus/{libs/config/props → components/u-swiper}/swiper.js +1 -1
  548. package/uview-plus/components/u-swiper/u-swiper.vue +63 -52
  549. package/uview-plus/components/u-swiper-indicator/props.js +9 -8
  550. package/uview-plus/components/u-swiper-indicator/style.css +17 -2
  551. package/uview-plus/components/u-swiper-indicator/u-swiper-indicator.vue +10 -6
  552. package/uview-plus/components/u-switch/props.js +15 -14
  553. package/uview-plus/components/u-switch/style.css +17 -2
  554. package/uview-plus/components/u-switch/u-switch.vue +16 -14
  555. package/uview-plus/components/u-tabbar/props.js +13 -11
  556. package/uview-plus/components/u-tabbar/style.css +17 -2
  557. package/uview-plus/components/u-tabbar/u-tabbar.vue +6 -5
  558. package/uview-plus/components/u-tabbar-item/props.js +10 -9
  559. package/uview-plus/components/u-tabbar-item/style.css +22 -2
  560. package/uview-plus/components/u-tabbar-item/style.scss +5 -0
  561. package/uview-plus/components/u-tabbar-item/u-tabbar-item.vue +8 -5
  562. package/uview-plus/components/u-table/props.js +4 -3
  563. package/uview-plus/components/u-table/style.css +17 -2
  564. package/uview-plus/components/u-table/u-table.vue +3 -3
  565. package/uview-plus/components/u-tabs/props.js +21 -15
  566. package/uview-plus/components/u-tabs/style.css +22 -3
  567. package/uview-plus/components/u-tabs/style.scss +5 -1
  568. package/uview-plus/{libs/config/props → components/u-tabs}/tabs.js +9 -8
  569. package/uview-plus/components/u-tabs/u-tabs.vue +78 -24
  570. package/uview-plus/components/u-tabs-item/props.js +4 -3
  571. package/uview-plus/components/u-tabs-item/u-tabs-item.vue +3 -3
  572. package/uview-plus/components/u-tag/props.js +44 -18
  573. package/uview-plus/components/u-tag/style.css +17 -2
  574. package/uview-plus/components/u-tag/tag.js +35 -0
  575. package/uview-plus/components/u-tag/u-tag.vue +177 -1
  576. package/uview-plus/components/u-td/props.js +4 -3
  577. package/uview-plus/components/u-td/style.css +17 -2
  578. package/uview-plus/components/u-td/u-td.vue +3 -3
  579. package/uview-plus/components/u-text/_doc/changelog.md +10 -0
  580. package/uview-plus/components/u-text/_doc/package.json +89 -0
  581. package/uview-plus/components/u-text/_doc/readme.md +20 -0
  582. package/uview-plus/components/u-text/props.js +30 -24
  583. package/uview-plus/components/u-text/style.css +17 -6
  584. package/uview-plus/components/u-text/style.scss +58 -62
  585. package/uview-plus/{libs/config/props → components/u-text}/text.js +4 -3
  586. package/uview-plus/components/u-text/u-text.vue +2 -143
  587. package/uview-plus/components/u-text/value.js +14 -12
  588. package/uview-plus/components/u-textarea/_doc/changelog.md +6 -0
  589. package/uview-plus/components/u-textarea/_doc/package.json +86 -0
  590. package/uview-plus/components/u-textarea/_doc/readme.md +25 -0
  591. package/uview-plus/components/u-textarea/props.js +28 -26
  592. package/uview-plus/components/u-textarea/style.css +17 -2
  593. package/uview-plus/components/u-textarea/u-textarea.vue +2 -221
  594. package/uview-plus/components/u-toast/style.css +18 -3
  595. package/uview-plus/{libs/config/props → components/u-toast}/toast.js +2 -2
  596. package/uview-plus/components/u-toast/u-toast.vue +31 -21
  597. package/uview-plus/components/u-toolbar/props.js +15 -9
  598. package/uview-plus/components/u-toolbar/style.css +24 -2
  599. package/uview-plus/components/u-toolbar/style.scss +5 -0
  600. package/uview-plus/{libs/config/props → components/u-toolbar}/toolbar.js +1 -1
  601. package/uview-plus/components/u-toolbar/u-toolbar.vue +34 -23
  602. package/uview-plus/components/u-tooltip/props.js +15 -14
  603. package/uview-plus/components/u-tooltip/style.css +17 -2
  604. package/uview-plus/{libs/config/props → components/u-tooltip}/tooltip.js +1 -1
  605. package/uview-plus/components/u-tooltip/u-tooltip.vue +22 -44
  606. package/uview-plus/components/u-tr/props.js +4 -3
  607. package/uview-plus/components/u-tr/style.css +16 -1
  608. package/uview-plus/components/u-tr/u-tr.vue +3 -3
  609. package/uview-plus/components/u-transition/_doc/changelog.md +14 -0
  610. package/uview-plus/components/u-transition/_doc/package.json +86 -0
  611. package/uview-plus/components/u-transition/_doc/readme.md +16 -0
  612. package/uview-plus/components/u-transition/props.js +8 -7
  613. package/uview-plus/components/u-transition/style.css +17 -2
  614. package/uview-plus/components/u-transition/transition.js +18 -164
  615. package/uview-plus/components/u-transition/transitionMixin.js +163 -0
  616. package/uview-plus/components/u-transition/u-transition.vue +8 -7
  617. package/uview-plus/components/u-transition-wu/createAnimation.js +148 -0
  618. package/uview-plus/components/u-transition-wu/props.js +32 -0
  619. package/uview-plus/components/u-transition-wu/u-transition.vue +300 -0
  620. package/uview-plus/components/u-upload/mixin.js +6 -4
  621. package/uview-plus/components/u-upload/props.js +73 -26
  622. package/uview-plus/components/u-upload/style.css +44 -8
  623. package/uview-plus/components/u-upload/style.scss +22 -0
  624. package/uview-plus/components/u-upload/u-upload.vue +463 -106
  625. package/uview-plus/{libs/config/props → components/u-upload}/upload.js +13 -4
  626. package/uview-plus/components/u-upload/utils.js +82 -49
  627. package/uview-plus/components/u-verification-code/u-verification-code.vue +161 -0
  628. package/uview-plus/components/u-view/style.css +26 -0
  629. package/uview-plus/components/u-view/style.scss +4 -0
  630. package/uview-plus/components/u-view/u-view.vue +3 -0
  631. package/uview-plus/components/u-waterfall/style.css +51 -0
  632. package/uview-plus/components/u-waterfall/style.scss +23 -0
  633. package/uview-plus/components/u-waterfall/u-waterfall.vue +3 -0
  634. package/uview-plus/index.css +2157 -943
  635. package/uview-plus/index.js +138 -57
  636. package/uview-plus/libs/config/config.js +46 -27
  637. package/uview-plus/libs/config/props.js +120 -94
  638. package/uview-plus/libs/css/color-libcss.scss +117 -0
  639. package/uview-plus/libs/css/color.scss +32 -155
  640. package/uview-plus/libs/css/common-libcss.scss +118 -14
  641. package/uview-plus/libs/css/common.scss +27 -12
  642. package/uview-plus/libs/css/components-libcss.scss +16 -1
  643. package/uview-plus/libs/css/components-wu.scss +30 -0
  644. package/uview-plus/libs/css/components.scss +21 -2
  645. package/uview-plus/libs/css/flex-libcss.scss +1868 -924
  646. package/uview-plus/libs/css/flex.scss +151 -83
  647. package/uview-plus/libs/css/vue-libcss.scss +8 -4
  648. package/uview-plus/libs/css/vue.scss +11 -10
  649. package/uview-plus/libs/function/calc.js +70 -0
  650. package/uview-plus/libs/function/cc.js +66 -0
  651. package/uview-plus/libs/function/color/color-convert/CHANGELOG.md +54 -0
  652. package/uview-plus/libs/function/color/color-convert/LICENSE +21 -0
  653. package/uview-plus/libs/function/color/color-convert/README.md +68 -0
  654. package/uview-plus/libs/function/color/color-convert/conversions.js +839 -0
  655. package/uview-plus/libs/function/color/color-convert/index.js +81 -0
  656. package/uview-plus/libs/function/color/color-convert/package.json +48 -0
  657. package/uview-plus/libs/function/color/color-convert/route.js +97 -0
  658. package/uview-plus/libs/function/color/color-name/LICENSE +8 -0
  659. package/uview-plus/libs/function/color/color-name/README.md +11 -0
  660. package/uview-plus/libs/function/color/color-name/index.js +152 -0
  661. package/uview-plus/libs/function/color/color-name/package.json +28 -0
  662. package/uview-plus/libs/function/color/color-string/LICENSE +21 -0
  663. package/uview-plus/libs/function/color/color-string/README.md +62 -0
  664. package/uview-plus/libs/function/color/color-string/index.js +244 -0
  665. package/uview-plus/libs/function/color/color-string/package.json +39 -0
  666. package/uview-plus/libs/function/color/color.js +496 -0
  667. package/uview-plus/libs/function/color/index.js +158 -0
  668. package/uview-plus/libs/function/color/is-arrayish/LICENSE +21 -0
  669. package/uview-plus/libs/function/color/is-arrayish/README.md +16 -0
  670. package/uview-plus/libs/function/color/is-arrayish/index.js +9 -0
  671. package/uview-plus/libs/function/color/is-arrayish/package.json +45 -0
  672. package/uview-plus/libs/function/color/is-arrayish/yarn-error.log +1443 -0
  673. package/uview-plus/libs/function/color/simple-swizzle/LICENSE +21 -0
  674. package/uview-plus/libs/function/color/simple-swizzle/README.md +39 -0
  675. package/uview-plus/libs/function/color/simple-swizzle/index.js +29 -0
  676. package/uview-plus/libs/function/color/simple-swizzle/package.json +36 -0
  677. package/uview-plus/libs/function/colorGradient.js +112 -110
  678. package/uview-plus/libs/function/debounce.js +18 -18
  679. package/uview-plus/libs/function/digit.js +6 -8
  680. package/uview-plus/libs/function/http.js +4 -0
  681. package/uview-plus/libs/function/index-wu.js +231 -0
  682. package/uview-plus/libs/function/index.js +639 -481
  683. package/uview-plus/libs/function/platform.js +18 -18
  684. package/uview-plus/libs/function/test.js +166 -136
  685. package/uview-plus/libs/function/throttle.js +20 -20
  686. package/uview-plus/libs/luch-request/core/Request.js +199 -198
  687. package/uview-plus/libs/mixin/button.js +6 -2
  688. package/uview-plus/libs/mixin/mixin.js +49 -13
  689. package/uview-plus/libs/mixin/mpMixin.js +7 -2
  690. package/uview-plus/libs/mixin/mpShare.js +24 -10
  691. package/uview-plus/libs/mixin/openType.js +37 -2
  692. package/uview-plus/libs/mixin/style.js +10 -9
  693. package/uview-plus/libs/mixin/touch.js +4 -2
  694. package/uview-plus/libs/util/async-validator.js +1343 -1343
  695. package/uview-plus/libs/util/dayjs.js +404 -0
  696. package/uview-plus/libs/util/gcanvas/bridge/bridge-weex.js +241 -0
  697. package/uview-plus/libs/util/gcanvas/context-2d/FillStyleLinearGradient.js +18 -0
  698. package/uview-plus/libs/util/gcanvas/context-2d/FillStylePattern.js +8 -0
  699. package/uview-plus/libs/util/gcanvas/context-2d/FillStyleRadialGradient.js +17 -0
  700. package/uview-plus/libs/util/gcanvas/context-2d/RenderingContext.js +666 -0
  701. package/uview-plus/libs/util/gcanvas/context-webgl/ActiveInfo.js +11 -0
  702. package/uview-plus/libs/util/gcanvas/context-webgl/Buffer.js +21 -0
  703. package/uview-plus/libs/util/gcanvas/context-webgl/Framebuffer.js +21 -0
  704. package/uview-plus/libs/util/gcanvas/context-webgl/GLenum.js +298 -0
  705. package/uview-plus/libs/util/gcanvas/context-webgl/GLmethod.js +142 -0
  706. package/uview-plus/libs/util/gcanvas/context-webgl/GLtype.js +23 -0
  707. package/uview-plus/libs/util/gcanvas/context-webgl/Program.js +21 -0
  708. package/uview-plus/libs/util/gcanvas/context-webgl/Renderbuffer.js +21 -0
  709. package/uview-plus/libs/util/gcanvas/context-webgl/RenderingContext.js +1191 -0
  710. package/uview-plus/libs/util/gcanvas/context-webgl/Shader.js +22 -0
  711. package/uview-plus/libs/util/gcanvas/context-webgl/ShaderPrecisionFormat.js +11 -0
  712. package/uview-plus/libs/util/gcanvas/context-webgl/Texture.js +22 -0
  713. package/uview-plus/libs/util/gcanvas/context-webgl/UniformLocation.js +22 -0
  714. package/uview-plus/libs/util/gcanvas/context-webgl/classUtils.js +3 -0
  715. package/uview-plus/libs/util/gcanvas/env/canvas.js +74 -0
  716. package/uview-plus/libs/util/gcanvas/env/image.js +96 -0
  717. package/uview-plus/libs/util/gcanvas/env/tool.js +24 -0
  718. package/uview-plus/libs/util/gcanvas/index.js +39 -0
  719. package/uview-plus/libs/util/route.js +102 -106
  720. package/uview-plus/libs/vue.js +3 -0
  721. package/uview-plus/package-wu-tool.json +84 -0
  722. package/uview-plus/package-wu.json +112 -0
  723. package/uview-plus/package.json +106 -90
  724. package/uview-plus/readme-wu.md +148 -0
  725. package/uview-plus/types/comps/_common.d.ts +9 -0
  726. package/uview-plus/types/comps/actionSheet.d.ts +121 -0
  727. package/uview-plus/types/comps/album.d.ts +82 -0
  728. package/uview-plus/types/comps/alert.d.ts +55 -0
  729. package/uview-plus/types/comps/avatar.d.ts +85 -0
  730. package/uview-plus/types/comps/avatarGroup.d.ts +62 -0
  731. package/uview-plus/types/comps/backTop.d.ts +74 -0
  732. package/uview-plus/types/comps/badge.d.ts +76 -0
  733. package/uview-plus/types/comps/button.d.ts +169 -0
  734. package/uview-plus/types/comps/calendar.d.ts +164 -0
  735. package/uview-plus/types/comps/cell.d.ts +133 -0
  736. package/uview-plus/types/comps/cellGroup.d.ts +27 -0
  737. package/uview-plus/types/comps/checkbox.d.ts +69 -0
  738. package/uview-plus/types/comps/checkboxGroup.d.ts +93 -0
  739. package/uview-plus/types/comps/code.d.ts +69 -0
  740. package/uview-plus/types/comps/codeInput.d.ts +98 -0
  741. package/uview-plus/types/comps/col.d.ts +43 -0
  742. package/uview-plus/types/comps/collapse.d.ts +52 -0
  743. package/uview-plus/types/comps/collapseItem.d.ts +83 -0
  744. package/uview-plus/types/comps/countDown.d.ts +60 -0
  745. package/uview-plus/types/comps/countTo.d.ts +88 -0
  746. package/uview-plus/types/comps/datetimePicker.d.ts +146 -0
  747. package/uview-plus/types/comps/divider.d.ts +58 -0
  748. package/uview-plus/types/comps/empty.d.ts +72 -0
  749. package/uview-plus/types/comps/form.d.ts +76 -0
  750. package/uview-plus/types/comps/formItem.d.ts +68 -0
  751. package/uview-plus/types/comps/gap.d.ts +35 -0
  752. package/uview-plus/types/comps/grid.d.ts +34 -0
  753. package/uview-plus/types/comps/gridItem.d.ts +28 -0
  754. package/uview-plus/types/comps/icon.d.ts +93 -0
  755. package/uview-plus/types/comps/image.d.ts +119 -0
  756. package/uview-plus/types/comps/indexAnchor.d.ts +38 -0
  757. package/uview-plus/types/comps/indexItem.d.ts +18 -0
  758. package/uview-plus/types/comps/indexList.d.ts +39 -0
  759. package/uview-plus/types/comps/input.d.ts +234 -0
  760. package/uview-plus/types/comps/keyboard.d.ts +125 -0
  761. package/uview-plus/types/comps/line.d.ts +44 -0
  762. package/uview-plus/types/comps/lineProgress.d.ts +51 -0
  763. package/uview-plus/types/comps/link.d.ts +51 -0
  764. package/uview-plus/types/comps/list.d.ts +92 -0
  765. package/uview-plus/types/comps/listItem.d.ts +18 -0
  766. package/uview-plus/types/comps/loadMore.d.ts +108 -0
  767. package/uview-plus/types/comps/loadingIcon.d.ts +68 -0
  768. package/uview-plus/types/comps/loadingPage.d.ts +58 -0
  769. package/uview-plus/types/comps/modal.d.ts +115 -0
  770. package/uview-plus/types/comps/navbar.d.ts +113 -0
  771. package/uview-plus/types/comps/noNetwork.d.ts +40 -0
  772. package/uview-plus/types/comps/noticeBar.d.ts +85 -0
  773. package/uview-plus/types/comps/notify.d.ts +73 -0
  774. package/uview-plus/types/comps/numberBox.d.ts +155 -0
  775. package/uview-plus/types/comps/overlay.d.ts +46 -0
  776. package/uview-plus/types/comps/parse.d.ts +101 -0
  777. package/uview-plus/types/comps/picker.d.ts +115 -0
  778. package/uview-plus/types/comps/popup.d.ts +103 -0
  779. package/uview-plus/types/comps/radio.d.ts +77 -0
  780. package/uview-plus/types/comps/radioGroup.d.ts +97 -0
  781. package/uview-plus/types/comps/rate.d.ts +85 -0
  782. package/uview-plus/types/comps/readMore.d.ts +80 -0
  783. package/uview-plus/types/comps/row.d.ts +34 -0
  784. package/uview-plus/types/comps/safeBottom.d.ts +16 -0
  785. package/uview-plus/types/comps/scrollList.d.ts +51 -0
  786. package/uview-plus/types/comps/search.d.ts +172 -0
  787. package/uview-plus/types/comps/skeleton.d.ts +70 -0
  788. package/uview-plus/types/comps/slider.d.ts +79 -0
  789. package/uview-plus/types/comps/statusBar.d.ts +22 -0
  790. package/uview-plus/types/comps/steps.d.ts +48 -0
  791. package/uview-plus/types/comps/stepsItem.d.ts +41 -0
  792. package/uview-plus/types/comps/sticky.d.ts +48 -0
  793. package/uview-plus/types/comps/subsection.d.ts +64 -0
  794. package/uview-plus/types/comps/swipeAction.d.ts +24 -0
  795. package/uview-plus/types/comps/swipeActionItem.d.ts +58 -0
  796. package/uview-plus/types/comps/swiper.d.ts +142 -0
  797. package/uview-plus/types/comps/swiperIndicator.d.ts +37 -0
  798. package/uview-plus/types/comps/switch.d.ts +73 -0
  799. package/uview-plus/types/comps/tabbar.d.ts +54 -0
  800. package/uview-plus/types/comps/tabbarItem.d.ts +52 -0
  801. package/uview-plus/types/comps/tabs.d.ts +85 -0
  802. package/uview-plus/types/comps/tag.d.ts +93 -0
  803. package/uview-plus/types/comps/text.d.ts +110 -0
  804. package/uview-plus/types/comps/textarea.d.ts +158 -0
  805. package/uview-plus/types/comps/toast.d.ts +63 -0
  806. package/uview-plus/types/comps/tooltip.d.ts +71 -0
  807. package/uview-plus/types/comps/transition.d.ts +61 -0
  808. package/uview-plus/types/comps/upload.d.ts +204 -0
  809. package/uview-plus/types/comps.d.ts +101 -0
  810. package/uview-plus/types/index.d.ts +172 -0
  811. package/uview-plus/types/package.json +26 -0
  812. package/uview-ui/changelog.md +26 -0
  813. package/uview-ui/components/u--form/u--form.vue +1 -1
  814. package/uview-ui/components/u--image/u--image.vue +1 -1
  815. package/uview-ui/components/u--input/u--input.vue +1 -1
  816. package/uview-ui/components/u--text/u--text.vue +1 -1
  817. package/uview-ui/components/u--textarea/u--textarea.vue +1 -1
  818. package/uview-ui/components/u-action-sheet/props.js +1 -1
  819. package/uview-ui/components/u-action-sheet/style.css +1 -1
  820. package/uview-ui/components/u-avatar/style.css +1 -0
  821. package/uview-ui/components/u-avatar/style.scss +1 -0
  822. package/uview-ui/components/u-button/nvue-parse.scss +1 -1
  823. package/uview-ui/components/u-button/style.css +2 -2
  824. package/uview-ui/components/u-button/u-button.vue +7 -2
  825. package/uview-ui/components/u-button/vue-parse.scss +1 -1
  826. package/uview-ui/components/u-car-keyboard/style.css +1 -1
  827. package/uview-ui/components/u-checkbox/u-checkbox.vue +2 -2
  828. package/uview-ui/components/u-circle-progress/style.css +6 -6
  829. package/uview-ui/components/u-col/style.css +13 -13
  830. package/uview-ui/components/u-datetime-picker/props.js +4 -0
  831. package/uview-ui/components/u-datetime-picker/u-datetime-picker.vue +13 -2
  832. package/uview-ui/components/u-form-item/u-form-item.vue +1 -1
  833. package/uview-ui/components/u-icon/style.css +1 -1
  834. package/uview-ui/components/u-image/u-image.vue +3 -2
  835. package/uview-ui/components/u-input/style.css +3 -0
  836. package/uview-ui/components/u-input/style.scss +8 -0
  837. package/uview-ui/components/u-input/u-input.vue +5 -5
  838. package/uview-ui/components/u-loading-icon/style.css +1 -1
  839. package/uview-ui/components/u-loading-page/style.css +2 -2
  840. package/uview-ui/components/u-modal/props.js +5 -0
  841. package/uview-ui/components/u-modal/u-modal.vue +1 -1
  842. package/uview-ui/components/u-number-keyboard/style.css +2 -2
  843. package/uview-ui/components/u-parse/u-parse.vue +1 -1
  844. package/uview-ui/components/u-picker/u-picker.vue +5 -2
  845. package/uview-ui/components/u-popup/u-popup.vue +1 -1
  846. package/uview-ui/components/u-radio/props.js +1 -1
  847. package/uview-ui/components/u-radio/u-radio.vue +2 -2
  848. package/uview-ui/components/u-search/style.css +1 -1
  849. package/uview-ui/components/u-skeleton/u-skeleton.vue +2 -2
  850. package/uview-ui/components/u-steps-item/u-steps-item.vue +2 -2
  851. package/uview-ui/components/u-subsection/style.css +1 -1
  852. package/uview-ui/components/u-swipe-action-item/style.css +2 -2
  853. package/uview-ui/components/u-tabs/u-tabs.vue +10 -1
  854. package/uview-ui/components/u-toast/style.css +1 -1
  855. package/uview-ui/components/u-tooltip/u-tooltip.vue +1 -0
  856. package/uview-ui/components/u-upload/style.css +7 -4
  857. package/uview-ui/components/u-upload/style.scss +6 -0
  858. package/uview-ui/components/u-upload/u-upload.vue +6 -1
  859. package/uview-ui/index.js +51 -52
  860. package/uview-ui/libs/config/config.js +2 -2
  861. package/uview-ui/libs/config/props/datetimePicker.js +1 -0
  862. package/uview-ui/libs/config/props/modal.js +2 -1
  863. package/uview-ui/libs/mixin/mixin.js +3 -6
  864. package/uview-ui/package.json +5 -8
  865. package/plugins/uni-upgrade.js +0 -294
  866. package/uview-plus/components/u-slider/nvue - /345/211/257/346/234/254.js" +0 -175
  867. package/uview-plus/libs/config/props/icon.js +0 -36
  868. package/uview-plus/libs/config/props/tag.js +0 -29
  869. package/uview-plus/libs/config/props/transition.js +0 -18
  870. /package/uview-plus/{libs/config/props → components/u-alert}/alert.js +0 -0
  871. /package/uview-plus/{libs/config/props → components/u-avatar}/avatar.js +0 -0
  872. /package/uview-plus/{libs/config/props → components/u-car-keyboard}/carKeyboard.js +0 -0
  873. /package/uview-plus/{libs/config/props → components/u-cell}/cell.js +0 -0
  874. /package/uview-plus/{libs/config/props → components/u-cell-group}/cellGroup.js +0 -0
  875. /package/uview-plus/{libs/config/props → components/u-checkbox}/checkbox.js +0 -0
  876. /package/uview-plus/{libs/config/props → components/u-circle-progress}/circleProgress.js +0 -0
  877. /package/uview-plus/{libs/config/props → components/u-code}/code.js +0 -0
  878. /package/uview-plus/{libs/config/props → components/u-code-input}/codeInput.js +0 -0
  879. /package/uview-plus/{libs/config/props → components/u-col}/col.js +0 -0
  880. /package/uview-plus/{libs/config/props → components/u-collapse}/collapse.js +0 -0
  881. /package/uview-plus/{libs/config/props → components/u-count-down}/countDown.js +0 -0
  882. /package/uview-plus/{libs/config/props → components/u-count-to}/countTo.js +0 -0
  883. /package/uview-plus/{libs/config/props → components/u-divider}/divider.js +0 -0
  884. /package/uview-plus/{libs/config/props → components/u-empty}/empty.js +0 -0
  885. /package/uview-plus/{libs/config/props → components/u-gap}/gap.js +0 -0
  886. /package/uview-plus/{libs/config/props → components/u-grid}/grid.js +0 -0
  887. /package/uview-plus/{libs/config/props → components/u-grid-item}/gridItem.js +0 -0
  888. /package/uview-plus/{libs/config/props → components/u-image}/image.js +0 -0
  889. /package/uview-plus/{libs/config/props → components/u-index-anchor}/indexAnchor.js +0 -0
  890. /package/uview-plus/{libs/config/props → components/u-keyboard}/keyboard.js +0 -0
  891. /package/uview-plus/{libs/config/props → components/u-line}/line.js +0 -0
  892. /package/uview-plus/{libs/config/props → components/u-line-progress}/lineProgress.js +0 -0
  893. /package/uview-plus/{libs/config/props → components/u-list}/list.js +0 -0
  894. /package/uview-plus/{libs/config/props → components/u-list-item}/listItem.js +0 -0
  895. /package/uview-plus/{libs/config/props → components/u-loadmore}/loadmore.js +0 -0
  896. /package/uview-plus/{libs/config/props → components/u-no-network}/noNetwork.js +0 -0
  897. /package/uview-plus/{libs/config/props → components/u-notify}/notify.js +0 -0
  898. /package/uview-plus/{libs/config/props → components/u-number-keyboard}/numberKeyboard.js +0 -0
  899. /package/uview-plus/{libs/config/props → components/u-overlay}/overlay.js +0 -0
  900. /package/uview-plus/{libs/config/props → components/u-parse}/parse.js +0 -0
  901. /package/uview-plus/{libs/config/props → components/u-radio}/radio.js +0 -0
  902. /package/uview-plus/{libs/config/props → components/u-rate}/rate.js +0 -0
  903. /package/uview-plus/{libs/config/props → components/u-read-more}/readMore.js +0 -0
  904. /package/uview-plus/{libs/config/props → components/u-row}/row.js +0 -0
  905. /package/uview-plus/{libs/config/props → components/u-row-notice}/rowNotice.js +0 -0
  906. /package/uview-plus/{libs/config/props → components/u-scroll-list}/scrollList.js +0 -0
  907. /package/uview-plus/{libs/config/props → components/u-section}/section.js +0 -0
  908. /package/uview-plus/{libs/config/props → components/u-skeleton}/skeleton.js +0 -0
  909. /package/uview-plus/{libs/config/props → components/u-steps}/steps.js +0 -0
  910. /package/uview-plus/{libs/config/props → components/u-steps-item}/stepsItem.js +0 -0
  911. /package/uview-plus/{libs/config/props → components/u-sticky}/sticky.js +0 -0
  912. /package/uview-plus/{libs/config/props → components/u-subsection}/subsection.js +0 -0
  913. /package/uview-plus/{libs/config/props → components/u-swipe-action}/swipeAction.js +0 -0
  914. /package/uview-plus/{libs/config/props → components/u-swiper-indicator}/swipterIndicator.js +0 -0
  915. /package/uview-plus/{libs/config/props → components/u-switch}/switch.js +0 -0
  916. /package/uview-plus/{libs/config/props → components/u-tabbar}/tabbar.js +0 -0
  917. /package/uview-plus/{libs/config/props → components/u-tabbar-item}/tabbarItem.js +0 -0
  918. /package/uview-plus/{libs/config/props → components/u-textarea}/textarea.js +0 -0
@@ -1,30 +1,31 @@
1
- import test from './test.js'
2
- import { round } from './digit.js'
1
+ import { number as testNumber, array as testArray, empty as testEmpty } from './test';
2
+ import { round } from './digit.js';
3
+ import config from '../config/config';
3
4
  /**
4
5
  * @description 如果value小于min,取min;如果value大于max,取max
5
- * @param {number} min
6
- * @param {number} max
6
+ * @param {number} min
7
+ * @param {number} max
7
8
  * @param {number} value
8
9
  */
9
- function range(min = 0, max = 0, value = 0) {
10
- return Math.max(min, Math.min(max, Number(value)))
10
+ export function range(min = 0, max = 0, value = 0) {
11
+ return Math.max(min, Math.min(max, Number(value)));
11
12
  }
12
13
 
13
14
  /**
14
- * @description 用于获取用户传递值的px值 如果用户传递了"xxpx"或者"xxrpx",取出其数值部分,如果是"xxxrpx"还需要用过uni.upx2px进行转换
15
+ * @description 用于获取用户传递值的px值 如果用户传递了"xxpx"或者"xxrpx",取出其数值部分,如果是"xxxrpx"还需要用过uni.rpx2px进行转换
15
16
  * @param {number|string} value 用户传递值的px值
16
- * @param {boolean} unit
17
+ * @param {boolean} unit
17
18
  * @returns {number|string}
18
19
  */
19
- function getPx(value, unit = false) {
20
- if (test.number(value)) {
21
- return unit ? `${value}px` : Number(value)
22
- }
23
- // 如果带有rpx,先取出其数值部分,再转为px值
24
- if (/(rpx|upx)$/.test(value)) {
25
- return unit ? `${uni.upx2px(parseInt(value))}px` : Number(uni.upx2px(parseInt(value)))
26
- }
27
- return unit ? `${parseInt(value)}px` : parseInt(value)
20
+ export function getPx(value, unit = false) {
21
+ if (testNumber(value)) {
22
+ return unit ? `${value}px` : Number(value);
23
+ }
24
+ // 如果带有rpx,先取出其数值部分,再转为px值
25
+ if (/(rpx|upx)$/.test(value)) {
26
+ return unit ? `${uni.upx2px(parseInt(value))}px` : Number(uni.upx2px(parseInt(value)));
27
+ }
28
+ return unit ? `${parseInt(value)}px` : parseInt(value);
28
29
  }
29
30
 
30
31
  /**
@@ -32,27 +33,52 @@ function getPx(value, unit = false) {
32
33
  * @param {number} value 堵塞时间 单位ms 毫秒
33
34
  * @returns {Promise} 返回promise
34
35
  */
35
- function sleep(value = 30) {
36
- return new Promise((resolve) => {
37
- setTimeout(() => {
38
- resolve()
39
- }, value)
40
- })
36
+ export function sleep(value = 30) {
37
+ return new Promise((resolve) => {
38
+ setTimeout(() => {
39
+ resolve();
40
+ }, value);
41
+ });
41
42
  }
42
43
  /**
43
44
  * @description 运行期判断平台
44
- * @returns {string} 返回所在平台(小写)
45
+ * @returns {string} 返回所在平台(小写)
45
46
  * @link 运行期判断平台 https://uniapp.dcloud.io/frame?id=判断平台
46
47
  */
47
- function os() {
48
- return uni.getSystemInfoSync().platform.toLowerCase()
48
+ export function os() {
49
+ // #ifdef APP || H5 || MP-WEIXIN
50
+ return uni.getDeviceInfo().platform.toLowerCase();
51
+ // #endif
52
+ // #ifndef APP || H5 || MP-WEIXIN
53
+ return uni.getSystemInfoSync().platform.toLowerCase();
54
+ // #endif
49
55
  }
50
56
  /**
51
57
  * @description 获取系统信息同步接口
52
- * @link 获取系统信息同步接口 https://uniapp.dcloud.io/api/system/info?id=getsysteminfosync
58
+ * @link 获取系统信息同步接口 https://uniapp.dcloud.io/api/system/info?id=getsysteminfosync
53
59
  */
54
- function sys() {
55
- return uni.getSystemInfoSync()
60
+ export function sys() {
61
+ return uni.getSystemInfoSync();
62
+ }
63
+ export function getWindowInfo() {
64
+ let ret = {};
65
+ // #ifdef APP || H5 || MP-WEIXIN
66
+ ret = uni.getWindowInfo();
67
+ // #endif
68
+ // #ifndef APP || H5 || MP-WEIXIN
69
+ ret = sys();
70
+ // #endif
71
+ return ret;
72
+ }
73
+ export function getDeviceInfo() {
74
+ let ret = {};
75
+ // #ifdef APP || H5 || MP-WEIXIN
76
+ ret = uni.getDeviceInfo();
77
+ // #endif
78
+ // #ifndef APP || H5 || MP-WEIXIN
79
+ ret = sys();
80
+ // #endif
81
+ return ret;
56
82
  }
57
83
 
58
84
  /**
@@ -60,12 +86,12 @@ function sys() {
60
86
  * @param {Number} min 最小值
61
87
  * @param {Number} max 最大值
62
88
  */
63
- function random(min, max) {
64
- if (min >= 0 && max > 0 && max >= min) {
65
- const gab = max - min + 1
66
- return Math.floor(Math.random() * gab + min)
67
- }
68
- return 0
89
+ export function random(min, max) {
90
+ if (min >= 0 && max > 0 && max >= min) {
91
+ const gab = max - min + 1;
92
+ return Math.floor(Math.random() * gab + min);
93
+ }
94
+ return 0;
69
95
  }
70
96
 
71
97
  /**
@@ -73,33 +99,33 @@ function random(min, max) {
73
99
  * @param {Boolean} firstU 将返回的首字母置为"u"
74
100
  * @param {Nubmer} radix 生成uuid的基数(意味着返回的字符串都是这个基数),2-二进制,8-八进制,10-十进制,16-十六进制
75
101
  */
76
- function guid(len = 32, firstU = true, radix = null) {
77
- const chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('')
78
- const uuid = []
79
- radix = radix || chars.length
80
-
81
- if (len) {
82
- // 如果指定uuid长度,只是取随机的字符,0|x为位运算,能去掉x的小数位,返回整数位
83
- for (let i = 0; i < len; i++) uuid[i] = chars[0 | Math.random() * radix]
84
- } else {
85
- let r
86
- // rfc4122标准要求返回的uuid中,某些位为固定的字符
87
- uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-'
88
- uuid[14] = '4'
89
-
90
- for (let i = 0; i < 36; i++) {
91
- if (!uuid[i]) {
92
- r = 0 | Math.random() * 16
93
- uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r]
94
- }
95
- }
96
- }
97
- // 移除第一个字符,并用u替代,因为第一个字符为数值时,该guuid不能用作id或者class
98
- if (firstU) {
99
- uuid.shift()
100
- return `u${uuid.join('')}`
101
- }
102
- return uuid.join('')
102
+ export function guid(len = 32, firstU = true, radix = null) {
103
+ const chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');
104
+ const uuid = [];
105
+ radix = radix || chars.length;
106
+
107
+ if (len) {
108
+ // 如果指定uuid长度,只是取随机的字符,0|x为位运算,能去掉x的小数位,返回整数位
109
+ for (let i = 0; i < len; i++) uuid[i] = chars[0 | (Math.random() * radix)];
110
+ } else {
111
+ let r;
112
+ // rfc4122标准要求返回的uuid中,某些位为固定的字符
113
+ uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-';
114
+ uuid[14] = '4';
115
+
116
+ for (let i = 0; i < 36; i++) {
117
+ if (!uuid[i]) {
118
+ r = 0 | (Math.random() * 16);
119
+ uuid[i] = chars[i == 19 ? (r & 0x3) | 0x8 : r];
120
+ }
121
+ }
122
+ }
123
+ // 移除第一个字符,并用u替代,因为第一个字符为数值时,该guuid不能用作id或者class
124
+ if (firstU) {
125
+ uuid.shift();
126
+ return `u${uuid.join('')}`;
127
+ }
128
+ return uuid.join('');
103
129
  }
104
130
 
105
131
  /**
@@ -109,19 +135,20 @@ function guid(len = 32, firstU = true, radix = null) {
109
135
  值(默认为undefined),就是查找最顶层的$parent
110
136
  * @param {string|undefined} name 父组件的参数名
111
137
  */
112
- function $parent(name = undefined) {
113
- let parent = this.$parent
114
- // 通过while历遍,这里主要是为了H5需要多层解析的问题
115
- while (parent) {
116
- // 父组件
117
- if (parent.$options && parent.$options.name !== name) {
118
- // 如果组件的name不相等,继续上一级寻找
119
- parent = parent.$parent
120
- } else {
121
- return parent
122
- }
123
- }
124
- return false
138
+ export function $parent(name = undefined) {
139
+ let parent = this.$parent;
140
+ // 通过while历遍,这里主要是为了H5需要多层解析的问题
141
+ while (parent) {
142
+ // 父组件
143
+ name = name.replace(/up-([a-zA-Z0-9-_]+)/g, 'u-$1');
144
+ if (parent.$options && parent.$options.name !== name) {
145
+ // 如果组件的name不相等,继续上一级寻找
146
+ parent = parent.$parent;
147
+ } else {
148
+ return parent;
149
+ }
150
+ }
151
+ return false;
125
152
  }
126
153
 
127
154
  /**
@@ -131,38 +158,43 @@ function $parent(name = undefined) {
131
158
  * @param {String} target 转换的目的,object-转为对象,string-转为字符串
132
159
  * @returns {object|string}
133
160
  */
134
- function addStyle(customStyle, target = 'object') {
135
- // 字符串转字符串,对象转对象情形,直接返回
136
- if (test.empty(customStyle) || typeof(customStyle) === 'object' && target === 'object' || target === 'string' &&
137
- typeof(customStyle) === 'string') {
138
- return customStyle
139
- }
140
- // 字符串转对象
141
- if (target === 'object') {
142
- // 去除字符串样式中的两端空格(中间的空格不能去掉,比如padding: 20px 0如果去掉了就错了),空格是无用的
143
- customStyle = trim(customStyle)
144
- // 根据";"将字符串转为数组形式
145
- const styleArray = customStyle.split(';')
146
- const style = {}
147
- // 历遍数组,拼接成对象
148
- for (let i = 0; i < styleArray.length; i++) {
149
- // 'font-size:20px;color:red;',如此最后字符串有";"的话,会导致styleArray最后一个元素为空字符串,这里需要过滤
150
- if (styleArray[i]) {
151
- const item = styleArray[i].split(':')
152
- style[trim(item[0])] = trim(item[1])
153
- }
154
- }
155
- return style
156
- }
157
- // 这里为对象转字符串形式
158
- let string = ''
159
- for (const i in customStyle) {
160
- // 驼峰转为中划线的形式,否则css内联样式,无法识别驼峰样式属性名
161
- const key = i.replace(/([A-Z])/g, '-$1').toLowerCase()
162
- string += `${key}:${customStyle[i]};`
163
- }
164
- // 去除两端空格
165
- return trim(string)
161
+ export function addStyle(customStyle, target = 'object') {
162
+ // 字符串转字符串,对象转对象情形,直接返回
163
+ if (
164
+ testEmpty(customStyle) ||
165
+ (typeof customStyle === 'object' && target === 'object') ||
166
+ (target === 'string' && typeof customStyle === 'string')
167
+ ) {
168
+ return customStyle;
169
+ }
170
+ // 字符串转对象
171
+ if (target === 'object') {
172
+ // 去除字符串样式中的两端空格(中间的空格不能去掉,比如padding: 20px 0如果去掉了就错了),空格是无用的
173
+ customStyle = trim(customStyle);
174
+ // 根据";"将字符串转为数组形式
175
+ const styleArray = customStyle.split(';');
176
+ const style = {};
177
+ // 历遍数组,拼接成对象
178
+ for (let i = 0; i < styleArray.length; i++) {
179
+ // 'font-size:20px;color:red;',如此最后字符串有";"的话,会导致styleArray最后一个元素为空字符串,这里需要过滤
180
+ if (styleArray[i]) {
181
+ const item = styleArray[i].split(':');
182
+ style[trim(item[0])] = trim(item[1]);
183
+ }
184
+ }
185
+ return style;
186
+ }
187
+ // 这里为对象转字符串形式
188
+ let string = '';
189
+ if (typeof customStyle === 'object') {
190
+ customStyle.forEach((val, i) => {
191
+ // 驼峰转为中划线的形式,否则css内联样式,无法识别驼峰样式属性名
192
+ const key = i.replace(/([A-Z])/g, '-$1').toLowerCase();
193
+ string += `${key}:${val};`;
194
+ });
195
+ }
196
+ // 去除两端空格
197
+ return trim(string);
166
198
  }
167
199
 
168
200
  /**
@@ -170,13 +202,16 @@ function addStyle(customStyle, target = 'object') {
170
202
  * @param {string|number} value 需要添加单位的值
171
203
  * @param {string} unit 添加的单位名 比如px
172
204
  */
173
- function addUnit(value = 'auto', unit = '') {
174
- if (!unit) {
175
- unit = uni.$u.config.unit || 'px'
176
- }
177
- value = String(value)
178
- // 用uView内置验证规则中的number判断是否为数值
179
- return test.number(value) ? `${value}${unit}` : value
205
+ export function addUnit(value = 'auto', unit = '') {
206
+ if (!unit) {
207
+ unit = config.unit || 'px';
208
+ }
209
+ if (unit == 'rpx' && testNumber(String(value))) {
210
+ value = value * 2;
211
+ }
212
+ value = String(value);
213
+ // 用内置验证规则中的number判断是否为数值
214
+ return testNumber(value) ? `${value}${unit}` : value;
180
215
  }
181
216
 
182
217
  /**
@@ -184,20 +219,20 @@ function addUnit(value = 'auto', unit = '') {
184
219
  * @param {object} obj 需要深度克隆的对象
185
220
  * @returns {*} 克隆后的对象或者原值(不是对象)
186
221
  */
187
- function deepClone(obj) {
188
- // 对常见的“非”值,直接返回原来值
189
- if ([null, undefined, NaN, false].includes(obj)) return obj
190
- if (typeof obj !== 'object' && typeof obj !== 'function') {
191
- // 原始类型直接返回
192
- return obj
193
- }
194
- const o = test.array(obj) ? [] : {}
195
- for (const i in obj) {
196
- if (obj.hasOwnProperty(i)) {
197
- o[i] = typeof obj[i] === 'object' ? deepClone(obj[i]) : obj[i]
198
- }
199
- }
200
- return o
222
+ export function deepClone(obj) {
223
+ // 对常见的“非”值,直接返回原来值
224
+ if ([null, undefined, NaN, false].includes(obj)) return obj;
225
+ if (typeof obj !== 'object' && typeof obj !== 'function') {
226
+ // 原始类型直接返回
227
+ return obj;
228
+ }
229
+ const o = testArray(obj) ? [] : {};
230
+ for (const i in obj) {
231
+ if (obj.hasOwnProperty(i)) {
232
+ o[i] = typeof obj[i] === 'object' ? deepClone(obj[i]) : obj[i];
233
+ }
234
+ }
235
+ return o;
201
236
  }
202
237
 
203
238
  /**
@@ -206,37 +241,67 @@ function deepClone(obj) {
206
241
  * @param {object} source 拷贝的来源对象
207
242
  * @returns {object|boolean} 深度合并后的对象或者false(入参有不是对象)
208
243
  */
209
- function deepMerge(target = {}, source = {}) {
210
- target = deepClone(target)
211
- if (typeof target !== 'object' || typeof source !== 'object') return false
212
- for (const prop in source) {
213
- if (!source.hasOwnProperty(prop)) continue
214
- if (prop in target) {
215
- if (typeof target[prop] !== 'object') {
216
- target[prop] = source[prop]
217
- } else if (typeof source[prop] !== 'object') {
218
- target[prop] = source[prop]
219
- } else if (target[prop].concat && source[prop].concat) {
220
- target[prop] = target[prop].concat(source[prop])
221
- } else {
222
- target[prop] = deepMerge(target[prop], source[prop])
223
- }
224
- } else {
225
- target[prop] = source[prop]
226
- }
227
- }
228
- return target
244
+ export function deepMerge(targetOrigin = {}, source = {}) {
245
+ let target = deepClone(targetOrigin);
246
+ if (typeof target !== 'object' || typeof source !== 'object') return false;
247
+ for (const prop in source) {
248
+ if (!source.hasOwnProperty(prop)) continue;
249
+ if (prop in target) {
250
+ if (source[prop] == null) {
251
+ target[prop] = source[prop];
252
+ } else if (typeof target[prop] !== 'object') {
253
+ target[prop] = source[prop];
254
+ } else if (typeof source[prop] !== 'object') {
255
+ target[prop] = source[prop];
256
+ } else if (target[prop].concat && source[prop].concat) {
257
+ target[prop] = target[prop].concat(source[prop]);
258
+ } else {
259
+ target[prop] = deepMerge(target[prop], source[prop]);
260
+ }
261
+ } else {
262
+ target[prop] = source[prop];
263
+ }
264
+ }
265
+ return target;
266
+ }
267
+ /**
268
+ * @description JS对象深度合并
269
+ * @param {object} target 需要拷贝的对象
270
+ * @param {object} source 拷贝的来源对象
271
+ * @returns {object|boolean} 深度合并后的对象或者false(入参有不是对象)
272
+ */
273
+ export function shallowMerge(target, source = {}) {
274
+ if (typeof target !== 'object' || typeof source !== 'object') return false;
275
+ for (const prop in source) {
276
+ if (!source.hasOwnProperty(prop)) continue;
277
+ if (prop in target) {
278
+ if (source[prop] == null) {
279
+ target[prop] = source[prop];
280
+ } else if (typeof target[prop] !== 'object') {
281
+ target[prop] = source[prop];
282
+ } else if (typeof source[prop] !== 'object') {
283
+ target[prop] = source[prop];
284
+ } else if (target[prop].concat && source[prop].concat) {
285
+ target[prop] = target[prop].concat(source[prop]);
286
+ } else {
287
+ target[prop] = shallowMerge(target[prop], source[prop]);
288
+ }
289
+ } else {
290
+ target[prop] = source[prop];
291
+ }
292
+ }
293
+ return target;
229
294
  }
230
295
 
231
296
  /**
232
297
  * @description error提示
233
298
  * @param {*} err 错误内容
234
299
  */
235
- function error(err) {
236
- // 开发环境才提示,生产环境不会提示
237
- if (process.env.NODE_ENV === 'development') {
238
- console.error(`uView提示:${err}`)
239
- }
300
+ export function error(err) {
301
+ // 开发环境才提示,生产环境不会提示
302
+ if (process.env.NODE_ENV === 'development') {
303
+ console.error(`uView提示:${err}`);
304
+ }
240
305
  }
241
306
 
242
307
  /**
@@ -244,35 +309,33 @@ function error(err) {
244
309
  * @param {array} array 需要打乱的数组
245
310
  * @returns {array} 打乱后的数组
246
311
  */
247
- function randomArray(array = []) {
248
- // 原理是sort排序,Math.random()产生0<= x < 1之间的数,会导致x-0.05大于或者小于0
249
- return array.sort(() => Math.random() - 0.5)
312
+ export function randomArray(array = []) {
313
+ // 原理是sort排序,Math.random()产生0<= x < 1之间的数,会导致x-0.05大于或者小于0
314
+ return array.sort(() => Math.random() - 0.5);
250
315
  }
251
316
 
252
317
  // padStart 的 polyfill,因为某些机型或情况,还无法支持es7的padStart,比如电脑版的微信小程序
253
318
  // 所以这里做一个兼容polyfill的兼容处理
254
319
  if (!String.prototype.padStart) {
255
- // 为了方便表示这里 fillString 用了ES6 的默认参数,不影响理解
256
- String.prototype.padStart = function(maxLength, fillString = ' ') {
257
- if (Object.prototype.toString.call(fillString) !== '[object String]') {
258
- throw new TypeError(
259
- 'fillString must be String'
260
- )
261
- }
262
- const str = this
263
- // 返回 String(str) 这里是为了使返回的值是字符串字面量,在控制台中更符合直觉
264
- if (str.length >= maxLength) return String(str)
265
-
266
- const fillLength = maxLength - str.length
267
- let times = Math.ceil(fillLength / fillString.length)
268
- while (times >>= 1) {
269
- fillString += fillString
270
- if (times === 1) {
271
- fillString += fillString
272
- }
273
- }
274
- return fillString.slice(0, fillLength) + str
275
- }
320
+ // 为了方便表示这里 fillString 用了ES6 的默认参数,不影响理解
321
+ String.prototype.padStart = function (maxLength, fillString = ' ') {
322
+ if (Object.prototype.toString.call(fillString) !== '[object String]') {
323
+ throw new TypeError('fillString must be String');
324
+ }
325
+ const str = this;
326
+ // 返回 String(str) 这里是为了使返回的值是字符串字面量,在控制台中更符合直觉
327
+ if (str.length >= maxLength) return String(str);
328
+
329
+ const fillLength = maxLength - str.length;
330
+ let times = Math.ceil(fillLength / fillString.length);
331
+ while ((times >>= 1)) {
332
+ fillString += fillString;
333
+ if (times === 1) {
334
+ fillString += fillString;
335
+ }
336
+ }
337
+ return fillString.slice(0, fillLength) + str;
338
+ };
276
339
  }
277
340
 
278
341
  /**
@@ -281,95 +344,91 @@ if (!String.prototype.padStart) {
281
344
  * @param {String} fmt 格式化规则 yyyy:mm:dd|yyyy:mm|yyyy年mm月dd日|yyyy年mm月dd日 hh时MM分等,可自定义组合 默认yyyy-mm-dd
282
345
  * @returns {string} 返回格式化后的字符串
283
346
  */
284
- function timeFormat(dateTime = null, formatStr = 'yyyy-mm-dd') {
285
- let date
286
- // 若传入时间为假值,则取当前时间
347
+ export function timeFormat(dateTime = null, formatStr = 'yyyy-mm-dd') {
348
+ let date;
349
+ // 若传入时间为假值,则取当前时间
287
350
  if (!dateTime) {
288
- date = new Date()
351
+ date = new Date();
289
352
  }
290
353
  // 若为unix秒时间戳,则转为毫秒时间戳(逻辑有点奇怪,但不敢改,以保证历史兼容)
291
354
  else if (/^\d{10}$/.test(dateTime.toString().trim())) {
292
- date = new Date(dateTime * 1000)
355
+ date = new Date(dateTime * 1000);
293
356
  }
294
357
  // 若用户传入字符串格式时间戳,new Date无法解析,需做兼容
295
358
  else if (typeof dateTime === 'string' && /^\d+$/.test(dateTime.trim())) {
296
- date = new Date(Number(dateTime))
359
+ date = new Date(Number(dateTime));
297
360
  }
298
361
  // 其他都认为符合 RFC 2822 规范
299
362
  else {
300
363
  // 处理平台性差异,在Safari/Webkit中,new Date仅支持/作为分割符的字符串时间
301
- date = new Date(
302
- typeof dateTime === 'string'
303
- ? dateTime.replace(/-/g, '/')
304
- : dateTime
305
- )
306
- }
307
-
308
- const timeSource = {
309
- 'y': date.getFullYear().toString(), //
310
- 'm': (date.getMonth() + 1).toString().padStart(2, '0'), //
311
- 'd': date.getDate().toString().padStart(2, '0'), //
312
- 'h': date.getHours().toString().padStart(2, '0'), // 时
313
- 'M': date.getMinutes().toString().padStart(2, '0'), // 分
314
- 's': date.getSeconds().toString().padStart(2, '0') // 秒
315
- // 有其他格式化字符需求可以继续添加,必须转化成字符串
316
- }
364
+ date = new Date(typeof dateTime === 'string' ? dateTime.replace(/-/g, '/') : dateTime);
365
+ }
366
+
367
+ const timeSource = {
368
+ y: date.getFullYear().toString(), // 年
369
+ m: (date.getMonth() + 1).toString().padStart(2, '0'), // 月
370
+ d: date.getDate().toString().padStart(2, '0'), // 日
371
+ h: date.getHours().toString().padStart(2, '0'), // 时
372
+ M: date.getMinutes().toString().padStart(2, '0'), //
373
+ s: date.getSeconds().toString().padStart(2, '0') //
374
+ // 有其他格式化字符需求可以继续添加,必须转化成字符串
375
+ };
317
376
 
318
377
  for (const key in timeSource) {
319
- const [ret] = new RegExp(`${key}+`).exec(formatStr) || []
378
+ const [ret] = new RegExp(`${key}+`).exec(formatStr) || [];
320
379
  if (ret) {
321
380
  // 年可能只需展示两位
322
- const beginIndex = key === 'y' && ret.length === 2 ? 2 : 0
323
- formatStr = formatStr.replace(ret, timeSource[key].slice(beginIndex))
381
+ const beginIndex = key === 'y' && ret.length === 2 ? 2 : 0;
382
+ formatStr = formatStr.replace(ret, timeSource[key].slice(beginIndex));
324
383
  }
325
384
  }
326
385
 
327
- return formatStr
386
+ return formatStr;
328
387
  }
329
388
 
330
389
  /**
331
390
  * @description 时间戳转为多久之前
332
391
  * @param {String|Number} timestamp 时间戳
333
- * @param {String|Boolean} format
392
+ * @param {String|Boolean} format
334
393
  * 格式化规则如果为时间格式字符串,超出一定时间范围,返回固定的时间格式;
335
394
  * 如果为布尔值false,无论什么时间,都返回多久以前的格式
336
395
  * @returns {string} 转化后的内容
337
396
  */
338
- function timeFrom(timestamp = null, format = 'yyyy-mm-dd') {
339
- if (timestamp == null) timestamp = Number(new Date())
340
- timestamp = parseInt(timestamp)
341
- // 判断用户输入的时间戳是秒还是毫秒,一般前端js获取的时间戳是毫秒(13位),后端传过来的为秒(10位)
342
- if (timestamp.toString().length == 10) timestamp *= 1000
343
- let timer = (new Date()).getTime() - timestamp
344
- timer = parseInt(timer / 1000)
345
- // 如果小于5分钟,则返回"刚刚",其他以此类推
346
- let tips = ''
347
- switch (true) {
348
- case timer < 300:
349
- tips = '刚刚'
350
- break
351
- case timer >= 300 && timer < 3600:
352
- tips = `${parseInt(timer / 60)}分钟前`
353
- break
354
- case timer >= 3600 && timer < 86400:
355
- tips = `${parseInt(timer / 3600)}小时前`
356
- break
357
- case timer >= 86400 && timer < 2592000:
358
- tips = `${parseInt(timer / 86400)}天前`
359
- break
360
- default:
361
- // 如果format为false,则无论什么时间戳,都显示xx之前
362
- if (format === false) {
363
- if (timer >= 2592000 && timer < 365 * 86400) {
364
- tips = `${parseInt(timer / (86400 * 30))}个月前`
365
- } else {
366
- tips = `${parseInt(timer / (86400 * 365))}年前`
367
- }
368
- } else {
369
- tips = timeFormat(timestamp, format)
370
- }
371
- }
372
- return tips
397
+ export function timeFrom(timestamp = null, format = 'yyyy-mm-dd') {
398
+ if (timestamp == null) timestamp = Number(new Date());
399
+ timestamp = parseInt(timestamp);
400
+ // 判断用户输入的时间戳是秒还是毫秒,一般前端js获取的时间戳是毫秒(13位),后端传过来的为秒(10位)
401
+ if (timestamp.toString().length == 10) timestamp *= 1000;
402
+ let timer = new Date().getTime() - timestamp;
403
+ timer = parseInt(timer / 1000);
404
+ // 如果小于5分钟,则返回"刚刚",其他以此类推
405
+ let tips = '';
406
+ switch (true) {
407
+ case timer < 300:
408
+ tips = '刚刚';
409
+ break;
410
+ case timer >= 300 && timer < 3600:
411
+ tips = `${parseInt(timer / 60)}分钟前`;
412
+ break;
413
+ case timer >= 3600 && timer < 86400:
414
+ tips = `${parseInt(timer / 3600)}小时前`;
415
+ break;
416
+ case timer >= 86400 && timer < 2592000:
417
+ tips = `${parseInt(timer / 86400)}天前`;
418
+ break;
419
+ default:
420
+ // 如果format为false,则无论什么时间戳,都显示xx之前
421
+ if (format === false) {
422
+ if (timer >= 2592000 && timer < 365 * 86400) {
423
+ tips = `${parseInt(timer / (86400 * 30))}个月前`;
424
+ } else {
425
+ tips = `${parseInt(timer / (86400 * 365))}年前`;
426
+ }
427
+ } else {
428
+ tips = timeFormat(timestamp, format);
429
+ }
430
+ }
431
+ return tips;
373
432
  }
374
433
 
375
434
  /**
@@ -377,21 +436,21 @@ function timeFrom(timestamp = null, format = 'yyyy-mm-dd') {
377
436
  * @param String str 需要去除空格的字符串
378
437
  * @param String pos both(左右)|left|right|all 默认both
379
438
  */
380
- function trim(str, pos = 'both') {
381
- str = String(str)
382
- if (pos == 'both') {
383
- return str.replace(/^\s+|\s+$/g, '')
384
- }
385
- if (pos == 'left') {
386
- return str.replace(/^\s*/, '')
387
- }
388
- if (pos == 'right') {
389
- return str.replace(/(\s*$)/g, '')
390
- }
391
- if (pos == 'all') {
392
- return str.replace(/\s+/g, '')
393
- }
394
- return str
439
+ export function trim(str, pos = 'both') {
440
+ str = String(str);
441
+ if (pos == 'both') {
442
+ return str.replace(/^\s+|\s+$/g, '');
443
+ }
444
+ if (pos == 'left') {
445
+ return str.replace(/^\s*/, '');
446
+ }
447
+ if (pos == 'right') {
448
+ return str.replace(/(\s*$)/g, '');
449
+ }
450
+ if (pos == 'all') {
451
+ return str.replace(/\s+/g, '');
452
+ }
453
+ return str;
395
454
  }
396
455
 
397
456
  /**
@@ -400,56 +459,56 @@ function trim(str, pos = 'both') {
400
459
  * @param {Boolean} isPrefix,是否自动加上"?"
401
460
  * @param {string} arrayFormat 规则 indices|brackets|repeat|comma
402
461
  */
403
- function queryParams(data = {}, isPrefix = true, arrayFormat = 'brackets') {
404
- const prefix = isPrefix ? '?' : ''
405
- const _result = []
406
- if (['indices', 'brackets', 'repeat', 'comma'].indexOf(arrayFormat) == -1) arrayFormat = 'brackets'
407
- for (const key in data) {
408
- const value = data[key]
409
- // 去掉为空的参数
410
- if (['', undefined, null].indexOf(value) >= 0) {
411
- continue
412
- }
413
- // 如果值为数组,另行处理
414
- if (value.constructor === Array) {
415
- // e.g. {ids: [1, 2, 3]}
416
- switch (arrayFormat) {
417
- case 'indices':
418
- // 结果: ids[0]=1&ids[1]=2&ids[2]=3
419
- for (let i = 0; i < value.length; i++) {
420
- _result.push(`${key}[${i}]=${value[i]}`)
421
- }
422
- break
423
- case 'brackets':
424
- // 结果: ids[]=1&ids[]=2&ids[]=3
425
- value.forEach((_value) => {
426
- _result.push(`${key}[]=${_value}`)
427
- })
428
- break
429
- case 'repeat':
430
- // 结果: ids=1&ids=2&ids=3
431
- value.forEach((_value) => {
432
- _result.push(`${key}=${_value}`)
433
- })
434
- break
435
- case 'comma':
436
- // 结果: ids=1,2,3
437
- let commaStr = ''
438
- value.forEach((_value) => {
439
- commaStr += (commaStr ? ',' : '') + _value
440
- })
441
- _result.push(`${key}=${commaStr}`)
442
- break
443
- default:
444
- value.forEach((_value) => {
445
- _result.push(`${key}[]=${_value}`)
446
- })
447
- }
448
- } else {
449
- _result.push(`${key}=${value}`)
450
- }
451
- }
452
- return _result.length ? prefix + _result.join('&') : ''
462
+ export function queryParams(data = {}, isPrefix = true, arrayFormat = 'brackets') {
463
+ const prefix = isPrefix ? '?' : '';
464
+ const _result = [];
465
+ if (['indices', 'brackets', 'repeat', 'comma'].indexOf(arrayFormat) == -1) arrayFormat = 'brackets';
466
+ for (const key in data) {
467
+ const value = data[key];
468
+ // 去掉为空的参数
469
+ if (['', undefined, null].indexOf(value) >= 0) {
470
+ continue;
471
+ }
472
+ // 如果值为数组,另行处理
473
+ if (value.constructor === Array) {
474
+ // e.g. {ids: [1, 2, 3]}
475
+ switch (arrayFormat) {
476
+ case 'indices':
477
+ // 结果: ids[0]=1&ids[1]=2&ids[2]=3
478
+ for (let i = 0; i < value.length; i++) {
479
+ _result.push(`${key}[${i}]=${value[i]}`);
480
+ }
481
+ break;
482
+ case 'brackets':
483
+ // 结果: ids[]=1&ids[]=2&ids[]=3
484
+ value.forEach((_value) => {
485
+ _result.push(`${key}[]=${_value}`);
486
+ });
487
+ break;
488
+ case 'repeat':
489
+ // 结果: ids=1&ids=2&ids=3
490
+ value.forEach((_value) => {
491
+ _result.push(`${key}=${_value}`);
492
+ });
493
+ break;
494
+ case 'comma':
495
+ // 结果: ids=1,2,3
496
+ let commaStr = '';
497
+ value.forEach((_value) => {
498
+ commaStr += (commaStr ? ',' : '') + _value;
499
+ });
500
+ _result.push(`${key}=${commaStr}`);
501
+ break;
502
+ default:
503
+ value.forEach((_value) => {
504
+ _result.push(`${key}[]=${_value}`);
505
+ });
506
+ }
507
+ } else {
508
+ _result.push(`${key}=${value}`);
509
+ }
510
+ }
511
+ return _result.length ? prefix + _result.join('&') : '';
453
512
  }
454
513
 
455
514
  /**
@@ -457,12 +516,12 @@ function queryParams(data = {}, isPrefix = true, arrayFormat = 'brackets') {
457
516
  * @param {String} title 提示的内容,长度与 icon 取值有关。
458
517
  * @param {Number} duration 提示的延迟时间,单位毫秒,默认:2000
459
518
  */
460
- function toast(title, duration = 2000) {
461
- uni.showToast({
462
- title: String(title),
463
- icon: 'none',
464
- duration
465
- })
519
+ export function toast(title, duration = 2000) {
520
+ uni.showToast({
521
+ title: String(title),
522
+ icon: 'none',
523
+ duration
524
+ });
466
525
  }
467
526
 
468
527
  /**
@@ -470,33 +529,33 @@ function toast(title, duration = 2000) {
470
529
  * @param {String} type 主题名称,primary|info|error|warning|success
471
530
  * @param {boolean} fill 是否使用fill填充实体的图标
472
531
  */
473
- function type2icon(type = 'success', fill = false) {
474
- // 如果非预置值,默认为success
475
- if (['primary', 'info', 'error', 'warning', 'success'].indexOf(type) == -1) type = 'success'
476
- let iconName = ''
477
- // 目前(2019-12-12),info和primary使用同一个图标
478
- switch (type) {
479
- case 'primary':
480
- iconName = 'info-circle'
481
- break
482
- case 'info':
483
- iconName = 'info-circle'
484
- break
485
- case 'error':
486
- iconName = 'close-circle'
487
- break
488
- case 'warning':
489
- iconName = 'error-circle'
490
- break
491
- case 'success':
492
- iconName = 'checkmark-circle'
493
- break
494
- default:
495
- iconName = 'checkmark-circle'
496
- }
497
- // 是否是实体类型,加上-fill,在icon组件库中,实体的类名是后面加-fill的
498
- if (fill) iconName += '-fill'
499
- return iconName
532
+ export function type2icon(type = 'success', fill = false) {
533
+ // 如果非预置值,默认为success
534
+ if (['primary', 'info', 'error', 'warning', 'success'].indexOf(type) == -1) type = 'success';
535
+ let iconName = '';
536
+ // 目前(2019-12-12),info和primary使用同一个图标
537
+ switch (type) {
538
+ case 'primary':
539
+ iconName = 'info-circle';
540
+ break;
541
+ case 'info':
542
+ iconName = 'info-circle';
543
+ break;
544
+ case 'error':
545
+ iconName = 'close-circle';
546
+ break;
547
+ case 'warning':
548
+ iconName = 'error-circle';
549
+ break;
550
+ case 'success':
551
+ iconName = 'checkmark-circle';
552
+ break;
553
+ default:
554
+ iconName = 'checkmark-circle';
555
+ }
556
+ // 是否是实体类型,加上-fill,在icon组件库中,实体的类名是后面加-fill的
557
+ if (fill) iconName += '-fill';
558
+ return iconName;
500
559
  }
501
560
 
502
561
  /**
@@ -507,25 +566,25 @@ function type2icon(type = 'success', fill = false) {
507
566
  * @param {string} thousandsSeparator 千分位符号
508
567
  * @returns {string} 格式化后的数字
509
568
  */
510
- function priceFormat(number, decimals = 0, decimalPoint = '.', thousandsSeparator = ',') {
511
- number = (`${number}`).replace(/[^0-9+-Ee.]/g, '')
512
- const n = !isFinite(+number) ? 0 : +number
513
- const prec = !isFinite(+decimals) ? 0 : Math.abs(decimals)
514
- const sep = (typeof thousandsSeparator === 'undefined') ? ',' : thousandsSeparator
515
- const dec = (typeof decimalPoint === 'undefined') ? '.' : decimalPoint
516
- let s = ''
517
-
518
- s = (prec ? round(n, prec) + '' : `${Math.round(n)}`).split('.')
519
- const re = /(-?\d+)(\d{3})/
520
- while (re.test(s[0])) {
521
- s[0] = s[0].replace(re, `$1${sep}$2`)
522
- }
523
-
524
- if ((s[1] || '').length < prec) {
525
- s[1] = s[1] || ''
526
- s[1] += new Array(prec - s[1].length + 1).join('0')
527
- }
528
- return s.join(dec)
569
+ export function priceFormat(number, decimals = 0, decimalPoint = '.', thousandsSeparator = ',') {
570
+ number = `${number}`.replace(/[^0-9+-Ee.]/g, '');
571
+ const n = !isFinite(+number) ? 0 : +number;
572
+ const prec = !isFinite(+decimals) ? 0 : Math.abs(decimals);
573
+ const sep = typeof thousandsSeparator === 'undefined' ? ',' : thousandsSeparator;
574
+ const dec = typeof decimalPoint === 'undefined' ? '.' : decimalPoint;
575
+ let s = '';
576
+
577
+ s = (prec ? round(n, prec) + '' : `${Math.round(n)}`).split('.');
578
+ const re = /(-?\d+)(\d{3})/;
579
+ while (re.test(s[0])) {
580
+ s[0] = s[0].replace(re, `$1${sep}$2`);
581
+ }
582
+
583
+ if ((s[1] || '').length < prec) {
584
+ s[1] = s[1] || '';
585
+ s[1] += new Array(prec - s[1].length + 1).join('0');
586
+ }
587
+ return s.join(dec);
529
588
  }
530
589
 
531
590
  /**
@@ -534,25 +593,25 @@ function priceFormat(number, decimals = 0, decimalPoint = '.', thousandsSeparato
534
593
  * 比如以30位阈值,那么300大于30,可以理解为用户想要的是300ms,而不是想花300s去执行一个动画
535
594
  * @param {String|number} value 比如: "1s"|"100ms"|1|100
536
595
  * @param {boolean} unit 提示: 如果是false 默认返回number
537
- * @return {string|number}
596
+ * @return {string|number}
538
597
  */
539
- function getDuration(value, unit = true) {
540
- const valueNum = parseInt(value)
541
- if (unit) {
542
- if (/s$/.test(value)) return value
543
- return value > 30 ? `${value}ms` : `${value}s`
544
- }
545
- if (/ms$/.test(value)) return valueNum
546
- if (/s$/.test(value)) return valueNum > 30 ? valueNum : valueNum * 1000
547
- return valueNum
598
+ export function getDuration(value, unit = true) {
599
+ const valueNum = parseInt(value);
600
+ if (unit) {
601
+ if (/s$/.test(value)) return value;
602
+ return value > 30 ? `${value}ms` : `${value}s`;
603
+ }
604
+ if (/ms$/.test(value)) return valueNum;
605
+ if (/s$/.test(value)) return valueNum > 30 ? valueNum : valueNum * 1000;
606
+ return valueNum;
548
607
  }
549
608
 
550
609
  /**
551
610
  * @description 日期的月或日补零操作
552
611
  * @param {String} value 需要补零的值
553
612
  */
554
- function padZero(value) {
555
- return `00${value}`.slice(-2)
613
+ export function padZero(value) {
614
+ return `00${value}`.slice(-2);
556
615
  }
557
616
 
558
617
  /**
@@ -560,14 +619,14 @@ function padZero(value) {
560
619
  * @param {*} instance
561
620
  * @param {*} event
562
621
  */
563
- function formValidate(instance, event) {
564
- const formItem = uni.$u.$parent.call(instance, 'u-form-item')
565
- const form = uni.$u.$parent.call(instance, 'u-form')
566
- // 如果发生变化的input或者textarea等,其父组件中有u-form-item或者u-form等,就执行form的validate方法
567
- // 同时将form-item的pros传递给form,让其进行精确对象验证
568
- if (formItem && form) {
569
- form.validateField(formItem.prop, () => {}, event)
570
- }
622
+ export function formValidate(instance, event) {
623
+ const formItem = $parent.call(instance, 'u-form-item');
624
+ const form = $parent.call(instance, 'u-form');
625
+ // 如果发生变化的input或者textarea等,其父组件中有u-form-item或者u-form等,就执行form的validate方法
626
+ // 同时将form-item的pros传递给form,让其进行精确对象验证
627
+ if (formItem && form) {
628
+ form.validateField(formItem.prop, () => {}, event);
629
+ }
571
630
  }
572
631
 
573
632
  /**
@@ -576,25 +635,25 @@ function formValidate(instance, event) {
576
635
  * @param {string} key 需要获取的属性字段
577
636
  * @returns {*}
578
637
  */
579
- function getProperty(obj, key) {
580
- if (!obj) {
581
- return
582
- }
583
- if (typeof key !== 'string' || key === '') {
584
- return ''
585
- }
586
- if (key.indexOf('.') !== -1) {
587
- const keys = key.split('.')
588
- let firstObj = obj[keys[0]] || {}
589
-
590
- for (let i = 1; i < keys.length; i++) {
591
- if (firstObj) {
592
- firstObj = firstObj[keys[i]]
593
- }
594
- }
595
- return firstObj
596
- }
597
- return obj[key]
638
+ export function getProperty(obj, key) {
639
+ if (typeof obj !== 'object' || null == obj) {
640
+ return '';
641
+ }
642
+ if (typeof key !== 'string' || key === '') {
643
+ return '';
644
+ }
645
+ if (key.indexOf('.') !== -1) {
646
+ const keys = key.split('.');
647
+ let firstObj = obj[keys[0]] || {};
648
+
649
+ for (let i = 1; i < keys.length; i++) {
650
+ if (firstObj) {
651
+ firstObj = firstObj[keys[i]];
652
+ }
653
+ }
654
+ return firstObj;
655
+ }
656
+ return obj[key];
598
657
  }
599
658
 
600
659
  /**
@@ -603,106 +662,205 @@ function getProperty(obj, key) {
603
662
  * @param {string} key 需要设置的属性
604
663
  * @param {string} value 设置的值
605
664
  */
606
- function setProperty(obj, key, value) {
607
- if (!obj) {
608
- return
609
- }
610
- // 递归赋值
611
- const inFn = function(_obj, keys, v) {
612
- // 最后一个属性key
613
- if (keys.length === 1) {
614
- _obj[keys[0]] = v
615
- return
616
- }
617
- // 0~length-1个key
618
- while (keys.length > 1) {
619
- const k = keys[0]
620
- if (!_obj[k] || (typeof _obj[k] !== 'object')) {
621
- _obj[k] = {}
622
- }
623
- const key = keys.shift()
624
- // 自调用判断是否存在属性,不存在则自动创建对象
625
- inFn(_obj[k], keys, v)
626
- }
627
- }
628
-
629
- if (typeof key !== 'string' || key === '') {
630
-
631
- } else if (key.indexOf('.') !== -1) { // 支持多层级赋值操作
632
- const keys = key.split('.')
633
- inFn(obj, keys, value)
634
- } else {
635
- obj[key] = value
636
- }
665
+ export function setProperty(obj, key, value) {
666
+ if (typeof obj !== 'object' || null == obj) {
667
+ return;
668
+ }
669
+ // 递归赋值
670
+ const inFn = function (_obj, keys, v) {
671
+ // 最后一个属性key
672
+ if (keys.length === 1) {
673
+ _obj[keys[0]] = v;
674
+ return;
675
+ }
676
+ // 0~length-1个key
677
+ while (keys.length > 1) {
678
+ const k = keys[0];
679
+ if (!_obj[k] || typeof _obj[k] !== 'object') {
680
+ _obj[k] = {};
681
+ }
682
+ const key = keys.shift();
683
+ // 自调用判断是否存在属性,不存在则自动创建对象
684
+ inFn(_obj[k], keys, v);
685
+ }
686
+ };
687
+
688
+ if (typeof key !== 'string' || key === '') {
689
+ } else if (key.indexOf('.') !== -1) {
690
+ // 支持多层级赋值操作
691
+ const keys = key.split('.');
692
+ inFn(obj, keys, value);
693
+ } else {
694
+ obj[key] = value;
695
+ }
637
696
  }
638
697
 
639
698
  /**
640
699
  * @description 获取当前页面路径
641
700
  */
642
- function page() {
643
- const pages = getCurrentPages()
644
- // 某些特殊情况下(比如页面进行redirectTo时的一些时机),pages可能为空数组
645
- return `/${pages[pages.length - 1].route || ''}`
701
+ export function page() {
702
+ const pages = getCurrentPages();
703
+ // 某些特殊情况下(比如页面进行redirectTo时的一些时机),pages可能为空数组
704
+ return `/${pages[pages.length - 1].route || ''}`;
705
+
706
+ //const route = pages[pages.length - 1]?.route;
707
+ // 某些特殊情况下(比如页面进行redirectTo时的一些时机),pages可能为空数组
708
+ //return `/${route ? route : ''}`;
646
709
  }
647
710
 
648
711
  /**
649
712
  * @description 获取当前路由栈实例数组
650
713
  */
651
- function pages() {
652
- const pages = getCurrentPages()
653
- return pages
714
+ export function pages() {
715
+ const pages = getCurrentPages();
716
+ return pages;
717
+ }
718
+
719
+ export function getValueByPath(obj, path) {
720
+ // 将路径字符串按 '.' 分割成数组
721
+ const pathArr = path.split('.');
722
+ // 使用 reduce 方法从 obj 开始,逐级访问嵌套属性
723
+ return pathArr.reduce((acc, curr) => {
724
+ // 如果当前累加器(acc)是对象且包含当前键(curr),则返回该键对应的值
725
+ // 否则返回 undefined(表示路径不存在)
726
+ return acc && acc[curr] !== undefined ? acc[curr] : undefined;
727
+ }, obj);
654
728
  }
655
729
 
656
730
  /**
657
- * @description 修改uView内置属性值
658
- * @param {object} props 修改内置props属性
659
- * @param {object} config 修改内置config属性
660
- * @param {object} color 修改内置color属性
661
- * @param {object} zIndex 修改内置zIndex属性
731
+ * 生成同色系浅色背景色
732
+ * @param {string} textColor - 支持 #RGB、#RRGGBB、rgb()、rgba() 格式
733
+ * @param {number} [lightness=85] - 目标亮度百分比(默认85%)
734
+ * @returns {string} 十六进制颜色值
662
735
  */
663
- function setConfig({
664
- props = {},
665
- config = {},
666
- color = {},
667
- zIndex = {}
668
- }) {
669
- const {
670
- deepMerge,
671
- } = uni.$u
672
- uni.$u.config = deepMerge(uni.$u.config, config)
673
- uni.$u.props = deepMerge(uni.$u.props, props)
674
- uni.$u.color = deepMerge(uni.$u.color, color)
675
- uni.$u.zIndex = deepMerge(uni.$u.zIndex, zIndex)
736
+ export function genLightColor(textColor, lightness = 95) {
737
+ // 手动解析颜色值(避免使用document)
738
+ const rgb = parseColorWithoutDOM(textColor);
739
+
740
+ // RGB转HSL色域
741
+ const hsl = rgbToHsl(rgb.r, rgb.g, rgb.b);
742
+
743
+ // 生成浅色背景
744
+ const bgHsl = {
745
+ h: hsl.h,
746
+ s: hsl.s,
747
+ l: Math.min(lightness, 95)
748
+ };
749
+
750
+ return hslToHex(bgHsl.h, bgHsl.s, bgHsl.l);
676
751
  }
677
752
 
678
- export default {
679
- range,
680
- getPx,
681
- sleep,
682
- os,
683
- sys,
684
- random,
685
- guid,
686
- $parent,
687
- addStyle,
688
- addUnit,
689
- deepClone,
690
- deepMerge,
691
- error,
692
- randomArray,
693
- timeFormat,
694
- timeFrom,
695
- trim,
696
- queryParams,
697
- toast,
698
- type2icon,
699
- priceFormat,
700
- getDuration,
701
- padZero,
702
- formValidate,
703
- getProperty,
704
- setProperty,
705
- page,
706
- pages,
707
- setConfig
753
+ /* 手动解析颜色字符串(兼容uni-app环境) */
754
+ function parseColorWithoutDOM(colorStr) {
755
+ // 统一转小写处理
756
+ const str = colorStr.toLowerCase().trim();
757
+
758
+ // 处理十六进制格式
759
+ if (str.startsWith('#')) {
760
+ const hex = str.replace('#', '');
761
+ const fullHex =
762
+ hex.length === 3
763
+ ? hex
764
+ .split('')
765
+ .map((c) => c + c)
766
+ .join('')
767
+ : hex;
768
+
769
+ return {
770
+ r: parseInt(fullHex.substring(0, 2), 16),
771
+ g: parseInt(fullHex.substring(2, 4), 16),
772
+ b: parseInt(fullHex.substring(4, 6), 16)
773
+ };
774
+ }
775
+
776
+ // 处理rgb/rgba格式
777
+ const rgbMatch = str.match(/rgba?\((\d+),\s*(\d+),\s*(\d+)/);
778
+ if (rgbMatch) {
779
+ return {
780
+ r: +rgbMatch[1],
781
+ g: +rgbMatch[2],
782
+ b: +rgbMatch[3]
783
+ };
784
+ }
785
+
786
+ throw new Error('Invalid color format');
787
+ }
788
+
789
+ // 辅助函数:RGB 转 HSL(色相、饱和度、亮度)
790
+ function rgbToHsl(r, g, b) {
791
+ (r /= 255), (g /= 255), (b /= 255);
792
+ const max = Math.max(r, g, b),
793
+ min = Math.min(r, g, b);
794
+ let h,
795
+ s,
796
+ l = (max + min) / 2;
797
+
798
+ if (max === min) {
799
+ h = s = 0; // achromatic
800
+ } else {
801
+ const d = max - min;
802
+ s = l > 0.5 ? d / (2 - max - min) : d / (max + min);
803
+ switch (max) {
804
+ case r:
805
+ h = (g - b) / d + (g < b ? 6 : 0);
806
+ break;
807
+ case g:
808
+ h = (b - r) / d + 2;
809
+ break;
810
+ case b:
811
+ h = (r - g) / d + 4;
812
+ break;
813
+ }
814
+ h = (h * 60).toFixed(1);
815
+ }
816
+ return { h: +h, s: +(s * 100).toFixed(1), l: +(l * 100).toFixed(1) };
708
817
  }
818
+
819
+ // 辅助函数:HSL 转十六进制
820
+ function hslToHex(h, s, l) {
821
+ l /= 100;
822
+ const a = (s * Math.min(l, 1 - l)) / 100;
823
+ const f = (n) => {
824
+ const k = (n + h / 30) % 12;
825
+ const color = l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);
826
+ return Math.round(255 * color)
827
+ .toString(16)
828
+ .padStart(2, '0');
829
+ };
830
+ return `#${f(0)}${f(8)}${f(4)}`;
831
+ }
832
+
833
+ export default {
834
+ range,
835
+ getPx,
836
+ sleep,
837
+ os,
838
+ sys,
839
+ getWindowInfo,
840
+ random,
841
+ guid,
842
+ $parent,
843
+ addStyle,
844
+ addUnit,
845
+ deepClone,
846
+ deepMerge,
847
+ shallowMerge,
848
+ error,
849
+ randomArray,
850
+ timeFormat,
851
+ timeFrom,
852
+ trim,
853
+ queryParams,
854
+ toast,
855
+ type2icon,
856
+ priceFormat,
857
+ getDuration,
858
+ padZero,
859
+ formValidate,
860
+ getProperty,
861
+ setProperty,
862
+ page,
863
+ pages,
864
+ getValueByPath,
865
+ genLightColor
866
+ };