@nokecy/qc-ui 1.0.35 → 1.0.37

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.
@@ -11,6 +11,9 @@ var _core = require("@formily/core");
11
11
  var _react2 = _interopRequireWildcard(require("react"));
12
12
  var _icons = require("@ant-design/icons");
13
13
  var _arrayTable = _interopRequireDefault(require("../../array-table"));
14
+ var _antd = require("antd");
15
+ var _diySetting = _interopRequireDefault(require("./diySetting"));
16
+ var _ = require("..");
14
17
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
15
18
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
16
19
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -28,6 +31,10 @@ var Setting = function Setting(props) {
28
31
  gridApi = props.gridApi,
29
32
  gridApiState = props.gridApiState,
30
33
  onSaveColumnState = props.onSaveColumnState;
34
+ var _useGridPlusColumnSta = (0, _.useGridPlusColumnState)(),
35
+ applyToGlobal = _useGridPlusColumnSta.applyToGlobal,
36
+ resetCurrent = _useGridPlusColumnSta.resetCurrent,
37
+ resetAll = _useGridPlusColumnSta.resetAll;
31
38
  var SchemaField = (0, _react2.useMemo)(function () {
32
39
  return (0, _react.createSchemaField)({
33
40
  components: {
@@ -77,8 +84,49 @@ var Setting = function Setting(props) {
77
84
  var tableProps = {
78
85
  onRowDrag: true
79
86
  };
87
+ var items = [{
88
+ key: '1',
89
+ label: /*#__PURE__*/_react2.default.createElement(_diySetting.default, {
90
+ gridKey: gridKey,
91
+ gridApi: gridApi,
92
+ onSaveColumnState: onSaveColumnState
93
+ })
94
+ }, {
95
+ key: '2',
96
+ label: /*#__PURE__*/_react2.default.createElement("a", {
97
+ target: "_blank",
98
+ rel: "noopener noreferrer",
99
+ onClick: function onClick() {
100
+ applyToGlobal(gridKey);
101
+ }
102
+ }, "\u5E94\u7528\u5230\u5168\u5C40")
103
+ }, {
104
+ key: '3',
105
+ label: /*#__PURE__*/_react2.default.createElement("a", {
106
+ target: "_blank",
107
+ rel: "noopener noreferrer",
108
+ onClick: function onClick() {
109
+ resetCurrent(gridKey);
110
+ }
111
+ }, "\u6062\u590D\u9ED8\u8BA4")
112
+ }, {
113
+ key: '3',
114
+ label: /*#__PURE__*/_react2.default.createElement("a", {
115
+ target: "_blank",
116
+ rel: "noopener noreferrer",
117
+ onClick: function onClick() {
118
+ resetAll();
119
+ }
120
+ }, "\u5168\u5C40\u6062\u590D\u9ED8\u8BA4")
121
+ }];
80
122
  return /*#__PURE__*/_react2.default.createElement(_antdV.FormDialog.Portal, {
81
123
  id: portalId
124
+ }, /*#__PURE__*/_react2.default.createElement(_antd.Dropdown, {
125
+ menu: {
126
+ items: items
127
+ },
128
+ placement: "bottomRight",
129
+ trigger: ['click']
82
130
  }, /*#__PURE__*/_react2.default.createElement("div", {
83
131
  style: {
84
132
  margin: "0 4px",
@@ -87,160 +135,14 @@ var Setting = function Setting(props) {
87
135
  cursor: "pointer"
88
136
  },
89
137
  onClick: /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
90
- var formDialog;
91
138
  return _regeneratorRuntime().wrap(function _callee$(_context) {
92
139
  while (1) switch (_context.prev = _context.next) {
93
140
  case 0:
94
- formDialog = (0, _antdV.FormDialog)({
95
- title: "个性化设置",
96
- width: 960
97
- }, portalId, function () {
98
- return /*#__PURE__*/_react2.default.createElement(_antdV.FormLayout, null, /*#__PURE__*/_react2.default.createElement(SchemaField, null, /*#__PURE__*/_react2.default.createElement(SchemaField.Void, {
99
- "x-component": "FormGrid",
100
- "x-component-props": {
101
- maxColumns: [1, 3],
102
- strictAutoFit: true
103
- }
104
- }, /*#__PURE__*/_react2.default.createElement(SchemaField.Array, {
105
- name: "items",
106
- title: "",
107
- "x-component": "ArrayTable",
108
- "x-component-props": tableProps,
109
- "x-validator": [{
110
- message: ""
111
- }],
112
- "x-decorator": "FormItem",
113
- "x-decorator-props": {
114
- gridSpan: 3
115
- }
116
- }, /*#__PURE__*/_react2.default.createElement(SchemaField.Object, null, /*#__PURE__*/_react2.default.createElement(SchemaField.Void, {
117
- "x-component": "ArrayTable.Column",
118
- "x-component-props": {
119
- width: 80,
120
- title: "排序"
121
- }
122
- }, /*#__PURE__*/_react2.default.createElement(SchemaField.Void, {
123
- "x-decorator": "FormItem",
124
- required: true,
125
- "x-component": "ArrayTable.SortHandle"
126
- })), /*#__PURE__*/_react2.default.createElement(SchemaField.Void, {
127
- "x-component": "ArrayTable.Column",
128
- "x-component-props": {
129
- width: 280,
130
- title: "列名"
131
- }
132
- }, /*#__PURE__*/_react2.default.createElement(SchemaField.String, {
133
- name: "headerName",
134
- "x-decorator": "FormItem",
135
- "x-component": "Input",
136
- "x-read-pretty": true
137
- })), /*#__PURE__*/_react2.default.createElement(SchemaField.Void, {
138
- "x-component": "ArrayTable.Column",
139
- "x-component-props": {
140
- width: 80,
141
- title: "列过滤"
142
- }
143
- }, /*#__PURE__*/_react2.default.createElement(SchemaField.String, {
144
- name: "suppressHeaderFilterButton",
145
- "x-decorator": "FormItem",
146
- "x-component": "Switch"
147
- })), /*#__PURE__*/_react2.default.createElement(SchemaField.Void, {
148
- "x-component": "ArrayTable.Column",
149
- "x-component-props": {
150
- width: 120,
151
- title: '内容布局'
152
- }
153
- }, /*#__PURE__*/_react2.default.createElement(SchemaField.String, {
154
- name: "cellClass",
155
- "x-decorator": "FormItem",
156
- "x-component": "Select",
157
- default: "custom-cell-left",
158
- enum: [{
159
- value: "custom-cell-left",
160
- label: "左对齐"
161
- }, {
162
- value: "custom-cell-right",
163
- label: "右对齐"
164
- }, {
165
- value: 'custom-cell-centered',
166
- label: "居中对齐"
167
- }]
168
- })), /*#__PURE__*/_react2.default.createElement(SchemaField.Void, {
169
- "x-component": "ArrayTable.Column",
170
- "x-component-props": {
171
- width: 100,
172
- title: "宽度"
173
- }
174
- }, /*#__PURE__*/_react2.default.createElement(SchemaField.String, {
175
- name: "width",
176
- "x-decorator": "FormItem",
177
- "x-component": "NumberPicker"
178
- })), /*#__PURE__*/_react2.default.createElement(SchemaField.Void, {
179
- "x-component": "ArrayTable.Column",
180
- "x-component-props": {
181
- width: 100,
182
- title: "占满"
183
- }
184
- }, /*#__PURE__*/_react2.default.createElement(SchemaField.String, {
185
- name: "flex",
186
- "x-decorator": "FormItem",
187
- "x-component": "Select",
188
- enum: [{
189
- value: 1,
190
- label: "占满"
191
- }, {
192
- value: 0,
193
- label: "不占满"
194
- }]
195
- })), /*#__PURE__*/_react2.default.createElement(SchemaField.Void, {
196
- "x-component": "ArrayTable.Column",
197
- "x-component-props": {
198
- width: 100,
199
- title: '固定位置'
200
- }
201
- }, /*#__PURE__*/_react2.default.createElement(SchemaField.String, {
202
- name: "pinned",
203
- "x-decorator": "FormItem",
204
- "x-component": "Select",
205
- enum: [{
206
- value: "left",
207
- label: "左固定"
208
- }, {
209
- value: "right",
210
- label: "右固定"
211
- }, {
212
- value: 'notPinned',
213
- label: "不固定"
214
- }]
215
- })), /*#__PURE__*/_react2.default.createElement(SchemaField.Void, {
216
- "x-component": "ArrayTable.Column",
217
- "x-component-props": {
218
- title: '隐藏'
219
- }
220
- }, /*#__PURE__*/_react2.default.createElement(SchemaField.String, {
221
- name: "hide",
222
- "x-decorator": "FormItem",
223
- "x-component": "Switch"
224
- })))))));
225
- });
226
- formDialog.forConfirm(function (payload, next) {
227
- var values = payload.values;
228
- onSaveColumnState && onSaveColumnState(values.items);
229
- gridApi.setGridOption("columnDefs", values.items);
230
- setTimeout(function () {
231
- gridApi.applyColumnState({
232
- state: values.items,
233
- applyOrder: true
234
- });
235
- }, 10);
236
- next(payload);
237
- }).open(formProps);
238
- case 2:
239
141
  case "end":
240
142
  return _context.stop();
241
143
  }
242
144
  }, _callee);
243
145
  }))
244
- }, /*#__PURE__*/_react2.default.createElement(_icons.SettingOutlined, null)));
146
+ }, /*#__PURE__*/_react2.default.createElement(_icons.SettingOutlined, null))));
245
147
  };
246
148
  var _default = exports.default = Setting;
@@ -0,0 +1,2 @@
1
+ declare const processColumnGroups: (columns: any[]) => any;
2
+ export default processColumnGroups;
@@ -0,0 +1,44 @@
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
+ var processColumnGroups = function processColumnGroups(columns) {
8
+ var groupMap = new Map();
9
+ var result = [];
10
+
11
+ // 第一次遍历:创建分组结构
12
+ columns.forEach(function (col) {
13
+ if (col.groupName) {
14
+ if (!groupMap.has(col.groupName)) {
15
+ groupMap.set(col.groupName, {
16
+ headerName: col.groupName,
17
+ field: "".concat(col.groupName, "header"),
18
+ children: []
19
+ });
20
+ }
21
+ }
22
+ });
23
+
24
+ // 第二次遍历:按原始顺序处理列
25
+ columns.forEach(function (col) {
26
+ if (col.groupName) {
27
+ var groupCol = _objectSpread({}, col);
28
+ // delete groupCol.groupName;
29
+
30
+ // 如果这是该组的第一个元素,将组添加到结果中
31
+ if (groupMap.get(col.groupName).children.length === 0) {
32
+ result.push(groupMap.get(col.groupName));
33
+ }
34
+
35
+ // 将列添加到对应的组中
36
+ groupMap.get(col.groupName).children.push(groupCol);
37
+ } else {
38
+ // 未分组的列直接添加到结果中
39
+ result.push(col);
40
+ }
41
+ });
42
+ return result;
43
+ };
44
+ export default processColumnGroups;
@@ -30,6 +30,7 @@ import { convertFilterModel, dateTimeValueFormatter, dateValueFormatter, flatten
30
30
  import Setting from "./setting";
31
31
  import { useGridPlusColumnState } from '.';
32
32
  import CustomGroupCellRenderer from "./_utils/customGroupCellRenderer";
33
+ import processColumnGroups from "./_utils/processColumnGroups";
33
34
  var Paragraph = Typography.Paragraph,
34
35
  Text = Typography.Text;
35
36
  var getSort = function getSort(columnState) {
@@ -58,7 +59,10 @@ function AgGridPlus(props) {
58
59
  var _useGridPlusColumnSta = useGridPlusColumnState(),
59
60
  onSaveColumnState = _useGridPlusColumnSta.onSaveColumnState,
60
61
  gridPlusColumnState = _useGridPlusColumnSta.columnState,
61
- extensibleColumns = _useGridPlusColumnSta.extensibleColumns;
62
+ extensibleColumns = _useGridPlusColumnSta.extensibleColumns,
63
+ applyToGlobal = _useGridPlusColumnSta.applyToGlobal,
64
+ resetCurrent = _useGridPlusColumnSta.resetCurrent,
65
+ resetAll = _useGridPlusColumnSta.resetAll;
62
66
  var gridRef = useRef();
63
67
  var apiRef = useRef();
64
68
  var _useState = useState(false),
@@ -168,10 +172,12 @@ function AgGridPlus(props) {
168
172
  useEffect(function () {
169
173
  if (gridPlusColumnState && gridKey && gridPlusColumnState[gridKey] && apiRef.current) {
170
174
  setColumnCellClass(handelgridPlusColumnState(gridPlusColumnState[gridKey]));
171
- apiRef.current.applyColumnState({
172
- state: gridPlusColumnState[gridKey],
173
- applyOrder: true
174
- });
175
+ setTimeout(function () {
176
+ apiRef.current.applyColumnState({
177
+ state: gridPlusColumnState[gridKey],
178
+ applyOrder: true
179
+ });
180
+ }, 10);
175
181
  }
176
182
  }, [gridPlusColumnState, apiRef.current]);
177
183
  useEffect(function () {
@@ -224,11 +230,14 @@ function AgGridPlus(props) {
224
230
  cellMap[item.field] = {
225
231
  cellClass: item.cellClass,
226
232
  // 单元格默认样式类
227
- suppressHeaderFilterButton: item.suppressHeaderFilterButton // 是否显示过滤按钮
233
+ suppressHeaderFilterButton: item.suppressHeaderFilterButton,
234
+ // 是否显示过滤按钮
235
+ groupName: item.groupName // 分组名称
228
236
  };
229
237
  }
230
238
  });
231
239
  }
240
+ console.log('record1 columnState 3', cellMap);
232
241
  return cellMap;
233
242
  };
234
243
  var sortChanged = function sortChanged(columnApi) {
@@ -363,6 +372,7 @@ function AgGridPlus(props) {
363
372
  return _objectSpread({}, child.props);
364
373
  });
365
374
  var columnDefs = !columnProps ? props.columnDefs ? props.columnDefs : [] : columnProps;
375
+ console.log('record1 columnDefs 2', columnDefs);
366
376
  columnDefs = columnDefs.map(function (col) {
367
377
  var dataType = getDataType(data, col.field);
368
378
  if (col.type || typeof col.cellRenderer == "string") {
@@ -443,6 +453,9 @@ function AgGridPlus(props) {
443
453
  if (cellConfig.cellClass) {
444
454
  i.cellClass = cellConfig.cellClass;
445
455
  }
456
+ if (cellConfig.groupName) {
457
+ i.groupName = cellConfig.groupName;
458
+ }
446
459
  if (cellConfig.suppressHeaderFilterButton !== undefined) {
447
460
  i.suppressHeaderFilterButton = !cellConfig.suppressHeaderFilterButton;
448
461
  }
@@ -451,7 +464,9 @@ function AgGridPlus(props) {
451
464
  }).filter(function (x) {
452
465
  return !x.hideInTable;
453
466
  });
454
- return columnDefs;
467
+ var processedColumns = processColumnGroups(columnDefs);
468
+ console.log('record1 columnDefs 1', processedColumns);
469
+ return processedColumns;
455
470
  }, [children === null || children === void 0 ? void 0 : children.length, props.columnDefs, extensibleColumns, columnCellClass]);
456
471
  var allColDefs = useMemo(function () {
457
472
  return getTableColumns(rowData);
@@ -601,7 +616,7 @@ function AgGridPlus(props) {
601
616
  showTotal: function showTotal(total, range) {
602
617
  return "\u7B2C ".concat(range[0], "-").concat(range[1], " \u6761/\u603B\u5171 ").concat(total, " \u6761");
603
618
  },
604
- pageSizeOptions: props.pageSizeOptions || [10, 100, 200, 500, 1000, 10000],
619
+ pageSizeOptions: props.pageSizeOptions || [10, 20, 50, 100, 200, 500, 1000, 10000],
605
620
  hideOnSinglePage: false,
606
621
  showQuickJumper: false
607
622
  })))));
@@ -1,12 +1,31 @@
1
- import React from 'react';
1
+ import React from "react";
2
2
  export declare const GridPlusContext: React.Context<{
3
3
  /**
4
- * 扩展列运行时动态添加
4
+ * 扩展列,允许运行时动态添加,用于展示用户自定义的列
5
5
  */
6
6
  extensibleColumns: any;
7
7
  /**
8
- * 用户自定义的列状态信息
8
+ * 当前表格的列状态信息,包括列的显示/隐藏、顺序、宽度等
9
9
  */
10
10
  columnState: any;
11
+ /**
12
+ * 保存当前表格的列状态到服务器(仅保存当前表格)
13
+ * @param gridKey 表格唯一标识
14
+ * @param columnState 当前列状态数组
15
+ */
11
16
  onSaveColumnState: (gridKey: string, columnState: any[]) => void;
17
+ /**
18
+ * 将当前列配置应用为“全局默认”,影响所有表格
19
+ * @param columnState 要应用的列配置
20
+ */
21
+ applyToGlobal: (gridKey: string) => void;
22
+ /**
23
+ * 恢复当前表格为“默认列配置”
24
+ * @param gridKey 表格唯一标识
25
+ */
26
+ resetCurrent: (gridKey: string) => void;
27
+ /**
28
+ * 全局恢复所有表格为默认列配置
29
+ */
30
+ resetAll: () => void;
12
31
  }>;
@@ -1,6 +1,9 @@
1
- import React from 'react';
1
+ import React from "react";
2
2
  export var GridPlusContext = /*#__PURE__*/React.createContext({
3
3
  extensibleColumns: [],
4
4
  columnState: undefined,
5
- onSaveColumnState: function onSaveColumnState(gridKey, columnState) {}
5
+ onSaveColumnState: function onSaveColumnState() {},
6
+ applyToGlobal: function applyToGlobal() {},
7
+ resetCurrent: function resetCurrent() {},
8
+ resetAll: function resetAll() {}
6
9
  });
@@ -6,6 +6,9 @@ export declare const useGridPlusColumnState: () => {
6
6
  extensibleColumns: any;
7
7
  columnState: any;
8
8
  onSaveColumnState: (gridKey: string, columnState: any[]) => void;
9
+ applyToGlobal: (gridKey: string) => void;
10
+ resetCurrent: (gridKey: string) => void;
11
+ resetAll: () => void;
9
12
  };
10
13
  export { AgGridPlus, AgGridColumn, GridPlusContext };
11
14
  export { dateValueFormatter, dateTimeValueFormatter, convertFilterModel, convertSortModel, flattenTreeDeep, toTree, flatten } from "./utils";
@@ -0,0 +1,9 @@
1
+ import { GridApi } from 'ag-grid-community';
2
+ import React from "react";
3
+ declare const DiySetting: (props: {
4
+ gridKey?: string | undefined;
5
+ gridApi?: GridApi<any> | undefined;
6
+ gridApiState?: GridApi<any> | undefined;
7
+ onSaveColumnState: (state: any) => void;
8
+ }) => React.JSX.Element | null;
9
+ export default DiySetting;