@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
@@ -13,7 +13,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
13
13
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
14
14
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
15
15
  import React, { useState, useCallback, useMemo } from 'react';
16
- import { Tabs, Button, Input, Space, List, message, Popconfirm, Tag, Tooltip } from 'antd';
16
+ import { Tabs, Button, Input, Space, List, message, Popconfirm, Tag, Tooltip, Switch } from 'antd';
17
17
  import DraggableModal from "../../../draggableModal";
18
18
  import { EditOutlined, DeleteOutlined, StarOutlined, StarFilled, HolderOutlined } from '@ant-design/icons';
19
19
  import { DndProvider, useDrag, useDrop } from 'react-dnd';
@@ -27,7 +27,9 @@ var DraggableQueryItem = function DraggableQueryItem(_ref) {
27
27
  var field = _ref.field,
28
28
  label = _ref.label,
29
29
  index = _ref.index,
30
- moveItem = _ref.moveItem;
30
+ hidden = _ref.hidden,
31
+ moveItem = _ref.moveItem,
32
+ onToggleHidden = _ref.onToggleHidden;
31
33
  var ref = React.useRef(null);
32
34
  var _useDrag = useDrag({
33
35
  type: DRAG_TYPE,
@@ -71,16 +73,16 @@ var DraggableQueryItem = function DraggableQueryItem(_ref) {
71
73
  ref: ref,
72
74
  className: "query-item-draggable",
73
75
  style: {
74
- opacity: isDragging ? 0.5 : 1,
76
+ opacity: isDragging ? 0.5 : hidden ? 0.6 : 1,
75
77
  padding: '12px 16px',
76
78
  margin: '8px 0',
77
- background: '#fff',
79
+ background: hidden ? '#f5f5f5' : '#fff',
78
80
  border: '1px solid #d9d9d9',
79
81
  borderRadius: '4px',
80
82
  cursor: 'move',
81
83
  display: 'flex',
82
84
  alignItems: 'center',
83
- gap: '8px'
85
+ gap: '12px'
84
86
  }
85
87
  }, /*#__PURE__*/React.createElement(HolderOutlined, {
86
88
  style: {
@@ -89,9 +91,23 @@ var DraggableQueryItem = function DraggableQueryItem(_ref) {
89
91
  }
90
92
  }), /*#__PURE__*/React.createElement("span", {
91
93
  style: {
92
- flex: 1
94
+ flex: 1,
95
+ textDecoration: hidden ? 'line-through' : 'none',
96
+ color: hidden ? '#999' : 'inherit'
93
97
  }
94
- }, index + 1, ". ", label));
98
+ }, index + 1, ". ", label), /*#__PURE__*/React.createElement(Tooltip, {
99
+ title: hidden ? '显示此查询项' : '隐藏此查询项'
100
+ }, /*#__PURE__*/React.createElement(Switch, {
101
+ checked: !hidden,
102
+ onChange: function onChange(checked) {
103
+ return onToggleHidden(field, !checked);
104
+ },
105
+ checkedChildren: "\u663E\u793A",
106
+ unCheckedChildren: "\u9690\u85CF",
107
+ onClick: function onClick(_, e) {
108
+ return e.stopPropagation();
109
+ }
110
+ })));
95
111
  };
96
112
 
