@10yun/cv-mobile-ui 0.5.29 → 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 (260) hide show
  1. package/package.json +1 -1
  2. package/plugins/luch-request/adapters/index.js +131 -0
  3. package/plugins/luch-request/core/InterceptorManager.js +50 -0
  4. package/plugins/luch-request/core/Request.js +199 -0
  5. package/plugins/luch-request/core/buildFullPath.js +20 -0
  6. package/plugins/luch-request/core/defaults.js +32 -0
  7. package/plugins/luch-request/core/dispatchRequest.js +5 -0
  8. package/plugins/luch-request/core/mergeConfig.js +125 -0
  9. package/plugins/luch-request/core/settle.js +16 -0
  10. package/plugins/luch-request/helpers/buildURL.js +71 -0
  11. package/plugins/luch-request/helpers/combineURLs.js +12 -0
  12. package/plugins/luch-request/helpers/isAbsoluteURL.js +14 -0
  13. package/plugins/luch-request/index.d.ts +197 -0
  14. package/plugins/luch-request/index.js +2 -0
  15. package/plugins/luch-request/readme.md +3 -0
  16. package/plugins/luch-request/utils/clone.js +264 -0
  17. package/plugins/luch-request/utils.js +131 -0
  18. package/plugins/request.js +2 -2
  19. package/ui-cv/components/cv-form-item/cv-form-item.vue +1 -1
  20. package/ui-fireui/fui-actionsheet/fui-actionsheet.vue +202 -0
  21. package/ui-fireui/fui-alert/fui-alert.vue +141 -0
  22. package/ui-fireui/fui-badge/fui-badge.vue +158 -0
  23. package/ui-fireui/fui-bottom-navigation/fui-bottom-navigation.vue +390 -0
  24. package/ui-fireui/fui-bottom-popup/fui-bottom-popup.vue +100 -0
  25. package/ui-fireui/fui-bubble-popup/fui-bubble-popup.vue +236 -0
  26. package/ui-fireui/fui-button/fui-button.vue +424 -0
  27. package/ui-fireui/fui-calendar/fui-calendar.js +915 -0
  28. package/ui-fireui/fui-calendar/fui-calendar.vue +868 -0
  29. package/ui-fireui/fui-card/fui-card.vue +231 -0
  30. package/ui-fireui/fui-cascade-selection/fui-cascade-selection.vue +538 -0
  31. package/ui-fireui/fui-circular-progress/fui-circular-progress.vue +261 -0
  32. package/ui-fireui/fui-collapse/fui-collapse.vue +179 -0
  33. package/ui-fireui/fui-countdown/fui-countdown.vue +301 -0
  34. package/ui-fireui/fui-datetime/fui-datetime.vue +570 -0
  35. package/ui-fireui/fui-divider/fui-divider.vue +118 -0
  36. package/ui-fireui/fui-drawer/fui-drawer.vue +103 -0
  37. package/ui-fireui/fui-dropdown-list/fui-dropdown-list.vue +70 -0
  38. package/ui-fireui/fui-fab/fui-fab.vue +284 -0
  39. package/ui-fireui/fui-footer/fui-footer.vue +131 -0
  40. package/ui-fireui/fui-grid/fui-grid.vue +42 -0
  41. package/ui-fireui/fui-grid-item/fui-grid-item.vue +142 -0
  42. package/ui-fireui/fui-icon/fui-icon.vue +820 -0
  43. package/ui-fireui/fui-image-cropper/fui-image-cropper.vue +1058 -0
  44. package/ui-fireui/fui-image-group/fui-image-group.vue +149 -0
  45. package/ui-fireui/fui-keyboard/fui-keyboard.vue +254 -0
  46. package/ui-fireui/fui-keyboard-input/fui-keyboard-input.vue +78 -0
  47. package/ui-fireui/fui-list-cell/fui-list-cell.vue +178 -0
  48. package/ui-fireui/fui-list-view/fui-list-view.vue +87 -0
  49. package/ui-fireui/fui-loading/fui-loading.vue +78 -0
  50. package/ui-fireui/fui-loadmore/fui-loadmore.vue +163 -0
  51. package/ui-fireui/fui-modal/fui-modal.vue +392 -0
  52. package/ui-fireui/fui-navigation-bar/fui-navigation-bar.vue +180 -0
  53. package/ui-fireui/fui-no-data/fui-no-data.vue +116 -0
  54. package/ui-fireui/fui-nomore/fui-nomore.vue +116 -0
  55. package/ui-fireui/fui-numberbox/fui-numberbox.vue +234 -0
  56. package/ui-fireui/fui-numberbox-border/fui-numberbox-border.vue +232 -0
  57. package/ui-fireui/fui-picture-cropper/fui-picture-cropper.vue +682 -0
  58. package/ui-fireui/fui-picture-cropper/fui-picture-cropper.wxs +560 -0
  59. package/ui-fireui/fui-rate/fui-rate.vue +167 -0
  60. package/ui-fireui/fui-round-progress/fui-round-progress.vue +306 -0
  61. package/ui-fireui/fui-scroll-top/fui-scroll-top.vue +189 -0
  62. package/ui-fireui/fui-sharemodel/fui-sharemodel.vue +181 -0
  63. package/ui-fireui/fui-skeleton/fui-skeleton.vue +248 -0
  64. package/ui-fireui/fui-steps/fui-steps.vue +214 -0
  65. package/ui-fireui/fui-sticky/fui-sticky.vue +155 -0
  66. package/ui-fireui/fui-sticky-wxs/fui-sticky-wxs.vue +133 -0
  67. package/ui-fireui/fui-sticky-wxs/fui-sticky.wxs +44 -0
  68. package/ui-fireui/fui-swipe-action/fui-swipe-action.vue +301 -0
  69. package/ui-fireui/fui-tabbar/fui-tabbar.vue +283 -0
  70. package/ui-fireui/fui-tabs/fui-tabs.vue +284 -0
  71. package/ui-fireui/fui-tabs2/fui-tabs2.vue +284 -0
  72. package/ui-fireui/fui-tag/fui-tag.vue +374 -0
  73. package/ui-fireui/fui-time-axis/fui-time-axis.vue +36 -0
  74. package/ui-fireui/fui-timeaxis-item/fui-timeaxis-item.vue +48 -0
  75. package/ui-fireui/fui-tips/fui-tips.vue +161 -0
  76. package/ui-fireui/fui-toast/fui-toast.vue +117 -0
  77. package/ui-fireui/fui-top-dropdown/fui-top-dropdown.vue +129 -0
  78. package/ui-fireui/fui-upload/fui-upload.vue +446 -0
  79. package/ui-fireui/fui-uploadsamll/fui-uploadsamll.vue +472 -0
  80. package/uview-plus/README.md +1 -1
  81. package/uview-plus/changelog-wu-tool.md +21 -0
  82. package/uview-plus/changelog-wu.md +91 -0
  83. package/uview-plus/components/u-action-sheet/_doc/changelog.md +12 -0
  84. package/uview-plus/components/u-action-sheet/_doc/package.json +92 -0
  85. package/uview-plus/components/u-action-sheet/_doc/readme.md +16 -0
  86. package/uview-plus/components/u-app-update/_doc/changelog.md +26 -0
  87. package/uview-plus/components/u-app-update/_doc/package.json +89 -0
  88. package/uview-plus/components/u-app-update/_doc/readme.md +16 -0
  89. package/uview-plus/components/u-app-update/config.js +120 -0
  90. package/uview-plus/components/u-app-update/img/act.png +0 -0
  91. package/uview-plus/components/u-app-update/img/appUploadAlertBoxBg.png +0 -0
  92. package/uview-plus/components/u-app-update/img/close.png +0 -0
  93. package/uview-plus/components/u-app-update/js-sdk/checkVersion.js +81 -0
  94. package/uview-plus/components/u-app-update/js-sdk/silentlyAppUpdate.js +41 -0
  95. package/uview-plus/components/u-app-update/pages/index.vue +8 -0
  96. package/uview-plus/components/u-app-update/u-app-update.vue +583 -0
  97. package/uview-plus/components/u-button-wu/_doc/changelog.md +6 -0
  98. package/uview-plus/components/u-button-wu/_doc/package.json +89 -0
  99. package/uview-plus/components/u-button-wu/_doc/readme.md +16 -0
  100. package/uview-plus/components/u-button-wu/u-button-wu.vue +522 -0
  101. package/uview-plus/components/u-button-wu/vue.scss +81 -0
  102. package/uview-plus/components/u-calendar-wu/_doc/changelog.md +145 -0
  103. package/uview-plus/components/u-calendar-wu/_doc/package.json +90 -0
  104. package/uview-plus/components/u-calendar-wu/_doc/readme.md +16 -0
  105. package/uview-plus/components/u-calendar-wu/calendar.js +664 -0
  106. package/uview-plus/components/u-calendar-wu/i18n/en.json +14 -0
  107. package/uview-plus/components/u-calendar-wu/i18n/index.js +8 -0
  108. package/uview-plus/components/u-calendar-wu/i18n/zh-Hans.json +14 -0
  109. package/uview-plus/components/u-calendar-wu/i18n/zh-Hant.json +14 -0
  110. package/uview-plus/components/u-calendar-wu/props.js +166 -0
  111. package/uview-plus/components/u-calendar-wu/style.css +196 -0
  112. package/uview-plus/components/u-calendar-wu/u-calendar-wu.vue +921 -0
  113. package/uview-plus/components/u-calendar-wu/util.js +552 -0
  114. package/uview-plus/components/u-calendar-wu/wu-calendar-block/props.js +73 -0
  115. package/uview-plus/components/u-calendar-wu/wu-calendar-block/wu-calendar-block.vue +122 -0
  116. package/uview-plus/components/u-calendar-wu/wu-calendar-item/props.js +55 -0
  117. package/uview-plus/components/u-calendar-wu/wu-calendar-item/wu-calendar-item.vue +293 -0
  118. package/uview-plus/components/u-cell/_doc/changelog.md +6 -0
  119. package/uview-plus/components/u-cell/_doc/package.json +89 -0
  120. package/uview-plus/components/u-cell/_doc/readme.md +25 -0
  121. package/uview-plus/components/u-checkbox/_doc/changelog.md +8 -0
  122. package/uview-plus/components/u-checkbox/_doc/package.json +88 -0
  123. package/uview-plus/components/u-checkbox/_doc/readme.md +25 -0
  124. package/uview-plus/components/u-code/_doc/changelog.md +6 -0
  125. package/uview-plus/components/u-code/_doc/package.json +86 -0
  126. package/uview-plus/components/u-code/_doc/readme.md +16 -0
  127. package/uview-plus/components/u-drag-sort/_doc/changelog.md +0 -0
  128. package/uview-plus/components/u-drag-sort/_doc/package.json +85 -0
  129. package/uview-plus/components/u-drag-sort/_doc/readme.md +16 -0
  130. package/uview-plus/components/u-drag-sort/u-drag-sort.vue +3 -0
  131. package/uview-plus/components/u-empty/u-empty.vue +27 -1
  132. package/uview-plus/components/u-gap/_doc/changelog.md +4 -0
  133. package/uview-plus/components/u-gap/_doc/package.json +86 -0
  134. package/uview-plus/components/u-gap/_doc/readme.md +22 -0
  135. package/uview-plus/components/u-icon/_doc/changelog.md +10 -0
  136. package/uview-plus/components/u-icon/_doc/package.json +85 -0
  137. package/uview-plus/components/u-icon/_doc/readme.md +10 -0
  138. package/uview-plus/components/u-icon/icon.js +23 -25
  139. package/uview-plus/components/u-icon/icons.js +213 -213
  140. package/uview-plus/components/u-icon/style.css +3 -3
  141. package/uview-plus/components/u-icon/u-icon2.vue +149 -0
  142. package/uview-plus/components/u-image-wu/_doc/changelog.md +21 -0
  143. package/uview-plus/components/u-image-wu/_doc/package.json +88 -0
  144. package/uview-plus/components/u-image-wu/_doc/readme.md +11 -0
  145. package/uview-plus/components/u-image-wu/props.js +94 -0
  146. package/uview-plus/components/u-image-wu/u-image-wu.vue +243 -0
  147. package/uview-plus/components/u-input/_doc/changelog.md +6 -0
  148. package/uview-plus/components/u-input/_doc/package.json +88 -0
  149. package/uview-plus/components/u-input/_doc/readme.md +16 -0
  150. package/uview-plus/components/u-line/_doc/changelog.md +8 -0
  151. package/uview-plus/components/u-line/_doc/package.json +86 -0
  152. package/uview-plus/components/u-line/_doc/readme.md +16 -0
  153. package/uview-plus/components/u-link/_doc/changelog.md +8 -0
  154. package/uview-plus/components/u-link/_doc/package.json +86 -0
  155. package/uview-plus/components/u-link/_doc/readme.md +20 -0
  156. package/uview-plus/components/u-loading-icon/_doc/changelog.md +12 -0
  157. package/uview-plus/components/u-loading-icon/_doc/package.json +86 -0
  158. package/uview-plus/components/u-loading-icon/_doc/readme.md +16 -0
  159. package/uview-plus/components/u-loading-icon/props.js +1 -1
  160. package/uview-plus/components/u-navbar/_doc/changelog.md +6 -0
  161. package/uview-plus/components/u-navbar/_doc/package.json +89 -0
  162. package/uview-plus/components/u-navbar/_doc/readme.md +16 -0
  163. package/uview-plus/components/u-navbar-wu/props.js +102 -0
  164. package/uview-plus/components/u-navbar-wu/u-navbar-wu.vue +196 -0
  165. package/uview-plus/components/u-number-box/_doc/changelog.md +19 -0
  166. package/uview-plus/components/u-number-box/_doc/package.json +88 -0
  167. package/uview-plus/components/u-number-box/_doc/readme.md +16 -0
  168. package/uview-plus/components/u-overlay/_doc/changelog.md +4 -0
  169. package/uview-plus/components/u-overlay/_doc/package.json +88 -0
  170. package/uview-plus/components/u-overlay/_doc/readme.md +16 -0
  171. package/uview-plus/components/u-popup/_doc/changelog.md +4 -0
  172. package/uview-plus/components/u-popup/_doc/package.json +92 -0
  173. package/uview-plus/components/u-popup/_doc/readme.md +16 -0
  174. package/uview-plus/components/u-popup-wu/keypress.js +45 -0
  175. package/uview-plus/components/u-popup-wu/u-popup-wu.vue +519 -0
  176. package/uview-plus/components/u-radio/_doc/changelog.md +6 -0
  177. package/uview-plus/components/u-radio/_doc/package.json +88 -0
  178. package/uview-plus/components/u-radio/_doc/readme.md +25 -0
  179. package/uview-plus/components/u-row/_doc/changelog.md +8 -0
  180. package/uview-plus/components/u-row/_doc/package.json +86 -0
  181. package/uview-plus/components/u-row/_doc/readme.md +16 -0
  182. package/uview-plus/components/u-safe-bottom/_doc/changelog.md +6 -0
  183. package/uview-plus/components/u-safe-bottom/_doc/package.json +86 -0
  184. package/uview-plus/components/u-safe-bottom/_doc/readme.md +16 -0
  185. package/uview-plus/components/u-sku-wu/_doc/changelog.md +27 -0
  186. package/uview-plus/components/u-sku-wu/_doc/package.json +93 -0
  187. package/uview-plus/components/u-sku-wu/_doc/readme.md +16 -0
  188. package/uview-plus/components/u-sku-wu/props.js +86 -0
  189. package/uview-plus/components/u-sku-wu/style.css +271 -0
  190. package/uview-plus/components/u-sku-wu/u-sku-wu.vue +864 -0
  191. package/uview-plus/components/u-status-bar/_doc/changelog.md +4 -0
  192. package/uview-plus/components/u-status-bar/_doc/package.json +86 -0
  193. package/uview-plus/components/u-status-bar/_doc/readme.md +16 -0
  194. package/uview-plus/components/u-text/_doc/changelog.md +10 -0
  195. package/uview-plus/components/u-text/_doc/package.json +89 -0
  196. package/uview-plus/components/u-text/_doc/readme.md +20 -0
  197. package/uview-plus/components/u-textarea/_doc/changelog.md +6 -0
  198. package/uview-plus/components/u-textarea/_doc/package.json +86 -0
  199. package/uview-plus/components/u-textarea/_doc/readme.md +25 -0
  200. package/uview-plus/components/u-transition/_doc/changelog.md +14 -0
  201. package/uview-plus/components/u-transition/_doc/package.json +86 -0
  202. package/uview-plus/components/u-transition/_doc/readme.md +16 -0
  203. package/uview-plus/components/u-transition-wu/createAnimation.js +148 -0
  204. package/uview-plus/components/u-transition-wu/props.js +32 -0
  205. package/uview-plus/components/u-transition-wu/u-transition.vue +300 -0
  206. package/uview-plus/components/u-verification-code/u-verification-code.vue +161 -0
  207. package/uview-plus/index.js +107 -94
  208. package/uview-plus/libs/config/config.js +46 -48
  209. package/uview-plus/libs/css/color.scss +32 -311
  210. package/uview-plus/libs/css/components-wu.scss +30 -0
  211. package/uview-plus/libs/css/vue.scss +10 -10
  212. package/uview-plus/libs/function/calc.js +61 -55
  213. package/uview-plus/libs/function/cc.js +66 -0
  214. package/uview-plus/libs/function/color/color-convert/CHANGELOG.md +54 -0
  215. package/uview-plus/libs/function/color/color-convert/LICENSE +21 -0
  216. package/uview-plus/libs/function/color/color-convert/README.md +68 -0
  217. package/uview-plus/libs/function/color/color-convert/conversions.js +839 -0
  218. package/uview-plus/libs/function/color/color-convert/index.js +81 -0
  219. package/uview-plus/libs/function/color/color-convert/package.json +48 -0
  220. package/uview-plus/libs/function/color/color-convert/route.js +97 -0
  221. package/uview-plus/libs/function/color/color-name/LICENSE +8 -0
  222. package/uview-plus/libs/function/color/color-name/README.md +11 -0
  223. package/uview-plus/libs/function/color/color-name/index.js +152 -0
  224. package/uview-plus/libs/function/color/color-name/package.json +28 -0
  225. package/uview-plus/libs/function/color/color-string/LICENSE +21 -0
  226. package/uview-plus/libs/function/color/color-string/README.md +62 -0
  227. package/uview-plus/libs/function/color/color-string/index.js +244 -0
  228. package/uview-plus/libs/function/color/color-string/package.json +39 -0
  229. package/uview-plus/libs/function/color/color.js +496 -0
  230. package/uview-plus/libs/function/color/index.js +158 -0
  231. package/uview-plus/libs/function/color/is-arrayish/LICENSE +21 -0
  232. package/uview-plus/libs/function/color/is-arrayish/README.md +16 -0
  233. package/uview-plus/libs/function/color/is-arrayish/index.js +9 -0
  234. package/uview-plus/libs/function/color/is-arrayish/package.json +45 -0
  235. package/uview-plus/libs/function/color/is-arrayish/yarn-error.log +1443 -0
  236. package/uview-plus/libs/function/color/simple-swizzle/LICENSE +21 -0
  237. package/uview-plus/libs/function/color/simple-swizzle/README.md +39 -0
  238. package/uview-plus/libs/function/color/simple-swizzle/index.js +29 -0
  239. package/uview-plus/libs/function/color/simple-swizzle/package.json +36 -0
  240. package/uview-plus/libs/function/colorGradient.js +108 -106
  241. package/uview-plus/libs/function/debounce.js +17 -17
  242. package/uview-plus/libs/function/digit.js +1 -3
  243. package/uview-plus/libs/function/http.js +3 -3
  244. package/uview-plus/libs/function/index-wu.js +231 -0
  245. package/uview-plus/libs/function/index.js +579 -566
  246. package/uview-plus/libs/function/platform.js +18 -18
  247. package/uview-plus/libs/function/test.js +135 -137
  248. package/uview-plus/libs/function/throttle.js +17 -17
  249. package/uview-plus/libs/luch-request/core/Request.js +199 -199
  250. package/uview-plus/libs/mixin/mpMixin.js +1 -0
  251. package/uview-plus/libs/mixin/openType.js +33 -0
  252. package/uview-plus/libs/util/async-validator.js +1343 -1343
  253. package/uview-plus/libs/util/dayjs.js +404 -0
  254. package/uview-plus/libs/util/route.js +101 -105
  255. package/uview-plus/package-wu-tool.json +84 -0
  256. package/uview-plus/package-wu.json +112 -0
  257. package/uview-plus/package.json +106 -95
  258. package/uview-plus/readme-wu.md +148 -0
  259. package/uview-ui/index.js +51 -52
  260. package/plugins/uni-upgrade.js +0 -294
