@nokecy/qc-ui 1.0.93 → 1.0.94

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 (75) hide show
  1. package/dist/cjs/ag-grid-plus/ag-gridPlus.js +24 -18
  2. package/dist/cjs/ag-grid-plus/context/gridContext.d.ts +6 -0
  3. package/dist/cjs/ag-grid-plus/index.d.ts +2 -4
  4. package/dist/cjs/ag-grid-plus/index.js +18 -79
  5. package/dist/cjs/ag-grid-plus/querySchemes/components/QuerySchemesManager.js +134 -117
  6. package/dist/cjs/ag-grid-plus/querySchemes/types.d.ts +2 -0
  7. package/dist/cjs/ag-grid-plus/schemes/index.d.ts +7 -0
  8. package/dist/cjs/ag-grid-plus/schemes/index.js +40 -0
  9. package/dist/cjs/ag-grid-plus/schemes/storage/configMerger.d.ts +10 -0
  10. package/dist/cjs/ag-grid-plus/schemes/storage/configMerger.js +34 -0
  11. package/dist/cjs/ag-grid-plus/schemes/storage/localStorageAdapter.d.ts +17 -2
  12. package/dist/cjs/ag-grid-plus/schemes/storage/localStorageAdapter.js +27 -7
  13. package/dist/cjs/ag-grid-plus/schemes/storage/priorityStorageAdapter.d.ts +122 -0
  14. package/dist/cjs/ag-grid-plus/schemes/storage/priorityStorageAdapter.js +476 -0
  15. package/dist/cjs/ag-grid-plus/schemes/storage/remoteStorageAdapter.d.ts +139 -0
  16. package/dist/cjs/ag-grid-plus/schemes/storage/remoteStorageAdapter.js +746 -0
  17. package/dist/cjs/ag-grid-plus/schemes/storage/useRemoteStorage.d.ts +29 -0
  18. package/dist/cjs/ag-grid-plus/schemes/storage/useRemoteStorage.js +45 -0
  19. package/dist/cjs/ag-grid-plus/setting/ColumnSetting.js +154 -270
  20. package/dist/cjs/ag-grid-plus/storage/index.d.ts +10 -5
  21. package/dist/cjs/ag-grid-plus/storage/index.js +0 -44
  22. package/dist/cjs/array-table/index.js +5 -3
  23. package/dist/cjs/draggableModal/index.d.ts +1 -1
  24. package/dist/cjs/draggableModal/index.js +23 -93
  25. package/dist/cjs/draggableModal/style.less +0 -73
  26. package/dist/cjs/index.d.ts +2 -3
  27. package/dist/cjs/index.js +8 -80
  28. package/dist/esm/ag-grid-plus/ag-gridPlus.js +24 -18
  29. package/dist/esm/ag-grid-plus/context/gridContext.d.ts +6 -0
  30. package/dist/esm/ag-grid-plus/errors/ErrorBoundary.d.ts +1 -1
  31. package/dist/esm/ag-grid-plus/index.d.ts +2 -4
  32. package/dist/esm/ag-grid-plus/index.js +5 -3
  33. package/dist/esm/ag-grid-plus/querySchemes/components/QuerySchemesManager.js +135 -118
  34. package/dist/esm/ag-grid-plus/querySchemes/types.d.ts +2 -0
  35. package/dist/esm/ag-grid-plus/schemes/index.d.ts +7 -0
  36. package/dist/esm/ag-grid-plus/schemes/index.js +5 -0
  37. package/dist/esm/ag-grid-plus/schemes/storage/configMerger.d.ts +10 -0
  38. package/dist/esm/ag-grid-plus/schemes/storage/configMerger.js +28 -0
  39. package/dist/esm/ag-grid-plus/schemes/storage/localStorageAdapter.d.ts +17 -2
  40. package/dist/esm/ag-grid-plus/schemes/storage/localStorageAdapter.js +29 -7
  41. package/dist/esm/ag-grid-plus/schemes/storage/priorityStorageAdapter.d.ts +122 -0
  42. package/dist/esm/ag-grid-plus/schemes/storage/priorityStorageAdapter.js +471 -0
  43. package/dist/esm/ag-grid-plus/schemes/storage/remoteStorageAdapter.d.ts +139 -0
  44. package/dist/esm/ag-grid-plus/schemes/storage/remoteStorageAdapter.js +746 -0
  45. package/dist/esm/ag-grid-plus/schemes/storage/useRemoteStorage.d.ts +29 -0
  46. package/dist/esm/ag-grid-plus/schemes/storage/useRemoteStorage.js +40 -0
  47. package/dist/esm/ag-grid-plus/setting/ColumnSetting.js +156 -272
  48. package/dist/esm/ag-grid-plus/storage/index.d.ts +10 -5
  49. package/dist/esm/ag-grid-plus/storage/index.js +13 -5
  50. package/dist/esm/array-table/index.js +6 -2
  51. package/dist/esm/draggableModal/index.d.ts +1 -1
  52. package/dist/esm/draggableModal/index.js +24 -93
  53. package/dist/esm/draggableModal/style.less +0 -73
  54. package/dist/esm/index.d.ts +2 -3
  55. package/dist/esm/index.js +10 -7
  56. package/dist/esm/standardFormDialog/useStandardFormSchema.d.ts +1 -1
  57. package/dist/umd/qc-ui.min.css +1 -1
  58. package/dist/umd/qc-ui.min.js +1 -1
  59. package/package.json +1 -1
  60. package/dist/cjs/ag-grid-plus/storage/MemoryStorageAdapter.d.ts +0 -76
  61. package/dist/cjs/ag-grid-plus/storage/MemoryStorageAdapter.js +0 -276
  62. package/dist/cjs/ag-grid-plus/storage/SchemeSyncManager.d.ts +0 -141
  63. package/dist/cjs/ag-grid-plus/storage/SchemeSyncManager.js +0 -902
  64. package/dist/cjs/ag-grid-plus/storage/globalSyncManager.d.ts +0 -106
  65. package/dist/cjs/ag-grid-plus/storage/globalSyncManager.js +0 -364
  66. package/dist/cjs/ag-grid-plus/storage/types.d.ts +0 -150
  67. package/dist/cjs/ag-grid-plus/storage/types.js +0 -5
  68. package/dist/esm/ag-grid-plus/storage/MemoryStorageAdapter.d.ts +0 -76
  69. package/dist/esm/ag-grid-plus/storage/MemoryStorageAdapter.js +0 -273
  70. package/dist/esm/ag-grid-plus/storage/SchemeSyncManager.d.ts +0 -141
  71. package/dist/esm/ag-grid-plus/storage/SchemeSyncManager.js +0 -896
  72. package/dist/esm/ag-grid-plus/storage/globalSyncManager.d.ts +0 -106
  73. package/dist/esm/ag-grid-plus/storage/globalSyncManager.js +0 -350
  74. package/dist/esm/ag-grid-plus/storage/types.d.ts +0 -150
  75. package/dist/esm/ag-grid-plus/storage/types.js +0 -1
