@nokecy/qc-ui 1.0.78 → 1.0.80
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/dist/cjs/ag-grid-plus/storage/SchemeSyncManager.d.ts +11 -1
- package/dist/cjs/ag-grid-plus/storage/SchemeSyncManager.js +206 -74
- package/dist/cjs/ag-grid-plus/storage/globalSyncManager.d.ts +2 -1
- package/dist/cjs/ag-grid-plus/storage/globalSyncManager.js +23 -4
- package/dist/cjs/ag-grid-plus/storage/types.d.ts +6 -0
- package/dist/esm/ag-grid-plus/storage/SchemeSyncManager.d.ts +11 -1
- package/dist/esm/ag-grid-plus/storage/SchemeSyncManager.js +206 -74
- package/dist/esm/ag-grid-plus/storage/globalSyncManager.d.ts +2 -1
- package/dist/esm/ag-grid-plus/storage/globalSyncManager.js +23 -3
- package/dist/esm/ag-grid-plus/storage/types.d.ts +6 -0
- package/dist/umd/qc-ui.min.js +1 -1
- package/package.json +1 -1
|
@@ -30,11 +30,21 @@ export declare class SchemeSyncManager {
|
|
|
30
30
|
* @private
|
|
31
31
|
*/
|
|
32
32
|
private getSyncApiUrl;
|
|
33
|
+
/**
|
|
34
|
+
* 检查是否有有效的用户数据
|
|
35
|
+
* @private
|
|
36
|
+
*/
|
|
37
|
+
private hasValidData;
|
|
38
|
+
/**
|
|
39
|
+
* 重新加载数据(从服务器获取最新方案数据)
|
|
40
|
+
*/
|
|
41
|
+
reloadData(): Promise<void>;
|
|
33
42
|
/**
|
|
34
43
|
* 设置认证 Token
|
|
35
44
|
* @param token 认证令牌 (通常是 Bearer Token)
|
|
45
|
+
* @param autoReload 是否在设置 token 后自动重新加载数据(默认 true)
|
|
36
46
|
*/
|
|
37
|
-
setToken(token: string | null): void
|
|
47
|
+
setToken(token: string | null, autoReload?: boolean): Promise<void>;
|
|
38
48
|
/**
|
|
39
49
|
* 获取请求头(包含认证信息)
|
|
40
50
|
* @private
|
|
@@ -113,6 +113,12 @@ var SchemeSyncManager = exports.SchemeSyncManager = /*#__PURE__*/function () {
|
|
|
113
113
|
this.config = _objectSpread(_objectSpread({}, DEFAULT_CONFIG), config);
|
|
114
114
|
this.events = events;
|
|
115
115
|
|
|
116
|
+
// 如果配置中提供了 token,立即设置
|
|
117
|
+
if (config.token) {
|
|
118
|
+
this.authToken = config.token;
|
|
119
|
+
console.log('[SchemeSyncManager] 从配置中设置了初始 Token');
|
|
120
|
+
}
|
|
121
|
+
|
|
116
122
|
// 初始化空数据
|
|
117
123
|
this.allData = {
|
|
118
124
|
columnSchemes: {},
|
|
@@ -148,21 +154,147 @@ var SchemeSyncManager = exports.SchemeSyncManager = /*#__PURE__*/function () {
|
|
|
148
154
|
return "".concat(this.config.apiBaseUrl).concat(this.config.syncApiPath);
|
|
149
155
|
}
|
|
150
156
|
|
|
157
|
+
/**
|
|
158
|
+
* 检查是否有有效的用户数据
|
|
159
|
+
* @private
|
|
160
|
+
*/
|
|
161
|
+
}, {
|
|
162
|
+
key: "hasValidData",
|
|
163
|
+
value: function hasValidData() {
|
|
164
|
+
var hasColumnSchemes = Object.keys(this.allData.columnSchemes).length > 0;
|
|
165
|
+
var hasQuerySchemes = Object.keys(this.allData.querySchemes).length > 0;
|
|
166
|
+
var hasCurrentSchemes = Object.keys(this.allData.currentSchemes).length > 0;
|
|
167
|
+
return hasColumnSchemes || hasQuerySchemes || hasCurrentSchemes;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* 重新加载数据(从服务器获取最新方案数据)
|
|
172
|
+
*/
|
|
173
|
+
}, {
|
|
174
|
+
key: "reloadData",
|
|
175
|
+
value: (function () {
|
|
176
|
+
var _reloadData = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
177
|
+
var response, responseData, allSchemesData;
|
|
178
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
179
|
+
while (1) switch (_context.prev = _context.next) {
|
|
180
|
+
case 0:
|
|
181
|
+
console.log('[SchemeSyncManager] 重新加载数据...');
|
|
182
|
+
_context.prev = 1;
|
|
183
|
+
_context.next = 4;
|
|
184
|
+
return this.fetchWithRetry(this.getGetApiUrl(), {
|
|
185
|
+
method: 'GET',
|
|
186
|
+
headers: this.getHeaders()
|
|
187
|
+
});
|
|
188
|
+
case 4:
|
|
189
|
+
response = _context.sent;
|
|
190
|
+
_context.next = 7;
|
|
191
|
+
return response.json();
|
|
192
|
+
case 7:
|
|
193
|
+
responseData = _context.sent;
|
|
194
|
+
if (!(responseData.success !== undefined)) {
|
|
195
|
+
_context.next = 14;
|
|
196
|
+
break;
|
|
197
|
+
}
|
|
198
|
+
if (responseData.success) {
|
|
199
|
+
_context.next = 11;
|
|
200
|
+
break;
|
|
201
|
+
}
|
|
202
|
+
throw new Error('重新加载失败:服务器返回错误');
|
|
203
|
+
case 11:
|
|
204
|
+
allSchemesData = responseData.data;
|
|
205
|
+
_context.next = 19;
|
|
206
|
+
break;
|
|
207
|
+
case 14:
|
|
208
|
+
if (!(responseData.columnSchemes !== undefined)) {
|
|
209
|
+
_context.next = 18;
|
|
210
|
+
break;
|
|
211
|
+
}
|
|
212
|
+
allSchemesData = responseData;
|
|
213
|
+
_context.next = 19;
|
|
214
|
+
break;
|
|
215
|
+
case 18:
|
|
216
|
+
throw new Error('重新加载失败:服务器返回的数据格式不正确');
|
|
217
|
+
case 19:
|
|
218
|
+
// 反序列化并更新数据
|
|
219
|
+
this.allData = this.deserializeSchemesData(allSchemesData);
|
|
220
|
+
this.lastSyncTime = allSchemesData.syncTime || Date.now();
|
|
221
|
+
console.log('[SchemeSyncManager] 数据重新加载成功:', {
|
|
222
|
+
columnSchemes: Object.keys(this.allData.columnSchemes).length,
|
|
223
|
+
querySchemes: Object.keys(this.allData.querySchemes).length,
|
|
224
|
+
syncTime: new Date(this.lastSyncTime).toISOString()
|
|
225
|
+
});
|
|
226
|
+
_context.next = 28;
|
|
227
|
+
break;
|
|
228
|
+
case 24:
|
|
229
|
+
_context.prev = 24;
|
|
230
|
+
_context.t0 = _context["catch"](1);
|
|
231
|
+
console.error('[SchemeSyncManager] 重新加载数据失败:', _context.t0);
|
|
232
|
+
throw _context.t0;
|
|
233
|
+
case 28:
|
|
234
|
+
case "end":
|
|
235
|
+
return _context.stop();
|
|
236
|
+
}
|
|
237
|
+
}, _callee, this, [[1, 24]]);
|
|
238
|
+
}));
|
|
239
|
+
function reloadData() {
|
|
240
|
+
return _reloadData.apply(this, arguments);
|
|
241
|
+
}
|
|
242
|
+
return reloadData;
|
|
243
|
+
}()
|
|
151
244
|
/**
|
|
152
245
|
* 设置认证 Token
|
|
153
246
|
* @param token 认证令牌 (通常是 Bearer Token)
|
|
247
|
+
* @param autoReload 是否在设置 token 后自动重新加载数据(默认 true)
|
|
154
248
|
*/
|
|
249
|
+
)
|
|
155
250
|
}, {
|
|
156
251
|
key: "setToken",
|
|
157
|
-
value: function
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
252
|
+
value: (function () {
|
|
253
|
+
var _setToken = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(token) {
|
|
254
|
+
var autoReload,
|
|
255
|
+
previousToken,
|
|
256
|
+
_args2 = arguments;
|
|
257
|
+
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
258
|
+
while (1) switch (_context2.prev = _context2.next) {
|
|
259
|
+
case 0:
|
|
260
|
+
autoReload = _args2.length > 1 && _args2[1] !== undefined ? _args2[1] : true;
|
|
261
|
+
previousToken = this.authToken;
|
|
262
|
+
this.authToken = token;
|
|
263
|
+
console.log('[SchemeSyncManager] Token 已更新');
|
|
264
|
+
|
|
265
|
+
// 如果已经初始化,且之前没有 token,现在有了 token,且数据为空,自动重新加载
|
|
266
|
+
if (!(autoReload && this.initialized && !previousToken && token && !this.hasValidData())) {
|
|
267
|
+
_context2.next = 14;
|
|
268
|
+
break;
|
|
269
|
+
}
|
|
270
|
+
console.log('[SchemeSyncManager] 检测到首次设置 Token 且无数据,自动重新加载...');
|
|
271
|
+
_context2.prev = 6;
|
|
272
|
+
_context2.next = 9;
|
|
273
|
+
return this.reloadData();
|
|
274
|
+
case 9:
|
|
275
|
+
_context2.next = 14;
|
|
276
|
+
break;
|
|
277
|
+
case 11:
|
|
278
|
+
_context2.prev = 11;
|
|
279
|
+
_context2.t0 = _context2["catch"](6);
|
|
280
|
+
console.error('[SchemeSyncManager] Token 设置后自动重新加载失败:', _context2.t0);
|
|
281
|
+
// 不抛出错误,允许继续使用
|
|
282
|
+
case 14:
|
|
283
|
+
case "end":
|
|
284
|
+
return _context2.stop();
|
|
285
|
+
}
|
|
286
|
+
}, _callee2, this, [[6, 11]]);
|
|
287
|
+
}));
|
|
288
|
+
function setToken(_x) {
|
|
289
|
+
return _setToken.apply(this, arguments);
|
|
290
|
+
}
|
|
291
|
+
return setToken;
|
|
292
|
+
}()
|
|
162
293
|
/**
|
|
163
294
|
* 获取请求头(包含认证信息)
|
|
164
295
|
* @private
|
|
165
296
|
*/
|
|
297
|
+
)
|
|
166
298
|
}, {
|
|
167
299
|
key: "getHeaders",
|
|
168
300
|
value: function getHeaders() {
|
|
@@ -181,51 +313,51 @@ var SchemeSyncManager = exports.SchemeSyncManager = /*#__PURE__*/function () {
|
|
|
181
313
|
}, {
|
|
182
314
|
key: "initialize",
|
|
183
315
|
value: (function () {
|
|
184
|
-
var _initialize = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function
|
|
316
|
+
var _initialize = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
|
|
185
317
|
var response, responseData, allSchemesData;
|
|
186
|
-
return _regeneratorRuntime().wrap(function
|
|
187
|
-
while (1) switch (
|
|
318
|
+
return _regeneratorRuntime().wrap(function _callee3$(_context3) {
|
|
319
|
+
while (1) switch (_context3.prev = _context3.next) {
|
|
188
320
|
case 0:
|
|
189
321
|
if (!this.initialized) {
|
|
190
|
-
|
|
322
|
+
_context3.next = 3;
|
|
191
323
|
break;
|
|
192
324
|
}
|
|
193
325
|
console.warn('[SchemeSyncManager] 已经初始化,跳过重复初始化');
|
|
194
|
-
return
|
|
326
|
+
return _context3.abrupt("return");
|
|
195
327
|
case 3:
|
|
196
|
-
|
|
197
|
-
|
|
328
|
+
_context3.prev = 3;
|
|
329
|
+
_context3.next = 6;
|
|
198
330
|
return this.fetchWithRetry(this.getGetApiUrl(), {
|
|
199
331
|
method: 'GET',
|
|
200
332
|
headers: this.getHeaders()
|
|
201
333
|
});
|
|
202
334
|
case 6:
|
|
203
|
-
response =
|
|
204
|
-
|
|
335
|
+
response = _context3.sent;
|
|
336
|
+
_context3.next = 9;
|
|
205
337
|
return response.json();
|
|
206
338
|
case 9:
|
|
207
|
-
responseData =
|
|
339
|
+
responseData = _context3.sent;
|
|
208
340
|
if (!(responseData.success !== undefined)) {
|
|
209
|
-
|
|
341
|
+
_context3.next = 16;
|
|
210
342
|
break;
|
|
211
343
|
}
|
|
212
344
|
if (responseData.success) {
|
|
213
|
-
|
|
345
|
+
_context3.next = 13;
|
|
214
346
|
break;
|
|
215
347
|
}
|
|
216
348
|
throw new Error('初始化失败:服务器返回错误');
|
|
217
349
|
case 13:
|
|
218
350
|
allSchemesData = responseData.data;
|
|
219
|
-
|
|
351
|
+
_context3.next = 21;
|
|
220
352
|
break;
|
|
221
353
|
case 16:
|
|
222
354
|
if (!(responseData.columnSchemes !== undefined)) {
|
|
223
|
-
|
|
355
|
+
_context3.next = 20;
|
|
224
356
|
break;
|
|
225
357
|
}
|
|
226
358
|
// 格式2: 直接返回 AllSchemesData
|
|
227
359
|
allSchemesData = responseData;
|
|
228
|
-
|
|
360
|
+
_context3.next = 21;
|
|
229
361
|
break;
|
|
230
362
|
case 20:
|
|
231
363
|
throw new Error('初始化失败:服务器返回的数据格式不正确');
|
|
@@ -244,18 +376,18 @@ var SchemeSyncManager = exports.SchemeSyncManager = /*#__PURE__*/function () {
|
|
|
244
376
|
querySchemes: Object.keys(this.allData.querySchemes).length,
|
|
245
377
|
syncTime: new Date(this.lastSyncTime).toISOString()
|
|
246
378
|
});
|
|
247
|
-
|
|
379
|
+
_context3.next = 32;
|
|
248
380
|
break;
|
|
249
381
|
case 28:
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
console.error('[SchemeSyncManager] 初始化失败:',
|
|
253
|
-
throw
|
|
382
|
+
_context3.prev = 28;
|
|
383
|
+
_context3.t0 = _context3["catch"](3);
|
|
384
|
+
console.error('[SchemeSyncManager] 初始化失败:', _context3.t0);
|
|
385
|
+
throw _context3.t0;
|
|
254
386
|
case 32:
|
|
255
387
|
case "end":
|
|
256
|
-
return
|
|
388
|
+
return _context3.stop();
|
|
257
389
|
}
|
|
258
|
-
},
|
|
390
|
+
}, _callee3, this, [[3, 28]]);
|
|
259
391
|
}));
|
|
260
392
|
function initialize() {
|
|
261
393
|
return _initialize.apply(this, arguments);
|
|
@@ -429,31 +561,31 @@ var SchemeSyncManager = exports.SchemeSyncManager = /*#__PURE__*/function () {
|
|
|
429
561
|
}, {
|
|
430
562
|
key: "syncNow",
|
|
431
563
|
value: (function () {
|
|
432
|
-
var _syncNow = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function
|
|
564
|
+
var _syncNow = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
|
|
433
565
|
var _this$events$onSyncSt,
|
|
434
566
|
_this$events,
|
|
435
567
|
_this4 = this;
|
|
436
568
|
var _this$events$onSyncSu, _this$events3, _syncResult$conflicts, requestData, dirtyColumnGrids, dirtyQueryGrids, dirtyCurrentGrids, response, responseData, syncResult, _this$events$onConfli, _this$events2, _this$events$onSyncEr, _this$events4;
|
|
437
|
-
return _regeneratorRuntime().wrap(function
|
|
438
|
-
while (1) switch (
|
|
569
|
+
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
570
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
439
571
|
case 0:
|
|
440
572
|
if (!this.syncing) {
|
|
441
|
-
|
|
573
|
+
_context4.next = 3;
|
|
442
574
|
break;
|
|
443
575
|
}
|
|
444
576
|
console.log('[SchemeSyncManager] 正在同步中,跳过重复请求');
|
|
445
|
-
return
|
|
577
|
+
return _context4.abrupt("return");
|
|
446
578
|
case 3:
|
|
447
579
|
if (this.hasDirtyData()) {
|
|
448
|
-
|
|
580
|
+
_context4.next = 6;
|
|
449
581
|
break;
|
|
450
582
|
}
|
|
451
583
|
console.log('[SchemeSyncManager] 没有需要同步的数据');
|
|
452
|
-
return
|
|
584
|
+
return _context4.abrupt("return");
|
|
453
585
|
case 6:
|
|
454
586
|
this.syncing = true;
|
|
455
587
|
(_this$events$onSyncSt = (_this$events = this.events).onSyncStart) === null || _this$events$onSyncSt === void 0 || _this$events$onSyncSt.call(_this$events);
|
|
456
|
-
|
|
588
|
+
_context4.prev = 8;
|
|
457
589
|
// 构建同步请求数据
|
|
458
590
|
requestData = {
|
|
459
591
|
clientSyncTime: this.lastSyncTime
|
|
@@ -504,34 +636,34 @@ var SchemeSyncManager = exports.SchemeSyncManager = /*#__PURE__*/function () {
|
|
|
504
636
|
}
|
|
505
637
|
|
|
506
638
|
// 发送同步请求
|
|
507
|
-
|
|
639
|
+
_context4.next = 19;
|
|
508
640
|
return this.fetchWithRetry(this.getSyncApiUrl(), {
|
|
509
641
|
method: 'POST',
|
|
510
642
|
headers: this.getHeaders(),
|
|
511
643
|
body: JSON.stringify(requestData)
|
|
512
644
|
});
|
|
513
645
|
case 19:
|
|
514
|
-
response =
|
|
515
|
-
|
|
646
|
+
response = _context4.sent;
|
|
647
|
+
_context4.next = 22;
|
|
516
648
|
return response.json();
|
|
517
649
|
case 22:
|
|
518
|
-
responseData =
|
|
650
|
+
responseData = _context4.sent;
|
|
519
651
|
if (!(responseData.success !== undefined)) {
|
|
520
|
-
|
|
652
|
+
_context4.next = 29;
|
|
521
653
|
break;
|
|
522
654
|
}
|
|
523
655
|
if (responseData.success) {
|
|
524
|
-
|
|
656
|
+
_context4.next = 26;
|
|
525
657
|
break;
|
|
526
658
|
}
|
|
527
659
|
throw new Error(responseData.error || '同步失败');
|
|
528
660
|
case 26:
|
|
529
661
|
syncResult = responseData;
|
|
530
|
-
|
|
662
|
+
_context4.next = 34;
|
|
531
663
|
break;
|
|
532
664
|
case 29:
|
|
533
665
|
if (!(responseData.syncTime !== undefined)) {
|
|
534
|
-
|
|
666
|
+
_context4.next = 33;
|
|
535
667
|
break;
|
|
536
668
|
}
|
|
537
669
|
// 格式2: 直接返回数据格式,构造一个兼容的结果对象
|
|
@@ -540,7 +672,7 @@ var SchemeSyncManager = exports.SchemeSyncManager = /*#__PURE__*/function () {
|
|
|
540
672
|
syncTime: responseData.syncTime,
|
|
541
673
|
conflicts: responseData.conflicts
|
|
542
674
|
};
|
|
543
|
-
|
|
675
|
+
_context4.next = 34;
|
|
544
676
|
break;
|
|
545
677
|
case 33:
|
|
546
678
|
throw new Error('同步失败:服务器返回的数据格式不正确');
|
|
@@ -564,23 +696,23 @@ var SchemeSyncManager = exports.SchemeSyncManager = /*#__PURE__*/function () {
|
|
|
564
696
|
syncTime: new Date(this.lastSyncTime).toISOString(),
|
|
565
697
|
conflicts: ((_syncResult$conflicts = syncResult.conflicts) === null || _syncResult$conflicts === void 0 ? void 0 : _syncResult$conflicts.length) || 0
|
|
566
698
|
});
|
|
567
|
-
|
|
699
|
+
_context4.next = 46;
|
|
568
700
|
break;
|
|
569
701
|
case 41:
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
console.error('[SchemeSyncManager] 同步失败:',
|
|
573
|
-
(_this$events$onSyncEr = (_this$events4 = this.events).onSyncError) === null || _this$events$onSyncEr === void 0 || _this$events$onSyncEr.call(_this$events4,
|
|
574
|
-
throw
|
|
702
|
+
_context4.prev = 41;
|
|
703
|
+
_context4.t0 = _context4["catch"](8);
|
|
704
|
+
console.error('[SchemeSyncManager] 同步失败:', _context4.t0);
|
|
705
|
+
(_this$events$onSyncEr = (_this$events4 = this.events).onSyncError) === null || _this$events$onSyncEr === void 0 || _this$events$onSyncEr.call(_this$events4, _context4.t0);
|
|
706
|
+
throw _context4.t0;
|
|
575
707
|
case 46:
|
|
576
|
-
|
|
708
|
+
_context4.prev = 46;
|
|
577
709
|
this.syncing = false;
|
|
578
|
-
return
|
|
710
|
+
return _context4.finish(46);
|
|
579
711
|
case 49:
|
|
580
712
|
case "end":
|
|
581
|
-
return
|
|
713
|
+
return _context4.stop();
|
|
582
714
|
}
|
|
583
|
-
},
|
|
715
|
+
}, _callee4, this, [[8, 41, 46, 49]]);
|
|
584
716
|
}));
|
|
585
717
|
function syncNow() {
|
|
586
718
|
return _syncNow.apply(this, arguments);
|
|
@@ -691,58 +823,58 @@ var SchemeSyncManager = exports.SchemeSyncManager = /*#__PURE__*/function () {
|
|
|
691
823
|
* 带重试的 fetch 请求
|
|
692
824
|
*/
|
|
693
825
|
function () {
|
|
694
|
-
var _fetchWithRetry = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function
|
|
826
|
+
var _fetchWithRetry = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(url, options) {
|
|
695
827
|
var retries,
|
|
696
828
|
controller,
|
|
697
829
|
timeoutId,
|
|
698
830
|
response,
|
|
699
|
-
|
|
700
|
-
return _regeneratorRuntime().wrap(function
|
|
701
|
-
while (1) switch (
|
|
831
|
+
_args5 = arguments;
|
|
832
|
+
return _regeneratorRuntime().wrap(function _callee5$(_context5) {
|
|
833
|
+
while (1) switch (_context5.prev = _context5.next) {
|
|
702
834
|
case 0:
|
|
703
|
-
retries =
|
|
704
|
-
|
|
835
|
+
retries = _args5.length > 2 && _args5[2] !== undefined ? _args5[2] : this.config.maxRetries;
|
|
836
|
+
_context5.prev = 1;
|
|
705
837
|
controller = new AbortController();
|
|
706
838
|
timeoutId = setTimeout(function () {
|
|
707
839
|
return controller.abort();
|
|
708
840
|
}, this.config.requestTimeout);
|
|
709
|
-
|
|
841
|
+
_context5.next = 6;
|
|
710
842
|
return fetch(url, _objectSpread(_objectSpread({}, options), {}, {
|
|
711
843
|
signal: controller.signal
|
|
712
844
|
}));
|
|
713
845
|
case 6:
|
|
714
|
-
response =
|
|
846
|
+
response = _context5.sent;
|
|
715
847
|
clearTimeout(timeoutId);
|
|
716
848
|
if (response.ok) {
|
|
717
|
-
|
|
849
|
+
_context5.next = 10;
|
|
718
850
|
break;
|
|
719
851
|
}
|
|
720
852
|
throw new Error("HTTP ".concat(response.status, ": ").concat(response.statusText));
|
|
721
853
|
case 10:
|
|
722
|
-
return
|
|
854
|
+
return _context5.abrupt("return", response);
|
|
723
855
|
case 13:
|
|
724
|
-
|
|
725
|
-
|
|
856
|
+
_context5.prev = 13;
|
|
857
|
+
_context5.t0 = _context5["catch"](1);
|
|
726
858
|
if (!(retries > 0)) {
|
|
727
|
-
|
|
859
|
+
_context5.next = 20;
|
|
728
860
|
break;
|
|
729
861
|
}
|
|
730
|
-
console.warn("[SchemeSyncManager] \u8BF7\u6C42\u5931\u8D25\uFF0C\u91CD\u8BD5\u4E2D... (\u5269\u4F59 ".concat(retries, " \u6B21)"),
|
|
731
|
-
|
|
862
|
+
console.warn("[SchemeSyncManager] \u8BF7\u6C42\u5931\u8D25\uFF0C\u91CD\u8BD5\u4E2D... (\u5269\u4F59 ".concat(retries, " \u6B21)"), _context5.t0);
|
|
863
|
+
_context5.next = 19;
|
|
732
864
|
return new Promise(function (resolve) {
|
|
733
865
|
return setTimeout(resolve, 1000);
|
|
734
866
|
});
|
|
735
867
|
case 19:
|
|
736
|
-
return
|
|
868
|
+
return _context5.abrupt("return", this.fetchWithRetry(url, options, retries - 1));
|
|
737
869
|
case 20:
|
|
738
|
-
throw
|
|
870
|
+
throw _context5.t0;
|
|
739
871
|
case 21:
|
|
740
872
|
case "end":
|
|
741
|
-
return
|
|
873
|
+
return _context5.stop();
|
|
742
874
|
}
|
|
743
|
-
},
|
|
875
|
+
}, _callee5, this, [[1, 13]]);
|
|
744
876
|
}));
|
|
745
|
-
function fetchWithRetry(
|
|
877
|
+
function fetchWithRetry(_x2, _x3) {
|
|
746
878
|
return _fetchWithRetry.apply(this, arguments);
|
|
747
879
|
}
|
|
748
880
|
return fetchWithRetry;
|
|
@@ -61,8 +61,9 @@ export declare function hasUnsyncedData(): boolean;
|
|
|
61
61
|
/**
|
|
62
62
|
* 设置认证 Token
|
|
63
63
|
* @param token 认证令牌 (通常是 Bearer Token)
|
|
64
|
+
* @param autoReload 是否在设置 token 后自动重新加载数据(默认 true)
|
|
64
65
|
*/
|
|
65
|
-
export declare function setToken(token: string | null): void
|
|
66
|
+
export declare function setToken(token: string | null, autoReload?: boolean): Promise<void>;
|
|
66
67
|
/**
|
|
67
68
|
* 获取有未同步数据的表格列表
|
|
68
69
|
*/
|
|
@@ -266,15 +266,34 @@ function hasUnsyncedData() {
|
|
|
266
266
|
/**
|
|
267
267
|
* 设置认证 Token
|
|
268
268
|
* @param token 认证令牌 (通常是 Bearer Token)
|
|
269
|
+
* @param autoReload 是否在设置 token 后自动重新加载数据(默认 true)
|
|
269
270
|
*/
|
|
270
|
-
function setToken(
|
|
271
|
-
|
|
272
|
-
manager.setToken(token);
|
|
271
|
+
function setToken(_x3) {
|
|
272
|
+
return _setToken.apply(this, arguments);
|
|
273
273
|
}
|
|
274
|
-
|
|
275
274
|
/**
|
|
276
275
|
* 获取有未同步数据的表格列表
|
|
277
276
|
*/
|
|
277
|
+
function _setToken() {
|
|
278
|
+
_setToken = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(token) {
|
|
279
|
+
var autoReload,
|
|
280
|
+
manager,
|
|
281
|
+
_args4 = arguments;
|
|
282
|
+
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
283
|
+
while (1) switch (_context4.prev = _context4.next) {
|
|
284
|
+
case 0:
|
|
285
|
+
autoReload = _args4.length > 1 && _args4[1] !== undefined ? _args4[1] : true;
|
|
286
|
+
manager = getGlobalSyncManager();
|
|
287
|
+
_context4.next = 4;
|
|
288
|
+
return manager.setToken(token, autoReload);
|
|
289
|
+
case 4:
|
|
290
|
+
case "end":
|
|
291
|
+
return _context4.stop();
|
|
292
|
+
}
|
|
293
|
+
}, _callee4);
|
|
294
|
+
}));
|
|
295
|
+
return _setToken.apply(this, arguments);
|
|
296
|
+
}
|
|
278
297
|
function getUnsyncedGrids() {
|
|
279
298
|
var manager = getGlobalSyncManager();
|
|
280
299
|
return manager.getDirtyGridIds();
|
|
@@ -100,6 +100,12 @@ export type DirtyType = 'column' | 'query' | 'current';
|
|
|
100
100
|
export interface SyncConfig {
|
|
101
101
|
/** API 基础路径 */
|
|
102
102
|
apiBaseUrl: string;
|
|
103
|
+
/**
|
|
104
|
+
* 认证令牌(可选)
|
|
105
|
+
* 如果在初始化时提供,将在所有请求中自动添加 Authorization header
|
|
106
|
+
* 也可以稍后通过 setToken() 方法设置
|
|
107
|
+
*/
|
|
108
|
+
token?: string;
|
|
103
109
|
/**
|
|
104
110
|
* 获取方案API路径(可选)
|
|
105
111
|
* 默认值: '/api/v1/ag-grid-plus/schemes'
|
|
@@ -30,11 +30,21 @@ export declare class SchemeSyncManager {
|
|
|
30
30
|
* @private
|
|
31
31
|
*/
|
|
32
32
|
private getSyncApiUrl;
|
|
33
|
+
/**
|
|
34
|
+
* 检查是否有有效的用户数据
|
|
35
|
+
* @private
|
|
36
|
+
*/
|
|
37
|
+
private hasValidData;
|
|
38
|
+
/**
|
|
39
|
+
* 重新加载数据(从服务器获取最新方案数据)
|
|
40
|
+
*/
|
|
41
|
+
reloadData(): Promise<void>;
|
|
33
42
|
/**
|
|
34
43
|
* 设置认证 Token
|
|
35
44
|
* @param token 认证令牌 (通常是 Bearer Token)
|
|
45
|
+
* @param autoReload 是否在设置 token 后自动重新加载数据(默认 true)
|
|
36
46
|
*/
|
|
37
|
-
setToken(token: string | null): void
|
|
47
|
+
setToken(token: string | null, autoReload?: boolean): Promise<void>;
|
|
38
48
|
/**
|
|
39
49
|
* 获取请求头(包含认证信息)
|
|
40
50
|
* @private
|