@carefrees/form-utils-vue-hooks 0.0.13

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.
Files changed (152) hide show
  1. package/README.md +7 -0
  2. package/esm/hooks/attr/attr.FormItem.d.ts +94 -0
  3. package/esm/hooks/attr/attr.FormItem.js +104 -0
  4. package/esm/hooks/index.d.ts +13 -0
  5. package/esm/hooks/index.js +13 -0
  6. package/esm/hooks/register/register.FormHideItem.d.ts +9 -0
  7. package/esm/hooks/register/register.FormHideItem.js +26 -0
  8. package/esm/hooks/register/register.FormItem.d.ts +24 -0
  9. package/esm/hooks/register/register.FormItem.js +67 -0
  10. package/esm/hooks/register/register.FormList.d.ts +9 -0
  11. package/esm/hooks/register/register.FormList.js +42 -0
  12. package/esm/hooks/register/register.form.d.ts +4 -0
  13. package/esm/hooks/register/register.form.js +10 -0
  14. package/esm/hooks/useAttrs.d.ts +25 -0
  15. package/esm/hooks/useAttrs.js +26 -0
  16. package/esm/hooks/useEffect.d.ts +2 -0
  17. package/esm/hooks/useEffect.js +12 -0
  18. package/esm/hooks/useForm.d.ts +8 -0
  19. package/esm/hooks/useForm.js +21 -0
  20. package/esm/hooks/useFormItem.d.ts +8 -0
  21. package/esm/hooks/useFormItem.js +21 -0
  22. package/esm/hooks/useFormItemParentName.d.ts +18 -0
  23. package/esm/hooks/useFormItemParentName.js +47 -0
  24. package/esm/hooks/useFormList.d.ts +8 -0
  25. package/esm/hooks/useFormList.js +21 -0
  26. package/esm/hooks/useHtmlFor.d.ts +2 -0
  27. package/esm/hooks/useHtmlFor.js +7 -0
  28. package/esm/hooks/useMultipleForm.d.ts +8 -0
  29. package/esm/hooks/useMultipleForm.js +21 -0
  30. package/esm/hooks/useRule.d.ts +4 -0
  31. package/esm/hooks/useRule.js +12 -0
  32. package/esm/index.d.ts +4 -0
  33. package/esm/index.js +4 -0
  34. package/esm/instance/formInstance.d.ts +58 -0
  35. package/esm/instance/formInstance.js +132 -0
  36. package/esm/instance/formItemBaseInstance.d.ts +23 -0
  37. package/esm/instance/formItemBaseInstance.js +6 -0
  38. package/esm/instance/formItemInstance.d.ts +18 -0
  39. package/esm/instance/formItemInstance.js +11 -0
  40. package/esm/instance/formListInstance.d.ts +43 -0
  41. package/esm/instance/formListInstance.js +95 -0
  42. package/esm/instance/index.d.ts +5 -0
  43. package/esm/instance/index.js +5 -0
  44. package/esm/instance/multipleInstance.d.ts +32 -0
  45. package/esm/instance/multipleInstance.js +77 -0
  46. package/esm/instance/ruleIntsnace.d.ts +45 -0
  47. package/esm/instance/ruleIntsnace.js +52 -0
  48. package/esm/interface/index.d.ts +31 -0
  49. package/esm/interface/index.js +0 -0
  50. package/esm/utils/cloneByNamePathList.d.ts +3 -0
  51. package/esm/utils/cloneByNamePathList.js +11 -0
  52. package/esm/utils/get.d.ts +26 -0
  53. package/esm/utils/get.js +13 -0
  54. package/esm/utils/index.d.ts +4 -0
  55. package/esm/utils/index.js +4 -0
  56. package/esm/utils/interface.d.ts +3 -0
  57. package/esm/utils/interface.js +0 -0
  58. package/esm/utils/set.d.ts +32 -0
  59. package/esm/utils/set.js +29 -0
  60. package/esm/utils/utils.d.ts +172 -0
  61. package/esm/utils/utils.js +131 -0
  62. package/lib/hooks/attr/attr.FormItem.d.ts +94 -0
  63. package/lib/hooks/attr/attr.FormItem.js +138 -0
  64. package/lib/hooks/index.d.ts +13 -0
  65. package/lib/hooks/index.js +168 -0
  66. package/lib/hooks/register/register.FormHideItem.d.ts +9 -0
  67. package/lib/hooks/register/register.FormHideItem.js +60 -0
  68. package/lib/hooks/register/register.FormItem.d.ts +24 -0
  69. package/lib/hooks/register/register.FormItem.js +101 -0
  70. package/lib/hooks/register/register.FormList.d.ts +9 -0
  71. package/lib/hooks/register/register.FormList.js +76 -0
  72. package/lib/hooks/register/register.form.d.ts +4 -0
  73. package/lib/hooks/register/register.form.js +44 -0
  74. package/lib/hooks/useAttrs.d.ts +25 -0
  75. package/lib/hooks/useAttrs.js +63 -0
  76. package/lib/hooks/useEffect.d.ts +2 -0
  77. package/lib/hooks/useEffect.js +46 -0
  78. package/lib/hooks/useForm.d.ts +8 -0
  79. package/lib/hooks/useForm.js +61 -0
  80. package/lib/hooks/useFormItem.d.ts +8 -0
  81. package/lib/hooks/useFormItem.js +61 -0
  82. package/lib/hooks/useFormItemParentName.d.ts +18 -0
  83. package/lib/hooks/useFormItemParentName.js +84 -0
  84. package/lib/hooks/useFormList.d.ts +8 -0
  85. package/lib/hooks/useFormList.js +61 -0
  86. package/lib/hooks/useHtmlFor.d.ts +2 -0
  87. package/lib/hooks/useHtmlFor.js +41 -0
  88. package/lib/hooks/useMultipleForm.d.ts +8 -0
  89. package/lib/hooks/useMultipleForm.js +61 -0
  90. package/lib/hooks/useRule.d.ts +4 -0
  91. package/lib/hooks/useRule.js +46 -0
  92. package/lib/index.d.ts +4 -0
  93. package/lib/index.js +87 -0
  94. package/lib/instance/formInstance.d.ts +58 -0
  95. package/lib/instance/formInstance.js +166 -0
  96. package/lib/instance/formItemBaseInstance.d.ts +23 -0
  97. package/lib/instance/formItemBaseInstance.js +40 -0
  98. package/lib/instance/formItemInstance.d.ts +18 -0
  99. package/lib/instance/formItemInstance.js +45 -0
  100. package/lib/instance/formListInstance.d.ts +43 -0
  101. package/lib/instance/formListInstance.js +129 -0
  102. package/lib/instance/index.d.ts +5 -0
  103. package/lib/instance/index.js +96 -0
  104. package/lib/instance/multipleInstance.d.ts +32 -0
  105. package/lib/instance/multipleInstance.js +111 -0
  106. package/lib/instance/ruleIntsnace.d.ts +45 -0
  107. package/lib/instance/ruleIntsnace.js +96 -0
  108. package/lib/interface/index.d.ts +31 -0
  109. package/lib/interface/index.js +18 -0
  110. package/lib/utils/cloneByNamePathList.d.ts +3 -0
  111. package/lib/utils/cloneByNamePathList.js +45 -0
  112. package/lib/utils/get.d.ts +26 -0
  113. package/lib/utils/get.js +47 -0
  114. package/lib/utils/index.d.ts +4 -0
  115. package/lib/utils/index.js +87 -0
  116. package/lib/utils/interface.d.ts +3 -0
  117. package/lib/utils/interface.js +18 -0
  118. package/lib/utils/set.d.ts +32 -0
  119. package/lib/utils/set.js +63 -0
  120. package/lib/utils/utils.d.ts +172 -0
  121. package/lib/utils/utils.js +198 -0
  122. package/package.json +30 -0
  123. package/src/hooks/attr/attr.FormItem.tsx +185 -0
  124. package/src/hooks/index.ts +13 -0
  125. package/src/hooks/register/register.FormHideItem.ts +28 -0
  126. package/src/hooks/register/register.FormItem.ts +93 -0
  127. package/src/hooks/register/register.FormList.ts +49 -0
  128. package/src/hooks/register/register.form.ts +13 -0
  129. package/src/hooks/useAttrs.ts +64 -0
  130. package/src/hooks/useEffect.ts +13 -0
  131. package/src/hooks/useForm.ts +34 -0
  132. package/src/hooks/useFormItem.ts +33 -0
  133. package/src/hooks/useFormItemParentName.ts +49 -0
  134. package/src/hooks/useFormList.ts +33 -0
  135. package/src/hooks/useHtmlFor.ts +9 -0
  136. package/src/hooks/useMultipleForm.ts +30 -0
  137. package/src/hooks/useRule.ts +16 -0
  138. package/src/index.ts +4 -0
  139. package/src/instance/formInstance.ts +220 -0
  140. package/src/instance/formItemBaseInstance.ts +23 -0
  141. package/src/instance/formItemInstance.ts +23 -0
  142. package/src/instance/formListInstance.ts +108 -0
  143. package/src/instance/index.ts +5 -0
  144. package/src/instance/multipleInstance.ts +109 -0
  145. package/src/instance/ruleIntsnace.ts +89 -0
  146. package/src/interface/index.ts +38 -0
  147. package/src/utils/cloneByNamePathList.ts +13 -0
  148. package/src/utils/get.ts +53 -0
  149. package/src/utils/index.ts +4 -0
  150. package/src/utils/interface.ts +4 -0
  151. package/src/utils/set.ts +85 -0
  152. package/src/utils/utils.ts +504 -0
