@nokecy/qc-ui-components 2.0.0-beta.0 → 2.0.0-beta.1

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 (243) hide show
  1. package/dist/cjs/ConfirmPro/index.d.ts +12 -9
  2. package/dist/cjs/ConfirmPro/index.js +11 -34
  3. package/dist/cjs/ag-grid-plus/ag-gridPlus.js +422 -156
  4. package/dist/cjs/ag-grid-plus/context/gridContext.d.ts +12 -1
  5. package/dist/cjs/ag-grid-plus/context/queryFormContext.d.ts +2 -0
  6. package/dist/cjs/ag-grid-plus/context/useSchemeDataFlow.js +8 -0
  7. package/dist/cjs/ag-grid-plus/density.d.ts +25 -0
  8. package/dist/cjs/ag-grid-plus/density.js +52 -0
  9. package/dist/cjs/ag-grid-plus/index.less +36 -0
  10. package/dist/cjs/ag-grid-plus/interface.d.ts +58 -1
  11. package/dist/cjs/ag-grid-plus/interface.js +1 -1
  12. package/dist/cjs/ag-grid-plus/queryForm/index.d.ts +11 -0
  13. package/dist/cjs/ag-grid-plus/queryForm/index.js +62 -10
  14. package/dist/cjs/ag-grid-plus/queryForm/queryForm.d.ts +10 -0
  15. package/dist/cjs/ag-grid-plus/queryForm/queryForm.js +63 -26
  16. package/dist/cjs/ag-grid-plus/queryForm/queryValues.d.ts +9 -0
  17. package/dist/cjs/ag-grid-plus/queryForm/queryValues.js +61 -0
  18. package/dist/cjs/ag-grid-plus/rowColors.d.ts +12 -0
  19. package/dist/cjs/ag-grid-plus/rowColors.js +58 -0
  20. package/dist/cjs/ag-grid-plus/setting/ColumnConfigTable.d.ts +5 -0
  21. package/dist/cjs/ag-grid-plus/setting/ColumnConfigTable.js +14 -5
  22. package/dist/cjs/ag-grid-plus/setting/ColumnSetting.js +108 -76
  23. package/dist/cjs/ag-grid-plus/setting/QuerySchemeManager.js +10 -9
  24. package/dist/cjs/ag-grid-plus/setting/autoColumnMemory.d.ts +37 -0
  25. package/dist/cjs/ag-grid-plus/setting/autoColumnMemory.js +206 -0
  26. package/dist/cjs/ag-grid-plus/setting/columnGroupUtils.d.ts +2 -0
  27. package/dist/cjs/ag-grid-plus/setting/columnGroupUtils.js +19 -1
  28. package/dist/cjs/ag-grid-plus/setting/index.js +5 -14
  29. package/dist/cjs/ag-grid-plus/settingItem/index.d.ts +11 -1
  30. package/dist/cjs/ag-grid-plus/settingItem/index.js +34 -12
  31. package/dist/cjs/ag-grid-plus/shared/EmptyIllustration.d.ts +16 -0
  32. package/dist/cjs/ag-grid-plus/shared/EmptyIllustration.js +87 -0
  33. package/dist/cjs/ag-grid-plus/shared/NoRowsOverlay.js +9 -1
  34. package/dist/cjs/ag-grid-plus/shared/SkeletonOverlay.d.ts +11 -0
  35. package/dist/cjs/ag-grid-plus/shared/SkeletonOverlay.js +40 -0
  36. package/dist/cjs/ag-grid-plus/shared/storage/schemeStorageAdapter.d.ts +1 -1
  37. package/dist/cjs/ag-grid-plus/theme.d.ts +7 -1
  38. package/dist/cjs/ag-grid-plus/theme.js +31 -6
  39. package/dist/cjs/ag-grid-plus/toolBar/OverflowActions.d.ts +16 -0
  40. package/dist/cjs/ag-grid-plus/toolBar/OverflowActions.js +128 -0
  41. package/dist/cjs/ag-grid-plus/toolBar/index.d.ts +3 -1
  42. package/dist/cjs/ag-grid-plus/toolBar/index.js +43 -35
  43. package/dist/cjs/ag-grid-plus/toolBar/leftContent.d.ts +2 -2
  44. package/dist/cjs/ag-grid-plus/toolBar/leftContent.js +2 -2
  45. package/dist/cjs/ag-grid-plus/toolBar/overflow.d.ts +20 -0
  46. package/dist/cjs/ag-grid-plus/toolBar/overflow.js +48 -0
  47. package/dist/cjs/ag-grid-plus/toolBar/style.js +71 -15
  48. package/dist/cjs/ag-grid-plus/types.d.ts +6 -0
  49. package/dist/cjs/ag-grid-plus/utils/agGridCompat.js +12 -3
  50. package/dist/cjs/ag-grid-plus/utils/columnProcessors.d.ts +3 -0
  51. package/dist/cjs/ag-grid-plus/utils/columnProcessors.js +13 -2
  52. package/dist/cjs/ag-grid-plus/utils/constants.d.ts +3 -2
  53. package/dist/cjs/ag-grid-plus/utils/constants.js +3 -2
  54. package/dist/cjs/ag-grid-plus/utils/crossPageSelection.d.ts +21 -0
  55. package/dist/cjs/ag-grid-plus/utils/crossPageSelection.js +58 -0
  56. package/dist/cjs/ag-grid-plus/utils/emptyState.d.ts +2 -0
  57. package/dist/cjs/ag-grid-plus/utils/emptyState.js +9 -5
  58. package/dist/cjs/ag-grid-plus/utils/listKeyboard.d.ts +24 -0
  59. package/dist/cjs/ag-grid-plus/utils/listKeyboard.js +83 -0
  60. package/dist/cjs/ag-grid-plus/utils/pagination.d.ts +26 -0
  61. package/dist/cjs/ag-grid-plus/utils/pagination.js +69 -0
  62. package/dist/cjs/ag-grid-plus/utils/queryDispatch.d.ts +7 -0
  63. package/dist/cjs/ag-grid-plus/utils/queryDispatch.js +17 -0
  64. package/dist/cjs/ag-grid-plus/utils/statusPill.d.ts +25 -0
  65. package/dist/cjs/ag-grid-plus/utils/statusPill.js +196 -0
  66. package/dist/cjs/ag-grid-plus/utils/valueEnumColor.d.ts +6 -1
  67. package/dist/cjs/ag-grid-plus/utils/valueEnumColor.js +13 -9
  68. package/dist/cjs/ag-grid-plus/utils/valueFormat.d.ts +19 -0
  69. package/dist/cjs/ag-grid-plus/utils/valueFormat.js +73 -0
  70. package/dist/cjs/ag-grid-plus/utils.js +3 -2
  71. package/dist/cjs/array-table/arrayAddBtn.d.ts +1 -0
  72. package/dist/cjs/array-table/arrayAddBtn.js +2 -2
  73. package/dist/cjs/array-table/autoHeight.d.ts +18 -0
  74. package/dist/cjs/array-table/autoHeight.js +30 -0
  75. package/dist/cjs/array-table/batchRemove.d.ts +2 -2
  76. package/dist/cjs/array-table/cellEditorMarker.d.ts +18 -0
  77. package/dist/cjs/array-table/cellEditorMarker.js +92 -0
  78. package/dist/cjs/array-table/errorLocator.d.ts +29 -0
  79. package/dist/cjs/array-table/errorLocator.js +101 -0
  80. package/dist/cjs/array-table/hooks.d.ts +52 -4
  81. package/dist/cjs/array-table/hooks.js +251 -18
  82. package/dist/cjs/array-table/index.d.ts +6 -0
  83. package/dist/cjs/array-table/index.js +167 -23
  84. package/dist/cjs/array-table/interface.d.ts +22 -0
  85. package/dist/cjs/array-table/preview.js +39 -5
  86. package/dist/cjs/array-table/rowFeedback.d.ts +2 -2
  87. package/dist/cjs/array-table/rowFeedback.js +8 -8
  88. package/dist/cjs/array-table/summary.d.ts +25 -0
  89. package/dist/cjs/array-table/summary.js +70 -0
  90. package/dist/cjs/array-table/theme.d.ts +35 -5
  91. package/dist/cjs/array-table/theme.js +49 -12
  92. package/dist/cjs/array-table/title.d.ts +3 -0
  93. package/dist/cjs/array-table/title.js +29 -0
  94. package/dist/cjs/array-table/utils.d.ts +2 -1
  95. package/dist/cjs/array-table/utils.js +94 -23
  96. package/dist/cjs/card/pro-card/Card/useLegacyItems.d.ts +1 -1
  97. package/dist/cjs/dateCellEditor/DateCellEditor.d.ts +5 -0
  98. package/dist/cjs/dateCellEditor/DateCellEditor.js +42 -17
  99. package/dist/cjs/deleteConfirm/index.d.ts +14 -0
  100. package/dist/cjs/deleteConfirm/index.js +73 -12
  101. package/dist/cjs/dialogSelect/index.d.ts +19 -0
  102. package/dist/cjs/dialogSelect/index.js +189 -15
  103. package/dist/cjs/dialogSelect/index.less +18 -0
  104. package/dist/cjs/documentPage/documentPage.d.ts +6 -3
  105. package/dist/cjs/documentPage/documentPage.js +23 -8
  106. package/dist/cjs/documentPage/index.d.ts +2 -0
  107. package/dist/cjs/documentPage/index.js +19 -0
  108. package/dist/cjs/documentPage/leaveGuard.d.ts +31 -0
  109. package/dist/cjs/documentPage/leaveGuard.js +91 -0
  110. package/dist/cjs/draggableModal/index.d.ts +24 -1
  111. package/dist/cjs/draggableModal/index.js +36 -6
  112. package/dist/cjs/fullScreenAlert/index.less +10 -10
  113. package/dist/cjs/index.d.ts +2 -0
  114. package/dist/cjs/index.js +15 -0
  115. package/dist/cjs/readPretty/arrayTable.js +5 -1
  116. package/dist/cjs/scanCollect/ScanFeedbackInput.d.ts +26 -0
  117. package/dist/cjs/scanCollect/ScanFeedbackInput.js +113 -0
  118. package/dist/cjs/scanCollect/index.d.ts +4 -0
  119. package/dist/cjs/scanCollect/index.js +14 -0
  120. package/dist/cjs/scanCollect/scanSound.d.ts +15 -0
  121. package/dist/cjs/scanCollect/scanSound.js +91 -0
  122. package/dist/esm/ConfirmPro/index.d.ts +12 -9
  123. package/dist/esm/ConfirmPro/index.js +11 -34
  124. package/dist/esm/ag-grid-plus/ag-gridPlus.js +423 -156
  125. package/dist/esm/ag-grid-plus/context/gridContext.d.ts +12 -1
  126. package/dist/esm/ag-grid-plus/context/queryFormContext.d.ts +2 -0
  127. package/dist/esm/ag-grid-plus/context/useSchemeDataFlow.js +8 -0
  128. package/dist/esm/ag-grid-plus/density.d.ts +25 -0
  129. package/dist/esm/ag-grid-plus/density.js +45 -0
  130. package/dist/esm/ag-grid-plus/index.less +36 -0
  131. package/dist/esm/ag-grid-plus/interface.d.ts +58 -1
  132. package/dist/esm/ag-grid-plus/interface.js +2 -0
  133. package/dist/esm/ag-grid-plus/queryForm/index.d.ts +11 -0
  134. package/dist/esm/ag-grid-plus/queryForm/index.js +62 -10
  135. package/dist/esm/ag-grid-plus/queryForm/queryForm.d.ts +10 -0
  136. package/dist/esm/ag-grid-plus/queryForm/queryForm.js +64 -26
  137. package/dist/esm/ag-grid-plus/queryForm/queryValues.d.ts +9 -0
  138. package/dist/esm/ag-grid-plus/queryForm/queryValues.js +54 -0
  139. package/dist/esm/ag-grid-plus/rowColors.d.ts +12 -0
  140. package/dist/esm/ag-grid-plus/rowColors.js +50 -0
  141. package/dist/esm/ag-grid-plus/setting/ColumnConfigTable.d.ts +5 -0
  142. package/dist/esm/ag-grid-plus/setting/ColumnConfigTable.js +14 -5
  143. package/dist/esm/ag-grid-plus/setting/ColumnSetting.js +110 -78
  144. package/dist/esm/ag-grid-plus/setting/QuerySchemeManager.js +10 -9
  145. package/dist/esm/ag-grid-plus/setting/autoColumnMemory.d.ts +37 -0
  146. package/dist/esm/ag-grid-plus/setting/autoColumnMemory.js +198 -0
  147. package/dist/esm/ag-grid-plus/setting/columnGroupUtils.d.ts +2 -0
  148. package/dist/esm/ag-grid-plus/setting/columnGroupUtils.js +18 -1
  149. package/dist/esm/ag-grid-plus/setting/index.js +6 -15
  150. package/dist/esm/ag-grid-plus/settingItem/index.d.ts +11 -1
  151. package/dist/esm/ag-grid-plus/settingItem/index.js +35 -13
  152. package/dist/esm/ag-grid-plus/shared/EmptyIllustration.d.ts +16 -0
  153. package/dist/esm/ag-grid-plus/shared/EmptyIllustration.js +82 -0
  154. package/dist/esm/ag-grid-plus/shared/NoRowsOverlay.js +9 -1
  155. package/dist/esm/ag-grid-plus/shared/SkeletonOverlay.d.ts +11 -0
  156. package/dist/esm/ag-grid-plus/shared/SkeletonOverlay.js +34 -0
  157. package/dist/esm/ag-grid-plus/shared/storage/schemeStorageAdapter.d.ts +1 -1
  158. package/dist/esm/ag-grid-plus/theme.d.ts +7 -1
  159. package/dist/esm/ag-grid-plus/theme.js +31 -6
  160. package/dist/esm/ag-grid-plus/toolBar/OverflowActions.d.ts +16 -0
  161. package/dist/esm/ag-grid-plus/toolBar/OverflowActions.js +120 -0
  162. package/dist/esm/ag-grid-plus/toolBar/index.d.ts +3 -1
  163. package/dist/esm/ag-grid-plus/toolBar/index.js +43 -35
  164. package/dist/esm/ag-grid-plus/toolBar/leftContent.d.ts +2 -2
  165. package/dist/esm/ag-grid-plus/toolBar/leftContent.js +2 -2
  166. package/dist/esm/ag-grid-plus/toolBar/overflow.d.ts +20 -0
  167. package/dist/esm/ag-grid-plus/toolBar/overflow.js +41 -0
  168. package/dist/esm/ag-grid-plus/toolBar/style.js +71 -15
  169. package/dist/esm/ag-grid-plus/types.d.ts +6 -0
  170. package/dist/esm/ag-grid-plus/utils/agGridCompat.js +12 -3
  171. package/dist/esm/ag-grid-plus/utils/columnProcessors.d.ts +3 -0
  172. package/dist/esm/ag-grid-plus/utils/columnProcessors.js +14 -3
  173. package/dist/esm/ag-grid-plus/utils/constants.d.ts +3 -2
  174. package/dist/esm/ag-grid-plus/utils/constants.js +3 -2
  175. package/dist/esm/ag-grid-plus/utils/crossPageSelection.d.ts +21 -0
  176. package/dist/esm/ag-grid-plus/utils/crossPageSelection.js +52 -0
  177. package/dist/esm/ag-grid-plus/utils/emptyState.d.ts +2 -0
  178. package/dist/esm/ag-grid-plus/utils/emptyState.js +9 -5
  179. package/dist/esm/ag-grid-plus/utils/listKeyboard.d.ts +24 -0
  180. package/dist/esm/ag-grid-plus/utils/listKeyboard.js +77 -0
  181. package/dist/esm/ag-grid-plus/utils/pagination.d.ts +26 -0
  182. package/dist/esm/ag-grid-plus/utils/pagination.js +60 -0
  183. package/dist/esm/ag-grid-plus/utils/queryDispatch.d.ts +7 -0
  184. package/dist/esm/ag-grid-plus/utils/queryDispatch.js +11 -0
  185. package/dist/esm/ag-grid-plus/utils/statusPill.d.ts +25 -0
  186. package/dist/esm/ag-grid-plus/utils/statusPill.js +192 -0
  187. package/dist/esm/ag-grid-plus/utils/valueEnumColor.d.ts +6 -1
  188. package/dist/esm/ag-grid-plus/utils/valueEnumColor.js +12 -8
  189. package/dist/esm/ag-grid-plus/utils/valueFormat.d.ts +19 -0
  190. package/dist/esm/ag-grid-plus/utils/valueFormat.js +63 -0
  191. package/dist/esm/ag-grid-plus/utils.js +3 -2
  192. package/dist/esm/array-table/arrayAddBtn.d.ts +1 -0
  193. package/dist/esm/array-table/arrayAddBtn.js +1 -1
  194. package/dist/esm/array-table/autoHeight.d.ts +18 -0
  195. package/dist/esm/array-table/autoHeight.js +25 -0
  196. package/dist/esm/array-table/batchRemove.d.ts +2 -2
  197. package/dist/esm/array-table/cellEditorMarker.d.ts +18 -0
  198. package/dist/esm/array-table/cellEditorMarker.js +84 -0
  199. package/dist/esm/array-table/errorLocator.d.ts +29 -0
  200. package/dist/esm/array-table/errorLocator.js +95 -0
  201. package/dist/esm/array-table/hooks.d.ts +52 -4
  202. package/dist/esm/array-table/hooks.js +251 -17
  203. package/dist/esm/array-table/index.d.ts +6 -0
  204. package/dist/esm/array-table/index.js +170 -25
  205. package/dist/esm/array-table/interface.d.ts +22 -0
  206. package/dist/esm/array-table/preview.js +43 -7
  207. package/dist/esm/array-table/rowFeedback.d.ts +2 -2
  208. package/dist/esm/array-table/rowFeedback.js +8 -8
  209. package/dist/esm/array-table/summary.d.ts +25 -0
  210. package/dist/esm/array-table/summary.js +66 -0
  211. package/dist/esm/array-table/theme.d.ts +35 -5
  212. package/dist/esm/array-table/theme.js +47 -12
  213. package/dist/esm/array-table/title.d.ts +3 -0
  214. package/dist/esm/array-table/title.js +24 -0
  215. package/dist/esm/array-table/utils.d.ts +2 -1
  216. package/dist/esm/array-table/utils.js +93 -22
  217. package/dist/esm/card/pro-card/Card/useLegacyItems.d.ts +1 -1
  218. package/dist/esm/dateCellEditor/DateCellEditor.d.ts +5 -0
  219. package/dist/esm/dateCellEditor/DateCellEditor.js +42 -17
  220. package/dist/esm/deleteConfirm/index.d.ts +14 -0
  221. package/dist/esm/deleteConfirm/index.js +72 -12
  222. package/dist/esm/dialogSelect/index.d.ts +19 -0
  223. package/dist/esm/dialogSelect/index.js +190 -16
  224. package/dist/esm/dialogSelect/index.less +18 -0
  225. package/dist/esm/documentPage/documentPage.d.ts +6 -3
  226. package/dist/esm/documentPage/documentPage.js +23 -8
  227. package/dist/esm/documentPage/index.d.ts +2 -0
  228. package/dist/esm/documentPage/index.js +1 -0
  229. package/dist/esm/documentPage/leaveGuard.d.ts +31 -0
  230. package/dist/esm/documentPage/leaveGuard.js +86 -0
  231. package/dist/esm/draggableModal/index.d.ts +24 -1
  232. package/dist/esm/draggableModal/index.js +35 -5
  233. package/dist/esm/fullScreenAlert/index.less +10 -10
  234. package/dist/esm/index.d.ts +2 -0
  235. package/dist/esm/index.js +1 -0
  236. package/dist/esm/readPretty/arrayTable.js +6 -2
  237. package/dist/esm/scanCollect/ScanFeedbackInput.d.ts +26 -0
  238. package/dist/esm/scanCollect/ScanFeedbackInput.js +107 -0
  239. package/dist/esm/scanCollect/index.d.ts +4 -0
  240. package/dist/esm/scanCollect/index.js +2 -0
  241. package/dist/esm/scanCollect/scanSound.d.ts +15 -0
  242. package/dist/esm/scanCollect/scanSound.js +84 -0
  243. package/package.json +2 -2