97
113
  /**
@@ -127,24 +143,28 @@ export var QuerySchemesManager = function QuerySchemesManager(_ref2) {
127
143
  _useState4 = _slicedToArray(_useState3, 2),
128
144
  editingOrder = _useState4[0],
129
145
  setEditingOrder = _useState4[1];
130
- var _useState5 = useState(''),
146
+ var _useState5 = useState([]),
131
147
  _useState6 = _slicedToArray(_useState5, 2),
132
- schemeName = _useState6[0],
133
- setSchemeName = _useState6[1];
134
- var _useState7 = useState(null),
148
+ hiddenFields = _useState6[0],
149
+ setHiddenFields = _useState6[1];
150
+ var _useState7 = useState(''),
135
151
  _useState8 = _slicedToArray(_useState7, 2),
136
- editingId = _useState8[0],
137
- setEditingId = _useState8[1];
138
- var _useState9 = useState(''),
152
+ schemeName = _useState8[0],
153
+ setSchemeName = _useState8[1];
154
+ var _useState9 = useState(null),
139
155
  _useState10 = _slicedToArray(_useState9, 2),
140
- editingName = _useState10[0],
141
- setEditingName = _useState10[1];
156
+ editingId = _useState10[0],
157
+ setEditingId = _useState10[1];
142
158
  var _useState11 = useState(''),
143
159
  _useState12 = _slicedToArray(_useState11, 2),
144
- editingDescription = _useState12[0],
145
- setEditingDescription = _useState12[1];
160
+ editingName = _useState12[0],
161
+ setEditingName = _useState12[1];
162
+ var _useState13 = useState(''),
163
+ _useState14 = _slicedToArray(_useState13, 2),
164
+ editingDescription = _useState14[0],
165
+ setEditingDescription = _useState14[1];
146
166
 
147
- // 初始化编辑顺序
167
+ // 初始化编辑顺序和隐藏字段
148
168
  React.useEffect(function () {
149
169
  if (visible) {
150
170
  // 如果有当前顺序,使用当前顺序
@@ -160,8 +180,11 @@ export var QuerySchemesManager = function QuerySchemesManager(_ref2) {
160
180
  setEditingOrder(defaultOrder);
161
181
  console.log('[QuerySchemesManager] 使用默认顺序:', defaultOrder);
162
182
  }
183
+
184
+ // 初始化隐藏字段
185
+ setHiddenFields((currentScheme === null || currentScheme === void 0 ? void 0 : currentScheme.hiddenFields) || []);
163
186
  }
164
- }, [visible, currentOrder, formItems]);
187
+ }, [visible, currentOrder, formItems, currentScheme]);
165
188
 
166
189
  // 构建字段标签映射
167
190
  var fieldLabelMap = useMemo(function () {
@@ -187,7 +210,24 @@ export var QuerySchemesManager = function QuerySchemesManager(_ref2) {
187
210
  }, []);
188
211
 
189
212
  /**
190
- * 应用当前顺序
213
+ * 切换查询项的隐藏/显示状态
214
+ */
215
+ var handleToggleHidden = useCallback(function (field, hidden) {
216
+ setHiddenFields(function (prev) {
217
+ if (hidden) {
218
+ // 添加到隐藏列表
219
+ return [].concat(_toConsumableArray(prev), [field]);
220
+ } else {
221
+ // 从隐藏列表移除
222
+ return prev.filter(function (f) {
223
+ return f !== field;
224
+ });
225
+ }
226
+ });
227
+ }, []);
228
+
229
+ /**
230
+ * 应用当前顺序和隐藏设置
191
231
  */
192
232
  var handleApplyOrder = useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
193
233
  return _regeneratorRuntime().wrap(function _callee$(_context) {
@@ -200,15 +240,18 @@ export var QuerySchemesManager = function QuerySchemesManager(_ref2) {
200
240
  }
201
241
  _context.next = 4;
202
242
  return saveScheme({
203
- itemsOrder: editingOrder
243
+ itemsOrder: editingOrder,
244
+ hiddenFields: hiddenFields
204
245
  });
205
246
  case 4:
206
- message.success('已应用新顺序');
247
+ message.success('已应用新配置');
207
248
  _context.next = 10;
208
249
  break;
209
250
  case 7:
210
251
  _context.next = 9;
211
- return createScheme('默认方案', editingOrder);
252
+ return createScheme('默认方案', editingOrder, {
253
+ hiddenFields: hiddenFields
254
+ });
212
255
  case 9:
213
256
  message.success('已自动创建并应用默认方案');
214
257
  case 10:
@@ -228,7 +271,7 @@ export var QuerySchemesManager = function QuerySchemesManager(_ref2) {
228
271
  return _context.stop();
229
272
  }
230
273
  }, _callee, null, [[0, 14]]);
