@gmcb/uv-ui 0.2.26 → 0.3.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 (137) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/LICENSE +21 -21
  3. package/README.md +95 -141
  4. package/components/uv-overlay/props.js +29 -24
  5. package/components/uv-overlay/uv-overlay.vue +87 -85
  6. package/docs/api/configs/color.md +52 -0
  7. package/docs/api/index.md +77 -0
  8. package/docs/api/mixins/mpShare.md +95 -0
  9. package/docs/api/request/apiManage.md +88 -0
  10. package/docs/api/request/http.md +451 -0
  11. package/docs/api/utils/colorSwitch.md +78 -0
  12. package/docs/api/utils/debounce.md +104 -0
  13. package/docs/api/utils/fastUse.md +246 -0
  14. package/docs/api/utils/getRect.md +238 -0
  15. package/docs/api/utils/guid.md +41 -0
  16. package/docs/api/utils/index.md +55 -0
  17. package/docs/api/utils/intro.md +25 -0
  18. package/docs/api/utils/object.md +171 -0
  19. package/docs/api/utils/queryParams.md +68 -0
  20. package/docs/api/utils/random.md +23 -0
  21. package/docs/api/utils/randomArray.md +28 -0
  22. package/docs/api/utils/route.md +121 -0
  23. package/docs/api/utils/test.md +237 -0
  24. package/docs/api/utils/time.md +81 -0
  25. package/docs/api/utils/trim.md +24 -0
  26. package/docs/components/actionSheet.md +236 -0
  27. package/docs/components/addQQGroup.md +5 -0
  28. package/docs/components/album.md +91 -0
  29. package/docs/components/alert.md +83 -0
  30. package/docs/components/avatar.md +152 -0
  31. package/docs/components/backTop.md +181 -0
  32. package/docs/components/badge.md +117 -0
  33. package/docs/components/button.md +196 -0
  34. package/docs/components/calendar.md +398 -0
  35. package/docs/components/calendars.md +294 -0
  36. package/docs/components/cell.md +185 -0
  37. package/docs/components/checkbox.md +281 -0
  38. package/docs/components/circleProgress.md +5 -0
  39. package/docs/components/code.md +162 -0
  40. package/docs/components/codeInput.md +175 -0
  41. package/docs/components/collapse.md +250 -0
  42. package/docs/components/color.md +324 -0
  43. package/docs/components/common.md +126 -0
  44. package/docs/components/countDown.md +166 -0
  45. package/docs/components/countTo.md +140 -0
  46. package/docs/components/datetimePicker.md +283 -0
  47. package/docs/components/diff1.x.md +190 -0
  48. package/docs/components/divider.md +88 -0
  49. package/docs/components/downloadSetting.md +54 -0
  50. package/docs/components/dropDown.md +375 -0
  51. package/docs/components/empty.md +99 -0
  52. package/docs/components/feature.md +261 -0
  53. package/docs/components/form.md +736 -0
  54. package/docs/components/gap.md +49 -0
  55. package/docs/components/grid.md +225 -0
  56. package/docs/components/icon.md +101 -0
  57. package/docs/components/image.md +182 -0
  58. package/docs/components/index.md +110 -0
  59. package/docs/components/indexList.md +133 -0
  60. package/docs/components/input.md +250 -0
  61. package/docs/components/install.md +59 -0
  62. package/docs/components/intro.md +32 -0
  63. package/docs/components/keyboard.md +226 -0
  64. package/docs/components/layout.md +310 -0
  65. package/docs/components/line.md +85 -0
  66. package/docs/components/lineProgress.md +141 -0
  67. package/docs/components/link.md +89 -0
  68. package/docs/components/list.md +223 -0
  69. package/docs/components/loadMore.md +140 -0
  70. package/docs/components/loadingIcon.md +144 -0
  71. package/docs/components/loadingPage.md +92 -0
  72. package/docs/components/modal.md +230 -0
  73. package/docs/components/more.md +13 -0
  74. package/docs/components/navbar.md +192 -0
  75. package/docs/components/noNetwork.md +116 -0
  76. package/docs/components/noticeBar.md +131 -0
  77. package/docs/components/notify.md +204 -0
  78. package/docs/components/npmSetting.md +64 -0
  79. package/docs/components/numberBox.md +257 -0
  80. package/docs/components/nvue.md +170 -0
  81. package/docs/components/overlay.md +117 -0
  82. package/docs/components/parse.md +204 -0
  83. package/docs/components/pickColor.md +112 -0
  84. package/docs/components/picker.md +357 -0
  85. package/docs/components/popup.md +221 -0
  86. package/docs/components/problem.md +300 -0
  87. package/docs/components/qrcode.md +169 -0
  88. package/docs/components/quickstart.md +33 -0
  89. package/docs/components/radio.md +256 -0
  90. package/docs/components/rate.md +128 -0
  91. package/docs/components/read.md +163 -0
  92. package/docs/components/readMore.md +227 -0
  93. package/docs/components/resource.md +17 -0
  94. package/docs/components/scrollList.md +218 -0
  95. package/docs/components/search.md +160 -0
  96. package/docs/components/setting.md +111 -0
  97. package/docs/components/settingDesc.md +66 -0
  98. package/docs/components/skeleton.md +105 -0
  99. package/docs/components/skeletons.md +323 -0
  100. package/docs/components/slider.md +157 -0
  101. package/docs/components/steps.md +189 -0
  102. package/docs/components/sticky.md +76 -0
  103. package/docs/components/subsection.md +183 -0
  104. package/docs/components/swipeAction.md +279 -0
  105. package/docs/components/swiper.md +352 -0
  106. package/docs/components/switch.md +216 -0
  107. package/docs/components/tabbar.md +263 -0
  108. package/docs/components/table.md +5 -0
  109. package/docs/components/tabs.md +364 -0
  110. package/docs/components/tag.md +227 -0
  111. package/docs/components/testPic.md +20 -0
  112. package/docs/components/text.md +157 -0
  113. package/docs/components/textarea.md +121 -0
  114. package/docs/components/toast.md +124 -0
  115. package/docs/components/tooltip.md +98 -0
  116. package/docs/components/transition.md +404 -0
  117. package/docs/components/upload.md +253 -0
  118. package/docs/components/vtabs.md +332 -0
  119. package/docs/components/vueUse.md +45 -0
  120. package/docs/components/vuexDetail.md +103 -0
  121. package/docs/components/waterfall.md +651 -0
  122. package/docs/faq/index.md +53 -0
  123. package/docs/guide/codeHint.md +44 -0
  124. package/docs/guide/customIcon.md +168 -0
  125. package/docs/guide/demo.md +92 -0
  126. package/docs/guide/design.md +56 -0
  127. package/docs/guide/globalVariable.md +239 -0
  128. package/docs/guide/i18n.md +194 -0
  129. package/docs/guide/index.md +28 -0
  130. package/docs/guide/note.md +74 -0
  131. package/docs/guide/safeAreaInset.md +64 -0
  132. package/docs/guide/theme.md +67 -0
  133. package/docs/index.md +88 -0
  134. package/libs/config/config.js +0 -10
  135. package/libs/css/color.scss +15 -14
  136. package/package.json +7 -2
  137. package/theme.scss +2 -1