@@ -0,0 +1,50 @@
1
+ /**
2
+ * 悬浮行 / 选中行 / 选中且悬浮行底色(DESIGN.md §3.5):主色朝白混合,
3
+ * 浅底文字(链接色)压其上必须 ≥ 4.5:1,不达标就逐步变浅。
4
+ * 不直接用 antd 的 colorPrimaryBg 系列:那是对主色的通用派生,绿主题下链接压其上只有 2.3~2.9。
5
+ * @author nokecy
6
+ */
7
+ import { contrastRatio } from "../shared/contrast";
8
+ var HEX = /^#[0-9a-f]{6}$/i;
9
+ var toHexRgb = function toHexRgb(hex) {
10
+ var v = parseInt(hex.slice(1), 16);
11
+ return [v >> 16 & 255, v >> 8 & 255, v & 255];
12
+ };
13
+
14
+ /** 主色占 percent%,其余为白。 */
15
+ export var mixWithWhite = function mixWithWhite(hex, percent) {
16
+ var rgb = toHexRgb(hex);
17
+ var out = rgb.map(function (c) {
18
+ return Math.round(255 - (255 - c) * (percent / 100));
19
+ });
20
+ return "#".concat(out.map(function (c) {
21
+ return c.toString(16).padStart(2, '0');
22
+ }).join(''));
23
+ };
24
+
25
+ /** 悬浮 6% / 选中 9% / 选中且悬浮 14%(对应规范的 94% / 91% / 86% 起混白)。 */
26
+ var START = {
27
+ hover: 6,
28
+ selected: 9,
29
+ selectedHover: 14
30
+ };
31
+ /**
32
+ * @param primary 主色,非 6 位 hex 时返回 undefined,由调用方退回 antd token
33
+ * @param linkText 浅底文字(链接色),缺省按主色
34
+ */
35
+ export function deriveRowColors(primary, linkText) {
36
+ if (!HEX.test(primary)) return undefined;
37
+ var text = linkText && HEX.test(linkText) ? linkText : primary;
38
+ var pick = function pick(start) {
39
+ for (var p = start; p > 0; p--) {
40
+ var bg = mixWithWhite(primary, p);
41
+ if (contrastRatio(text, bg) >= 4.5) return bg;
42
+ }
43
+ return '#ffffff';
44
+ };
45
+ return {
46
+ hover: pick(START.hover),
47
+ selected: pick(START.selected),
48
+ selectedHover: pick(START.selectedHover)
49
+ };
50
+ }
@@ -3,12 +3,17 @@
3
3
  * 使用 AG-Grid 替代 Ant Design Table,性能更优