@@ -0,0 +1,390 @@
1
+ <template>
2
+ <view @touchmove.stop.prevent="stop">
3
+ <view class="fui-bottom-navigation" :class="{ 'fui-navigation-fixed': isFixed, 'fui-remove-splitLine': unlined }">
4
+ <view
5
+ class="fui-navigation-item"
6
+ :class="{ 'fui-item-after_height': splitLineScale, 'fui-last-item': index == itemList.length - 1 }"
7
+ :style="{ backgroundColor: isDarkMode ? '#202020' : backgroundColor }"
8
+ v-for="(item, index) in itemList"
9
+ :key="index"
10
+ >
11
+ <view class="fui-item-inner" @tap="menuClick(index, item.parameter, item.type)">
12
+ <image
13
+ :src="current | getIcon(index, item)"
14
+ class="fui-navigation-img"
15
+ v-if="item.iconPath || (current == index && item.selectedIconPath && item.type == 1)"
16
+ ></image>
17
+ <text
18
+ class="fui-navigation-text"
19
+ :style="{
20
+ color: isDarkMode ? '#fff' : current == index && item.type == 1 ? selectedColor : item.color || color,
21
+ fontWeight: current == index && bold && item.type == 1 ? 'bold' : 'normal',
22
+ fontSize: fontSize
23
+ }"
24
+ >
25
+ {{ item.text }}
26
+ </text>
27
+ </view>
28
+ <view
29
+ class="fui-navigation-popup"
30
+ :class="{ 'fui-navigation-popup_show': showMenuIndex == index }"
31
+ :style="{ backgroundColor: isDarkMode ? '#4c4c4c' : subMenuBgColor, left: item.popupLeft || '50%' }"
32
+ v-if="item.itemList"
33
+ >
34
+ <view
35
+ class="fui-popup-cell"
36
+ :class="{ 'fui-first-cell': subIndex === 0, 'fui-last-cell': subIndex === item.itemList.length - 1 }"
37
+ :hover-class="subMenuHover ? (isDarkMode ? 'fui-item-dark_hover' : 'fui-item-hover') : ''"
38
+ :hover-stay-time="150"
39
+ v-for="(subItem, subIndex) in item.itemList || []"
40
+ :key="subIndex"
41
+ @tap="subMenuClick(index, item.type, subIndex, subItem.parameter)"
42
+ >
43
+ <text
44
+ class="fui-ellipsis"
45
+ :style="{ color: isDarkMode ? '#fff' : subMenuColor, fontSize: subMenufontSize, lineHeight: subMenufontSize }"
46
+ >
47
+ {{ subItem.text }}
48
+ </text>
49
+ </view>
50
+ <view class="fui-popup-triangle" :style="{ borderTopColor: isDarkMode ? '#4c4c4c' : subMenuBgColor }"></view>
51
+ </view>
52
+ </view>
53
+ </view>
54
+ <view class="fui-navigation-mask" :class="{ 'fui-navigation-mask_show': showMenuIndex != -1 }" @tap="handleClose"></view>
55
+ </view>
56
+ </template>
57
+
58
+ <script>
59
+ export default {
60
+ name: 'fuiBottomNavigation',
61
+ props: {
62
+ //当前索引
63
+ current: {
64
+ type: Number,
65
+ default: 0
66
+ },
67
+ /**
68
+ * {
69
+ text: 'ThorUI',
70
+ iconPath: '/static/images/common/icon_menu_gray.png',
71
+ selectedIconPath: '/static/images/common/icon_menu_gray.png',
72
+ color: '#666',
73
+ //1-选中切换,2-跳转、请求、其他操作,3-菜单
74
+ type: 3,
75
+ //自定义参数,类型自定义
76
+ parameter: null,
77
+ //子菜单left值,不传默认50%,当菜单贴近左右两边可用此参数调整
78
+ popupLeft: '',
79
+ itemList: [
80
+ {
81
+ //不建议超过6个字,请自行控制
82
+ text: '自定义参',
83
+ //自定义参数,类型自定义
84
+ parameter: null
85
+ },
86
+ {
87
+ text: '自定义参数',
88
+ //自定义参数,类型自定义
89
+ parameter: null
90
+ }
91
+ ]
92
+ }
93
+ *
94
+ * */
95
+ itemList: {
96
+ type: Array,
97
+ default: () => {
98
+ return [];
99
+ }
100
+ },
101
+ //颜色
102
+ color: {
103
+ type: String,
104
+ default: '#666'
105
+ },
106
+ //选中颜色
107
+ selectedColor: {
108
+ type: String,
109
+ default: '#5677fc'
110
+ },
111
+ fontSize: {
112
+ type: String,
113
+ default: '28rpx'
114
+ },
115
+ //选中后字体是否加粗
116
+ bold: {
117
+ type: Boolean,
118
+ default: true
119
+ },
120
+ //导航条背景颜色
121
+ backgroundColor: {
122
+ type: String,
123
+ default: '#F8F8F8'
124
+ },
125
+ //item分割线高度是否缩小
126
+ splitLineScale: {
127
+ type: Boolean,
128
+ default: true
129
+ },
130
+ //二级菜单字体颜色
131
+ subMenuColor: {
132
+ type: String,
133
+ default: '#333'
134
+ },
135
+ //二级菜单字体大小
136
+ subMenufontSize: {
137
+ type: String,
138
+ default: '28rpx'
139
+ },
140
+ //二级菜单背景色 深色:#4c4c4c
141
+ subMenuBgColor: {
142
+ type: String,
143
+ default: '#fff'
144
+ },
145
+ //二级菜单是否有点击效果
146
+ subMenuHover: {
147
+ type: Boolean,
148
+ default: true
149
+ },
150
+ //是否固定在底部
151
+ isFixed: {
152
+ type: Boolean,
153
+ default: true
154
+ },
155
+ //去除导航栏顶部的线条
156
+ unlined: {
157
+ type: Boolean,
158
+ default: false
159
+ },
160
+ //是否暗黑模式 (true:所有设置颜色失效)
161
+ isDarkMode: {
162
+ type: Boolean,
163
+ default: false
164
+ }
165
+ },
166
+ filters: {
167
+ getIcon(current, index, item) {
168
+ let url = item.iconPath;
169
+ if (item.type == 1) {
170
+ url = current == index ? item.selectedIconPath || item.iconPath : item.iconPath;
171
+ }
172
+ return url;
173
+ }
174
+ },
175
+ data() {
176
+ return {
177
+ showMenuIndex: -1 //显示的菜单index
178
+ };
179
+ },
180
+ methods: {
181
+ stop() {
182
+ return false;
183
+ },
184
+ handleClose() {
185
+ this.showMenuIndex = -1;
186
+ },
187
+ menuClick(index, parameter, type) {
188
+ //type:1-选中切换,2-跳转、请求、其他操作,3-菜单
189
+ if (type == 3) {
190
+ this.showMenuIndex = this.showMenuIndex == index ? -1 : index;
191
+ } else {
192
+ this.showMenuIndex = -1;
193
+ this.$emit('click', {
194
+ menu: 'main', //main,sub 主菜单,子菜单
195
+ type: type,
196
+ index: index,
197
+ parameter: parameter || ''
198
+ });
199
+ }
200
+ },
201
+ subMenuClick(index, type, subIndex, parameter) {
202
+ this.showMenuIndex = -1;
203
+ this.$emit('click', {
204
+ menu: 'sub', //main,sub 主菜单,子菜单
205
+ type: type,
206
+ index: index,
207
+ subIndex: subIndex,
208
+ parameter: parameter || ''
209
+ });
210
+ }
211
+ }
212
+ };
213
+ </script>
214
+
215
+ <style scoped>
216
+ .fui-bottom-navigation {
217
+ width: 100%;
218
+ height: 100rpx;
219
+ display: flex;
220
+ align-items: center;
221
+ justify-content: space-between;
222
+ position: relative;
223
+ z-index: 999;
224
+ }
225
+
226
+ .fui-navigation-fixed {
227
+ position: fixed !important;
228
+ left: 0;
229
+ bottom: 0;
230
+ padding-bottom: env(safe-area-inset-bottom);
231
+ }
232
+
233
+ .fui-bottom-navigation::after {
234
+ content: '';
235
+ width: 100%;
236
+ border-top: 1rpx solid #bfbfbf;
237
+ position: absolute;
238
+ top: 0;
239
+ left: 0;
240
+ transform: scaleY(0.5) translateZ(0);
241
+ transform-origin: 0 0;
242
+ z-index: 1000;
243
+ }
244
+ .fui-remove-splitLine::before {
245
+ border-top: 0 !important;
246
+ }
247
+
248
+ .fui-navigation-item {
249
+ flex: 1;
250
+ height: 100rpx;
251
+ position: relative;
252
+ box-sizing: border-box;
253
+ }
254
+
255
+ .fui-item-inner {
256
+ width: 100%;
257
+ height: 100rpx;
258
+ display: flex;
259
+ text-align: center;
260
+ align-items: center;
261
+ justify-content: center;
262
+ }
263
+
264
+ .fui-navigation-item::after {
265
+ height: 100%;
266
+ content: '';
267
+ position: absolute;
268
+ border-right: 1rpx solid #bfbfbf;
269
+ transform: scaleX(0.5) translateZ(0);
270
+ right: 0;
271
+ top: 0;
272
+ }
273
+
274
+ .fui-item-after_height::after {
275
+ height: 40% !important;
276
+ top: 30% !important;
277
+ }
278
+
279
+ .fui-last-item::after {
280
+ border-right: 0 !important;
281
+ }
282
+
283
+ .fui-navigation-img {
284
+ width: 32rpx;
285
+ height: 32rpx;
286
+ margin-right: 8rpx;
287
+ }
288
+
289
+ .fui-navigation-popup {
290
+ max-width: 160%;
291
+ width: auto;
292
+ position: absolute;
293
+ border-radius: 8rpx;
294
+ visibility: hidden;
295
+ opacity: 0;
296
+ transform: translate3d(-50%, 0, 0);
297
+ transform-origin: center;
298
+ transition: all 0.12s ease-in-out;
299
+ bottom: 0;
300
+ z-index: -1;
301
+ }
302
+
303
+ .fui-navigation-popup_show {
304
+ transform: translate3d(-50%, -124rpx, 0);
305
+ visibility: visible;
306
+ opacity: 1;
307
+ }
308
+
309
+ .fui-popup-triangle {
310
+ position: absolute;
311
+ width: 0;
312
+ height: 0;
313
+ border-left: 9rpx solid transparent;
314
+ border-right: 9rpx solid transparent;
315
+ border-top: 18rpx solid;
316
+ left: 50%;
317
+ bottom: -18rpx;
318
+ -webkit-transform: translateX(-50%);
319
+ transform: translateX(-50%);
320
+ z-index: 997;
321
+ }
322
+
323
+ .fui-popup-cell {
324
+ width: 100%;
325
+ padding: 32rpx 20rpx;
326
+ box-sizing: border-box;
327
+ display: flex;
328
+ align-items: center;
329
+ justify-content: center;
330
+ flex: 1;
331
+ position: relative;
332
+ }
333
+
334
+ .fui-ellipsis {
335
+ white-space: nowrap;
336
+ overflow: hidden;
337
+ text-overflow: ellipsis;
338
+ }
339
+
340
+ .fui-popup-cell::after {
341
+ content: '';
342
+ position: absolute;
343
+ border-bottom: 1rpx solid #eaeef1;
344
+ -webkit-transform: scaleY(0.5);
345
+ transform: scaleY(0.5);
346
+ bottom: 0;
347
+ right: 24rpx;
348
+ left: 24rpx;
349
+ }
350
+
351
+ .fui-item-hover {
352
+ background-color: #f1f1f1;
353
+ }
354
+
355
+ .fui-item-dark_hover {
356
+ background-color: #555;
357
+ }
358
+
359
+ .fui-first-cell {
360
+ border-top-left-radius: 8rpx;
361
+ border-top-right-radius: 8rpx;
362
+ }
363
+
364
+ .fui-last-cell {
365
+ border-bottom-left-radius: 8rpx;
366
+ border-bottom-right-radius: 8rpx;
367
+ }
368
+
369
+ .fui-last-cell::after {
370
+ border-bottom: 0 !important;
371
+ }
372
+
373
+ .fui-navigation-mask {
374
+ position: fixed;
375
+ top: 0;
376
+ left: 0;
377
+ right: 0;
378
+ bottom: 0;
379
+ z-index: 995;
380
+ transition: all 0.3s ease-in-out;
381
+ opacity: 0;
382
+ visibility: hidden;
383
+ background-color: rgba(0, 0, 0, 0);
384
+ }
385
+
386
+ .fui-navigation-mask_show {
387
+ opacity: 1;
388
+ visibility: visible;
389
+ }
390
+ </style>
@@ -0,0 +1,100 @@
1
+ <template>
2
+ <view @touchmove.stop.prevent>
3
+ <view
4
+ class="fui-popup-class fui-bottom-popup"
5
+ :class="{ 'fui-popup-show': show, 'fui-popup-radius': radius }"
6
+ :style="{ backgroundColor: backgroundColor, height: height ? height + 'rpx' : 'auto' }"
7
+ >
8
+ <slot></slot>
9
+ </view>
10
+ <view class="fui-popup-mask" :class="[show ? 'fui-mask-show' : '']" v-if="mask" @tap="handleClose"></view>
11
+ </view>
12
+ </template>
13
+
14
+ <script>
15
+ export default {
16
+ name: 'fuiBottomPopup',
17
+ props: {
18
+ //是否需要mask
19
+ mask: {
20
+ type: Boolean,
21
+ default: true
22
+ },
23
+ //控制显示
24
+ show: {
25
+ type: Boolean,
26
+ default: false
27
+ },
28
+ //背景颜色
29
+ backgroundColor: {
30
+ type: String,
31
+ default: '#fff'
32
+ },
33
+ //高度 rpx
34
+ height: {
35
+ type: Number,
36
+ default: 0
37
+ },
38
+ //设置圆角
39
+ radius: {
40
+ type: Boolean,
41
+ default: true
42
+ }
43
+ },
44
+ methods: {
45
+ handleClose() {
46
+ if (!this.show) {
47
+ return;
48
+ }
49
+ this.$emit('close', {});
50
+ }
51
+ }
52
+ };
53
+ </script>
54
+
55
+ <style scoped>
56
+ .fui-bottom-popup {
57
+ width: 100%;
58
+ position: fixed;
59
+ left: 0;
60
+ right: 0;
61
+ bottom: 0;
62
+ z-index: 997;
63
+ /* visibility: hidden; */
64
+ opacity: 0;
65
+ transform: translate3d(0, 100%, 0);
66
+ transform-origin: center;
67
+ transition: all 0.3s ease-in-out;
68
+ min-height: 20rpx;
69
+ }
70
+ .fui-popup-radius {
71
+ border-top-left-radius: 24rpx;
72
+ border-top-right-radius: 24rpx;
73
+ padding-bottom: env(safe-area-inset-bottom);
74
+ overflow: hidden;
75
+ }
76
+
77
+ .fui-popup-show {
78
+ transform: translate3d(0, 0, 0);
79
+ opacity: 1;
80
+ /* visibility: visible; */
81
+ }
82
+
83
+ .fui-popup-mask {
84
+ position: fixed;
85
+ top: 0;
86
+ left: 0;
87
+ right: 0;
88
+ bottom: 0;
89
+ background-color: rgba(0, 0, 0, 0.6);
90
+ z-index: 996;
91
+ transition: all 0.3s ease-in-out;
92
+ opacity: 0;
93
+ visibility: hidden;
94
+ }
95
+
96
+ .fui-mask-show {
97
+ opacity: 1;
98
+ visibility: visible;
99
+ }
100
+ </style>
@@ -0,0 +1,236 @@
1
+ <template>
2
+ <view :class="{ 'fui-flex-end': flexEnd }">
3
+ <view
4
+ class="fui-popup-list"
5
+ :class="{ 'fui-popup-show': show, 'fui-z_index': show && position != 'relative' }"
6
+ :style="{
7
+ width: width,
8
+ backgroundColor: backgroundColor,
9
+ borderRadius: radius,
10
+ color: color,
11
+ position: position,
12
+ left: left,
13
+ right: right,
14
+ bottom: bottom,
15
+ top: top,
16
+ transform: `translate(${translateX},${translateY})`
17
+ }"
18
+ >
19
+ <view
20
+ class="fui-triangle"
21
+ :style="{
22
+ borderWidth: borderWidth,
23
+ borderColor: `transparent transparent ${backgroundColor} transparent`,
24
+ left: triangleLeft,
25
+ right: triangleRight,
26
+ top: triangleTop,
27
+ bottom: triangleBottom
28
+ }"
29
+ v-if="direction == 'top'"
30
+ ></view>
31
+ <view
32
+ class="fui-triangle"
33
+ :style="{
34
+ borderWidth: borderWidth,
35
+ borderColor: `${backgroundColor} transparent transparent transparent`,
36
+ left: triangleLeft,
37
+ right: triangleRight,
38
+ top: triangleTop,
39
+ bottom: triangleBottom
40
+ }"
41
+ v-if="direction == 'bottom'"
42
+ ></view>
43
+ <view
44
+ class="fui-triangle"
45
+ :style="{
46
+ borderWidth: borderWidth,
47
+ borderColor: `transparent ${backgroundColor} transparent transparent`,
48
+ left: triangleLeft,
49
+ right: triangleRight,
50
+ top: triangleTop,
51
+ bottom: triangleBottom
52
+ }"
53
+ v-if="direction == 'left'"
54
+ ></view>
55
+ <view
56
+ class="fui-triangle"
57
+ :style="{
58
+ borderWidth: borderWidth,
59
+ borderColor: `transparent transparent transparent ${backgroundColor}`,
60
+ left: triangleLeft,
61
+ right: triangleRight,
62
+ top: triangleTop,
63
+ bottom: triangleBottom
64
+ }"
65
+ v-if="direction == 'right'"
66
+ ></view>
67
+ <slot />
68
+ </view>
69
+ <view
70
+ @touchmove.stop.prevent="stop"
71
+ class="fui-popup-mask"
72
+ :class="{ 'fui-popup-show': show }"
73
+ :style="{ backgroundColor: maskBgColor }"
74
+ v-if="mask"
75
+ @tap="handleClose"
76
+ ></view>
77
+ </view>
78
+ </template>
79
+ <script>
80
+ export default {
81
+ name: 'fuiBubblePopup',
82
+ props: {
83
+ //宽度
84
+ width: {
85
+ type: String,
86
+ default: '300rpx'
87
+ },
88
+ //popup圆角
89
+ radius: {
90
+ type: String,
91
+ default: '8rpx'
92
+ },
93
+ //popup 定位 left right top bottom值
94
+ left: {
95
+ type: String,
96
+ default: 'auto'
97
+ },
98
+ right: {
99
+ type: String,
100
+ default: 'auto'
101
+ },
102
+ top: {
103
+ type: String,
104
+ default: 'auto'
105
+ },
106
+ bottom: {
107
+ type: String,
108
+ default: 'auto'
109
+ },
110
+ translateX: {
111
+ type: String,
112
+ default: '0'
113
+ },
114
+ translateY: {
115
+ type: String,
116
+ default: '0'
117
+ },
118
+ //背景颜色
119
+ backgroundColor: {
120
+ type: String,
121
+ default: '#4c4c4c'
122
+ },
123
+ //字体颜色
124
+ color: {
125
+ type: String,
126
+ default: '#fff'
127
+ },
128
+ //三角border-width
129
+ borderWidth: {
130
+ type: String,
131
+ default: '12rpx'
132
+ },
133
+ //三角形方向 top left right bottom
134
+ direction: {
135
+ type: String,
136
+ default: 'top'
137
+ },
138
+ //定位 left right top bottom值
139
+ triangleLeft: {
140
+ type: String,
141
+ default: 'auto'
142
+ },
143
+ triangleRight: {
144
+ type: String,
145
+ default: 'auto'
146
+ },
147
+ triangleTop: {
148
+ type: String,
149
+ default: 'auto'
150
+ },
151
+ triangleBottom: {
152
+ type: String,
153
+ default: 'auto'
154
+ },
155
+ //定位 relative absolute fixed
156
+ position: {
157
+ type: String,
158
+ default: 'fixed'
159
+ },
160
+ //flex-end
161
+ flexEnd: {
162
+ type: Boolean,
163
+ default: false
164
+ },
165
+ //是否需要mask
166
+ mask: {
167
+ type: Boolean,
168
+ default: true
169
+ },
170
+ maskBgColor: {
171
+ type: String,
172
+ default: 'rgba(0, 0, 0, 0.4)'
173
+ },
174
+ //控制显示
175
+ show: {
176
+ type: Boolean,
177
+ default: false
178
+ }
179
+ },
180
+ methods: {
181
+ handleClose() {
182
+ if (!this.show) {
183
+ return;
184
+ }
185
+ this.$emit('close', {});
186
+ },
187
+ stop() {
188
+ return false;
189
+ }
190
+ }
191
+ };
192
+ </script>
193
+
194
+ <style scoped>
195
+ .fui-popup-list {
196
+ z-index: 1;
197
+ transition: all 0.3s ease-in-out;
198
+ opacity: 0;
199
+ visibility: hidden;
200
+ }
201
+
202
+ .fui-flex-end {
203
+ width: 100%;
204
+ display: flex;
205
+ justify-content: flex-end;
206
+ }
207
+
208
+ .fui-triangle {
209
+ position: absolute;
210
+ width: 0;
211
+ height: 0;
212
+ border-style: solid;
213
+ z-index: 997;
214
+ }
215
+
216
+ .fui-popup-mask {
217
+ position: fixed;
218
+ top: 0;
219
+ left: 0;
220
+ right: 0;
221
+ bottom: 0;
222
+ z-index: 995;
223
+ transition: all 0.3s ease-in-out;
224
+ opacity: 0;
225
+ visibility: hidden;
226
+ }
227
+
228
+ .fui-popup-show {
229
+ opacity: 1;
230
+ visibility: visible;
231
+ }
232
+
233
+ .fui-z_index {
234
+ z-index: 996;
235
+ }
236
+ </style>