231
- })), [editingOrder, onOrderChange, currentScheme, saveScheme, createScheme, onClose]);
274
+ })), [editingOrder, hiddenFields, onOrderChange, currentScheme, saveScheme, createScheme, onClose]);
232
275
 
233
276
  /**
234
277
  * 保存为新方案
@@ -246,7 +289,9 @@ export var QuerySchemesManager = function QuerySchemesManager(_ref2) {
246
289
  case 3:
247
290
  _context2.prev = 3;
248
291
  _context2.next = 6;
249
- return createScheme(schemeName, editingOrder);
292
+ return createScheme(schemeName, editingOrder, {
293
+ hiddenFields: hiddenFields
294
+ });
250
295
  case 6:
251
296
  message.success('保存成功');
252
297
  setSchemeName('');
@@ -261,41 +306,7 @@ export var QuerySchemesManager = function QuerySchemesManager(_ref2) {
261
306
  return _context2.stop();
262
307
  }
263
308
  }, _callee2, null, [[3, 10]]);
264
- })), [schemeName, editingOrder, createScheme]);
265
-
266
- /**
267
- * 更新当前方案
268
- */
269
- var handleUpdateCurrent = useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
270
- return _regeneratorRuntime().wrap(function _callee3$(_context3) {
271
- while (1) switch (_context3.prev = _context3.next) {
272
- case 0:
273
- if (currentScheme) {
274
- _context3.next = 3;
275
- break;
276
- }
277
- message.warning('请先选择一个方案');
278
- return _context3.abrupt("return");
279
- case 3:
280
- _context3.prev = 3;
281
- _context3.next = 6;
282
- return saveScheme({
283
- itemsOrder: editingOrder
284
- });
285
- case 6:
286
- message.success('更新成功');
287
- _context3.next = 12;
288
- break;
289
- case 9:
290
- _context3.prev = 9;
291
- _context3.t0 = _context3["catch"](3);
292
- message.error(_context3.t0.message || '更新失败');
293
- case 12:
294
- case "end":
295
- return _context3.stop();
296
- }
297
- }, _callee3, null, [[3, 9]]);
298
- })), [currentScheme, editingOrder, saveScheme]);
309
+ })), [schemeName, editingOrder, hiddenFields, createScheme]);
299
310
 
300
311
  /**
301
312
  * 开始编辑方案
@@ -309,18 +320,18 @@ export var QuerySchemesManager = function QuerySchemesManager(_ref2) {
309
320
  /**
310
321
  * 保存编辑
311
322
  */