package/lib/index.js ADDED
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ var __webpack_modules__ = {
3
+ "./hooks/index": function(module) {
4
+ module.exports = require("./hooks/index.js");
5
+ },
6
+ "./instance": function(module) {
7
+ module.exports = require("./instance/index.js");
8
+ },
9
+ "./interface": function(module) {
10
+ module.exports = require("./interface/index.js");
11
+ },
12
+ "./utils?637c": function(module) {
13
+ module.exports = require("./utils/index.js");
14
+ }
15
+ };
16
+ var __webpack_module_cache__ = {};
17
+ function __webpack_require__(moduleId) {
18
+ var cachedModule = __webpack_module_cache__[moduleId];
19
+ if (void 0 !== cachedModule) return cachedModule.exports;
20
+ var module = __webpack_module_cache__[moduleId] = {
21
+ exports: {}
22
+ };
23
+ __webpack_modules__[moduleId](module, module.exports, __webpack_require__);
24
+ return module.exports;
25
+ }
26
+ (()=>{
27
+ __webpack_require__.n = (module)=>{
28
+ var getter = module && module.__esModule ? ()=>module['default'] : ()=>module;
29
+ __webpack_require__.d(getter, {
30
+ a: getter
31
+ });
32
+ return getter;
33
+ };
34
+ })();
35
+ (()=>{
36
+ __webpack_require__.d = (exports1, definition)=>{
37
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
38
+ enumerable: true,
39
+ get: definition[key]
40
+ });
41
+ };
42
+ })();
43
+ (()=>{
44
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
45
+ })();
46
+ (()=>{
47
+ __webpack_require__.r = (exports1)=>{
48
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
49
+ value: 'Module'
50
+ });
51
+ Object.defineProperty(exports1, '__esModule', {
52
+ value: true
53
+ });
54
+ };
55
+ })();
56
+ var __webpack_exports__ = {};
57
+ (()=>{
58
+ __webpack_require__.r(__webpack_exports__);
59
+ var _interface__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("./interface");
60
+ var __WEBPACK_REEXPORT_OBJECT__ = {};
61
+ for(var __WEBPACK_IMPORT_KEY__ in _interface__WEBPACK_IMPORTED_MODULE_0__)if ("default" !== __WEBPACK_IMPORT_KEY__) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
62
+ return _interface__WEBPACK_IMPORTED_MODULE_0__[key];
63
+ }).bind(0, __WEBPACK_IMPORT_KEY__);
64
+ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
65
+ var _hooks_index__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("./hooks/index");
66
+ var __WEBPACK_REEXPORT_OBJECT__ = {};
67
+ for(var __WEBPACK_IMPORT_KEY__ in _hooks_index__WEBPACK_IMPORTED_MODULE_1__)if ("default" !== __WEBPACK_IMPORT_KEY__) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
68
+ return _hooks_index__WEBPACK_IMPORTED_MODULE_1__[key];
69
+ }).bind(0, __WEBPACK_IMPORT_KEY__);
70
+ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
71
+ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("./utils?637c");
72
+ var __WEBPACK_REEXPORT_OBJECT__ = {};
73
+ for(var __WEBPACK_IMPORT_KEY__ in _utils__WEBPACK_IMPORTED_MODULE_2__)if ("default" !== __WEBPACK_IMPORT_KEY__) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
74
+ return _utils__WEBPACK_IMPORTED_MODULE_2__[key];
75
+ }).bind(0, __WEBPACK_IMPORT_KEY__);
76
+ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
77
+ var _instance__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("./instance");
78
+ var __WEBPACK_REEXPORT_OBJECT__ = {};
79
+ for(var __WEBPACK_IMPORT_KEY__ in _instance__WEBPACK_IMPORTED_MODULE_3__)if ("default" !== __WEBPACK_IMPORT_KEY__) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = (function(key) {
80
+ return _instance__WEBPACK_IMPORTED_MODULE_3__[key];
81
+ }).bind(0, __WEBPACK_IMPORT_KEY__);
82
+ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);
83
+ })();
84
+ for(var __webpack_i__ in __webpack_exports__)exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
85
+ Object.defineProperty(exports, '__esModule', {
86
+ value: true
87
+ });
@@ -0,0 +1,58 @@
1
+ import { FormListInstanceBase } from './formListInstance';
2
+ import { FormItemInstanceBase } from './formItemInstance';
3
+ import { ValidateErrorEntity } from '../interface';
4
+ import { Ref } from 'vue';
5
+ /**基础实例*/
6
+ export declare class FormInstanceBase<T = any> {
7
+ /**表单数据*/
8
+ formData: Ref<Partial<T>>;
9
+ /**表单每一项实例*/
10
+ formItemInstances: Ref<FormItemInstanceBase>[];
11
+ /**表单中List实例集合*/
12
+ formListInstances: Map<string, Ref<FormListInstanceBase>>;
13
+ /**隐藏组件字段对应的值*/
14
+ hideState: Ref<Record<string, boolean>>;
15
+ /**是否保护值(不进行表单项组件卸载重置初始值)*/
16
+ preserve?: boolean;
17
+ /**值更新触发*/
18
+ onValuesChange?: (changedValues: any, values: T) => void;
19
+ /**提交保存 验证成功*/
20
+ onFinish?: (values: T) => void;
21
+ /**提交保存 验证失败*/
22
+ onFinishFailed?: (errorInfo: ValidateErrorEntity<T>) => void;
23
+ /**
24
+ * 重置字段数据值
25
+ */
26
+ resetFieldsValue: (initial?: Partial<T>) => this;
27
+ /**注册一个 formIList 实例*/
28
+ registerFormList: (name: string, itemInstance: Ref<FormListInstanceBase>) => () => void;
29
+ /**注册一个 formItem 实例*/
30
+ registerFormItem: (itemInstance: Ref<FormItemInstanceBase>) => () => void;
31
+ /**更新字段是否隐藏*/
32
+ updatedFieldHideValue: (value: Record<string, boolean>) => this;
33
+ /**更新字段value值
34
+ *
35
+ * @param name 字段
36
+ * @param value 字段值
37
+ * @param validateType 校验规则处理
38
+ * @param isOnlySave 仅用于存储
39
+ *
40
+ */
41
+ updatedFieldValue: (name: string, value: any, validateType?: "validate" | "clear" | "none") => this;
42
+ /**获取 formList 实例或者集合*/
43
+ getFormListInstance: (name: string) => Ref<FormListInstanceBase, FormListInstanceBase> | undefined;
44
+ /**获取字段值*/
45
+ getFieldValue: (name?: string) => any;
46
+ /**获取字段隐藏值*/
47
+ getFieldHideValue: (name?: string) => any;
48
+ /**
49
+ * 只进行验证,没有返回值
50
+ * */
51
+ onlyValidate: (name: string | string[]) => Promise<this>;
52
+ /**规则验证 ,默认不传递验证所有 */
53
+ validate: (names?: string[], isGetAllData?: boolean) => Promise<T>;
54
+ /**
55
+ * 提交
56
+ */
57
+ submit: () => Promise<void>;
58
+ }
@@ -0,0 +1,166 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ FormInstanceBase: ()=>FormInstanceBase
28
+ });
29
+ const index_js_namespaceObject = require("../utils/index.js");
30
+ const external_vue_namespaceObject = require("vue");
31
+ class FormInstanceBase {
32
+ formData = (0, external_vue_namespaceObject.ref)({});
33
+ formItemInstances = [];
34
+ formListInstances = new Map([]);
35
+ hideState = (0, external_vue_namespaceObject.ref)({});
36
+ preserve = true;
37
+ onValuesChange;
38
+ onFinish;
39
+ onFinishFailed;
40
+ resetFieldsValue = (initial = {})=>{
41
+ this.formData.value = Object.assign(this.formData.value, initial);
42
+ return this;
43
+ };
44
+ registerFormList = (name, itemInstance)=>{
45
+ this.formListInstances.set(name, itemInstance);
46
+ return ()=>{
47
+ this.formListInstances.delete(name);
48
+ };
49
+ };
50
+ registerFormItem = (itemInstance)=>{
51
+ this.formItemInstances.push(itemInstance);
52
+ return ()=>{
53
+ const instanceItem = (0, external_vue_namespaceObject.toValue)(itemInstance);
54
+ this.formItemInstances = this.formItemInstances.filter((ite)=>ite !== itemInstance);
55
+ let preserve = this.preserve;
56
+ if (instanceItem?.preserve === false) preserve = instanceItem.preserve;
57
+ const name = `${instanceItem?.name}`;
58
+ const formData = (0, external_vue_namespaceObject.toValue)(this.formData);
59
+ if (name && (0, index_js_namespaceObject.has)(formData, name) && !preserve) this.formData.value = (0, index_js_namespaceObject.set)(formData, instanceItem.name, void 0);
60
+ };
61
+ };
62
+ updatedFieldHideValue = (value)=>{
63
+ const names = Object.keys(value || {});
64
+ names.forEach((key)=>{
65
+ this.hideState.value = (0, index_js_namespaceObject.set)(this.hideState.value, key, value[key]);
66
+ });
67
+ return this;
68
+ };
69
+ updatedFieldValue = (name, value, validateType = 'validate')=>{
70
+ this.formData.value = (0, index_js_namespaceObject.set)(this.formData.value, name, value);
71
+ if ('validate' === validateType) this.onlyValidate(name);
72
+ else if ('clear' === validateType) {
73
+ const formItemInstance = this.formItemInstances.find((ite)=>ite.value.name === name);
74
+ const instanceItem = (0, external_vue_namespaceObject.toValue)(formItemInstance);
75
+ const instanceItemRule = (0, external_vue_namespaceObject.toValue)(instanceItem?.rule);
76
+ if (instanceItemRule) instanceItemRule?.updatedMessages?.([]);
77
+ }
78
+ return this;
79
+ };
80
+ getFormListInstance = (name)=>this.formListInstances.get(name);
81
+ getFieldValue = (name)=>{
82
+ const fromData = (0, external_vue_namespaceObject.toValue)(this.formData);
83
+ if (name) {
84
+ if ((0, index_js_namespaceObject.has)(fromData, name)) return (0, index_js_namespaceObject.get)(fromData, name);
85
+ return;
86
+ }
87
+ return fromData;
88
+ };
89
+ getFieldHideValue = (name)=>{
90
+ const hideData = (0, external_vue_namespaceObject.toValue)(this.hideState);
91
+ if (name) return (0, index_js_namespaceObject.get)(hideData, name);
92
+ return hideData;
93
+ };
94
+ onlyValidate = async (name)=>{
95
+ try {
96
+ if (Array.isArray(name)) await this.validate(name, false);
97
+ else await this.validate([
98
+ name
99
+ ], false);
100
+ } catch (err) {
101
+ console.log(err);
102
+ }
103
+ return this;
104
+ };
105
+ validate = (names, isGetAllData = true)=>new Promise(async (resolve, reject)=>{
106
+ const errorFields = [];
107
+ const notErrorFields = [];
108
+ const newFormItemInstances = this.formItemInstances;
109
+ const nameListPath = newFormItemInstances.map((item)=>item.value.name);
110
+ const lg = newFormItemInstances.length;
111
+ const isNames = Array.isArray(names) && names.length;
112
+ for(let index = 0; index < lg; index++){
113
+ const instanceItemRef = newFormItemInstances[index];
114
+ const instanceItem = (0, external_vue_namespaceObject.toValue)(instanceItemRef);
115
+ const rule = (0, external_vue_namespaceObject.toValue)(instanceItem.rule);
116
+ if (rule && rule.isValidate()) {
117
+ let isValidate = true;
118
+ if (isNames) {
119
+ const findx = names.find((name)=>name === instanceItem.name);
120
+ if (!findx) isValidate = false;
121
+ }
122
+ try {
123
+ if (isValidate) {
124
+ await rule.validate();
125
+ notErrorFields.push({
126
+ errors: [],
127
+ sort: instanceItem.sort,
128
+ name: instanceItem.name
129
+ });
130
+ }
131
+ } catch (errors) {
132
+ if (errors) errorFields.push({
133
+ errors,
134
+ sort: instanceItem.sort,
135
+ name: instanceItem.name
136
+ });
137
+ }
138
+ } else notErrorFields.push({
139
+ errors: [],
140
+ sort: instanceItem.sort,
141
+ name: instanceItem.name
142
+ });
143
+ }
144
+ const values = isGetAllData ? (0, index_js_namespaceObject.cloneByNamePathList)(this.getFieldValue(), nameListPath) : {};
145
+ if (errorFields.length) reject({
146
+ errorFields,
147
+ values: values
148
+ });
149
+ else resolve(values);
150
+ });
151
+ submit = async ()=>{
152
+ try {
153
+ const result = await this.validate();
154
+ if (result) this?.onFinish?.(result);
155
+ } catch (error) {
156
+ this.onFinishFailed?.(error);
157
+ }
158
+ };
159
+ }
160
+ exports.FormInstanceBase = __webpack_exports__.FormInstanceBase;
161
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
162
+ "FormInstanceBase"
163
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
164
+ Object.defineProperty(exports, '__esModule', {
165
+ value: true
166
+ });
@@ -0,0 +1,23 @@
1
+ import { Ref } from 'vue';
2
+ import { FormInstanceBase } from './formInstance';
3
+ export declare class FormItemBaseInstance {
4
+ /**
5
+ * 顺序
6
+ * @example
7
+ * "0"
8
+ * "0-0"
9
+ * "0-0-0"
10
+ */
11
+ sort?: string;
12
+ /**
13
+ * 字段 ,分割方式与lodash的get和set方法值更新或设置路径一致
14
+ * @example
15
+ * 默认:"name"
16
+ * 嵌套字段:"name.a.doc"
17
+ * 嵌套字段:"name[1].a.doc"
18
+ * 嵌套字段:"name.a[2].doc"
19
+ */
20
+ name: string;
21
+ /**表单实例*/
22
+ instance?: Ref<FormInstanceBase>;
23
+ }
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ FormItemBaseInstance: ()=>FormItemBaseInstance
28
+ });
29
+ class FormItemBaseInstance {
30
+ sort;
31
+ name = '';
32
+ instance;
33
+ }
34
+ exports.FormItemBaseInstance = __webpack_exports__.FormItemBaseInstance;
35
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
36
+ "FormItemBaseInstance"
37
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
38
+ Object.defineProperty(exports, '__esModule', {
39
+ value: true
40
+ });
@@ -0,0 +1,18 @@
1
+ import { RuleInstanceBase } from './ruleIntsnace';
2
+ import { FormInstanceBase } from './formInstance';
3
+ import { FormItemBaseInstance } from './formItemBaseInstance';
4
+ import { Ref } from 'vue';
5
+ export declare class FormItemInstanceBase extends FormItemBaseInstance {
6
+ /**父级字段*/
7
+ parentDataField?: string;
8
+ /**通知 只用于校验规则提示 字段 */
9
+ noticeOnlyRuleDataField?: string[];
10
+ htmlFor?: string;
11
+ control?: Ref<any>;
12
+ /**规则*/
13
+ rule?: Ref<RuleInstanceBase>;
14
+ /**是否保护值(不进行表单项组件卸载重置初始值)*/
15
+ preserve?: boolean;
16
+ /**触发数据更新之后触发(用于数据联动之类的)*/
17
+ onAfterUpdate?: (value: any, instance: Ref<FormInstanceBase>, instanceAttr: Ref<FormItemInstanceBase>, event: any) => void;
18
+ }
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ FormItemInstanceBase: ()=>FormItemInstanceBase
28
+ });
29
+ const external_formItemBaseInstance_js_namespaceObject = require("./formItemBaseInstance.js");
30
+ class FormItemInstanceBase extends external_formItemBaseInstance_js_namespaceObject.FormItemBaseInstance {
31
+ parentDataField;
32
+ noticeOnlyRuleDataField;
33
+ htmlFor;
34
+ control;
35
+ rule;
36
+ preserve = true;
37
+ onAfterUpdate;
38
+ }
39
+ exports.FormItemInstanceBase = __webpack_exports__.FormItemInstanceBase;
40
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
41
+ "FormItemInstanceBase"
42
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
43
+ Object.defineProperty(exports, '__esModule', {
44
+ value: true
45
+ });
@@ -0,0 +1,43 @@
1
+ import { FormItemBaseInstance } from './formItemBaseInstance';
2
+ import { RuleInstanceBase } from './ruleIntsnace';
3
+ import { FormItemInstanceBase } from './formItemInstance';
4
+ import { Ref } from 'vue';
5
+ export declare class FormListInstanceBase extends FormItemBaseInstance {
6
+ /**规则*/
7
+ rule?: Ref<RuleInstanceBase>;
8
+ /**表单实例*/
9
+ formItemInstance?: Ref<FormItemInstanceBase>;
10
+ /**父级字段*/
11
+ parentDataField?: string;
12
+ /**记录key值*/
13
+ keys: number[];
14
+ /**累加数据,唯一性*/
15
+ id: number;
16
+ /**
17
+ * 初始化
18
+ * @param name 字段
19
+ */
20
+ ctor: (name: string) => this;
21
+ /**获取值*/
22
+ getLastValue: () => any[];
23
+ /**
24
+ * 添加一条
25
+ * @param initialValue 初始值
26
+ * @param unshift 是否加入数组前面
27
+ */
28
+ onAdd: (initialValue?: Object, unshift?: boolean) => void;
29
+ /**
30
+ * 删除
31
+ * @param index 删除数据下标
32
+ */
33
+ onDelete: (index: number | number[]) => void;
34
+ /**移动*/
35
+ onMove: (from: number, to: number) => void;
36
+ /**更新某个item数据*/
37
+ updatedItem: (index: number, item: any) => void;
38
+ /**获取渲染 list 字段拼接*/
39
+ getFields: () => {
40
+ name: number;
41
+ key: number;
42
+ }[];
43
+ }
@@ -0,0 +1,129 @@
1
+ "use strict";
2
+ var __webpack_require__ = {};
3
+ (()=>{
4
+ __webpack_require__.d = (exports1, definition)=>{
5
+ for(var key in definition)if (__webpack_require__.o(definition, key) && !__webpack_require__.o(exports1, key)) Object.defineProperty(exports1, key, {
6
+ enumerable: true,
7
+ get: definition[key]
8
+ });
9
+ };
10
+ })();
11
+ (()=>{
12
+ __webpack_require__.o = (obj, prop)=>Object.prototype.hasOwnProperty.call(obj, prop);
13
+ })();
14
+ (()=>{
15
+ __webpack_require__.r = (exports1)=>{
16
+ if ('undefined' != typeof Symbol && Symbol.toStringTag) Object.defineProperty(exports1, Symbol.toStringTag, {
17
+ value: 'Module'
18
+ });
19
+ Object.defineProperty(exports1, '__esModule', {
20
+ value: true
21
+ });
22
+ };
23
+ })();
24
+ var __webpack_exports__ = {};
25
+ __webpack_require__.r(__webpack_exports__);
26
+ __webpack_require__.d(__webpack_exports__, {
27
+ FormListInstanceBase: ()=>FormListInstanceBase
28
+ });
29
+ const external_formItemBaseInstance_js_namespaceObject = require("./formItemBaseInstance.js");
30
+ const external_vue_namespaceObject = require("vue");
31
+ class FormListInstanceBase extends external_formItemBaseInstance_js_namespaceObject.FormItemBaseInstance {
32
+ rule;
33
+ formItemInstance;
34
+ parentDataField;
35
+ keys = [];
36
+ id = 0;
37
+ ctor = (name)=>{
38
+ this.name = name;
39
+ return this;
40
+ };
41
+ getLastValue = ()=>{
42
+ const form = (0, external_vue_namespaceObject.toValue)(this.instance);
43
+ const value = form?.getFieldValue?.(this.name);
44
+ const lastValue = Array.isArray(value) ? value : [];
45
+ return lastValue;
46
+ };
47
+ onAdd = (initialValue = {}, unshift)=>{
48
+ const form = (0, external_vue_namespaceObject.toValue)(this.instance);
49
+ const value = this.getLastValue();
50
+ if (unshift) {
51
+ const listData = [
52
+ initialValue || {},
53
+ ...value
54
+ ];
55
+ this.keys = [
56
+ this.id,
57
+ ...this.keys
58
+ ];
59
+ this.id++;
60
+ form?.updatedFieldValue?.(this.name, listData);
61
+ } else {
62
+ const listData = [
63
+ ...value,
64
+ initialValue || {}
65
+ ];
66
+ this.keys = [
67
+ ...this.keys,
68
+ this.id
69
+ ];
70
+ this.id++;
71
+ form?.updatedFieldValue?.(this.name, listData);
72
+ }
73
+ };
74
+ onDelete = (index)=>{
75
+ const form = (0, external_vue_namespaceObject.toValue)(this.instance);
76
+ const value = this.getLastValue();
77
+ const newIndexs = Array.isArray(index) ? index : [
78
+ index
79
+ ];
80
+ this.keys = this.keys.filter((_, index)=>!newIndexs.includes(index));
81
+ const listData = value.filter((_, index)=>!newIndexs.includes(index));
82
+ form?.updatedFieldValue?.(this.name, listData);
83
+ };
84
+ onMove = (from, to)=>{
85
+ const form = (0, external_vue_namespaceObject.toValue)(this.instance);
86
+ const newList = this.getLastValue();
87
+ const fromItem = newList[from];
88
+ const toItem = newList[to];
89
+ newList[from] = toItem;
90
+ newList[to] = fromItem;
91
+ form?.updatedFieldValue?.(this.name, [
92
+ ...newList
93
+ ]);
94
+ };
95
+ updatedItem = (index, item)=>{
96
+ const form = (0, external_vue_namespaceObject.toValue)(this.instance);
97
+ const newList = this.getLastValue();
98
+ const newItem = newList[index];
99
+ newList[index] = {
100
+ ...newItem,
101
+ ...item
102
+ };
103
+ form?.updatedFieldValue?.(this.name, [
104
+ ...newList
105
+ ]);
106
+ };
107
+ getFields = ()=>{
108
+ const values = this.getLastValue();
109
+ return values.map((__, index)=>{
110
+ let key = this.keys[index];
111
+ if (void 0 === key) {
112
+ this.keys[index] = this.id;
113
+ key = this.keys[index];
114
+ this.id++;
115
+ }
116
+ return {
117
+ name: index,
118
+ key
119
+ };
120
+ });
121
+ };
122
+ }
123
+ exports.FormListInstanceBase = __webpack_exports__.FormListInstanceBase;
124
+ for(var __webpack_i__ in __webpack_exports__)if (-1 === [
125
+ "FormListInstanceBase"
126
+ ].indexOf(__webpack_i__)) exports[__webpack_i__] = __webpack_exports__[__webpack_i__];
127
+ Object.defineProperty(exports, '__esModule', {
128
+ value: true
129
+ });
@@ -0,0 +1,5 @@
1
+ export * from './formInstance';
2
+ export * from './formItemInstance';
3
+ export * from './formListInstance';
4
+ export * from './multipleInstance';
5
+ export * from './ruleIntsnace';