@nokecy/qc-ui 1.1.2 → 1.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/ag-grid-plus/ag-gridPlus.js +9 -6
- package/dist/cjs/ag-grid-plus/setting/ColumnSetting.js +16 -4
- package/dist/cjs/ag-grid-plus/setting/QuerySchemeManager.js +43 -40
- package/dist/cjs/ag-grid-plus/setting/columnGroupUtils.js +3 -0
- package/dist/cjs/ag-grid-plus/shared/storage/backendApiAdapter.js +8 -24
- package/dist/cjs/ag-grid-plus/shared/storage/schemeStorageAdapter.d.ts +20 -6
- package/dist/cjs/ag-grid-plus/shared/utils/schemeDataMigration.d.ts +27 -0
- package/dist/cjs/ag-grid-plus/shared/utils/schemeDataMigration.js +63 -0
- package/dist/cjs/draggableModal/index.js +0 -1
- package/dist/esm/ag-grid-plus/ag-gridPlus.js +9 -6
- package/dist/esm/ag-grid-plus/setting/ColumnSetting.js +16 -4
- package/dist/esm/ag-grid-plus/setting/QuerySchemeManager.js +43 -40
- package/dist/esm/ag-grid-plus/setting/columnGroupUtils.js +3 -0
- package/dist/esm/ag-grid-plus/shared/storage/backendApiAdapter.js +8 -24
- package/dist/esm/ag-grid-plus/shared/storage/schemeStorageAdapter.d.ts +20 -6
- package/dist/esm/ag-grid-plus/shared/utils/schemeDataMigration.d.ts +27 -0
- package/dist/esm/ag-grid-plus/shared/utils/schemeDataMigration.js +54 -0
- package/dist/esm/draggableModal/index.js +0 -1
- package/dist/umd/qc-ui.min.js +1 -1
- package/package.json +1 -1
|
@@ -27,6 +27,7 @@ import { HTML5Backend } from 'react-dnd-html5-backend';
|
|
|
27
27
|
import { useGridSchemes } from "../context/useSchemeManager";
|
|
28
28
|
import { GridPlusContext } from "../context/gridContext";
|
|
29
29
|
import { v4 as uuidv4 } from 'uuid';
|
|
30
|
+
import { extractItemsOrder, extractHiddenFields, buildQueryConfig } from "../shared/utils/schemeDataMigration";
|
|
30
31
|
var DRAG_TYPE = 'QUERY_ITEM';
|
|
31
32
|
/**
|
|
32
33
|
* 可拖拽的查询项组件
|
|
@@ -186,8 +187,8 @@ var QuerySchemeManager = function QuerySchemeManager(_ref2) {
|
|
|
186
187
|
setEditingOrder(defaultOrder);
|
|
187
188
|
}
|
|
188
189
|
|
|
189
|
-
// 初始化隐藏字段
|
|
190
|
-
setHiddenFields(
|
|
190
|
+
// 初始化隐藏字段 - 使用新格式提取器
|
|
191
|
+
setHiddenFields(currentScheme ? extractHiddenFields(currentScheme) : []);
|
|
191
192
|
}
|
|
192
193
|
}, [visible, currentQueryOrder, queryFormItems, currentScheme]);
|
|
193
194
|
|
|
@@ -235,68 +236,67 @@ var QuerySchemeManager = function QuerySchemeManager(_ref2) {
|
|
|
235
236
|
* 应用当前顺序和隐藏设置
|
|
236
237
|
*/
|
|
237
238
|
var handleApplyOrder = useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
238
|
-
var newScheme;
|
|
239
|
+
var queryConfig, newScheme;
|
|
239
240
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
240
241
|
while (1) switch (_context.prev = _context.next) {
|
|
241
242
|
case 0:
|
|
242
243
|
_context.prev = 0;
|
|
244
|
+
// 构建新格式的配置
|
|
245
|
+
queryConfig = buildQueryConfig(editingOrder, hiddenFields); // 如果有当前方案,更新方案
|
|
243
246
|
if (!currentScheme) {
|
|
244
|
-
_context.next =
|
|
247
|
+
_context.next = 8;
|
|
245
248
|
break;
|
|
246
249
|
}
|
|
247
|
-
_context.next =
|
|
250
|
+
_context.next = 5;
|
|
248
251
|
return saveQueryScheme === null || saveQueryScheme === void 0 ? void 0 : saveQueryScheme(gridKey, _objectSpread(_objectSpread({}, currentScheme), {}, {
|
|
249
|
-
|
|
250
|
-
hiddenFields: hiddenFields,
|
|
252
|
+
queryConfig: queryConfig,
|
|
251
253
|
updatedAt: Date.now()
|
|
252
254
|
}));
|
|
253
|
-
case
|
|
255
|
+
case 5:
|
|
254
256
|
message.success('已应用新配置');
|
|
255
|
-
_context.next =
|
|
257
|
+
_context.next = 14;
|
|
256
258
|
break;
|
|
257
|
-
case
|
|
259
|
+
case 8:
|
|
258
260
|
// 创建新方案
|
|
259
261
|
newScheme = {
|
|
260
262
|
id: uuidv4(),
|
|
261
263
|
name: '默认方案',
|
|
262
264
|
description: '自动创建的默认查询方案',
|
|
263
|
-
|
|
264
|
-
hiddenFields: hiddenFields,
|
|
265
|
-
formValues: {},
|
|
265
|
+
queryConfig: queryConfig,
|
|
266
266
|
isDefault: true,
|
|
267
267
|
isSystem: false,
|
|
268
268
|
createdAt: Date.now(),
|
|
269
269
|
updatedAt: Date.now()
|
|
270
270
|
};
|
|
271
|
-
_context.next =
|
|
271
|
+
_context.next = 11;
|
|
272
272
|
return saveQueryScheme === null || saveQueryScheme === void 0 ? void 0 : saveQueryScheme(gridKey, newScheme);
|
|
273
|
-
case
|
|
274
|
-
_context.next =
|
|
273
|
+
case 11:
|
|
274
|
+
_context.next = 13;
|
|
275
275
|
return setCurrentQueryScheme === null || setCurrentQueryScheme === void 0 ? void 0 : setCurrentQueryScheme(gridKey, newScheme.id);
|
|
276
|
-
case 12:
|
|
277
|
-
message.success('已自动创建并应用默认方案');
|
|
278
276
|
case 13:
|
|
277
|
+
message.success('已自动创建并应用默认方案');
|
|
278
|
+
case 14:
|
|
279
279
|
// 应用顺序到表单
|
|
280
280
|
updateQueryOrder === null || updateQueryOrder === void 0 || updateQueryOrder(editingOrder);
|
|
281
281
|
onClose();
|
|
282
|
-
_context.next =
|
|
282
|
+
_context.next = 21;
|
|
283
283
|
break;
|
|
284
|
-
case
|
|
285
|
-
_context.prev =
|
|
284
|
+
case 18:
|
|
285
|
+
_context.prev = 18;
|
|
286
286
|
_context.t0 = _context["catch"](0);
|
|
287
287
|
message.error(_context.t0.message || '应用失败');
|
|
288
|
-
case
|
|
288
|
+
case 21:
|
|
289
289
|
case "end":
|
|
290
290
|
return _context.stop();
|
|
291
291
|
}
|
|
292
|
-
}, _callee, null, [[0,
|
|
292
|
+
}, _callee, null, [[0, 18]]);
|
|
293
293
|
})), [editingOrder, hiddenFields, currentScheme, saveQueryScheme, gridKey, updateQueryOrder, onClose, setCurrentQueryScheme]);
|
|
294
294
|
|
|
295
295
|
/**
|
|
296
296
|
* 保存为新方案
|
|
297
297
|
*/
|
|
298
298
|
var handleSaveAsNew = useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
|
|
299
|
-
var newScheme;
|
|
299
|
+
var queryConfig, newScheme;
|
|
300
300
|
return _regeneratorRuntime().wrap(function _callee2$(_context2) {
|
|
301
301
|
while (1) switch (_context2.prev = _context2.next) {
|
|
302
302
|
case 0:
|
|
@@ -308,34 +308,34 @@ var QuerySchemeManager = function QuerySchemeManager(_ref2) {
|
|
|
308
308
|
return _context2.abrupt("return");
|
|
309
309
|
case 3:
|
|
310
310
|
_context2.prev = 3;
|
|
311
|
+
// 构建新格式的配置
|
|
312
|
+
queryConfig = buildQueryConfig(editingOrder, hiddenFields);
|
|
311
313
|
newScheme = {
|
|
312
314
|
id: uuidv4(),
|
|
313
315
|
name: schemeName.trim(),
|
|
314
316
|
description: '',
|
|
315
|
-
|
|
316
|
-
hiddenFields: hiddenFields,
|
|
317
|
-
formValues: {},
|
|
317
|
+
queryConfig: queryConfig,
|
|
318
318
|
isDefault: false,
|
|
319
319
|
isSystem: false,
|
|
320
320
|
createdAt: Date.now(),
|
|
321
321
|
updatedAt: Date.now()
|
|
322
322
|
};
|
|
323
|
-
_context2.next =
|
|
323
|
+
_context2.next = 8;
|
|
324
324
|
return saveQueryScheme === null || saveQueryScheme === void 0 ? void 0 : saveQueryScheme(gridKey, newScheme);
|
|
325
|
-
case
|
|
325
|
+
case 8:
|
|
326
326
|
message.success('保存成功');
|
|
327
327
|
setSchemeName('');
|
|
328
|
-
_context2.next =
|
|
328
|
+
_context2.next = 15;
|
|
329
329
|
break;
|
|
330
|
-
case
|
|
331
|
-
_context2.prev =
|
|
330
|
+
case 12:
|
|
331
|
+
_context2.prev = 12;
|
|
332
332
|
_context2.t0 = _context2["catch"](3);
|
|
333
333
|
message.error(_context2.t0.message || '保存失败');
|
|
334
|
-
case
|
|
334
|
+
case 15:
|
|
335
335
|
case "end":
|
|
336
336
|
return _context2.stop();
|
|
337
337
|
}
|
|
338
|
-
}, _callee2, null, [[3,
|
|
338
|
+
}, _callee2, null, [[3, 12]]);
|
|
339
339
|
})), [schemeName, editingOrder, hiddenFields, saveQueryScheme, gridKey]);
|
|
340
340
|
|
|
341
341
|
/**
|
|
@@ -514,7 +514,7 @@ var QuerySchemeManager = function QuerySchemeManager(_ref2) {
|
|
|
514
514
|
*/
|
|
515
515
|
var handleApply = useCallback( /*#__PURE__*/function () {
|
|
516
516
|
var _ref8 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee6(schemeId) {
|
|
517
|
-
var scheme;
|
|
517
|
+
var scheme, itemsOrder;
|
|
518
518
|
return _regeneratorRuntime().wrap(function _callee6$(_context6) {
|
|
519
519
|
while (1) switch (_context6.prev = _context6.next) {
|
|
520
520
|
case 0:
|
|
@@ -525,9 +525,13 @@ var QuerySchemeManager = function QuerySchemeManager(_ref2) {
|
|
|
525
525
|
scheme = schemes.find(function (s) {
|
|
526
526
|
return s.id === schemeId;
|
|
527
527
|
});
|
|
528
|
-
if (scheme
|
|
529
|
-
|
|
530
|
-
|
|
528
|
+
if (scheme) {
|
|
529
|
+
// 使用新格式提取器获取顺序
|
|
530
|
+
itemsOrder = extractItemsOrder(scheme);
|
|
531
|
+
if (itemsOrder.length > 0) {
|
|
532
|
+
updateQueryOrder === null || updateQueryOrder === void 0 || updateQueryOrder(itemsOrder);
|
|
533
|
+
message.success('方案已应用');
|
|
534
|
+
}
|
|
531
535
|
}
|
|
532
536
|
_context6.next = 10;
|
|
533
537
|
break;
|
|
@@ -637,7 +641,6 @@ var QuerySchemeManager = function QuerySchemeManager(_ref2) {
|
|
|
637
641
|
children: /*#__PURE__*/React.createElement(List, {
|
|
638
642
|
dataSource: schemes,
|
|
639
643
|
renderItem: function renderItem(scheme) {
|
|
640
|
-
var _scheme$itemsOrder;
|
|
641
644
|
return /*#__PURE__*/React.createElement(List.Item, {
|
|
642
645
|
actions: [/*#__PURE__*/React.createElement(Button, {
|
|
643
646
|
key: "apply",
|
|
@@ -725,7 +728,7 @@ var QuerySchemeManager = function QuerySchemeManager(_ref2) {
|
|
|
725
728
|
}, "\u5F53\u524D"), scheme.isSystem && /*#__PURE__*/React.createElement(Tag, {
|
|
726
729
|
color: "default"
|
|
727
730
|
}, "\u7CFB\u7EDF")),
|
|
728
|
-
description: scheme.description || "".concat((
|
|
731
|
+
description: scheme.description || "".concat(extractItemsOrder(scheme).length || 0, " \u4E2A\u67E5\u8BE2\u9879")
|
|
729
732
|
}));
|
|
730
733
|
}
|
|
731
734
|
})
|
|
@@ -306,6 +306,9 @@ export function flatConfigToColumnState(flatConfig) {
|
|
|
306
306
|
return flatConfig.filter(function (item) {
|
|
307
307
|
return item.type === 'column';
|
|
308
308
|
}) // 只处理列节点,分组不在 columnState 中
|
|
309
|
+
.filter(function (item) {
|
|
310
|
+
return item.field;
|
|
311
|
+
}) // 【修复】过滤掉没有 field 的列,防止 colId 为 undefined
|
|
309
312
|
.sort(function (a, b) {
|
|
310
313
|
return a.order - b.order;
|
|
311
314
|
}) // 按 order 字段排序
|
|
@@ -211,19 +211,13 @@ export var BackendApiSchemeAdapter = /*#__PURE__*/function () {
|
|
|
211
211
|
});
|
|
212
212
|
}
|
|
213
213
|
|
|
214
|
-
//
|
|
214
|
+
// 将所有查询方案的 queryConfig 字段从字符串解析为对象
|
|
215
215
|
if (response.querySchemes) {
|
|
216
216
|
Object.keys(response.querySchemes).forEach(function (gridId) {
|
|
217
217
|
response.querySchemes[gridId] = response.querySchemes[gridId].map(function (scheme) {
|
|
218
218
|
var parsedScheme = _objectSpread({}, scheme);
|
|
219
|
-
if (typeof parsedScheme.
|
|
220
|
-
parsedScheme.
|
|
221
|
-
}
|
|
222
|
-
if (typeof parsedScheme.hiddenFields === 'string') {
|
|
223
|
-
parsedScheme.hiddenFields = JSON.parse(parsedScheme.hiddenFields);
|
|
224
|
-
}
|
|
225
|
-
if (typeof parsedScheme.formValues === 'string') {
|
|
226
|
-
parsedScheme.formValues = JSON.parse(parsedScheme.formValues);
|
|
219
|
+
if (typeof parsedScheme.queryConfig === 'string') {
|
|
220
|
+
parsedScheme.queryConfig = JSON.parse(parsedScheme.queryConfig);
|
|
227
221
|
}
|
|
228
222
|
return parsedScheme;
|
|
229
223
|
});
|
|
@@ -362,11 +356,9 @@ export var BackendApiSchemeAdapter = /*#__PURE__*/function () {
|
|
|
362
356
|
_context5.prev = 0;
|
|
363
357
|
this.log("\u4FDD\u5B58\u67E5\u8BE2\u65B9\u6848: ".concat(gridId, " - ").concat(scheme.name));
|
|
364
358
|
|
|
365
|
-
//
|
|
359
|
+
// 将 queryConfig 对象字段转换为 JSON 字符串
|
|
366
360
|
schemeForBackend = _objectSpread(_objectSpread({}, scheme), {}, {
|
|
367
|
-
|
|
368
|
-
hiddenFields: scheme.hiddenFields ? JSON.stringify(scheme.hiddenFields) : undefined,
|
|
369
|
-
formValues: scheme.formValues ? JSON.stringify(scheme.formValues) : undefined
|
|
361
|
+
queryConfig: scheme.queryConfig ? JSON.stringify(scheme.queryConfig) : undefined
|
|
370
362
|
});
|
|
371
363
|
url = "".concat(this.config.apiBaseUrl, "/api/extra-object/table-scheme/save-query-scheme");
|
|
372
364
|
_context5.next = 6;
|
|
@@ -385,18 +377,10 @@ export var BackendApiSchemeAdapter = /*#__PURE__*/function () {
|
|
|
385
377
|
}
|
|
386
378
|
throw new Error(response.message || '保存失败');
|
|
387
379
|
case 9:
|
|
388
|
-
//
|
|
380
|
+
// 将返回的 queryConfig 字符串字段解析为对象
|
|
389
381
|
savedScheme = response.scheme;
|
|
390
|
-
if (savedScheme) {
|
|
391
|
-
|
|
392
|
-
savedScheme.itemsOrder = JSON.parse(savedScheme.itemsOrder);
|
|
393
|
-
}
|
|
394
|
-
if (typeof savedScheme.hiddenFields === 'string') {
|
|
395
|
-
savedScheme.hiddenFields = JSON.parse(savedScheme.hiddenFields);
|
|
396
|
-
}
|
|
397
|
-
if (typeof savedScheme.formValues === 'string') {
|
|
398
|
-
savedScheme.formValues = JSON.parse(savedScheme.formValues);
|
|
399
|
-
}
|
|
382
|
+
if (savedScheme && typeof savedScheme.queryConfig === 'string') {
|
|
383
|
+
savedScheme.queryConfig = JSON.parse(savedScheme.queryConfig);
|
|
400
384
|
}
|
|
401
385
|
this.log('保存成功', savedScheme);
|
|
402
386
|
return _context5.abrupt("return", savedScheme);
|
|
@@ -1,4 +1,22 @@
|
|
|
1
1
|
import type { FlatColumnItem } from '../../setting/columnGroupTypes';
|
|
2
|
+
/**
|
|
3
|
+
* 查询项配置
|
|
4
|
+
*/
|
|
5
|
+
export interface QueryItem {
|
|
6
|
+
/** 字段名 */
|
|
7
|
+
field: string;
|
|
8
|
+
/** 是否隐藏 */
|
|
9
|
+
hidden?: boolean;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* 查询配置结构
|
|
13
|
+
*/
|
|
14
|
+
export interface QueryConfig {
|
|
15
|
+
/** 查询项配置列表 (按顺序排列) */
|
|
16
|
+
items: QueryItem[];
|
|
17
|
+
/** 查询表单默认值 */
|
|
18
|
+
defaultValues?: Record<string, any>;
|
|
19
|
+
}
|
|
2
20
|
/**
|
|
3
21
|
* 查询方案
|
|
4
22
|
*/
|
|
@@ -9,12 +27,8 @@ export interface QueryScheme {
|
|
|
9
27
|
name: string;
|
|
10
28
|
/** 方案描述 */
|
|
11
29
|
description?: string;
|
|
12
|
-
/**
|
|
13
|
-
|
|
14
|
-
/** 隐藏的字段列表 */
|
|
15
|
-
hiddenFields?: string[];
|
|
16
|
-
/** 查询表单值 */
|
|
17
|
-
formValues?: Record<string, any>;
|
|
30
|
+
/** 查询配置 */
|
|
31
|
+
queryConfig: QueryConfig;
|
|
18
32
|
/** 是否为默认方案 */
|
|
19
33
|
isDefault: boolean;
|
|
20
34
|
/** 是否为系统方案(不可删除) */
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { QueryScheme, QueryConfig } from '../storage/schemeStorageAdapter';
|
|
2
|
+
/**
|
|
3
|
+
* 从查询方案提取字段顺序数组
|
|
4
|
+
* @param scheme 查询方案对象
|
|
5
|
+
* @returns 字段顺序数组
|
|
6
|
+
*/
|
|
7
|
+
export declare function extractItemsOrder(scheme: QueryScheme): string[];
|
|
8
|
+
/**
|
|
9
|
+
* 从查询方案提取隐藏字段数组
|
|
10
|
+
* @param scheme 查询方案对象
|
|
11
|
+
* @returns 隐藏字段数组
|
|
12
|
+
*/
|
|
13
|
+
export declare function extractHiddenFields(scheme: QueryScheme): string[];
|
|
14
|
+
/**
|
|
15
|
+
* 从查询方案提取表单默认值
|
|
16
|
+
* @param scheme 查询方案对象
|
|
17
|
+
* @returns 表单默认值对象
|
|
18
|
+
*/
|
|
19
|
+
export declare function extractFormValues(scheme: QueryScheme): Record<string, any>;
|
|
20
|
+
/**
|
|
21
|
+
* 构建 QueryConfig 对象
|
|
22
|
+
* @param itemsOrder 字段顺序数组
|
|
23
|
+
* @param hiddenFields 隐藏字段数组
|
|
24
|
+
* @param formValues 表单默认值
|
|
25
|
+
* @returns QueryConfig 对象
|
|
26
|
+
*/
|
|
27
|
+
export declare function buildQueryConfig(itemsOrder: string[], hiddenFields?: string[], formValues?: Record<string, any>): QueryConfig;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 从查询方案提取字段顺序数组
|
|
3
|
+
* @param scheme 查询方案对象
|
|
4
|
+
* @returns 字段顺序数组
|
|
5
|
+
*/
|
|
6
|
+
export function extractItemsOrder(scheme) {
|
|
7
|
+
return scheme.queryConfig.items.map(function (item) {
|
|
8
|
+
return item.field;
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* 从查询方案提取隐藏字段数组
|
|
14
|
+
* @param scheme 查询方案对象
|
|
15
|
+
* @returns 隐藏字段数组
|
|
16
|
+
*/
|
|
17
|
+
export function extractHiddenFields(scheme) {
|
|
18
|
+
return scheme.queryConfig.items.filter(function (item) {
|
|
19
|
+
return item.hidden;
|
|
20
|
+
}).map(function (item) {
|
|
21
|
+
return item.field;
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* 从查询方案提取表单默认值
|
|
27
|
+
* @param scheme 查询方案对象
|
|
28
|
+
* @returns 表单默认值对象
|
|
29
|
+
*/
|
|
30
|
+
export function extractFormValues(scheme) {
|
|
31
|
+
return scheme.queryConfig.defaultValues || {};
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* 构建 QueryConfig 对象
|
|
36
|
+
* @param itemsOrder 字段顺序数组
|
|
37
|
+
* @param hiddenFields 隐藏字段数组
|
|
38
|
+
* @param formValues 表单默认值
|
|
39
|
+
* @returns QueryConfig 对象
|
|
40
|
+
*/
|
|
41
|
+
export function buildQueryConfig(itemsOrder) {
|
|
42
|
+
var hiddenFields = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
|
|
43
|
+
var formValues = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
44
|
+
var items = itemsOrder.map(function (field) {
|
|
45
|
+
return {
|
|
46
|
+
field: field,
|
|
47
|
+
hidden: hiddenFields.includes(field)
|
|
48
|
+
};
|
|
49
|
+
});
|
|
50
|
+
return {
|
|
51
|
+
items: items,
|
|
52
|
+
defaultValues: Object.keys(formValues).length > 0 ? formValues : undefined
|
|
53
|
+
};
|
|
54
|
+
}
|