4
4
  */
5
5
  import React from 'react';
6
+ import type { ICellRendererParams } from 'ag-grid-community';
6
7
  import type { FlatColumnItem } from './columnGroupTypes';
7
8
  interface ColumnConfigTableAGProps {
8
9
  items: FlatColumnItem[];
9
10
  onChange: (items: FlatColumnItem[]) => void;
10
11
  simple?: boolean;
11
12
  scrollY?: number;
13
+ /** 不可隐藏的业务列标识(列定义声明 lockVisible),其「隐藏」开关禁用且恒为显示 */
14
+ lockedColumnIds?: string[];
12
15
  }
16
+ /** Switch 渲染器工厂 */
17
+ export declare const createSwitchRenderer: (field: keyof FlatColumnItem) => (props: ICellRendererParams<FlatColumnItem>) => React.JSX.Element;
13
18
  declare const ColumnConfigTable: React.FC<ColumnConfigTableAGProps>;
14
19
  export default ColumnConfigTable;
@@ -23,7 +23,7 @@ import React, { useCallback, useMemo, useState, useRef, useEffect } from 'react'
23
23
  import { Button, Select, Switch, Space, Popconfirm, message, Tag, theme } from 'antd';
24
24
  import { DeleteOutlined, FolderOutlined, FolderAddOutlined, FileOutlined } from '@ant-design/icons';