312
- var handleSaveEdit = useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4() {
313
- return _regeneratorRuntime().wrap(function _callee4$(_context4) {
314
- while (1) switch (_context4.prev = _context4.next) {
323
+ var handleSaveEdit = useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
324
+ return _regeneratorRuntime().wrap(function _callee3$(_context3) {
325
+ while (1) switch (_context3.prev = _context3.next) {
315
326
  case 0:
316
327
  if (editingId) {
317
- _context4.next = 2;
328
+ _context3.next = 2;
318
329
  break;
319
330
  }
320
- return _context4.abrupt("return");
331
+ return _context3.abrupt("return");
321
332
  case 2:
322
- _context4.prev = 2;
323
- _context4.next = 5;
333
+ _context3.prev = 2;
334
+ _context3.next = 5;
324
335
  return updateScheme(editingId, {
325
336
  name: editingName.trim(),
326
337
  description: editingDescription.trim() || undefined
@@ -328,17 +339,17 @@ export var QuerySchemesManager = function QuerySchemesManager(_ref2) {
328
339
  case 5:
329
340
  message.success('更新成功');
330
341
  setEditingId(null);
331
- _context4.next = 12;
342
+ _context3.next = 12;
332
343
  break;
333
344
  case 9:
334
- _context4.prev = 9;
335
- _context4.t0 = _context4["catch"](2);
336
- message.error(_context4.t0.message || '更新失败');
345
+ _context3.prev = 9;
346
+ _context3.t0 = _context3["catch"](2);
347
+ message.error(_context3.t0.message || '更新失败');
337
348
  case 12:
338
349
  case "end":
339
- return _context4.stop();
350
+ return _context3.stop();
340
351
  }
341
- }, _callee4, null, [[2, 9]]);
352
+ }, _callee3, null, [[2, 9]]);
342
353
  })), [editingId, editingName, editingDescription, updateScheme]);
343
354
 
344
355
  /**
@@ -354,29 +365,29 @@ export var QuerySchemesManager = function QuerySchemesManager(_ref2) {
354
365
  * 删除方案
355
366
  */
356
367
  var handleDelete = useCallback( /*#__PURE__*/function () {
357
- var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(schemeId, schemeName) {
358
- return _regeneratorRuntime().wrap(function _callee5$(_context5) {
359
- while (1) switch (_context5.prev = _context5.next) {
368
+ var _ref6 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee4(schemeId, schemeName) {
369
+ return _regeneratorRuntime().wrap(function _callee4$(_context4) {
370
+ while (1) switch (_context4.prev = _context4.next) {
360
371
  case 0:
361
- _context5.prev = 0;
362
- _context5.next = 3;
372
+ _context4.prev = 0;
373
+ _context4.next = 3;
363
374
  return deleteScheme(schemeId);
364
375
  case 3:
365
376
  message.success("\u65B9\u6848\"".concat(schemeName, "\"\u5DF2\u5220\u9664"));
366
- _context5.next = 9;
377
+ _context4.next = 9;
367
378
  break;
368
379
  case 6:
369
- _context5.prev = 6;
370
- _context5.t0 = _context5["catch"](0);
371
- message.error(_context5.t0.message || '删除失败');
380
+ _context4.prev = 6;
381
+ _context4.t0 = _context4["catch"](0);
382
+ message.error(_context4.t0.message || '删除失败');
372
383
  case 9:
373
384
  case "end":
374
- return _context5.stop();
385
+ return _context4.stop();
375
386
  }
376
- }, _callee5, null, [[0, 6]]);
387
+ }, _callee4, null, [[0, 6]]);
377
388
  }));
378
389
  return function (_x, _x2) {
379
- return _ref7.apply(this, arguments);
390
+ return _ref6.apply(this, arguments);
380
391
  };
381
392
  }(), [deleteScheme]);
382
393
 
@@ -384,29 +395,29 @@ export var QuerySchemesManager = function QuerySchemesManager(_ref2) {
384
395
  * 设置为默认方案
385
396
  */
386
397
  var handleSetDefault = useCallback( /*#__PURE__*/function () {
387
- var _ref8 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(schemeId, schemeName) {
388
- return _regeneratorRuntime().wrap(function _callee6$(_context6) {
389
- while (1) switch (_context6.prev = _context6.next) {
398
+ var _ref7 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee5(schemeId, schemeName) {
399
+ return _regeneratorRuntime().wrap(function _callee5$(_context5) {
400
+ while (1) switch (_context5.prev = _context5.next) {
390
401
  case 0:
391
- _context6.prev = 0;
392
- _context6.next = 3;
402
+ _context5.prev = 0;
403
+ _context5.next = 3;
393
404
  return setDefaultScheme(schemeId);
394
405
  case 3:
395
406
  message.success("\u5DF2\u5C06\"".concat(schemeName, "\"\u8BBE\u4E3A\u9ED8\u8BA4\u65B9\u6848"));
396
- _context6.next = 9;
407
+ _context5.next = 9;
397
408
  break;
398
409
  case 6:
399
- _context6.prev = 6;
400
- _context6.t0 = _context6["catch"](0);
401
- message.error(_context6.t0.message || '设置失败');
410
+ _context5.prev = 6;
411
+ _context5.t0 = _context5["catch"](0);
412
+ message.error(_context5.t0.message || '设置失败');
402
413
  case 9:
403
414
  case "end":
404
- return _context6.stop();
415
+ return _context5.stop();
405
416
  }
406
- }, _callee6, null, [[0, 6]]);
417
+ }, _callee5, null, [[0, 6]]);
407
418
  }));
408
419
  return function (_x3, _x4) {
409
- return _ref8.apply(this, arguments);
420
+ return _ref7.apply(this, arguments);
410
421
  };
411
422
  }(), [setDefaultScheme]);
412
423
 
@@ -414,13 +425,13 @@ export var QuerySchemesManager = function QuerySchemesManager(_ref2) {
414
425
  * 应用方案
415
426
  */
416
427
  var handleApply = useCallback( /*#__PURE__*/function () {
417
- var _ref9 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee7(schemeId) {
428
+ var _ref8 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(schemeId) {
418
429
  var scheme;
419
- return _regeneratorRuntime().wrap(function _callee7$(_context7) {
420
- while (1) switch (_context7.prev = _context7.next) {
430
+ return _regeneratorRuntime().wrap(function _callee6$(_context6) {
431
+ while (1) switch (_context6.prev = _context6.next) {
421
432
  case 0:
422
- _context7.prev = 0;
423
- _context7.next = 3;
433
+ _context6.prev = 0;
434
+ _context6.next = 3;
424
435
  return loadScheme(schemeId);
425
436
  case 3:
426
437
  scheme = schemes.find(function (s) {
@@ -430,24 +441,31 @@ export var QuerySchemesManager = function QuerySchemesManager(_ref2) {
430
441
  onOrderChange(scheme.itemsOrder);
431
442
  message.success('方案已应用');
432
443
  }
433
- _context7.next = 10;
444
+ _context6.next = 10;
434
445
  break;
435
446
  case 7:
436
- _context7.prev = 7;
437
- _context7.t0 = _context7["catch"](0);
438
- message.error(_context7.t0.message || '应用失败');
447
+ _context6.prev = 7;
448
+ _context6.t0 = _context6["catch"](0);
449
+ message.error(_context6.t0.message || '应用失败');
439
450
  case 10:
440
451
  case "end":
441
- return _context7.stop();
452
+ return _context6.stop();
442
453
  }
443
- }, _callee7, null, [[0, 7]]);
454
+ }, _callee6, null, [[0, 7]]);
444
455
  }));
445
456
  return function (_x5) {
446
- return _ref9.apply(this, arguments);
457
+ return _ref8.apply(this, arguments);
447
458
  };
448
459
  }(), [loadScheme, schemes, onOrderChange]);
449
460
  return /*#__PURE__*/React.createElement(DraggableModal, {
450
- title: "\u67E5\u8BE2\u65B9\u6848\u8BBE\u7F6E",
461
+ title: /*#__PURE__*/React.createElement("span", null, "\u67E5\u8BE2\u65B9\u6848\u8BBE\u7F6E", currentScheme && /*#__PURE__*/React.createElement("span", {
462
+ style: {
463
+ marginLeft: 16,
464
+ fontSize: 14,
465
+ fontWeight: 'normal',
466
+ color: '#1890ff'
467
+ }
468
+ }, "- \u5F53\u524D\u65B9\u6848: ", currentScheme.name)),
451
469
  open: visible,
452
470
  onCancel: onClose,
453
471
  width: 800,
@@ -494,7 +512,7 @@ export var QuerySchemesManager = function QuerySchemesManager(_ref2) {
494
512
  marginBottom: 16,
495
513
  color: '#666'
496
514
  }
497
- }, "\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.createElement(DndProvider, {
515
+ }, "\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.createElement(DndProvider, {
498
516
  backend: HTML5Backend
499
517
  }, /*#__PURE__*/React.createElement("div", {
500
518
  className: "query-items-container"
@@ -504,7 +522,9 @@ export var QuerySchemesManager = function QuerySchemesManager(_ref2) {
504
522
  field: field,
505
523
  label: fieldLabelMap.get(field) || field,
506
524
  index: index,
507
- moveItem: moveItem
525
+ hidden: hiddenFields.includes(field),
526
+ moveItem: moveItem,
527
+ onToggleHidden: handleToggleHidden
508
528
  });
509
529
  }))), /*#__PURE__*/React.createElement("div", {
510
530
  style: {
@@ -516,7 +536,7 @@ export var QuerySchemesManager = function QuerySchemesManager(_ref2) {
516
536
  }, /*#__PURE__*/React.createElement(Button, {
517
537
  type: "primary",
518
538
  onClick: handleApplyOrder
519
- }, "\u5E94\u7528\u5F53\u524D\u987A\u5E8F"), /*#__PURE__*/React.createElement(Input, {
539
+ }, "\u5E94\u7528\u5F53\u524D\u914D\u7F6E"), /*#__PURE__*/React.createElement(Input, {
520
540
  placeholder: "\u8F93\u5165\u65B9\u6848\u540D\u79F0",
521
541
  value: schemeName,
522
542
  onChange: function onChange(e) {
@@ -527,10 +547,7 @@ export var QuerySchemesManager = function QuerySchemesManager(_ref2) {
527
547
  }
528
548
  }), /*#__PURE__*/React.createElement(Button, {
529
549
  onClick: handleSaveAsNew
530
- }, "\u53E6\u5B58\u4E3A\u65B0\u65B9\u6848"), /*#__PURE__*/React.createElement(Button, {
531
- onClick: handleUpdateCurrent,
532
- disabled: !currentScheme
533
- }, "\u66F4\u65B0\u5F53\u524D\u65B9\u6848")))
550
+ }, "\u53E6\u5B58\u4E3A\u65B0\u65B9\u6848")))
534
551
  }, {
535
552
  key: 'schemes',
536
553
  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';
@@ -17,6 +17,11 @@ export { useColumnSchemes } from "./hooks/useColumnSchemes";
17
17
  export { SchemeSelector, SchemeManager } from "./components";
18
18
  // 存储适配器
19
19
  export { LocalStorageAdapter, defaultStorageAdapter } from "./storage/localStorageAdapter";
20
+ export { RemoteStorageAdapter, StorageError, StorageErrorType } from "./storage/remoteStorageAdapter";
21
+ export { PriorityStorageAdapter } from "./storage/priorityStorageAdapter";
22
+ // 存储配置相关
23
+ export { useRemoteStorage } from "./storage/useRemoteStorage";
24
+ export { mergeRemoteStorageConfig } from "./storage/configMerger";
20
25
 
21
26
  // 工具函数
22
27
  export { validateScheme, validateSchemeName, validateSchemeDescription, checkDuplicateName, generateUniqueName } from "./utils/validator";
@@ -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,28 @@
1
+ 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); }
2
+ 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; }
3
+ 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; }
4
+ 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; }
5
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
6
+ 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); }
7
+ /**
8
+ * 合并全局配置和局部配置
9
+ * 局部配置优先级高于全局配置
10
+ *
11
+ * @param globalConfig 全局配置(来自 Context)
12
+ * @param localConfig 局部配置(直接传入的配置)
13
+ * @returns 合并后的配置
14
+ */
15
+ export function mergeRemoteStorageConfig(globalConfig, localConfig) {
16
+ var _localConfig$getToken, _localConfig$getUserI, _localConfig$onCacheI;
17
+ if (!globalConfig) {
18
+ return localConfig;
19
+ }
20
+
21
+ // 深度合并配置,局部配置覆盖全局配置
22
+ return _objectSpread(_objectSpread(_objectSpread({}, globalConfig), localConfig), {}, {
23
+ // 特殊处理函数类型,优先使用局部配置
24
+ getToken: (_localConfig$getToken = localConfig.getToken) !== null && _localConfig$getToken !== void 0 ? _localConfig$getToken : globalConfig.getToken,
25
+ getUserId: (_localConfig$getUserI = localConfig.getUserId) !== null && _localConfig$getUserI !== void 0 ? _localConfig$getUserI : globalConfig.getUserId,
26
+ onCacheInvalidate: (_localConfig$onCacheI = localConfig.onCacheInvalidate) !== null && _localConfig$onCacheI !== void 0 ? _localConfig$onCacheI : globalConfig.onCacheInvalidate
27
+ });
28
+ }
@@ -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;
@@ -5,24 +5,39 @@ function _asyncToGenerator(fn) { return function () { var self = this, args = ar
5
5
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
6
6
  function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
7
7
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
8
+ 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; }
8
9
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : String(i); }
9
10
  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); }
