@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.
Files changed (26) hide show
  1. package/dist/cjs/ag-grid-plus/ag-gridPlus.js +128 -8
  2. package/dist/cjs/ag-grid-plus/context/useSchemeDataFlow.d.ts +2 -1
  3. package/dist/cjs/ag-grid-plus/context/useSchemeDataFlow.js +6 -5
  4. package/dist/cjs/ag-grid-plus/queryForm/AdvancedQueryBuilder.d.ts +10 -0
  5. package/dist/cjs/ag-grid-plus/queryForm/AdvancedQueryBuilder.js +547 -0
  6. package/dist/cjs/ag-grid-plus/queryForm/index.js +3 -6
  7. package/dist/cjs/ag-grid-plus/setting/columnGroupUtils.d.ts +7 -2
  8. package/dist/cjs/ag-grid-plus/setting/columnGroupUtils.js +196 -4
  9. package/dist/cjs/ag-grid-plus/shared/storage/schemeStorageAdapter.d.ts +36 -0
  10. package/dist/cjs/ag-grid-plus/utils.d.ts +6 -0
  11. package/dist/cjs/ag-grid-plus/utils.js +86 -1
  12. package/dist/cjs/formDesigner/FormDesigner.js +4 -2
  13. package/dist/esm/ag-grid-plus/ag-gridPlus.js +131 -11
  14. package/dist/esm/ag-grid-plus/context/useSchemeDataFlow.d.ts +2 -1
  15. package/dist/esm/ag-grid-plus/context/useSchemeDataFlow.js +6 -5
  16. package/dist/esm/ag-grid-plus/queryForm/AdvancedQueryBuilder.d.ts +10 -0
  17. package/dist/esm/ag-grid-plus/queryForm/AdvancedQueryBuilder.js +541 -0
  18. package/dist/esm/ag-grid-plus/queryForm/index.js +3 -6
  19. package/dist/esm/ag-grid-plus/setting/columnGroupUtils.d.ts +7 -2
  20. package/dist/esm/ag-grid-plus/setting/columnGroupUtils.js +196 -4
  21. package/dist/esm/ag-grid-plus/shared/storage/schemeStorageAdapter.d.ts +36 -0
  22. package/dist/esm/ag-grid-plus/utils.d.ts +6 -0
  23. package/dist/esm/ag-grid-plus/utils.js +85 -0
  24. package/dist/esm/formDesigner/FormDesigner.js +4 -2
  25. package/dist/umd/qc-ui.min.js +1 -1
  26. 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
- var filter = (0, _utils.convertFilterModel)(queryFilter, allColDefsRef.current);
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
- setPagination(function (prev) {
1194
- if (prev.current !== 1) {
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
- onRequest && onRequest(formValues);
1200
- return prev;
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;