25
25
  import { AgGridReact } from 'ag-grid-react';
26
- import { generateId, normalizeCellAlign } from "./columnGroupUtils";
26
+ import { generateId, getColumnIdentity, normalizeCellAlign } from "./columnGroupUtils";
27
27
  import { DebounceNumberInput } from "./DebounceInputs";
28
28
  import { useAgGridTheme } from "../theme";
29
29
  import { ColumnNameCellRenderer } from "./ColumnNameCellRenderer";
@@ -74,8 +74,9 @@ var WidthCellRenderer = function WidthCellRenderer(props) {
74
74
  };
75
75
 
76
76
  /** Switch 渲染器工厂 */
77
- var createSwitchRenderer = function createSwitchRenderer(field) {
77
+ export var createSwitchRenderer = function createSwitchRenderer(field) {
78
78
  return function (props) {
79
+ var _lockedIds;
79
80
  var item = props.data;
80
81
  if (!item || item.type !== 'column') return /*#__PURE__*/_jsx("span", {
81
82
  children: "-"
@@ -84,10 +85,14 @@ var createSwitchRenderer = function createSwitchRenderer(field) {
84
85
  // 获取字段值
85
86
  var fieldValue = item[field];
86
87
 
88
+ // 业务列不可被隐藏:开关禁用,恒为显示
89
+ var locked = field === 'hide' && ((_lockedIds = props.lockedIds) === null || _lockedIds === void 0 ? void 0 : _lockedIds.includes(getColumnIdentity(item)));
90
+
87
91
  // 只检查布尔值
88
- var isChecked = fieldValue === true;
92
+ var isChecked = locked ? false : fieldValue === true;
89
93
  return /*#__PURE__*/_jsx(Switch, {
90
94
  checked: isChecked,
95
+ disabled: locked,
91
96
  onChange: function onChange(checked) {
92
97
  if (props.node) {
93
98
  // 保存时统一为布尔值
@@ -257,7 +262,8 @@ var ColumnConfigTable = function ColumnConfigTable(_ref2) {
257
262
  _ref2$simple = _ref2.simple,
258
263
  simple = _ref2$simple === void 0 ? false : _ref2$simple,
259
264
  _ref2$scrollY = _ref2.scrollY,
260
- scrollY = _ref2$scrollY === void 0 ? 480 : _ref2$scrollY;
265
+ scrollY = _ref2$scrollY === void 0 ? 480 : _ref2$scrollY,
266
+ lockedColumnIds = _ref2.lockedColumnIds;
261
267
  var gridTheme = useAgGridTheme();
262
268
  var _theme$useToken = theme.useToken(),
263
269
  token = _theme$useToken.token; // 颜色取主题 token,跟随亮/暗主题 @author nokecy
@@ -657,6 +663,9 @@ var ColumnConfigTable = function ColumnConfigTable(_ref2) {
657
663
  headerName: '隐藏',
658
664
  width: 80,
659
665
  cellRenderer: createSwitchRenderer('hide'),
666
+ cellRendererParams: {
667
+ lockedIds: lockedColumnIds
668
+ },
660
669
  cellStyle: commonCellStyle
661
670
  }, {
662
671
  field: 'suppressHeaderFilterButton',
@@ -677,7 +686,7 @@ var ColumnConfigTable = function ColumnConfigTable(_ref2) {
677
686
  cellStyle: commonCellStyle
678
687
  }];
679
688
  return cols;
680
- }, [handleDelete, handleAddChildGroup, simple, expandedKeys, toggleExpand, localItems]);
689
+ }, [handleDelete, handleAddChildGroup, simple, expandedKeys, toggleExpand, localItems, lockedColumnIds]);
681
690
 
682
691
  // 根据展开状态过滤数据
683
692
  var visibleItems = useMemo(function () {
@@ -1,6 +1,6 @@
1
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
- var _excluded = ["createdAt", "updatedAt"],
3
- _excluded2 = ["createdAt", "updatedAt"],
2
+ var _excluded = ["createdAt", "updatedAt", "filterModel"],
3
+ _excluded2 = ["createdAt", "updatedAt", "filterModel"],
4
4
  _excluded3 = ["createdAt", "updatedAt"];
5
5
  function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
6
6
  function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
@@ -26,13 +26,13 @@ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
26
26
  import { sanitizeColDefs } from "../utils/agGridCompat";
27
27
  import React, { useState, useCallback, useMemo, useEffect } from 'react';
28
28
  import { logger } from "../utils/logger";
29
- import { Modal, Tabs, Space, Button, Input, message, Popconfirm, Tag, Tooltip, Empty, theme } from 'antd';
29
+ import { Modal, Tabs, Space, Button, Input, message, Popconfirm, Segmented, Tag, Tooltip, Empty, theme } from 'antd';
30
30
  import { SaveOutlined, ReloadOutlined, EditOutlined, DeleteOutlined, StarOutlined, StarFilled, SearchOutlined, GlobalOutlined, RollbackOutlined, ClearOutlined, ExclamationCircleOutlined } from '@ant-design/icons';
31
31
  import { AgGridReact } from 'ag-grid-react';
32
32
  import { useAgGridTheme } from "../theme";
33
33
  import { localeText } from "../locale";
34
34
  import { createForm, onFormInit } from '@nokecy/formily-core';
35
- import { gridStateToFlatConfig, flatConfigToGridState, flatConfigToColumnState, dropQueryOnlyItems, excludeQueryOnlyColumns, isOldSchemeData, migrateOldScheme, generateId, getColumnIdentity, normalizeColumnConfig } from "./columnGroupUtils";
35
+ import { gridStateToFlatConfig, flatConfigToGridState, flatConfigToColumnState, dropQueryOnlyItems, excludeQueryOnlyColumns, isOldSchemeData, migrateOldScheme, generateId, getColumnIdentity, getLockedColumnIds, normalizeColumnConfig } from "./columnGroupUtils";
36
36
  import ColumnConfigTable from "./ColumnConfigTable";
37
37
  import DraggableModal from "../../draggableModal/index";
38
38
  import { useGridSchemes } from "../context/useSchemeManager";
@@ -68,7 +68,9 @@ var ColumnSetting = function ColumnSetting(_ref) {
68
68
  resetToGlobal = _useGridSchemes.resetToGlobal,
69
69
  resetAllUsers = _useGridSchemes.resetAllUsers,
70
70
  globalConfigPermissions = _useGridSchemes.globalConfigPermissions,
71
- isUsingGlobalFallback = _useGridSchemes.isUsingGlobalFallback;
71
+ isUsingGlobalFallback = _useGridSchemes.isUsingGlobalFallback,
72
+ density = _useGridSchemes.density,
73
+ onDensityChange = _useGridSchemes.onDensityChange;
72
74
 
73
75
  // 调用方传入的列定义优先:Context 里的属于外层 AgGridPlus 或为空 @author nokecy
74
76
  var allColDefs = allColDefsProp !== null && allColDefsProp !== void 0 ? allColDefsProp : contextAllColDefs;
@@ -126,6 +128,11 @@ var ColumnSetting = function ColumnSetting(_ref) {
126
128
  // allColDefs 包含自定义属性(cellRenderer 等),用于方案应用时保留这些属性
127
129
  var originalColumnDefs = initialColumnDefs || allColDefs || undefined;
128
130
 
131
+ // 业务列(序号等 lockVisible)不可隐藏
132
+ var lockedColumnIds = useMemo(function () {
133
+ return getLockedColumnIds(originalColumnDefs);
134
+ }, [originalColumnDefs]);
135
+
129
136
  // 【修复】保存快照用于取消时恢复(改名避免与Context的originalColumnDefs冲突)
130
137
  var _useState17 = useState(null),
131
138
  _useState18 = _slicedToArray(_useState17, 2),
@@ -368,6 +375,18 @@ var ColumnSetting = function ColumnSetting(_ref) {
368
375
  });
369
376
  }, [form, gridApi, allColDefs]);
370
377
 
378
+ /**
379
+ * 恢复默认:列配置还原为列定义里写的初始值(宽度、显隐、固定、顺序),先在表格上预览,保存后才落到方案。
380
+ * 只动列配置,密度偏好不受影响。
381
+ */
382
+ var handleRestoreDefault = useCallback(function () {
383
+ var _excludeQueryOnlyColu;
384
+ var defaults = (_excludeQueryOnlyColu = excludeQueryOnlyColumns(originalColumnDefs !== null && originalColumnDefs !== void 0 ? originalColumnDefs : [])) !== null && _excludeQueryOnlyColu !== void 0 ? _excludeQueryOnlyColu : [];
385
+ if (defaults.length === 0) return;
386
+ handleColumnChange(normalizeColumnConfig(gridStateToFlatConfig(defaults, originalColumnDefs), originalColumnDefs));
387
+ message.info('已恢复为默认列配置,点击「保存配置」后生效');
388
+ }, [originalColumnDefs, handleColumnChange]);
389
+
371
390
  /**
372
391
  * 关闭弹窗处理 - 取消时恢复原始状态
373
392
  * 如果用户取消操作,恢复到打开弹窗前的列定义状态
@@ -399,7 +418,7 @@ var ColumnSetting = function ColumnSetting(_ref) {
399
418
  return s.id === schemeId;
400
419
  });
401
420
  if (!(scheme && gridApi)) {
402
- _context.next = 13;
421
+ _context.next = 12;
403
422
  break;
404
423
  }
405
424
  // 【关键修复】先更新 columnDefs(处理分组结构),使用 allColDefs 保留自定义属性
@@ -419,12 +438,7 @@ var ColumnSetting = function ColumnSetting(_ref) {
419
438
  state: columnState,
420
439
  applyOrder: true // 强制应用列顺序
421
440
  });
422
-
423
- // 应用过滤器
424
- if (scheme.filterModel) {
425
- gridApi.setFilterModel(scheme.filterModel);
426
- }
427
- case 13:
441
+ case 12:
428
442
  message.success('方案已加载');
429
443
 
430
444
  // 等待Grid状态更新后再刷新表单
@@ -439,17 +453,17 @@ var ColumnSetting = function ColumnSetting(_ref) {
439
453
 
440
454
  // 自动关闭弹窗,让用户看到Grid的变化
441
455
  onClose();
442
- _context.next = 21;
456
+ _context.next = 20;
443
457
  break;
444
- case 18:
445
- _context.prev = 18;
458
+ case 17:
459
+ _context.prev = 17;
446
460
  _context.t0 = _context["catch"](0);
447
461
  message.error(_context.t0.message || '加载方案失败');
448
- case 21:
462
+ case 20:
449
463
  case "end":
450
464
  return _context.stop();
451
465
  }
452
- }, _callee, null, [[0, 18]]);
466
+ }, _callee, null, [[0, 17]]);
453
467
  }));
454
468
  return function (_x) {
455
469
  return _ref2.apply(this, arguments);
@@ -461,7 +475,7 @@ var ColumnSetting = function ColumnSetting(_ref) {
461
475
  * 优化逻辑:先保存配置到存储,再直接应用到 Grid,不依赖 handleLoadScheme
462
476
  */
463
477
  var handleSaveColumns = useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
464
- var values, flatConfig, configToSave, invalidColumns, filterModel, savedScheme, createdAt, updatedAt, schemeWithoutTimestamps, defaultScheme, _createdAt, _updatedAt, _schemeWithoutTimestamps, gridColumnDefs, columnState;
478
+ var values, flatConfig, configToSave, invalidColumns, savedScheme, createdAt, updatedAt, _legacyFilter, schemeWithoutTimestamps, defaultScheme, _createdAt, _updatedAt, _legacyFilter2, _schemeWithoutTimestamps, gridColumnDefs, columnState;
465
479
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
466
480
  while (1) switch (_context2.prev = _context2.next) {
467
481
  case 0:
@@ -492,82 +506,79 @@ var ColumnSetting = function ColumnSetting(_ref) {
492
506
  });
493
507
  }
494
508
  _context2.prev = 9;
495
- filterModel = gridApi.getFilterModel();
496
509
  if (!currentScheme) {
497
- _context2.next = 22;
510
+ _context2.next = 21;
498
511
  break;
499
512
  }
500
513
  if (!(currentScheme.isGlobal && !canApplyToGlobal)) {
501
- _context2.next = 15;
514
+ _context2.next = 14;
502
515
  break;
503
516
  }
504
517
  message.error('没有权限修改全局方案');
505
518
  return _context2.abrupt("return");
506
- case 15:
519
+ case 14:
507
520
  // 如果有激活的方案,更新该方案
508
- createdAt = currentScheme.createdAt, updatedAt = currentScheme.updatedAt, schemeWithoutTimestamps = _objectWithoutProperties(currentScheme, _excluded);
521
+ // 列头筛选属于数据而非视图偏好,不随方案保存;同时丢弃旧方案里遗留的 filterModel
522
+ createdAt = currentScheme.createdAt, updatedAt = currentScheme.updatedAt, _legacyFilter = currentScheme.filterModel, schemeWithoutTimestamps = _objectWithoutProperties(currentScheme, _excluded);
509
523
  savedScheme = _objectSpread(_objectSpread({}, schemeWithoutTimestamps), {}, {
510
- columnConfig: configToSave,
511
- filterModel: filterModel
524
+ columnConfig: configToSave
512
525
  // createdAt 和 updatedAt 由存储适配器自动生成
513
526
  });
514
- _context2.next = 19;
527
+ _context2.next = 18;
515
528
  return saveColumnScheme === null || saveColumnScheme === void 0 ? void 0 : saveColumnScheme(gridKey, savedScheme);
516
- case 19:
529
+ case 18:
517
530
  message.success('列配置已保存到方案');
518
- _context2.next = 38;
531
+ _context2.next = 37;
519
532
  break;
520
- case 22:
533
+ case 21:
521
534
  // 如果没有激活的方案,自动创建或更新默认方案
522
535
  defaultScheme = schemes.find(function (s) {
523
536
  return s.isDefault;
524
537
  });
525
538
  if (!defaultScheme) {
526
- _context2.next = 34;
539
+ _context2.next = 33;
527
540
  break;
528
541
  }
529
542
  if (!(defaultScheme.isGlobal && !canApplyToGlobal)) {
530
- _context2.next = 27;
543
+ _context2.next = 26;
531
544
  break;
532
545
  }
533
546
  message.error('没有权限修改全局方案');
534
547
  return _context2.abrupt("return");
535
- case 27:
548
+ case 26:
536
549
  // 更新默认方案
537
- _createdAt = defaultScheme.createdAt, _updatedAt = defaultScheme.updatedAt, _schemeWithoutTimestamps = _objectWithoutProperties(defaultScheme, _excluded2);
550
+ _createdAt = defaultScheme.createdAt, _updatedAt = defaultScheme.updatedAt, _legacyFilter2 = defaultScheme.filterModel, _schemeWithoutTimestamps = _objectWithoutProperties(defaultScheme, _excluded2);
538
551
  savedScheme = _objectSpread(_objectSpread({}, _schemeWithoutTimestamps), {}, {
539
- columnConfig: configToSave,
540
- filterModel: filterModel
552
+ columnConfig: configToSave
541
553
  // createdAt 和 updatedAt 由存储适配器自动生成
542
554
  });
543
- _context2.next = 31;
555
+ _context2.next = 30;
544
556
  return saveColumnScheme === null || saveColumnScheme === void 0 ? void 0 : saveColumnScheme(gridKey, savedScheme);
545
- case 31:
557
+ case 30:
546
558
  message.success('列配置已保存到默认方案');
547
- _context2.next = 38;
559
+ _context2.next = 37;
548
560
  break;
549
- case 34:
561
+ case 33:
550
562
  // 创建新的默认方案
551
563
  savedScheme = {
552
564
  id: uuidv4(),
553
565
  name: '默认配置',
554
566
  description: '自动创建的默认列配置',
555
567
  columnConfig: configToSave,
556
- filterModel: filterModel,
557
568
  isDefault: true,
558
569
  isSystem: false
559
570
  // createdAt 和 updatedAt 由存储适配器自动生成
560
571
  };
561
- _context2.next = 37;
572
+ _context2.next = 36;
562
573
  return saveColumnScheme === null || saveColumnScheme === void 0 ? void 0 : saveColumnScheme(gridKey, savedScheme);
563
- case 37:
574
+ case 36:
564
575
  message.success('已创建并保存到默认方案');
565
- case 38:
566
- _context2.next = 40;
576
+ case 37:
577
+ _context2.next = 39;
567
578
  return new Promise(function (resolve) {
568
579
  return setTimeout(resolve, 100);
569
580
  });
570
- case 40:
581
+ case 39:
571
582
  // 【关键修复】直接应用方案到 Grid,不通过 handleLoadScheme
572
583
  // 这样可以避免依赖 Context 状态更新的时序问题
573
584
  logger.debug('[ColumnSetting] 保存后直接应用方案到 Grid');
@@ -579,11 +590,11 @@ var ColumnSetting = function ColumnSetting(_ref) {
579
590
  gridApi.setGridOption('columnDefs', sanitizeColDefs(gridColumnDefs));
580
591
 
581
592
  // 等待 columnDefs 更新完成
582
- _context2.next = 46;
593
+ _context2.next = 45;
583
594
  return new Promise(function (resolve) {
584
595
  return setTimeout(resolve, 100);
585
596
  });
586
- case 46:
597
+ case 45:
587
598
  // 2. 应用列状态(列顺序、宽度、隐藏、固定等)
588
599
  logger.debug('[ColumnSetting] 应用列状态');
589
600
  columnState = flatConfigToColumnState(savedScheme.columnConfig, allColDefs);
@@ -592,44 +603,38 @@ var ColumnSetting = function ColumnSetting(_ref) {
592
603
  applyOrder: true
593
604
  });
594
605
 
595
- // 3. 应用过滤器
596
- if (savedScheme.filterModel) {
597
- logger.debug('[ColumnSetting] 应用 filterModel');
598
- gridApi.setFilterModel(savedScheme.filterModel);
599
- }
600
-
601
606
  // 4. 设置为当前方案(如果不是当前方案)
602
607
  if (!(!currentScheme || savedScheme.id !== currentScheme.id)) {
603
- _context2.next = 53;
608
+ _context2.next = 51;
604
609
  break;
605
610
  }
606
- _context2.next = 53;
611
+ _context2.next = 51;
607
612
  return setCurrentColumnScheme === null || setCurrentColumnScheme === void 0 ? void 0 : setCurrentColumnScheme(gridKey, savedScheme.id);
608
- case 53:
609
- _context2.next = 55;
613
+ case 51:
614
+ _context2.next = 53;
610
615
  return new Promise(function (resolve) {
611
616
  return setTimeout(resolve, 50);
612
617
  });
613
- case 55:
618
+ case 53:
614
619
  // 5. 关闭弹窗
615
620
  onClose();
616
- _context2.next = 62;
621
+ _context2.next = 60;
617
622
  break;
618
- case 58:
619
- _context2.prev = 58;
623
+ case 56:
624
+ _context2.prev = 56;
620
625
  _context2.t0 = _context2["catch"](9);
621
626
  console.error('保存列配置到方案失败:', _context2.t0);
622
627
  message.error('保存列配置失败');
623
- case 62:
628
+ case 60:
624
629
  case "end":
625
630
  return _context2.stop();
626
631
  }
627
- }, _callee2, null, [[9, 58]]);
632
+ }, _callee2, null, [[9, 56]]);
628
633
  })), [form, gridApi, saveColumnScheme, setCurrentColumnScheme, currentScheme, schemes, gridKey, allColDefs, onClose]);
