uview-ui-wjf 1.0.0

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 (368) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +71 -0
  3. package/changelog.md +388 -0
  4. package/components/u--form/u--form.vue +92 -0
  5. package/components/u--image/u--image.vue +73 -0
  6. package/components/u--input/u--input.vue +115 -0
  7. package/components/u--text/u--text.vue +72 -0
  8. package/components/u--textarea/u--textarea.vue +85 -0
  9. package/components/u-action-sheet/props.js +54 -0
  10. package/components/u-action-sheet/u-action-sheet.vue +278 -0
  11. package/components/u-album/props.js +59 -0
  12. package/components/u-album/u-album.vue +259 -0
  13. package/components/u-alert/props.js +44 -0
  14. package/components/u-alert/u-alert.vue +243 -0
  15. package/components/u-avatar/props.js +78 -0
  16. package/components/u-avatar/u-avatar.vue +173 -0
  17. package/components/u-avatar-group/props.js +52 -0
  18. package/components/u-avatar-group/u-avatar-group.vue +103 -0
  19. package/components/u-back-top/props.js +54 -0
  20. package/components/u-back-top/u-back-top.vue +129 -0
  21. package/components/u-badge/props.js +72 -0
  22. package/components/u-badge/u-badge.vue +171 -0
  23. package/components/u-button/nvue.scss +46 -0
  24. package/components/u-button/props.js +161 -0
  25. package/components/u-button/u-button.vue +495 -0
  26. package/components/u-button/vue.scss +80 -0
  27. package/components/u-calendar/header.vue +99 -0
  28. package/components/u-calendar/month.vue +579 -0
  29. package/components/u-calendar/props.js +144 -0
  30. package/components/u-calendar/u-calendar.vue +384 -0
  31. package/components/u-calendar/util.js +85 -0
  32. package/components/u-car-keyboard/props.js +14 -0
  33. package/components/u-car-keyboard/u-car-keyboard.vue +311 -0
  34. package/components/u-cell/props.js +110 -0
  35. package/components/u-cell/u-cell.vue +229 -0
  36. package/components/u-cell-group/props.js +14 -0
  37. package/components/u-cell-group/u-cell-group.vue +61 -0
  38. package/components/u-checkbox/props.js +69 -0
  39. package/components/u-checkbox/u-checkbox.vue +344 -0
  40. package/components/u-checkbox-group/props.js +82 -0
  41. package/components/u-checkbox-group/u-checkbox-group.vue +103 -0
  42. package/components/u-circle-progress/props.js +8 -0
  43. package/components/u-circle-progress/u-circle-progress.vue +198 -0
  44. package/components/u-code/props.js +34 -0
  45. package/components/u-code/u-code.vue +129 -0
  46. package/components/u-code-input/props.js +79 -0
  47. package/components/u-code-input/u-code-input.vue +252 -0
  48. package/components/u-col/props.js +29 -0
  49. package/components/u-col/u-col.vue +162 -0
  50. package/components/u-collapse/props.js +19 -0
  51. package/components/u-collapse/u-collapse.vue +90 -0
  52. package/components/u-collapse-item/props.js +59 -0
  53. package/components/u-collapse-item/u-collapse-item.vue +225 -0
  54. package/components/u-column-notice/props.js +55 -0
  55. package/components/u-column-notice/u-column-notice.vue +160 -0
  56. package/components/u-count-down/props.js +24 -0
  57. package/components/u-count-down/u-count-down.vue +163 -0
  58. package/components/u-count-down/utils.js +62 -0
  59. package/components/u-count-to/props.js +59 -0
  60. package/components/u-count-to/u-count-to.vue +184 -0
  61. package/components/u-datetime-picker/props.js +120 -0
  62. package/components/u-datetime-picker/u-datetime-picker.vue +361 -0
  63. package/components/u-divider/props.js +44 -0
  64. package/components/u-divider/u-divider.vue +116 -0
  65. package/components/u-dropdown/props.js +65 -0
  66. package/components/u-dropdown/u-dropdown.vue +127 -0
  67. package/components/u-dropdown-item/props.js +36 -0
  68. package/components/u-dropdown-item/u-dropdown-item.vue +127 -0
  69. package/components/u-empty/props.js +59 -0
  70. package/components/u-empty/u-empty.vue +128 -0
  71. package/components/u-form/props.js +45 -0
  72. package/components/u-form/u-form.vue +214 -0
  73. package/components/u-form-item/props.js +48 -0
  74. package/components/u-form-item/u-form-item.vue +235 -0
  75. package/components/u-gap/props.js +24 -0
  76. package/components/u-gap/u-gap.vue +38 -0
  77. package/components/u-grid/props.js +19 -0
  78. package/components/u-grid/u-grid.vue +97 -0
  79. package/components/u-grid-item/props.js +14 -0
  80. package/components/u-grid-item/u-grid-item.vue +209 -0
  81. package/components/u-icon/icons.js +214 -0
  82. package/components/u-icon/props.js +89 -0
  83. package/components/u-icon/u-icon.vue +237 -0
  84. package/components/u-image/props.js +84 -0
  85. package/components/u-image/u-image.vue +232 -0
  86. package/components/u-index-anchor/props.js +29 -0
  87. package/components/u-index-anchor/u-index-anchor.vue +91 -0
  88. package/components/u-index-item/props.js +5 -0
  89. package/components/u-index-item/u-index-item.vue +87 -0
  90. package/components/u-index-list/props.js +29 -0
  91. package/components/u-index-list/u-index-list.vue +440 -0
  92. package/components/u-input/props.js +187 -0
  93. package/components/u-input/u-input.vue +369 -0
  94. package/components/u-keyboard/props.js +84 -0
  95. package/components/u-keyboard/u-keyboard.vue +164 -0
  96. package/components/u-line/props.js +33 -0
  97. package/components/u-line/u-line.vue +62 -0
  98. package/components/u-line-progress/props.js +28 -0
  99. package/components/u-line-progress/u-line-progress.vue +144 -0
  100. package/components/u-link/props.js +39 -0
  101. package/components/u-link/u-link.vue +83 -0
  102. package/components/u-list/props.js +76 -0
  103. package/components/u-list/u-list.vue +157 -0
  104. package/components/u-list-item/props.js +9 -0
  105. package/components/u-list-item/u-list-item.vue +116 -0
  106. package/components/u-loading-icon/props.js +59 -0
  107. package/components/u-loading-icon/u-loading-icon.vue +343 -0
  108. package/components/u-loading-page/props.js +49 -0
  109. package/components/u-loading-page/u-loading-page.vue +115 -0
  110. package/components/u-loadmore/props.js +94 -0
  111. package/components/u-loadmore/u-loadmore.vue +150 -0
  112. package/components/u-modal/props.js +89 -0
  113. package/components/u-modal/u-modal.vue +228 -0
  114. package/components/u-navbar/props.js +84 -0
  115. package/components/u-navbar/u-navbar.vue +186 -0
  116. package/components/u-no-network/props.js +19 -0
  117. package/components/u-no-network/u-no-network.vue +220 -0
  118. package/components/u-notice-bar/props.js +70 -0
  119. package/components/u-notice-bar/u-notice-bar.vue +101 -0
  120. package/components/u-notify/props.js +49 -0
  121. package/components/u-notify/u-notify.vue +211 -0
  122. package/components/u-number-box/props.js +109 -0
  123. package/components/u-number-box/u-number-box.vue +416 -0
  124. package/components/u-number-keyboard/props.js +19 -0
  125. package/components/u-number-keyboard/u-number-keyboard.vue +196 -0
  126. package/components/u-overlay/props.js +24 -0
  127. package/components/u-overlay/u-overlay.vue +68 -0
  128. package/components/u-parse/node/node.vue +499 -0
  129. package/components/u-parse/parser.js +1075 -0
  130. package/components/u-parse/props.js +45 -0
  131. package/components/u-parse/u-parse.vue +366 -0
  132. package/components/u-picker/props.js +79 -0
  133. package/components/u-picker/u-picker.vue +286 -0
  134. package/components/u-picker-column/props.js +5 -0
  135. package/components/u-picker-column/u-picker-column.vue +27 -0
  136. package/components/u-popup/props.js +79 -0
  137. package/components/u-popup/u-popup.vue +304 -0
  138. package/components/u-radio/props.js +64 -0
  139. package/components/u-radio/u-radio.vue +339 -0
  140. package/components/u-radio-group/props.js +85 -0
  141. package/components/u-radio-group/u-radio-group.vue +108 -0
  142. package/components/u-rate/props.js +69 -0
  143. package/components/u-rate/u-rate.vue +306 -0
  144. package/components/u-read-more/props.js +61 -0
  145. package/components/u-read-more/u-read-more.vue +157 -0
  146. package/components/u-row/props.js +19 -0
  147. package/components/u-row/u-row.vue +93 -0
  148. package/components/u-row-notice/props.js +39 -0
  149. package/components/u-row-notice/u-row-notice.vue +330 -0
  150. package/components/u-safe-bottom/props.js +5 -0
  151. package/components/u-safe-bottom/u-safe-bottom.vue +56 -0
  152. package/components/u-scroll-list/nvue.js +28 -0
  153. package/components/u-scroll-list/other.js +0 -0
  154. package/components/u-scroll-list/props.js +34 -0
  155. package/components/u-scroll-list/scrollWxs.wxs +50 -0
  156. package/components/u-scroll-list/u-scroll-list.vue +224 -0
  157. package/components/u-search/props.js +118 -0
  158. package/components/u-search/u-search.vue +303 -0
  159. package/components/u-skeleton/props.js +59 -0
  160. package/components/u-skeleton/u-skeleton.vue +244 -0
  161. package/components/u-slider/mpother.js +113 -0
  162. package/components/u-slider/mpwxs.js +42 -0
  163. package/components/u-slider/mpwxs.wxs +121 -0
  164. package/components/u-slider/nvue - /345/211/257/346/234/254.js" +180 -0
  165. package/components/u-slider/nvue.js +193 -0
  166. package/components/u-slider/props.js +54 -0
  167. package/components/u-slider/u-slider.vue +55 -0
  168. package/components/u-status-bar/props.js +8 -0
  169. package/components/u-status-bar/u-status-bar.vue +46 -0
  170. package/components/u-steps/props.js +39 -0
  171. package/components/u-steps/u-steps.vue +80 -0
  172. package/components/u-steps-item/props.js +24 -0
  173. package/components/u-steps-item/u-steps-item.vue +316 -0
  174. package/components/u-sticky/props.js +40 -0
  175. package/components/u-sticky/u-sticky.vue +212 -0
  176. package/components/u-subsection/props.js +49 -0
  177. package/components/u-subsection/u-subsection.vue +299 -0
  178. package/components/u-swipe-action/props.js +9 -0
  179. package/components/u-swipe-action/u-swipe-action.vue +67 -0
  180. package/components/u-swipe-action-item/index - backup.wxs +256 -0
  181. package/components/u-swipe-action-item/index.wxs +225 -0
  182. package/components/u-swipe-action-item/nvue - backup.js +270 -0
  183. package/components/u-swipe-action-item/nvue.js +174 -0
  184. package/components/u-swipe-action-item/props.js +41 -0
  185. package/components/u-swipe-action-item/u-swipe-action-item.vue +190 -0
  186. package/components/u-swipe-action-item/wxs.js +15 -0
  187. package/components/u-swiper/props.js +125 -0
  188. package/components/u-swiper/u-swiper.vue +255 -0
  189. package/components/u-swiper-indicator/props.js +29 -0
  190. package/components/u-swiper-indicator/u-swiper-indicator.vue +110 -0
  191. package/components/u-switch/props.js +54 -0
  192. package/components/u-switch/u-switch.vue +177 -0
  193. package/components/u-tabbar/props.js +44 -0
  194. package/components/u-tabbar/u-tabbar.vue +141 -0
  195. package/components/u-tabbar-item/props.js +35 -0
  196. package/components/u-tabbar-item/u-tabbar-item.vue +142 -0
  197. package/components/u-table/props.js +5 -0
  198. package/components/u-table/u-table.vue +29 -0
  199. package/components/u-tabs/props.js +64 -0
  200. package/components/u-tabs/u-tabs.vue +363 -0
  201. package/components/u-tabs-item/props.js +5 -0
  202. package/components/u-tabs-item/u-tabs-item.vue +29 -0
  203. package/components/u-tag/props.js +84 -0
  204. package/components/u-tag/u-tag.vue +358 -0
  205. package/components/u-td/props.js +5 -0
  206. package/components/u-td/u-td.vue +31 -0
  207. package/components/u-text/props.js +110 -0
  208. package/components/u-text/u-text.vue +223 -0
  209. package/components/u-text/value.js +85 -0
  210. package/components/u-textarea/props.js +119 -0
  211. package/components/u-textarea/u-textarea.vue +239 -0
  212. package/components/u-toast/u-toast.vue +291 -0
  213. package/components/u-toolbar/props.js +34 -0
  214. package/components/u-toolbar/u-toolbar.vue +102 -0
  215. package/components/u-tooltip/clipboard.min.js +58 -0
  216. package/components/u-tooltip/props.js +59 -0
  217. package/components/u-tooltip/u-tooltip.vue +366 -0
  218. package/components/u-tr/props.js +5 -0
  219. package/components/u-tr/u-tr.vue +31 -0
  220. package/components/u-transition/nvue.ani-map.js +68 -0
  221. package/components/u-transition/props.js +24 -0
  222. package/components/u-transition/transition.js +157 -0
  223. package/components/u-transition/u-transition.vue +92 -0
  224. package/components/u-transition/vue.ani-style.scss +113 -0
  225. package/components/u-upload/mixin.js +21 -0
  226. package/components/u-upload/props.js +124 -0
  227. package/components/u-upload/u-upload.vue +566 -0
  228. package/components/u-upload/utils.js +151 -0
  229. package/components/uview-ui/uview-ui.vue +15 -0
  230. package/index.js +79 -0
  231. package/index.scss +23 -0
  232. package/libs/config/color.js +17 -0
  233. package/libs/config/config.js +34 -0
  234. package/libs/config/props/actionSheet.js +25 -0
  235. package/libs/config/props/album.js +25 -0
  236. package/libs/config/props/alert.js +22 -0
  237. package/libs/config/props/avatar.js +28 -0
  238. package/libs/config/props/avatarGroup.js +23 -0
  239. package/libs/config/props/backtop.js +27 -0
  240. package/libs/config/props/badge.js +27 -0
  241. package/libs/config/props/button.js +42 -0
  242. package/libs/config/props/calendar.js +42 -0
  243. package/libs/config/props/carKeyboard.js +15 -0
  244. package/libs/config/props/cell.js +35 -0
  245. package/libs/config/props/cellGroup.js +17 -0
  246. package/libs/config/props/checkbox.js +27 -0
  247. package/libs/config/props/checkboxGroup.js +29 -0
  248. package/libs/config/props/circleProgress.js +15 -0
  249. package/libs/config/props/code.js +21 -0
  250. package/libs/config/props/codeInput.js +29 -0
  251. package/libs/config/props/col.js +19 -0
  252. package/libs/config/props/collapse.js +17 -0
  253. package/libs/config/props/collapseItem.js +25 -0
  254. package/libs/config/props/columnNotice.js +24 -0
  255. package/libs/config/props/countDown.js +18 -0
  256. package/libs/config/props/countTo.js +25 -0
  257. package/libs/config/props/datetimePicker.js +37 -0
  258. package/libs/config/props/divider.js +23 -0
  259. package/libs/config/props/empty.js +26 -0
  260. package/libs/config/props/form.js +22 -0
  261. package/libs/config/props/formItem.js +23 -0
  262. package/libs/config/props/gap.js +19 -0
  263. package/libs/config/props/grid.js +17 -0
  264. package/libs/config/props/gridItem.js +16 -0
  265. package/libs/config/props/icon.js +36 -0
  266. package/libs/config/props/image.js +30 -0
  267. package/libs/config/props/indexAnchor.js +19 -0
  268. package/libs/config/props/indexList.js +19 -0
  269. package/libs/config/props/input.js +48 -0
  270. package/libs/config/props/keyboard.js +30 -0
  271. package/libs/config/props/line.js +20 -0
  272. package/libs/config/props/lineProgress.js +19 -0
  273. package/libs/config/props/link.js +26 -0
  274. package/libs/config/props/list.js +28 -0
  275. package/libs/config/props/listItem.js +15 -0
  276. package/libs/config/props/loadingIcon.js +30 -0
  277. package/libs/config/props/loadingPage.js +23 -0
  278. package/libs/config/props/loadmore.js +32 -0
  279. package/libs/config/props/modal.js +31 -0
  280. package/libs/config/props/navbar.js +32 -0
  281. package/libs/config/props/noNetwork.js +18 -0
  282. package/libs/config/props/noticeBar.js +27 -0
  283. package/libs/config/props/notify.js +22 -0
  284. package/libs/config/props/numberBox.js +35 -0
  285. package/libs/config/props/numberKeyboard.js +17 -0
  286. package/libs/config/props/overlay.js +18 -0
  287. package/libs/config/props/parse.js +22 -0
  288. package/libs/config/props/picker.js +29 -0
  289. package/libs/config/props/popup.js +29 -0
  290. package/libs/config/props/radio.js +27 -0
  291. package/libs/config/props/radioGroup.js +30 -0
  292. package/libs/config/props/rate.js +26 -0
  293. package/libs/config/props/readMore.js +22 -0
  294. package/libs/config/props/row.js +17 -0
  295. package/libs/config/props/rowNotice.js +21 -0
  296. package/libs/config/props/scrollList.js +20 -0
  297. package/libs/config/props/search.js +37 -0
  298. package/libs/config/props/section.js +24 -0
  299. package/libs/config/props/skeleton.js +25 -0
  300. package/libs/config/props/slider.js +25 -0
  301. package/libs/config/props/statusBar.js +15 -0
  302. package/libs/config/props/steps.js +21 -0
  303. package/libs/config/props/stepsItem.js +18 -0
  304. package/libs/config/props/sticky.js +20 -0
  305. package/libs/config/props/subsection.js +23 -0
  306. package/libs/config/props/swipeAction.js +15 -0
  307. package/libs/config/props/swipeActionItem.js +21 -0
  308. package/libs/config/props/swiper.js +39 -0
  309. package/libs/config/props/swipterIndicator.js +19 -0
  310. package/libs/config/props/switch.js +24 -0
  311. package/libs/config/props/tabbar.js +22 -0
  312. package/libs/config/props/tabbarItem.js +20 -0
  313. package/libs/config/props/tabs.js +32 -0
  314. package/libs/config/props/tag.js +29 -0
  315. package/libs/config/props/text.js +38 -0
  316. package/libs/config/props/textarea.js +36 -0
  317. package/libs/config/props/toast.js +30 -0
  318. package/libs/config/props/toolbar.js +21 -0
  319. package/libs/config/props/tooltip.js +25 -0
  320. package/libs/config/props/transition.js +18 -0
  321. package/libs/config/props/upload.js +36 -0
  322. package/libs/config/props.js +190 -0
  323. package/libs/config/zIndex.js +20 -0
  324. package/libs/css/color.scss +155 -0
  325. package/libs/css/common.scss +97 -0
  326. package/libs/css/components.scss +15 -0
  327. package/libs/css/flex.scss +257 -0
  328. package/libs/css/h5.scss +0 -0
  329. package/libs/css/mixin.scss +8 -0
  330. package/libs/css/mp.scss +0 -0
  331. package/libs/css/nvue.scss +0 -0
  332. package/libs/css/vue.scss +27 -0
  333. package/libs/function/colorGradient.js +134 -0
  334. package/libs/function/debounce.js +29 -0
  335. package/libs/function/digit.js +167 -0
  336. package/libs/function/index.js +731 -0
  337. package/libs/function/platform.js +75 -0
  338. package/libs/function/test.js +288 -0
  339. package/libs/function/throttle.js +30 -0
  340. package/libs/luch-request/adapters/index.js +97 -0
  341. package/libs/luch-request/core/InterceptorManager.js +50 -0
  342. package/libs/luch-request/core/Request.js +198 -0
  343. package/libs/luch-request/core/buildFullPath.js +20 -0
  344. package/libs/luch-request/core/defaults.js +29 -0
  345. package/libs/luch-request/core/dispatchRequest.js +3 -0
  346. package/libs/luch-request/core/mergeConfig.js +103 -0
  347. package/libs/luch-request/core/settle.js +16 -0
  348. package/libs/luch-request/helpers/buildURL.js +69 -0
  349. package/libs/luch-request/helpers/combineURLs.js +14 -0
  350. package/libs/luch-request/helpers/isAbsoluteURL.js +14 -0
  351. package/libs/luch-request/index.d.ts +116 -0
  352. package/libs/luch-request/index.js +3 -0
  353. package/libs/luch-request/utils/clone.js +264 -0
  354. package/libs/luch-request/utils.js +131 -0
  355. package/libs/mixin/button.js +13 -0
  356. package/libs/mixin/mixin.js +160 -0
  357. package/libs/mixin/mpMixin.js +8 -0
  358. package/libs/mixin/mpShare.js +13 -0
  359. package/libs/mixin/openType.js +25 -0
  360. package/libs/mixin/style.js +228 -0
  361. package/libs/mixin/touch.js +59 -0
  362. package/libs/util/async-validator.js +1343 -0
  363. package/libs/util/calendar.js +546 -0
  364. package/libs/util/dayjs.js +308 -0
  365. package/libs/util/emitter.js +51 -0
  366. package/libs/util/route.js +124 -0
  367. package/package.json +83 -0
  368. package/theme.scss +44 -0
