@nokecy/qc-ui 1.0.96 → 1.0.98

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.
@@ -475,93 +475,49 @@ export function useSchemeManager(config) {
475
475
  };
476
476
  }
477
477
 
478
- /**
479
- * Fallback 模式:根据后端 API 配置自动选择适配器
480
- */
481
- function useFallbackSchemeManager(backendApiConfig, currentUserId) {
482
- // 根据配置选择适配器
483
- var adapter = useRef(function () {
484
- if (backendApiConfig) {
485
- // 如果提供了后端 API 配置,使用后端适配器
486
- var _require = require("../shared/storage/backendApiAdapter"),
487
- BackendApiSchemeAdapter = _require.BackendApiSchemeAdapter;
488
- console.log('[useFallbackSchemeManager] 使用后端 API 适配器');
489
- return new BackendApiSchemeAdapter(_objectSpread(_objectSpread({}, backendApiConfig), {}, {
490
- enableDebugLog: false
491
- }));
492
- } else {
493
- // 否则使用本地存储适配器
494
- var _require2 = require("../shared/storage/localStorageAdapter"),
495
- LocalStorageSchemeAdapter = _require2.LocalStorageSchemeAdapter;
496
- console.log('[useFallbackSchemeManager] 使用本地存储适配器');
497
- return new LocalStorageSchemeAdapter({
498
- storageKey: 'ag-grid-plus-schemes',
499
- enableDebugLog: false
500
- });
501
- }
502
- }).current();
503
-
504
- // 使用选定的适配器进行状态管理
505
- var manager = useSchemeManager({
506
- adapter: adapter,
507
- autoLoad: true,
508
- showErrorMessage: true,
509
- currentUserId: currentUserId
510
- });
511
-
512
- // 返回与 Context 相同的接口
513
- return _objectSpread({
514
- // 保留必需的默认值
515
- extensibleColumns: [],
516
- columnState: undefined,
517
- onSaveColumnState: function onSaveColumnState() {},
518
- applyToGlobal: function applyToGlobal() {},
519
- resetCurrent: function resetCurrent() {},
520
- resetAll: function resetAll() {},
521
- queryFormItems: []
522
- }, manager);
523
- }
524
-
525
478
  /**
526
479
  * 在组件中使用集中式方案管理
527
480
  *
528
- * 支持两种模式(根据 Context 配置自动选择):
529
- * 1. Backend API 模式: Context 提供 backendApiConfig,使用后端适配器
530
- * 2. LocalStorage 模式: 不提供配置,使用本地存储适配器
481
+ * ⚠️ 必须在 Provider 中传入 SchemeManager 状态,否则抛出错误
531
482
  *
532
483
  * @example
533
484
  * ```tsx
534
- * // 模式1:提供后端 API 配置
535
- * <GridPlusContext.Provider value={{
536
- * extensibleColumns: [],
537
- * columnState: undefined,
538
- * onSaveColumnState: () => {},
539
- * applyToGlobal: () => {},
540
- * resetCurrent: () => {},
541
- * resetAll: () => {},
542
- * queryFormItems: [],
543
- * backendApiConfig: {
544
- * apiBaseUrl: 'https://api.example.com',
545
- * getToken: () => localStorage.getItem('token'),
546
- * getUserId: () => localStorage.getItem('userId')
547
- * }
548
- * }}>
549
- * <MyGrid />
550
- * </GridPlusContext.Provider>
485
+ * // 1. 创建适配器和方案管理器
486
+ * function App() {
487
+ * const adapter = useMemo(
488
+ * () => new BackendApiSchemeAdapter({
489
+ * apiBaseUrl: 'https://api.example.com',
490
+ * getToken: () => localStorage.getItem('token'),
491
+ * getUserId: () => localStorage.getItem('userId')
492
+ * }),
493
+ * []
494
+ * );
551
495
  *
552
- * // 模式2:无配置,自动使用 LocalStorage
553
- * <GridPlusContext.Provider value={{
554
- * extensibleColumns: [],
555
- * columnState: undefined,
556
- * onSaveColumnState: () => {},
557
- * applyToGlobal: () => {},
558
- * resetCurrent: () => {},
559
- * resetAll: () => {},
560
- * queryFormItems: []
561
- * }}>
562
- * <MyGrid />
563
- * </GridPlusContext.Provider>
496
+ * const schemeManager = useSchemeManager({
497
+ * adapter,
498
+ * autoLoad: true,
499
+ * showErrorMessage: true,
500
+ * currentUserId: currentUser?.id
501
+ * });
564
502
  *
503
+ * // 2. 传入 Provider
504
+ * return (
505
+ * <GridPlusContext.Provider value={{
506
+ * extensibleColumns: [],
507
+ * columnState: undefined,
508
+ * onSaveColumnState: () => {},
509
+ * applyToGlobal: () => {},
510
+ * resetCurrent: () => {},
511
+ * resetAll: () => {},
512
+ * queryFormItems: [],
513
+ * ...schemeManager // 展开方案管理状态
514
+ * }}>
515
+ * <MyGrid />
516
+ * </GridPlusContext.Provider>
517
+ * );
518
+ * }
519
+ *
520
+ * // 3. 在子组件中使用
565
521
  * function MyGrid() {
566
522
  * const {
567
523
  * columnSchemes,
@@ -581,10 +537,11 @@ function useFallbackSchemeManager(backendApiConfig, currentUserId) {
581
537
  export function useGridSchemes() {
582
538
  var context = useContext(GridPlusContext);
583
539
 
584
- // 根据后端 API 配置自动选择适配器
585
- var adapterType = context !== null && context !== void 0 && context.backendApiConfig ? '后端 API' : 'LocalStorage';
586
- console.log("[useGridSchemes] \u4F7F\u7528 ".concat(adapterType, " \u9002\u914D\u5668"));
587
-
588
- // eslint-disable-next-line react-hooks/rules-of-hooks
589
- return useFallbackSchemeManager(context === null || context === void 0 ? void 0 : context.backendApiConfig, context === null || context === void 0 ? void 0 : context.currentUserId);
540
+ // 检查是否传入了方案管理状态
541
+ var hasSchemeManagement = !!((context === null || context === void 0 ? void 0 : context.columnSchemes) !== undefined || context !== null && context !== void 0 && context.saveColumnScheme || context !== null && context !== void 0 && context.deleteColumnScheme);
542
+ if (!hasSchemeManagement) {
543
+ throw new Error('[useGridSchemes] 必须在 GridPlusContext.Provider 中传入 SchemeManager 状态。\n' + '请使用 useSchemeManager hook 创建方案管理器,然后通过 Provider 传递:\n' + ' const schemeManager = useSchemeManager({ adapter, ... });\n' + ' <GridPlusContext.Provider value={{ ...otherValues, ...schemeManager }}>');
544
+ }
545
+ console.log('[useGridSchemes] 使用 Context 中的方案管理状态');
546
+ return context;
590
547
  }
@@ -21,7 +21,19 @@ import { message } from 'antd';
21
21
  */