629
634
 
630
635
  // 保存为新方案
631
636
  var handleSaveScheme = useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee3() {
632
- var columnConfigToSave, values, gridColumnDefs, columnState, _values, filterModel, newScheme;
637
+ var columnConfigToSave, values, gridColumnDefs, columnState, _values, newScheme;
633
638
  return _regeneratorRuntime().wrap(function _callee3$(_context3) {
634
639
  while (1) switch (_context3.prev = _context3.next) {
635
640
  case 0:
@@ -678,21 +683,18 @@ var ColumnSetting = function ColumnSetting(_ref) {
678
683
  _values = form === null || form === void 0 ? void 0 : form.values;
679
684
  columnConfigToSave = (_values === null || _values === void 0 ? void 0 : _values.items) || [];
680
685
  case 20:
681
- // 获取过滤器模型
682
- filterModel = gridApi.getFilterModel();
683
686
  newScheme = {
684
687
  id: uuidv4(),
685
688
  name: schemeName.trim(),
686
689
  description: schemeDescription.trim() || "\u521B\u5EFA\u4E8E ".concat(new Date().toLocaleString()),
687
690
  columnConfig: columnConfigToSave,
688
- filterModel: filterModel,
689
691
  isDefault: false,
690
692
  isSystem: false
691
693
  // createdAt 和 updatedAt 由存储适配器自动生成
692
694
  };
693
- _context3.next = 24;
695
+ _context3.next = 23;
694
696
  return saveColumnScheme === null || saveColumnScheme === void 0 ? void 0 : saveColumnScheme(gridKey, newScheme);
695
- case 24:
697
+ case 23:
696
698
  message.success('方案保存成功');
697
699
  setSaveSchemeVisible(false);
698
700
  setSchemeName('');
@@ -700,17 +702,17 @@ var ColumnSetting = function ColumnSetting(_ref) {
700
702
 
701
703
  // 切换到方案管理标签页,显示新创建的方案
702
704
  setActiveTab('schemes');
703
- _context3.next = 34;
705
+ _context3.next = 33;
704
706
  break;
705
- case 31:
706
- _context3.prev = 31;
707
+ case 30:
708
+ _context3.prev = 30;
707
709
  _context3.t0 = _context3["catch"](3);
708
710
  message.error(_context3.t0.message || '保存方案失败');
709
- case 34:
711
+ case 33:
710
712
  case "end":
711
713
  return _context3.stop();
712
714
  }
713
- }, _callee3, null, [[3, 31]]);
715
+ }, _callee3, null, [[3, 30]]);
714
716
  })), [gridApi, saveColumnScheme, gridKey, schemeName, schemeDescription, activeTab, form, allColDefs]);
