@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.
- package/CHANGELOG.md +16 -0
- package/LICENSE +21 -0
- package/README.md +39 -0
- package/docs/api/apis/core.md +189 -0
- package/docs/api/apis/index.md +82 -0
- package/docs/api/apis/request.md +369 -0
- package/docs/api/configs/api.md +32 -0
- package/docs/api/configs/app.md +43 -0
- package/docs/api/configs/brand.md +43 -0
- package/docs/api/configs/cdn.md +35 -0
- package/docs/api/configs/color.md +144 -0
- package/docs/api/configs/env.md +120 -0
- package/docs/api/configs/index.md +394 -0
- package/docs/api/configs/link.md +33 -0
- package/docs/api/configs/log.md +27 -0
- package/docs/api/configs/mp.md +34 -0
- package/docs/api/configs/navigate.md +27 -0
- package/docs/api/configs/page.md +32 -0
- package/docs/api/configs/path.md +27 -0
- package/docs/api/configs/storage.md +24 -0
- package/docs/api/configs/tabbar.md +29 -0
- package/docs/api/configs/toast.md +35 -0
- package/docs/api/configs/update.md +25 -0
- package/docs/api/configs/upload.md +45 -0
- package/docs/api/configs/ver.md +32 -0
- package/docs/api/configs/web.md +28 -0
- package/docs/api/hooks/index.md +182 -0
- package/docs/api/hooks/useI18n.md +27 -0
- package/docs/api/hooks/useOverlay.md +37 -0
- package/docs/api/hooks/usePopup.md +35 -0
- package/docs/api/hooks/useVersion.md +23 -0
- package/docs/api/index.md +269 -0
- package/docs/api/mixins/app.md +29 -0
- package/docs/api/mixins/badge.md +23 -0
- package/docs/api/mixins/debounce.md +32 -0
- package/docs/api/mixins/deep.md +29 -0
- package/docs/api/mixins/index.md +23 -0
- package/docs/api/mixins/login.md +22 -0
- package/docs/api/mixins/model.md +26 -0
- package/docs/api/mixins/redirect.md +26 -0
- package/docs/api/mixins/share.md +29 -0
- package/docs/api/mixins/show.md +27 -0
- package/docs/api/mixins/webview.md +27 -0
- package/docs/api/modules/app.md +30 -0
- package/docs/api/modules/dict.md +28 -0
- package/docs/api/modules/im.md +22 -0
- package/docs/api/modules/index.md +44 -0
- package/docs/api/modules/launch.md +26 -0
- package/docs/api/modules/location.md +25 -0
- package/docs/api/modules/login.md +35 -0
- package/docs/api/modules/network.md +26 -0
- package/docs/api/modules/system.md +29 -0
- package/docs/api/utils/audio.md +84 -0
- package/docs/api/utils/consts.md +201 -0
- package/docs/api/utils/cos.md +269 -0
- package/docs/api/utils/debounce.md +89 -0
- package/docs/api/utils/file.md +78 -0
- package/docs/api/utils/index.md +547 -0
- package/docs/api/utils/locale.md +32 -0
- package/docs/api/utils/message.md +81 -0
- package/docs/api/utils/navigate.md +267 -0
- package/docs/api/utils/pages.md +205 -0
- package/docs/api/utils/permission.md +28 -0
- package/docs/api/utils/permit.md +62 -0
- package/docs/api/utils/query.md +89 -0
- package/docs/api/utils/request.md +34 -0
- package/docs/api/utils/storage.md +145 -0
- package/docs/api/utils/subscribe.md +77 -0
- package/docs/api/utils/throttle.md +101 -0
- package/docs/api/utils/toast.md +164 -0
- package/docs/api/utils/uni.md +28 -0
- package/docs/api/utils/update.md +165 -0
- package/docs/components/g-back-button.md +76 -0
- package/docs/components/g-checkbox-list.md +101 -0
- package/docs/components/g-container.md +93 -0
- package/docs/components/g-data-list.md +106 -0
- package/docs/components/g-dot-text.md +79 -0
- package/docs/components/g-env.md +75 -0
- package/docs/components/g-float.md +83 -0
- package/docs/components/g-grid-image.md +91 -0
- package/docs/components/g-grid-swiper.md +99 -0
- package/docs/components/g-icon.md +106 -0
- package/docs/components/g-mask.md +82 -0
- package/docs/components/g-money.md +90 -0
- package/docs/components/g-more.md +78 -0
- package/docs/components/g-page-container.md +170 -0
- package/docs/components/g-permission-popup.md +117 -0
- package/docs/components/g-polyline-chat.md +102 -0
- package/docs/components/g-polyline-view.md +67 -0
- package/docs/components/g-popup.md +144 -0
- package/docs/components/g-refresh-view.md +118 -0
- package/docs/components/g-render-image.md +83 -0
- package/docs/components/g-search.md +120 -0
- package/docs/components/g-share-photo.md +77 -0
- package/docs/components/g-share-view.md +83 -0
- package/docs/components/g-share-weixin.md +81 -0
- package/docs/components/g-skeleton-view.md +71 -0
- package/docs/components/g-skeleton.md +64 -0
- package/docs/components/g-tag-editor.md +134 -0
- package/docs/components/g-timer.md +72 -0
- package/docs/components/g-trtc-room.md +116 -0
- package/docs/components/g-trtc-tui.md +84 -0
- package/docs/components/g-trtc.md +124 -0
- package/docs/components/g-upload.md +117 -0
- package/docs/components/g-waterfall.md +84 -0
- package/docs/components/index.md +109 -0
- package/docs/components/styles/base-styles.md +367 -0
- package/docs/components/styles/global-vars.md +150 -0
- package/docs/components/usage.md +112 -0
- package/docs/faq/index.md +78 -0
- package/docs/guide/getting-started.md +195 -0
- package/docs/guide/project-frame.md +297 -0
- package/docs/index.md +80 -0
- package/lib/apis/core.d.ts +12 -0
- package/lib/apis/core.js +13 -0
- package/lib/apis/index.d.ts +2 -0
- package/lib/apis/index.js +2 -0
- package/lib/apis/request.d.ts +4 -0
- package/lib/apis/request.js +27 -0
- package/lib/components/g-back-button/g-back-button.vue +141 -0
- package/lib/components/g-checkbox-list/g-checkbox-list.vue +156 -0
- package/lib/components/g-container/g-container.vue +159 -0
- package/lib/components/g-data-list/g-data-list.vue +192 -0
- package/lib/components/g-dot-text/g-dot-text.vue +114 -0
- package/lib/components/g-env/g-env.vue +123 -0
- package/lib/components/g-float/g-float.vue +131 -0
- package/lib/components/g-grid-image/g-grid-image.vue +84 -0
- package/lib/components/g-grid-swiper/g-grid-swiper.vue +224 -0
- package/lib/components/g-icon/g-icon.vue +72 -0
- package/lib/components/g-mask/g-mask.vue +126 -0
- package/lib/components/g-money/g-money.vue +174 -0
- package/lib/components/g-more/g-more.vue +68 -0
- package/lib/components/g-page-container/g-page-container.vue +470 -0
- package/lib/components/g-permission-popup/g-permission-popup.vue +80 -0
- package/lib/components/g-polyline-chat/g-polyline-chat.vue +255 -0
- package/lib/components/g-polyline-view/g-polyline-view.vue +104 -0
- package/lib/components/g-popup/g-popup.vue +449 -0
- package/lib/components/g-refresh-view/g-refresh-view.vue +213 -0
- package/lib/components/g-render-image/g-render-image.vue +222 -0
- package/lib/components/g-search/g-search.vue +274 -0
- package/lib/components/g-share-photo/g-share-photo.vue +75 -0
- package/lib/components/g-share-view/g-share-view.vue +157 -0
- package/lib/components/g-share-weixin/g-share-weixin.vue +106 -0
- package/lib/components/g-skeleton/g-skeleton.vue +55 -0
- package/lib/components/g-skeleton-view/g-skeleton-view.vue +78 -0
- package/lib/components/g-tag-editor/g-tag-editor.vue +482 -0
- package/lib/components/g-timer/g-timer.vue +61 -0
- package/lib/components/g-trtc/g-trtc.vue +347 -0
- package/lib/components/g-trtc-room/g-trtc-room.vue +524 -0
- package/lib/components/g-trtc-room/iconfont.scss +59 -0
- package/lib/components/g-trtc-tui/g-trtc-tui.vue +245 -0
- package/lib/components/g-upload/g-upload.vue +294 -0
- package/lib/components/g-waterfall/g-waterfall.vue +101 -0
- package/lib/configs/api.d.ts +7 -0
- package/lib/configs/api.js +6 -0
- package/lib/configs/app.d.ts +26 -0
- package/lib/configs/app.js +50 -0
- package/lib/configs/brand.d.ts +22 -0
- package/lib/configs/brand.js +26 -0
- package/lib/configs/cdn.d.ts +13 -0
- package/lib/configs/cdn.js +12 -0
- package/lib/configs/color.d.ts +62 -0
- package/lib/configs/color.js +66 -0
- package/lib/configs/env.d.ts +37 -0
- package/lib/configs/env.js +71 -0
- package/lib/configs/index.d.ts +170 -0
- package/lib/configs/index.js +82 -0
- package/lib/configs/link.d.ts +11 -0
- package/lib/configs/link.js +3 -0
- package/lib/configs/log.d.ts +9 -0
- package/lib/configs/log.js +8 -0
- package/lib/configs/mp.d.ts +15 -0
- package/lib/configs/mp.js +9 -0
- package/lib/configs/navigate.d.ts +17 -0
- package/lib/configs/navigate.js +5 -0
- package/lib/configs/page.d.ts +18 -0
- package/lib/configs/page.js +14 -0
- package/lib/configs/path.d.ts +11 -0
- package/lib/configs/path.js +10 -0
- package/lib/configs/storage.d.ts +7 -0
- package/lib/configs/storage.js +6 -0
- package/lib/configs/tabbar.d.ts +7 -0
- package/lib/configs/tabbar.js +6 -0
- package/lib/configs/toast.d.ts +18 -0
- package/lib/configs/toast.js +29 -0
- package/lib/configs/update.d.ts +45 -0
- package/lib/configs/update.js +6 -0
- package/lib/configs/upload.d.ts +30 -0
- package/lib/configs/upload.js +7 -0
- package/lib/configs/ver.d.ts +8 -0
- package/lib/configs/ver.js +28 -0
- package/lib/configs/web.d.ts +5 -0
- package/lib/configs/web.js +2 -0
- package/lib/hooks/index.d.ts +4 -0
- package/lib/hooks/index.js +4 -0
- package/lib/hooks/useI18n.d.ts +2 -0
- package/lib/hooks/useI18n.js +19 -0
- package/lib/hooks/useOverlay.d.ts +1 -0
- package/lib/hooks/useOverlay.js +17 -0
- package/lib/hooks/usePopup.d.ts +1 -0
- package/lib/hooks/usePopup.js +14 -0
- package/lib/hooks/useVersion.d.ts +6 -0
- package/lib/hooks/useVersion.js +21 -0
- package/lib/index.d.ts +26 -0
- package/lib/index.js +33 -0
- package/lib/mixins/app.d.ts +14 -0
- package/lib/mixins/app.js +105 -0
- package/lib/mixins/badge.d.ts +24 -0
- package/lib/mixins/badge.js +44 -0
- package/lib/mixins/debounce.d.ts +6 -0
- package/lib/mixins/debounce.js +11 -0
- package/lib/mixins/deep.d.ts +6 -0
- package/lib/mixins/deep.js +8 -0
- package/lib/mixins/index.d.ts +8 -0
- package/lib/mixins/index.js +8 -0
- package/lib/mixins/login.d.ts +4 -0
- package/lib/mixins/login.js +25 -0
- package/lib/mixins/model.d.ts +22 -0
- package/lib/mixins/model.js +29 -0
- package/lib/mixins/redirect.d.ts +8 -0
- package/lib/mixins/redirect.js +94 -0
- package/lib/mixins/share.d.ts +15 -0
- package/lib/mixins/share.js +55 -0
- package/lib/mixins/show.d.ts +9 -0
- package/lib/mixins/show.js +16 -0
- package/lib/mixins/webview.d.ts +26 -0
- package/lib/mixins/webview.js +225 -0
- package/lib/modules/app.d.ts +5 -0
- package/lib/modules/app.js +19 -0
- package/lib/modules/dict.d.ts +8 -0
- package/lib/modules/dict.js +43 -0
- package/lib/modules/im.d.ts +6 -0
- package/lib/modules/im.js +105 -0
- package/lib/modules/index.d.ts +8 -0
- package/lib/modules/index.js +8 -0
- package/lib/modules/launch.d.ts +5 -0
- package/lib/modules/launch.js +32 -0
- package/lib/modules/location.d.ts +5 -0
- package/lib/modules/location.js +57 -0
- package/lib/modules/login.d.ts +5 -0
- package/lib/modules/login.js +72 -0
- package/lib/modules/network.d.ts +5 -0
- package/lib/modules/network.js +39 -0
- package/lib/modules/system.d.ts +5 -0
- package/lib/modules/system.js +65 -0
- package/lib/styles/animate-vue.scss +3 -0
- package/lib/styles/animate.scss +27 -0
- package/lib/styles/bg-vue.scss +21 -0
- package/lib/styles/bg.scss +93 -0
- package/lib/styles/border.scss +218 -0
- package/lib/styles/flex-nvue.scss +64 -0
- package/lib/styles/flex-vue.scss +75 -0
- package/lib/styles/font.scss +59 -0
- package/lib/styles/index.scss +25 -0
- package/lib/styles/layout-nvue.scss +24 -0
- package/lib/styles/layout-vue.scss +30 -0
- package/lib/styles/layout.scss +76 -0
- package/lib/styles/opacity.scss +10 -0
- package/lib/styles/reset-vue.scss +46 -0
- package/lib/styles/shadow.scss +12 -0
- package/lib/styles/sizing-vue.scss +21 -0
- package/lib/styles/sizing.scss +21 -0
- package/lib/styles/spacing.scss +234 -0
- package/lib/styles/text-nvue.scss +21 -0
- package/lib/styles/text-vue.scss +70 -0
- package/lib/styles/text.scss +122 -0
- package/lib/styles/var.module.scss +29 -0
- package/lib/utils/audio.d.ts +14 -0
- package/lib/utils/audio.js +43 -0
- package/lib/utils/consts.d.ts +30 -0
- package/lib/utils/consts.js +52 -0
- package/lib/utils/cos.d.ts +15 -0
- package/lib/utils/cos.js +140 -0
- package/lib/utils/debounce.d.ts +2 -0
- package/lib/utils/debounce.js +30 -0
- package/lib/utils/file.d.ts +28 -0
- package/lib/utils/file.js +292 -0
- package/lib/utils/index.d.ts +166 -0
- package/lib/utils/index.js +485 -0
- package/lib/utils/locale.d.ts +6 -0
- package/lib/utils/locale.js +19 -0
- package/lib/utils/message.d.ts +9 -0
- package/lib/utils/message.js +63 -0
- package/lib/utils/navigate.d.ts +27 -0
- package/lib/utils/navigate.js +183 -0
- package/lib/utils/pages.d.ts +21 -0
- package/lib/utils/pages.js +79 -0
- package/lib/utils/permission.d.ts +16 -0
- package/lib/utils/permission.js +291 -0
- package/lib/utils/permit.d.ts +30 -0
- package/lib/utils/permit.js +181 -0
- package/lib/utils/query.d.ts +13 -0
- package/lib/utils/query.js +14 -0
- package/lib/utils/request.d.ts +8 -0
- package/lib/utils/request.js +126 -0
- package/lib/utils/storage.d.ts +53 -0
- package/lib/utils/storage.js +145 -0
- package/lib/utils/subscribe.d.ts +7 -0
- package/lib/utils/subscribe.js +94 -0
- package/lib/utils/throttle.d.ts +2 -0
- package/lib/utils/throttle.js +32 -0
- package/lib/utils/toast.d.ts +17 -0
- package/lib/utils/toast.js +66 -0
- package/lib/utils/uni.d.ts +1 -0
- package/lib/utils/uni.js +147 -0
- package/lib/utils/update.d.ts +9 -0
- package/lib/utils/update.js +376 -0
- package/package.json +49 -0
- package/types/index.d.ts +25 -0
- package/types/virtual.d.ts +1 -0
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
# API
|
|
2
|
+
|
|
3
|
+
本页记录 `@zfqh/uniapp` 的实际导出,作为使用 `import ... from '@zfqh/uniapp'` 时的准确信息。
|
|
4
|
+
|
|
5
|
+
## 基本使用
|
|
6
|
+
|
|
7
|
+
业务入口安装插件后,可以从根入口使用工具、配置、hooks,也可以从深度路径使用业务请求、模块和 mixins。
|
|
8
|
+
|
|
9
|
+
## 默认导出
|
|
10
|
+
|
|
11
|
+
```ts
|
|
12
|
+
import uniapp from '@zfqh/uniapp';
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
默认导出是 Vue 插件:
|
|
16
|
+
|
|
17
|
+
```ts
|
|
18
|
+
app.use(uniapp);
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
安装逻辑:
|
|
22
|
+
|
|
23
|
+
- 小程序端混入 `deep`。
|
|
24
|
+
- 将 `app.config.globalProperties.$store` 挂到 `uni.$store`。
|
|
25
|
+
|
|
26
|
+
`uni.$store` 用于请求、导航、权限、webview 消息等非组件上下文的普通模块。组件的 Composition API 和 hooks 中请使用 Vuex 官方入口:
|
|
27
|
+
|
|
28
|
+
```ts
|
|
29
|
+
import { useStore } from 'vuex';
|
|
30
|
+
|
|
31
|
+
const store = useStore();
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Hooks
|
|
35
|
+
|
|
36
|
+
```ts
|
|
37
|
+
export * from './hooks';
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
包含:
|
|
41
|
+
|
|
42
|
+
- `useOverlay`
|
|
43
|
+
- `usePopup`
|
|
44
|
+
- `useVersion`
|
|
45
|
+
- `useI18n`
|
|
46
|
+
|
|
47
|
+
## Utils
|
|
48
|
+
|
|
49
|
+
```ts
|
|
50
|
+
export * from './utils';
|
|
51
|
+
export * from './utils/file';
|
|
52
|
+
export * from './utils/storage';
|
|
53
|
+
export * from './utils/pages';
|
|
54
|
+
export * from './utils/consts';
|
|
55
|
+
export * from './utils/request';
|
|
56
|
+
export * from './utils/subscribe';
|
|
57
|
+
export * from './utils/permit';
|
|
58
|
+
export * from './utils/audio';
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## 具名默认导出
|
|
62
|
+
|
|
63
|
+
```ts
|
|
64
|
+
export { default as query } from './utils/query';
|
|
65
|
+
export { default as update } from './utils/update';
|
|
66
|
+
export { default as Debounce, debounce } from './utils/debounce';
|
|
67
|
+
export { default as Throttle, throttle } from './utils/throttle';
|
|
68
|
+
export { defineConfig, defineEnvConfig } from './configs';
|
|
69
|
+
export { default as color } from './configs/color';
|
|
70
|
+
export { cos, toast, navigate, config };
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
对应使用:
|
|
74
|
+
|
|
75
|
+
```ts
|
|
76
|
+
import {
|
|
77
|
+
query,
|
|
78
|
+
update,
|
|
79
|
+
Debounce,
|
|
80
|
+
debounce,
|
|
81
|
+
Throttle,
|
|
82
|
+
throttle,
|
|
83
|
+
defineConfig,
|
|
84
|
+
defineEnvConfig,
|
|
85
|
+
color,
|
|
86
|
+
cos,
|
|
87
|
+
toast,
|
|
88
|
+
navigate,
|
|
89
|
+
config,
|
|
90
|
+
} from '@zfqh/uniapp';
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
`Debounce` / `Throttle` 是可实例化的类导出,`debounce` / `throttle` 是共享默认实例。多个互不相关的触发场景需要独立计时或节流状态时,请分别 `new Debounce()` / `new Throttle()`。
|
|
94
|
+
|
|
95
|
+
## 不从根入口导出的内容
|
|
96
|
+
|
|
97
|
+
以下目录没有从根入口完整导出:
|
|
98
|
+
|
|
99
|
+
- `@zfqh/uniapp/lib/apis`
|
|
100
|
+
- `@zfqh/uniapp/lib/configs/app` 的 `app.patient/app.doctor/app.merchant`
|
|
101
|
+
- `@zfqh/uniapp/lib/configs/brand` 的 `brand.zfqh`
|
|
102
|
+
- `@zfqh/uniapp/lib/modules`
|
|
103
|
+
- `@zfqh/uniapp/lib/mixins`
|
|
104
|
+
- `@zfqh/uniapp/lib/components`
|
|
105
|
+
- `@zfqh/uniapp/lib/styles`
|
|
106
|
+
|
|
107
|
+
如需使用,请查看 [深度引用](#深度引用)。
|
|
108
|
+
|
|
109
|
+
`@zfqh/uniapp/lib/apis` 当前提供单独的聚合入口,可用于引入业务请求方法和公共接口:
|
|
110
|
+
|
|
111
|
+
```ts
|
|
112
|
+
import { GET, POST, getTencentToken } from '@zfqh/uniapp/lib/apis';
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
## 深度引用
|
|
118
|
+
|
|
119
|
+
根入口 `@zfqh/uniapp` 只导出根入口明确暴露的能力。业务 API、modules、mixins 没有全部从根入口导出,需要深度引用构建后的 `lib` 路径。
|
|
120
|
+
|
|
121
|
+
## 配置预设
|
|
122
|
+
|
|
123
|
+
`app.patient`、`app.doctor`、`app.merchant` 和 `brand.zfqh` 属于配置预设,不从根入口导出。业务配置文件中请从配置目录深度引用:
|
|
124
|
+
|
|
125
|
+
```ts
|
|
126
|
+
import { app } from '@zfqh/uniapp/lib/configs/app';
|
|
127
|
+
import { brand } from '@zfqh/uniapp/lib/configs/brand';
|
|
128
|
+
|
|
129
|
+
defineConfig({
|
|
130
|
+
app: app.patient,
|
|
131
|
+
brand: brand.zfqh,
|
|
132
|
+
});
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
如果需要覆盖预设字段,可展开后覆盖:
|
|
136
|
+
|
|
137
|
+
```ts
|
|
138
|
+
defineConfig({
|
|
139
|
+
app: {
|
|
140
|
+
...app.merchant,
|
|
141
|
+
name: '自定义门店端',
|
|
142
|
+
},
|
|
143
|
+
});
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
## API
|
|
147
|
+
|
|
148
|
+
当前 API 聚合入口位于 `lib/apis`,由 `@zfqh/uniapp/lib/apis` 导出 `request` 和 `core`:
|
|
149
|
+
|
|
150
|
+
```ts
|
|
151
|
+
import { GET, POST, PUT, DELETE, getTencentToken, getLastVersion, getDictData } from '@zfqh/uniapp/lib/apis';
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
也可以按文件深度引用:
|
|
155
|
+
|
|
156
|
+
```ts
|
|
157
|
+
import request, { GET, POST, PUT, DELETE } from '@zfqh/uniapp/lib/apis/request';
|
|
158
|
+
import { getTencentToken, getCosUrls, getDictData, sendSmsCode, postRefreshToken } from '@zfqh/uniapp/lib/apis/core';
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
已有 API 文件:
|
|
162
|
+
|
|
163
|
+
| 模块 | 说明 |
|
|
164
|
+
| --- | --- |
|
|
165
|
+
| `apis/index` | 聚合导出 `request` 和 `core`。 |
|
|
166
|
+
| `apis/request` | 业务请求实例和 `GET/POST/PUT/DELETE`。 |
|
|
167
|
+
| `apis/core` | 短信验证码、腾讯上传 Token、版本、COS URL、刷新 token、字典数据等公共接口。 |
|
|
168
|
+
|
|
169
|
+
### 内置 API 函数示例
|
|
170
|
+
|
|
171
|
+
```ts
|
|
172
|
+
import {
|
|
173
|
+
GET, POST,
|
|
174
|
+
getTencentToken,
|
|
175
|
+
getLastVersion,
|
|
176
|
+
getDictData,
|
|
177
|
+
getCosUrls,
|
|
178
|
+
sendSmsCode,
|
|
179
|
+
postRefreshToken,
|
|
180
|
+
} from '@zfqh/uniapp/lib/apis';
|
|
181
|
+
|
|
182
|
+
// 获取字典数据
|
|
183
|
+
const dict = await getDictData({ type: 'order_status' });
|
|
184
|
+
|
|
185
|
+
// 获取 COS 上传临时密钥
|
|
186
|
+
const token = await getTencentToken();
|
|
187
|
+
|
|
188
|
+
// 获取最新版本
|
|
189
|
+
const version = await getLastVersion({ platform: 'android' });
|
|
190
|
+
|
|
191
|
+
// 发送短信验证码
|
|
192
|
+
await sendSmsCode({ mobile: '18888888888' });
|
|
193
|
+
|
|
194
|
+
// 刷新 token
|
|
195
|
+
await postRefreshToken({ refreshToken: 'xxx' });
|
|
196
|
+
|
|
197
|
+
// 获取 COS 签名地址
|
|
198
|
+
const urls = await getCosUrls({ keys: ['avatar/1.png'] });
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### 自定义业务 API
|
|
202
|
+
|
|
203
|
+
原先按业务域拆分的模块已移除,请基于 `GET/POST` 自行封装:
|
|
204
|
+
|
|
205
|
+
```ts
|
|
206
|
+
import { GET, POST } from '@zfqh/uniapp/lib/apis';
|
|
207
|
+
|
|
208
|
+
export const getUserInfo = (...args) => GET('/admin-api/system/user/getSimple', ...args);
|
|
209
|
+
export const updateUserInfo = (...args) => POST('/admin-api/system/user/updateInfo', ...args);
|
|
210
|
+
export const getOrderList = (...args) => GET('/app-api/order/page', ...args);
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
## Modules
|
|
214
|
+
|
|
215
|
+
```ts
|
|
216
|
+
import { app, dict, launch, login, network, system, im, location } from '@zfqh/uniapp/lib/modules';
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
| 模块 | 说明 |
|
|
220
|
+
| --- | --- |
|
|
221
|
+
| `app` | 应用状态,初始包含 config.app 和 config.brand |
|
|
222
|
+
| `dict` | 字典数据,需注入 `dict.request` |
|
|
223
|
+
| `launch` | 启动参数(id、path、query、scene 等) |
|
|
224
|
+
| `login` | 登录态(token、userId、tenantId 等) |
|
|
225
|
+
| `network` | 网络状态(type、isConnected) |
|
|
226
|
+
| `system` | 系统信息(窗口、设备、App 基础信息) |
|
|
227
|
+
| `im` | IM 状态(userId、userSig、isReady),需注入 `im.request` |
|
|
228
|
+
| `location` | 定位状态(name、address、longitude、latitude) |
|
|
229
|
+
|
|
230
|
+
这些模块通常用于 Vuex store 注册,具体示例见 [模块](./modules/)。
|
|
231
|
+
|
|
232
|
+
## Mixins
|
|
233
|
+
|
|
234
|
+
```ts
|
|
235
|
+
import { app, badge, deep, login, redirect, share, webview, model, show, debounce } from '@zfqh/uniapp/lib/mixins';
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
| mixin | 说明 |
|
|
239
|
+
| --- | --- |
|
|
240
|
+
| `app` | 应用级复用逻辑(onLaunch 登录检查、onShow 更新检查) |
|
|
241
|
+
| `badge` | tabBar 未读角标 |
|
|
242
|
+
| `deep` | 小程序端样式穿透(自动注册) |
|
|
243
|
+
| `login` | 页面登录守卫(onShow 检查登录态) |
|
|
244
|
+
| `redirect` | 登录后重定向(处理 `__referrer`/`__navigate` 参数) |
|
|
245
|
+
| `share` | 分享数据(小程序分享、H5 分享菜单) |
|
|
246
|
+
| `webview` | webview 容器逻辑(消息通信、URL 生成) |
|
|
247
|
+
| `model` | v-model 兼容(Vue 2/3) |
|
|
248
|
+
| `show` | 页面显示状态跟踪(pageShow) |
|
|
249
|
+
| `debounce` | 方法级防抖 |
|
|
250
|
+
|
|
251
|
+
具体用法见 [混入](./mixins/)。
|
|
252
|
+
|
|
253
|
+
## Styles
|
|
254
|
+
|
|
255
|
+
```scss
|
|
256
|
+
/* 工具样式类(UnoCSS 风格) */
|
|
257
|
+
@import '@zfqh/uniapp/lib/styles/index.scss';
|
|
258
|
+
|
|
259
|
+
/* SCSS 变量(用于覆盖主题色) */
|
|
260
|
+
@import '@zfqh/uniapp/lib/styles/var.scss';
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
详见 [工具样式类](./../components/styles/base-styles)。
|
|
264
|
+
|
|
265
|
+
## 注意
|
|
266
|
+
|
|
267
|
+
- 深度引用路径依赖构建产物 `lib`,本地开发前请确保包已编译。
|
|
268
|
+
- 深度引用不是根入口 API,未来调整目录结构时需要同步迁移。
|
|
269
|
+
- 如果某个能力会被多个项目稳定复用,建议评估是否从根入口 `@zfqh/uniapp` 显式导出。
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# app
|
|
2
|
+
|
|
3
|
+
App.vue 全局生命周期 mixin。发布路径:`@zfqh/uniapp/lib/mixins/app`
|
|
4
|
+
|
|
5
|
+
| 项 | 说明 |
|
|
6
|
+
| --- | --- |
|
|
7
|
+
| `computed isConnected/isLogin/unreadCount` | 读取网络、登录、未读数 getter。 |
|
|
8
|
+
| `watch isConnected` | 网络恢复后非 H5 端触发 update.check()。 |
|
|
9
|
+
| `watch unreadCount` | App 端同步应用角标。 |
|
|
10
|
+
| `onLaunch(e)` | 初始化网络监听,并在启动页命中 needLoginPages 且未登录时触发登录导航。 |
|
|
11
|
+
| `onShow(e)` | 记录 launch 信息,并在非开发环境检查更新。 |
|
|
12
|
+
|
|
13
|
+
## 基本使用
|
|
14
|
+
|
|
15
|
+
推荐在 `App.vue` 中全局使用,商户端和患者端都通过它统一处理启动参数、网络监听和版本检查。
|
|
16
|
+
|
|
17
|
+
```ts
|
|
18
|
+
import app from '@zfqh/uniapp/lib/mixins/app';
|
|
19
|
+
import store from '@/store';
|
|
20
|
+
|
|
21
|
+
export default {
|
|
22
|
+
mixins: [app],
|
|
23
|
+
onLaunch() {
|
|
24
|
+
if (store.getters.isLogin) {
|
|
25
|
+
store.dispatch('getInfo');
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
```
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# badge
|
|
2
|
+
|
|
3
|
+
tabBar 未读角标 mixin。发布路径:`@zfqh/uniapp/lib/mixins/badge`
|
|
4
|
+
|
|
5
|
+
| 项 | 说明 |
|
|
6
|
+
| --- | --- |
|
|
7
|
+
| `computed unreadCount` | 读取 $store.getters.unreadCount。 |
|
|
8
|
+
| `method setTabBarBadge()` | 根据 tabbar.badgeIndex 设置或移除 tabBar badge。 |
|
|
9
|
+
|
|
10
|
+
## 基本使用
|
|
11
|
+
|
|
12
|
+
在首页、消息页或 App.vue 中使用,自动维护 tabBar 未读角标:
|
|
13
|
+
|
|
14
|
+
```ts
|
|
15
|
+
import badge from '@zfqh/uniapp/lib/mixins/badge';
|
|
16
|
+
|
|
17
|
+
export default {
|
|
18
|
+
mixins: [badge],
|
|
19
|
+
onShow() {
|
|
20
|
+
this.setTabBarBadge();
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
```
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# debounce
|
|
2
|
+
|
|
3
|
+
防抖方法 mixin。发布路径:`@zfqh/uniapp/lib/mixins/debounce`
|
|
4
|
+
|
|
5
|
+
| 项 | 说明 |
|
|
6
|
+
| --- | --- |
|
|
7
|
+
| `method debounce(...args)` | 懒创建 Debounce 实例并执行 exec。 |
|
|
8
|
+
|
|
9
|
+
## 基本使用
|
|
10
|
+
|
|
11
|
+
在 Options API 搜索页中使用,避免输入时频繁请求接口:
|
|
12
|
+
|
|
13
|
+
```ts
|
|
14
|
+
import debounce from '@zfqh/uniapp/lib/mixins/debounce';
|
|
15
|
+
import { searchGoods } from '@/apis/goods';
|
|
16
|
+
|
|
17
|
+
export default {
|
|
18
|
+
mixins: [debounce],
|
|
19
|
+
data() {
|
|
20
|
+
return {
|
|
21
|
+
keyword: '',
|
|
22
|
+
};
|
|
23
|
+
},
|
|
24
|
+
methods: {
|
|
25
|
+
onSearch() {
|
|
26
|
+
this.debounce(async () => {
|
|
27
|
+
this.list = await searchGoods({ keyword: this.keyword });
|
|
28
|
+
}, 300);
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
```
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# deep
|
|
2
|
+
|
|
3
|
+
小程序样式穿透 mixin。发布路径:`@zfqh/uniapp/lib/mixins/deep`
|
|
4
|
+
|
|
5
|
+
| 项 | 说明 |
|
|
6
|
+
| --- | --- |
|
|
7
|
+
| `options.styleIsolation` | MP 端设置为 shared,允许 ::v-deep 修改子组件样式。 |
|
|
8
|
+
|
|
9
|
+
插件安装时自动注册,无需手动引入。
|
|
10
|
+
|
|
11
|
+
## 基本使用
|
|
12
|
+
|
|
13
|
+
如果需要在局部组件里手动使用,可直接引入 `deep` mixin。
|
|
14
|
+
|
|
15
|
+
```vue
|
|
16
|
+
<script>
|
|
17
|
+
import deep from '@zfqh/uniapp/lib/mixins/deep';
|
|
18
|
+
|
|
19
|
+
export default {
|
|
20
|
+
mixins: [deep],
|
|
21
|
+
};
|
|
22
|
+
</script>
|
|
23
|
+
|
|
24
|
+
<style lang="scss" scoped>
|
|
25
|
+
::v-deep .uv-button {
|
|
26
|
+
border-radius: 8rpx;
|
|
27
|
+
}
|
|
28
|
+
</style>
|
|
29
|
+
```
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# 混入
|
|
2
|
+
|
|
3
|
+
mixins 发布路径为 `@zfqh/uniapp/lib/mixins`。根入口没有完整导出 mixins;业务项目如需复用,请从 `@zfqh/uniapp/lib/mixins/<name>` 深度引入。插件安装时在小程序端会自动注册 `deep` mixin。
|
|
4
|
+
|
|
5
|
+
## 基本使用
|
|
6
|
+
|
|
7
|
+
业务项目可以从聚合入口引入常用 mixin,也可以按文件深度引入单个 mixin。
|
|
8
|
+
|
|
9
|
+
```ts
|
|
10
|
+
import { app, badge, webview } from '@zfqh/uniapp/lib/mixins';
|
|
11
|
+
import login from '@zfqh/uniapp/lib/mixins/login';
|
|
12
|
+
|
|
13
|
+
export default {
|
|
14
|
+
mixins: [login],
|
|
15
|
+
};
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
```ts
|
|
19
|
+
// App.vue
|
|
20
|
+
export default {
|
|
21
|
+
mixins: [app, badge],
|
|
22
|
+
};
|
|
23
|
+
```
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# login
|
|
2
|
+
|
|
3
|
+
页面登录守卫 mixin。发布路径:`@zfqh/uniapp/lib/mixins/login`
|
|
4
|
+
|
|
5
|
+
| 项 | 说明 |
|
|
6
|
+
| --- | --- |
|
|
7
|
+
| `onShow()` | 页面显示时如果当前页面属于 needLoginPages 且未登录,则跳转登录。 |
|
|
8
|
+
|
|
9
|
+
## 基本使用
|
|
10
|
+
|
|
11
|
+
在订单、会员、报告等需要登录保护的页面中使用:
|
|
12
|
+
|
|
13
|
+
```ts
|
|
14
|
+
import login from '@zfqh/uniapp/lib/mixins/login';
|
|
15
|
+
|
|
16
|
+
export default {
|
|
17
|
+
mixins: [login],
|
|
18
|
+
onShow() {
|
|
19
|
+
this.loadOrderList();
|
|
20
|
+
},
|
|
21
|
+
};
|
|
22
|
+
```
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# model
|
|
2
|
+
|
|
3
|
+
v-model 兼容 mixin 工厂。发布路径:`@zfqh/uniapp/lib/mixins/model`
|
|
4
|
+
|
|
5
|
+
| 项 | 说明 |
|
|
6
|
+
| --- | --- |
|
|
7
|
+
| `props value/modelValue` | Vue 2 使用 value,Vue 3 使用 modelValue。 |
|
|
8
|
+
| `computed value` | Vue 3 下把 modelValue 映射为 value。 |
|
|
9
|
+
| `method updateModel(value)` | Vue 2 抛 input,Vue 3 抛 update:modelValue。 |
|
|
10
|
+
|
|
11
|
+
## 基本使用
|
|
12
|
+
|
|
13
|
+
在自定义表单组件中兼容 Vue 2/3 的 v-model:
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
import model from '@zfqh/uniapp/lib/mixins/model';
|
|
17
|
+
|
|
18
|
+
export default {
|
|
19
|
+
mixins: [model({ type: String, default: '' })],
|
|
20
|
+
methods: {
|
|
21
|
+
onChange(val) {
|
|
22
|
+
this.updateModel(val);
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
```
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# redirect
|
|
2
|
+
|
|
3
|
+
登录后重定向 mixin。发布路径:`@zfqh/uniapp/lib/mixins/redirect`
|
|
4
|
+
|
|
5
|
+
| 项 | 说明 |
|
|
6
|
+
| --- | --- |
|
|
7
|
+
| `onLoad({ __referrer, __navigate })` | 记录登录来源或执行登录完成后的目标跳转。 |
|
|
8
|
+
| `onShow()` | 登录后根据 path.referrer、webview、notRedirectPages 决定回跳或刷新 webview。 |
|
|
9
|
+
|
|
10
|
+
## 基本使用
|
|
11
|
+
|
|
12
|
+
在登录页中使用,处理从会员、订单、报告等页面跳转登录后的回跳逻辑:
|
|
13
|
+
|
|
14
|
+
```ts
|
|
15
|
+
import redirect from '@zfqh/uniapp/lib/mixins/redirect';
|
|
16
|
+
|
|
17
|
+
export default {
|
|
18
|
+
mixins: [redirect],
|
|
19
|
+
methods: {
|
|
20
|
+
async submitLogin() {
|
|
21
|
+
await this.$store.dispatch('loginByPhone', this.form);
|
|
22
|
+
this.$emit('login-success');
|
|
23
|
+
},
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
```
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# share
|
|
2
|
+
|
|
3
|
+
分享数据 mixin。发布路径:`@zfqh/uniapp/lib/mixins/share`
|
|
4
|
+
|
|
5
|
+
| 项 | 说明 |
|
|
6
|
+
| --- | --- |
|
|
7
|
+
| `computed mergeShareData` | 合并当前 path、页面 query、document.title 和组件 shareData。 |
|
|
8
|
+
| `method sendShareDataMessage()` | H5 webview 下 postMessage 给宿主;普通 H5 调用 uni.showShareMenu。 |
|
|
9
|
+
| `onShareAppMessage/onShareTimeline` | 小程序端返回 mergeShareData。 |
|
|
10
|
+
|
|
11
|
+
## 基本使用
|
|
12
|
+
|
|
13
|
+
在医生详情、商品详情、报告详情等需要分享的页面中使用:
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
import share from '@zfqh/uniapp/lib/mixins/share';
|
|
17
|
+
|
|
18
|
+
export default {
|
|
19
|
+
mixins: [share],
|
|
20
|
+
data() {
|
|
21
|
+
return {
|
|
22
|
+
shareData: {
|
|
23
|
+
title: '医生详情',
|
|
24
|
+
path: '/pages/doctor/doctorDetails?id=1',
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
```
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# show
|
|
2
|
+
|
|
3
|
+
页面显示状态 mixin。发布路径:`@zfqh/uniapp/lib/mixins/show`
|
|
4
|
+
|
|
5
|
+
| 项 | 说明 |
|
|
6
|
+
| --- | --- |
|
|
7
|
+
| `data pageShow` | 页面是否处于 show 状态。 |
|
|
8
|
+
| `onShow/onHide/onUnload` | 维护 pageShow。 |
|
|
9
|
+
|
|
10
|
+
## 基本使用
|
|
11
|
+
|
|
12
|
+
在需要感知页面显示/隐藏状态的组件中使用,例如页面重新显示后刷新报告或订单状态:
|
|
13
|
+
|
|
14
|
+
```ts
|
|
15
|
+
import show from '@zfqh/uniapp/lib/mixins/show';
|
|
16
|
+
|
|
17
|
+
export default {
|
|
18
|
+
mixins: [show],
|
|
19
|
+
watch: {
|
|
20
|
+
pageShow(val) {
|
|
21
|
+
if (val) {
|
|
22
|
+
this.refreshReportStatus();
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
```
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# webview
|
|
2
|
+
|
|
3
|
+
webview 承载页 mixin。发布路径:`@zfqh/uniapp/lib/mixins/webview`
|
|
4
|
+
|
|
5
|
+
| 项 | 说明 |
|
|
6
|
+
| --- | --- |
|
|
7
|
+
| `data shareData/params/url/changed/webview` | 维护承载页参数、URL 和分享状态。 |
|
|
8
|
+
| `computed queryString` | 把登录信息、queryInfo、app/brand、platform 合并为 webview query。 |
|
|
9
|
+
| `method onMessage(e)` | 处理 SAVE_IMAGE、CHNAGE_TITLE、SHARE_PAGE、GET_LOCATION、OPEN_LOCATION 等宿主消息。 |
|
|
10
|
+
| `method postMessage(data)` | 向 iframe/App webview 子页面发送 WEBVIEW_MESSAGE。 |
|
|
11
|
+
| `method initUrl()` | 根据 params.url、link、web 配置生成实际 webview src。 |
|
|
12
|
+
| `onLoad(params)` | 保存初始 params。 |
|
|
13
|
+
| `onShow()` | 参数变化后重新生成 url,并在 H5 非 webview 环境监听 window.onmessage。 |
|
|
14
|
+
|
|
15
|
+
## 基本使用
|
|
16
|
+
|
|
17
|
+
在 webview 承载页中使用,承接报告 H5、协议页和活动页:
|
|
18
|
+
|
|
19
|
+
```ts
|
|
20
|
+
import webview from '@zfqh/uniapp/lib/mixins/webview';
|
|
21
|
+
|
|
22
|
+
export default {
|
|
23
|
+
mixins: [webview],
|
|
24
|
+
};
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
页面路径需在 `config.path.webview` 中配置。webview 内的 H5 页面可通过 `postMessage` 与宿主通信,支持 `TYPES.SAVE_IMAGE`、`TYPES.SHARE_PAGE`、`TYPES.CHNAGE_TITLE` 等消息类型。
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# app
|
|
2
|
+
|
|
3
|
+
应用信息模块。发布路径:`@zfqh/uniapp/lib/modules/app`
|
|
4
|
+
|
|
5
|
+
| 项 | 说明 |
|
|
6
|
+
| --- | --- |
|
|
7
|
+
| `state.info` | 默认包含 config.app 和 config.brand。 |
|
|
8
|
+
| `mutation setAppInfo(data)` | 合并更新应用信息。 |
|
|
9
|
+
|
|
10
|
+
## 基本使用
|
|
11
|
+
|
|
12
|
+
在业务 Vuex store 中注册模块后,页面可读取当前应用和品牌信息。
|
|
13
|
+
|
|
14
|
+
```ts
|
|
15
|
+
import { createStore } from 'vuex';
|
|
16
|
+
import { app } from '@zfqh/uniapp/lib/modules';
|
|
17
|
+
|
|
18
|
+
const store = createStore({
|
|
19
|
+
modules: {
|
|
20
|
+
app,
|
|
21
|
+
},
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
uni.$store = store;
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
```ts
|
|
28
|
+
const appInfo = store.state.app.info.app;
|
|
29
|
+
const brandInfo = store.state.app.info.brand;
|
|
30
|
+
```
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# dict
|
|
2
|
+
|
|
3
|
+
字典模块。发布路径:`@zfqh/uniapp/lib/modules/dict`
|
|
4
|
+
|
|
5
|
+
| 项 | 说明 |
|
|
6
|
+
| --- | --- |
|
|
7
|
+
| `state.info` | 按字典 name 缓存 options、values、labels、enums。 |
|
|
8
|
+
| `action getDictInfo({ name, cache })` | 调用模块 request 获取字典,cache 为 true 时已有缓存不重复请求。 |
|
|
9
|
+
| `mutation setDictInfo(data)` | 合并字典数据。 |
|
|
10
|
+
|
|
11
|
+
## 基本使用
|
|
12
|
+
|
|
13
|
+
表单页可先拉取证件类型、医生类型等字典,再把 options 交给下拉组件。
|
|
14
|
+
|
|
15
|
+
```ts
|
|
16
|
+
// 获取字典
|
|
17
|
+
await store.dispatch('getDictInfo', { name: 'system_doctor_type', cache: true });
|
|
18
|
+
|
|
19
|
+
// 读取字典数据
|
|
20
|
+
const options = store.state.dict.info.system_doctor_type.options;
|
|
21
|
+
// [{ label: '主任医师', value: 'chief' }, { label: '主治医师', value: 'attending' }]
|
|
22
|
+
|
|
23
|
+
const labels = store.state.dict.info.system_doctor_type.labels;
|
|
24
|
+
// ['主任医师', '主治医师']
|
|
25
|
+
|
|
26
|
+
const enums = store.state.dict.info.system_doctor_type.enums;
|
|
27
|
+
// { '主任医师': 'chief', chief: '主任医师' }
|
|
28
|
+
```
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# im
|
|
2
|
+
|
|
3
|
+
IM 状态模块。发布路径:`@zfqh/uniapp/lib/modules/im`
|
|
4
|
+
|
|
5
|
+
| 项 | 说明 |
|
|
6
|
+
| --- | --- |
|
|
7
|
+
| `state.info` | 包含 userId、userSig、appId、isLogin、isReady。 |
|
|
8
|
+
| `getter isImLogin/isImReady` | 返回 Promise,等待 IM 登录或 SDK ready。 |
|
|
9
|
+
| `mutation setImInfo(data)` | 更新 IM 状态,并 resolve/reject 等待中的 Promise。 |
|
|
10
|
+
| `action getImInfo()` | 调用模块 request 获取 IM 信息,账号变化时先触发 logoutIm 再 loginIm。 |
|
|
11
|
+
|
|
12
|
+
## 基本使用
|
|
13
|
+
|
|
14
|
+
患者端登录后可等待 IM 登录和 SDK ready,再初始化会话列表或视频通话监听。
|
|
15
|
+
|
|
16
|
+
```ts
|
|
17
|
+
// 等待 IM 登录完成后再初始化聊天
|
|
18
|
+
await store.getters.isImLogin;
|
|
19
|
+
await store.getters.isImReady;
|
|
20
|
+
|
|
21
|
+
uni.$emit('loginIm');
|
|
22
|
+
```
|