22
22
 
23
23
  /**
24
- * 后端 API 响应格式
24
+ * 后端 API 响应格式 - 基础响应
25
+ */
26
+
27
+ /**
28
+ * 保存方案结果
29
+ */
30
+
31
+ /**
32
+ * 删除方案结果
33
+ */
34
+
35
+ /**
36
+ * 设置当前方案结果
25
37
  */
26
38
 
27
39
  /**
@@ -182,7 +194,7 @@ export var BackendApiSchemeAdapter = /*#__PURE__*/function () {
182
194
  case 0:
183
195
  _context2.prev = 0;
184
196
  this.log('加载所有方案数据');
185
- url = "".concat(this.config.apiBaseUrl, "/api/extra-object/table-scheme/user-schemes");
197
+ url = "".concat(this.config.apiBaseUrl, "/api/extra-object/table-scheme/schemes");
186
198
  _context2.next = 5;
187
199
  return this.request(url);
188
200
  case 5:
@@ -214,13 +226,13 @@ export var BackendApiSchemeAdapter = /*#__PURE__*/function () {
214
226
  key: "saveColumnScheme",
215
227
  value: function () {
216
228
  var _saveColumnScheme = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3(gridId, scheme) {
217
- var _response$data, url, response;
229
+ var url, response;
218
230
  return _regeneratorRuntime().wrap(function _callee3$(_context3) {
219
231
  while (1) switch (_context3.prev = _context3.next) {
220
232
  case 0:
221
233
  _context3.prev = 0;
222
234
  this.log("\u4FDD\u5B58\u5217\u65B9\u6848: ".concat(gridId, " - ").concat(scheme.name));
223
- url = "".concat(this.config.apiBaseUrl, "/api/extra-object/table-scheme/column-scheme");
235
+ url = "".concat(this.config.apiBaseUrl, "/api/extra-object/table-scheme/save-column-scheme");
224
236
  _context3.next = 5;
225
237
  return this.request(url, {
226
238
  method: 'POST',
@@ -237,8 +249,8 @@ export var BackendApiSchemeAdapter = /*#__PURE__*/function () {
237
249
  }
238
250
  throw new Error(response.message || '保存失败');
239
251
  case 8:
240
- this.log('保存成功', (_response$data = response.data) === null || _response$data === void 0 ? void 0 : _response$data.scheme.id);
241
- return _context3.abrupt("return", response.data.scheme);
252
+ this.log('保存成功', response.scheme);
253
+ return _context3.abrupt("return", response.scheme);
242
254
  case 12:
243
255
  _context3.prev = 12;
244
256
  _context3.t0 = _context3["catch"](0);
@@ -266,10 +278,10 @@ export var BackendApiSchemeAdapter = /*#__PURE__*/function () {
266
278
  case 0:
267
279
  _context4.prev = 0;
268
280
  this.log("\u5220\u9664\u5217\u65B9\u6848: ".concat(gridId, " - ").concat(schemeId));
269
- url = "".concat(this.config.apiBaseUrl, "/api/extra-object/table-scheme/column-scheme/").concat(schemeId, "?gridId=").concat(gridId);
281
+ url = "".concat(this.config.apiBaseUrl, "/api/extra-object/table-scheme/delete-column-scheme?schemeId=").concat(schemeId, "&gridId=").concat(gridId);
270
282
  _context4.next = 5;
271
283
  return this.request(url, {
272
- method: 'DELETE'
284
+ method: 'POST'
273
285
  });
274
286
  case 5:
275
287
  response = _context4.sent;
@@ -303,13 +315,13 @@ export var BackendApiSchemeAdapter = /*#__PURE__*/function () {
303
315
  key: "saveQueryScheme",
304
316
  value: function () {
305
317
  var _saveQueryScheme = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(gridId, scheme) {
306
- var _response$data2, url, response;
318
+ var url, response;
307
319
  return _regeneratorRuntime().wrap(function _callee5$(_context5) {
308
320
  while (1) switch (_context5.prev = _context5.next) {
309
321
  case 0:
310
322
  _context5.prev = 0;
311
323
  this.log("\u4FDD\u5B58\u67E5\u8BE2\u65B9\u6848: ".concat(gridId, " - ").concat(scheme.name));
312
- url = "".concat(this.config.apiBaseUrl, "/api/extra-object/table-scheme/query-scheme");
324
+ url = "".concat(this.config.apiBaseUrl, "/api/extra-object/table-scheme/save-query-scheme");
313
325
  _context5.next = 5;
314
326
  return this.request(url, {
315
327
  method: 'POST',
@@ -326,8 +338,8 @@ export var BackendApiSchemeAdapter = /*#__PURE__*/function () {
326
338
  }
327
339
  throw new Error(response.message || '保存失败');
328
340
  case 8:
329
- this.log('保存成功', (_response$data2 = response.data) === null || _response$data2 === void 0 ? void 0 : _response$data2.scheme.id);
330
- return _context5.abrupt("return", response.data.scheme);
341
+ this.log('保存成功', response.scheme);
342
+ return _context5.abrupt("return", response.scheme);
331
343
  case 12:
332
344
  _context5.prev = 12;
333
345
  _context5.t0 = _context5["catch"](0);
@@ -355,10 +367,10 @@ export var BackendApiSchemeAdapter = /*#__PURE__*/function () {
355
367
  case 0:
356
368
  _context6.prev = 0;
357
369
  this.log("\u5220\u9664\u67E5\u8BE2\u65B9\u6848: ".concat(gridId, " - ").concat(schemeId));
358
- url = "".concat(this.config.apiBaseUrl, "/api/extra-object/table-scheme/query-scheme/").concat(schemeId, "?gridId=").concat(gridId);
370
+ url = "".concat(this.config.apiBaseUrl, "/api/extra-object/table-scheme/delete-query-scheme?schemeId=").concat(schemeId, "&gridId=").concat(gridId);
359
371
  _context6.next = 5;
360
372
  return this.request(url, {
361
- method: 'DELETE'
373
+ method: 'POST'
362
374
  });
363
375
  case 5:
364
376
  response = _context6.sent;
@@ -401,10 +413,10 @@ export var BackendApiSchemeAdapter = /*#__PURE__*/function () {
401
413
  columnSchemeId: columnSchemeId,
402
414
  querySchemeId: querySchemeId
403
415
  });
404
- url = "".concat(this.config.apiBaseUrl, "/api/extra-object/table-scheme/current-scheme");
416
+ url = "".concat(this.config.apiBaseUrl, "/api/extra-object/table-scheme/set-current-scheme");
405
417
  _context7.next = 5;
406
418
  return this.request(url, {
407
- method: 'PUT',
419
+ method: 'POST',
408
420
  body: JSON.stringify({
409
421
  gridId: gridId,
410
422
  columnSchemeId: columnSchemeId,