715
717
 
716
718
  // 设置默认方案
@@ -1226,12 +1228,42 @@ var ColumnSetting = function ColumnSetting(_ref) {
1226
1228
  items: [{
1227
1229
  key: 'columns',
1228
1230
  label: '列配置',
1229
- children: /*#__PURE__*/_jsx(_Fragment, {
1230
- children: /*#__PURE__*/_jsx(ColumnConfigTable, {
1231
+ children: /*#__PURE__*/_jsxs(_Fragment, {
1232
+ children: [/*#__PURE__*/_jsxs("div", {
1233
+ style: {
1234
+ display: 'flex',
1235
+ alignItems: 'center',
1236
+ justifyContent: 'space-between',
1237
+ marginBottom: 12
1238
+ },
1239
+ children: [density && onDensityChange ? /*#__PURE__*/_jsx(Segmented, {
1240
+ "aria-label": "\u8868\u683C\u5BC6\u5EA6",
1241
+ value: density,
1242
+ onChange: function onChange(value) {
1243
+ return onDensityChange(value);
1244
+ },
1245
+ options: [{
1246
+ label: '舒适',
1247
+ value: 'comfort'
1248
+ }, {
1249
+ label: '紧凑',
1250
+ value: 'compact'
1251
+ }, {
1252
+ label: '高密',
1253
+ value: 'dense'
1254
+ }]
1255
+ }) : /*#__PURE__*/_jsx("span", {}), /*#__PURE__*/_jsx(Button, {
1256
+ type: "link",
1257
+ size: "small",
1258
+ onClick: handleRestoreDefault,
1259
+ children: "\u6062\u590D\u9ED8\u8BA4"
1260
+ })]
1261
+ }), /*#__PURE__*/_jsx(ColumnConfigTable, {
1231
1262
  items: memoizedColumnData,
1232
1263
  onChange: handleColumnChange,
1233
- simple: false
1234
- })
1264
+ simple: false,
1265
+ lockedColumnIds: lockedColumnIds
1266
+ })]
1235
1267
  })
1236
1268
  }, {
1237
1269
  key: 'schemes',
@@ -66,7 +66,8 @@ var QuerySchemeManager = function QuerySchemeManager(_ref) {
66
66
  var _useQueryForm = useQueryForm(),
67
67
  queryFormItems = _useQueryForm.queryFormItems,
68
68
  currentQueryOrder = _useQueryForm.currentQueryOrder,
69
- updateQueryOrder = _useQueryForm.updateQueryOrder;
69
+ updateQueryOrder = _useQueryForm.updateQueryOrder,
70
+ getQueryValues = _useQueryForm.getQueryValues;
70
71
 
71
72
  // 获取当前表格的查询方案列表
72
73
  var schemes = (querySchemes === null || querySchemes === void 0 ? void 0 : querySchemes[gridKey]) || [];
@@ -197,7 +198,7 @@ var QuerySchemeManager = function QuerySchemeManager(_ref) {
197
198
  * 应用当前顺序和隐藏设置
198
199
  */
199
200
  var handleApplyOrder = useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
200
- var editingOrder, hiddenFields, queryConfig, createdAt, updatedAt, schemeWithoutTimestamps, newScheme;
201
+ var _getQueryValues, editingOrder, hiddenFields, queryConfig, createdAt, updatedAt, schemeWithoutTimestamps, newScheme;
201
202
  return _regeneratorRuntime().wrap(function _callee$(_context) {
202
203
  while (1) switch (_context.prev = _context.next) {
203
204
  case 0:
@@ -209,8 +210,8 @@ var QuerySchemeManager = function QuerySchemeManager(_ref) {
209
210
  return item.hidden;
210
211
  }).map(function (item) {
211
212
  return item.field;
212
- }); // 构建新格式的配置
213
- queryConfig = buildQueryConfig(editingOrder, hiddenFields); // 如果有当前方案,更新方案
213
+ }); // 构建新格式的配置:查询区当前的条件值一并存入方案,应用方案时带回
214
+ queryConfig = buildQueryConfig(editingOrder, hiddenFields, (_getQueryValues = getQueryValues === null || getQueryValues === void 0 ? void 0 : getQueryValues()) !== null && _getQueryValues !== void 0 ? _getQueryValues : {}); // 如果有当前方案,更新方案
214
215
  if (!currentScheme) {
215
216
  _context.next = 11;
216
217
  break;
@@ -258,13 +259,13 @@ var QuerySchemeManager = function QuerySchemeManager(_ref) {
258
259
  return _context.stop();
259
260
  }
260
261
  }, _callee, null, [[0, 21]]);
261
- })), [queryItemsData, currentScheme, saveQueryScheme, gridKey, updateQueryOrder, onClose, setCurrentQueryScheme]);
262
+ })), [queryItemsData, currentScheme, saveQueryScheme, gridKey, updateQueryOrder, onClose, setCurrentQueryScheme, getQueryValues]);
262
263
 
