@zfqh/uniapp 0.1.1

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 (310) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/LICENSE +21 -0
  3. package/README.md +39 -0
  4. package/docs/api/apis/core.md +189 -0
  5. package/docs/api/apis/index.md +82 -0
  6. package/docs/api/apis/request.md +369 -0
  7. package/docs/api/configs/api.md +32 -0
  8. package/docs/api/configs/app.md +43 -0
  9. package/docs/api/configs/brand.md +43 -0
  10. package/docs/api/configs/cdn.md +35 -0
  11. package/docs/api/configs/color.md +144 -0
  12. package/docs/api/configs/env.md +120 -0
  13. package/docs/api/configs/index.md +394 -0
  14. package/docs/api/configs/link.md +33 -0
  15. package/docs/api/configs/log.md +27 -0
  16. package/docs/api/configs/mp.md +34 -0
  17. package/docs/api/configs/navigate.md +27 -0
  18. package/docs/api/configs/page.md +32 -0
  19. package/docs/api/configs/path.md +27 -0
  20. package/docs/api/configs/storage.md +24 -0
  21. package/docs/api/configs/tabbar.md +29 -0
  22. package/docs/api/configs/toast.md +35 -0
  23. package/docs/api/configs/update.md +25 -0
  24. package/docs/api/configs/upload.md +45 -0
  25. package/docs/api/configs/ver.md +32 -0
  26. package/docs/api/configs/web.md +28 -0
  27. package/docs/api/hooks/index.md +182 -0
  28. package/docs/api/hooks/useI18n.md +27 -0
  29. package/docs/api/hooks/useOverlay.md +37 -0
  30. package/docs/api/hooks/usePopup.md +35 -0
  31. package/docs/api/hooks/useVersion.md +23 -0
  32. package/docs/api/index.md +269 -0
  33. package/docs/api/mixins/app.md +29 -0
  34. package/docs/api/mixins/badge.md +23 -0
  35. package/docs/api/mixins/debounce.md +32 -0
  36. package/docs/api/mixins/deep.md +29 -0
  37. package/docs/api/mixins/index.md +23 -0
  38. package/docs/api/mixins/login.md +22 -0
  39. package/docs/api/mixins/model.md +26 -0
  40. package/docs/api/mixins/redirect.md +26 -0
  41. package/docs/api/mixins/share.md +29 -0
  42. package/docs/api/mixins/show.md +27 -0
  43. package/docs/api/mixins/webview.md +27 -0
  44. package/docs/api/modules/app.md +30 -0
  45. package/docs/api/modules/dict.md +28 -0
  46. package/docs/api/modules/im.md +22 -0
  47. package/docs/api/modules/index.md +44 -0
  48. package/docs/api/modules/launch.md +26 -0
  49. package/docs/api/modules/location.md +25 -0
  50. package/docs/api/modules/login.md +35 -0
  51. package/docs/api/modules/network.md +26 -0
  52. package/docs/api/modules/system.md +29 -0
  53. package/docs/api/utils/audio.md +84 -0
  54. package/docs/api/utils/consts.md +201 -0
  55. package/docs/api/utils/cos.md +269 -0
  56. package/docs/api/utils/debounce.md +89 -0
  57. package/docs/api/utils/file.md +78 -0
  58. package/docs/api/utils/index.md +547 -0
  59. package/docs/api/utils/locale.md +32 -0
  60. package/docs/api/utils/message.md +81 -0
  61. package/docs/api/utils/navigate.md +267 -0
  62. package/docs/api/utils/pages.md +205 -0
  63. package/docs/api/utils/permission.md +28 -0
  64. package/docs/api/utils/permit.md +62 -0
  65. package/docs/api/utils/query.md +89 -0
  66. package/docs/api/utils/request.md +34 -0
  67. package/docs/api/utils/storage.md +145 -0
  68. package/docs/api/utils/subscribe.md +77 -0
  69. package/docs/api/utils/throttle.md +101 -0
  70. package/docs/api/utils/toast.md +164 -0
  71. package/docs/api/utils/uni.md +28 -0
  72. package/docs/api/utils/update.md +165 -0
  73. package/docs/components/g-back-button.md +76 -0
  74. package/docs/components/g-checkbox-list.md +101 -0
  75. package/docs/components/g-container.md +93 -0
  76. package/docs/components/g-data-list.md +106 -0
  77. package/docs/components/g-dot-text.md +79 -0
  78. package/docs/components/g-env.md +75 -0
  79. package/docs/components/g-float.md +83 -0
  80. package/docs/components/g-grid-image.md +91 -0
  81. package/docs/components/g-grid-swiper.md +99 -0
  82. package/docs/components/g-icon.md +106 -0
  83. package/docs/components/g-mask.md +82 -0
  84. package/docs/components/g-money.md +90 -0
  85. package/docs/components/g-more.md +78 -0
  86. package/docs/components/g-page-container.md +170 -0
  87. package/docs/components/g-permission-popup.md +117 -0
  88. package/docs/components/g-polyline-chat.md +102 -0
  89. package/docs/components/g-polyline-view.md +67 -0
  90. package/docs/components/g-popup.md +144 -0
  91. package/docs/components/g-refresh-view.md +118 -0
  92. package/docs/components/g-render-image.md +83 -0
  93. package/docs/components/g-search.md +120 -0
  94. package/docs/components/g-share-photo.md +77 -0
  95. package/docs/components/g-share-view.md +83 -0
  96. package/docs/components/g-share-weixin.md +81 -0
  97. package/docs/components/g-skeleton-view.md +71 -0
  98. package/docs/components/g-skeleton.md +64 -0
  99. package/docs/components/g-tag-editor.md +134 -0
  100. package/docs/components/g-timer.md +72 -0
  101. package/docs/components/g-trtc-room.md +116 -0
  102. package/docs/components/g-trtc-tui.md +84 -0
  103. package/docs/components/g-trtc.md +124 -0
  104. package/docs/components/g-upload.md +117 -0
  105. package/docs/components/g-waterfall.md +84 -0
  106. package/docs/components/index.md +109 -0
  107. package/docs/components/styles/base-styles.md +367 -0
  108. package/docs/components/styles/global-vars.md +150 -0
  109. package/docs/components/usage.md +112 -0
  110. package/docs/faq/index.md +78 -0
  111. package/docs/guide/getting-started.md +195 -0
  112. package/docs/guide/project-frame.md +297 -0
  113. package/docs/index.md +80 -0
  114. package/lib/apis/core.d.ts +12 -0
  115. package/lib/apis/core.js +13 -0
  116. package/lib/apis/index.d.ts +2 -0
  117. package/lib/apis/index.js +2 -0
  118. package/lib/apis/request.d.ts +4 -0
  119. package/lib/apis/request.js +27 -0
  120. package/lib/components/g-back-button/g-back-button.vue +141 -0
  121. package/lib/components/g-checkbox-list/g-checkbox-list.vue +156 -0
  122. package/lib/components/g-container/g-container.vue +159 -0
  123. package/lib/components/g-data-list/g-data-list.vue +192 -0
  124. package/lib/components/g-dot-text/g-dot-text.vue +114 -0
  125. package/lib/components/g-env/g-env.vue +123 -0
  126. package/lib/components/g-float/g-float.vue +131 -0
  127. package/lib/components/g-grid-image/g-grid-image.vue +84 -0
  128. package/lib/components/g-grid-swiper/g-grid-swiper.vue +224 -0
  129. package/lib/components/g-icon/g-icon.vue +72 -0
  130. package/lib/components/g-mask/g-mask.vue +126 -0
  131. package/lib/components/g-money/g-money.vue +174 -0
  132. package/lib/components/g-more/g-more.vue +68 -0
  133. package/lib/components/g-page-container/g-page-container.vue +470 -0
  134. package/lib/components/g-permission-popup/g-permission-popup.vue +80 -0
  135. package/lib/components/g-polyline-chat/g-polyline-chat.vue +255 -0
  136. package/lib/components/g-polyline-view/g-polyline-view.vue +104 -0
  137. package/lib/components/g-popup/g-popup.vue +449 -0
  138. package/lib/components/g-refresh-view/g-refresh-view.vue +213 -0
  139. package/lib/components/g-render-image/g-render-image.vue +222 -0
  140. package/lib/components/g-search/g-search.vue +274 -0
  141. package/lib/components/g-share-photo/g-share-photo.vue +75 -0
  142. package/lib/components/g-share-view/g-share-view.vue +157 -0
  143. package/lib/components/g-share-weixin/g-share-weixin.vue +106 -0
  144. package/lib/components/g-skeleton/g-skeleton.vue +55 -0
  145. package/lib/components/g-skeleton-view/g-skeleton-view.vue +78 -0
  146. package/lib/components/g-tag-editor/g-tag-editor.vue +482 -0
  147. package/lib/components/g-timer/g-timer.vue +61 -0
  148. package/lib/components/g-trtc/g-trtc.vue +347 -0
  149. package/lib/components/g-trtc-room/g-trtc-room.vue +524 -0
  150. package/lib/components/g-trtc-room/iconfont.scss +59 -0
  151. package/lib/components/g-trtc-tui/g-trtc-tui.vue +245 -0
  152. package/lib/components/g-upload/g-upload.vue +294 -0
  153. package/lib/components/g-waterfall/g-waterfall.vue +101 -0
  154. package/lib/configs/api.d.ts +7 -0
  155. package/lib/configs/api.js +6 -0
  156. package/lib/configs/app.d.ts +26 -0
  157. package/lib/configs/app.js +50 -0
  158. package/lib/configs/brand.d.ts +22 -0
  159. package/lib/configs/brand.js +26 -0
  160. package/lib/configs/cdn.d.ts +13 -0
  161. package/lib/configs/cdn.js +12 -0
  162. package/lib/configs/color.d.ts +62 -0
  163. package/lib/configs/color.js +66 -0
  164. package/lib/configs/env.d.ts +37 -0
  165. package/lib/configs/env.js +71 -0
  166. package/lib/configs/index.d.ts +170 -0
  167. package/lib/configs/index.js +82 -0
  168. package/lib/configs/link.d.ts +11 -0
  169. package/lib/configs/link.js +3 -0
  170. package/lib/configs/log.d.ts +9 -0
  171. package/lib/configs/log.js +8 -0
  172. package/lib/configs/mp.d.ts +15 -0
  173. package/lib/configs/mp.js +9 -0
  174. package/lib/configs/navigate.d.ts +17 -0
  175. package/lib/configs/navigate.js +5 -0
  176. package/lib/configs/page.d.ts +18 -0
  177. package/lib/configs/page.js +14 -0
  178. package/lib/configs/path.d.ts +11 -0
  179. package/lib/configs/path.js +10 -0
  180. package/lib/configs/storage.d.ts +7 -0
  181. package/lib/configs/storage.js +6 -0
  182. package/lib/configs/tabbar.d.ts +7 -0
  183. package/lib/configs/tabbar.js +6 -0
  184. package/lib/configs/toast.d.ts +18 -0
  185. package/lib/configs/toast.js +29 -0
  186. package/lib/configs/update.d.ts +45 -0
  187. package/lib/configs/update.js +6 -0
  188. package/lib/configs/upload.d.ts +30 -0
  189. package/lib/configs/upload.js +7 -0
  190. package/lib/configs/ver.d.ts +8 -0
  191. package/lib/configs/ver.js +28 -0
  192. package/lib/configs/web.d.ts +5 -0
  193. package/lib/configs/web.js +2 -0
  194. package/lib/hooks/index.d.ts +4 -0
  195. package/lib/hooks/index.js +4 -0
  196. package/lib/hooks/useI18n.d.ts +2 -0
  197. package/lib/hooks/useI18n.js +19 -0
  198. package/lib/hooks/useOverlay.d.ts +1 -0
  199. package/lib/hooks/useOverlay.js +17 -0
  200. package/lib/hooks/usePopup.d.ts +1 -0
  201. package/lib/hooks/usePopup.js +14 -0
  202. package/lib/hooks/useVersion.d.ts +6 -0
  203. package/lib/hooks/useVersion.js +21 -0
  204. package/lib/index.d.ts +26 -0
  205. package/lib/index.js +33 -0
  206. package/lib/mixins/app.d.ts +14 -0
  207. package/lib/mixins/app.js +105 -0
  208. package/lib/mixins/badge.d.ts +24 -0
  209. package/lib/mixins/badge.js +44 -0
  210. package/lib/mixins/debounce.d.ts +6 -0
  211. package/lib/mixins/debounce.js +11 -0
  212. package/lib/mixins/deep.d.ts +6 -0
  213. package/lib/mixins/deep.js +8 -0
  214. package/lib/mixins/index.d.ts +8 -0
  215. package/lib/mixins/index.js +8 -0
  216. package/lib/mixins/login.d.ts +4 -0
  217. package/lib/mixins/login.js +25 -0
  218. package/lib/mixins/model.d.ts +22 -0
  219. package/lib/mixins/model.js +29 -0
  220. package/lib/mixins/redirect.d.ts +8 -0
  221. package/lib/mixins/redirect.js +94 -0
  222. package/lib/mixins/share.d.ts +15 -0
  223. package/lib/mixins/share.js +55 -0
  224. package/lib/mixins/show.d.ts +9 -0
  225. package/lib/mixins/show.js +16 -0
  226. package/lib/mixins/webview.d.ts +26 -0
  227. package/lib/mixins/webview.js +225 -0
  228. package/lib/modules/app.d.ts +5 -0
  229. package/lib/modules/app.js +19 -0
  230. package/lib/modules/dict.d.ts +8 -0
  231. package/lib/modules/dict.js +43 -0
  232. package/lib/modules/im.d.ts +6 -0
  233. package/lib/modules/im.js +105 -0
  234. package/lib/modules/index.d.ts +8 -0
  235. package/lib/modules/index.js +8 -0
  236. package/lib/modules/launch.d.ts +5 -0
  237. package/lib/modules/launch.js +32 -0
  238. package/lib/modules/location.d.ts +5 -0
  239. package/lib/modules/location.js +57 -0
  240. package/lib/modules/login.d.ts +5 -0
  241. package/lib/modules/login.js +72 -0
  242. package/lib/modules/network.d.ts +5 -0
  243. package/lib/modules/network.js +39 -0
  244. package/lib/modules/system.d.ts +5 -0
  245. package/lib/modules/system.js +65 -0
  246. package/lib/styles/animate-vue.scss +3 -0
  247. package/lib/styles/animate.scss +27 -0
  248. package/lib/styles/bg-vue.scss +21 -0
  249. package/lib/styles/bg.scss +93 -0
  250. package/lib/styles/border.scss +218 -0
  251. package/lib/styles/flex-nvue.scss +64 -0
  252. package/lib/styles/flex-vue.scss +75 -0
  253. package/lib/styles/font.scss +59 -0
  254. package/lib/styles/index.scss +25 -0
  255. package/lib/styles/layout-nvue.scss +24 -0
  256. package/lib/styles/layout-vue.scss +30 -0
  257. package/lib/styles/layout.scss +76 -0
  258. package/lib/styles/opacity.scss +10 -0
  259. package/lib/styles/reset-vue.scss +46 -0
  260. package/lib/styles/shadow.scss +12 -0
  261. package/lib/styles/sizing-vue.scss +21 -0
  262. package/lib/styles/sizing.scss +21 -0
  263. package/lib/styles/spacing.scss +234 -0
  264. package/lib/styles/text-nvue.scss +21 -0
  265. package/lib/styles/text-vue.scss +70 -0
  266. package/lib/styles/text.scss +122 -0
  267. package/lib/styles/var.module.scss +29 -0
  268. package/lib/utils/audio.d.ts +14 -0
  269. package/lib/utils/audio.js +43 -0
  270. package/lib/utils/consts.d.ts +30 -0
  271. package/lib/utils/consts.js +52 -0
  272. package/lib/utils/cos.d.ts +15 -0
  273. package/lib/utils/cos.js +140 -0
  274. package/lib/utils/debounce.d.ts +2 -0
  275. package/lib/utils/debounce.js +30 -0
  276. package/lib/utils/file.d.ts +28 -0
  277. package/lib/utils/file.js +292 -0
  278. package/lib/utils/index.d.ts +166 -0
  279. package/lib/utils/index.js +485 -0
  280. package/lib/utils/locale.d.ts +6 -0
  281. package/lib/utils/locale.js +19 -0
  282. package/lib/utils/message.d.ts +9 -0
  283. package/lib/utils/message.js +63 -0
  284. package/lib/utils/navigate.d.ts +27 -0
  285. package/lib/utils/navigate.js +183 -0
  286. package/lib/utils/pages.d.ts +21 -0
  287. package/lib/utils/pages.js +79 -0
  288. package/lib/utils/permission.d.ts +16 -0
  289. package/lib/utils/permission.js +291 -0
  290. package/lib/utils/permit.d.ts +30 -0
  291. package/lib/utils/permit.js +181 -0
  292. package/lib/utils/query.d.ts +13 -0
  293. package/lib/utils/query.js +14 -0
  294. package/lib/utils/request.d.ts +8 -0
  295. package/lib/utils/request.js +126 -0
  296. package/lib/utils/storage.d.ts +53 -0
  297. package/lib/utils/storage.js +145 -0
  298. package/lib/utils/subscribe.d.ts +7 -0
  299. package/lib/utils/subscribe.js +94 -0
  300. package/lib/utils/throttle.d.ts +2 -0
  301. package/lib/utils/throttle.js +32 -0
  302. package/lib/utils/toast.d.ts +17 -0
  303. package/lib/utils/toast.js +66 -0
  304. package/lib/utils/uni.d.ts +1 -0
  305. package/lib/utils/uni.js +147 -0
  306. package/lib/utils/update.d.ts +9 -0
  307. package/lib/utils/update.js +376 -0
  308. package/package.json +49 -0
  309. package/types/index.d.ts +25 -0
  310. package/types/virtual.d.ts +1 -0
