@idooel/components 0.0.2-beta.3 → 0.0.2-beta.31

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 (113) hide show
  1. package/README.md +98 -98
  2. package/dist/@idooel/components.esm.js +3599 -1574
  3. package/dist/@idooel/components.umd.js +3653 -1629
  4. package/jsconfig.json +7 -7
  5. package/package.json +64 -50
  6. package/packages/alert/index.js +4 -4
  7. package/packages/alert/src/index.vue +45 -45
  8. package/packages/batch-export/index.js +4 -4
  9. package/packages/batch-export/src/index.vue +104 -104
  10. package/packages/business-components/modal-fsm/index.js +4 -4
  11. package/packages/business-components/modal-fsm/src/index.vue +163 -163
  12. package/packages/business-components/modal-import/index.js +4 -4
  13. package/packages/business-components/modal-import/src/index.vue +222 -139
  14. package/packages/business-components/modal-timeline/index.js +4 -4
  15. package/packages/business-components/modal-timeline/src/index.vue +77 -77
  16. package/packages/business-components/tabs-sub-center/index.js +4 -4
  17. package/packages/business-components/tabs-sub-center/src/index.vue +116 -116
  18. package/packages/button/index.js +4 -4
  19. package/packages/button/src/index.vue +65 -65
  20. package/packages/checkbox/index.js +4 -4
  21. package/packages/checkbox/src/index.vue +52 -52
  22. package/packages/composite-components/button-group/index.js +4 -4
  23. package/packages/composite-components/button-group/src/index.vue +151 -151
  24. package/packages/composite-components/form-attachment/src/index.vue +14 -14
  25. package/packages/composite-components/form-img-crop/index.js +4 -4
  26. package/packages/composite-components/form-img-crop/src/index.vue +131 -131
  27. package/packages/composite-components/modal-confirm/index.js +4 -4
  28. package/packages/composite-components/modal-confirm/src/index.vue +103 -103
  29. package/packages/composite-components/modal-form/index.js +4 -4
  30. package/packages/composite-components/modal-form/src/index.vue +230 -230
  31. package/packages/composite-components/modal-img-crop/index.js +4 -4
  32. package/packages/composite-components/modal-img-crop/src/index.vue +298 -298
  33. package/packages/composite-components/modal-table/index.js +4 -4
  34. package/packages/composite-components/modal-table/src/index.vue +155 -155
  35. package/packages/composite-components/modal-tree/index.js +4 -4
  36. package/packages/composite-components/modal-tree/src/index.vue +75 -75
  37. package/packages/composite-components/search-area/index.js +4 -4
  38. package/packages/composite-components/search-area/src/index.vue +239 -237
  39. package/packages/composite-components/search-area/src/label.vue +35 -35
  40. package/packages/composite-components/select-entity-modal-table/index.js +4 -4
  41. package/packages/composite-components/select-entity-modal-table/src/index.vue +171 -171
  42. package/packages/date/index.js +4 -4
  43. package/packages/date/src/index.vue +112 -112
  44. package/packages/date-range/index.js +4 -4
  45. package/packages/date-range/src/index.vue +47 -47
  46. package/packages/form/index.js +4 -4
  47. package/packages/form/src/index.vue +393 -319
  48. package/packages/icon/index.js +4 -4
  49. package/packages/icon/src/index.vue +31 -31
  50. package/packages/index.js +159 -153
  51. package/packages/input/index.js +4 -4
  52. package/packages/input/src/index.vue +35 -35
  53. package/packages/input-number/index.js +4 -4
  54. package/packages/input-number/src/index.vue +23 -23
  55. package/packages/loading/index.js +4 -4
  56. package/packages/loading/src/index.vue +36 -36
  57. package/packages/meta/provider.js +4 -0
  58. package/packages/modal/index.js +4 -4
  59. package/packages/modal/src/index.vue +184 -184
  60. package/packages/models/form-group-model/index.js +4 -4
  61. package/packages/models/form-group-model/src/index.vue +271 -273
  62. package/packages/models/form-model/index.js +4 -4
  63. package/packages/models/form-model/src/index.vue +236 -232
  64. package/packages/models/step-model/index.js +4 -4
  65. package/packages/models/step-model/src/index.vue +224 -224
  66. package/packages/models/tree-table-model/README.md +0 -0
  67. package/packages/models/tree-table-model/index.js +4 -4
  68. package/packages/models/tree-table-model/src/index.vue +963 -689
  69. package/packages/pagination/index.js +5 -0
  70. package/packages/pagination/src/index.vue +372 -0
  71. package/packages/radio/index.js +4 -4
  72. package/packages/radio/src/index.vue +56 -56
  73. package/packages/select/index.js +4 -4
  74. package/packages/select/src/index.vue +113 -105
  75. package/packages/select-entity/index.js +4 -4
  76. package/packages/select-entity/src/index.vue +119 -119
  77. package/packages/table/index.js +4 -4
  78. package/packages/table/src/action.vue +176 -172
  79. package/packages/table/src/index.vue +605 -319
  80. package/packages/tabs/index.js +4 -4
  81. package/packages/tabs/src/index.vue +55 -55
  82. package/packages/text/index.js +4 -4
  83. package/packages/text/src/index.vue +47 -47
  84. package/packages/text-editor/index.js +4 -4
  85. package/packages/text-editor/src/index.vue +72 -72
  86. package/packages/textarea/index.js +4 -4
  87. package/packages/textarea/src/index.vue +57 -57
  88. package/packages/theme/form.scss +21 -21
  89. package/packages/theme/index.scss +43 -43
  90. package/packages/theme/overrid.scss +7 -7
  91. package/packages/theme/styleClass.scss +2 -2
  92. package/packages/theme/variables.scss +55 -55
  93. package/packages/timeline/index.js +4 -4
  94. package/packages/timeline/src/index.vue +257 -257
  95. package/packages/tpl/index.js +4 -4
  96. package/packages/tpl/src/index.vue +55 -55
  97. package/packages/tree/index.js +4 -4
  98. package/packages/tree/src/TreeNode.vue +29 -29
  99. package/packages/tree/src/index.vue +101 -101
  100. package/packages/tree-select/index.js +4 -4
  101. package/packages/tree-select/src/index.vue +142 -142
  102. package/packages/upload/index.js +4 -4
  103. package/packages/upload/src/index.vue +998 -494
  104. package/packages/utils/README.md +172 -0
  105. package/packages/utils/index.js +66 -62
  106. package/packages/utils/runtime-context/dataPoolAPI.js +501 -0
  107. package/packages/utils/runtime-context/globalDataPool.js +279 -0
  108. package/packages/utils/runtime-context/index.js +76 -0
  109. package/packages/utils/runtime-context/modelSchema.js +174 -0
  110. package/scripts/rollup.config.js +42 -42
  111. package/scripts/rollup.esm.config.js +11 -11
  112. package/scripts/rollup.umd.config.js +17 -14
  113. package/vitest.config.js +17 -0