263
264
  /**
264
265
  * 保存为新方案
265
266
  */
266
267
  var handleSaveAsNew = useCallback( /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee2() {
267
- var editingOrder, hiddenFields, queryConfig, newScheme;
268
+ var _getQueryValues2, editingOrder, hiddenFields, queryConfig, newScheme;
268
269
  return _regeneratorRuntime().wrap(function _callee2$(_context2) {
269
270
  while (1) switch (_context2.prev = _context2.next) {
270
271
  case 0:
@@ -283,8 +284,8 @@ var QuerySchemeManager = function QuerySchemeManager(_ref) {
283
284
  return item.hidden;
284
285
  }).map(function (item) {
285
286
  return item.field;
286
- }); // 构建新格式的配置
287
- queryConfig = buildQueryConfig(editingOrder, hiddenFields);
287
+ }); // 构建新格式的配置:查询区当前的条件值一并存入方案,应用方案时带回
288
+ queryConfig = buildQueryConfig(editingOrder, hiddenFields, (_getQueryValues2 = getQueryValues === null || getQueryValues === void 0 ? void 0 : getQueryValues()) !== null && _getQueryValues2 !== void 0 ? _getQueryValues2 : {});
288
289
  newScheme = {
289
290
  id: uuidv4(),
290
291
  name: schemeName.trim(),
@@ -310,7 +311,7 @@ var QuerySchemeManager = function QuerySchemeManager(_ref) {
310
311
  return _context2.stop();
311
312
  }
312
313
  }, _callee2, null, [[3, 14]]);
313
- })), [schemeName, queryItemsData, saveQueryScheme, gridKey]);
314
+ })), [schemeName, queryItemsData, saveQueryScheme, gridKey, getQueryValues]);
314
315
 