@@ -0,0 +1,257 @@
1
+ // .u-flex {
2
+ // @include vue-flex(row);
3
+ // }
4
+
5
+ // .u-flex-x {
6
+ // @include vue-flex(row);
7
+ // }
8
+
9
+ // .u-flex-y {
10
+ // @include vue-flex(column);
11
+ // }
12
+
13
+ // .u-flex-xy-center {
14
+ // @include vue-flex(row);
15
+ // justify-content: center;
16
+ // align-items: center;
17
+ // }
18
+
19
+ // .u-flex-x-center {
20
+ // @include vue-flex(row);
21
+ // justify-content: center;
22
+ // }
23
+
24
+ // .u-flex-y-center {
25
+ // @include vue-flex(column);
26
+ // justify-content: center;
27
+ // }
28
+
29
+
30
+ // flex布局
31
+ .u-flex,
32
+ .u-flex-row,
33
+ .u-flex-x {
34
+ @include flex;
35
+ }
36
+
37
+ .u-flex-y,
38
+ .u-flex-column {
39
+ @include flex(column);
40
+ }
41
+
42
+ .u-flex-x-center {
43
+ @include flex;
44
+ justify-content: center;
45
+ }
46
+
47
+ .u-flex-xy-center {
48
+ @include flex;
49
+ justify-content: center;
50
+ align-items: center;
51
+ }
52
+
53
+ .u-flex-y-center {
54
+ @include flex;
55
+ align-items: center;
56
+ }
57
+
58
+ .u-flex-x-left {
59
+ @include flex;
60
+ }
61
+
62
+ .u-flex-x-reverse,
63
+ .u-flex-row-reverse {
64
+ flex-direction: row-reverse;
65
+ }
66
+
67
+ .u-flex-y-reverse,
68
+ .u-flex-column-reverse {
69
+ flex-direction: column-reverse;
70
+ }
71
+
72
+ /* #ifndef APP-NVUE */
73
+ // 此处为vue版本的简写,因为nvue不支持同时作用于两个类名的样式写法
74
+ // nvue下只能写成class="u-flex-x u-flex-x-reverse的形式"
75
+ .u-flex.u-flex-reverse,
76
+ .u-flex-row.u-flex-reverse,
77
+ .u-flex-x.u-flex-reverse {
78
+ flex-direction: row-reverse;
79
+ }
80
+
81
+ .u-flex-column.u-flex-reverse,
82
+ .u-flex-y.u-flex-reverse {
83
+ flex-direction: column-reverse;
84
+ }
85
+
86
+ // 自动伸缩
87
+ .u-flex-fill {
88
+ flex: 1 1 auto
89
+ }
90
+
91
+ // 边界自动伸缩
92
+ .u-margin-top-auto,
93
+ .u-m-t-auto {
94
+ margin-top: auto !important
95
+ }
96
+
97
+ .u-margin-right-auto,
98
+ .u-m-r-auto {
99
+ margin-right: auto !important
100
+ }
101
+
102
+ .u-margin-bottom-auto,
103
+ .u-m-b-auto {
104
+ margin-bottom: auto !important
105
+ }
106
+
107
+ .u-margin-left-auto,
108
+ .u-m-l-auto {
109
+ margin-left: auto !important
110
+ }
111
+
112
+ .u-margin-center-auto,
113
+ .u-m-c-auto {
114
+ margin-left: auto !important;
115
+ margin-right: auto !important
116
+ }
117
+
118
+ .u-margin-middle-auto,
119
+ .u-m-m-auto {
120
+ margin-top: auto !important;
121
+ margin-bottom: auto !important
122
+ }
123
+ /* #endif */
124
+
125
+ // 换行
126
+ .u-flex-wrap {
127
+ flex-wrap: wrap;
128
+ }
129
+
130
+ // 反向换行
131
+ .u-flex-wrap-reverse {
132
+ flex-wrap: wrap-reverse;
133
+ }
134
+
135
+ // 主轴起点对齐
136
+ .u-flex-start {
137
+ justify-content: flex-start
138
+ }
139
+
140
+ // 主轴中间对齐
141
+ .u-flex-center {
142
+ justify-content: center
143
+ }
144
+
145
+ // 主轴终点对齐
146
+ .u-flex-end {
147
+ justify-content: flex-end
148
+ }
149
+
150
+ // 主轴等比间距
151
+ .u-flex-between {
152
+ justify-content: space-between
153
+ }
154
+
155
+ // 主轴均分间距
156
+ .u-flex-around {
157
+ justify-content: space-around
158
+ }
159
+
160
+ // 交叉轴起点对齐
161
+ .u-flex-items-start {
162
+ align-items: flex-start
163
+ }
164
+
165
+ // 交叉轴中间对齐
166
+ .u-flex-items-center {
167
+ align-items: center
168
+ }
169
+
170
+ // 交叉轴终点对齐
171
+ .u-flex-items-end {
172
+ align-items: flex-end
173
+ }
174
+
175
+ // 交叉轴第一行文字基线对齐
176
+ .u-flex-items-baseline {
177
+ align-items: baseline
178
+ }
179
+
180
+ // 交叉轴方向拉伸对齐
181
+ .u-flex-items-stretch {
182
+ align-items: stretch
183
+ }
184
+
185
+
186
+ // 以下属于项目(子元素)的类
187
+
188
+ // 子元素交叉轴起点对齐
189
+ .u-flex-self-start {
190
+ align-self: flex-start
191
+ }
192
+
193
+ // 子元素交叉轴居中对齐
194
+ .u-flex-self-center {
195
+ align-self: center
196
+ }
197
+
198
+ // 子元素交叉轴终点对齐
199
+ .u-flex-self-end {
200
+ align-self: flex-end
201
+ }
202
+
203
+ // 子元素交叉轴第一行文字基线对齐
204
+ .u-flex-self-baseline {
205
+ align-self: baseline
206
+ }
207
+
208
+ // 子元素交叉轴方向拉伸对齐
209
+ .u-flex-self-stretch {
210
+ align-self: stretch
211
+ }
212
+
213
+ // 多轴交叉时的对齐方式
214
+
215
+ // 起点对齐
216
+ .u-flex-content-start {
217
+ align-content: flex-start
218
+ }
219
+
220
+ // 居中对齐
221
+ .u-flex-content-center {
222
+ align-content: center
223
+ }
224
+
225
+ // 终点对齐
226
+ .u-flex-content-end {
227
+ align-content: flex-end
228
+ }
229
+
230
+ // 两端对齐
231
+ .u-flex-content-between {
232
+ align-content: space-between
233
+ }
234
+
235
+ // 均分间距
236
+ .u-flex-content-around {
237
+ align-content: space-around
238
+ }
239
+
240
+ // 全部居中对齐
241
+ .u-flex-middle {
242
+ justify-content: center;
243
+ align-items: center;
244
+ align-self: center;
245
+ align-content: center
246
+ }
247
+
248
+ // 是否可以放大
249
+ .u-flex-grow {
250
+ flex-grow: 1
251
+ }
252
+
253
+ // 是否可以缩小
254
+ .u-flex-shrink {
255
+ flex-shrink: 1
256
+ }
257
+
File without changes
@@ -0,0 +1,8 @@
1
+ // 通过scss的mixin功能,把原来需要写4行的css,变成一行
2
+ // 目的是保持代码干净整洁,不至于在nvue下,到处都要写display:flex的条件编译
3
+ @mixin flex($direction: row) {
4
+ /* #ifndef APP-NVUE */
5
+ display: flex;
6
+ /* #endif */
7
+ flex-direction: $direction;
8
+ }
File without changes
File without changes
@@ -0,0 +1,27 @@
1
+ // 历遍生成4个方向的底部安全区
2
+ @each $d in top, right, bottom, left {
3
+ .u-safe-area-inset-#{$d} {
4
+ padding-#{$d}: 0;
5
+ padding-#{$d}: constant(safe-area-inset-#{$d});
6
+ padding-#{$d}: env(safe-area-inset-#{$d});
7
+ }
8
+ }
9
+
10
+ //提升H5端uni.toast()的层级,避免被uView的modal等遮盖
11
+ /* #ifdef H5 */
12
+ uni-toast {
13
+ z-index: 10090;
14
+ }
15
+ uni-toast .uni-toast {
16
+ z-index: 10090;
17
+ }
18
+ /* #endif */
19
+
20
+ // 隐藏scroll-view的滚动条
21
+ ::-webkit-scrollbar {
22
+ display: none;
23
+ width: 0 !important;
24
+ height: 0 !important;
25
+ -webkit-appearance: none;
26
+ background: transparent;
27
+ }
@@ -0,0 +1,134 @@
1
+ /**
2
+ * 求两个颜色之间的渐变值
3
+ * @param {string} startColor 开始的颜色
4
+ * @param {string} endColor 结束的颜色
5
+ * @param {number} step 颜色等分的份额
6
+ * */
7
+ function colorGradient(startColor = 'rgb(0, 0, 0)', endColor = 'rgb(255, 255, 255)', step = 10) {
8
+ const startRGB = hexToRgb(startColor, false) // 转换为rgb数组模式
9
+ const startR = startRGB[0]
10
+ const startG = startRGB[1]
11
+ const startB = startRGB[2]
12
+
13
+ const endRGB = hexToRgb(endColor, false)
14
+ const endR = endRGB[0]
15
+ const endG = endRGB[1]
16
+ const endB = endRGB[2]
17
+
18
+ const sR = (endR - startR) / step // 总差值
19
+ const sG = (endG - startG) / step
20
+ const sB = (endB - startB) / step
21
+ const colorArr = []
22
+ for (let i = 0; i < step; i++) {
23
+ // 计算每一步的hex值
24
+ let hex = rgbToHex(`rgb(${Math.round((sR * i + startR))},${Math.round((sG * i + startG))},${Math.round((sB
25
+ * i + startB))})`)
26
+ // 确保第一个颜色值为startColor的值
27
+ if (i === 0) hex = rgbToHex(startColor)
28
+ // 确保最后一个颜色值为endColor的值
29
+ if (i === step - 1) hex = rgbToHex(endColor)
30
+ colorArr.push(hex)
31
+ }
32
+ return colorArr
33
+ }
34
+
35
+ // 将hex表示方式转换为rgb表示方式(这里返回rgb数组模式)
36
+ function hexToRgb(sColor, str = true) {
37
+ const reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/
38
+ sColor = String(sColor).toLowerCase()
39
+ if (sColor && reg.test(sColor)) {
40
+ if (sColor.length === 4) {
41
+ let sColorNew = '#'
42
+ for (let i = 1; i < 4; i += 1) {
43
+ sColorNew += sColor.slice(i, i + 1).concat(sColor.slice(i, i + 1))
44
+ }
45
+ sColor = sColorNew
46
+ }
47
+ // 处理六位的颜色值
48
+ const sColorChange = []
49
+ for (let i = 1; i < 7; i += 2) {
50
+ sColorChange.push(parseInt(`0x${sColor.slice(i, i + 2)}`))
51
+ }
52
+ if (!str) {
53
+ return sColorChange
54
+ }
55
+ return `rgb(${sColorChange[0]},${sColorChange[1]},${sColorChange[2]})`
56
+ } if (/^(rgb|RGB)/.test(sColor)) {
57
+ const arr = sColor.replace(/(?:\(|\)|rgb|RGB)*/g, '').split(',')
58
+ return arr.map((val) => Number(val))
59
+ }
60
+ return sColor
61
+ }
62
+
63
+ // 将rgb表示方式转换为hex表示方式
64
+ function rgbToHex(rgb) {
65
+ const _this = rgb
66
+ const reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/
67
+ if (/^(rgb|RGB)/.test(_this)) {
68
+ const aColor = _this.replace(/(?:\(|\)|rgb|RGB)*/g, '').split(',')
69
+ let strHex = '#'
70
+ for (let i = 0; i < aColor.length; i++) {
71
+ let hex = Number(aColor[i]).toString(16)
72
+ hex = String(hex).length == 1 ? `${0}${hex}` : hex // 保证每个rgb的值为2位
73
+ if (hex === '0') {
74
+ hex += hex
75
+ }
76
+ strHex += hex
77
+ }
78
+ if (strHex.length !== 7) {
79
+ strHex = _this
80
+ }
81
+ return strHex
82
+ } if (reg.test(_this)) {
83
+ const aNum = _this.replace(/#/, '').split('')
84
+ if (aNum.length === 6) {
85
+ return _this
86
+ } if (aNum.length === 3) {
87
+ let numHex = '#'
88
+ for (let i = 0; i < aNum.length; i += 1) {
89
+ numHex += (aNum[i] + aNum[i])
90
+ }
91
+ return numHex
92
+ }
93
+ } else {
94
+ return _this
95
+ }
96
+ }
97
+
98
+ /**
99
+ * JS颜色十六进制转换为rgb或rgba,返回的格式为 rgba(255,255,255,0.5)字符串
100
+ * sHex为传入的十六进制的色值
101
+ * alpha为rgba的透明度
102
+ */
103
+ function colorToRgba(color, alpha) {
104
+ color = rgbToHex(color)
105
+ // 十六进制颜色值的正则表达式
106
+ const reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/
107
+ /* 16进制颜色转为RGB格式 */
108
+ let sColor = String(color).toLowerCase()
109
+ if (sColor && reg.test(sColor)) {
110
+ if (sColor.length === 4) {
111
+ let sColorNew = '#'
112
+ for (let i = 1; i < 4; i += 1) {
113
+ sColorNew += sColor.slice(i, i + 1).concat(sColor.slice(i, i + 1))
114
+ }
115
+ sColor = sColorNew
116
+ }
117
+ // 处理六位的颜色值
118
+ const sColorChange = []
119
+ for (let i = 1; i < 7; i += 2) {
120
+ sColorChange.push(parseInt(`0x${sColor.slice(i, i + 2)}`))
121
+ }
122
+ // return sColorChange.join(',')
123
+ return `rgba(${sColorChange.join(',')},${alpha})`
124
+ }
125
+
126
+ return sColor
127
+ }
128
+
129
+ export default {
130
+ colorGradient,
131
+ hexToRgb,
132
+ rgbToHex,
133
+ colorToRgba
134
+ }
@@ -0,0 +1,29 @@
1
+ let timeout = null
2
+
3
+ /**
4
+ * 防抖原理:一定时间内,只有最后一次操作,再过wait毫秒后才执行函数
5
+ *
6
+ * @param {Function} func 要执行的回调函数
7
+ * @param {Number} wait 延时的时间
8
+ * @param {Boolean} immediate 是否立即执行
9
+ * @return null
10
+ */
11
+ function debounce(func, wait = 500, immediate = false) {
12
+ // 清除定时器
13
+ if (timeout !== null) clearTimeout(timeout)
14
+ // 立即执行,此类情况一般用不到
15
+ if (immediate) {
16
+ const callNow = !timeout
17
+ timeout = setTimeout(() => {
18
+ timeout = null
19
+ }, wait)
20
+ if (callNow) typeof func === 'function' && func()
21
+ } else {
22
+ // 设置定时器,当最后一次操作后,timeout不会再被清除,所以在延时wait毫秒后执行func回调方法
23
+ timeout = setTimeout(() => {
24
+ typeof func === 'function' && func()
25
+ }, wait)
26
+ }
27
+ }
28
+
29
+ export default debounce
@@ -0,0 +1,167 @@
1
+ let _boundaryCheckingState = true; // 是否进行越界检查的全局开关
2
+
3
+ /**
4
+ * 把错误的数据转正
5
+ * @private
6
+ * @example strip(0.09999999999999998)=0.1
7
+ */
8
+ function strip(num, precision = 15) {
9
+ return +parseFloat(Number(num).toPrecision(precision));
10
+ }
11
+
12
+ /**
13
+ * Return digits length of a number
14
+ * @private
15
+ * @param {*number} num Input number
16
+ */
17
+ function digitLength(num) {
18
+ // Get digit length of e
19
+ const eSplit = num.toString().split(/[eE]/);
20
+ const len = (eSplit[0].split('.')[1] || '').length - +(eSplit[1] || 0);
21
+ return len > 0 ? len : 0;
22
+ }
23
+
24
+ /**
25
+ * 把小数转成整数,如果是小数则放大成整数
26
+ * @private
27
+ * @param {*number} num 输入数
28
+ */
29
+ function float2Fixed(num) {
30
+ if (num.toString().indexOf('e') === -1) {
31
+ return Number(num.toString().replace('.', ''));
32
+ }
33
+ const dLen = digitLength(num);
34
+ return dLen > 0 ? strip(Number(num) * Math.pow(10, dLen)) : Number(num);
35
+ }
36
+
37
+ /**
38
+ * 检测数字是否越界,如果越界给出提示
39
+ * @private
40
+ * @param {*number} num 输入数
41
+ */
42
+ function checkBoundary(num) {
43
+ if (_boundaryCheckingState) {
44
+ if (num > Number.MAX_SAFE_INTEGER || num < Number.MIN_SAFE_INTEGER) {
45
+ console.warn(`${num} 超出了精度限制,结果可能不正确`);
46
+ }
47
+ }
48
+ }
49
+
50
+ /**
51
+ * 把递归操作扁平迭代化
52
+ * @param {number[]} arr 要操作的数字数组
53
+ * @param {function} operation 迭代操作
54
+ * @private
55
+ */
56
+ function iteratorOperation(arr, operation) {
57
+ const [num1, num2, ...others] = arr;
58
+ let res = operation(num1, num2);
59
+
60
+ others.forEach((num) => {
61
+ res = operation(res, num);
62
+ });
63
+
64
+ return res;
65
+ }
66
+
67
+ /**
68
+ * 高精度乘法
69
+ * @export
70
+ */
71
+ export function times(...nums) {
72
+ if (nums.length > 2) {
73
+ return iteratorOperation(nums, times);
74
+ }
75
+
76
+ const [num1, num2] = nums;
77
+ const num1Changed = float2Fixed(num1);
78
+ const num2Changed = float2Fixed(num2);
79
+ const baseNum = digitLength(num1) + digitLength(num2);
80
+ const leftValue = num1Changed * num2Changed;
81
+
82
+ checkBoundary(leftValue);
83
+
84
+ return leftValue / Math.pow(10, baseNum);
85
+ }
86
+
87
+ /**
88
+ * 高精度加法
89
+ * @export
90
+ */
91
+ export function plus(...nums) {
92
+ if (nums.length > 2) {
93
+ return iteratorOperation(nums, plus);
94
+ }
95
+
96
+ const [num1, num2] = nums;
97
+ // 取最大的小数位
98
+ const baseNum = Math.pow(10, Math.max(digitLength(num1), digitLength(num2)));
99
+ // 把小数都转为整数然后再计算
100
+ return (times(num1, baseNum) + times(num2, baseNum)) / baseNum;
101
+ }
102
+
103
+ /**
104
+ * 高精度减法
105
+ * @export
106
+ */
107
+ export function minus(...nums) {
108
+ if (nums.length > 2) {
109
+ return iteratorOperation(nums, minus);
110
+ }
111
+
112
+ const [num1, num2] = nums;
113
+ const baseNum = Math.pow(10, Math.max(digitLength(num1), digitLength(num2)));
114
+ return (times(num1, baseNum) - times(num2, baseNum)) / baseNum;
115
+ }
116
+
117
+ /**
118
+ * 高精度除法
119
+ * @export
120
+ */
121
+ export function divide(...nums) {
122
+ if (nums.length > 2) {
123
+ return iteratorOperation(nums, divide);
124
+ }
125
+
126
+ const [num1, num2] = nums;
127
+ const num1Changed = float2Fixed(num1);
128
+ const num2Changed = float2Fixed(num2);
129
+ checkBoundary(num1Changed);
130
+ checkBoundary(num2Changed);
131
+ // 重要,这里必须用strip进行修正
132
+ return times(num1Changed / num2Changed, strip(Math.pow(10, digitLength(num2) - digitLength(num1))));
133
+ }
134
+
135
+ /**
136
+ * 四舍五入
137
+ * @export
138
+ */
139
+ export function round(num, ratio) {
140
+ const base = Math.pow(10, ratio);
141
+ let result = divide(Math.round(Math.abs(times(num, base))), base);
142
+ if (num < 0 && result !== 0) {
143
+ result = times(result, -1);
144
+ }
145
+ // 位数不足则补0
146
+ return result;
147
+ }
148
+
149
+ /**
150
+ * 是否进行边界检查,默认开启
151
+ * @param flag 标记开关,true 为开启,false 为关闭,默认为 true
152
+ * @export
153
+ */
154
+ export function enableBoundaryChecking(flag = true) {
155
+ _boundaryCheckingState = flag;
156
+ }
157
+
158
+
159
+ export default {
160
+ times,
161
+ plus,
162
+ minus,
163
+ divide,
164
+ round,
165
+ enableBoundaryChecking,
166
+ };
167
+