@nokecy/qc-ui 1.0.77 → 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.
@@ -9,4 +9,4 @@ export { dateValueFormatter, dateTimeValueFormatter, convertFilterModel, convert
9
9
  // 导出列配置方案管理功能
10
10
  export { useColumnSchemes, LocalStorageAdapter, defaultStorageAdapter, validateScheme, validateSchemeName, validateSchemeDescription, checkDuplicateName, generateUniqueName, STORAGE_PREFIX, DEFAULT_SCHEME_NAME, MAX_SCHEMES_PER_GRID, MAX_SCHEME_NAME_LENGTH, SchemeSelector, SchemeManager } from "./schemes";
11
11
  // 导出全局方案同步管理功能
12
- export { initializeGlobalSchemeSync, getGlobalSyncManager, getGlobalAdapterFactory, isGlobalSyncInitialized, destroyGlobalSchemeSync, syncAllSchemes, getGlobalSyncStatus, hasUnsyncedData, getUnsyncedGrids, useGlobalColumnAdapter, useGlobalQueryAdapter, useGlobalColumnSchemeManager, useGlobalQuerySchemeManager } from "./storage";
12
+ export { initializeGlobalSchemeSync, getGlobalSyncManager, getGlobalAdapterFactory, isGlobalSyncInitialized, destroyGlobalSchemeSync, syncAllSchemes, getGlobalSyncStatus, hasUnsyncedData, getUnsyncedGrids, setToken, useGlobalColumnAdapter, useGlobalQueryAdapter, useGlobalColumnSchemeManager, useGlobalQuerySchemeManager } from "./storage";
@@ -18,6 +18,7 @@ export declare class SchemeSyncManager {
18
18
  private dirtyGrids;
19
19
  private autoSaveTimer?;
20
20
  private backgroundSyncTimer?;
21
+ private authToken;
21
22
  constructor(config: SyncConfig, events?: SyncManagerEvents);
22
23
  /**
23
24
  * 获取方案的完整 API URL (GET请求)
@@ -29,6 +30,26 @@ export declare class SchemeSyncManager {
29
30
  * @private
30
31
  */
31
32
  private getSyncApiUrl;
33
+ /**
34
+ * 检查是否有有效的用户数据
35
+ * @private
36
+ */
37
+ private hasValidData;
38
+ /**
39
+ * 重新加载数据(从服务器获取最新方案数据)
40
+ */
41
+ reloadData(): Promise<void>;
42
+ /**
43
+ * 设置认证 Token
44
+ * @param token 认证令牌 (通常是 Bearer Token)
45
+ * @param autoReload 是否在设置 token 后自动重新加载数据(默认 true)
46
+ */
47
+ setToken(token: string | null, autoReload?: boolean): Promise<void>;
48
+ /**
49
+ * 获取请求头(包含认证信息)
50
+ * @private
51
+ */
52
+ private getHeaders;
32
53
  /**
33
54
  * 初始化:从服务器加载所有数据
34
55
  */
@@ -58,6 +58,8 @@ export var SchemeSyncManager = /*#__PURE__*/function () {
58
58
  // 定时器
59
59
  _defineProperty(this, "autoSaveTimer", void 0);
60
60
  _defineProperty(this, "backgroundSyncTimer", void 0);
61
+ // 认证 Token
62
+ _defineProperty(this, "authToken", null);
61
63
  /**
62
64
  * 页面卸载前同步
63
65
  */
@@ -105,6 +107,12 @@ export var SchemeSyncManager = /*#__PURE__*/function () {
105
107
  this.config = _objectSpread(_objectSpread({}, DEFAULT_CONFIG), config);
106
108
  this.events = events;
107
109
 
110
+ // 如果配置中提供了 token,立即设置
111
+ if (config.token) {
112
+ this.authToken = config.token;
113
+ console.log('[SchemeSyncManager] 从配置中设置了初始 Token');
114
+ }
115
+
108
116
  // 初始化空数据
109
117
  this.allData = {
110
118
  columnSchemes: {},
@@ -141,58 +149,209 @@ export var SchemeSyncManager = /*#__PURE__*/function () {
141
149
  }
142
150
 
143
151
  /**
144
- * 初始化:从服务器加载所有数据
152
+ * 检查是否有有效的用户数据
153
+ * @private
145
154
  */
146
155
  }, {
147
- key: "initialize",
156
+ key: "hasValidData",
157
+ value: function hasValidData() {
158
+ var hasColumnSchemes = Object.keys(this.allData.columnSchemes).length > 0;
159
+ var hasQuerySchemes = Object.keys(this.allData.querySchemes).length > 0;
160
+ var hasCurrentSchemes = Object.keys(this.allData.currentSchemes).length > 0;
161
+ return hasColumnSchemes || hasQuerySchemes || hasCurrentSchemes;
162
+ }
163
+
164
+ /**
165
+ * 重新加载数据(从服务器获取最新方案数据)
166
+ */
167
+ }, {
168
+ key: "reloadData",
148
169
  value: (function () {
149
- var _initialize = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
170
+ var _reloadData = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
150
171
  var response, responseData, allSchemesData;
151
172
  return _regeneratorRuntime().wrap(function _callee$(_context) {
152
173
  while (1) switch (_context.prev = _context.next) {
174
+ case 0:
175
+ console.log('[SchemeSyncManager] 重新加载数据...');
176
+ _context.prev = 1;
177
+ _context.next = 4;
178
+ return this.fetchWithRetry(this.getGetApiUrl(), {
179
+ method: 'GET',
180
+ headers: this.getHeaders()
181
+ });
182
+ case 4:
183
+ response = _context.sent;
184
+ _context.next = 7;
185
+ return response.json();
186
+ case 7:
187
+ responseData = _context.sent;
188
+ if (!(responseData.success !== undefined)) {
189
+ _context.next = 14;
190
+ break;
191
+ }
192
+ if (responseData.success) {
193
+ _context.next = 11;
194
+ break;
195
+ }
196
+ throw new Error('重新加载失败:服务器返回错误');
197
+ case 11:
198
+ allSchemesData = responseData.data;
199
+ _context.next = 19;
200
+ break;
201
+ case 14:
202
+ if (!(responseData.columnSchemes !== undefined)) {
203
+ _context.next = 18;
204
+ break;
205
+ }
206
+ allSchemesData = responseData;
207
+ _context.next = 19;
208
+ break;
209
+ case 18:
210
+ throw new Error('重新加载失败:服务器返回的数据格式不正确');
211
+ case 19:
212
+ // 反序列化并更新数据
213
+ this.allData = this.deserializeSchemesData(allSchemesData);
214
+ this.lastSyncTime = allSchemesData.syncTime || Date.now();
215
+ console.log('[SchemeSyncManager] 数据重新加载成功:', {
216
+ columnSchemes: Object.keys(this.allData.columnSchemes).length,
217
+ querySchemes: Object.keys(this.allData.querySchemes).length,
218
+ syncTime: new Date(this.lastSyncTime).toISOString()
219
+ });
220
+ _context.next = 28;
221
+ break;
222
+ case 24:
223
+ _context.prev = 24;
224
+ _context.t0 = _context["catch"](1);
225
+ console.error('[SchemeSyncManager] 重新加载数据失败:', _context.t0);
226
+ throw _context.t0;
227
+ case 28:
228
+ case "end":
229
+ return _context.stop();
230
+ }
231
+ }, _callee, this, [[1, 24]]);
232
+ }));
233
+ function reloadData() {
234
+ return _reloadData.apply(this, arguments);
235
+ }
236
+ return reloadData;
237
+ }()
238
+ /**
239
+ * 设置认证 Token
240
+ * @param token 认证令牌 (通常是 Bearer Token)
241
+ * @param autoReload 是否在设置 token 后自动重新加载数据(默认 true)
242
+ */
243
+ )
244
+ }, {
245
+ key: "setToken",
246
+ value: (function () {
247
+ var _setToken = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2(token) {
248
+ var autoReload,
249
+ previousToken,
250
+ _args2 = arguments;
251
+ return _regeneratorRuntime().wrap(function _callee2$(_context2) {
252
+ while (1) switch (_context2.prev = _context2.next) {
253
+ case 0:
254
+ autoReload = _args2.length > 1 && _args2[1] !== undefined ? _args2[1] : true;
255
+ previousToken = this.authToken;
256
+ this.authToken = token;
257
+ console.log('[SchemeSyncManager] Token 已更新');
258
+
259
+ // 如果已经初始化,且之前没有 token,现在有了 token,且数据为空,自动重新加载
260
+ if (!(autoReload && this.initialized && !previousToken && token && !this.hasValidData())) {
261
+ _context2.next = 14;
262
+ break;
263
+ }
264
+ console.log('[SchemeSyncManager] 检测到首次设置 Token 且无数据,自动重新加载...');
265
+ _context2.prev = 6;
266
+ _context2.next = 9;
267
+ return this.reloadData();
268
+ case 9:
269
+ _context2.next = 14;
270
+ break;
271
+ case 11:
272
+ _context2.prev = 11;
273
+ _context2.t0 = _context2["catch"](6);
274
+ console.error('[SchemeSyncManager] Token 设置后自动重新加载失败:', _context2.t0);
275
+ // 不抛出错误,允许继续使用
276
+ case 14:
277
+ case "end":
278
+ return _context2.stop();
279
+ }
280
+ }, _callee2, this, [[6, 11]]);
281
+ }));
282
+ function setToken(_x) {
283
+ return _setToken.apply(this, arguments);
284
+ }
285
+ return setToken;
286
+ }()
287
+ /**
288
+ * 获取请求头(包含认证信息)
289
+ * @private
290
+ */
291
+ )
292
+ }, {
293
+ key: "getHeaders",
294
+ value: function getHeaders() {
295
+ var headers = {
296
+ 'Content-Type': 'application/json'
297
+ };
298
+ if (this.authToken) {
299
+ headers['Authorization'] = "Bearer ".concat(this.authToken);
300
+ }
301
+ return headers;
302
+ }
303
+
304
+ /**
305
+ * 初始化:从服务器加载所有数据
306
+ */
307
+ }, {
308
+ key: "initialize",
309
+ value: (function () {
310
+ var _initialize = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
311
+ var response, responseData, allSchemesData;
312
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
313
+ while (1) switch (_context3.prev = _context3.next) {
153
314
  case 0:
154
315
  if (!this.initialized) {
155
- _context.next = 3;
316
+ _context3.next = 3;
156
317
  break;
157
318
  }
158
319
  console.warn('[SchemeSyncManager] 已经初始化,跳过重复初始化');
159
- return _context.abrupt("return");
320
+ return _context3.abrupt("return");
160
321
  case 3:
161
- _context.prev = 3;
162
- _context.next = 6;
322
+ _context3.prev = 3;
323
+ _context3.next = 6;
163
324
  return this.fetchWithRetry(this.getGetApiUrl(), {
164
325
  method: 'GET',
165
- headers: {
166
- 'Content-Type': 'application/json'
167
- }
326
+ headers: this.getHeaders()
168
327
  });
169
328
  case 6:
170
- response = _context.sent;
171
- _context.next = 9;
329
+ response = _context3.sent;
330
+ _context3.next = 9;
172
331
  return response.json();
173
332
  case 9:
174
- responseData = _context.sent;
333
+ responseData = _context3.sent;
175
334
  if (!(responseData.success !== undefined)) {
176
- _context.next = 16;
335
+ _context3.next = 16;
177
336
  break;
178
337
  }
179
338
  if (responseData.success) {
180
- _context.next = 13;
339
+ _context3.next = 13;
181
340
  break;
182
341
  }
183
342
  throw new Error('初始化失败:服务器返回错误');
184
343
  case 13:
185
344
  allSchemesData = responseData.data;
186
- _context.next = 21;
345
+ _context3.next = 21;
187
346
  break;
188
347
  case 16:
189
348
  if (!(responseData.columnSchemes !== undefined)) {
190
- _context.next = 20;
349
+ _context3.next = 20;
191
350
  break;
192
351
  }
193
352
  // 格式2: 直接返回 AllSchemesData
194
353
  allSchemesData = responseData;
195
- _context.next = 21;
354
+ _context3.next = 21;
196
355
  break;
197
356
  case 20:
198
357
  throw new Error('初始化失败:服务器返回的数据格式不正确');
@@ -211,18 +370,18 @@ export var SchemeSyncManager = /*#__PURE__*/function () {
211
370
  querySchemes: Object.keys(this.allData.querySchemes).length,
212
371
  syncTime: new Date(this.lastSyncTime).toISOString()
213
372
  });
214
- _context.next = 32;
373
+ _context3.next = 32;
215
374
  break;
216
375
  case 28:
217
- _context.prev = 28;
218
- _context.t0 = _context["catch"](3);
219
- console.error('[SchemeSyncManager] 初始化失败:', _context.t0);
220
- throw _context.t0;
376
+ _context3.prev = 28;
377
+ _context3.t0 = _context3["catch"](3);
378
+ console.error('[SchemeSyncManager] 初始化失败:', _context3.t0);
379
+ throw _context3.t0;
221
380
  case 32:
222
381
  case "end":
223
- return _context.stop();
382
+ return _context3.stop();
224
383
  }
225
- }, _callee, this, [[3, 28]]);
384
+ }, _callee3, this, [[3, 28]]);
226
385
  }));