@@ -0,0 +1,77 @@
1
+ # API
2
+
3
+ 本页记录 `@gmcb/uv-ui` 的主要运行时入口。组件文档请查看 [组件](../components/index.md),工具函数请查看 [工具](/api/utils/index.md)。
4
+
5
+ ## 默认导出
6
+
7
+ ```ts
8
+ import uvUI from '@gmcb/uv-ui';
9
+ ```
10
+
11
+ 默认导出是 Vue 插件:
12
+
13
+ ```ts
14
+ app.use(uvUI);
15
+ ```
16
+
17
+ 安装后会注册全局 mixin,并向 `uni.$uv` 注入工具、配置、请求实例和路由方法。
18
+
19
+ ## uni.$uv
20
+
21
+ | 能力 | 说明 | 文档 |
22
+ | --- | --- | --- |
23
+ | `uni.$uv.http` | 基于 `luch-request` 的请求实例。 | [HTTP 请求](/api/request/http.md) |
24
+ | `uni.$uv.route` | 路由跳转封装。 | [路由](/api/utils/route.md) |
25
+ | `uni.$uv.config` | 内置配置对象。 | [扩展配置](../components/setting.md) |
26
+ | `uni.$uv.debounce` / `uni.$uv.throttle` | 防抖与节流。 | [防抖节流](/api/utils/debounce.md) |
27
+ | `uni.$uv.test` | 常用校验规则。 | [规则校验](/api/utils/test.md) |
28
+ | `uni.$uv.timeFormat` / `uni.$uv.timeFrom` | 时间格式化。 | [时间](/api/utils/time.md) |
29
+ | `uni.$uv.queryParams` | 对象转 URL 参数。 | [参数](/api/utils/queryParams.md) |
30
+ | `uni.$uv.colorGradient` / `hexToRgb` / `rgbToHex` | 颜色工具。 | [颜色](/api/utils/colorSwitch.md) |
31
+ | `uni.$uv.platform` | 平台判断。 | [快速使用](/api/utils/fastUse.md) |
32
+
33
+ ## 深度引用
34
+
35
+ 工具函数可以从包内 `libs` 路径按需引用:
36
+
37
+ ```ts
38
+ import { trim, random } from '@gmcb/uv-ui/libs/function/test.js';
39
+ import { timeFormat, queryParams } from '@gmcb/uv-ui/libs/function/index.js';
40
+ import route from '@gmcb/uv-ui/libs/utils/route.js';
41
+ import Request from '@gmcb/uv-ui/libs/luch-request/index.js';
42
+ ```
43
+
44
+ 深度引用路径依赖当前包结构,升级前应确认目标文件仍存在。
45
+
46
+ ## 样式入口
47
+
48
+ ```scss
49
+ @import '@gmcb/uv-ui/theme.scss';
50
+ @import '@gmcb/uv-ui/index.scss';
51
+ ```
52
+
53
+ ## 组件入口
54
+
55
+ 推荐通过 easycom 使用组件:
56
+
57
+ ```json
58
+ {
59
+ "easycom": {
60
+ "autoscan": true,
61
+ "custom": {
62
+ "^uv-(.*)": "@gmcb/uv-ui/components/uv-$1/uv-$1.vue"
63
+ }
64
+ }
65
+ }
66
+ ```
67
+
68
+ 确需手动引入时,按组件发布路径引用:
69
+
70
+ ```ts
71
+ import UvButton from '@gmcb/uv-ui/components/uv-button/uv-button.vue';
72
+ ```
73
+
74
+ ## 注意
75
+
76
+ - 当前文档统一使用 `utils` 作为工具分类,历史 `js` 路径不再保留。
77
+ - 文档中的历史接入方式不作为本包推荐路径;当前统一使用 `@gmcb/uv-ui`。
@@ -0,0 +1,95 @@
1
+ ## mpShare 小程序分享
2
+
3
+ `mpShare` 是对小程序 `onShareAppMessage`、`onShareTimeline` 生命周期的封装。开启后,uv-ui 会通过 mixin 给页面注入默认分享逻辑;如果页面需要自定义分享内容,也可以在页面中使用 uni-app 的组合式生命周期覆盖。
4
+
5
+ ### 开启分享
6
+
7
+ 在 `main.js` 注册插件时传入 `mpShare: true`:
8
+
9
+ ```js
10
+ import App from './App';
11
+ import { createSSRApp } from 'vue';
12
+ import uvUI from '@gmcb/uv-ui';
13
+
14
+ export function createApp() {
15
+ const app = createSSRApp(App);
16
+ app.use(uvUI, { mpShare: true });
17
+ return { app };
18
+ }
19
+ ```
20
+
21
+ ### 全局分享配置
22
+
23
+ ```js
24
+ uni.$uv.mpShare = {
25
+ title: '小程序名称',
26
+ path: '',
27
+ imageUrl: ''
28
+ };
29
+ ```
30
+
31
+ 页面中可在 `onReady` 后修改当前分享信息:
32
+
33
+ ```vue
34
+ <script setup>
35
+ import { onReady } from '@dcloudio/uni-app';
36
+
37
+ onReady(() => {
38
+ uni.$uv.mpShare.title = '对酒当歌,人生几何';
39
+ uni.$uv.mpShare.path = '/pages/index/index';
40
+ });
41
+
42
+ </script>
43
+ ```
44
+
45
+ ### 重写 onShareAppMessage
46
+
47
+ ```vue
48
+ <script setup>
49
+ import { onShareAppMessage } from '@dcloudio/uni-app';
50
+
51
+ onShareAppMessage(res => {
52
+ if (res.from === 'button') {
53
+ console.log(res.target);
54
+ }
55
+
56
+ return {
57
+ title: '自定义分享标题',
58
+ path: '/pages/test/test?id=123'
59
+ };
60
+ });
61
+
62
+ </script>
63
+ ```
64
+
65
+ ### 分享到朋友圈
66
+
67
+ ```vue
68
+ <script setup>
69
+ import { onShareTimeline } from '@dcloudio/uni-app';
70
+
71
+ onShareTimeline(() => {
72
+ return {
73
+ title: '自定义朋友圈标题',
74
+ query: 'id=123',
75
+ imageUrl: ''
76
+ };
77
+ });
78
+
79
+ </script>
80
+ ```
81
+
82
+ ### 取消分享
83
+
84
+ 单个页面可在生命周期中关闭:
85
+
86
+ ```vue
87
+ <script setup>
88
+ import { onLoad } from '@dcloudio/uni-app';
89
+
90
+ onLoad(() => {
91
+ uni.$uv.mpShare = false;
92
+ });
93
+
94
+ </script>
95
+ ```
@@ -0,0 +1,88 @@
1
+ ## API集中管理
2
+
3
+ 这里说的集中管理,是指把各个请求,统一放到一个文件中进行管理,这样的好处是不用每次调用`uni.$uv.get`时都需要传入`url`参数,一些固定的
4
+ 请求参数也可以不用显式的传入,如下为配置后的使用示例:
5
+
6
+ ```
7
+ uni.$uv.api.getSearch().then(res => {
8
+ console.log(res);
9
+ })
10
+ ```
11
+
12
+ ### 前言
13
+
14
+ 在进行这个配置之前,建议先配置请求的拦截器,本示例和和拦截器是一脉相承的,请移步:[Http拦截器](/api/request/http.html)
15
+
16
+
17
+ ### 准备工作
18
+
19
+ 在根目录新建`/common/http.api.js`,如已有`common`目录,创建`http.api.js`即可。
20
+
21
+
22
+ ### 说明
23
+
24
+ 本文件的内部大体结构,和请求拦截器的内部结构基本一致。Vue 3 项目中建议导出普通初始化函数,在 `main.js` 的 `createApp` 中接收 `app` 后完成挂载,
25
+ 对各个参数的处理,在请求拦截器部分有关于内部各个参数的详细介绍,详见:[Http拦截器](/api/request/http.html)
26
+
27
+ 以下为`/common/http.api.js`的内部内容,说明都在注释中,请举一反三,灵活配置即可:
28
+
29
+ ```js
30
+ // /common/http.api.js
31
+
32
+ // 如果没有通过拦截器配置域名的话,可以在这里写上完整的URL(加上域名部分)
33
+ let hotSearchUrl = '/ebapi/store_api/hot_search';
34
+ let indexUrl = '/ebapi/public_api/index';
35
+
36
+ // 此处 app 就是 createSSRApp(App) 创建出的应用实例,可以通过 app.config.globalProperties 挂载全局能力。
37
+ // https://www.uvui.cn/api/request/http.html#%E4%BD%95%E8%B0%93%E8%AF%B7%E6%B1%82%E6%8B%A6%E6%88%AA%EF%BC%9F
38
+ export function setupHttpApi(app) {
39
+ // 此处没有使用传入的params参数
40
+ const getSearch = (params = {}) => uni.$uv.http.get(hotSearchUrl, {
41
+ id: 2
42
+ });
43
+
44
+ // 此处使用了传入的params参数,一切自定义即可
45
+ const getInfo = (params = {}) => uni.$uv.http.post(indexUrl, params);
46
+
47
+ // 将各个定义的接口名称统一放进 uni.$uv.api 下,页面中可直接通过 uni.$uv.api 调用
48
+ uni.$uv.api = { getSearch, getInfo };
49
+ app.config.globalProperties.$api = uni.$uv.api;
50
+ }
51
+ ```
52
+
53
+ ### 引入
54
+
55
+ 我们上面是创建和配置了`http.api.js`,接下来需要在`main.js`中进行挂载,如果您配置了拦截器,这部分的引入代码,需要写在拦截器引入的后面:
56
+
57
+ ```js
58
+ import App from './App'
59
+ import { createSSRApp } from 'vue'
60
+ import uvUI from '@gmcb/uv-ui'
61
+ import { setupHttpInterceptor } from '@/common/http.interceptor.js'
62
+ import { setupHttpApi } from '@/common/http.api.js'
63
+
64
+ export function createApp() {
65
+ const app = createSSRApp(App)
66
+ app.use(uvUI)
67
+ setupHttpInterceptor(app)
68
+ setupHttpApi(app)
69
+ return { app }
70
+ }
71
+ ```
72
+
73
+
74
+ ### 使用
75
+
76
+ 经过以上配置后,我们可以在各个页面的js中方便的调用各个接口,如下示例:
77
+
78
+ ```js
79
+ // 调用getSearch接口
80
+ uni.$uv.api.getSearch().then(res => {
81
+ console.log(res);
82
+ })
83
+
84
+ // 调用getInfo接口
85
+ uni.$uv.api.getInfo({id: 3}).then(res => {
86
+ console.log(res);
87
+ })
88
+ ```