@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.
- package/README.md +7 -0
- package/esm/hooks/attr/attr.FormItem.d.ts +94 -0
- package/esm/hooks/attr/attr.FormItem.js +104 -0
- package/esm/hooks/index.d.ts +13 -0
- package/esm/hooks/index.js +13 -0
- package/esm/hooks/register/register.FormHideItem.d.ts +9 -0
- package/esm/hooks/register/register.FormHideItem.js +26 -0
- package/esm/hooks/register/register.FormItem.d.ts +24 -0
- package/esm/hooks/register/register.FormItem.js +67 -0
- package/esm/hooks/register/register.FormList.d.ts +9 -0
- package/esm/hooks/register/register.FormList.js +42 -0
- package/esm/hooks/register/register.form.d.ts +4 -0
- package/esm/hooks/register/register.form.js +10 -0
- package/esm/hooks/useAttrs.d.ts +25 -0
- package/esm/hooks/useAttrs.js +26 -0
- package/esm/hooks/useEffect.d.ts +2 -0
- package/esm/hooks/useEffect.js +12 -0
- package/esm/hooks/useForm.d.ts +8 -0
- package/esm/hooks/useForm.js +21 -0
- package/esm/hooks/useFormItem.d.ts +8 -0
- package/esm/hooks/useFormItem.js +21 -0
- package/esm/hooks/useFormItemParentName.d.ts +18 -0
- package/esm/hooks/useFormItemParentName.js +47 -0
- package/esm/hooks/useFormList.d.ts +8 -0
- package/esm/hooks/useFormList.js +21 -0
- package/esm/hooks/useHtmlFor.d.ts +2 -0
- package/esm/hooks/useHtmlFor.js +7 -0
- package/esm/hooks/useMultipleForm.d.ts +8 -0
- package/esm/hooks/useMultipleForm.js +21 -0
- package/esm/hooks/useRule.d.ts +4 -0
- package/esm/hooks/useRule.js +12 -0
- package/esm/index.d.ts +4 -0
- package/esm/index.js +4 -0
- package/esm/instance/formInstance.d.ts +58 -0
- package/esm/instance/formInstance.js +132 -0
- package/esm/instance/formItemBaseInstance.d.ts +23 -0
- package/esm/instance/formItemBaseInstance.js +6 -0
- package/esm/instance/formItemInstance.d.ts +18 -0
- package/esm/instance/formItemInstance.js +11 -0
- package/esm/instance/formListInstance.d.ts +43 -0
- package/esm/instance/formListInstance.js +95 -0
- package/esm/instance/index.d.ts +5 -0
- package/esm/instance/index.js +5 -0
- package/esm/instance/multipleInstance.d.ts +32 -0
- package/esm/instance/multipleInstance.js +77 -0
- package/esm/instance/ruleIntsnace.d.ts +45 -0
- package/esm/instance/ruleIntsnace.js +52 -0
- package/esm/interface/index.d.ts +31 -0
- package/esm/interface/index.js +0 -0
- package/esm/utils/cloneByNamePathList.d.ts +3 -0
- package/esm/utils/cloneByNamePathList.js +11 -0
- package/esm/utils/get.d.ts +26 -0
- package/esm/utils/get.js +13 -0
- package/esm/utils/index.d.ts +4 -0
- package/esm/utils/index.js +4 -0
- package/esm/utils/interface.d.ts +3 -0
- package/esm/utils/interface.js +0 -0
- package/esm/utils/set.d.ts +32 -0
- package/esm/utils/set.js +29 -0
- package/esm/utils/utils.d.ts +172 -0
- package/esm/utils/utils.js +131 -0
- package/lib/hooks/attr/attr.FormItem.d.ts +94 -0
- package/lib/hooks/attr/attr.FormItem.js +138 -0
- package/lib/hooks/index.d.ts +13 -0
- package/lib/hooks/index.js +168 -0
- package/lib/hooks/register/register.FormHideItem.d.ts +9 -0
- package/lib/hooks/register/register.FormHideItem.js +60 -0
- package/lib/hooks/register/register.FormItem.d.ts +24 -0
- package/lib/hooks/register/register.FormItem.js +101 -0
- package/lib/hooks/register/register.FormList.d.ts +9 -0
- package/lib/hooks/register/register.FormList.js +76 -0
- package/lib/hooks/register/register.form.d.ts +4 -0
- package/lib/hooks/register/register.form.js +44 -0
- package/lib/hooks/useAttrs.d.ts +25 -0
- package/lib/hooks/useAttrs.js +63 -0
- package/lib/hooks/useEffect.d.ts +2 -0
- package/lib/hooks/useEffect.js +46 -0
- package/lib/hooks/useForm.d.ts +8 -0
- package/lib/hooks/useForm.js +61 -0
- package/lib/hooks/useFormItem.d.ts +8 -0
- package/lib/hooks/useFormItem.js +61 -0
- package/lib/hooks/useFormItemParentName.d.ts +18 -0
- package/lib/hooks/useFormItemParentName.js +84 -0
- package/lib/hooks/useFormList.d.ts +8 -0
- package/lib/hooks/useFormList.js +61 -0
- package/lib/hooks/useHtmlFor.d.ts +2 -0
- package/lib/hooks/useHtmlFor.js +41 -0
- package/lib/hooks/useMultipleForm.d.ts +8 -0
- package/lib/hooks/useMultipleForm.js +61 -0
- package/lib/hooks/useRule.d.ts +4 -0
- package/lib/hooks/useRule.js +46 -0
- package/lib/index.d.ts +4 -0
- package/lib/index.js +87 -0
- package/lib/instance/formInstance.d.ts +58 -0
- package/lib/instance/formInstance.js +166 -0
- package/lib/instance/formItemBaseInstance.d.ts +23 -0
- package/lib/instance/formItemBaseInstance.js +40 -0
- package/lib/instance/formItemInstance.d.ts +18 -0
- package/lib/instance/formItemInstance.js +45 -0
- package/lib/instance/formListInstance.d.ts +43 -0
- package/lib/instance/formListInstance.js +129 -0
- package/lib/instance/index.d.ts +5 -0
- package/lib/instance/index.js +96 -0
- package/lib/instance/multipleInstance.d.ts +32 -0
- package/lib/instance/multipleInstance.js +111 -0
- package/lib/instance/ruleIntsnace.d.ts +45 -0
- package/lib/instance/ruleIntsnace.js +96 -0
- package/lib/interface/index.d.ts +31 -0
- package/lib/interface/index.js +18 -0
- package/lib/utils/cloneByNamePathList.d.ts +3 -0
- package/lib/utils/cloneByNamePathList.js +45 -0
- package/lib/utils/get.d.ts +26 -0
- package/lib/utils/get.js +47 -0
- package/lib/utils/index.d.ts +4 -0
- package/lib/utils/index.js +87 -0
- package/lib/utils/interface.d.ts +3 -0
- package/lib/utils/interface.js +18 -0
- package/lib/utils/set.d.ts +32 -0
- package/lib/utils/set.js +63 -0
- package/lib/utils/utils.d.ts +172 -0
- package/lib/utils/utils.js +198 -0
- package/package.json +30 -0
- package/src/hooks/attr/attr.FormItem.tsx +185 -0
- package/src/hooks/index.ts +13 -0
- package/src/hooks/register/register.FormHideItem.ts +28 -0
- package/src/hooks/register/register.FormItem.ts +93 -0
- package/src/hooks/register/register.FormList.ts +49 -0
- package/src/hooks/register/register.form.ts +13 -0
- package/src/hooks/useAttrs.ts +64 -0
- package/src/hooks/useEffect.ts +13 -0
- package/src/hooks/useForm.ts +34 -0
- package/src/hooks/useFormItem.ts +33 -0
- package/src/hooks/useFormItemParentName.ts +49 -0
- package/src/hooks/useFormList.ts +33 -0
- package/src/hooks/useHtmlFor.ts +9 -0
- package/src/hooks/useMultipleForm.ts +30 -0
- package/src/hooks/useRule.ts +16 -0
- package/src/index.ts +4 -0
- package/src/instance/formInstance.ts +220 -0
- package/src/instance/formItemBaseInstance.ts +23 -0
- package/src/instance/formItemInstance.ts +23 -0
- package/src/instance/formListInstance.ts +108 -0
- package/src/instance/index.ts +5 -0
- package/src/instance/multipleInstance.ts +109 -0
- package/src/instance/ruleIntsnace.ts +89 -0
- package/src/interface/index.ts +38 -0
- package/src/utils/cloneByNamePathList.ts +13 -0
- package/src/utils/get.ts +53 -0
- package/src/utils/index.ts +4 -0
- package/src/utils/interface.ts +4 -0
- package/src/utils/set.ts +85 -0
- 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
|
+
});
|