227
386
  function initialize() {
228
387
  return _initialize.apply(this, arguments);
@@ -396,31 +555,31 @@ export var SchemeSyncManager = /*#__PURE__*/function () {
396
555
  }, {
397
556
  key: "syncNow",
398
557
  value: (function () {
399
- var _syncNow = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
558
+ var _syncNow = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
400
559
  var _this$events$onSyncSt,
401
560
  _this$events,
402
561
  _this4 = this;
403
562
  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;
404
- return _regeneratorRuntime().wrap(function _callee2$(_context2) {
405
- while (1) switch (_context2.prev = _context2.next) {
563
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
564
+ while (1) switch (_context4.prev = _context4.next) {
406
565
  case 0:
407
566
  if (!this.syncing) {
408
- _context2.next = 3;
567
+ _context4.next = 3;
409
568
  break;
410
569
  }
411
570
  console.log('[SchemeSyncManager] 正在同步中,跳过重复请求');
412
- return _context2.abrupt("return");
571
+ return _context4.abrupt("return");
413
572
  case 3:
414
573
  if (this.hasDirtyData()) {
415
- _context2.next = 6;
574
+ _context4.next = 6;
416
575
  break;
417
576
  }
418
577
  console.log('[SchemeSyncManager] 没有需要同步的数据');
419
- return _context2.abrupt("return");
578
+ return _context4.abrupt("return");
420
579
  case 6:
421
580
  this.syncing = true;
422
581
  (_this$events$onSyncSt = (_this$events = this.events).onSyncStart) === null || _this$events$onSyncSt === void 0 || _this$events$onSyncSt.call(_this$events);
423
- _context2.prev = 8;
582
+ _context4.prev = 8;
424
583
  // 构建同步请求数据
425
584
  requestData = {
426
585
  clientSyncTime: this.lastSyncTime
@@ -471,36 +630,34 @@ export var SchemeSyncManager = /*#__PURE__*/function () {
471
630
  }
472
631
 
473
632
  // 发送同步请求
474
- _context2.next = 19;
633
+ _context4.next = 19;
475
634
  return this.fetchWithRetry(this.getSyncApiUrl(), {
476
635
  method: 'POST',
477
- headers: {
478
- 'Content-Type': 'application/json'
479
- },
636
+ headers: this.getHeaders(),
480
637
  body: JSON.stringify(requestData)
481
638
  });
482
639
  case 19:
483
- response = _context2.sent;
484
- _context2.next = 22;
640
+ response = _context4.sent;
641
+ _context4.next = 22;
485
642
  return response.json();
486
643
  case 22:
487
- responseData = _context2.sent;
644
+ responseData = _context4.sent;
488
645
  if (!(responseData.success !== undefined)) {
489
- _context2.next = 29;
646
+ _context4.next = 29;
490
647
  break;
491
648
  }
492
649
  if (responseData.success) {
493
- _context2.next = 26;
650
+ _context4.next = 26;
494
651
  break;
495
652
  }
496
653
  throw new Error(responseData.error || '同步失败');
497
654
  case 26:
498
655
  syncResult = responseData;
499
- _context2.next = 34;
656
+ _context4.next = 34;
500
657
  break;
501
658
  case 29:
502
659
  if (!(responseData.syncTime !== undefined)) {
503
- _context2.next = 33;
660
+ _context4.next = 33;
504
661
  break;
505
662
  }
506
663
  // 格式2: 直接返回数据格式,构造一个兼容的结果对象
@@ -509,7 +666,7 @@ export var SchemeSyncManager = /*#__PURE__*/function () {
509
666
  syncTime: responseData.syncTime,
510
667
  conflicts: responseData.conflicts
511
668
  };
512
- _context2.next = 34;
669
+ _context4.next = 34;
513
670
  break;
514
671
  case 33:
515
672
  throw new Error('同步失败:服务器返回的数据格式不正确');
@@ -533,23 +690,23 @@ export var SchemeSyncManager = /*#__PURE__*/function () {
533
690
  syncTime: new Date(this.lastSyncTime).toISOString(),
534
691
  conflicts: ((_syncResult$conflicts = syncResult.conflicts) === null || _syncResult$conflicts === void 0 ? void 0 : _syncResult$conflicts.length) || 0
535
692
  });
536
- _context2.next = 46;
693
+ _context4.next = 46;
537
694
  break;
538
695
  case 41:
539
- _context2.prev = 41;
540
- _context2.t0 = _context2["catch"](8);
541
- console.error('[SchemeSyncManager] 同步失败:', _context2.t0);
542
- (_this$events$onSyncEr = (_this$events4 = this.events).onSyncError) === null || _this$events$onSyncEr === void 0 || _this$events$onSyncEr.call(_this$events4, _context2.t0);
543
- throw _context2.t0;
696
+ _context4.prev = 41;
697
+ _context4.t0 = _context4["catch"](8);
698
+ console.error('[SchemeSyncManager] 同步失败:', _context4.t0);
699
+ (_this$events$onSyncEr = (_this$events4 = this.events).onSyncError) === null || _this$events$onSyncEr === void 0 || _this$events$onSyncEr.call(_this$events4, _context4.t0);
700
+ throw _context4.t0;
544
701
  case 46:
545
- _context2.prev = 46;
702
+ _context4.prev = 46;
546
703
  this.syncing = false;
547
- return _context2.finish(46);
704
+ return _context4.finish(46);
548
705
  case 49:
549
706
  case "end":
550
- return _context2.stop();
707
+ return _context4.stop();
551
708
  }
552
- }, _callee2, this, [[8, 41, 46, 49]]);
709
+ }, _callee4, this, [[8, 41, 46, 49]]);
553
710
  }));