@@ -36,7 +36,9 @@ var DraggableQueryItem = function DraggableQueryItem(_ref) {
36
36
  var field = _ref.field,
37
37
  label = _ref.label,
38
38
  index = _ref.index,
39
- moveItem = _ref.moveItem;
39
+ hidden = _ref.hidden,
40
+ moveItem = _ref.moveItem,
41
+ onToggleHidden = _ref.onToggleHidden;
40
42
  var ref = _react.default.useRef(null);
41
43
  var _useDrag = (0, _reactDnd.useDrag)({
42
44
  type: DRAG_TYPE,
@@ -80,16 +82,16 @@ var DraggableQueryItem = function DraggableQueryItem(_ref) {
80
82
  ref: ref,
81
83
  className: "query-item-draggable",
82
84
  style: {
83
- opacity: isDragging ? 0.5 : 1,
85
+ opacity: isDragging ? 0.5 : hidden ? 0.6 : 1,
84
86
  padding: '12px 16px',
85
87
  margin: '8px 0',
86
- background: '#fff',
88
+ background: hidden ? '#f5f5f5' : '#fff',
87
89
  border: '1px solid #d9d9d9',
88
90
  borderRadius: '4px',
89
91
  cursor: 'move',
90
92
  display: 'flex',
91
93
  alignItems: 'center',
92
- gap: '8px'
94
+ gap: '12px'
93
95
  }
94
96
  }, /*#__PURE__*/_react.default.createElement(_icons.HolderOutlined, {
95
97
  style: {
@@ -98,9 +100,23 @@ var DraggableQueryItem = function DraggableQueryItem(_ref) {
98
100
  }
99
101
  }), /*#__PURE__*/_react.default.createElement("span", {
100
102
  style: {
101
- flex: 1
103
+ flex: 1,
104
+ textDecoration: hidden ? 'line-through' : 'none',
105
+ color: hidden ? '#999' : 'inherit'
102
106
  }
103
- }, index + 1, ". ", label));
107
+ }, index + 1, ". ", label), /*#__PURE__*/_react.default.createElement(_antd.Tooltip, {
108
+ title: hidden ? '显示此查询项' : '隐藏此查询项'
109
+ }, /*#__PURE__*/_react.default.createElement(_antd.Switch, {
110
+ checked: !hidden,
111
+ onChange: function onChange(checked) {
112
+ return onToggleHidden(field, !checked);
113
+ },
114
+ checkedChildren: "\u663E\u793A",
115
+ unCheckedChildren: "\u9690\u85CF",
116
+ onClick: function onClick(_, e) {
117
+ return e.stopPropagation();
118
+ }
119
+ })));
104
120
  };
105
121
 