315
316
  /**
316
317
  * 开始编辑方案
@@ -0,0 +1,37 @@
1
+ import type { GridApi } from 'ag-grid-community';
2
+ import type { ColumnScheme } from '../shared/storage/schemeStorageAdapter';
3
+ import type { FlatColumnItem } from './columnGroupTypes';
4
+ /** 表头上拖拽列宽、列序后,等这么久没有新的拖拽再自动保存(毫秒)。 */
5
+ export declare const AUTO_REMEMBER_DELAY = 600;
6
+ /** 自动记忆关心的 AG Grid 列状态字段。 */
7
+ export interface LayoutColumnState {
8
+ colId: string;
9
+ width?: number;
10
+ flex?: number | null;
11
+ hide?: boolean | null;
12
+ pinned?: boolean | 'left' | 'right' | null;
13
+ }
14
+ /**
15
+ * 把表格当前的列宽、列序、固定、显隐并入列方案配置,其余设置(标题、对齐、分组、过滤按钮)原样保留。
16
+ * 列序只重排列节点的 order 值,分组节点和层级不动。
17
+ */
18
+ export declare function mergeColumnLayout(config: FlatColumnItem[], state: LayoutColumnState[]): FlatColumnItem[];
19
+ /** 合并后的布局是否与原配置不同。 */
20
+ export declare function layoutChanged(before: FlatColumnItem[], after: FlatColumnItem[]): boolean;
21
+ export interface AutoColumnMemoryOptions {
22
+ /** 关闭后不监听表头拖拽,行为回到「必须进列方案管理保存」 */
23
+ enabled: boolean;
24
+ gridKey?: string;
25
+ ready: boolean;
26
+ api?: GridApi;
27
+ originalColumnDefs?: any[];
28
+ currentScheme?: ColumnScheme;
29
+ saveColumnScheme?: (gridKey: string, scheme: ColumnScheme) => Promise<void>;
30
+ setCurrentColumnScheme?: (gridKey: string, schemeId: string | null) => Promise<void>;
31
+ delay?: number;
32
+ }
33
+ /**
34
+ * 列宽、列序在表头上拖拽后自动记忆(DESIGN.md §7.5),不必再进「列方案管理」保存。
35
+ * 全局方案不会被改写:在个人方案上叠加布局,没有个人方案时新建一个。@author nokecy
36
+ */
37
+ export declare function useAutoColumnMemory(options: AutoColumnMemoryOptions): void;