10
11
  import { STORAGE_PREFIX, CURRENT_SCHEME_SUFFIX, LEGACY_STORAGE_PREFIX, STORAGE_MAX_SIZE } from "../constants";
12
+
13
+ /**
14
+ * LocalStorage 配置
15
+ */
16
+
11
17
  /**
12
18
  * LocalStorage 存储适配器实现
13
- * 默认的方案存储方式,支持自动迁移旧数据
19
+ * 默认的方案存储方式,支持自动迁移旧数据和用户隔离
14
20
  */
15
21
  export var LocalStorageAdapter = /*#__PURE__*/function () {
16
22
  function LocalStorageAdapter() {
23
+ var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
17
24
  _classCallCheck(this, LocalStorageAdapter);
25
+ _defineProperty(this, "config", void 0);
26
+ this.config = config;
18
27
  }
28
+
29
+ /**
30
+ * 生成存储键名
31
+ * 如果配置了 getUserId,则键名会包含用户标识
32
+ */
19
33
  _createClass(LocalStorageAdapter, [{
20
34
  key: "getStorageKey",
21
- value:
22
- /**
23
- * 生成存储键名
24
- */
25
- function getStorageKey(gridId) {
35
+ value: function getStorageKey(gridId) {
36
+ var _this$config$getUserI, _this$config;
37
+ var userId = (_this$config$getUserI = (_this$config = this.config).getUserId) === null || _this$config$getUserI === void 0 ? void 0 : _this$config$getUserI.call(_this$config);
38
+ if (userId) {
39
+ return "".concat(STORAGE_PREFIX, "-").concat(userId, "-").concat(gridId);
40
+ }
26
41
  return "".concat(STORAGE_PREFIX, "-").concat(gridId);
27
42
  }
28
43
 
@@ -264,10 +279,16 @@ export var LocalStorageAdapter = /*#__PURE__*/function () {
264
279
 
265
280
  /**
266
281
  * 生成当前方案ID存储键名
282
+ * 如果配置了 getUserId,则键名会包含用户标识
267
283
  */
268
284
  }, {
269
285
  key: "getCurrentSchemeKey",
270
286
  value: function getCurrentSchemeKey(gridId) {
287
+ var _this$config$getUserI2, _this$config2;
288
+ var userId = (_this$config$getUserI2 = (_this$config2 = this.config).getUserId) === null || _this$config$getUserI2 === void 0 ? void 0 : _this$config$getUserI2.call(_this$config2);
289
+ if (userId) {
290
+ return "".concat(STORAGE_PREFIX, "-").concat(userId, "-").concat(gridId).concat(CURRENT_SCHEME_SUFFIX);
291
+ }
271
292
  return "".concat(STORAGE_PREFIX, "-").concat(gridId).concat(CURRENT_SCHEME_SUFFIX);
272
293
  }
273
294
 
@@ -344,6 +365,7 @@ export var LocalStorageAdapter = /*#__PURE__*/function () {
344
365
  }();
345
366
 
346
367
  /**
347
- * 导出默认实例
368
+ * 导出默认实例(不带用户隔离)
369
+ * 如需用户隔离,请创建新实例并传入 getUserId 配置
348
370
  */
349
371
  export var defaultStorageAdapter = new LocalStorageAdapter();