@hw-component/form 0.0.8-beta-v8 → 0.0.9-beta-v1

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.
@@ -10,4 +10,5 @@ export interface HCheckboxProps extends Omit<CheckboxProps, "value" | "onChange"
10
10
  value?: Record<string, any> | any[];
11
11
  onChange?: (value: Record<string, any> | any[]) => void;
12
12
  addFormat?: (config: Record<string, addFormatItemModal>) => void;
13
+ subParams?: (formatValue: Record<string, any>, sourceValue: any[]) => any;
13
14
  }
@@ -46,12 +46,16 @@ var useModifyProps = function useModifyProps(_ref) {
46
46
  _useState10 = _slicedToArray(_useState9, 2),
47
47
  modalTitle = _useState10[0],
48
48
  setModalTitle = _useState10[1];
49
+ var saveOldParamsObj = useMemo(function () {
50
+ return {
51
+ old: {}
52
+ };
53
+ }, []);
49
54
  var onAfterClose = function onAfterClose() {
50
55
  onCancel === null || onCancel === void 0 || onCancel();
56
+ saveOldParamsObj.old = dialogForm.outputValues();
51
57
  setTimeout(function () {
52
- if (autoClear) {
53
- dialogForm.clear();
54
- }
58
+ dialogForm.clear();
55
59
  afterClose === null || afterClose === void 0 || afterClose();
56
60
  }, 100);
57
61
  };
@@ -86,14 +90,15 @@ var useModifyProps = function useModifyProps(_ref) {
86
90
  if (!!changeTitle) {
87
91
  setModalTitle(changeTitle);
88
92
  }
89
- setInitValue(changeInitialValues);
93
+ var relChangeInitVal = autoClear ? changeInitialValues : _objectSpread(_objectSpread({}, saveOldParamsObj.old), changeInitialValues);
94
+ setInitValue(relChangeInitVal);
90
95
  setModalVisible(true);
91
96
  };
92
97
  dialogForm.hide = function () {
93
98
  setModalVisible(false);
94
99
  onAfterClose();
95
100
  };
96
- }, [afterClose]);
101
+ }, [afterClose, autoClear]);
97
102
  return {
98
103
  modalFormData: modalFormData,
99
104
  modalVisible: modalVisible,
@@ -22,7 +22,7 @@ declare const componentConfig: {
22
22
  input: ({ copy, value, addonAfter, ...props }: import("../Input/modal").HInputProps<any>) => JSX.Element;
23
23
  upload: import("react").ForwardRefExoticComponent<import("./modal").HFormItemProps & import("react").RefAttributes<any>>;
24
24
  urlUpload: ({ placeholder, value, onChange, mediaType, ...props }: import("../Upload/modal").IUrlUploadProps) => JSX.Element;
25
- submit: ({ text, type, form, loading, position, reset, ...props }: import("../Submit").ISubmitProps) => JSX.Element;
25
+ submit: ({ position, reset, extraList, ...props }: import("../Submit").ISubmitProps) => JSX.Element;
26
26
  textArea: ({ autoSize, ...props }: import("antd/es/input").TextAreaProps) => JSX.Element;
27
27
  colorInput: ({ value, onChange, defaultColor, ...props }: import("../Input/modal").HInputProps<any>) => JSX.Element;
28
28
  cascader: ({ request, options, fieldNames: propsFieldNames, ...props }: import("../Cascader").HCascaderProps) => JSX.Element;
@@ -174,6 +174,7 @@ var useHForm = (function () {
174
174
  cacheValues = values;
175
175
  return;
176
176
  }
177
+ console.log("setFieldsValue");
177
178
  var newValue = this.formatValues(values);
178
179
  form.setFieldsValue(newValue);
179
180
  },
@@ -22,6 +22,7 @@ export interface HSelectInputProps extends Omit<HInputProps, "value" | "onChange
22
22
  valueName?: ValueNameModal;
23
23
  addFormat?: (config: Record<string, addFormatItemModal>) => void;
24
24
  addDispatchListener?: AddDispatchListenerFn;
25
+ subParams?: (formatValue: Record<string, any>) => any;
25
26
  }
26
27
  export interface HButtonProps extends Omit<ButtonProps, "onClick"> {
27
28
  onClick: (value: string | readonly string[] | number | undefined, onChange?: (val: any) => void) => void;
@@ -0,0 +1,6 @@
1
+ import type { ISubmitProps, SubmitBarExtraType } from "@/components/Submit/index";
2
+ interface ControlFooterProps extends ISubmitProps {
3
+ action: SubmitBarExtraType;
4
+ }
5
+ export declare const ControlFooter: ({ action, ...props }: ControlFooterProps) => JSX.Element;
6
+ export {};
@@ -0,0 +1,70 @@
1
+ // welcome to hoo hoo hoo
2
+ import 'core-js/modules/es.object.keys.js';
3
+ import 'core-js/modules/es.symbol.js';
4
+ import 'core-js/modules/es.array.filter.js';
5
+ import 'core-js/modules/es.object.to-string.js';
6
+ import 'core-js/modules/es.object.get-own-property-descriptor.js';
7
+ import 'core-js/modules/web.dom-collections.for-each.js';
8
+ import 'core-js/modules/es.object.get-own-property-descriptors.js';
9
+ import _defineProperty from '@babel/runtime-corejs3/helpers/defineProperty';
10
+ import _objectWithoutProperties from '@babel/runtime-corejs3/helpers/objectWithoutProperties';
11
+ import { jsx, Fragment } from 'react/jsx-runtime';
12
+ import { Button } from 'antd';
13
+ import { useFormContext } from '../Form/Context/index.js';
14
+ import React from 'react';
15
+
16
+ var _excluded = ["form"],
17
+ _excluded2 = ["type", "form", "text", "loading"],
18
+ _excluded3 = ["action"];
19
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
20
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
21
+ function ResetBtn(_ref) {
22
+ var form = _ref.form,
23
+ props = _objectWithoutProperties(_ref, _excluded);
24
+ return jsx(Button, _objectSpread(_objectSpread({}, props), {}, {
25
+ onClick: function onClick() {
26
+ form.resetFields();
27
+ },
28
+ children: "\u91CD\u7F6E"
29
+ }));
30
+ }
31
+ function SubBtn(_ref2) {
32
+ var _ref2$type = _ref2.type,
33
+ type = _ref2$type === void 0 ? "primary" : _ref2$type,
34
+ form = _ref2.form,
35
+ _ref2$text = _ref2.text,
36
+ text = _ref2$text === void 0 ? "提交" : _ref2$text,
37
+ loading = _ref2.loading,
38
+ props = _objectWithoutProperties(_ref2, _excluded2);
39
+ var _useFormContext = useFormContext(),
40
+ _useFormContext$loadi = _useFormContext.loading,
41
+ formSubLoading = _useFormContext$loadi === void 0 ? loading : _useFormContext$loadi;
42
+ return jsx(Button, _objectSpread(_objectSpread({}, props), {}, {
43
+ type: type,
44
+ onClick: form.submit,
45
+ loading: formSubLoading,
46
+ children: text
47
+ }));
48
+ }
49
+ var ControlFooter = function ControlFooter(_ref3) {
50
+ var action = _ref3.action,
51
+ props = _objectWithoutProperties(_ref3, _excluded3);
52
+ var form = props.form;
53
+ if (action === "reset") {
54
+ return jsx(ResetBtn, _objectSpread({}, props));
55
+ }
56
+ if (action === "submit") {
57
+ return jsx(SubBtn, _objectSpread({}, props));
58
+ }
59
+ if (typeof action === "string") {
60
+ return jsx(Fragment, {
61
+ children: action
62
+ });
63
+ }
64
+ return /*#__PURE__*/React.cloneElement(action, {
65
+ form: form
66
+ });
67
+ };
68
+
69
+ export { ControlFooter };
70
+ // powered by hdj
@@ -0,0 +1,5 @@
1
+ import type { ISubmitProps, SubmitBarExtraType } from "@/components/Submit/index";
2
+ export declare const useBarSortList: (props: Pick<ISubmitProps, "reset" | "extraList">) => {
3
+ action: SubmitBarExtraType;
4
+ key: string;
5
+ }[];
@@ -0,0 +1,28 @@
1
+ // welcome to hoo hoo hoo
2
+ import 'core-js/modules/es.array.map.js';
3
+ import { useMemo } from 'react';
4
+
5
+ var getBarComKeyList = function getBarComKeyList(extraList) {
6
+ return extraList.map(function (item, index) {
7
+ return {
8
+ action: item,
9
+ key: "".concat(index)
10
+ };
11
+ });
12
+ };
13
+ var useBarSortList = function useBarSortList(props) {
14
+ var extraList = props.extraList,
15
+ _props$reset = props.reset,
16
+ reset = _props$reset === void 0 ? false : _props$reset;
17
+ var list = useMemo(function () {
18
+ if (!extraList) {
19
+ var defaultList = reset ? ["reset", "submit"] : ["submit"];
20
+ return getBarComKeyList(defaultList);
21
+ }
22
+ return getBarComKeyList(extraList);
23
+ }, [extraList, reset]);
24
+ return list;
25
+ };
26
+
27
+ export { useBarSortList };
28
+ // powered by hdj
@@ -1,9 +1,12 @@
1
+ import React from "react";
1
2
  import type { ButtonProps, FormInstance } from "antd/es";
3
+ export type SubmitBarExtraType = "submit" | "reset" | React.ReactDOM;
2
4
  export interface ISubmitProps extends Omit<ButtonProps, "form"> {
3
5
  text?: string;
4
6
  form: FormInstance;
5
7
  reset?: boolean;
6
8
  position?: "start" | "end";
9
+ extraList?: SubmitBarExtraType[];
7
10
  }
8
- declare const _default: ({ text, type, form, loading, position, reset, ...props }: ISubmitProps) => JSX.Element;
11
+ declare const _default: ({ position, reset, extraList, ...props }: ISubmitProps) => JSX.Element;
9
12
  export default _default;
@@ -1,4 +1,7 @@
1
1
  // welcome to hoo hoo hoo
2
+ import _defineProperty from '@babel/runtime-corejs3/helpers/defineProperty';
3
+ import _objectWithoutProperties from '@babel/runtime-corejs3/helpers/objectWithoutProperties';
4
+ import 'core-js/modules/es.array.map.js';
2
5
  import 'core-js/modules/es.object.keys.js';
3
6
  import 'core-js/modules/es.symbol.js';
4
7
  import 'core-js/modules/es.array.filter.js';
@@ -6,46 +9,39 @@ import 'core-js/modules/es.object.to-string.js';
6
9
  import 'core-js/modules/es.object.get-own-property-descriptor.js';
7
10
  import 'core-js/modules/web.dom-collections.for-each.js';
8
11
  import 'core-js/modules/es.object.get-own-property-descriptors.js';
9
- import _defineProperty from '@babel/runtime-corejs3/helpers/defineProperty';
10
- import _objectWithoutProperties from '@babel/runtime-corejs3/helpers/objectWithoutProperties';
11
- import { jsx, jsxs } from 'react/jsx-runtime';
12
- import { Row, Space, Button } from 'antd';
13
- import { useFormContext } from '../Form/Context/index.js';
12
+ import { jsx } from 'react/jsx-runtime';
13
+ import { createElement } from 'react';
14
+ import { Row, Space } from 'antd';
15
+ import { useBarSortList } from './hooks.js';
16
+ import { ControlFooter } from './components.js';
14
17
 
15
- var _excluded = ["text", "type", "form", "loading", "position", "reset"];
18
+ var _excluded = ["position", "reset", "extraList"];
16
19
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
17
20
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
18
21
  var HSubmit = (function (_ref) {
19
- var _ref$text = _ref.text,
20
- text = _ref$text === void 0 ? "提交" : _ref$text,
21
- _ref$type = _ref.type,
22
- type = _ref$type === void 0 ? "primary" : _ref$type,
23
- form = _ref.form,
24
- loading = _ref.loading,
25
- _ref$position = _ref.position,
22
+ var _ref$position = _ref.position,
26
23
  position = _ref$position === void 0 ? "start" : _ref$position,
27
24
  reset = _ref.reset,
25
+ extraList = _ref.extraList,
28
26
  props = _objectWithoutProperties(_ref, _excluded);
29
- var _useFormContext = useFormContext(),
30
- _useFormContext$loadi = _useFormContext.loading,
31
- formSubLoading = _useFormContext$loadi === void 0 ? loading : _useFormContext$loadi;
27
+ var barList = useBarSortList({
28
+ reset: reset,
29
+ extraList: extraList
30
+ });
32
31
  return jsx(Row, {
33
32
  justify: position,
34
33
  style: {
35
34
  width: "100%"
36
35
  },
37
- children: jsxs(Space, {
38
- children: [reset && jsx(Button, _objectSpread(_objectSpread({}, props), {}, {
39
- onClick: function onClick() {
40
- form.resetFields();
41
- },
42
- children: "\u91CD\u7F6E"
43
- })), jsx(Button, _objectSpread(_objectSpread({}, props), {}, {
44
- type: type,
45
- onClick: form.submit,
46
- loading: formSubLoading,
47
- children: text
48
- }))]
36
+ children: jsx(Space, {
37
+ children: barList === null || barList === void 0 ? void 0 : barList.map(function (_ref2) {
38
+ var action = _ref2.action,
39
+ key = _ref2.key;
40
+ return /*#__PURE__*/createElement(ControlFooter, _objectSpread(_objectSpread({}, props), {}, {
41
+ key: key,
42
+ action: action
43
+ }));
44
+ })
49
45
  })
50
46
  });
51
47
  });
@@ -10,4 +10,5 @@ export interface HCheckboxProps extends Omit<CheckboxProps, "value" | "onChange"
10
10
  value?: Record<string, any> | any[];
11
11
  onChange?: (value: Record<string, any> | any[]) => void;
12
12
  addFormat?: (config: Record<string, addFormatItemModal>) => void;
13
+ subParams?: (formatValue: Record<string, any>, sourceValue: any[]) => any;
13
14
  }
@@ -47,12 +47,16 @@ var useModifyProps = function useModifyProps(_ref) {
47
47
  _useState10 = _slicedToArray(_useState9, 2),
48
48
  modalTitle = _useState10[0],
49
49
  setModalTitle = _useState10[1];
50
+ var saveOldParamsObj = React.useMemo(function () {
51
+ return {
52
+ old: {}
53
+ };
54
+ }, []);
50
55
  var onAfterClose = function onAfterClose() {
51
56
  onCancel === null || onCancel === void 0 || onCancel();
57
+ saveOldParamsObj.old = dialogForm.outputValues();
52
58
  setTimeout(function () {
53
- if (autoClear) {
54
- dialogForm.clear();
55
- }
59
+ dialogForm.clear();
56
60
  afterClose === null || afterClose === void 0 || afterClose();
57
61
  }, 100);
58
62
  };
@@ -87,14 +91,15 @@ var useModifyProps = function useModifyProps(_ref) {
87
91
  if (!!changeTitle) {
88
92
  setModalTitle(changeTitle);
89
93
  }
90
- setInitValue(changeInitialValues);
94
+ var relChangeInitVal = autoClear ? changeInitialValues : _objectSpread(_objectSpread({}, saveOldParamsObj.old), changeInitialValues);
95
+ setInitValue(relChangeInitVal);
91
96
  setModalVisible(true);
92
97
  };
93
98
  dialogForm.hide = function () {
94
99
  setModalVisible(false);
95
100
  onAfterClose();
96
101
  };
97
- }, [afterClose]);
102
+ }, [afterClose, autoClear]);
98
103
  return {
99
104
  modalFormData: modalFormData,
100
105
  modalVisible: modalVisible,
@@ -22,7 +22,7 @@ declare const componentConfig: {
22
22
  input: ({ copy, value, addonAfter, ...props }: import("../Input/modal").HInputProps<any>) => JSX.Element;
23
23
  upload: import("react").ForwardRefExoticComponent<import("./modal").HFormItemProps & import("react").RefAttributes<any>>;
24
24
  urlUpload: ({ placeholder, value, onChange, mediaType, ...props }: import("../Upload/modal").IUrlUploadProps) => JSX.Element;
25
- submit: ({ text, type, form, loading, position, reset, ...props }: import("../Submit").ISubmitProps) => JSX.Element;
25
+ submit: ({ position, reset, extraList, ...props }: import("../Submit").ISubmitProps) => JSX.Element;
26
26
  textArea: ({ autoSize, ...props }: import("antd/es/input").TextAreaProps) => JSX.Element;
27
27
  colorInput: ({ value, onChange, defaultColor, ...props }: import("../Input/modal").HInputProps<any>) => JSX.Element;
28
28
  cascader: ({ request, options, fieldNames: propsFieldNames, ...props }: import("../Cascader").HCascaderProps) => JSX.Element;
@@ -177,6 +177,7 @@ var useHForm = (function () {
177
177
  cacheValues = values;
178
178
  return;
179
179
  }
180
+ console.log("setFieldsValue");
180
181
  var newValue = this.formatValues(values);
181
182
  form.setFieldsValue(newValue);
182
183
  },
@@ -22,6 +22,7 @@ export interface HSelectInputProps extends Omit<HInputProps, "value" | "onChange
22
22
  valueName?: ValueNameModal;
23
23
  addFormat?: (config: Record<string, addFormatItemModal>) => void;
24
24
  addDispatchListener?: AddDispatchListenerFn;
25
+ subParams?: (formatValue: Record<string, any>) => any;
25
26
  }
26
27
  export interface HButtonProps extends Omit<ButtonProps, "onClick"> {
27
28
  onClick: (value: string | readonly string[] | number | undefined, onChange?: (val: any) => void) => void;
@@ -0,0 +1,6 @@
1
+ import type { ISubmitProps, SubmitBarExtraType } from "@/components/Submit/index";
2
+ interface ControlFooterProps extends ISubmitProps {
3
+ action: SubmitBarExtraType;
4
+ }
5
+ export declare const ControlFooter: ({ action, ...props }: ControlFooterProps) => JSX.Element;
6
+ export {};
@@ -0,0 +1,71 @@
1
+ 'use strict';
2
+
3
+ require('core-js/modules/es.object.keys.js');
4
+ require('core-js/modules/es.symbol.js');
5
+ require('core-js/modules/es.array.filter.js');
6
+ require('core-js/modules/es.object.to-string.js');
7
+ require('core-js/modules/es.object.get-own-property-descriptor.js');
8
+ require('core-js/modules/web.dom-collections.for-each.js');
9
+ require('core-js/modules/es.object.get-own-property-descriptors.js');
10
+ var _defineProperty = require('@babel/runtime-corejs3/helpers/defineProperty');
11
+ var _objectWithoutProperties = require('@babel/runtime-corejs3/helpers/objectWithoutProperties');
12
+ var jsxRuntime = require('react/jsx-runtime');
13
+ var antd = require('antd');
14
+ var index = require('../Form/Context/index.js');
15
+ var React = require('react');
16
+
17
+ var _excluded = ["form"],
18
+ _excluded2 = ["type", "form", "text", "loading"],
19
+ _excluded3 = ["action"];
20
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
21
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
22
+ function ResetBtn(_ref) {
23
+ var form = _ref.form,
24
+ props = _objectWithoutProperties(_ref, _excluded);
25
+ return jsxRuntime.jsx(antd.Button, _objectSpread(_objectSpread({}, props), {}, {
26
+ onClick: function onClick() {
27
+ form.resetFields();
28
+ },
29
+ children: "\u91CD\u7F6E"
30
+ }));
31
+ }
32
+ function SubBtn(_ref2) {
33
+ var _ref2$type = _ref2.type,
34
+ type = _ref2$type === void 0 ? "primary" : _ref2$type,
35
+ form = _ref2.form,
36
+ _ref2$text = _ref2.text,
37
+ text = _ref2$text === void 0 ? "提交" : _ref2$text,
38
+ loading = _ref2.loading,
39
+ props = _objectWithoutProperties(_ref2, _excluded2);
40
+ var _useFormContext = index.useFormContext(),
41
+ _useFormContext$loadi = _useFormContext.loading,
42
+ formSubLoading = _useFormContext$loadi === void 0 ? loading : _useFormContext$loadi;
43
+ return jsxRuntime.jsx(antd.Button, _objectSpread(_objectSpread({}, props), {}, {
44
+ type: type,
45
+ onClick: form.submit,
46
+ loading: formSubLoading,
47
+ children: text
48
+ }));
49
+ }
50
+ var ControlFooter = function ControlFooter(_ref3) {
51
+ var action = _ref3.action,
52
+ props = _objectWithoutProperties(_ref3, _excluded3);
53
+ var form = props.form;
54
+ if (action === "reset") {
55
+ return jsxRuntime.jsx(ResetBtn, _objectSpread({}, props));
56
+ }
57
+ if (action === "submit") {
58
+ return jsxRuntime.jsx(SubBtn, _objectSpread({}, props));
59
+ }
60
+ if (typeof action === "string") {
61
+ return jsxRuntime.jsx(jsxRuntime.Fragment, {
62
+ children: action
63
+ });
64
+ }
65
+ return /*#__PURE__*/React.cloneElement(action, {
66
+ form: form
67
+ });
68
+ };
69
+
70
+ exports.ControlFooter = ControlFooter;
71
+ // powered by h
@@ -0,0 +1,5 @@
1
+ import type { ISubmitProps, SubmitBarExtraType } from "@/components/Submit/index";
2
+ export declare const useBarSortList: (props: Pick<ISubmitProps, "reset" | "extraList">) => {
3
+ action: SubmitBarExtraType;
4
+ key: string;
5
+ }[];
@@ -0,0 +1,29 @@
1
+ 'use strict';
2
+
3
+ require('core-js/modules/es.array.map.js');
4
+ var React = require('react');
5
+
6
+ var getBarComKeyList = function getBarComKeyList(extraList) {
7
+ return extraList.map(function (item, index) {
8
+ return {
9
+ action: item,
10
+ key: "".concat(index)
11
+ };
12
+ });
13
+ };
14
+ var useBarSortList = function useBarSortList(props) {
15
+ var extraList = props.extraList,
16
+ _props$reset = props.reset,
17
+ reset = _props$reset === void 0 ? false : _props$reset;
18
+ var list = React.useMemo(function () {
19
+ if (!extraList) {
20
+ var defaultList = reset ? ["reset", "submit"] : ["submit"];
21
+ return getBarComKeyList(defaultList);
22
+ }
23
+ return getBarComKeyList(extraList);
24
+ }, [extraList, reset]);
25
+ return list;
26
+ };
27
+
28
+ exports.useBarSortList = useBarSortList;
29
+ // powered by h
@@ -1,9 +1,12 @@
1
+ import React from "react";
1
2
  import type { ButtonProps, FormInstance } from "antd/es";
3
+ export type SubmitBarExtraType = "submit" | "reset" | React.ReactDOM;
2
4
  export interface ISubmitProps extends Omit<ButtonProps, "form"> {
3
5
  text?: string;
4
6
  form: FormInstance;
5
7
  reset?: boolean;
6
8
  position?: "start" | "end";
9
+ extraList?: SubmitBarExtraType[];
7
10
  }
8
- declare const _default: ({ text, type, form, loading, position, reset, ...props }: ISubmitProps) => JSX.Element;
11
+ declare const _default: ({ position, reset, extraList, ...props }: ISubmitProps) => JSX.Element;
9
12
  export default _default;
@@ -2,6 +2,9 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
+ var _defineProperty = require('@babel/runtime-corejs3/helpers/defineProperty');
6
+ var _objectWithoutProperties = require('@babel/runtime-corejs3/helpers/objectWithoutProperties');
7
+ require('core-js/modules/es.array.map.js');
5
8
  require('core-js/modules/es.object.keys.js');
6
9
  require('core-js/modules/es.symbol.js');
7
10
  require('core-js/modules/es.array.filter.js');
@@ -9,46 +12,39 @@ require('core-js/modules/es.object.to-string.js');
9
12
  require('core-js/modules/es.object.get-own-property-descriptor.js');
10
13
  require('core-js/modules/web.dom-collections.for-each.js');
11
14
  require('core-js/modules/es.object.get-own-property-descriptors.js');
12
- var _defineProperty = require('@babel/runtime-corejs3/helpers/defineProperty');
13
- var _objectWithoutProperties = require('@babel/runtime-corejs3/helpers/objectWithoutProperties');
14
15
  var jsxRuntime = require('react/jsx-runtime');
16
+ var React = require('react');
15
17
  var antd = require('antd');
16
- var index = require('../Form/Context/index.js');
18
+ var hooks = require('./hooks.js');
19
+ var components = require('./components.js');
17
20
 
18
- var _excluded = ["text", "type", "form", "loading", "position", "reset"];
21
+ var _excluded = ["position", "reset", "extraList"];
19
22
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
20
23
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
21
24
  var HSubmit = (function (_ref) {
22
- var _ref$text = _ref.text,
23
- text = _ref$text === void 0 ? "提交" : _ref$text,
24
- _ref$type = _ref.type,
25
- type = _ref$type === void 0 ? "primary" : _ref$type,
26
- form = _ref.form,
27
- loading = _ref.loading,
28
- _ref$position = _ref.position,
25
+ var _ref$position = _ref.position,
29
26
  position = _ref$position === void 0 ? "start" : _ref$position,
30
27
  reset = _ref.reset,
28
+ extraList = _ref.extraList,
31
29
  props = _objectWithoutProperties(_ref, _excluded);
32
- var _useFormContext = index.useFormContext(),
33
- _useFormContext$loadi = _useFormContext.loading,
34
- formSubLoading = _useFormContext$loadi === void 0 ? loading : _useFormContext$loadi;
30
+ var barList = hooks.useBarSortList({
31
+ reset: reset,
32
+ extraList: extraList
33
+ });
35
34
  return jsxRuntime.jsx(antd.Row, {
36
35
  justify: position,
37
36
  style: {
38
37
  width: "100%"
39
38
  },
40
- children: jsxRuntime.jsxs(antd.Space, {
41
- children: [reset && jsxRuntime.jsx(antd.Button, _objectSpread(_objectSpread({}, props), {}, {
42
- onClick: function onClick() {
43
- form.resetFields();
44
- },
45
- children: "\u91CD\u7F6E"
46
- })), jsxRuntime.jsx(antd.Button, _objectSpread(_objectSpread({}, props), {}, {
47
- type: type,
48
- onClick: form.submit,
49
- loading: formSubLoading,
50
- children: text
51
- }))]
39
+ children: jsxRuntime.jsx(antd.Space, {
40
+ children: barList === null || barList === void 0 ? void 0 : barList.map(function (_ref2) {
41
+ var action = _ref2.action,
42
+ key = _ref2.key;
43
+ return /*#__PURE__*/React.createElement(components.ControlFooter, _objectSpread(_objectSpread({}, props), {}, {
44
+ key: key,
45
+ action: action
46
+ }));
47
+ })
52
48
  })
53
49
  });
54
50
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hw-component/form",
3
- "version": "0.0.8-beta-v8",
3
+ "version": "0.0.9-beta-v1",
4
4
  "description": "基于antd二次开发",
5
5
  "repository": {
6
6
  "type": "git",
@@ -12,4 +12,5 @@ export interface HCheckboxProps
12
12
  value?: Record<string, any> | any[];
13
13
  onChange?: (value: Record<string, any> | any[]) => void;
14
14
  addFormat?: (config: Record<string, addFormatItemModal>) => void;
15
+ subParams?: (formatValue: Record<string, any>, sourceValue: any[]) => any;
15
16
  }
@@ -23,12 +23,16 @@ export const useModifyProps = ({
23
23
  const [initValue, setInitValue] = useState(initialValues);
24
24
  const [formParams, setFormParams] = useState(params);
25
25
  const [modalTitle, setModalTitle] = useState(title);
26
+ const saveOldParamsObj=useMemo(()=>{
27
+ return {
28
+ old:{}
29
+ }
30
+ },[]);
26
31
  const onAfterClose = () => {
27
32
  onCancel?.();
33
+ saveOldParamsObj.old=dialogForm.outputValues();
28
34
  setTimeout(() => {
29
- if (autoClear) {
30
- dialogForm.clear();
31
- }
35
+ dialogForm.clear();
32
36
  afterClose?.();
33
37
  }, 100);
34
38
  };
@@ -64,14 +68,15 @@ export const useModifyProps = ({
64
68
  if (!!changeTitle) {
65
69
  setModalTitle(changeTitle);
66
70
  }
67
- setInitValue(changeInitialValues);
71
+ const relChangeInitVal=autoClear?changeInitialValues:{...saveOldParamsObj.old,...changeInitialValues};
72
+ setInitValue(relChangeInitVal);
68
73
  setModalVisible(true);
69
74
  };
70
75
  dialogForm.hide = () => {
71
76
  setModalVisible(false);
72
77
  onAfterClose();
73
78
  };
74
- }, [afterClose]);
79
+ }, [afterClose,autoClear]);
75
80
  return {
76
81
  modalFormData,
77
82
  modalVisible,
@@ -149,6 +149,7 @@ export default () => {
149
149
  cacheValues = values;
150
150
  return;
151
151
  }
152
+ console.log("setFieldsValue")
152
153
  const newValue = this.formatValues(values);
153
154
  form.setFieldsValue(newValue);
154
155
  },
@@ -26,6 +26,7 @@ export interface HSelectInputProps
26
26
  valueName?: ValueNameModal;
27
27
  addFormat?: (config: Record<string, addFormatItemModal>) => void;
28
28
  addDispatchListener?: AddDispatchListenerFn;
29
+ subParams?: (formatValue: Record<string, any>) => any;
29
30
  }
30
31
  export interface HButtonProps extends Omit<ButtonProps, "onClick"> {
31
32
  onClick: (
@@ -0,0 +1,57 @@
1
+ import { Button } from "antd";
2
+ import { useFormContext } from "../Form/Context";
3
+ import React from "react";
4
+ import type {
5
+ ISubmitProps,
6
+ SubmitBarExtraType,
7
+ } from "@/components/Submit/index";
8
+ interface ControlFooterProps extends ISubmitProps {
9
+ action: SubmitBarExtraType;
10
+ }
11
+ function ResetBtn({ form, ...props }) {
12
+ return (
13
+ <Button
14
+ {...props}
15
+ onClick={() => {
16
+ form.resetFields();
17
+ }}
18
+ >
19
+ 重置
20
+ </Button>
21
+ );
22
+ }
23
+
24
+ function SubBtn({
25
+ type = "primary",
26
+ form,
27
+ text = "提交",
28
+ loading,
29
+ ...props
30
+ }: ISubmitProps) {
31
+ const { loading: formSubLoading = loading } = useFormContext();
32
+
33
+ return (
34
+ <Button
35
+ {...props}
36
+ type={type as any}
37
+ onClick={form.submit}
38
+ loading={formSubLoading}
39
+ >
40
+ {text}
41
+ </Button>
42
+ );
43
+ }
44
+
45
+ export const ControlFooter = ({ action, ...props }: ControlFooterProps) => {
46
+ const { form } = props;
47
+ if (action === "reset") {
48
+ return <ResetBtn {...props} />;
49
+ }
50
+ if (action === "submit") {
51
+ return <SubBtn {...props} />;
52
+ }
53
+ if (typeof action === "string") {
54
+ return <>{action}</>;
55
+ }
56
+ return React.cloneElement(action as any, { form });
57
+ };
@@ -0,0 +1,31 @@
1
+ import type {
2
+ ISubmitProps,
3
+ SubmitBarExtraType,
4
+ } from "@/components/Submit/index";
5
+ import { useMemo } from "react";
6
+
7
+ const getBarComKeyList = (extraList: SubmitBarExtraType[]) => {
8
+ return extraList.map((item, index) => {
9
+ return {
10
+ action: item,
11
+ key: `${index}`,
12
+ };
13
+ });
14
+ };
15
+
16
+ export const useBarSortList = (
17
+ props: Pick<ISubmitProps, "reset" | "extraList">
18
+ ) => {
19
+ const { extraList, reset = false } = props;
20
+ const list = useMemo(() => {
21
+ if (!extraList) {
22
+ const defaultList: SubmitBarExtraType[] = reset
23
+ ? ["reset", "submit"]
24
+ : ["submit"];
25
+ return getBarComKeyList(defaultList);
26
+ }
27
+ return getBarComKeyList(extraList);
28
+ }, [extraList, reset]);
29
+
30
+ return list;
31
+ };
@@ -1,45 +1,32 @@
1
- import { Button, Row, Space } from "antd";
1
+ import { Row, Space } from "antd";
2
2
  import React from "react";
3
- import { useFormContext } from "../Form/Context";
4
3
  import type { ButtonProps, FormInstance } from "antd/es";
4
+ import { useBarSortList } from "./hooks";
5
+ import { ControlFooter } from "./components";
6
+
7
+ export type SubmitBarExtraType = "submit" | "reset" | React.ReactDOM;
5
8
 
6
9
  export interface ISubmitProps extends Omit<ButtonProps, "form"> {
7
10
  text?: string;
8
11
  form: FormInstance;
9
12
  reset?: boolean;
10
13
  position?: "start" | "end";
14
+ extraList?: SubmitBarExtraType[];
11
15
  }
12
16
  export default ({
13
- text = "提交",
14
- type = "primary",
15
- form,
16
- loading,
17
17
  position = "start",
18
18
  reset,
19
+ extraList,
19
20
  ...props
20
21
  }: ISubmitProps) => {
21
- const { loading: formSubLoading = loading } = useFormContext();
22
+ const barList = useBarSortList({ reset, extraList });
23
+
22
24
  return (
23
25
  <Row justify={position} style={{ width: "100%" }}>
24
26
  <Space>
25
- {reset && (
26
- <Button
27
- {...props}
28
- onClick={() => {
29
- form.resetFields();
30
- }}
31
- >
32
- 重置
33
- </Button>
34
- )}
35
- <Button
36
- {...props}
37
- type={type}
38
- onClick={form.submit}
39
- loading={formSubLoading}
40
- >
41
- {text}
42
- </Button>
27
+ {barList?.map(({ action, key }) => {
28
+ return <ControlFooter {...props} key={key} action={action} />;
29
+ })}
43
30
  </Space>
44
31
  </Row>
45
32
  );
@@ -107,19 +107,19 @@ const data = [
107
107
  },
108
108
  },
109
109
  ];
110
+ let num=0
110
111
  export default () => {
111
112
  const modalForm = useHDialogForm();
112
113
  return (
113
114
  <>
114
115
  <Button
115
116
  onClick={() => {
117
+ num++
116
118
  modalForm.show({
117
119
  initialValues: {
118
120
  check1: 1,
119
- testStart: "1694747960",
120
- testEnd: "1693538359",
121
121
  op: 1,
122
- opInput: "12121",
122
+ opInput:num,
123
123
  },
124
124
  });
125
125
  }}
@@ -1,5 +1,6 @@
1
1
  import { HForm, HFormConfigProvider, useHForm } from "../../components";
2
2
  import { useState } from "react";
3
+ import { Button } from "antd";
3
4
 
4
5
  const formData = (options) => {
5
6
  const op = [
@@ -189,8 +190,57 @@ const formData = (options) => {
189
190
  {
190
191
  type: "submit",
191
192
  },
193
+ {
194
+ type: "submit",
195
+ itemProps: {
196
+ extraList: [
197
+ <Button
198
+ key="wh"
199
+ onClick={() => {
200
+ console.log("起飞");
201
+ }}
202
+ >
203
+ 芜湖
204
+ </Button>,
205
+ "666",
206
+ "reset",
207
+ ],
208
+ },
209
+ },
210
+ {
211
+ type: "submit",
212
+ itemProps: {
213
+ extraList: [
214
+ <Button
215
+ key="wh"
216
+ onClick={() => {
217
+ console.log("起飞");
218
+ }}
219
+ >
220
+ 芜湖
221
+ </Button>,
222
+ <Ttta key="aa" />,
223
+ "666",
224
+ "submit",
225
+ "reset",
226
+ ],
227
+ },
228
+ },
192
229
  ];
193
230
  };
231
+ function Ttta({ form }) {
232
+ return (
233
+ <div
234
+ onClick={() => {
235
+ console.log("form", form);
236
+ form.setFieldsValue({ switch: 1 });
237
+ }}
238
+ >
239
+ ttta
240
+ </div>
241
+ );
242
+ }
243
+
194
244
  const Test = (props) => {
195
245
  return <div>ffff</div>;
196
246
  };
@@ -165,7 +165,6 @@ export default () => {
165
165
  <HFormConfigProvider
166
166
  uploadProps={{
167
167
  request: () => {
168
- console.log("request,request,request,request");
169
168
  return Promise.resolve({
170
169
  url: "https://gw.alicdn.com/imgextra/i2/O1CN01MYuwJQ1GXVBWryCFJ_!!6000000000632-2-tps-1125-570.png_468x468q75.jpg_.webp",
171
170
  });
@@ -175,7 +174,6 @@ export default () => {
175
174
  <HModalForm
176
175
  configData={data}
177
176
  labelWidth={88}
178
- autoClear={false}
179
177
  contentRender={(node, form) => {
180
178
  return (
181
179
  <div>
@@ -184,9 +182,6 @@ export default () => {
184
182
  </div>
185
183
  );
186
184
  }}
187
- request={(val, params) => {
188
- console.log(val, params);
189
- }}
190
185
  dialogForm={modalForm}
191
186
  title="测试"
192
187
  />