@@ -0,0 +1,170 @@
1
+ # g-page-container 页面容器
2
+
3
+ ::: tip 组件名
4
+ `g-page-container`
5
+
6
+ 发布路径:`@zfqh/uniapp/lib/components/g-page-container/g-page-container.vue`
7
+ :::
8
+
9
+ 完整页面骨架,包含导航栏、下拉刷新、滚动区、底部栏、安全区、背景层和返回/首页按钮。
10
+
11
+ ## 平台兼容性
12
+
13
+ | App(vue) | App(nvue) | H5 | 小程序 | Vue 2 | Vue 3 |
14
+ | --- | --- | --- | --- | --- | --- |
15
+ | √ | 依赖源码条件编译 | √ | √ | - | √ |
16
+
17
+ ## 使用前提
18
+
19
+ - 已安装并注册 `@zfqh/uniapp` 插件。
20
+ - 已按 [项目接入](./usage) 配置 easycom,或手动从构建产物导入组件。
21
+ - 尺寸类属性通常支持数字或带单位字符串;数字值会在组件内部通过 `uni.$uv.addUnit` 转成样式单位。
22
+ - 样式类属性中,`customStyle`、`xxxStyle` 接收对象,`customClass`、`xxxClass` 接收 class 字符串。
23
+
24
+ ## 基本使用
25
+
26
+ ```vue
27
+ <template>
28
+ <g-page-container
29
+ show-header
30
+ show-extra
31
+ has-tabbar
32
+ refresh-enabled
33
+ :show-navbar="false"
34
+ :triggered="refreshing"
35
+ @refresh="refresh"
36
+ @scrollbottom="loadMore"
37
+ >
38
+ <template #extra>
39
+ <g-search placeholder="搜索医生、医院或疾病" @search="search" />
40
+ </template>
41
+
42
+ <view class="g-p-24">
43
+ <doctor-card v-for="doctor in doctors" :key="doctor.id" :doctor="doctor" />
44
+ </view>
45
+ </g-page-container>
46
+ </template>
47
+
48
+ <script setup>
49
+ import { ref } from 'vue';
50
+
51
+ const refreshing = ref(false);
52
+ const doctors = ref([]);
53
+
54
+ async function refresh() {
55
+ refreshing.value = true;
56
+ doctors.value = await doctorApi.list({ page: 1 });
57
+ refreshing.value = false;
58
+ }
59
+
60
+ function search(keyword) {
61
+ doctorApi.list({ keyword });
62
+ }
63
+
64
+ function loadMore() {
65
+ doctorApi.nextPage();
66
+ }
67
+ </script>
68
+ ```
69
+
70
+ ## API
71
+
72
+ ### 页面容器 Props
73
+
74
+ | 属性 | 类型 | 默认值 | 必填 | 说明 |
75
+ | --- | --- | --- | --- | --- |
76
+ | `triggered` | `Boolean` | `-` | 否 | 下拉刷新受控状态。 |
77
+ | `spinnerColor` | `String` | `-` | 否 | spinner 颜色。 |
78
+ | `title` | `[String, Boolean]` | `''` | 否 | 标题文本;传 false 时可隐藏标题内容。 |
79
+ | `loading` | `[String, Boolean]` | `false` | 否 | 外部加载状态;组件内部也可能通过 setLoading 控制。 |
80
+ | `refreshEnabled` | `Boolean` | `false` | 否 | 是否启用下拉刷新。 |
81
+ | `showNavbar` | `Boolean` | `true` | 否 | 是否显示自定义导航栏。 |
82
+ | `showHeader` | `Boolean` | `false` | 否 | 是否显示头部区域。 |
83
+ | `showFooter` | `Boolean` | `false` | 否 | 是否显示底部区域。 |
84
+ | `showBack` | `Boolean` | `false` | 否 | 是否显示返回按钮。 |
85
+ | `showHome` | `Boolean` | `false` | 否 | 是否显示返回首页按钮。 |
86
+ | `showExtra` | `Boolean` | `true` | 否 | 是否显示 extra 插槽区域。 |
87
+ | `hasNavbar` | `Boolean` | `false` | 否 | 是否预留系统导航栏高度。 |
88
+ | `hasTabbar` | `Boolean` | `false` | 否 | 是否预留 tabBar 底部高度。 |
89
+ | `bgColor` | `String` | `() => color.bgColor` | 否 | 背景颜色。 |
90
+ | `titleColor` | `String` | `'#fff'` | 否 | 标题颜色。 |
91
+ | `titleSize` | `[String, Number]` | `18` | 否 | 标题字号。 |
92
+ | `titleBold` | `[String, Number]` | `500` | 否 | 标题是否加粗。 |
93
+ | `titleStyle` | `Object` | `() => ({})` | 否 | 自定义 title 区域 style 对象。 |
94
+ | `headerStyle` | `Object` | `() => ({})` | 否 | 自定义 header 区域 style 对象。 |
95
+ | `navbarStyle` | `Object` | `() => ({})` | 否 | 自定义 navbar 区域 style 对象。 |
96
+ | `footerStyle` | `Object` | `() => ({})` | 否 | 自定义 footer 区域 style 对象。 |
97
+ | `footerBorder` | `Boolean` | `true` | 否 | 底部栏是否显示上边框。 |
98
+ | `footerShadow` | `Boolean` | `false` | 否 | 底部栏是否显示阴影。 |
99
+ | `contentStyle` | `Object` | `() => ({})` | 否 | 自定义 content 区域 style 对象。 |
100
+ | `customStyle` | `Object` | `() => ({})` | 否 | 最外层自定义 style 对象。 |
101
+ | `loadingStyle` | `Object` | `() => ({})` | 否 | 自定义 loading 区域 style 对象。 |
102
+ | `backgroundStyle` | `Object` | `() => ({})` | 否 | 自定义 background 区域 style 对象。 |
103
+ | `leftStyle` | `Object` | `() => ({})` | 否 | 自定义 left 区域 style 对象。 |
104
+ | `rightStyle` | `Object` | `() => ({})` | 否 | 自定义 right 区域 style 对象。 |
105
+ | `footerSafeArea` | `Boolean` | `true` | 否 | 底部是否追加安全区高度。 |
106
+ | `animation` | `Boolean` | `false` | 否 | 组件公开属性 animation,用于控制该组件对应的渲染、交互或业务参数。 |
107
+ | `completeText` | `String` | `'刷新成功'` | 否 | complete 文案。 |
108
+ | `iconColor` | `String` | `'#fff'` | 否 | icon 颜色。 |
109
+ | `iconType` | `String` | `''` | 否 | 传给 g-icon 的图标类型,用于区分内置图标或图标库类型。 |
110
+ | `iconFont` | `String` | `''` | 否 | 图标字体类名前缀或字体族配置。 |
111
+ | `iconSize` | `[String, Number]` | `0` | 否 | 主图标尺寸,数字会按 uni.$uv.addUnit 转成 rpx/px。 |
112
+ | `homeIconSize` | `[String, Number]` | `0` | 否 | 首页图标尺寸。 |
113
+ | `iconName` | `String` | `'arrow-left'` | 否 | 主图标名称。 |
114
+ | `homeIconName` | `String` | `'home-fill'` | 否 | 首页图标名称。 |
115
+ | `refreshMode` | `String` | `'none'` | 否 | 组件公开属性 refreshMode,用于控制该组件对应的渲染、交互或业务参数。 |
116
+
117
+ ### 页面容器 Events
118
+
119
+ | 事件 | 说明 |
120
+ | --- | --- |
121
+ | `refresh` | 下拉刷新被触发时触发。 |
122
+ | `scroll` | 滚动时触发,透传 scroll-view 事件对象。 |
123
+ | `scrolltop` | 滚动到顶部时触发。 |
124
+ | `scrollbottom` | 滚动到底部时触发。 |
125
+
126
+ ### 页面容器 Slots
127
+
128
+ | 插槽 | 说明 |
129
+ | --- | --- |
130
+ | `left` | 导航栏左侧区域;g-page-container 中可替换返回/首页按钮。 |
131
+ | `title` | 标题区域。 |
132
+ | `right` | 导航栏右侧操作区。 |
133
+ | `extra` | 头部额外内容区,受 showExtra 控制。 |
134
+ | `content` | 完整内容区;提供后会替代默认滚动内容包装。 |
135
+ | `default` | 默认内容区域。 |
136
+ | `bottom` | 内容区底部插槽,位于滚动内容之后、footer 之前。 |
137
+ | `footer` | 底部固定栏内容。 |
138
+
139
+ ### 页面容器 Methods
140
+
141
+ | 方法 | 说明 |
142
+ | --- | --- |
143
+ | `setLoading(loading)` | 切换内部 loading 状态。 |
144
+ | `refresh()` | 触发刷新流程并向外抛出 refresh 事件。 |
145
+ | `scroll(e)` | 组件内部公开方法 scroll(e);通过 ref 调用前需要确认组件平台条件和当前状态。 |
146
+ | `scrolltop()` | 组件内部公开方法 scrolltop();通过 ref 调用前需要确认组件平台条件和当前状态。 |
147
+ | `scrollbottom()` | 组件内部公开方法 scrollbottom();通过 ref 调用前需要确认组件平台条件和当前状态。 |
148
+ | `scrollTo(e)` | 滚动到指定位置或元素。 |
149
+ | `getRect()` | 读取组件内部元素尺寸信息。 |
150
+
151
+ ### 页面容器 Internal State
152
+
153
+ | 类型 | 名称 | 说明 |
154
+ | --- | --- | --- |
155
+ | computed | `systemInfo` | 内部计算属性,用于把 props、平台信息或样式配置转换为模板可用值。 |
156
+ | computed | `topBarTitleHeight` | 内部计算属性,用于把 props、平台信息或样式配置转换为模板可用值。 |
157
+ | computed | `hasBg` | 内部计算属性,用于把 props、平台信息或样式配置转换为模板可用值。 |
158
+ | computed | `containerStyle` | 内部计算属性,用于把 props、平台信息或样式配置转换为模板可用值。 |
159
+ | computed | `_titleStyle` | 内部计算属性,用于把 props、平台信息或样式配置转换为模板可用值。 |
160
+ | computed | `_navbarStyle` | 内部计算属性,用于把 props、平台信息或样式配置转换为模板可用值。 |
161
+ | computed | `_leftStyle` | 内部计算属性,用于把 props、平台信息或样式配置转换为模板可用值。 |
162
+ | computed | `_loadingStyle` | 内部计算属性,用于把 props、平台信息或样式配置转换为模板可用值。 |
163
+ | computed | `_headerStyle` | 内部计算属性,用于把 props、平台信息或样式配置转换为模板可用值。 |
164
+ | computed | `_contentStyle` | 内部计算属性,用于把 props、平台信息或样式配置转换为模板可用值。 |
165
+ | computed | `_footerStyle` | 内部计算属性,用于把 props、平台信息或样式配置转换为模板可用值。 |
166
+ | data | `trigger` | 内部响应式状态,通常不建议由外部直接依赖。 |
167
+ | data | `scroll_top` | 内部响应式状态,通常不建议由外部直接依赖。 |
168
+ | data | `scrollTop` | 内部响应式状态,通常不建议由外部直接依赖。 |
169
+ | data | `pulling` | 内部响应式状态,通常不建议由外部直接依赖。 |
170
+ | data | `headerRect` | 内部响应式状态,通常不建议由外部直接依赖。 |
@@ -0,0 +1,117 @@
1
+ # g-permission-popup 权限弹窗
2
+
3
+ ::: tip 组件名
4
+ `g-permission-popup`
5
+
6
+ 发布路径:`@zfqh/uniapp/lib/components/g-permission-popup/g-permission-popup.vue`
7
+ :::
8
+
9
+ 权限申请辅助弹层,配合 `requestPermission` 使用。在 App 端申请权限时,顶部浮窗展示为什么需要该权限的说明文案。**上架应用市场必须包含此组件。**
10
+
11
+ ## 平台兼容性
12
+
13
+ | App(vue) | App(nvue) | H5 | 小程序 | Vue 2 | Vue 3 |
14
+ | --- | --- | --- | --- | --- | --- |
15
+ | √ | 依赖源码条件编译 | - | - | - | √ |
16
+
17
+ ## 使用前提
18
+
19
+ - 已安装并注册 `@zfqh/uniapp` 插件。
20
+ - 已按 [项目接入](./usage) 配置 easycom,或手动从构建产物导入组件。
21
+
22
+ ## 工作原理
23
+
24
+ 当调用 `requestPermission('camera')` 时:
25
+
26
+ 1. 系统弹出权限申请对话框
27
+ 2. 组件监听到 `requestPermission` 事件,在页面顶部显示浮窗,展示权限用途说明
28
+ 3. 用户授权或拒绝后,浮窗自动关闭
29
+
30
+ 每个权限的说明文案已内置在 `@zfqh/uniapp/lib/utils/permit` 中:
31
+
32
+ | 权限 | 说明文案 |
33
+ | --- | --- |
34
+ | `camera` | 我们需要获取您的相机权限,用于拍摄照片、录制视频、视频通话、扫码识别、发布内容等服务 |
35
+ | `record` | 我们需要获取您的麦克风权限,用于录制语音、语音通话,发布内容等服务 |
36
+ | `location` | 我们需要获取您的定位权限,用于城市定位、地址获取、位置获取,发现附近设备等服务 |
37
+ | `storage` | 我们需要获取您的文件存储权限,用于设置头像、保存图片、上传文件、发布内容等服务 |
38
+ | `bluetooth` | 我们需要获取您的蓝牙权限,用于数据传输、设备配对、发现附近设备等服务 |
39
+
40
+ ## 基本使用
41
+
42
+ 参考商户端体检、头像上传和脉诊设备连接页面的用法:先在需要申请权限的页面顶部放置弹窗,再在真实业务动作前调用 `requestPermission`。
43
+
44
+ ```vue
45
+ <template>
46
+ <!-- #ifdef APP -->
47
+ <g-permission-popup v-if="showPermissionPopup" />
48
+ <!-- #endif -->
49
+
50
+ <view>
51
+ <button @click="chooseAvatar('camera')">拍照上传头像</button>
52
+ <button @click="chooseAvatar('album')">从相册选择</button>
53
+ <button @click="scanDevice">搜索蓝牙设备</button>
54
+ </view>
55
+ </template>
56
+
57
+ <script setup>
58
+ import { computed } from 'vue';
59
+ import { requestPermission } from '@zfqh/uniapp';
60
+ import { currentLocale } from '@/locales';
61
+
62
+ const showPermissionPopup = computed(() => currentLocale.value === 'zh-CN');
63
+
64
+ async function chooseAvatar(sourceType) {
65
+ if (sourceType === 'camera') {
66
+ await requestPermission('camera');
67
+ }
68
+ await requestPermission('storage');
69
+
70
+ const { tempFilePaths, tempFiles } = await uni.chooseImage({
71
+ count: 1,
72
+ sourceType: [sourceType],
73
+ sizeType: ['compressed'],
74
+ });
75
+
76
+ await uploadAvatar(tempFilePaths[0], tempFiles?.[0]);
77
+ }
78
+
79
+ async function scanDevice() {
80
+ await requestPermission('bluetooth');
81
+ await requestPermission('location', false);
82
+
83
+ await searchBluetoothDevices();
84
+ }
85
+
86
+ async function uploadAvatar(path, file) {
87
+ // 上传图片到业务服务
88
+ }
89
+
90
+ async function searchBluetoothDevices() {
91
+ // 搜索并连接蓝牙设备
92
+ }
93
+ </script>
94
+ ```
95
+
96
+ 如果页面没有自定义导航栏,需要让弹窗避开系统状态栏和导航栏时,可以传入 `:has-navbar="false"`;需要调整位置或宽度时使用 `customStyle`。
97
+
98
+ ::: warning 注意
99
+ `g-permission-popup` 必须放在每个需要申请权限的页面中,不能放在 App.vue 或全局布局组件中(App 和小程序不支持全局组件跨页面渲染)。
100
+ :::
101
+
102
+ ## API
103
+
104
+ ### Props
105
+
106
+ | 属性 | 类型 | 默认值 | 必填 | 说明 |
107
+ | --- | --- | --- | --- | --- |
108
+ | `customStyle` | `Object` | `() => ({})` | 否 | 最外层自定义 style 对象。 |
109
+ | `hasNavbar` | `Boolean` | `true` | 否 | 是否预留系统导航栏高度。 |
110
+
111
+ ### Events
112
+
113
+ 无显式组件事件。
114
+
115
+ ### Slots
116
+
117
+ 无显式插槽。
@@ -0,0 +1,102 @@
1
+ # g-polyline-chat 折线聊天
2
+
3
+ ::: tip 组件名
4
+ `g-polyline-chat`
5
+
6
+ 发布路径:`@zfqh/uniapp/lib/components/g-polyline-chat/g-polyline-chat.vue`
7
+ :::
8
+
9
+ 柱状/折线组合趋势视图,用 bars 与 data 渲染聊天或统计类走势图。
10
+
11
+ ## 平台兼容性
12
+
13
+ | App(vue) | App(nvue) | H5 | 小程序 | Vue 2 | Vue 3 |
14
+ | --- | --- | --- | --- | --- | --- |
15
+ | √ | 依赖源码条件编译 | √ | √ | - | √ |
16
+
17
+ ## 使用前提
18
+
19
+ - 已安装并注册 `@zfqh/uniapp` 插件。
20
+ - 已按 [项目接入](./usage) 配置 easycom,或手动从构建产物导入组件。
21
+ - 尺寸类属性通常支持数字或带单位字符串;数字值会在组件内部通过 `uni.$uv.addUnit` 转成样式单位。
22
+ - 样式类属性中,`customStyle`、`xxxStyle` 接收对象,`customClass`、`xxxClass` 接收 class 字符串。
23
+
24
+ ## 基本使用
25
+
26
+ ```vue
27
+ <template>
28
+ <g-polyline-chat
29
+ :bars="pulseBars"
30
+ :data="pulseData"
31
+ :width="320"
32
+ :height="260"
33
+ main-color="#A3E5D9"
34
+ line-color="#39BDA7"
35
+ />
36
+ </template>
37
+
38
+ <script setup>
39
+ const pulseBars = [
40
+ ['弦', '软'],
41
+ ['滑', '细'],
42
+ ['浮', '沉'],
43
+ ['数', '迟'],
44
+ ];
45
+
46
+ const pulseData = {
47
+ title: '左手寸脉',
48
+ color: '#39BDA7',
49
+ data: [42, 64, 58, 76],
50
+ };
51
+ </script>
52
+ ```
53
+
54
+ ## API
55
+
56
+ ### 折线聊天 Props
57
+
58
+ | 属性 | 类型 | 默认值 | 必填 | 说明 |
59
+ | --- | --- | --- | --- | --- |
60
+ | `bars` | `Array` | `() => [ ['弦', '软'], ['滑', '细'], ['浮', '沉'], ['数', '迟'], ]` | 否 | 组件公开属性 bars,用于控制该组件对应的渲染、交互或业务参数。 |
61
+ | `mainColor` | `String` | `'#A3E5D9'` | 否 | main 颜色。 |
62
+ | `bgColor` | `String` | `'#F7F3E9'` | 否 | 背景颜色。 |
63
+ | `lineColor` | `String` | `'#B8EAE2'` | 否 | line 颜色。 |
64
+ | `border` | `[String, Boolean]` | `false` | 否 | 是否显示边框。 |
65
+ | `borderColor` | `String` | `'transparent'` | 否 | border 颜色。 |
66
+ | `borderWidth` | `[String, Number]` | `1` | 否 | 组件公开属性 borderWidth,用于控制该组件对应的渲染、交互或业务参数。 |
67
+ | `textColor` | `String` | `'#333'` | 否 | text 颜色。 |
68
+ | `textSize` | `Number` | `18` | 否 | text 尺寸。 |
69
+ | `data` | `[Array, Object]` | `() => ({ title: '', color: '', data: [], })` | 否 | 组件渲染或业务计算使用的数据源。 |
70
+ | `height` | `Number` | `300` | 否 | 高度。 |
71
+ | `width` | `Number` | `300` | 否 | 宽度。 |
72
+ | `space` | `Number` | `16` | 否 | 组件公开属性 space,用于控制该组件对应的渲染、交互或业务参数。 |
73
+
74
+ ### 折线聊天 Events
75
+
76
+ 无显式组件事件。
77
+
78
+ ### 折线聊天 Slots
79
+
80
+ 无显式插槽。
81
+
82
+ ### 折线聊天 Methods
83
+
84
+ 无 Options API methods。
85
+
86
+ ### 折线聊天 Internal State
87
+
88
+ | 类型 | 名称 | 说明 |
89
+ | --- | --- | --- |
90
+ | computed | `step` | 内部计算属性,用于把 props、平台信息或样式配置转换为模板可用值。 |
91
+ | computed | `list` | 内部计算属性,用于把 props、平台信息或样式配置转换为模板可用值。 |
92
+ | computed | `style` | 内部计算属性,用于把 props、平台信息或样式配置转换为模板可用值。 |
93
+ | computed | `barWidth` | 内部计算属性,用于把 props、平台信息或样式配置转换为模板可用值。 |
94
+ | computed | `wrapStyle` | 内部计算属性,用于把 props、平台信息或样式配置转换为模板可用值。 |
95
+ | computed | `innerStyle` | 内部计算属性,用于把 props、平台信息或样式配置转换为模板可用值。 |
96
+ | computed | `barStyle` | 内部计算属性,用于把 props、平台信息或样式配置转换为模板可用值。 |
97
+ | computed | `mainStyle` | 内部计算属性,用于把 props、平台信息或样式配置转换为模板可用值。 |
98
+ | computed | `lineStyle` | 内部计算属性,用于把 props、平台信息或样式配置转换为模板可用值。 |
99
+ | computed | `textStyle` | 内部计算属性,用于把 props、平台信息或样式配置转换为模板可用值。 |
100
+ | data | `id` | 内部响应式状态,通常不建议由外部直接依赖。 |
101
+ | data | `realWidth` | 内部响应式状态,通常不建议由外部直接依赖。 |
102
+ | data | `value` | 内部响应式状态,通常不建议由外部直接依赖。 |
@@ -0,0 +1,67 @@
1
+ # g-polyline-view 折线展示
2
+
3
+ ::: tip 组件名
4
+ `g-polyline-view`
5
+
6
+ 发布路径:`@zfqh/uniapp/lib/components/g-polyline-view/g-polyline-view.vue`
7
+ :::
8
+
9
+ 简单折线段渲染组件,根据数据点生成多段连线。
10
+
11
+ ## 平台兼容性
12
+
13
+ | App(vue) | App(nvue) | H5 | 小程序 | Vue 2 | Vue 3 |
14
+ | --- | --- | --- | --- | --- | --- |
15
+ | √ | 依赖源码条件编译 | √ | √ | - | √ |
16
+
17
+ ## 使用前提
18
+
19
+ - 已安装并注册 `@zfqh/uniapp` 插件。
20
+ - 已按 [项目接入](./usage) 配置 easycom,或手动从构建产物导入组件。
21
+ - 尺寸类属性通常支持数字或带单位字符串;数字值会在组件内部通过 `uni.$uv.addUnit` 转成样式单位。
22
+ - 样式类属性中,`customStyle`、`xxxStyle` 接收对象,`customClass`、`xxxClass` 接收 class 字符串。
23
+
24
+ ## 基本使用
25
+
26
+ ```vue
27
+ <template>
28
+ <view class="trend-card">
29
+ <g-polyline-view :data="points" color="#39BDA7" :start-left="12" :end-left="72" />
30
+ </view>
31
+ </template>
32
+
33
+ <script setup>
34
+ const points = [12, 38, 26, 56, 42, 68];
35
+ </script>
36
+ ```
37
+
38
+ ## API
39
+
40
+ ### 折线展示 Props
41
+
42
+ | 属性 | 类型 | 默认值 | 必填 | 说明 |
43
+ | --- | --- | --- | --- | --- |
44
+ | `data` | `Array` | `() => []` | 否 | 组件渲染或业务计算使用的数据源。 |
45
+ | `color` | `String` | `''` | 否 | 文字或图标主色。 |
46
+ | `startLeft` | `Number` | `0` | 否 | 组件公开属性 startLeft,用于控制该组件对应的渲染、交互或业务参数。 |
47
+ | `endLeft` | `Number` | `0` | 否 | 组件公开属性 endLeft,用于控制该组件对应的渲染、交互或业务参数。 |
48
+
49
+ ### 折线展示 Events
50
+
51
+ 无显式组件事件。
52
+
53
+ ### 折线展示 Slots
54
+
55
+ 无显式插槽。
56
+
57
+ ### 折线展示 Methods
58
+
59
+ 无 Options API methods。
60
+
61
+ ### 折线展示 Internal State
62
+
63
+ | 类型 | 名称 | 说明 |
64
+ | --- | --- | --- |
65
+ | computed | `list` | 内部计算属性,用于把 props、平台信息或样式配置转换为模板可用值。 |
66
+ | computed | `colors` | 内部计算属性,用于把 props、平台信息或样式配置转换为模板可用值。 |
67
+ | computed | `lineStyle` | 内部计算属性,用于把 props、平台信息或样式配置转换为模板可用值。 |
@@ -0,0 +1,144 @@
1
+ # g-popup 业务弹窗
2
+
3
+ ::: tip 组件名
4
+ `g-popup`
5
+
6
+ 发布路径:`@zfqh/uniapp/lib/components/g-popup/g-popup.vue`
7
+ :::
8
+
9
+ 通用弹窗,封装 uv-popup 的标题、内容、底部按钮、关闭、确认和样式配置。
10
+
11
+ ## 平台兼容性
12
+
13
+ | App(vue) | App(nvue) | H5 | 小程序 | Vue 2 | Vue 3 |
14
+ | --- | --- | --- | --- | --- | --- |
15
+ | √ | 依赖源码条件编译 | √ | √ | - | √ |
16
+
17
+ ## 使用前提
18
+
19
+ - 已安装并注册 `@zfqh/uniapp` 插件。
20
+ - 已按 [项目接入](./usage) 配置 easycom,或手动从构建产物导入组件。
21
+ - 尺寸类属性通常支持数字或带单位字符串;数字值会在组件内部通过 `uni.$uv.addUnit` 转成样式单位。
22
+ - 样式类属性中,`customStyle`、`xxxStyle` 接收对象,`customClass`、`xxxClass` 接收 class 字符串。
23
+
24
+ ## 基本使用
25
+
26
+ ```vue
27
+ <template>
28
+ <uv-button type="primary" text="清空消息" @click="popupRef?.open()" />
29
+
30
+ <g-popup
31
+ ref="popupRef"
32
+ title="确认清空"
33
+ content="清空后消息列表不可恢复,是否继续?"
34
+ confirm-text="清空"
35
+ :close-on-click-overlay="false"
36
+ @confirm="clearMessages"
37
+ />
38
+ </template>
39
+
40
+ <script setup>
41
+ import { ref } from 'vue';
42
+
43
+ const popupRef = ref(null);
44
+
45
+ function clearMessages() {
46
+ messageApi.clear();
47
+ }
48
+ </script>
49
+ ```
50
+
51
+ ## API
52
+
53
+ ### 业务弹窗 Props
54
+
55
+ | 属性 | 类型 | 默认值 | 必填 | 说明 |
56
+ | --- | --- | --- | --- | --- |
57
+ | `size` | `String` | `'normal'` | 否 | 组件尺寸。 |
58
+ | `content` | `String` | `''` | 否 | 组件公开属性 content,用于控制该组件对应的渲染、交互或业务参数。 |
59
+ | `showHeader` | `Boolean` | `true` | 否 | 是否显示头部区域。 |
60
+ | `showTitle` | `Boolean` | `true` | 否 | 是否显示 Title 区域或能力。 |
61
+ | `showContent` | `Boolean` | `true` | 否 | 是否显示 Content 区域或能力。 |
62
+ | `showFooter` | `Boolean` | `true` | 否 | 是否显示底部区域。 |
63
+ | `showCancel` | `Boolean` | `true` | 否 | 是否显示 Cancel 区域或能力。 |
64
+ | `showConfirm` | `Boolean` | `true` | 否 | 是否显示 Confirm 区域或能力。 |
65
+ | `title` | `String` | `'提示'` | 否 | 标题文本;传 false 时可隐藏标题内容。 |
66
+ | `titleAlign` | `String` | `'center'` | 否 | 组件公开属性 titleAlign,用于控制该组件对应的渲染、交互或业务参数。 |
67
+ | `titleBorder` | `Boolean` | `false` | 否 | 组件公开属性 titleBorder,用于控制该组件对应的渲染、交互或业务参数。 |
68
+ | `titleBold` | `Boolean` | `true` | 否 | 标题是否加粗。 |
69
+ | `align` | `String` | `'left'` | 否 | 组件公开属性 align,用于控制该组件对应的渲染、交互或业务参数。 |
70
+ | `width` | `[String, Number]` | `325` | 否 | 宽度。 |
71
+ | `duration` | `[String, Number]` | `300` | 否 | 动画或显示持续时间,单位通常为毫秒。 |
72
+ | `round` | `[Number, String]` | `8` | 否 | 组件公开属性 round,用于控制该组件对应的渲染、交互或业务参数。 |
73
+ | `zoom` | `Boolean` | `true` | 否 | 组件公开属性 zoom,用于控制该组件对应的渲染、交互或业务参数。 |
74
+ | `bgColor` | `String` | `'#fff'` | 否 | 背景颜色。 |
75
+ | `closeOnClickOverlay` | `Boolean` | `true` | 否 | 点击遮罩时是否关闭。 |
76
+ | `overlayOpacity` | `[Number, String]` | `0.5` | 否 | 组件公开属性 overlayOpacity,用于控制该组件对应的渲染、交互或业务参数。 |
77
+ | `overlay` | `Boolean` | `true` | 否 | 组件公开属性 overlay,用于控制该组件对应的渲染、交互或业务参数。 |
78
+ | `closeIconPos` | `String` | `'top-right'` | 否 | 组件公开属性 closeIconPos,用于控制该组件对应的渲染、交互或业务参数。 |
79
+ | `zIndex` | `[Number, String]` | `10075` | 否 | 层级。 |
80
+ | `mode` | `String` | `'center'` | 否 | 组件模式,不同组件含义不同;例如 popup 方位、tag-editor 编辑模式、refresh-view 刷新模式。 |
81
+ | `cancelText` | `[String, Boolean]` | `'取 消'` | 否 | 取消按钮文案。 |
82
+ | `confirmText` | `[String, Boolean]` | `'确 定'` | 否 | 确认按钮文案。 |
83
+ | `closeable` | `Boolean` | `true` | 否 | 是否显示关闭按钮。 |
84
+ | `safeAreaInsetBottom` | `Boolean` | `true` | 否 | 组件公开属性 safeAreaInsetBottom,用于控制该组件对应的渲染、交互或业务参数。 |
85
+ | `headerBorder` | `Boolean` | `false` | 否 | 组件公开属性 headerBorder,用于控制该组件对应的渲染、交互或业务参数。 |
86
+ | `footerBorder` | `Boolean` | `false` | 否 | 底部栏是否显示上边框。 |
87
+ | `closeOnConfirm` | `Boolean` | `true` | 否 | 点击确认按钮后是否自动关闭。 |
88
+ | `closeOnCancel` | `Boolean` | `true` | 否 | 点击取消按钮后是否自动关闭。 |
89
+ | `cancelProps` | `Object` | `() => ({})` | 否 | 组件公开属性 cancelProps,用于控制该组件对应的渲染、交互或业务参数。 |
90
+ | `confirmProps` | `Object` | `() => ({})` | 否 | 组件公开属性 confirmProps,用于控制该组件对应的渲染、交互或业务参数。 |
91
+ | `buttonProps` | `Object` | `() => ({})` | 否 | 组件公开属性 buttonProps,用于控制该组件对应的渲染、交互或业务参数。 |
92
+ | `headerStyle` | `Object` | `() => ({})` | 否 | 自定义 header 区域 style 对象。 |
93
+ | `titleStyle` | `Object` | `() => ({})` | 否 | 自定义 title 区域 style 对象。 |
94
+ | `footerStyle` | `Object` | `() => ({})` | 否 | 自定义 footer 区域 style 对象。 |
95
+ | `scrollStyle` | `Object` | `() => ({})` | 否 | 自定义 scroll 区域 style 对象。 |
96
+ | `contentStyle` | `Object` | `() => ({})` | 否 | 自定义 content 区域 style 对象。 |
97
+ | `customStyle` | `Object` | `() => ({})` | 否 | 最外层自定义 style 对象。 |
98
+ | `overlayStyle` | `Object` | `() => ({})` | 否 | 自定义 overlay 区域 style 对象。 |
99
+
100
+ ### 业务弹窗 Events
101
+
102
+ | 事件 | 说明 |
103
+ | --- | --- |
104
+ | `change` | 值或状态变化时触发。 |
105
+ | `cancel` | 点击取消按钮或执行取消动作时触发。 |
106
+ | `confirm` | 点击确认按钮或执行确认动作时触发。 |
107
+
108
+ ### 业务弹窗 Slots
109
+
110
+ | 插槽 | 说明 |
111
+ | --- | --- |
112
+ | `header` | 弹窗头部区域。 |
113
+ | `content` | 完整内容区;提供后会替代默认滚动内容包装。 |
114
+ | `default` | 默认内容区域。 |
115
+ | `footer` | 底部固定栏内容。 |
116
+
117
+ ### 业务弹窗 Methods
118
+
119
+ | 方法 | 说明 |
120
+ | --- | --- |
121
+ | `change(e)` | 处理变更事件并同步内部状态。 |
122
+ | `close()` | 关闭组件或弹层。 |
123
+ | `open(opts = {})` | 打开组件或弹层;部分组件支持传入选项覆盖当前展示内容。 |
124
+ | `cancel()` | 组件内部公开方法 cancel();通过 ref 调用前需要确认组件平台条件和当前状态。 |
125
+ | `confirm()` | 组件内部公开方法 confirm();通过 ref 调用前需要确认组件平台条件和当前状态。 |
126
+
127
+ ### 业务弹窗 Internal State
128
+
129
+ | 类型 | 名称 | 说明 |
130
+ | --- | --- | --- |
131
+ | computed | `style` | 内部计算属性,用于把 props、平台信息或样式配置转换为模板可用值。 |
132
+ | computed | `options` | 内部计算属性,用于把 props、平台信息或样式配置转换为模板可用值。 |
133
+ | computed | `_headerStyle` | 内部计算属性,用于把 props、平台信息或样式配置转换为模板可用值。 |
134
+ | computed | `_titleStyle` | 内部计算属性,用于把 props、平台信息或样式配置转换为模板可用值。 |
135
+ | computed | `_footerStyle` | 内部计算属性,用于把 props、平台信息或样式配置转换为模板可用值。 |
136
+ | computed | `_contentStyle` | 内部计算属性,用于把 props、平台信息或样式配置转换为模板可用值。 |
137
+ | computed | `_scrollStyle` | 内部计算属性,用于把 props、平台信息或样式配置转换为模板可用值。 |
138
+ | computed | `_cancelProps` | 内部计算属性,用于把 props、平台信息或样式配置转换为模板可用值。 |
139
+ | computed | `_confirmProps` | 内部计算属性,用于把 props、平台信息或样式配置转换为模板可用值。 |
140
+ | computed | `_customStyle` | 内部计算属性,用于把 props、平台信息或样式配置转换为模板可用值。 |
141
+ | data | `opts` | 内部响应式状态,通常不建议由外部直接依赖。 |
142
+ | data | `visible` | 内部响应式状态,通常不建议由外部直接依赖。 |
143
+ | data | `resolve` | 内部响应式状态,通常不建议由外部直接依赖。 |
144
+ | data | `reject` | 内部响应式状态,通常不建议由外部直接依赖。 |