106
122
  /**
@@ -136,24 +152,28 @@ var QuerySchemesManager = exports.QuerySchemesManager = function QuerySchemesMan
136
152
  _useState4 = _slicedToArray(_useState3, 2),
137
153
  editingOrder = _useState4[0],
138
154
  setEditingOrder = _useState4[1];
139
- var _useState5 = (0, _react.useState)(''),
155
+ var _useState5 = (0, _react.useState)([]),
140
156
  _useState6 = _slicedToArray(_useState5, 2),
141
- schemeName = _useState6[0],
142
- setSchemeName = _useState6[1];
143
- var _useState7 = (0, _react.useState)(null),
157
+ hiddenFields = _useState6[0],
158
+ setHiddenFields = _useState6[1];
159
+ var _useState7 = (0, _react.useState)(''),
144
160
  _useState8 = _slicedToArray(_useState7, 2),
145
- editingId = _useState8[0],
146
- setEditingId = _useState8[1];
147
- var _useState9 = (0, _react.useState)(''),
161
+ schemeName = _useState8[0],
162
+ setSchemeName = _useState8[1];
163
+ var _useState9 = (0, _react.useState)(null),
148
164
  _useState10 = _slicedToArray(_useState9, 2),
149
- editingName = _useState10[0],
150
- setEditingName = _useState10[1];
165
+ editingId = _useState10[0],
166
+ setEditingId = _useState10[1];
151
167
  var _useState11 = (0, _react.useState)(''),
152
168
  _useState12 = _slicedToArray(_useState11, 2),
153
- editingDescription = _useState12[0],
154
- setEditingDescription = _useState12[1];
169
+ editingName = _useState12[0],
170
+ setEditingName = _useState12[1];
171
+ var _useState13 = (0, _react.useState)(''),
172
+ _useState14 = _slicedToArray(_useState13, 2),
173
+ editingDescription = _useState14[0],
174
+ setEditingDescription = _useState14[1];
155
175
 
156
- // 初始化编辑顺序
176
+ // 初始化编辑顺序和隐藏字段
157
177
  _react.default.useEffect(function () {
158
178
  if (visible) {
159
179
  // 如果有当前顺序,使用当前顺序
@@ -169,8 +189,11 @@ var QuerySchemesManager = exports.QuerySchemesManager = function QuerySchemesMan
169
189
  setEditingOrder(defaultOrder);
170
190
  console.log('[QuerySchemesManager] 使用默认顺序:', defaultOrder);
171
191
  }
192
+
193
+ // 初始化隐藏字段
194
+ setHiddenFields((currentScheme === null || currentScheme === void 0 ? void 0 : currentScheme.hiddenFields) || []);
172
195
  }
173
- }, [visible, currentOrder, formItems]);
196
+ }, [visible, currentOrder, formItems, currentScheme]);
174
197
 
175
198
  // 构建字段标签映射
176
199
  var fieldLabelMap = (0, _react.useMemo)(function () {
@@ -196,7 +219,24 @@ var QuerySchemesManager = exports.QuerySchemesManager = function QuerySchemesMan
196
219
  }, []);
197
220
 
198
221
  /**
199
- * 应用当前顺序
222
+ * 切换查询项的隐藏/显示状态
223
+ */
224
+ var handleToggleHidden = (0, _react.useCallback)(function (field, hidden) {
225
+ setHiddenFields(function (prev) {
226
+ if (hidden) {
227
+ // 添加到隐藏列表
228
+ return [].concat(_toConsumableArray(prev), [field]);
229
+ } else {
230
+ // 从隐藏列表移除
231
+ return prev.filter(function (f) {
232
+ return f !== field;
233
+ });
234
+ }
235
+ });
236
+ }, []);
237
+
238
+ /**
239
+ * 应用当前顺序和隐藏设置
200
240
  */
201
241
  var handleApplyOrder = (0, _react.useCallback)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
202
242
  return _regeneratorRuntime().wrap(function _callee$(_context) {
@@ -209,15 +249,18 @@ var QuerySchemesManager = exports.QuerySchemesManager = function QuerySchemesMan
209
249
  }
210
250
  _context.next = 4;
211
251
  return saveScheme({
212
- itemsOrder: editingOrder
252
+ itemsOrder: editingOrder,
253
+ hiddenFields: hiddenFields
213
254
  });
214
255
  case 4:
215
- _antd.message.success('已应用新顺序');
256
+ _antd.message.success('已应用新配置');
216
257
  _context.next = 10;
217
258
  break;
218
259
  case 7:
219
260
  _context.next = 9;
220
- return createScheme('默认方案', editingOrder);
261
+ return createScheme('默认方案', editingOrder, {
262
+ hiddenFields: hiddenFields
263
+ });
221
264
  case 9:
222
265
  _antd.message.success('已自动创建并应用默认方案');
223
266
  case 10:
@@ -237,7 +280,7 @@ var QuerySchemesManager = exports.QuerySchemesManager = function QuerySchemesMan
237
280
  return _context.stop();
238
281
  }