@@ -0,0 +1,501 @@
1
+ /**
2
+ * 统一的数据池 API 接口
3
+ * 提供简洁易用的数据操作接口,封装全局数据池的复杂性
4
+ */
5
+
6
+
7
+ /**
8
+ * 数据池 API 类
9
+ */
10
+ export class DataPoolAPI {
11
+ constructor() {
12
+ this.dataPool = window.__idooel_data_pool__
13
+ if (!this.dataPool) {
14
+ throw new Error('Global data pool not initialized. Please ensure runtime-context/index.js is imported before using this API.')
15
+ }
16
+ }
17
+
18
+ // ==================== 模型实例管理 ====================
19
+
20
+ /**
21
+ * 创建树形表格模型实例
22
+ * @param {string} instanceId 实例ID(可选,不提供则自动生成)
23
+ * @param {object} options 初始化选项
24
+ * @returns {object} 模型方法实例
25
+ */
26
+ createTreeTableModel(instanceId, options = {}) {
27
+ const id = instanceId || this.dataPool.utils.generateId('treeTableModel')
28
+ return this.dataPool.factory.createModel('tree-table', id, options)
29
+ }
30
+
31
+ /**
32
+ * 获取模型实例
33
+ * @param {string} instanceId 实例ID
34
+ * @returns {object|null} 模型方法实例
35
+ */
36
+ getModel(instanceId) {
37
+ return this.dataPool.manager.getModel(instanceId)
38
+ }
39
+
40
+ /**
41
+ * 获取所有指定类型的模型
42
+ * @param {string} modelType 模型类型
43
+ * @returns {object} 模型实例集合
44
+ */
45
+ getAllModels(modelType = null) {
46
+ return this.dataPool.manager.getAllModels(modelType)
47
+ }
48
+
49
+ /**
50
+ * 销毁模型实例
51
+ * @param {string} instanceId 实例ID
52
+ */
53
+ destroyModel(instanceId) {
54
+ this.dataPool.manager.unregisterModel(instanceId)
55
+ }
56
+
57
+ // ==================== 数据操作 ====================
58
+
59
+ /**
60
+ * 设置模型数据
61
+ * @param {string} instanceId 实例ID
62
+ * @param {string} key 数据键
63
+ * @param {any} value 数据值
64
+ */
65
+ setModelData(instanceId, key, value) {
66
+ this.dataPool.manager.setData(instanceId, key, value)
67
+ return this
68
+ }
69
+
70
+ /**
71
+ * 获取模型数据
72
+ * @param {string} instanceId 实例ID
73
+ * @param {string} key 数据键
74
+ * @param {any} defaultValue 默认值
75
+ * @returns {any} 数据值
76
+ */
77
+ getModelData(instanceId, key, defaultValue = null) {
78
+ return this.dataPool.manager.getData(instanceId, key, defaultValue)
79
+ }
80
+
81
+ /**
82
+ * 批量设置模型数据
83
+ * @param {string} instanceId 实例ID
84
+ * @param {object} data 数据对象
85
+ */
86
+ setBatchModelData(instanceId, data) {
87
+ Object.entries(data).forEach(([key, value]) => {
88
+ this.setModelData(instanceId, key, value)
89
+ })
90
+ return this
91
+ }
92
+
93
+ /**
94
+ * 获取模型的所有数据
95
+ * @param {string} instanceId 实例ID
96
+ * @returns {object} 模型数据
97
+ */
98
+ getAllModelData(instanceId) {
99
+ const model = this.dataPool.manager.getModel(instanceId)
100
+ if (!model) {
101
+ return {}
102
+ }
103
+
104
+ const exported = model.export() || {}
105
+ return exported.data || {}
106
+ }
107
+
108
+ // ==================== 共享数据操作 ====================
109
+
110
+ /**
111
+ * 设置用户信息
112
+ * @param {object} userInfo 用户信息
113
+ */
114
+ setUserInfo(userInfo) {
115
+ this.dataPool.manager.setSharedData(
116
+ SHARED_NAMESPACES.USER,
117
+ SHARED_KEYS.USER_INFO,
118
+ userInfo,
119
+ ACCESS_LEVELS.PROTECTED
120
+ )
121
+ return this
122
+ }
123
+
124
+ /**
125
+ * 获取用户信息
126
+ * @returns {object} 用户信息
127
+ */
128
+ getUserInfo() {
129
+ return this.dataPool.manager.getSharedData(
130
+ SHARED_NAMESPACES.USER,
131
+ SHARED_KEYS.USER_INFO,
132
+ {},
133
+ ACCESS_LEVELS.PROTECTED
134
+ )
135
+ }
136
+
137
+ /**
138
+ * 设置用户权限
139
+ * @param {array} permissions 权限列表
140
+ */
141
+ setUserPermissions(permissions) {
142
+ this.dataPool.manager.setSharedData(
143
+ SHARED_NAMESPACES.USER,
144
+ SHARED_KEYS.USER_PERMISSIONS,
145
+ permissions,
146
+ ACCESS_LEVELS.PROTECTED
147
+ )
148
+ return this
149
+ }
150
+
151
+ /**
152
+ * 获取用户权限
153
+ * @returns {array} 权限列表
154
+ */
155
+ getUserPermissions() {
156
+ return this.dataPool.manager.getSharedData(
157
+ SHARED_NAMESPACES.USER,
158
+ SHARED_KEYS.USER_PERMISSIONS,
159
+ [],
160
+ ACCESS_LEVELS.PROTECTED
161
+ )
162
+ }
163
+
164
+ /**
165
+ * 设置系统配置
166
+ * @param {object} config 系统配置
167
+ */
168
+ setSystemConfig(config) {
169
+ this.dataPool.manager.setSharedData(
170
+ SHARED_NAMESPACES.SYSTEM,
171
+ SHARED_KEYS.SYSTEM_CONFIG,
172
+ config,
173
+ ACCESS_LEVELS.PROTECTED
174
+ )
175
+ return this
176
+ }
177
+
178
+ /**
179
+ * 获取系统配置
180
+ * @returns {object} 系统配置
181
+ */
182
+ getSystemConfig() {
183
+ return this.dataPool.manager.getSharedData(
184
+ SHARED_NAMESPACES.SYSTEM,
185
+ SHARED_KEYS.SYSTEM_CONFIG,
186
+ {},
187
+ ACCESS_LEVELS.PROTECTED
188
+ )
189
+ }
190
+
191
+ /**
192
+ * 设置系统主题
193
+ * @param {object} theme 主题配置
194
+ */
195
+ setSystemTheme(theme) {
196
+ this.dataPool.manager.setSharedData(
197
+ SHARED_NAMESPACES.SYSTEM,
198
+ SHARED_KEYS.SYSTEM_THEME,
199
+ theme,
200
+ ACCESS_LEVELS.PUBLIC
201
+ )
202
+ return this
203
+ }
204
+
205
+ /**
206
+ * 获取系统主题
207
+ * @returns {object} 主题配置
208
+ */
209
+ getSystemTheme() {
210
+ return this.dataPool.manager.getSharedData(
211
+ SHARED_NAMESPACES.SYSTEM,
212
+ SHARED_KEYS.SYSTEM_THEME,
213
+ {},
214
+ ACCESS_LEVELS.PUBLIC
215
+ )
216
+ }
217
+
218
+ /**
219
+ * 设置模态框父级数据
220
+ * @param {object} parentData 父级数据
221
+ */
222
+ setModalParentData(parentData) {
223
+ this.dataPool.manager.setSharedData(
224
+ SHARED_NAMESPACES.MODAL,
225
+ SHARED_KEYS.MODAL_PARENT_DATA,
226
+ parentData,
227
+ ACCESS_LEVELS.PRIVATE
228
+ )
229
+ return this
230
+ }
231
+
232
+ /**
233
+ * 获取模态框父级数据
234
+ * @returns {object} 父级数据
235
+ */
236
+ getModalParentData() {
237
+ return this.dataPool.manager.getSharedData(
238
+ SHARED_NAMESPACES.MODAL,
239
+ SHARED_KEYS.MODAL_PARENT_DATA,
240
+ null,
241
+ ACCESS_LEVELS.PRIVATE
242
+ )
243
+ }
244
+
245
+ /**
246
+ * 设置业务字典
247
+ * @param {object} dictionaries 业务字典
248
+ */
249
+ setBusinessDictionaries(dictionaries) {
250
+ this.dataPool.manager.setSharedData(
251
+ SHARED_NAMESPACES.BUSINESS,
252
+ SHARED_KEYS.BUSINESS_DICTIONARIES,
253
+ dictionaries,
254
+ ACCESS_LEVELS.PUBLIC
255
+ )
256
+ return this
257
+ }
258
+
259
+ /**
260
+ * 获取业务字典
261
+ * @returns {object} 业务字典
262
+ */
263
+ getBusinessDictionaries() {
264
+ return this.dataPool.manager.getSharedData(
265
+ SHARED_NAMESPACES.BUSINESS,
266
+ SHARED_KEYS.BUSINESS_DICTIONARIES,
267
+ {},
268
+ ACCESS_LEVELS.PUBLIC
269
+ )
270
+ }
271
+
272
+ // ==================== 订阅系统 ====================
273
+
274
+ /**
275
+ * 订阅模型数据变化
276
+ * @param {string} instanceId 实例ID
277
+ * @param {string} key 数据键
278
+ * @param {function} callback 回调函数
279
+ * @returns {function} 取消订阅函数
280
+ */
281
+ subscribeModelData(instanceId, key, callback) {
282
+ return this.dataPool.manager.subscribe({
283
+ instanceId,
284
+ key
285
+ }, callback)
286
+ }
287
+
288
+ /**
289
+ * 订阅用户信息变化
290
+ * @param {function} callback 回调函数
291
+ * @returns {function} 取消订阅函数
292
+ */
293
+ subscribeUserInfo(callback) {
294
+ return this.dataPool.manager.subscribe({
295
+ namespace: SHARED_NAMESPACES.USER,
296
+ key: SHARED_KEYS.USER_INFO
297
+ }, callback)
298
+ }
299
+
300
+ /**
301
+ * 订阅系统配置变化
302
+ * @param {function} callback 回调函数
303
+ * @returns {function} 取消订阅函数
304
+ */
305
+ subscribeSystemConfig(callback) {
306
+ return this.dataPool.manager.subscribe({
307
+ namespace: SHARED_NAMESPACES.SYSTEM,
308
+ key: SHARED_KEYS.SYSTEM_CONFIG
309
+ }, callback)
310
+ }
311
+
312
+ /**
313
+ * 订阅系统主题变化
314
+ * @param {function} callback 回调函数
315
+ * @returns {function} 取消订阅函数
316
+ */
317
+ subscribeSystemTheme(callback) {
318
+ return this.dataPool.manager.subscribe({
319
+ namespace: SHARED_NAMESPACES.SYSTEM,
320
+ key: SHARED_KEYS.SYSTEM_THEME
321
+ }, callback)
322
+ }
323
+
324
+ /**
325
+ * 订阅模态框父级数据变化
326
+ * @param {function} callback 回调函数
327
+ * @returns {function} 取消订阅函数
328
+ */
329
+ subscribeModalParentData(callback) {
330
+ return this.dataPool.manager.subscribe({
331
+ namespace: SHARED_NAMESPACES.MODAL,
332
+ key: SHARED_KEYS.MODAL_PARENT_DATA
333
+ }, callback)
334
+ }
335
+
336
+ // ==================== 工具方法 ====================
337
+
338
+ /**
339
+ * 导出模型数据
340
+ * @param {string} instanceId 实例ID
341
+ * @returns {object} 导出的数据
342
+ */
343
+ exportModelData(instanceId) {
344
+ const model = this.dataPool.manager.getModel(instanceId)
345
+ return model ? model.export() : null
346
+ }
347
+
348
+ /**
349
+ * 导入模型数据
350
+ * @param {string} instanceId 实例ID
351
+ * @param {object} data 要导入的数据
352
+ */
353
+ importModelData(instanceId, data) {
354
+ this.dataPool.manager.importData(instanceId, data)
355
+ return this
356
+ }
357
+
358
+ /**
359
+ * 清理模型数据
360
+ * @param {string} instanceId 实例ID
361
+ */
362
+ clearModelData(instanceId) {
363
+ this.dataPool.manager.clearModelData(instanceId)
364
+ return this
365
+ }
366
+
367
+ /**
368
+ * 获取调试信息
369
+ * @returns {object} 调试信息
370
+ */
371
+ getDebugInfo() {
372
+ return this.dataPool.manager.debug()
373
+ }
374
+
375
+ /**
376
+ * 生成唯一ID
377
+ * @param {string} prefix 前缀
378
+ * @returns {string} 唯一ID
379
+ */
380
+ generateId(prefix = 'data') {
381
+ return this.dataPool.utils.generateId(prefix)
382
+ }
383
+
384
+ /**
385
+ * 深拷贝对象
386
+ * @param {any} obj 要拷贝的对象
387
+ * @returns {any} 拷贝后的对象
388
+ */
389
+ deepClone(obj) {
390
+ return this.dataPool.utils.deepClone(obj)
391
+ }
392
+
393
+ /**
394
+ * 检查对象是否为空
395
+ * @param {any} value 要检查的值
396
+ * @returns {boolean} 是否为空
397
+ */
398
+ isEmpty(value) {
399
+ return this.dataPool.utils.isEmpty(value)
400
+ }
401
+
402
+ /**
403
+ * 检查是否为对象
404
+ * @param {any} value 要检查的值
405
+ * @returns {boolean} 是否为对象
406
+ */
407
+ isObject(value) {
408
+ return this.dataPool.utils.isObject(value)
409
+ }
410
+
411
+ /**
412
+ * 获取当前时间戳
413
+ * @returns {number} 时间戳
414
+ */
415
+ now() {
416
+ return this.dataPool.utils.now()
417
+ }
418
+ }
419
+
420
+ /**
421
+ * 创建数据池 API 实例
422
+ * @returns {DataPoolAPI} API 实例
423
+ */
424
+ export const createDataPoolAPI = () => {
425
+ return new DataPoolAPI()
426
+ }
427
+
428
+ /**
429
+ * 全局数据池 API 实例 - 延迟初始化
430
+ */
431
+ let dataPoolAPIInstance = null
432
+
433
+ export const dataPoolAPI = new Proxy({}, {
434
+ get(target, prop) {
435
+ if (!dataPoolAPIInstance) {
436
+ dataPoolAPIInstance = createDataPoolAPI()
437
+ }
438
+ return dataPoolAPIInstance[prop]
439
+ }
440
+ })
441
+
442
+ /**
443
+ * 便捷的导出函数,供直接使用 - 延迟初始化
444
+ */
445
+ const getAPI = () => {
446
+ if (!dataPoolAPIInstance) {
447
+ dataPoolAPIInstance = createDataPoolAPI()
448
+ }
449
+ return dataPoolAPIInstance
450
+ }
451
+
452
+ // 模型管理
453
+ export const createTreeTableModel = (instanceId, options = {}) => getAPI().createTreeTableModel(instanceId, options)
454
+ export const getModel = (instanceId) => getAPI().getModel(instanceId)
455
+ export const getAllModels = (modelType = null) => getAPI().getAllModels(modelType)
456
+ export const destroyModel = (instanceId) => getAPI().destroyModel(instanceId)
457
+
458
+ // 数据操作
459
+ export const setModelData = (instanceId, key, value) => getAPI().setModelData(instanceId, key, value)
460
+ export const getModelData = (instanceId, key, defaultValue = null) => getAPI().getModelData(instanceId, key, defaultValue)
461
+ export const setBatchModelData = (instanceId, data) => getAPI().setBatchModelData(instanceId, data)
462
+ export const getAllModelData = (instanceId) => getAPI().getAllModelData(instanceId)
463
+
464
+ // 用户数据
465
+ export const setUserInfo = (userInfo) => getAPI().setUserInfo(userInfo)
466
+ export const getUserInfo = () => getAPI().getUserInfo()
467
+ export const setUserPermissions = (permissions) => getAPI().setUserPermissions(permissions)
468
+ export const getUserPermissions = () => getAPI().getUserPermissions()
469
+
470
+ // 系统数据
471
+ export const setSystemConfig = (config) => getAPI().setSystemConfig(config)
472
+ export const getSystemConfig = () => getAPI().getSystemConfig()
473
+ export const setSystemTheme = (theme) => getAPI().setSystemTheme(theme)
474
+ export const getSystemTheme = () => getAPI().getSystemTheme()
475
+
476
+ // 业务数据
477
+ export const setModalParentData = (parentData) => getAPI().setModalParentData(parentData)
478
+ export const getModalParentData = () => getAPI().getModalParentData()
479
+ export const setBusinessDictionaries = (dictionaries) => getAPI().setBusinessDictionaries(dictionaries)
480
+ export const getBusinessDictionaries = () => getAPI().getBusinessDictionaries()
481
+
482
+ // 订阅
483
+ export const subscribeModelData = (instanceId, key, callback) => getAPI().subscribeModelData(instanceId, key, callback)
484
+ export const subscribeUserInfo = (callback) => getAPI().subscribeUserInfo(callback)
485
+ export const subscribeSystemConfig = (callback) => getAPI().subscribeSystemConfig(callback)
486
+ export const subscribeSystemTheme = (callback) => getAPI().subscribeSystemTheme(callback)
487
+ export const subscribeModalParentData = (callback) => getAPI().subscribeModalParentData(callback)
488
+
489
+ // 工具
490
+ export const exportModelData = (instanceId) => getAPI().exportModelData(instanceId)
491
+ export const importModelData = (instanceId, data) => getAPI().importModelData(instanceId, data)
492
+ export const clearModelData = (instanceId) => getAPI().clearModelData(instanceId)
493
+ export const getDebugInfo = (instanceId = null) => getAPI().getDebugInfo(instanceId)
494
+ export const generateId = (prefix = '') => getAPI().generateId(prefix)
495
+ export const deepClone = (obj) => getAPI().deepClone(obj)
496
+ export const isEmpty = (value) => getAPI().isEmpty(value)
497
+ export const isObject = (value) => getAPI().isObject(value)
498
+ export const now = () => getAPI().now()
499
+
500
+ // 默认导出 API 实例
501
+ export default dataPoolAPI