@quec/panel-device-kit 1.0.10 → 1.1.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.
package/README.md CHANGED
@@ -1,253 +1,253 @@
1
- # 📦 @quec/panel-device-kit
2
-
3
- ### QUEC Panel Device Kit - 设备信息状态管理工具库
4
- 用于管理和监听设备信息,支持设备状态、设备列表、事件注册、类型导出等功能。
5
-
6
-
7
- <br>
8
-
9
- ---
10
-
11
-
12
- ## 🗝 依赖库 请自行安装以下库
13
-
14
- | 库名 | peerDependencies | devDependencies |
15
- | ------------------------------ | ---------------- | --------------- |
16
- | `@quec/rn-businesspanel-module`| * | ^1.1.3 |
17
- | `@quec/rn-device-module` | * | 2.16.1 |
18
- | `@quec/rn-language-module` | * | 0.1.9 |
19
- | `@quec/rn-log-module` | * | 1.0.6 |
20
- | `i18n-js` | * | 4.1.1 |
21
- | `react` | * | 17.0.2 |
22
- | `react-native` | * | 0.64.3 |
23
- | `zustand` | * | 4.4.3 |
24
-
25
- **PS**:如果你的安装版本和devDependencies版本有很大的出入,请联系维护人员进行更新
26
-
27
- ---
28
- <br>
29
-
30
- ## ✅ 功能列表
31
-
32
- 1. 存储设备信息
33
- 2. 监听设备状态变更
34
- 3. 支持设备列表状态管理
35
- 4. 支持订阅设备列表物模型(🚧 TODO)
36
- 5. 导出相关类型供外部使用
37
-
38
-
39
- ---
40
-
41
- <br>
42
-
43
- ## 🧩 模块结构
44
-
45
- 本库主要包含以下模块:
46
-
47
- 1. **状态管理器**
48
- - 设备状态(`deviceStore`)
49
- - 设备列表状态(`deviceListStore`)
50
- 2. **设备事件监听器**
51
- 3. **回调管理器(`deviceKitParamsManager`)**
52
-
53
- ---
54
-
55
- <br>
56
-
57
- ## 🚀 快速开始
58
-
59
- ### 1. 初始化处理app传入数据
60
- ```ts
61
- // App.tsx
62
- import {
63
- useSetProps,
64
- } from '@quec/panel-device-kit'
65
- const App: FC<Props> = props => {
66
- const setProps = useSetProps()
67
-
68
- useEffect(() => {
69
- const propsProcessed = setProps(props)
70
- global.props = propsProcessed
71
- }, [setProps])
72
-
73
- return <AppContainer />
74
- }
75
- ```
76
-
77
- ### 2. 初始化状态管理器
78
- ```ts
79
- // App.tsx
80
- import { createDeviceStore, createDeviceListStore } from '@quec/panel-device-kit'
81
-
82
- createDeviceStore()
83
- createDeviceListStore()
84
- ```
85
-
86
- ### 3. 注册全局回调和监听事件
87
- ```ts
88
- // AppContainer.tsx
89
- import { deviceKitParamsManager, useInitUpdateDeviceStateEvent } from '@quec/panel-device-kit'
90
-
91
- const AppContainer :FC = () => {
92
- const refreshDeviceList = useDeviceListRefresh()
93
- // 设备状态事件
94
- useInitUpdateDeviceStateEvent(
95
- updateDeviceStateCallback, // 在离线状态更新回调
96
- updateDeviceConnectingStateCallback // 连接状态更新回调
97
- )
98
- // 设备更新事件
99
- useInitDeviceInfoUpdateEvent(() => {
100
- // 当使用到设备列表状态时,APP通知设备更新了,最好刷新一下设备列表
101
- refreshDeviceList()
102
- })
103
- //设备列表更新监听事件
104
- useInitDeviceListUpdateEvent({
105
- // 是否自动切换设备,常用于使用了设备列表的面板
106
- // 当前设备已经不复存在,更换列表第一个设备
107
- // 设备列表或当前设备为空时,跳转到业务面板
108
- enableAutoCheckoutDevice: true,
109
- refreshDeviceListEventCallback: null, // 设备列表更新监听事件主动回调
110
- refreshDeviceListSuccessCallback: null, // APP通知刷新列表 => 主动刷新列表 => 刷新成功 => refreshDeviceListSuccessCallback(list)
111
- })
112
- ...
113
- deviceKitParamsManager.registerCallbacks({
114
- loadingCallback: global.loading,
115
- loadingDismissCallback: global.loadingDismiss,
116
- tipCallback: global.toast,
117
- })
118
- }
119
- ```
120
-
121
- ### 4. 在组件中使用状态
122
- ```ts
123
- // anyPage.tsx
124
- import { useDevice } from '@quec/panel-device-kit'
125
- const AnyPage :FC = () => {
126
-
127
- const device = useDevice()
128
-
129
- useEffect(() => {
130
- console.log(device)
131
- }, [device])
132
- ```
133
-
134
- ---
135
-
136
- <br>
137
- <br>
138
-
139
- ## 🧠 状态管理器 API
140
-
141
- ### 📍 设备状态
142
-
143
- #### 初始化
144
- - `createDeviceStore()`:初始化设备状态管理器
145
-
146
- #### 查状态的 Hook
147
- - `useDeviceStoreState()`:获取所有状态集合
148
- - `useDevice()`:获取当前设备信息
149
- - `useDeviceProps()`:获取初始传入参数
150
- - `useDeviceFamily()`:获取家庭信息
151
- - `useDeviceArea()`:获取区域信息
152
- - `useDeviceProductUrl()`:获取产品说明书链接
153
- - `useDeviceOnline()`:获取设备在线状态
154
-
155
- #### 请求状态的方法 Hook
156
- - `useGetDeviceStatus()`:主动拉取设备状态
157
- - `useSetProps(props)`:设置初始参数并同步更新设备
158
- - `useUpdateDevice(data)`:更新设备信息
159
- - `useUpdateOnlineStatus(online)`:更新在线状态
160
- - `useCheckCurrentDeviceExist()`:检查当前设备是否还存在
161
-
162
- #### 扩展
163
- - `getDeviceStore()`:获取 `deviceStore` 实例(未初始化会抛错)
164
-
165
- ---
166
-
167
- <br>
168
-
169
- ### 📍 设备列表状态
170
-
171
- #### 初始化
172
- - `createDeviceListStore()`:初始化设备列表状态管理器
173
-
174
- #### 查设备列表状态的 Hook
175
- - `useDeviceListStoreState()`:获取所有状态集合
176
- - `useDeviceList()`:获取设备列表
177
-
178
- #### 请求设备列表的方法 Hook
179
- - `useDeviceListRefresh()`:刷新设备列表
180
- - `useDeviceListLoadMore()`:加载下一页设备
181
-
182
- #### 扩展
183
- - `getDeviceListStore()`:获取 `deviceListStore` 实例(未初始化会抛错)
184
-
185
- ---
186
- <br>
187
-
188
- ## 🔁 设备(列表)状态事件监听器
189
-
190
- ### `useInitUpdateDeviceStateEvent()` 监听设备状态更新
191
- ### `useInitDeviceListUpdateEvent()` 监听设备列表监听事件更新
192
- ### `useInitDeviceInfoUpdateEvent()` 监听设备更新事件
193
-
194
- - 注册监听设备状态更新的全局 Hook。
195
- - 通常应在 `AppContainer.tsx` 或入口组件中调用一次。
196
-
197
- ---
198
- <br>
199
-
200
- ## ✉ 监听事件名称
201
- | 监听事件名称 | 内容 | 说明 |
202
- | -------------------------------- | ------------------------- | -------------------- |
203
- | `EVENT_TYPE_DEVICE_ONLINE` | `onDeviceOnlineState` | 设备在离线状态更新 |
204
- | `EVENT_TYPE_DEVICE_CONNECTING` | `onDeviceConnectingState` | 设备连接状态更新 |
205
- | `EVENT_TYPE_REFRESH_DEVICE_LIST` | `QuecRefreshDeviceList` | 设备列表更新 |
206
- | `EVENT_TYPE_REFRESH_DEVICE` | `QuecRefreshDeviceInfo` | 设备更新(更换设备) |
207
-
208
- ---
209
- <br>
210
-
211
- ## 🔧 回调管理器
212
-
213
- ### `deviceKitParamsManager`
214
-
215
- 通过 `registerCallbacks()` 可传入以下回调函数:
216
-
217
- | 回调名 | 说明 |
218
- | ------------------------ | ---------------- |
219
- | `loadingCallback` | 显示全局 loading |
220
- | `loadingDismissCallback` | 隐藏 loading |
221
- | `tipCallback` | 全局 toast 提示 |
222
-
223
- ---
224
- <br>
225
-
226
- ## 🧾 类型导出
227
-
228
- | 类型名 | 描述 |
229
- | ------------- | ---------------------------------- |
230
- | `PropsModel` | 初始传入参数类型 |
231
- | `DeviceModel` | 从PropsModel取出的设备信息类型 |
232
- | `FamilyModel` | 从PropsModel取出的用户家庭信息类型 |
233
-
234
- ---
235
- <br>
236
-
237
- ## 🌐 多语言配置说明
238
-
239
- **⚠️ 提示类语言依赖于是否注册了 `tipCallback` 回调。**
240
-
241
- | key | 中文提示 | 英文提示 |
242
- | --------------------------------- | -------------- | -------------- |
243
- | `quec_device_kit_device_offline` | 设备离线 | device offline |
244
- | `quec_device_kit_device_online` | 设备上线 | -- |
245
- | `quec_device_kit_no_more_devices` | 没有更多设备了 | -- |
246
-
247
- ---
248
- <br>
249
-
250
- ## 🛠 本地调试说明
251
-
252
- 如需修改本库并本地调试,请参考 👉 [本地调试文档](./README_DEV.md)
253
-
1
+ # 📦 @quec/panel-device-kit
2
+
3
+ ### QUEC Panel Device Kit - 设备信息状态管理工具库
4
+ 用于管理和监听设备信息,支持设备状态、设备列表、事件注册、类型导出等功能。
5
+
6
+
7
+ <br>
8
+
9
+ ---
10
+
11
+
12
+ ## 🗝 依赖库 请自行安装以下库
13
+
14
+ | 库名 | peerDependencies | devDependencies |
15
+ | ------------------------------ | ---------------- | --------------- |
16
+ | `@quec/rn-businesspanel-module`| * | ^1.1.3 |
17
+ | `@quec/rn-device-module` | * | 2.16.1 |
18
+ | `@quec/rn-language-module` | * | 0.1.9 |
19
+ | `@quec/rn-log-module` | * | 1.0.6 |
20
+ | `i18n-js` | * | 4.1.1 |
21
+ | `react` | * | 17.0.2 |
22
+ | `react-native` | * | 0.64.3 |
23
+ | `zustand` | * | 4.4.3 |
24
+
25
+ **PS**:如果你的安装版本和devDependencies版本有很大的出入,请联系维护人员进行更新
26
+
27
+ ---
28
+ <br>
29
+
30
+ ## ✅ 功能列表
31
+
32
+ 1. 存储设备信息
33
+ 2. 监听设备状态变更
34
+ 3. 支持设备列表状态管理
35
+ 4. 支持订阅设备列表物模型(🚧 TODO)
36
+ 5. 导出相关类型供外部使用
37
+
38
+
39
+ ---
40
+
41
+ <br>
42
+
43
+ ## 🧩 模块结构
44
+
45
+ 本库主要包含以下模块:
46
+
47
+ 1. **状态管理器**
48
+ - 设备状态(`deviceStore`)
49
+ - 设备列表状态(`deviceListStore`)
50
+ 2. **设备事件监听器**
51
+ 3. **回调管理器(`deviceKitParamsManager`)**
52
+
53
+ ---
54
+
55
+ <br>
56
+
57
+ ## 🚀 快速开始
58
+
59
+ ### 1. 初始化处理app传入数据
60
+ ```ts
61
+ // App.tsx
62
+ import {
63
+ useSetProps,
64
+ } from '@quec/panel-device-kit'
65
+ const App: FC<Props> = props => {
66
+ const setProps = useSetProps()
67
+
68
+ useEffect(() => {
69
+ const propsProcessed = setProps(props)
70
+ global.props = propsProcessed
71
+ }, [setProps])
72
+
73
+ return <AppContainer />
74
+ }
75
+ ```
76
+
77
+ ### 2. 初始化状态管理器
78
+ ```ts
79
+ // App.tsx
80
+ import { createDeviceStore, createDeviceListStore } from '@quec/panel-device-kit'
81
+
82
+ createDeviceStore()
83
+ createDeviceListStore()
84
+ ```
85
+
86
+ ### 3. 注册全局回调和监听事件
87
+ ```ts
88
+ // AppContainer.tsx
89
+ import { deviceKitParamsManager, useInitUpdateDeviceStateEvent } from '@quec/panel-device-kit'
90
+
91
+ const AppContainer :FC = () => {
92
+ const refreshDeviceList = useDeviceListRefresh()
93
+ // 设备状态事件
94
+ useInitUpdateDeviceStateEvent(
95
+ updateDeviceStateCallback, // 在离线状态更新回调
96
+ updateDeviceConnectingStateCallback // 连接状态更新回调
97
+ )
98
+ // 设备更新事件
99
+ useInitDeviceInfoUpdateEvent(() => {
100
+ // 当使用到设备列表状态时,APP通知设备更新了,最好刷新一下设备列表
101
+ refreshDeviceList()
102
+ })
103
+ //设备列表更新监听事件
104
+ useInitDeviceListUpdateEvent({
105
+ // 是否自动切换设备,常用于使用了设备列表的面板
106
+ // 当前设备已经不复存在,更换列表第一个设备
107
+ // 设备列表或当前设备为空时,跳转到业务面板
108
+ enableAutoCheckoutDevice: true,
109
+ refreshDeviceListEventCallback: null, // 设备列表更新监听事件主动回调
110
+ refreshDeviceListSuccessCallback: null, // APP通知刷新列表 => 主动刷新列表 => 刷新成功 => refreshDeviceListSuccessCallback(list)
111
+ })
112
+ ...
113
+ deviceKitParamsManager.registerCallbacks({
114
+ loadingCallback: global.loading,
115
+ loadingDismissCallback: global.loadingDismiss,
116
+ tipCallback: global.toast,
117
+ })
118
+ }
119
+ ```
120
+
121
+ ### 4. 在组件中使用状态
122
+ ```ts
123
+ // anyPage.tsx
124
+ import { useDevice } from '@quec/panel-device-kit'
125
+ const AnyPage :FC = () => {
126
+
127
+ const device = useDevice()
128
+
129
+ useEffect(() => {
130
+ console.log(device)
131
+ }, [device])
132
+ ```
133
+
134
+ ---
135
+
136
+ <br>
137
+ <br>
138
+
139
+ ## 🧠 状态管理器 API
140
+
141
+ ### 📍 设备状态
142
+
143
+ #### 初始化
144
+ - `createDeviceStore()`:初始化设备状态管理器
145
+
146
+ #### 查状态的 Hook
147
+ - `useDeviceStoreState()`:获取所有状态集合
148
+ - `useDevice()`:获取当前设备信息
149
+ - `useDeviceProps()`:获取初始传入参数
150
+ - `useDeviceFamily()`:获取家庭信息
151
+ - `useDeviceArea()`:获取区域信息
152
+ - `useDeviceProductUrl()`:获取产品说明书链接
153
+ - `useDeviceOnline()`:获取设备在线状态
154
+
155
+ #### 请求状态的方法 Hook
156
+ - `useGetDeviceStatus()`:主动拉取设备状态
157
+ - `useSetProps(props)`:设置初始参数并同步更新设备
158
+ - `useUpdateDevice(data)`:更新设备信息
159
+ - `useUpdateOnlineStatus(online)`:更新在线状态
160
+ - `useCheckCurrentDeviceExist()`:检查当前设备是否还存在
161
+
162
+ #### 扩展
163
+ - `getDeviceStore()`:获取 `deviceStore` 实例(未初始化会抛错)
164
+
165
+ ---
166
+
167
+ <br>
168
+
169
+ ### 📍 设备列表状态
170
+
171
+ #### 初始化
172
+ - `createDeviceListStore()`:初始化设备列表状态管理器
173
+
174
+ #### 查设备列表状态的 Hook
175
+ - `useDeviceListStoreState()`:获取所有状态集合
176
+ - `useDeviceList()`:获取设备列表
177
+
178
+ #### 请求设备列表的方法 Hook
179
+ - `useDeviceListRefresh()`:刷新设备列表
180
+ - `useDeviceListLoadMore()`:加载下一页设备
181
+
182
+ #### 扩展
183
+ - `getDeviceListStore()`:获取 `deviceListStore` 实例(未初始化会抛错)
184
+
185
+ ---
186
+ <br>
187
+
188
+ ## 🔁 设备(列表)状态事件监听器
189
+
190
+ ### `useInitUpdateDeviceStateEvent()` 监听设备状态更新
191
+ ### `useInitDeviceListUpdateEvent()` 监听设备列表监听事件更新
192
+ ### `useInitDeviceInfoUpdateEvent()` 监听设备更新事件
193
+
194
+ - 注册监听设备状态更新的全局 Hook。
195
+ - 通常应在 `AppContainer.tsx` 或入口组件中调用一次。
196
+
197
+ ---
198
+ <br>
199
+
200
+ ## ✉ 监听事件名称
201
+ | 监听事件名称 | 内容 | 说明 |
202
+ | -------------------------------- | ------------------------- | -------------------- |
203
+ | `EVENT_TYPE_DEVICE_ONLINE` | `onDeviceOnlineState` | 设备在离线状态更新 |
204
+ | `EVENT_TYPE_DEVICE_CONNECTING` | `onDeviceConnectingState` | 设备连接状态更新 |
205
+ | `EVENT_TYPE_REFRESH_DEVICE_LIST` | `QuecRefreshDeviceList` | 设备列表更新 |
206
+ | `EVENT_TYPE_REFRESH_DEVICE` | `QuecRefreshDeviceInfo` | 设备更新(更换设备) |
207
+
208
+ ---
209
+ <br>
210
+
211
+ ## 🔧 回调管理器
212
+
213
+ ### `deviceKitParamsManager`
214
+
215
+ 通过 `registerCallbacks()` 可传入以下回调函数:
216
+
217
+ | 回调名 | 说明 |
218
+ | ------------------------ | ---------------- |
219
+ | `loadingCallback` | 显示全局 loading |
220
+ | `loadingDismissCallback` | 隐藏 loading |
221
+ | `tipCallback` | 全局 toast 提示 |
222
+
223
+ ---
224
+ <br>
225
+
226
+ ## 🧾 类型导出
227
+
228
+ | 类型名 | 描述 |
229
+ | ------------- | ---------------------------------- |
230
+ | `PropsModel` | 初始传入参数类型 |
231
+ | `DeviceModel` | 从PropsModel取出的设备信息类型 |
232
+ | `FamilyModel` | 从PropsModel取出的用户家庭信息类型 |
233
+
234
+ ---
235
+ <br>
236
+
237
+ ## 🌐 多语言配置说明
238
+
239
+ **⚠️ 提示类语言依赖于是否注册了 `tipCallback` 回调。**
240
+
241
+ | key | 中文提示 | 英文提示 |
242
+ | --------------------------------- | -------------- | -------------- |
243
+ | `quec_device_kit_device_offline` | 设备离线 | device offline |
244
+ | `quec_device_kit_device_online` | 设备上线 | -- |
245
+ | `quec_device_kit_no_more_devices` | 没有更多设备了 | -- |
246
+
247
+ ---
248
+ <br>
249
+
250
+ ## 🛠 本地调试说明
251
+
252
+ 如需修改本库并本地调试,请参考 👉 [本地调试文档](./README_DEV.md)
253
+
package/dist/index.cjs CHANGED
@@ -6,7 +6,7 @@ var camelCase = require('lodash.camelcase');
6
6
  var zustand = require('zustand');
7
7
  var react = require('react');
8
8
  var reactNative = require('react-native');
9
- var QuecRNBusinessPanelModule = require('@quec/rn-businesspanel-module/src/index');
9
+ var QuecRNBusinessPanelModule = require('@quec/rn-businesspanel-module');
10
10
 
11
11
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
12
12