239
282
  }, _callee, null, [[0, 14]]);
240
- })), [editingOrder, onOrderChange, currentScheme, saveScheme, createScheme, onClose]);
283
+ })), [editingOrder, hiddenFields, onOrderChange, currentScheme, saveScheme, createScheme, onClose]);
241
284
 
242
285
  /**
243
286
  * 保存为新方案
@@ -255,7 +298,9 @@ var QuerySchemesManager = exports.QuerySchemesManager = function QuerySchemesMan
255
298
  case 3:
256
299
  _context2.prev = 3;
257
300
  _context2.next = 6;
258
- return createScheme(schemeName, editingOrder);
301
+ return createScheme(schemeName, editingOrder, {
302
+ hiddenFields: hiddenFields
303
+ });
259
304
  case 6:
260
305
  _antd.message.success('保存成功');
261
306
  setSchemeName('');
@@ -270,41 +315,7 @@ var QuerySchemesManager = exports.QuerySchemesManager = function QuerySchemesMan
270
315
  return _context2.stop();
271
316
  }
272
317
  }, _callee2, null, [[3, 10]]);
273
- })), [schemeName, editingOrder, createScheme]);
274
-
275
- /**
276
- * 更新当前方案
277
- */
278
- var handleUpdateCurrent = (0, _react.useCallback)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
279
- return _regeneratorRuntime().wrap(function _callee3$(_context3) {
280
- while (1) switch (_context3.prev = _context3.next) {
281
- case 0:
282
- if (currentScheme) {
283
- _context3.next = 3;
284
- break;
285
- }
286
- _antd.message.warning('请先选择一个方案');
287
- return _context3.abrupt("return");
288
- case 3:
289
- _context3.prev = 3;
290
- _context3.next = 6;
291
- return saveScheme({
292
- itemsOrder: editingOrder
293
- });
294
- case 6:
295
- _antd.message.success('更新成功');
296
- _context3.next = 12;
297
- break;
298
- case 9:
299
- _context3.prev = 9;
300
- _context3.t0 = _context3["catch"](3);
301
- _antd.message.error(_context3.t0.message || '更新失败');
302
- case 12:
303
- case "end":
304
- return _context3.stop();
305
- }
306
- }, _callee3, null, [[3, 9]]);
307
- })), [currentScheme, editingOrder, saveScheme]);
318
+ })), [schemeName, editingOrder, hiddenFields, createScheme]);
308
319
 
309
320
  /**
310
321
  * 开始编辑方案
@@ -318,18 +329,18 @@ var QuerySchemesManager = exports.QuerySchemesManager = function QuerySchemesMan
318
329
  /**
319
330
  * 保存编辑
320
331
  */
321
- var handleSaveEdit = (0, _react.useCallback)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
322
- return _regeneratorRuntime().wrap(function _callee4$(_context4) {
323
- while (1) switch (_context4.prev = _context4.next) {
332
+ var handleSaveEdit = (0, _react.useCallback)( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
333
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
334
+ while (1) switch (_context3.prev = _context3.next) {
324
335
  case 0:
325
336
  if (editingId) {
326
- _context4.next = 2;
337
+ _context3.next = 2;
327
338
  break;
328
339
  }
329
- return _context4.abrupt("return");
340
+ return _context3.abrupt("return");
330
341
  case 2:
331
- _context4.prev = 2;
332
- _context4.next = 5;
342
+ _context3.prev = 2;
343
+ _context3.next = 5;
333
344
  return updateScheme(editingId, {
334
345
  name: editingName.trim(),
335
346
  description: editingDescription.trim() || undefined
@@ -337,17 +348,17 @@ var QuerySchemesManager = exports.QuerySchemesManager = function QuerySchemesMan
337
348
  case 5:
338
349
  _antd.message.success('更新成功');
339
350
  setEditingId(null);
340
- _context4.next = 12;
351
+ _context3.next = 12;
341
352
  break;
342
353
  case 9:
343
- _context4.prev = 9;
344
- _context4.t0 = _context4["catch"](2);
345
- _antd.message.error(_context4.t0.message || '更新失败');
354
+ _context3.prev = 9;
355
+ _context3.t0 = _context3["catch"](2);
356
+ _antd.message.error(_context3.t0.message || '更新失败');
346
357
  case 12:
347
358
  case "end":
348
- return _context4.stop();
359
+ return _context3.stop();
349
360
  }
350
- }, _callee4, null, [[2, 9]]);
361
+ }, _callee3, null, [[2, 9]]);
351
362
  })), [editingId, editingName, editingDescription, updateScheme]);
352
363
 
353
364
  /**
@@ -363,29 +374,29 @@ var QuerySchemesManager = exports.QuerySchemesManager = function QuerySchemesMan
363
374
  * 删除方案
364
375
  */
