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,62 @@
1
+ <template>
2
+ <view
3
+ class="u-line"
4
+ :style="[lineStyle]"
5
+ >
6
+
7
+ </view>
8
+ </template>
9
+
10
+ <script>
11
+ import props from './props.js';
12
+ /**
13
+ * line 线条
14
+ * @description 此组件一般用于显示一根线条,用于分隔内容块,有横向和竖向两种模式,且能设置0.5px线条,使用也很简单
15
+ * @tutorial https://www.uviewui.com/components/line.html
16
+ * @property {String} color 线条的颜色 ( 默认 '#d6d7d9' )
17
+ * @property {String | Number} length 长度,竖向时表现为高度,横向时表现为长度,可以为百分比,带px单位的值等 ( 默认 '100%' )
18
+ * @property {String} direction 线条的方向,row-横向,col-竖向 (默认 'row' )
19
+ * @property {Boolean} hairline 是否显示细线条 (默认 true )
20
+ * @property {String | Number} margin 线条与上下左右元素的间距,字符串形式,如"30px" (默认 0 )
21
+ * @property {Boolean} dashed 是否虚线,true-虚线,false-实线 (默认 false )
22
+ * @property {Object} customStyle 定义需要用到的外部样式
23
+ * @example <u-line color="red"></u-line>
24
+ */
25
+ export default {
26
+ name: 'u-line',
27
+ mixins: [uni.$u.mpMixin, uni.$u.mixin,props],
28
+ computed: {
29
+ lineStyle() {
30
+ const style = {}
31
+ style.margin = this.margin
32
+ // 如果是水平线条,边框高度为1px,再通过transform缩小一半,就是0.5px了
33
+ if (this.direction === 'row') {
34
+ // 此处采用兼容分开写,兼容nvue的写法
35
+ style.borderBottomWidth = '1px'
36
+ style.borderBottomStyle = this.dashed ? 'dashed' : 'solid'
37
+ style.width = uni.$u.addUnit(this.length)
38
+ if (this.hairline) style.transform = 'scaleY(0.5)'
39
+ } else {
40
+ // 如果是竖向线条,边框宽度为1px,再通过transform缩小一半,就是0.5px了
41
+ style.borderLeftWidth = '1px'
42
+ style.borderLeftStyle = this.dashed ? 'dashed' : 'solid'
43
+ style.height = uni.$u.addUnit(this.length)
44
+ if (this.hairline) style.transform = 'scaleX(0.5)'
45
+ }
46
+
47
+ style.borderColor = this.color
48
+ return uni.$u.deepMerge(style, uni.$u.addStyle(this.customStyle))
49
+ }
50
+ }
51
+ }
52
+ </script>
53
+
54
+ <style lang="scss" scoped>
55
+ @import "../../libs/css/components.scss";
56
+
57
+ .u-line {
58
+ /* #ifndef APP-NVUE */
59
+ vertical-align: middle;
60
+ /* #endif */
61
+ }
62
+ </style>
@@ -0,0 +1,28 @@
1
+ export default {
2
+ props: {
3
+ // 激活部分的颜色
4
+ activeColor: {
5
+ type: String,
6
+ default: uni.$u.props.lineProgress.activeColor
7
+ },
8
+ inactiveColor: {
9
+ type: String,
10
+ default: uni.$u.props.lineProgress.color
11
+ },
12
+ // 进度百分比,数值
13
+ percentage: {
14
+ type: [String, Number],
15
+ default: uni.$u.props.lineProgress.inactiveColor
16
+ },
17
+ // 是否在进度条内部显示百分比的值
18
+ showText: {
19
+ type: Boolean,
20
+ default: uni.$u.props.lineProgress.showText
21
+ },
22
+ // 进度条的高度,单位px
23
+ height: {
24
+ type: [String, Number],
25
+ default: uni.$u.props.lineProgress.height
26
+ }
27
+ }
28
+ }
@@ -0,0 +1,144 @@
1
+ <template>
2
+ <view
3
+ class="u-line-progress"
4
+ :style="[$u.addStyle(customStyle)]"
5
+ >
6
+ <view
7
+ class="u-line-progress__background"
8
+ ref="u-line-progress__background"
9
+ :style="[{
10
+ backgroundColor: inactiveColor,
11
+ height: $u.addUnit(height),
12
+ }]"
13
+ >
14
+ </view>
15
+ <view
16
+ class="u-line-progress__line"
17
+ :style="[progressStyle]"
18
+ >
19
+ <slot>
20
+ <text v-if="showText && percentage >= 10" class="u-line-progress__text">{{innserPercentage + '%'}}</text>
21
+ </slot>
22
+ </view>
23
+ </view>
24
+ </template>
25
+
26
+ <script>
27
+ import props from './props.js';
28
+ // #ifdef APP-NVUE
29
+ const dom = uni.requireNativePlugin('dom')
30
+ // #endif
31
+ /**
32
+ * lineProgress 线型进度条
33
+ * @description 展示操作或任务的当前进度,比如上传文件,是一个线形的进度条。
34
+ * @tutorial https://www.uviewui.com/components/lineProgress.html
35
+ * @property {String} activeColor 激活部分的颜色 ( 默认 '#19be6b' )
36
+ * @property {String} inactiveColor 背景色 ( 默认 '#ececec' )
37
+ * @property {String | Number} percentage 进度百分比,数值 ( 默认 0 )
38
+ * @property {Boolean} showText 是否在进度条内部显示百分比的值 ( 默认 true )
39
+ * @property {String | Number} height 进度条的高度,单位px ( 默认 12 )
40
+ *
41
+ * @example <u-line-progress :percent="70" :show-percent="true"></u-line-progress>
42
+ */
43
+ export default {
44
+ name: "u-line-progress",
45
+ mixins: [uni.$u.mpMixin, uni.$u.mixin,props],
46
+ data() {
47
+ return {
48
+ lineWidth: 0,
49
+ }
50
+ },
51
+ watch: {
52
+ percentage(n) {
53
+ this.resizeProgressWidth()
54
+ }
55
+ },
56
+ computed: {
57
+ progressStyle() {
58
+ let style = {}
59
+ style.width = this.lineWidth
60
+ style.backgroundColor = this.activeColor
61
+ style.height = uni.$u.addUnit(this.height)
62
+ return style
63
+ },
64
+ innserPercentage() {
65
+ // 控制范围在0-100之间
66
+ return uni.$u.range(0, 100, this.percentage)
67
+ }
68
+ },
69
+ mounted() {
70
+ this.init()
71
+ },
72
+ methods: {
73
+ init() {
74
+ uni.$u.sleep(20).then(() => {
75
+ this.resizeProgressWidth()
76
+ })
77
+ },
78
+ getProgressWidth() {
79
+ // #ifndef APP-NVUE
80
+ return this.$uGetRect('.u-line-progress__background')
81
+ // #endif
82
+
83
+ // #ifdef APP-NVUE
84
+ // 返回一个promise
85
+ return new Promise(resolve => {
86
+ dom.getComponentRect(this.$refs['u-line-progress__background'], (res) => {
87
+ resolve(res.size)
88
+ })
89
+ })
90
+ // #endif
91
+ },
92
+ resizeProgressWidth() {
93
+ this.getProgressWidth().then(size => {
94
+ const {
95
+ width
96
+ } = size
97
+ // 通过设置的percentage值,计算其所占总长度的百分比
98
+ this.lineWidth = width * this.innserPercentage / 100 + 'px'
99
+ })
100
+ }
101
+ }
102
+ }
103
+ </script>
104
+
105
+ <style lang="scss" scoped>
106
+ @import "../../libs/css/components.scss";
107
+
108
+ .u-line-progress {
109
+ align-items: stretch;
110
+ position: relative;
111
+ @include flex(row);
112
+ flex: 1;
113
+ overflow: hidden;
114
+ border-radius: 100px;
115
+
116
+ &__background {
117
+ background-color: #ececec;
118
+ border-radius: 100px;
119
+ flex: 1;
120
+ }
121
+
122
+ &__line {
123
+ position: absolute;
124
+ top: 0;
125
+ left: 0;
126
+ bottom: 0;
127
+ align-items: center;
128
+ @include flex(row);
129
+ color: #ffffff;
130
+ border-radius: 100px;
131
+ transition: width 0.5s ease;
132
+ justify-content: flex-end;
133
+ }
134
+
135
+ &__text {
136
+ font-size: 10px;
137
+ align-items: center;
138
+ text-align: right;
139
+ color: #FFFFFF;
140
+ margin-right: 5px;
141
+ transform: scale(0.9);
142
+ }
143
+ }
144
+ </style>
@@ -0,0 +1,39 @@
1
+ export default {
2
+ props: {
3
+ // 文字颜色
4
+ color: {
5
+ type: String,
6
+ default: uni.$u.props.link.color
7
+ },
8
+ // 字体大小,单位px
9
+ fontSize: {
10
+ type: [String, Number],
11
+ default: uni.$u.props.link.fontSize
12
+ },
13
+ // 是否显示下划线
14
+ underLine: {
15
+ type: Boolean,
16
+ default: uni.$u.props.link.underLine
17
+ },
18
+ // 要跳转的链接
19
+ href: {
20
+ type: String,
21
+ default: uni.$u.props.link.href
22
+ },
23
+ // 小程序中复制到粘贴板的提示语
24
+ mpTips: {
25
+ type: String,
26
+ default: uni.$u.props.link.mpTips
27
+ },
28
+ // 下划线颜色
29
+ lineColor: {
30
+ type: String,
31
+ default: uni.$u.props.link.lineColor
32
+ },
33
+ // 超链接的问题,不使用slot形式传入,是因为nvue下无法修改颜色
34
+ text: {
35
+ type: String,
36
+ default: uni.$u.props.link.text
37
+ }
38
+ }
39
+ }
@@ -0,0 +1,83 @@
1
+ <template>
2
+ <text
3
+ class="u-link"
4
+ @tap.stop="openLink"
5
+ :style="[linkStyle, $u.addStyle(customStyle)]"
6
+ >{{text}}</text>
7
+ </template>
8
+
9
+ <script>
10
+ import props from './props.js';
11
+
12
+ /**
13
+ * link 超链接
14
+ * @description 该组件为超链接组件,在不同平台有不同表现形式:在APP平台会通过plus环境打开内置浏览器,在小程序中把链接复制到粘贴板,同时提示信息,在H5中通过window.open打开链接。
15
+ * @tutorial https://www.uviewui.com/components/link.html
16
+ * @property {String} color 文字颜色 (默认 color['u-primary'] )
17
+ * @property {String | Number} fontSize 字体大小,单位px (默认 15 )
18
+ * @property {Boolean} underLine 是否显示下划线 (默认 false )
19
+ * @property {String} href 跳转的链接,要带上http(s)
20
+ * @property {String} mpTips 各个小程序平台把链接复制到粘贴板后的提示语(默认“链接已复制,请在浏览器打开”)
21
+ * @property {String} lineColor 下划线颜色,默认同color参数颜色
22
+ * @property {String} text 超链接的问题,不使用slot形式传入,是因为nvue下无法修改颜色
23
+ * @property {Object} customStyle 定义需要用到的外部样式
24
+ *
25
+ * @example <u-link href="http://www.uviewui.com">蜀道难,难于上青天</u-link>
26
+ */
27
+ export default {
28
+ name: "u-link",
29
+ mixins: [uni.$u.mpMixin, uni.$u.mixin,props],
30
+ computed: {
31
+ linkStyle() {
32
+ const style = {
33
+ color: this.color,
34
+ fontSize: uni.$u.addUnit(this.fontSize),
35
+ // line-height设置为比字体大小多2px
36
+ lineHeight: uni.$u.addUnit(uni.$u.getPx(this.fontSize) + 2),
37
+ textDecoration: this.underLine ? 'underline' : 'none'
38
+ }
39
+ // if (this.underLine) {
40
+ // style.borderBottomColor = this.lineColor || this.color
41
+ // style.borderBottomWidth = '1px'
42
+ // }
43
+ return style
44
+ }
45
+ },
46
+ methods: {
47
+ openLink() {
48
+ // #ifdef APP-PLUS
49
+ plus.runtime.openURL(this.href)
50
+ // #endif
51
+ // #ifdef H5
52
+ window.open(this.href)
53
+ // #endif
54
+ // #ifdef MP
55
+ uni.setClipboardData({
56
+ data: this.href,
57
+ success: () => {
58
+ uni.hideToast();
59
+ this.$nextTick(() => {
60
+ uni.$u.toast(this.mpTips);
61
+ })
62
+ }
63
+ });
64
+ // #endif
65
+ this.$emit('click')
66
+ }
67
+ }
68
+ }
69
+ </script>
70
+
71
+ <style lang="scss" scoped>
72
+ @import "../../libs/css/components.scss";
73
+ $u-link-line-height:1 !default;
74
+
75
+ .u-link {
76
+ /* #ifndef APP-NVUE */
77
+ line-height: $u-link-line-height;
78
+ /* #endif */
79
+ @include flex;
80
+ flex-wrap: wrap;
81
+ flex: 1;
82
+ }
83
+ </style>
@@ -0,0 +1,76 @@
1
+ export default {
2
+ props: {
3
+ // 控制是否出现滚动条,仅nvue有效
4
+ showScrollbar: {
5
+ type: Boolean,
6
+ default: uni.$u.props.list.showScrollbar
7
+ },
8
+ // 距底部多少时触发scrolltolower事件
9
+ lowerThreshold: {
10
+ type: [String, Number],
11
+ default: uni.$u.props.list.lowerThreshold
12
+ },
13
+ // 距顶部多少时触发scrolltoupper事件,非nvue有效
14
+ upperThreshold: {
15
+ type: [String, Number],
16
+ default: uni.$u.props.list.upperThreshold
17
+ },
18
+ // 设置竖向滚动条位置
19
+ scrollTop: {
20
+ type: [String, Number],
21
+ default: uni.$u.props.list.scrollTop
22
+ },
23
+ // 控制 onscroll 事件触发的频率,仅nvue有效
24
+ offsetAccuracy: {
25
+ type: [String, Number],
26
+ default: uni.$u.props.list.offsetAccuracy
27
+ },
28
+ // 启用 flexbox 布局。开启后,当前节点声明了display: flex就会成为flex container,并作用于其孩子节点,仅微信小程序有效
29
+ enableFlex: {
30
+ type: Boolean,
31
+ default: uni.$u.props.list.enableFlex
32
+ },
33
+ // 是否按分页模式显示List,默认值false
34
+ pagingEnabled: {
35
+ type: Boolean,
36
+ default: uni.$u.props.list.pagingEnabled
37
+ },
38
+ // 是否允许List滚动
39
+ scrollable: {
40
+ type: Boolean,
41
+ default: uni.$u.props.list.scrollable
42
+ },
43
+ // 值应为某子元素id(id不能以数字开头)
44
+ scrollIntoView: {
45
+ type: String,
46
+ default: uni.$u.props.list.scrollIntoView
47
+ },
48
+ // 在设置滚动条位置时使用动画过渡
49
+ scrollWithAnimation: {
50
+ type: Boolean,
51
+ default: uni.$u.props.list.scrollWithAnimation
52
+ },
53
+ // iOS点击顶部状态栏、安卓双击标题栏时,滚动条返回顶部,只对微信小程序有效
54
+ enableBackToTop: {
55
+ type: Boolean,
56
+ default: uni.$u.props.list.enableBackToTop
57
+ },
58
+ // 列表的高度
59
+ height: {
60
+ type: [String, Number],
61
+ default: uni.$u.props.list.height
62
+ },
63
+ // 列表宽度
64
+ width: {
65
+ type: [String, Number],
66
+ default: uni.$u.props.list.width
67
+ },
68
+ // 列表前后预渲染的屏数,1代表一个屏幕的高度,1.5代表1个半屏幕高度
69
+ preLoadScreen: {
70
+ type: [String, Number],
71
+ default: uni.$u.props.list.preLoadScreen
72
+ }
73
+ // vue下,是否开启虚拟列表
74
+
75
+ }
76
+ }
@@ -0,0 +1,157 @@
1
+ <template>
2
+ <!-- #ifdef APP-NVUE -->
3
+ <list
4
+ class="u-list"
5
+ :enableBackToTop="enableBackToTop"
6
+ :loadmoreoffset="lowerThreshold"
7
+ :showScrollbar="showScrollbar"
8
+ :style="[listStyle]"
9
+ :offset-accuracy="Number(offsetAccuracy)"
10
+ @scroll="onScroll"
11
+ @loadmore="scrolltolower"
12
+ >
13
+ <slot />
14
+ </list>
15
+ <!-- #endif -->
16
+ <!-- #ifndef APP-NVUE -->
17
+ <scroll-view
18
+ class="u-list"
19
+ :scroll-into-view="scrollIntoView"
20
+ :style="[listStyle]"
21
+ scroll-y
22
+ :scroll-top="Number(scrollTop)"
23
+ :lower-threshold="Number(lowerThreshold)"
24
+ :upper-threshold="Number(upperThreshold)"
25
+ :show-scrollbar="showScrollbar"
26
+ :enable-back-to-top="enableBackToTop"
27
+ :scroll-with-animation="scrollWithAnimation"
28
+ @scroll="onScroll"
29
+ @scrolltolower="scrolltolower"
30
+ @scrolltoupper="scrolltoupper"
31
+ >
32
+ <view>
33
+ <slot />
34
+ </view>
35
+ </scroll-view>
36
+ <!-- #endif -->
37
+ </template>
38
+
39
+ <script>
40
+ import props from './props.js';
41
+ // #ifdef APP-NVUE
42
+ const dom = uni.requireNativePlugin('dom')
43
+ // #endif
44
+ /**
45
+ * List 列表
46
+ * @description 该组件为高性能列表组件
47
+ * @tutorial https://www.uviewui.com/components/list.html
48
+ * @property {Boolean} showScrollbar 控制是否出现滚动条,仅nvue有效 (默认 false )
49
+ * @property {String | Number} lowerThreshold 距底部多少时触发scrolltolower事件 (默认 50 )
50
+ * @property {String | Number} upperThreshold 距顶部多少时触发scrolltoupper事件,非nvue有效 (默认 0 )
51
+ * @property {String | Number} scrollTop 设置竖向滚动条位置(默认 0 )
52
+ * @property {String | Number} offsetAccuracy 控制 onscroll 事件触发的频率,仅nvue有效(默认 10 )
53
+ * @property {Boolean} enableFlex 启用 flexbox 布局。开启后,当前节点声明了display: flex就会成为flex container,并作用于其孩子节点,仅微信小程序有效(默认 false )
54
+ * @property {Boolean} pagingEnabled 是否按分页模式显示List,(默认 false )
55
+ * @property {Boolean} scrollable 是否允许List滚动(默认 true )
56
+ * @property {String} scrollIntoView 值应为某子元素id(id不能以数字开头)
57
+ * @property {Boolean} scrollWithAnimation 在设置滚动条位置时使用动画过渡 (默认 false )
58
+ * @property {Boolean} enableBackToTop iOS点击顶部状态栏、安卓双击标题栏时,滚动条返回顶部,只对微信小程序有效 (默认 false )
59
+ * @property {String | Number} height 列表的高度 (默认 0 )
60
+ * @property {String | Number} width 列表宽度 (默认 0 )
61
+ * @property {String | Number} preLoadScreen 列表前后预渲染的屏数,1代表一个屏幕的高度,1.5代表1个半屏幕高度 (默认 1 )
62
+ * @property {Object} customStyle 定义需要用到的外部样式
63
+ *
64
+ * @example <u-list @scrolltolower="scrolltolower"></u-list>
65
+ */
66
+ export default {
67
+ name: 'u-list',
68
+ mixins: [uni.$u.mpMixin, uni.$u.mixin,props],
69
+ watch: {
70
+ scrollIntoView(n) {
71
+ this.scrollIntoViewById(n)
72
+ }
73
+ },
74
+ data() {
75
+ return {
76
+ // 记录内部滚动的距离
77
+ innerScrollTop: 0,
78
+ // vue下,scroll-view在上拉加载时的偏移值
79
+ offset: 0,
80
+ sys: uni.$u.sys()
81
+ }
82
+ },
83
+ computed: {
84
+ listStyle() {
85
+ const style = {},
86
+ addUnit = uni.$u.addUnit
87
+ if (this.width != 0) style.width = addUnit(this.width)
88
+ if (this.height != 0) style.height = addUnit(this.height)
89
+ // 如果没有定义列表高度,则默认使用屏幕高度
90
+ if (!style.height) style.height = addUnit(this.sys.windowHeight, 'px')
91
+ return uni.$u.deepMerge(style, uni.$u.addStyle(this.customStyle))
92
+ }
93
+ },
94
+ provide() {
95
+ return {
96
+ uList: this
97
+ }
98
+ },
99
+ created() {
100
+ this.refs = []
101
+ this.children = []
102
+ this.anchors = []
103
+ },
104
+ mounted() {},
105
+ methods: {
106
+ updateOffsetFromChild(top) {
107
+ this.offset = top
108
+ },
109
+ onScroll(e) {
110
+ let scrollTop = 0
111
+ // #ifdef APP-NVUE
112
+ scrollTop = e.contentOffset.y
113
+ // #endif
114
+ // #ifndef APP-NVUE
115
+ scrollTop = e.detail.scrollTop
116
+ // #endif
117
+ this.innerScrollTop = scrollTop
118
+ this.$emit('scroll', Math.abs(scrollTop))
119
+ },
120
+ scrollIntoViewById(id) {
121
+ // #ifdef APP-NVUE
122
+ // 根据id参数,找到所有u-list-item中匹配的节点,再通过dom模块滚动到对应的位置
123
+ const item = this.refs.find(item => item.$refs[id] ? true : false)
124
+ dom.scrollToElement(item.$refs[id], {
125
+ // 是否需要滚动动画
126
+ animated: this.scrollWithAnimation
127
+ })
128
+ // #endif
129
+ },
130
+ // 滚动到底部触发事件
131
+ scrolltolower(e) {
132
+ uni.$u.sleep(30).then(() => {
133
+ this.$emit('scrolltolower')
134
+ })
135
+ },
136
+ // #ifndef APP-NVUE
137
+ // 滚动到底部时触发,非nvue有效
138
+ scrolltoupper(e) {
139
+ uni.$u.sleep(30).then(() => {
140
+ this.$emit('scrolltoupper')
141
+ // 这一句很重要,能绝对保证在性功能障碍的webview,滚动条到顶时,取消偏移值,让页面置顶
142
+ this.offset = 0
143
+ })
144
+ }
145
+ // #endif
146
+ },
147
+ }
148
+ </script>
149
+
150
+ <style lang="scss" scoped>
151
+ @import "../../libs/css/components.scss";
152
+
153
+ .u-list {
154
+ @include flex(column);
155
+
156
+ }
157
+ </style>
@@ -0,0 +1,9 @@
1
+ export default {
2
+ props: {
3
+ // 用于滚动到指定item
4
+ anchor: {
5
+ type: [String, Number],
6
+ default: uni.$u.props.listItem.anchor
7
+ }
8
+ }
9
+ }