@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.
- package/README.md +98 -98
- package/dist/@idooel/components.esm.js +3599 -1574
- package/dist/@idooel/components.umd.js +3653 -1629
- package/jsconfig.json +7 -7
- package/package.json +64 -50
- package/packages/alert/index.js +4 -4
- package/packages/alert/src/index.vue +45 -45
- package/packages/batch-export/index.js +4 -4
- package/packages/batch-export/src/index.vue +104 -104
- package/packages/business-components/modal-fsm/index.js +4 -4
- package/packages/business-components/modal-fsm/src/index.vue +163 -163
- package/packages/business-components/modal-import/index.js +4 -4
- package/packages/business-components/modal-import/src/index.vue +222 -139
- package/packages/business-components/modal-timeline/index.js +4 -4
- package/packages/business-components/modal-timeline/src/index.vue +77 -77
- package/packages/business-components/tabs-sub-center/index.js +4 -4
- package/packages/business-components/tabs-sub-center/src/index.vue +116 -116
- package/packages/button/index.js +4 -4
- package/packages/button/src/index.vue +65 -65
- package/packages/checkbox/index.js +4 -4
- package/packages/checkbox/src/index.vue +52 -52
- package/packages/composite-components/button-group/index.js +4 -4
- package/packages/composite-components/button-group/src/index.vue +151 -151
- package/packages/composite-components/form-attachment/src/index.vue +14 -14
- package/packages/composite-components/form-img-crop/index.js +4 -4
- package/packages/composite-components/form-img-crop/src/index.vue +131 -131
- package/packages/composite-components/modal-confirm/index.js +4 -4
- package/packages/composite-components/modal-confirm/src/index.vue +103 -103
- package/packages/composite-components/modal-form/index.js +4 -4
- package/packages/composite-components/modal-form/src/index.vue +230 -230
- package/packages/composite-components/modal-img-crop/index.js +4 -4
- package/packages/composite-components/modal-img-crop/src/index.vue +298 -298
- package/packages/composite-components/modal-table/index.js +4 -4
- package/packages/composite-components/modal-table/src/index.vue +155 -155
- package/packages/composite-components/modal-tree/index.js +4 -4
- package/packages/composite-components/modal-tree/src/index.vue +75 -75
- package/packages/composite-components/search-area/index.js +4 -4
- package/packages/composite-components/search-area/src/index.vue +239 -237
- package/packages/composite-components/search-area/src/label.vue +35 -35
- package/packages/composite-components/select-entity-modal-table/index.js +4 -4
- package/packages/composite-components/select-entity-modal-table/src/index.vue +171 -171
- package/packages/date/index.js +4 -4
- package/packages/date/src/index.vue +112 -112
- package/packages/date-range/index.js +4 -4
- package/packages/date-range/src/index.vue +47 -47
- package/packages/form/index.js +4 -4
- package/packages/form/src/index.vue +393 -319
- package/packages/icon/index.js +4 -4
- package/packages/icon/src/index.vue +31 -31
- package/packages/index.js +159 -153
- package/packages/input/index.js +4 -4
- package/packages/input/src/index.vue +35 -35
- package/packages/input-number/index.js +4 -4
- package/packages/input-number/src/index.vue +23 -23
- package/packages/loading/index.js +4 -4
- package/packages/loading/src/index.vue +36 -36
- package/packages/meta/provider.js +4 -0
- package/packages/modal/index.js +4 -4
- package/packages/modal/src/index.vue +184 -184
- package/packages/models/form-group-model/index.js +4 -4
- package/packages/models/form-group-model/src/index.vue +271 -273
- package/packages/models/form-model/index.js +4 -4
- package/packages/models/form-model/src/index.vue +236 -232
- package/packages/models/step-model/index.js +4 -4
- package/packages/models/step-model/src/index.vue +224 -224
- package/packages/models/tree-table-model/README.md +0 -0
- package/packages/models/tree-table-model/index.js +4 -4
- package/packages/models/tree-table-model/src/index.vue +963 -689
- package/packages/pagination/index.js +5 -0
- package/packages/pagination/src/index.vue +372 -0
- package/packages/radio/index.js +4 -4
- package/packages/radio/src/index.vue +56 -56
- package/packages/select/index.js +4 -4
- package/packages/select/src/index.vue +113 -105
- package/packages/select-entity/index.js +4 -4
- package/packages/select-entity/src/index.vue +119 -119
- package/packages/table/index.js +4 -4
- package/packages/table/src/action.vue +176 -172
- package/packages/table/src/index.vue +605 -319
- package/packages/tabs/index.js +4 -4
- package/packages/tabs/src/index.vue +55 -55
- package/packages/text/index.js +4 -4
- package/packages/text/src/index.vue +47 -47
- package/packages/text-editor/index.js +4 -4
- package/packages/text-editor/src/index.vue +72 -72
- package/packages/textarea/index.js +4 -4
- package/packages/textarea/src/index.vue +57 -57
- package/packages/theme/form.scss +21 -21
- package/packages/theme/index.scss +43 -43
- package/packages/theme/overrid.scss +7 -7
- package/packages/theme/styleClass.scss +2 -2
- package/packages/theme/variables.scss +55 -55
- package/packages/timeline/index.js +4 -4
- package/packages/timeline/src/index.vue +257 -257
- package/packages/tpl/index.js +4 -4
- package/packages/tpl/src/index.vue +55 -55
- package/packages/tree/index.js +4 -4
- package/packages/tree/src/TreeNode.vue +29 -29
- package/packages/tree/src/index.vue +101 -101
- package/packages/tree-select/index.js +4 -4
- package/packages/tree-select/src/index.vue +142 -142
- package/packages/upload/index.js +4 -4
- package/packages/upload/src/index.vue +998 -494
- package/packages/utils/README.md +172 -0
- package/packages/utils/index.js +66 -62
- package/packages/utils/runtime-context/dataPoolAPI.js +501 -0
- package/packages/utils/runtime-context/globalDataPool.js +279 -0
- package/packages/utils/runtime-context/index.js +76 -0
- package/packages/utils/runtime-context/modelSchema.js +174 -0
- package/scripts/rollup.config.js +42 -42
- package/scripts/rollup.esm.config.js +11 -11
- package/scripts/rollup.umd.config.js +17 -14
- 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
|