365
376
  var handleDelete = (0, _react.useCallback)( /*#__PURE__*/function () {
366
- var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(schemeId, schemeName) {
367
- return _regeneratorRuntime().wrap(function _callee5$(_context5) {
368
- while (1) switch (_context5.prev = _context5.next) {
377
+ var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(schemeId, schemeName) {
378
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
379
+ while (1) switch (_context4.prev = _context4.next) {
369
380
  case 0:
370
- _context5.prev = 0;
371
- _context5.next = 3;
381
+ _context4.prev = 0;
382
+ _context4.next = 3;
372
383
  return deleteScheme(schemeId);
373
384
  case 3:
374
385
  _antd.message.success("\u65B9\u6848\"".concat(schemeName, "\"\u5DF2\u5220\u9664"));
375
- _context5.next = 9;
386
+ _context4.next = 9;
376
387
  break;
377
388
  case 6:
378
- _context5.prev = 6;
379
- _context5.t0 = _context5["catch"](0);
380
- _antd.message.error(_context5.t0.message || '删除失败');
389
+ _context4.prev = 6;
390
+ _context4.t0 = _context4["catch"](0);
391
+ _antd.message.error(_context4.t0.message || '删除失败');
381
392
  case 9:
382
393
  case "end":
383
- return _context5.stop();
394
+ return _context4.stop();
384
395
  }
385
- }, _callee5, null, [[0, 6]]);
396
+ }, _callee4, null, [[0, 6]]);
386
397
  }));
387
398
  return function (_x, _x2) {
388
- return _ref7.apply(this, arguments);
399
+ return _ref6.apply(this, arguments);
389
400
  };
390
401
  }(), [deleteScheme]);
391
402
 
@@ -393,29 +404,29 @@ var QuerySchemesManager = exports.QuerySchemesManager = function QuerySchemesMan
393
404
  * 设置为默认方案
394
405
  */
395
406
  var handleSetDefault = (0, _react.useCallback)( /*#__PURE__*/function () {
396
- var _ref8 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(schemeId, schemeName) {
397
- return _regeneratorRuntime().wrap(function _callee6$(_context6) {
398
- while (1) switch (_context6.prev = _context6.next) {
407
+ var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(schemeId, schemeName) {
408
+ return _regeneratorRuntime().wrap(function _callee5$(_context5) {
409
+ while (1) switch (_context5.prev = _context5.next) {
399
410
  case 0:
400
- _context6.prev = 0;
401
- _context6.next = 3;
411
+ _context5.prev = 0;
412
+ _context5.next = 3;
402
413
  return setDefaultScheme(schemeId);
403
414
  case 3:
404
415
  _antd.message.success("\u5DF2\u5C06\"".concat(schemeName, "\"\u8BBE\u4E3A\u9ED8\u8BA4\u65B9\u6848"));
405
- _context6.next = 9;
416
+ _context5.next = 9;
406
417
  break;
407
418
  case 6:
408
- _context6.prev = 6;
409
- _context6.t0 = _context6["catch"](0);
410
- _antd.message.error(_context6.t0.message || '设置失败');
419
+ _context5.prev = 6;
420
+ _context5.t0 = _context5["catch"](0);
421
+ _antd.message.error(_context5.t0.message || '设置失败');
411
422
  case 9:
412
423
  case "end":
413
- return _context6.stop();
424
+ return _context5.stop();
414
425
  }
415
- }, _callee6, null, [[0, 6]]);
426
+ }, _callee5, null, [[0, 6]]);
416
427
  }));
417
428
  return function (_x3, _x4) {
418
- return _ref8.apply(this, arguments);
429
+ return _ref7.apply(this, arguments);
419
430
  };
420
431
  }(), [setDefaultScheme]);
421
432
 
@@ -423,13 +434,13 @@ var QuerySchemesManager = exports.QuerySchemesManager = function QuerySchemesMan
423
434
  * 应用方案
424
435
  */
