@nokecy/qc-ui 1.1.88 → 1.1.89

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.
@@ -43,7 +43,7 @@ var _requestParams = require("./utils/requestParams");
43
43
  var _errors = require("./errors");
44
44
  var _logger = require("./utils/logger");
45
45
  var _entityExtensionColumns = require("./utils/entityExtensionColumns");
46
- var _excluded = ["style", "loading", "params", "request", "dataSource", "treeKeyName", "treeParentName", "rowData", "gridRef", "headerTitle", "toolBarRender", "search", "hideTool", "onGridReady", "gridKey", "children", "defaultSearchExpand", "overlayNoRowsTemplateText", "queryDefaultRows", "onSelectedRowsChange", "emptyState", "accessible", "enableClickSelection", "rowSelection", "useNativeTreeFilter", "entityType", "valueEnumContrast"];
46
+ var _excluded = ["style", "loading", "params", "request", "dataSource", "treeKeyName", "treeParentName", "rowData", "gridRef", "headerTitle", "toolBarRender", "search", "hideTool", "onGridReady", "gridKey", "children", "defaultSearchExpand", "overlayNoRowsTemplateText", "queryDefaultRows", "onSelectedRowsChange", "onQueryValuesChange", "emptyState", "accessible", "enableClickSelection", "rowSelection", "useNativeTreeFilter", "entityType", "valueEnumContrast"];
47
47
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
48
48
  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); }
49
49
  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; }
