@nokecy/qc-ui 1.1.21 → 1.1.23
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 +128 -8
- package/dist/cjs/ag-grid-plus/context/useSchemeDataFlow.d.ts +2 -1
- package/dist/cjs/ag-grid-plus/context/useSchemeDataFlow.js +6 -5
- package/dist/cjs/ag-grid-plus/queryForm/AdvancedQueryBuilder.d.ts +10 -0
- package/dist/cjs/ag-grid-plus/queryForm/AdvancedQueryBuilder.js +547 -0
- package/dist/cjs/ag-grid-plus/queryForm/index.js +3 -6
- package/dist/cjs/ag-grid-plus/setting/columnGroupUtils.d.ts +7 -2
- package/dist/cjs/ag-grid-plus/setting/columnGroupUtils.js +196 -4
- package/dist/cjs/ag-grid-plus/shared/storage/schemeStorageAdapter.d.ts +36 -0
- package/dist/cjs/ag-grid-plus/utils.d.ts +6 -0
- package/dist/cjs/ag-grid-plus/utils.js +86 -1
- package/dist/cjs/formDesigner/FormDesigner.js +4 -2
- package/dist/esm/ag-grid-plus/ag-gridPlus.js +131 -11
- package/dist/esm/ag-grid-plus/context/useSchemeDataFlow.d.ts +2 -1
- package/dist/esm/ag-grid-plus/context/useSchemeDataFlow.js +6 -5
- package/dist/esm/ag-grid-plus/queryForm/AdvancedQueryBuilder.d.ts +10 -0
- package/dist/esm/ag-grid-plus/queryForm/AdvancedQueryBuilder.js +541 -0
- package/dist/esm/ag-grid-plus/queryForm/index.js +3 -6
- package/dist/esm/ag-grid-plus/setting/columnGroupUtils.d.ts +7 -2
- package/dist/esm/ag-grid-plus/setting/columnGroupUtils.js +196 -4
- package/dist/esm/ag-grid-plus/shared/storage/schemeStorageAdapter.d.ts +36 -0
- package/dist/esm/ag-grid-plus/utils.d.ts +6 -0
- package/dist/esm/ag-grid-plus/utils.js +85 -0
- package/dist/esm/formDesigner/FormDesigner.js +4 -2
- package/dist/umd/qc-ui.min.js +1 -1
- package/package.json +2 -2
|
@@ -19,6 +19,8 @@ var _toolBar = _interopRequireDefault(require("./toolBar"));
|
|
|
19
19
|
var _settingItem = _interopRequireDefault(require("./settingItem"));
|
|
20
20
|
var _icons = require("@ant-design/icons");
|
|
21
21
|
var _utils = require("./utils");
|
|
22
|
+
var _AdvancedQueryBuilder = _interopRequireDefault(require("./queryForm/AdvancedQueryBuilder"));
|
|
23
|
+
var _uuid = require("uuid");
|
|
22
24
|
var _setting = _interopRequireDefault(require("./setting"));
|
|
23
25
|
var _ = require(".");
|
|
24
26
|
var _customGroupCellRenderer = _interopRequireDefault(require("./_utils/customGroupCellRenderer"));
|
|
@@ -226,6 +228,23 @@ function AgGridPlus(props) {
|
|
|
226
228
|
queryItemsOrder = _useState18[0],
|
|
227
229
|
setQueryItemsOrder = _useState18[1];
|
|
228
230
|
|
|
231
|
+
// 高级查询状态
|
|
232
|
+
var _useState19 = (0, _react.useState)(false),
|
|
233
|
+
_useState20 = _slicedToArray(_useState19, 2),
|
|
234
|
+
advancedPopoverOpen = _useState20[0],
|
|
235
|
+
setAdvancedPopoverOpen = _useState20[1];
|
|
236
|
+
var createEmptyRuleGroup = function createEmptyRuleGroup() {
|
|
237
|
+
return {
|
|
238
|
+
id: (0, _uuid.v4)(),
|
|
239
|
+
logic: 'AND',
|
|
240
|
+
children: []
|
|
241
|
+
};
|
|
242
|
+
};
|
|
243
|
+
var _useState21 = (0, _react.useState)(createEmptyRuleGroup),
|
|
244
|
+
_useState22 = _slicedToArray(_useState21, 2),
|
|
245
|
+
advancedQueryRules = _useState22[0],
|
|
246
|
+
setAdvancedQueryRules = _useState22[1];
|
|
247
|
+
|
|
229
248
|
/**
|
|
230
249
|
* 【P1 架构优化】使用单向数据流架构
|
|
231
250
|
*
|
|
@@ -684,7 +703,19 @@ function AgGridPlus(props) {
|
|
|
684
703
|
pagination: pagination
|
|
685
704
|
});
|
|
686
705
|
try {
|
|
687
|
-
|
|
706
|
+
// 处理高级查询模式
|
|
707
|
+
var filter;
|
|
708
|
+
if (queryFilter.__advancedMode__ && queryFilter.__rules__) {
|
|
709
|
+
// 高级模式:使用规则转换
|
|
710
|
+
filter = (0, _utils.convertRulesToFilterString)(queryFilter.__rules__, allColDefsRef.current);
|
|
711
|
+
_logger.logger.debug('高级模式 Filter', {
|
|
712
|
+
rules: queryFilter.__rules__,
|
|
713
|
+
filter: filter
|
|
714
|
+
});
|
|
715
|
+
} else {
|
|
716
|
+
// 简单模式:使用原有的转换逻辑
|
|
717
|
+
filter = (0, _utils.convertFilterModel)(queryFilter, allColDefsRef.current);
|
|
718
|
+
}
|
|
688
719
|
var params = _objectSpread(_objectSpread({
|
|
689
720
|
filter: filter
|
|
690
721
|
}, stableGridParams), {}, {
|
|
@@ -1189,16 +1220,33 @@ function AgGridPlus(props) {
|
|
|
1189
1220
|
defaultExpand: defaultSearchExpand,
|
|
1190
1221
|
gridApi: apiRef.current,
|
|
1191
1222
|
onQuery: function onQuery(formValues) {
|
|
1223
|
+
// 优先使用高级搜索:如果存在高级搜索条件,忽略简单查询
|
|
1224
|
+
if (advancedQueryRules.children.length > 0) {
|
|
1225
|
+
var filter = {
|
|
1226
|
+
__advancedMode__: true,
|
|
1227
|
+
__rules__: advancedQueryRules
|
|
1228
|
+
};
|
|
1229
|
+
setQueryFilter(filter);
|
|
1230
|
+
if (pagination.current !== 1) {
|
|
1231
|
+
setPagination(function (prev) {
|
|
1232
|
+
return _objectSpread(_objectSpread({}, prev), {}, {
|
|
1233
|
+
current: 1
|
|
1234
|
+
});
|
|
1235
|
+
});
|
|
1236
|
+
}
|
|
1237
|
+
onRequest && onRequest(filter);
|
|
1238
|
+
return;
|
|
1239
|
+
}
|
|
1192
1240
|
setQueryFilter(_objectSpread({}, formValues));
|
|
1193
|
-
|
|
1194
|
-
|
|
1241
|
+
// 始终使用传入的 formValues 发起请求
|
|
1242
|
+
if (pagination.current !== 1) {
|
|
1243
|
+
setPagination(function (prev) {
|
|
1195
1244
|
return _objectSpread(_objectSpread({}, prev), {}, {
|
|
1196
1245
|
current: 1
|
|
1197
1246
|
});
|
|
1198
|
-
}
|
|
1199
|
-
|
|
1200
|
-
|
|
1201
|
-
});
|
|
1247
|
+
});
|
|
1248
|
+
}
|
|
1249
|
+
onRequest && onRequest(formValues);
|
|
1202
1250
|
},
|
|
1203
1251
|
onInit: function onInit(defaultValues) {
|
|
1204
1252
|
setQueryFilter(defaultValues);
|
|
@@ -1236,7 +1284,79 @@ function AgGridPlus(props) {
|
|
|
1236
1284
|
gridKey: gridKey,
|
|
1237
1285
|
gridApi: apiRef.current,
|
|
1238
1286
|
onSaveColumnState: onColumnStateChanged
|
|
1239
|
-
})
|
|
1287
|
+
}),
|
|
1288
|
+
/*#__PURE__*/
|
|
1289
|
+
// 高级搜索(图标风格,位于设置右边)
|
|
1290
|
+
_react.default.createElement(_antd.Popover, {
|
|
1291
|
+
key: "advanced-search-setting",
|
|
1292
|
+
content: /*#__PURE__*/_react.default.createElement("div", {
|
|
1293
|
+
style: {
|
|
1294
|
+
width: 600,
|
|
1295
|
+
maxHeight: 400,
|
|
1296
|
+
overflow: 'auto'
|
|
1297
|
+
}
|
|
1298
|
+
}, /*#__PURE__*/_react.default.createElement(_AdvancedQueryBuilder.default, {
|
|
1299
|
+
rootGroup: advancedQueryRules,
|
|
1300
|
+
onChange: setAdvancedQueryRules,
|
|
1301
|
+
colDefs: allColDefs
|
|
1302
|
+
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
1303
|
+
style: {
|
|
1304
|
+
marginTop: 12,
|
|
1305
|
+
textAlign: 'right',
|
|
1306
|
+
borderTop: '1px solid #f0f0f0',
|
|
1307
|
+
paddingTop: 12
|
|
1308
|
+
}
|
|
1309
|
+
}, /*#__PURE__*/_react.default.createElement(_antd.Button, {
|
|
1310
|
+
size: "small",
|
|
1311
|
+
onClick: function onClick() {
|
|
1312
|
+
setAdvancedQueryRules(createEmptyRuleGroup());
|
|
1313
|
+
setQueryFilter({});
|
|
1314
|
+
onRequest && onRequest({});
|
|
1315
|
+
setAdvancedPopoverOpen(false);
|
|
1316
|
+
},
|
|
1317
|
+
style: {
|
|
1318
|
+
marginRight: 8
|
|
1319
|
+
}
|
|
1320
|
+
}, "\u91CD\u7F6E"), /*#__PURE__*/_react.default.createElement(_antd.Button, {
|
|
1321
|
+
size: "small",
|
|
1322
|
+
type: "primary",
|
|
1323
|
+
onClick: function onClick() {
|
|
1324
|
+
var filter = {
|
|
1325
|
+
__advancedMode__: true,
|
|
1326
|
+
__rules__: advancedQueryRules
|
|
1327
|
+
};
|
|
1328
|
+
setQueryFilter(filter);
|
|
1329
|
+
if (pagination.current !== 1) {
|
|
1330
|
+
setPagination(function (prev) {
|
|
1331
|
+
return _objectSpread(_objectSpread({}, prev), {}, {
|
|
1332
|
+
current: 1
|
|
1333
|
+
});
|
|
1334
|
+
});
|
|
1335
|
+
}
|
|
1336
|
+
onRequest && onRequest(filter);
|
|
1337
|
+
setAdvancedPopoverOpen(false);
|
|
1338
|
+
}
|
|
1339
|
+
}, "\u67E5\u8BE2"))),
|
|
1340
|
+
title: "\u9AD8\u7EA7\u641C\u7D22",
|
|
1341
|
+
trigger: "click",
|
|
1342
|
+
open: advancedPopoverOpen,
|
|
1343
|
+
onOpenChange: setAdvancedPopoverOpen,
|
|
1344
|
+
placement: "bottomRight",
|
|
1345
|
+
overlayStyle: {
|
|
1346
|
+
maxWidth: 'none'
|
|
1347
|
+
}
|
|
1348
|
+
}, /*#__PURE__*/_react.default.createElement(_antd.Badge, {
|
|
1349
|
+
count: advancedQueryRules.children.length,
|
|
1350
|
+
size: "small",
|
|
1351
|
+
offset: [-2, 2]
|
|
1352
|
+
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
1353
|
+
style: {
|
|
1354
|
+
margin: "0 4px",
|
|
1355
|
+
color: advancedQueryRules.children.length > 0 ? '#1890ff' : '#000',
|
|
1356
|
+
fontSize: 16,
|
|
1357
|
+
cursor: "pointer"
|
|
1358
|
+
}
|
|
1359
|
+
}, /*#__PURE__*/_react.default.createElement(_icons.FilterOutlined, null))))]
|
|
1240
1360
|
}), /*#__PURE__*/_react.default.createElement(_agGridReact.AgGridReact, _extends({
|
|
1241
1361
|
theme: _theme.agGridTheme
|
|
1242
1362
|
}, rest, {
|
|
@@ -48,9 +48,10 @@ export declare function useDerivedGridState(currentScheme: ColumnScheme | undefi
|
|
|
48
48
|
* 派生层 - 计算列样式状态(只读派生)
|
|
49
49
|
*
|
|
50
50
|
* @param currentScheme - 当前列方案
|
|
51
|
+
* @param allColDefs - 原始列定义(用于检测新增列)
|
|
51
52
|
* @returns 派生的列状态配置
|
|
52
53
|
*/
|
|
53
|
-
export declare function useDerivedColumnState(currentScheme: ColumnScheme | undefined): any;
|
|
54
|
+
export declare function useDerivedColumnState(currentScheme: ColumnScheme | undefined, allColDefs: ExtendedColDef[]): any;
|
|
54
55
|
/**
|
|
55
56
|
* 统一的方案数据流 Hook(组合版)
|
|
56
57
|
*
|
|
@@ -99,9 +99,10 @@ function useDerivedGridState(currentScheme, allColDefs) {
|
|
|
99
99
|
* 派生层 - 计算列样式状态(只读派生)
|
|
100
100
|
*
|
|
101
101
|
* @param currentScheme - 当前列方案
|
|
102
|
+
* @param allColDefs - 原始列定义(用于检测新增列)
|
|
102
103
|
* @returns 派生的列状态配置
|
|
103
104
|
*/
|
|
104
|
-
function useDerivedColumnState(currentScheme) {
|
|
105
|
+
function useDerivedColumnState(currentScheme, allColDefs) {
|
|
105
106
|
return (0, _react.useMemo)(function () {
|
|
106
107
|
if (!(currentScheme !== null && currentScheme !== void 0 && currentScheme.columnConfig)) {
|
|
107
108
|
return null;
|
|
@@ -110,15 +111,15 @@ function useDerivedColumnState(currentScheme) {
|
|
|
110
111
|
var _require2 = require("../setting/columnGroupUtils"),
|
|
111
112
|
flatConfigToColumnState = _require2.flatConfigToColumnState;
|
|
112
113
|
|
|
113
|
-
//
|
|
114
|
-
var result = flatConfigToColumnState(currentScheme.columnConfig);
|
|
114
|
+
// 转换列状态,传入原始列定义以检测新增列
|
|
115
|
+
var result = flatConfigToColumnState(currentScheme.columnConfig, allColDefs);
|
|
115
116
|
return result;
|
|
116
117
|
} catch (error) {
|
|
117
118
|
console.error('[useDerivedColumnState] 转换失败:', error);
|
|
118
119
|
return null;
|
|
119
120
|
}
|
|
120
121
|
}, [// 使用 scheme.id 作为依赖
|
|
121
|
-
currentScheme === null || currentScheme === void 0 ? void 0 : currentScheme.id]);
|
|
122
|
+
currentScheme === null || currentScheme === void 0 ? void 0 : currentScheme.id, allColDefs]);
|
|
122
123
|
}
|
|
123
124
|
|
|
124
125
|
/**
|
|
@@ -152,7 +153,7 @@ function useSchemeDataFlow(gridKey, allColDefs, schemeData) {
|
|
|
152
153
|
|
|
153
154
|
// 2. 派生层(Derived State)
|
|
154
155
|
var derivedColumnDefs = useDerivedGridState(schemeSource.currentColumnScheme, allColDefs);
|
|
155
|
-
var derivedColumnState = useDerivedColumnState(schemeSource.currentColumnScheme);
|
|
156
|
+
var derivedColumnState = useDerivedColumnState(schemeSource.currentColumnScheme, allColDefs);
|
|
156
157
|
return _objectSpread(_objectSpread({}, schemeSource), {}, {
|
|
157
158
|
// 派生状态(只读)
|
|
158
159
|
derivedColumnDefs: derivedColumnDefs,
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { QueryRuleGroup } from '../shared/storage/schemeStorageAdapter';
|
|
3
|
+
import { ExtendedColDef } from '../types';
|
|
4
|
+
interface AdvancedQueryBuilderProps {
|
|
5
|
+
rootGroup: QueryRuleGroup;
|
|
6
|
+
onChange: (group: QueryRuleGroup) => void;
|
|
7
|
+
colDefs: ExtendedColDef[];
|
|
8
|
+
}
|
|
9
|
+
declare const AdvancedQueryBuilder: React.FC<AdvancedQueryBuilderProps>;
|
|
10
|
+
export default AdvancedQueryBuilder;
|