425
436
  var handleApply = (0, _react.useCallback)( /*#__PURE__*/function () {
426
- var _ref9 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(schemeId) {
437
+ var _ref8 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(schemeId) {
427
438
  var scheme;
428
- return _regeneratorRuntime().wrap(function _callee7$(_context7) {
429
- while (1) switch (_context7.prev = _context7.next) {
439
+ return _regeneratorRuntime().wrap(function _callee6$(_context6) {
440
+ while (1) switch (_context6.prev = _context6.next) {
430
441
  case 0:
431
- _context7.prev = 0;
432
- _context7.next = 3;
442
+ _context6.prev = 0;
443
+ _context6.next = 3;
433
444
  return loadScheme(schemeId);
434
445
  case 3:
435
446
  scheme = schemes.find(function (s) {
@@ -439,24 +450,31 @@ var QuerySchemesManager = exports.QuerySchemesManager = function QuerySchemesMan
439
450
  onOrderChange(scheme.itemsOrder);
440
451
  _antd.message.success('方案已应用');
441
452
  }
442
- _context7.next = 10;
453
+ _context6.next = 10;
443
454
  break;
444
455
  case 7:
445
- _context7.prev = 7;
446
- _context7.t0 = _context7["catch"](0);
447
- _antd.message.error(_context7.t0.message || '应用失败');
456
+ _context6.prev = 7;
457
+ _context6.t0 = _context6["catch"](0);
458
+ _antd.message.error(_context6.t0.message || '应用失败');
448
459
  case 10:
449
460
  case "end":
450
- return _context7.stop();
461
+ return _context6.stop();
451
462
  }
452
- }, _callee7, null, [[0, 7]]);
463
+ }, _callee6, null, [[0, 7]]);
453
464
  }));
454
465
  return function (_x5) {
455
- return _ref9.apply(this, arguments);
466
+ return _ref8.apply(this, arguments);
456
467
  };
457
468
  }(), [loadScheme, schemes, onOrderChange]);
458
469
  return /*#__PURE__*/_react.default.createElement(_draggableModal.default, {
459
- title: "\u67E5\u8BE2\u65B9\u6848\u8BBE\u7F6E",
470
+ title: /*#__PURE__*/_react.default.createElement("span", null, "\u67E5\u8BE2\u65B9\u6848\u8BBE\u7F6E", currentScheme && /*#__PURE__*/_react.default.createElement("span", {
471
+ style: {
472
+ marginLeft: 16,
473
+ fontSize: 14,
474
+ fontWeight: 'normal',
475
+ color: '#1890ff'
476
+ }
477
+ }, "- \u5F53\u524D\u65B9\u6848: ", currentScheme.name)),
460
478
  open: visible,
461
479
  onCancel: onClose,
462
480
  width: 800,
@@ -503,7 +521,7 @@ var QuerySchemesManager = exports.QuerySchemesManager = function QuerySchemesMan
503
521
  marginBottom: 16,
504
522
  color: '#666'
505
523
  }
506
- }, "\u62D6\u62FD\u4E0B\u65B9\u67E5\u8BE2\u9879\u8C03\u6574\u987A\u5E8F\uFF0C\u5B8C\u6210\u540E\u53EF\u5E94\u7528\u6216\u4FDD\u5B58\u4E3A\u65B9\u6848"), /*#__PURE__*/_react.default.createElement(_reactDnd.DndProvider, {
524
+ }, "\u62D6\u62FD\u4E0B\u65B9\u67E5\u8BE2\u9879\u8C03\u6574\u987A\u5E8F\uFF0C\u4F7F\u7528\u5F00\u5173\u63A7\u5236\u663E\u793A/\u9690\u85CF\uFF0C\u5B8C\u6210\u540E\u53EF\u5E94\u7528\u6216\u4FDD\u5B58\u4E3A\u65B9\u6848"), /*#__PURE__*/_react.default.createElement(_reactDnd.DndProvider, {
507
525
  backend: _reactDndHtml5Backend.HTML5Backend
508
526
  }, /*#__PURE__*/_react.default.createElement("div", {
509
527
  className: "query-items-container"
@@ -513,7 +531,9 @@ var QuerySchemesManager = exports.QuerySchemesManager = function QuerySchemesMan
513
531
  field: field,
514
532
  label: fieldLabelMap.get(field) || field,
515
533
  index: index,
516
- moveItem: moveItem
534
+ hidden: hiddenFields.includes(field),
535
+ moveItem: moveItem,
536
+ onToggleHidden: handleToggleHidden
517
537
  });
518
538
  }))), /*#__PURE__*/_react.default.createElement("div", {
519
539
  style: {
@@ -525,7 +545,7 @@ var QuerySchemesManager = exports.QuerySchemesManager = function QuerySchemesMan
525
545
  }, /*#__PURE__*/_react.default.createElement(_antd.Button, {
526
546
  type: "primary",
527
547
  onClick: handleApplyOrder
528
- }, "\u5E94\u7528\u5F53\u524D\u987A\u5E8F"), /*#__PURE__*/_react.default.createElement(_antd.Input, {
548
+ }, "\u5E94\u7528\u5F53\u524D\u914D\u7F6E"), /*#__PURE__*/_react.default.createElement(_antd.Input, {
529
549
  placeholder: "\u8F93\u5165\u65B9\u6848\u540D\u79F0",
530
550
  value: schemeName,
531
551
  onChange: function onChange(e) {
@@ -536,10 +556,7 @@ var QuerySchemesManager = exports.QuerySchemesManager = function QuerySchemesMan
536
556
  }
537
557
  }), /*#__PURE__*/_react.default.createElement(_antd.Button, {
538
558
  onClick: handleSaveAsNew
539
- }, "\u53E6\u5B58\u4E3A\u65B0\u65B9\u6848"), /*#__PURE__*/_react.default.createElement(_antd.Button, {
540
- onClick: handleUpdateCurrent,
541
- disabled: !currentScheme
542
- }, "\u66F4\u65B0\u5F53\u524D\u65B9\u6848")))
559
+ }, "\u53E6\u5B58\u4E3A\u65B0\u65B9\u6848")))
543
560
  }, {
544
561
  key: 'schemes',
545
562
  label: '方案管理',
@@ -20,6 +20,8 @@ export interface QueryScheme {
20
20
  updatedAt: number;
21
21
  /** 查询项字段名数组,按显示顺序排列 */
22
22
  itemsOrder: string[];
23
+ /** 隐藏的查询项字段名数组 */
24
+ hiddenFields?: string[];
23
25
  /** 方案描述(可选) */
24
26
  description?: string;
25
27
  /** 标签分类(可选,扩展功能) */
@@ -12,5 +12,12 @@ export { useColumnSchemes } from './hooks/useColumnSchemes';
12
12
  export { SchemeSelector, SchemeManager } from './components';
13
13
  export type { SchemeSelectorProps, SchemeManagerProps } from './components';
14
14
  export { LocalStorageAdapter, defaultStorageAdapter } from './storage/localStorageAdapter';
15
+ export type { LocalStorageConfig } from './storage/localStorageAdapter';
16
+ export { RemoteStorageAdapter, StorageError, StorageErrorType } from './storage/remoteStorageAdapter';
17
+ export type { RemoteStorageConfig } from './storage/remoteStorageAdapter';
18
+ export { PriorityStorageAdapter } from './storage/priorityStorageAdapter';
19
+ export type { PriorityStorageConfig } from './storage/priorityStorageAdapter';
20
+ export { useRemoteStorage } from './storage/useRemoteStorage';
21
+ export { mergeRemoteStorageConfig } from './storage/configMerger';
15
22
  export { validateScheme, validateSchemeName, validateSchemeDescription, checkDuplicateName, generateUniqueName } from './utils/validator';
16
23
  export { STORAGE_PREFIX, LEGACY_STORAGE_PREFIX, DEFAULT_SCHEME_NAME, SYSTEM_SCHEME_PREFIX, MIGRATED_DEFAULT_SCHEME_ID, STORAGE_MAX_SIZE, MAX_SCHEMES_PER_GRID, MAX_SCHEME_NAME_LENGTH, MAX_SCHEME_DESCRIPTION_LENGTH } from './constants';
@@ -45,6 +45,18 @@ Object.defineProperty(exports, "MIGRATED_DEFAULT_SCHEME_ID", {
45
45
  return _constants.MIGRATED_DEFAULT_SCHEME_ID;
46
46
  }
47
47
  });
48
+ Object.defineProperty(exports, "PriorityStorageAdapter", {
49
+ enumerable: true,
50
+ get: function get() {
51
+ return _priorityStorageAdapter.PriorityStorageAdapter;
52
+ }
53
+ });
54
+ Object.defineProperty(exports, "RemoteStorageAdapter", {
55
+ enumerable: true,
56
+ get: function get() {
57
+ return _remoteStorageAdapter.RemoteStorageAdapter;
58
+ }
59
+ });
48
60
  Object.defineProperty(exports, "STORAGE_MAX_SIZE", {
49
61
  enumerable: true,
50
62
  get: function get() {
@@ -75,6 +87,18 @@ Object.defineProperty(exports, "SchemeSelector", {
75
87
  return _components.SchemeSelector;
76
88
  }
77
89
  });
90
+ Object.defineProperty(exports, "StorageError", {
91
+ enumerable: true,
92
+ get: function get() {
93
+ return _remoteStorageAdapter.StorageError;
94
+ }
95
+ });
96
+ Object.defineProperty(exports, "StorageErrorType", {
97
+ enumerable: true,
98
+ get: function get() {
99
+ return _remoteStorageAdapter.StorageErrorType;
100
+ }
101
+ });
78
102
  Object.defineProperty(exports, "checkDuplicateName", {
79
103
  enumerable: true,
80
104
  get: function get() {
@@ -93,12 +117,24 @@ Object.defineProperty(exports, "generateUniqueName", {
93
117
  return _validator.generateUniqueName;
94
118
  }
95
119
  });
120
+ Object.defineProperty(exports, "mergeRemoteStorageConfig", {
121
+ enumerable: true,
122
+ get: function get() {
123
+ return _configMerger.mergeRemoteStorageConfig;
124
+ }
125
+ });
96
126
  Object.defineProperty(exports, "useColumnSchemes", {
97
127
  enumerable: true,
98
128
  get: function get() {
99
129
  return _useColumnSchemes.useColumnSchemes;
100
130
  }
101
131
  });
132
+ Object.defineProperty(exports, "useRemoteStorage", {
133
+ enumerable: true,
134
+ get: function get() {
135
+ return _useRemoteStorage.useRemoteStorage;
136
+ }
137
+ });
102
138
  Object.defineProperty(exports, "validateScheme", {
103
139
  enumerable: true,
104
140
  get: function get() {
@@ -120,5 +156,9 @@ Object.defineProperty(exports, "validateSchemeName", {
120
156
  var _useColumnSchemes = require("./hooks/useColumnSchemes");
121
157
  var _components = require("./components");
122
158
  var _localStorageAdapter = require("./storage/localStorageAdapter");
159
+ var _remoteStorageAdapter = require("./storage/remoteStorageAdapter");
160
+ var _priorityStorageAdapter = require("./storage/priorityStorageAdapter");
161
+ var _useRemoteStorage = require("./storage/useRemoteStorage");
162
+ var _configMerger = require("./storage/configMerger");
123
163
  var _validator = require("./utils/validator");
124
164
  var _constants = require("./constants");
@@ -0,0 +1,10 @@
1
+ import type { RemoteStorageConfig } from './remoteStorageAdapter';
2
+ /**
3
+ * 合并全局配置和局部配置
4
+ * 局部配置优先级高于全局配置
5
+ *
6
+ * @param globalConfig 全局配置(来自 Context)
7
+ * @param localConfig 局部配置(直接传入的配置)
8
+ * @returns 合并后的配置
9
+ */
10
+ export declare function mergeRemoteStorageConfig(globalConfig: Partial<RemoteStorageConfig> | undefined, localConfig: RemoteStorageConfig): RemoteStorageConfig;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.mergeRemoteStorageConfig = mergeRemoteStorageConfig;
7
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
8
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
9
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
10
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
11
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
12
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
13
+ /**
14
+ * 合并全局配置和局部配置
15
+ * 局部配置优先级高于全局配置
16
+ *
17
+ * @param globalConfig 全局配置(来自 Context)
18
+ * @param localConfig 局部配置(直接传入的配置)
19
+ * @returns 合并后的配置
20
+ */
21
+ function mergeRemoteStorageConfig(globalConfig, localConfig) {
22
+ var _localConfig$getToken, _localConfig$getUserI, _localConfig$onCacheI;
23
+ if (!globalConfig) {
24
+ return localConfig;
25
+ }
26
+
27
+ // 深度合并配置,局部配置覆盖全局配置
28
+ return _objectSpread(_objectSpread(_objectSpread({}, globalConfig), localConfig), {}, {
29
+ // 特殊处理函数类型,优先使用局部配置
30
+ getToken: (_localConfig$getToken = localConfig.getToken) !== null && _localConfig$getToken !== void 0 ? _localConfig$getToken : globalConfig.getToken,
31
+ getUserId: (_localConfig$getUserI = localConfig.getUserId) !== null && _localConfig$getUserI !== void 0 ? _localConfig$getUserI : globalConfig.getUserId,
32
+ onCacheInvalidate: (_localConfig$onCacheI = localConfig.onCacheInvalidate) !== null && _localConfig$onCacheI !== void 0 ? _localConfig$onCacheI : globalConfig.onCacheInvalidate
33
+ });
34
+ }
@@ -1,11 +1,24 @@
1
1
  import { ColumnScheme, StorageAdapter } from '../types';
2
+ /**
3
+ * LocalStorage 配置
4
+ */
5
+ export interface LocalStorageConfig {
6
+ /**
7
+ * 用户标识获取函数
8
+ * 用于支持多用户数据隔离
9
+ */
10
+ getUserId?: () => string | null;
11
+ }
2
12
  /**
3
13
  * LocalStorage 存储适配器实现
4
- * 默认的方案存储方式,支持自动迁移旧数据
14
+ * 默认的方案存储方式,支持自动迁移旧数据和用户隔离
5
15
  */
6
16
  export declare class LocalStorageAdapter implements StorageAdapter {
17
+ private config;
18
+ constructor(config?: LocalStorageConfig);
7
19
  /**
8
20
  * 生成存储键名
21
+ * 如果配置了 getUserId,则键名会包含用户标识
9
22
  */
10
23
  private getStorageKey;
11
24
  /**
@@ -47,6 +60,7 @@ export declare class LocalStorageAdapter implements StorageAdapter {
47
60
  };
48
61
  /**
49
62
  * 生成当前方案ID存储键名
63
+ * 如果配置了 getUserId,则键名会包含用户标识
50
64
  */
51
65
  private getCurrentSchemeKey;
52
66
  /**
@@ -59,6 +73,7 @@ export declare class LocalStorageAdapter implements StorageAdapter {
59
73
  saveCurrentSchemeId(gridId: string, schemeId: string | null): Promise<void>;
60
74
  }
61
75
  /**
62
- * 导出默认实例
76
+ * 导出默认实例(不带用户隔离)
77
+ * 如需用户隔离,请创建新实例并传入 getUserId 配置
63
78
  */
64
79
  export declare const defaultStorageAdapter: LocalStorageAdapter;