@@ -109,6 +109,7 @@ function AgGridPlus(props) {
109
109
  overlayNoRowsTemplateText = props.overlayNoRowsTemplateText,
110
110
  queryDefaultRows = props.queryDefaultRows,
111
111
  onSelectedRowsChange = props.onSelectedRowsChange,
112
+ onQueryValuesChange = props.onQueryValuesChange,
112
113
  emptyState = props.emptyState,
113
114
  _props$accessible = props.accessible,
114
115
  accessible = _props$accessible === void 0 ? true : _props$accessible,
@@ -1161,6 +1162,7 @@ function AgGridPlus(props) {
1161
1162
  columnStates: (_ref = derivedColumnState !== null && derivedColumnState !== void 0 ? derivedColumnState : columnState) !== null && _ref !== void 0 ? _ref : [],
1162
1163
  defaultExpand: defaultSearchExpand,
1163
1164
  gridApi: apiRef.current,
1165
+ onValuesChange: onQueryValuesChange,
1164
1166
  onQuery: function onQuery(formValues) {
1165
1167
  // 优先使用高级搜索:如果存在高级搜索条件,忽略简单查询
1166
1168
  if (advancedQueryRules.children.length > 0) {
@@ -85,6 +85,12 @@ interface GridProps extends AgGridReactProps {
85
85
  * 选中行变化回调函数
86
86
  */
87
87
  onSelectedRowsChange?: (selectedRows: any[]) => void;
88
+ /**
89
+ * 查询区条件值变化时回调(输入、默认值落位、重置都会触发),参数为当前条件快照,以查询字段名为键。
90
+ * 只通知、不发起查询;宿主可据此与上次查询用的条件比较,提示「条件已变更,请查询」。
91
+ * @author nokecy
92
+ */
93
+ onQueryValuesChange?: (values: Record<string, any>) => void;
88
94
  /**
89
95
  * 错误处理回调函数
90
96
  * 当组件发生错误时调用,可用于自定义错误处理逻辑
@@ -12,5 +12,7 @@ declare const FormRender: (props: {
12
12
  defaultRows?: number | undefined;
13
13
  onQuery: (formValue: any) => void;
14
14
  onInit?: ((defaultValues: any) => void) | undefined;
15
+ /** 查询条件值变化(输入、默认值落位、重置)时回调,参数为当前条件快照;不触发查询。@author nokecy */
16
+ onValuesChange?: ((values: Record<string, any>) => void) | undefined;
15
17
  }) => React.JSX.Element;
16
18
  export default FormRender;
@@ -55,6 +55,20 @@ var FormRender = function FormRender(props) {
55
55
  var form = (0, _react2.useMemo)(function () {
56
56
  return (0, _core.createForm)();
57
57
  }, []);
58
+
59
+ // 条件变化只通知宿主(如提示「条件已变更」),回调走 ref,宿主每次渲染传新函数也不重复订阅。@author nokecy
60
+ var onValuesChangeRef = (0, _react2.useRef)(props.onValuesChange);
61
+ onValuesChangeRef.current = props.onValuesChange;
62
+ (0, _react2.useEffect)(function () {
63
+ var id = form.subscribe(function (_ref) {
64
+ var _onValuesChangeRef$cu;
65
+ var type = _ref.type;
66
+ if (type === _core.LifeCycleTypes.ON_FORM_VALUES_CHANGE) (_onValuesChangeRef$cu = onValuesChangeRef.current) === null || _onValuesChangeRef$cu === void 0 || _onValuesChangeRef$cu.call(onValuesChangeRef, _objectSpread({}, form.values));
67
+ });
68
+ return function () {
69
+ return form.unsubscribe(id);
70
+ };
71
+ }, [form]);
58
72
  var SchemaField = (0, _react2.useMemo)(function () {
59
73
  return (0, _react.createSchemaField)({
60
74
  components: {
@@ -196,10 +210,10 @@ var FormRender = function FormRender(props) {
196
210
  previousFieldsRef.current = Object.keys(fieldSchemas);
197
211
  setSchema(new_schema);
198
212
  // 已有字段同步元数据,不触碰仍有效字段的查询值,也不触发查询。@author nokecy
199
- Object.entries(fieldSchemas).forEach(function (_ref) {
200
- var _ref2 = _slicedToArray(_ref, 2),
201
- name = _ref2[0],
202
- fieldSchema = _ref2[1];
213
+ Object.entries(fieldSchemas).forEach(function (_ref2) {
214
+ var _ref3 = _slicedToArray(_ref2, 2),
215
+ name = _ref3[0],
216
+ fieldSchema = _ref3[1];
203
217
  form.query(name).take(function (field) {
204
218
  var _fieldSchema$enum;
205
219
  field.title = fieldSchema.title;
@@ -1,4 +1,4 @@
1
- var _excluded = ["style", "loading", "params", "request", "dataSource", "treeKeyName", "treeParentName", "rowData", "gridRef", "headerTitle", "toolBarRender", "search", "hideTool", "onGridReady", "gridKey", "children", "defaultSearchExpand", "overlayNoRowsTemplateText", "queryDefaultRows", "onSelectedRowsChange", "emptyState", "accessible", "enableClickSelection", "rowSelection", "useNativeTreeFilter", "entityType", "valueEnumContrast"];
1
+ var _excluded = ["style", "loading", "params", "request", "dataSource", "treeKeyName", "treeParentName", "rowData", "gridRef", "headerTitle", "toolBarRender", "search", "hideTool", "onGridReady", "gridKey", "children", "defaultSearchExpand", "overlayNoRowsTemplateText", "queryDefaultRows", "onSelectedRowsChange", "onQueryValuesChange", "emptyState", "accessible", "enableClickSelection", "rowSelection", "useNativeTreeFilter", "entityType", "valueEnumContrast"];
2
2
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
3
3
  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); }
4
4
  function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }
@@ -101,6 +101,7 @@ function AgGridPlus(props) {
101
101
  overlayNoRowsTemplateText = props.overlayNoRowsTemplateText,
102
102
  queryDefaultRows = props.queryDefaultRows,
103
103
  onSelectedRowsChange = props.onSelectedRowsChange,
104
+ onQueryValuesChange = props.onQueryValuesChange,
104
105
  emptyState = props.emptyState,
105
106
  _props$accessible = props.accessible,
106
107
  accessible = _props$accessible === void 0 ? true : _props$accessible,
@@ -1153,6 +1154,7 @@ function AgGridPlus(props) {
1153
1154
  columnStates: (_ref = derivedColumnState !== null && derivedColumnState !== void 0 ? derivedColumnState : columnState) !== null && _ref !== void 0 ? _ref : [],
1154
1155
  defaultExpand: defaultSearchExpand,
1155
1156
  gridApi: apiRef.current,
1157
+ onValuesChange: onQueryValuesChange,
1156
1158
  onQuery: function onQuery(formValues) {
1157
1159
  // 优先使用高级搜索:如果存在高级搜索条件,忽略简单查询
1158
1160
  if (advancedQueryRules.children.length > 0) {
@@ -85,6 +85,12 @@ interface GridProps extends AgGridReactProps {
85
85
  * 选中行变化回调函数
86
86
  */
87
87
  onSelectedRowsChange?: (selectedRows: any[]) => void;
88
+ /**
89
+ * 查询区条件值变化时回调(输入、默认值落位、重置都会触发),参数为当前条件快照,以查询字段名为键。
90
+ * 只通知、不发起查询;宿主可据此与上次查询用的条件比较,提示「条件已变更,请查询」。
91
+ * @author nokecy
92
+ */
93
+ onQueryValuesChange?: (values: Record<string, any>) => void;
88
94
  /**
89
95
  * 错误处理回调函数
90
96
  * 当组件发生错误时调用,可用于自定义错误处理逻辑
@@ -12,5 +12,7 @@ declare const FormRender: (props: {
12
12
  defaultRows?: number | undefined;
13
13
  onQuery: (formValue: any) => void;
14
14
  onInit?: ((defaultValues: any) => void) | undefined;
15
+ /** 查询条件值变化(输入、默认值落位、重置)时回调,参数为当前条件快照;不触发查询。@author nokecy */
16
+ onValuesChange?: ((values: Record<string, any>) => void) | undefined;
15
17
  }) => React.JSX.Element;
16
18
  export default FormRender;
@@ -11,7 +11,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
11
11
  function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
12
12
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
13
13
  import { DatePicker, FormButtonGroup, FormGrid, FormItem, Form, Input, Select, Submit } from '@formily/antd-v5'; // @author nokecy
14
- import { createForm } from '@formily/core';
14
+ import { createForm, LifeCycleTypes } from '@formily/core';
15
15
  import { createSchemaField } from '@formily/react';
16
16
  import { Button, theme } from 'antd';
17
17
  import classNames from 'classnames';
@@ -46,6 +46,20 @@ var FormRender = function FormRender(props) {
46
46
  var form = useMemo(function () {
47
47
  return createForm();
48
48
  }, []);
49
+
50
+ // 条件变化只通知宿主(如提示「条件已变更」),回调走 ref,宿主每次渲染传新函数也不重复订阅。@author nokecy
51
+ var onValuesChangeRef = useRef(props.onValuesChange);
52
+ onValuesChangeRef.current = props.onValuesChange;
53
+ useEffect(function () {
54
+ var id = form.subscribe(function (_ref) {
55
+ var _onValuesChangeRef$cu;
56
+ var type = _ref.type;
57
+ if (type === LifeCycleTypes.ON_FORM_VALUES_CHANGE) (_onValuesChangeRef$cu = onValuesChangeRef.current) === null || _onValuesChangeRef$cu === void 0 || _onValuesChangeRef$cu.call(onValuesChangeRef, _objectSpread({}, form.values));
58
+ });
59
+ return function () {
60
+ return form.unsubscribe(id);
61
+ };
62
+ }, [form]);
49
63
  var SchemaField = useMemo(function () {
50
64
  return createSchemaField({
51
65
  components: {
@@ -187,10 +201,10 @@ var FormRender = function FormRender(props) {
187
201
  previousFieldsRef.current = Object.keys(fieldSchemas);
188
202
  setSchema(new_schema);
189
203
  // 已有字段同步元数据,不触碰仍有效字段的查询值,也不触发查询。@author nokecy
190
- Object.entries(fieldSchemas).forEach(function (_ref) {
191
- var _ref2 = _slicedToArray(_ref, 2),
192
- name = _ref2[0],
193
- fieldSchema = _ref2[1];
204
+ Object.entries(fieldSchemas).forEach(function (_ref2) {
205
+ var _ref3 = _slicedToArray(_ref2, 2),
206
+ name = _ref3[0],
207
+ fieldSchema = _ref3[1];
194
208
  form.query(name).take(function (field) {
195
209
  var _fieldSchema$enum;
196
210
  field.title = fieldSchema.title;