@magicbe/antd-crud 0.0.46 → 0.0.47

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.
@@ -25,20 +25,23 @@ import { jsx as _jsx } from "react/jsx-runtime";
25
25
  import React, { useImperativeHandle } from "react";
26
26
  import { Form as AntdForm, Empty } from "antd";
27
27
  import Field from "./Field";
28
- import { get, isObject, isString } from "lodash";
28
+ import { get, isFunction, isObject, isString } from "lodash";
29
29
  import { useTableContext } from "./Context";
30
30
  var AddForm = React.forwardRef(function (_a, ref) {
31
31
  var default_data = _a.default_data;
32
32
  var form = AntdForm.useForm()[0];
33
33
  var columns = useTableContext().columns;
34
34
  var fields = columns === null || columns === void 0 ? void 0 : columns.filter(function (_a) {
35
- var add = _a.add, edit = _a.edit;
35
+ var add = _a.add;
36
36
  return !!add;
37
37
  }).map(function (_a) {
38
38
  var add = _a.add, edit = _a.edit, field = _a.field, column = __rest(_a, ["add", "edit", "field"]);
39
39
  if (add === true) {
40
40
  return Object.assign(column, { field: field });
41
41
  }
42
+ if (isFunction(add)) {
43
+ return Object.assign(column, { field: add });
44
+ }
42
45
  if (isObject(add)) {
43
46
  return Object.assign(column, { field: add });
44
47
  }
@@ -25,7 +25,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
25
25
  import React, { useImperativeHandle } from "react";
26
26
  import { Form as AntdForm, Empty } from "antd";
27
27
  import { useTableContext } from "./Context";
28
- import { get, isObject, isString } from "lodash";
28
+ import { get, isFunction, isObject, isString } from "lodash";
29
29
  import Field from "./Field";
30
30
  var EditForm = React.forwardRef(function (_a, ref) {
31
31
  var _b = _a.default_data, default_data = _b === void 0 ? {} : _b;
@@ -39,6 +39,9 @@ var EditForm = React.forwardRef(function (_a, ref) {
39
39
  if (edit === true) {
40
40
  return Object.assign(column, { field: field });
41
41
  }
42
+ if (isFunction(edit)) {
43
+ return Object.assign(column, { field: edit });
44
+ }
42
45
  if (isObject(edit)) {
43
46
  return Object.assign(column, { field: edit });
44
47
  }
@@ -40,6 +40,7 @@ var presets = {
40
40
  };
41
41
  TimePicker.RangePicker;
42
42
  var Field = function (props) {
43
+ var form = Form.useFormInstance();
43
44
  var field = props.field, dataIndex = props.dataIndex, title = props.title;
44
45
  var _a = useMemo(function () {
45
46
  var basic = { name: dataIndex, label: title, rules: [] };
@@ -65,6 +66,17 @@ var Field = function (props) {
65
66
  };
66
67
  return getNext(field);
67
68
  }, [field, dataIndex, title]), Component = _a.Component, name = _a.name, label = _a.label, _b = _a.option, option = _b === void 0 ? {} : _b, rules = _a.rules;
69
+ // 监听值变化
70
+ var value = Form.useWatch(null, form);
71
+ // 监听值变化,根据 filter 函数判断是否展示
72
+ var show = useMemo(function () {
73
+ if (!isFunction(field) && isObject(field)) {
74
+ var _a = field.filter, filter = _a === void 0 ? function () { return true; } : _a;
75
+ return filter(value, form);
76
+ }
77
+ }, [value]);
78
+ if (!show)
79
+ return _jsx(Fragment, {});
68
80
  return (_jsx(Form.Item, { name: name, label: label, rules: rules, hidden: field === "Hidden", children: _jsx(Component, __assign({}, option)) }));
69
81
  };
70
82
  export default Field;
@@ -12,6 +12,7 @@ export interface BaseColumnField<T extends string, O = any> {
12
12
  option?: O;
13
13
  rules?: Rule[];
14
14
  order?: number;
15
+ filter?: (values: AnyObject, form: FormInstance) => boolean;
15
16
  }
16
17
  /**隐藏字段 */
17
18
  export interface ColumnHiddenField extends BaseColumnField<"Hidden"> {
@@ -84,6 +85,7 @@ export interface CustormColumnField {
84
85
  option?: any;
85
86
  rules?: Rule[];
86
87
  order?: number;
88
+ filter?: (values: AnyObject, form: FormInstance) => boolean;
87
89
  }
88
90
  export type ColumnField = ColumnHiddenField | ColumnInputField | ColumnInputPasswordField | ColumnTextAreaField | ColumnInputNumberField | ColumnSelectField | ColumnCascaderField | ColumnTreeSelectField | ColumnCheckboxField | ColumnCheckboxGroupField | ColumnDatePickerField | ColumnDatePickerYearPickerField | ColumnDatePickerMonthPickerField | ColumnDatePickerWeekPickerField | ColumnDatePickerTimePickerField | ColumnDatePickerRangePickerField | ColumnDatePickerQuarterPickerField | ColumnTimePickerField | ColumnTimePickerRangePickerField | ColumnRadioField | ColumnRadioGroupField | ColumnSwitchField | CustormColumnField;
89
91
  export type ColumnFieldKeys = ColumnHiddenField["type"] | ColumnInputField["type"] | ColumnInputPasswordField["type"] | ColumnTextAreaField["type"] | ColumnInputNumberField["type"] | ColumnSelectField["type"] | ColumnCascaderField["type"] | ColumnTreeSelectField["type"] | ColumnCheckboxField["type"] | ColumnCheckboxGroupField["type"] | ColumnDatePickerField["type"] | ColumnDatePickerYearPickerField["type"] | ColumnDatePickerMonthPickerField["type"] | ColumnDatePickerWeekPickerField["type"] | ColumnDatePickerTimePickerField["type"] | ColumnDatePickerRangePickerField["type"] | ColumnDatePickerQuarterPickerField["type"] | ColumnTimePickerField["type"] | ColumnTimePickerRangePickerField["type"] | ColumnRadioField["type"] | ColumnRadioGroupField["type"] | ColumnSwitchField["type"];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@magicbe/antd-crud",
3
- "version": "0.0.46",
3
+ "version": "0.0.47",
4
4
  "description": "antd crud table",
5
5
  "author": "wang quan",
6
6
  "private": false,