554
711
  function syncNow() {
555
712
  return _syncNow.apply(this, arguments);
@@ -660,58 +817,58 @@ export var SchemeSyncManager = /*#__PURE__*/function () {
660
817
  * 带重试的 fetch 请求
661
818
  */
662
819
  function () {
663
- var _fetchWithRetry = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(url, options) {
820
+ var _fetchWithRetry = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(url, options) {
664
821
  var retries,
665
822
  controller,
666
823
  timeoutId,
667
824
  response,
668
- _args3 = arguments;
669
- return _regeneratorRuntime().wrap(function _callee3$(_context3) {
670
- while (1) switch (_context3.prev = _context3.next) {
825
+ _args5 = arguments;
826
+ return _regeneratorRuntime().wrap(function _callee5$(_context5) {
827
+ while (1) switch (_context5.prev = _context5.next) {
671
828
  case 0:
672
- retries = _args3.length > 2 && _args3[2] !== undefined ? _args3[2] : this.config.maxRetries;
673
- _context3.prev = 1;
829
+ retries = _args5.length > 2 && _args5[2] !== undefined ? _args5[2] : this.config.maxRetries;
830
+ _context5.prev = 1;
674
831
  controller = new AbortController();
675
832
  timeoutId = setTimeout(function () {
676
833
  return controller.abort();
677
834
  }, this.config.requestTimeout);
678
- _context3.next = 6;
835
+ _context5.next = 6;
679
836
  return fetch(url, _objectSpread(_objectSpread({}, options), {}, {
680
837
  signal: controller.signal
681
838
  }));
682
839
  case 6:
683
- response = _context3.sent;
840
+ response = _context5.sent;
684
841
  clearTimeout(timeoutId);
685
842
  if (response.ok) {
686
- _context3.next = 10;
843
+ _context5.next = 10;
687
844
  break;
688
845
  }
689
846
  throw new Error("HTTP ".concat(response.status, ": ").concat(response.statusText));
690
847
  case 10:
691
- return _context3.abrupt("return", response);
848
+ return _context5.abrupt("return", response);
692
849
  case 13:
693
- _context3.prev = 13;
694
- _context3.t0 = _context3["catch"](1);
850
+ _context5.prev = 13;
851
+ _context5.t0 = _context5["catch"](1);
695
852
  if (!(retries > 0)) {
696
- _context3.next = 20;
853
+ _context5.next = 20;
697
854
  break;
698
855
  }
699
- console.warn("[SchemeSyncManager] \u8BF7\u6C42\u5931\u8D25\uFF0C\u91CD\u8BD5\u4E2D... (\u5269\u4F59 ".concat(retries, " \u6B21)"), _context3.t0);
700
- _context3.next = 19;
856
+ console.warn("[SchemeSyncManager] \u8BF7\u6C42\u5931\u8D25\uFF0C\u91CD\u8BD5\u4E2D... (\u5269\u4F59 ".concat(retries, " \u6B21)"), _context5.t0);
857
+ _context5.next = 19;
701
858
  return new Promise(function (resolve) {
702
859
  return setTimeout(resolve, 1000);
703
860
  });
704
861
  case 19:
705
- return _context3.abrupt("return", this.fetchWithRetry(url, options, retries - 1));
862
+ return _context5.abrupt("return", this.fetchWithRetry(url, options, retries - 1));
706
863
  case 20:
707
- throw _context3.t0;
864
+ throw _context5.t0;
708
865
  case 21:
709
866
  case "end":
710
- return _context3.stop();
867
+ return _context5.stop();
711
868
  }
712
- }, _callee3, this, [[1, 13]]);
869
+ }, _callee5, this, [[1, 13]]);
713
870
  }));
714
- function fetchWithRetry(_x, _x2) {
871
+ function fetchWithRetry(_x2, _x3) {
715
872
  return _fetchWithRetry.apply(this, arguments);
716
873
  }
717
874
  return fetchWithRetry;
@@ -58,6 +58,12 @@ export declare function getGlobalSyncStatus(): {
58
58
  * 检查是否有未同步的数据
59
59
  */
60
60
  export declare function hasUnsyncedData(): boolean;
61
+ /**
62
+ * 设置认证 Token
63
+ * @param token 认证令牌 (通常是 Bearer Token)
64
+ * @param autoReload 是否在设置 token 后自动重新加载数据(默认 true)
65
+ */
66
+ export declare function setToken(token: string | null, autoReload?: boolean): Promise<void>;
61
67
  /**
62
68
  * 获取有未同步数据的表格列表
63
69
  */
@@ -248,9 +248,38 @@ export function hasUnsyncedData() {
248
248
  return manager.hasDirtyData();
249
249
  }
250
250
 
251
+ /**
252
+ * 设置认证 Token
253
+ * @param token 认证令牌 (通常是 Bearer Token)
254
+ * @param autoReload 是否在设置 token 后自动重新加载数据(默认 true)
255
+ */
256
+ export function setToken(_x3) {
257
+ return _setToken.apply(this, arguments);
258
+ }
259
+
251
260
  /**
252
261
  * 获取有未同步数据的表格列表
253
262
  */
263
+ function _setToken() {
264
+ _setToken = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(token) {
265
+ var autoReload,
266
+ manager,
267
+ _args4 = arguments;
268
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
269
+ while (1) switch (_context4.prev = _context4.next) {
270
+ case 0:
271
+ autoReload = _args4.length > 1 && _args4[1] !== undefined ? _args4[1] : true;
272
+ manager = getGlobalSyncManager();
273
+ _context4.next = 4;
274
+ return manager.setToken(token, autoReload);
275
+ case 4:
276
+ case "end":
277
+ return _context4.stop();
278
+ }
279
+ }, _callee4);
280
+ }));
281
+ return _setToken.apply(this, arguments);
282
+ }
254
283
  export function getUnsyncedGrids() {
255
284
  var manager = getGlobalSyncManager();
256
285
  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'
@@ -1,4 +1,4 @@
1
- import { AgGridColumn, AgGridPlus, flattenTreeDeep, GridPlusContext, useGridPlusColumnState, useColumnSchemes, SchemeSelector, SchemeManager, LocalStorageAdapter, defaultStorageAdapter, validateScheme, validateSchemeName, validateSchemeDescription, checkDuplicateName, generateUniqueName, STORAGE_PREFIX, DEFAULT_SCHEME_NAME, MAX_SCHEMES_PER_GRID, MAX_SCHEME_NAME_LENGTH, initializeGlobalSchemeSync, getGlobalSyncManager, getGlobalAdapterFactory, isGlobalSyncInitialized, destroyGlobalSchemeSync, syncAllSchemes, getGlobalSyncStatus, hasUnsyncedData, getUnsyncedGrids, useGlobalColumnAdapter, useGlobalQueryAdapter, useGlobalColumnSchemeManager, useGlobalQuerySchemeManager } from "./ag-grid-plus";
1
+ import { AgGridColumn, AgGridPlus, flattenTreeDeep, GridPlusContext, useGridPlusColumnState, useColumnSchemes, SchemeSelector, SchemeManager, LocalStorageAdapter, defaultStorageAdapter, validateScheme, validateSchemeName, validateSchemeDescription, checkDuplicateName, generateUniqueName, STORAGE_PREFIX, DEFAULT_SCHEME_NAME, MAX_SCHEMES_PER_GRID, MAX_SCHEME_NAME_LENGTH, initializeGlobalSchemeSync, getGlobalSyncManager, getGlobalAdapterFactory, isGlobalSyncInitialized, destroyGlobalSchemeSync, syncAllSchemes, getGlobalSyncStatus, hasUnsyncedData, getUnsyncedGrids, setToken, useGlobalColumnAdapter, useGlobalQueryAdapter, useGlobalColumnSchemeManager, useGlobalQuerySchemeManager } from "./ag-grid-plus";
2
2
  import ArrayTable from "./array-table";
3
3
  import ArrayTableIndex from "./array-table-index";
4
4
  import { ColumnPresets } from "./array-table/columnHelper";
@@ -21,7 +21,7 @@ import { StandardFormDialog, withStandardForm, FieldCreators, createSelectField,
21
21
  import DeleteConfirm from "./deleteConfirm";
22
22
  import { RuleBuilder } from "./RuleBuilder";
23
23
  import { RegexEditor, useRegexValidation, useTemplateManager, TemplateSelector, TemplateCategory, RegexTester, FlagsSelector, MatchItem, RegexRailroadDiagram } from "./components/RegexEditor";
24
- export { AgGridColumn, AgGridPlus, ArrayTable, ArrayTableIndex, ColumnPresets, Card, Dashboard, DialogSelect, DraggableModal, Editable, ExtensibleGrid, flattenTreeDeep, FormDesigner, FormProContext, FormProLayout, GridPlusContext, useGridPlusColumnState, ImportModal, QueryBuilder, ToolBar, FullScreenAlert, ConfirmPro, GeneratedListPage, StandardFormDialog, withStandardForm, FieldCreators, createSelectField, createCascaderField, DeleteConfirm, RuleBuilder, RegexEditor, useRegexValidation, useTemplateManager, TemplateSelector, TemplateCategory, RegexTester, FlagsSelector, MatchItem, RegexRailroadDiagram, useColumnSchemes, SchemeSelector, SchemeManager, LocalStorageAdapter, defaultStorageAdapter, validateScheme, validateSchemeName, validateSchemeDescription, checkDuplicateName, generateUniqueName, STORAGE_PREFIX, DEFAULT_SCHEME_NAME, MAX_SCHEMES_PER_GRID, MAX_SCHEME_NAME_LENGTH, initializeGlobalSchemeSync, getGlobalSyncManager, getGlobalAdapterFactory, isGlobalSyncInitialized, destroyGlobalSchemeSync, syncAllSchemes, getGlobalSyncStatus, hasUnsyncedData, getUnsyncedGrids, useGlobalColumnAdapter, useGlobalQueryAdapter, useGlobalColumnSchemeManager, useGlobalQuerySchemeManager, };
24
+ export { AgGridColumn, AgGridPlus, ArrayTable, ArrayTableIndex, ColumnPresets, Card, Dashboard, DialogSelect, DraggableModal, Editable, ExtensibleGrid, flattenTreeDeep, FormDesigner, FormProContext, FormProLayout, GridPlusContext, useGridPlusColumnState, ImportModal, QueryBuilder, ToolBar, FullScreenAlert, ConfirmPro, GeneratedListPage, StandardFormDialog, withStandardForm, FieldCreators, createSelectField, createCascaderField, DeleteConfirm, RuleBuilder, RegexEditor, useRegexValidation, useTemplateManager, TemplateSelector, TemplateCategory, RegexTester, FlagsSelector, MatchItem, RegexRailroadDiagram, useColumnSchemes, SchemeSelector, SchemeManager, LocalStorageAdapter, defaultStorageAdapter, validateScheme, validateSchemeName, validateSchemeDescription, checkDuplicateName, generateUniqueName, STORAGE_PREFIX, DEFAULT_SCHEME_NAME, MAX_SCHEMES_PER_GRID, MAX_SCHEME_NAME_LENGTH, initializeGlobalSchemeSync, getGlobalSyncManager, getGlobalAdapterFactory, isGlobalSyncInitialized, destroyGlobalSchemeSync, syncAllSchemes, getGlobalSyncStatus, hasUnsyncedData, getUnsyncedGrids, setToken, useGlobalColumnAdapter, useGlobalQueryAdapter, useGlobalColumnSchemeManager, useGlobalQuerySchemeManager, };
25
25
  export type * from "./generatedListPage";
26
26
  export type * from "./standardFormDialog";
27
27
  export type * from "./deleteConfirm";
package/dist/esm/index.js CHANGED
@@ -2,7 +2,7 @@ import { AgGridColumn, AgGridPlus, flattenTreeDeep, GridPlusContext, useGridPlus
2
2
  // 列配置方案管理
3
3
  useColumnSchemes, SchemeSelector, SchemeManager, LocalStorageAdapter, defaultStorageAdapter, validateScheme, validateSchemeName, validateSchemeDescription, checkDuplicateName, generateUniqueName, STORAGE_PREFIX, DEFAULT_SCHEME_NAME, MAX_SCHEMES_PER_GRID, MAX_SCHEME_NAME_LENGTH,
4
4
  // 全局方案同步管理
5
- initializeGlobalSchemeSync, getGlobalSyncManager, getGlobalAdapterFactory, isGlobalSyncInitialized, destroyGlobalSchemeSync, syncAllSchemes, getGlobalSyncStatus, hasUnsyncedData, getUnsyncedGrids, useGlobalColumnAdapter, useGlobalQueryAdapter, useGlobalColumnSchemeManager, useGlobalQuerySchemeManager } from "./ag-grid-plus";
5
+ initializeGlobalSchemeSync, getGlobalSyncManager, getGlobalAdapterFactory, isGlobalSyncInitialized, destroyGlobalSchemeSync, syncAllSchemes, getGlobalSyncStatus, hasUnsyncedData, getUnsyncedGrids, setToken, useGlobalColumnAdapter, useGlobalQueryAdapter, useGlobalColumnSchemeManager, useGlobalQuerySchemeManager } from "./ag-grid-plus";
6
6
  import ArrayTable from "./array-table";
7
7
  import ArrayTableIndex from "./array-table-index";
8
8
  import { ColumnPresets } from "./array-table/columnHelper";
@@ -29,7 +29,7 @@ export { AgGridColumn, AgGridPlus, ArrayTable, ArrayTableIndex, ColumnPresets, C
29
29
  // 列配置方案管理
30
30
  useColumnSchemes, SchemeSelector, SchemeManager, LocalStorageAdapter, defaultStorageAdapter, validateScheme, validateSchemeName, validateSchemeDescription, checkDuplicateName, generateUniqueName, STORAGE_PREFIX, DEFAULT_SCHEME_NAME, MAX_SCHEMES_PER_GRID, MAX_SCHEME_NAME_LENGTH,
31
31
  // 全局方案同步管理
32
- initializeGlobalSchemeSync, getGlobalSyncManager, getGlobalAdapterFactory, isGlobalSyncInitialized, destroyGlobalSchemeSync, syncAllSchemes, getGlobalSyncStatus, hasUnsyncedData, getUnsyncedGrids, useGlobalColumnAdapter, useGlobalQueryAdapter, useGlobalColumnSchemeManager, useGlobalQuerySchemeManager };
32
+ initializeGlobalSchemeSync, getGlobalSyncManager, getGlobalAdapterFactory, isGlobalSyncInitialized, destroyGlobalSchemeSync, syncAllSchemes, getGlobalSyncStatus, hasUnsyncedData, getUnsyncedGrids, setToken, useGlobalColumnAdapter, useGlobalQueryAdapter, useGlobalColumnSchemeManager, useGlobalQuerySchemeManager };
33
33
 
34
34
  // 导出类型定义
35
35