@nokecy/qc-ui 1.0.3 → 1.0.5

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.
@@ -190,7 +190,7 @@ function AgGridPlus(props) {
190
190
  }, [dataSource]);
191
191
  var onRequest = function onRequest(queryFilter) {
192
192
  setLoading(true);
193
- var filter = (0, _utils.convertFilterModel)(queryFilter);
193
+ var filter = (0, _utils.convertFilterModel)(queryFilter, allColDefs);
194
194
  var params = _objectSpread(_objectSpread({
195
195
  filter: filter
196
196
  }, gridParams), {}, {
@@ -211,7 +211,6 @@ function AgGridPlus(props) {
211
211
  setLoading(false);
212
212
  });
213
213
  };
214
- var actionDom = toolBarRender && toolBarRender(apiRef.current, (0, _utils.convertFilterModel)(queryFilter), queryFilter);
215
214
  var sortChanged = function sortChanged(columnApi) {
216
215
  var sortedColumn = columnApi.getColumnState().find(function (col) {
217
216
  return Boolean(col.sort);
@@ -409,6 +408,7 @@ function AgGridPlus(props) {
409
408
  var rowDataMemo = (0, _react.useMemo)(function () {
410
409
  return props.treeData ? (0, _utils.flatten)((0, _utils.toTree)(rowData, treeKeyName !== null && treeKeyName !== void 0 ? treeKeyName : "id", treeParentName !== null && treeParentName !== void 0 ? treeParentName : "parentId"), treeKeyName !== null && treeKeyName !== void 0 ? treeKeyName : "id") : rowData;
411
410
  }, [rowData, props.treeData]);
411
+ var actionDom = toolBarRender && toolBarRender(apiRef.current, (0, _utils.convertFilterModel)(queryFilter, allColDefs), queryFilter);
412
412
  return /*#__PURE__*/_react.default.createElement(_antd.Spin, {
413
413
  spinning: loading,
414
414
  wrapperClassName: "grid-spin"
@@ -16,6 +16,7 @@ interface GridProps extends AgGridReactProps {
16
16
  treeParentName?: string;
17
17
  search?: boolean;
18
18
  headerTitle?: React.ReactNode;
19
+ columnDefs?: (AgGridColumnPropsClone | ColGroupDef<any>)[] | null;
19
20
  toolBarRender?: (gridApi?: GridApi, filter?: string, queryFilter?: any) => React.ReactNode[];
20
21
  /**
21
22
  * 用于标识grid唯一标识,用于保存列方案
@@ -28,12 +29,20 @@ interface GridProps extends AgGridReactProps {
28
29
  gridRef?: React.Ref<GridRef | undefined>;
29
30
  }
30
31
  interface AgGridColumnPropsClone extends ColDef {
32
+ /**
33
+ * 是否模糊查询
34
+ */
35
+ exactQuery?: boolean;
31
36
  hideInTable?: boolean;
32
37
  hideInSearch?: boolean;
33
38
  queryField?: string;
34
39
  searchComponent?: ReactNode | JSX.Element | ((props: any) => JSX.Element);
35
40
  searchComponentProps?: any;
36
41
  searchSort?: number;
42
+ enum?: {
43
+ value: any;
44
+ label: any;
45
+ }[];
37
46
  }
38
47
  declare function AgGridColumn(props: AgGridColumnPropsClone | ColGroupDef): React.JSX.Element;
39
- export { GridProps, AgGridColumn, GridRef };
48
+ export { GridProps, AgGridColumn, GridRef, AgGridColumnPropsClone };
@@ -99,6 +99,9 @@ var FormRender = function FormRender(props) {
99
99
  component = "BoolSelect";
100
100
  break;
101
101
  }
102
+ if (colDef.enum) {
103
+ component = "Select";
104
+ }
102
105
  return component ? component : "Input";
103
106
  }
104
107
  };
@@ -141,6 +144,7 @@ var FormRender = function FormRender(props) {
141
144
  title: headerName,
142
145
  required: (colDef === null || colDef === void 0 || (_colDef$searchCompone = colDef.searchComponentProps) === null || _colDef$searchCompone === void 0 ? void 0 : _colDef$searchCompone.required) || false,
143
146
  default: colDef === null || colDef === void 0 || (_colDef$searchCompone2 = colDef.searchComponentProps) === null || _colDef$searchCompone2 === void 0 ? void 0 : _colDef$searchCompone2.default,
147
+ enum: colDef === null || colDef === void 0 ? void 0 : colDef.enum,
144
148
  "x-component": component,
145
149
  "x-component-props": _objectSpread({
146
150
  placeholder: "\u8BF7\u8F93\u5165".concat(headerName),
@@ -1,5 +1,6 @@
1
1
  import { ValueFormatterParams } from 'ag-grid-community';
2
- declare const convertFilterModel: (filterModel: any) => string;
2
+ import { AgGridColumnPropsClone } from './interface';
3
+ declare const convertFilterModel: (filterModel: any, colDefs: AgGridColumnPropsClone[]) => string;
3
4
  declare const convertSortModel: (sortModel: any[]) => string;
4
5
  declare const dateValueFormatter: (params: ValueFormatterParams) => string;
5
6
  declare const dateTimeValueFormatter: (params: ValueFormatterParams) => string;
@@ -22,9 +22,9 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
22
22
  var esc = function esc(v) {
23
23
  return v.replace(/([(),|,\\]|\/i)/g, '\\$1');
24
24
  };
25
- var getFilter = function getFilter(objectKey, value) {
25
+ var getFilter = function getFilter(objectKey, value, colDef) {
26
26
  if (typeof value === 'string') {
27
- return value && value != "" ? "".concat(objectKey, " =* ").concat(esc(value)) : "";
27
+ return value && value != "" ? "".concat(objectKey, " ").concat(colDef !== null && colDef !== void 0 && colDef.exactQuery ? '=*' : "^", " ").concat(esc(value)) : "";
28
28
  }
29
29
  if (typeof value === 'number') {
30
30
  return "".concat(objectKey, " = ").concat(value);
@@ -36,12 +36,12 @@ var getFilter = function getFilter(objectKey, value) {
36
36
  return "".concat(objectKey, " >= ").concat((0, _dayjs.default)(value[0]).format("YYYY-MM-DD"), " ,") + "".concat(objectKey, " <= ").concat((0, _dayjs.default)(value[1]).add(1, 'days').format("YYYY-MM-DD"));
37
37
  }
38
38
  var items = [];
39
- getObjectFilter(value, objectKey, items);
39
+ getObjectFilter(value, objectKey, items, colDef);
40
40
  return items.filter(function (x) {
41
41
  return !!x;
42
42
  }).join(",");
43
43
  };
44
- var getObjectFilter = function getObjectFilter(obj, objKey, items) {
44
+ var getObjectFilter = function getObjectFilter(obj, objKey, items, colDef) {
45
45
  Object.keys(obj).map(function (key) {
46
46
  var value = obj[key];
47
47
  var objectKey = "".concat(objKey, ".").concat(key);
@@ -49,7 +49,7 @@ var getObjectFilter = function getObjectFilter(obj, objKey, items) {
49
49
  items.push("".concat(objectKey, " = ").concat(value));
50
50
  }
51
51
  if (typeof value === 'string') {
52
- value && value != "" && items.push("".concat(objectKey, " =* ").concat(esc(value)));
52
+ value && value != "" && items.push("".concat(objectKey, " ").concat(colDef !== null && colDef !== void 0 && colDef.exactQuery ? '=*' : "^", " ").concat(esc(value)));
53
53
  }
54
54
  if (typeof value === 'boolean') {
55
55
  items.push("".concat(objectKey, " = ").concat(value));
@@ -60,12 +60,15 @@ var getObjectFilter = function getObjectFilter(obj, objKey, items) {
60
60
  if (value instanceof Object) items.push(getObjectFilter(value, "".concat(objKey, ".").concat(key), items));
61
61
  });
62
62
  };
63
- var convertFilterModel = exports.convertFilterModel = function convertFilterModel(filterModel) {
63
+ var convertFilterModel = exports.convertFilterModel = function convertFilterModel(filterModel, colDefs) {
64
64
  var items = [];
65
65
  Object.keys(filterModel).map(function (key) {
66
66
  var value = filterModel[key];
67
+ var colDef = colDefs.find(function (colDef) {
68
+ return colDef.field == key;
69
+ });
67
70
  if (value !== undefined && value !== null && value !== "") {
68
- var filter = getFilter(key, value);
71
+ var filter = getFilter(key, value, colDef);
69
72
  if (filter && filter != "") {
70
73
  items.push(filter);
71
74
  }
@@ -181,7 +181,7 @@ function AgGridPlus(props) {
181
181
  }, [dataSource]);
182
182
  var onRequest = function onRequest(queryFilter) {
183
183
  setLoading(true);
184
- var filter = convertFilterModel(queryFilter);
184
+ var filter = convertFilterModel(queryFilter, allColDefs);
185
185
  var params = _objectSpread(_objectSpread({
186
186
  filter: filter
187
187
  }, gridParams), {}, {
@@ -202,7 +202,6 @@ function AgGridPlus(props) {
202
202
  setLoading(false);
203
203
  });
204
204
  };
205
- var actionDom = toolBarRender && toolBarRender(apiRef.current, convertFilterModel(queryFilter), queryFilter);
206
205
  var sortChanged = function sortChanged(columnApi) {
207
206
  var sortedColumn = columnApi.getColumnState().find(function (col) {
208
207
  return Boolean(col.sort);
@@ -400,6 +399,7 @@ function AgGridPlus(props) {
400
399
  var rowDataMemo = useMemo(function () {
401
400
  return props.treeData ? flatten(toTree(rowData, treeKeyName !== null && treeKeyName !== void 0 ? treeKeyName : "id", treeParentName !== null && treeParentName !== void 0 ? treeParentName : "parentId"), treeKeyName !== null && treeKeyName !== void 0 ? treeKeyName : "id") : rowData;
402
401
  }, [rowData, props.treeData]);
402
+ var actionDom = toolBarRender && toolBarRender(apiRef.current, convertFilterModel(queryFilter, allColDefs), queryFilter);
403
403
  return /*#__PURE__*/React.createElement(Spin, {
404
404
  spinning: loading,
405
405
  wrapperClassName: "grid-spin"
@@ -16,6 +16,7 @@ interface GridProps extends AgGridReactProps {
16
16
  treeParentName?: string;
17
17
  search?: boolean;
18
18
  headerTitle?: React.ReactNode;
19
+ columnDefs?: (AgGridColumnPropsClone | ColGroupDef<any>)[] | null;
19
20
  toolBarRender?: (gridApi?: GridApi, filter?: string, queryFilter?: any) => React.ReactNode[];
20
21
  /**
21
22
  * 用于标识grid唯一标识,用于保存列方案
@@ -28,12 +29,20 @@ interface GridProps extends AgGridReactProps {
28
29
  gridRef?: React.Ref<GridRef | undefined>;
29
30
  }
30
31
  interface AgGridColumnPropsClone extends ColDef {
32
+ /**
33
+ * 是否模糊查询
34
+ */
35
+ exactQuery?: boolean;
31
36
  hideInTable?: boolean;
32
37
  hideInSearch?: boolean;
33
38
  queryField?: string;
34
39
  searchComponent?: ReactNode | JSX.Element | ((props: any) => JSX.Element);
35
40
  searchComponentProps?: any;
36
41
  searchSort?: number;
42
+ enum?: {
43
+ value: any;
44
+ label: any;
45
+ }[];
37
46
  }
38
47
  declare function AgGridColumn(props: AgGridColumnPropsClone | ColGroupDef): React.JSX.Element;
39
- export { GridProps, AgGridColumn, GridRef };
48
+ export { GridProps, AgGridColumn, GridRef, AgGridColumnPropsClone };
@@ -91,6 +91,9 @@ var FormRender = function FormRender(props) {
91
91
  component = "BoolSelect";
92
92
  break;
93
93
  }
94
+ if (colDef.enum) {
95
+ component = "Select";
96
+ }
94
97
  return component ? component : "Input";
95
98
  }
96
99
  };
@@ -133,6 +136,7 @@ var FormRender = function FormRender(props) {
133
136
  title: headerName,
134
137
  required: (colDef === null || colDef === void 0 || (_colDef$searchCompone = colDef.searchComponentProps) === null || _colDef$searchCompone === void 0 ? void 0 : _colDef$searchCompone.required) || false,
135
138
  default: colDef === null || colDef === void 0 || (_colDef$searchCompone2 = colDef.searchComponentProps) === null || _colDef$searchCompone2 === void 0 ? void 0 : _colDef$searchCompone2.default,
139
+ enum: colDef === null || colDef === void 0 ? void 0 : colDef.enum,
136
140
  "x-component": component,
137
141
  "x-component-props": _objectSpread({
138
142
  placeholder: "\u8BF7\u8F93\u5165".concat(headerName),
@@ -1,5 +1,6 @@
1
1
  import { ValueFormatterParams } from 'ag-grid-community';
2
- declare const convertFilterModel: (filterModel: any) => string;
2
+ import { AgGridColumnPropsClone } from './interface';
3
+ declare const convertFilterModel: (filterModel: any, colDefs: AgGridColumnPropsClone[]) => string;
3
4
  declare const convertSortModel: (sortModel: any[]) => string;
4
5
  declare const dateValueFormatter: (params: ValueFormatterParams) => string;
5
6
  declare const dateTimeValueFormatter: (params: ValueFormatterParams) => string;
@@ -15,9 +15,9 @@ import dayjs from 'dayjs';
15
15
  var esc = function esc(v) {
16
16
  return v.replace(/([(),|,\\]|\/i)/g, '\\$1');
17
17
  };
18
- var getFilter = function getFilter(objectKey, value) {
18
+ var getFilter = function getFilter(objectKey, value, colDef) {
19
19
  if (typeof value === 'string') {
20
- return value && value != "" ? "".concat(objectKey, " =* ").concat(esc(value)) : "";
20
+ return value && value != "" ? "".concat(objectKey, " ").concat(colDef !== null && colDef !== void 0 && colDef.exactQuery ? '=*' : "^", " ").concat(esc(value)) : "";
21
21
  }
22
22
  if (typeof value === 'number') {
23
23
  return "".concat(objectKey, " = ").concat(value);
@@ -29,12 +29,12 @@ var getFilter = function getFilter(objectKey, value) {
29
29
  return "".concat(objectKey, " >= ").concat(dayjs(value[0]).format("YYYY-MM-DD"), " ,") + "".concat(objectKey, " <= ").concat(dayjs(value[1]).add(1, 'days').format("YYYY-MM-DD"));
30
30
  }
31
31
  var items = [];
32
- getObjectFilter(value, objectKey, items);
32
+ getObjectFilter(value, objectKey, items, colDef);
33
33
  return items.filter(function (x) {
34
34
  return !!x;
35
35
  }).join(",");
36
36
  };
37
- var getObjectFilter = function getObjectFilter(obj, objKey, items) {
37
+ var getObjectFilter = function getObjectFilter(obj, objKey, items, colDef) {
38
38
  Object.keys(obj).map(function (key) {
39
39
  var value = obj[key];
40
40
  var objectKey = "".concat(objKey, ".").concat(key);
@@ -42,7 +42,7 @@ var getObjectFilter = function getObjectFilter(obj, objKey, items) {
42
42
  items.push("".concat(objectKey, " = ").concat(value));
43
43
  }
44
44
  if (typeof value === 'string') {
45
- value && value != "" && items.push("".concat(objectKey, " =* ").concat(esc(value)));
45
+ value && value != "" && items.push("".concat(objectKey, " ").concat(colDef !== null && colDef !== void 0 && colDef.exactQuery ? '=*' : "^", " ").concat(esc(value)));
46
46
  }
47
47
  if (typeof value === 'boolean') {
48
48
  items.push("".concat(objectKey, " = ").concat(value));
@@ -53,12 +53,15 @@ var getObjectFilter = function getObjectFilter(obj, objKey, items) {
53
53
  if (value instanceof Object) items.push(getObjectFilter(value, "".concat(objKey, ".").concat(key), items));
54
54
  });
55
55
  };
56
- var convertFilterModel = function convertFilterModel(filterModel) {
56
+ var convertFilterModel = function convertFilterModel(filterModel, colDefs) {
57
57
  var items = [];
58
58
  Object.keys(filterModel).map(function (key) {
59
59
  var value = filterModel[key];
60
+ var colDef = colDefs.find(function (colDef) {
61
+ return colDef.field == key;
62
+ });
60
63
  if (value !== undefined && value !== null && value !== "") {
61
- var filter = getFilter(key, value);
64
+ var filter = getFilter(key, value, colDef);
62
65
  if (filter && filter != "") {
63
66
  items.push(filter);
64
67
  }