tntd 2.0.19 → 2.0.20
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/es/array-input/style/index.js +1 -0
- package/es/array-input/style/index.js.map +1 -0
- package/es/auth-context/style/index.js +1 -0
- package/es/auth-context/style/index.js.map +1 -0
- package/es/development-login/style/index.js +1 -0
- package/es/development-login/style/index.js.map +1 -0
- package/es/ellipsis/style/index.js +1 -0
- package/es/ellipsis/style/index.js.map +1 -0
- package/es/empty/render-empty.js +22 -0
- package/es/empty/render-empty.js.map +1 -0
- package/es/empty/style/index.js +2 -0
- package/es/empty/style/index.js.map +1 -0
- package/es/handle/style/index.js +1 -0
- package/es/handle/style/index.js.map +1 -0
- package/es/icon-list/style/index.js +1 -0
- package/es/icon-list/style/index.js.map +1 -0
- package/es/img/style/index.js +1 -0
- package/es/img/style/index.js.map +1 -0
- package/es/loading-button/style/index.js +1 -0
- package/es/loading-button/style/index.js.map +1 -0
- package/es/page/style/index.js +1 -0
- package/es/page/style/index.js.map +1 -0
- package/es/query-form/style/index.js +1 -0
- package/es/query-form/style/index.js.map +1 -0
- package/es/query-list-scene/style/index.js +1 -0
- package/es/query-list-scene/style/index.js.map +1 -0
- package/es/render-empty/style/index.js +1 -0
- package/es/render-empty/style/index.js.map +1 -0
- package/es/table/style/index.js +2 -0
- package/es/table/style/index.js.map +1 -0
- package/es/table/table.js +4 -1
- package/es/table/table.js.map +1 -1
- package/es/table/table.less +7 -0
- package/es/title/style/index.js +1 -0
- package/es/title/style/index.js.map +1 -0
- package/es/tntd-icon/style/index.js +1 -0
- package/es/tntd-icon/style/index.js.map +1 -0
- package/es/tntd-layout/style/index.js +1 -0
- package/es/tntd-layout/style/index.js.map +1 -0
- package/es/tntd-modal/style/index.js +1 -0
- package/es/tntd-modal/style/index.js.map +1 -0
- package/es/tntd-select/style/index.js +1 -0
- package/es/tntd-select/style/index.js.map +1 -0
- package/lib/array-input/style/index.d.ts +1 -0
- package/lib/array-input/style/index.d.ts.map +1 -0
- package/lib/array-input/style/index.js +1 -0
- package/lib/array-input/style/index.js.map +1 -0
- package/lib/auth-context/style/index.d.ts +1 -0
- package/lib/auth-context/style/index.d.ts.map +1 -0
- package/lib/auth-context/style/index.js +1 -0
- package/lib/auth-context/style/index.js.map +1 -0
- package/lib/development-login/style/index.d.ts +1 -0
- package/lib/development-login/style/index.d.ts.map +1 -0
- package/lib/development-login/style/index.js +1 -0
- package/lib/development-login/style/index.js.map +1 -0
- package/lib/ellipsis/style/index.d.ts +1 -0
- package/lib/ellipsis/style/index.d.ts.map +1 -0
- package/lib/ellipsis/style/index.js +1 -0
- package/lib/ellipsis/style/index.js.map +1 -0
- package/lib/empty/render-empty.d.ts +3 -0
- package/lib/empty/render-empty.d.ts.map +1 -0
- package/lib/empty/render-empty.js +32 -0
- package/lib/empty/render-empty.js.map +1 -0
- package/lib/empty/style/index.d.ts +3 -0
- package/lib/empty/style/index.d.ts.map +1 -0
- package/lib/empty/style/index.js +4 -0
- package/lib/empty/style/index.js.map +1 -0
- package/lib/handle/style/index.d.ts +1 -0
- package/lib/handle/style/index.d.ts.map +1 -0
- package/lib/handle/style/index.js +1 -0
- package/lib/handle/style/index.js.map +1 -0
- package/lib/icon-list/style/index.d.ts +3 -0
- package/lib/icon-list/style/index.d.ts.map +1 -0
- package/lib/icon-list/style/index.js +8 -0
- package/lib/icon-list/style/index.js.map +1 -0
- package/lib/img/style/index.d.ts +1 -0
- package/lib/img/style/index.d.ts.map +1 -0
- package/lib/img/style/index.js +1 -0
- package/lib/img/style/index.js.map +1 -0
- package/lib/loading-button/style/index.d.ts +1 -0
- package/lib/loading-button/style/index.d.ts.map +1 -0
- package/lib/loading-button/style/index.js +1 -0
- package/lib/loading-button/style/index.js.map +1 -0
- package/lib/page/style/index.d.ts +1 -0
- package/lib/page/style/index.d.ts.map +1 -0
- package/lib/page/style/index.js +1 -0
- package/lib/page/style/index.js.map +1 -0
- package/lib/query-form/style/index.d.ts +1 -0
- package/lib/query-form/style/index.d.ts.map +1 -0
- package/lib/query-form/style/index.js +1 -0
- package/lib/query-form/style/index.js.map +1 -0
- package/lib/query-list-scene/style/index.d.ts +1 -0
- package/lib/query-list-scene/style/index.d.ts.map +1 -0
- package/lib/query-list-scene/style/index.js +1 -0
- package/lib/query-list-scene/style/index.js.map +1 -0
- package/lib/render-empty/style/index.d.ts +2 -0
- package/lib/render-empty/style/index.d.ts.map +1 -0
- package/lib/render-empty/style/index.js +3 -0
- package/lib/render-empty/style/index.js.map +1 -0
- package/lib/table/style/index.d.ts +3 -0
- package/lib/table/style/index.d.ts.map +1 -0
- package/lib/table/style/index.js +4 -0
- package/lib/table/style/index.js.map +1 -0
- package/lib/table/table.d.ts +2 -1
- package/lib/table/table.d.ts.map +1 -1
- package/lib/table/table.js +4 -2
- package/lib/table/table.js.map +1 -1
- package/lib/table/table.less +7 -0
- package/lib/title/style/index.d.ts +1 -0
- package/lib/title/style/index.d.ts.map +1 -0
- package/lib/title/style/index.js +1 -0
- package/lib/title/style/index.js.map +1 -0
- package/lib/tntd-icon/style/index.d.ts +1 -0
- package/lib/tntd-icon/style/index.d.ts.map +1 -0
- package/lib/tntd-icon/style/index.js +1 -0
- package/lib/tntd-icon/style/index.js.map +1 -0
- package/lib/tntd-layout/style/index.d.ts +1 -0
- package/lib/tntd-layout/style/index.d.ts.map +1 -0
- package/lib/tntd-layout/style/index.js +1 -0
- package/lib/tntd-layout/style/index.js.map +1 -0
- package/lib/tntd-modal/style/index.d.ts +1 -0
- package/lib/tntd-modal/style/index.d.ts.map +1 -0
- package/lib/tntd-modal/style/index.js +1 -0
- package/lib/tntd-modal/style/index.js.map +1 -0
- package/lib/tntd-select/style/index.d.ts +1 -0
- package/lib/tntd-select/style/index.d.ts.map +1 -0
- package/lib/tntd-select/style/index.js +1 -0
- package/lib/tntd-select/style/index.js.map +1 -0
- package/package.json +1 -1
- package/es/tntd-form/CustomForm/components/Item.js +0 -40
- package/es/tntd-form/CustomForm/components/Item.js.map +0 -1
- package/es/tntd-form/CustomForm/components/ItemComp.js +0 -149
- package/es/tntd-form/CustomForm/components/ItemComp.js.map +0 -1
- package/es/tntd-form/CustomForm/components/List.js +0 -75
- package/es/tntd-form/CustomForm/components/List.js.map +0 -1
- package/es/tntd-form/CustomForm/index.js +0 -48
- package/es/tntd-form/CustomForm/index.js.map +0 -1
- package/es/tntd-form/CustomForm/interface.js +0 -1
- package/es/tntd-form/CustomForm/interface.js.map +0 -1
- package/es/tntd-form/CustomForm/store.js +0 -2
- package/es/tntd-form/CustomForm/store.js.map +0 -1
- package/es/tntd-form/CustomForm/utils.js +0 -215
- package/es/tntd-form/CustomForm/utils.js.map +0 -1
- package/lib/tntd-form/CustomForm/components/Item.d.ts +0 -5
- package/lib/tntd-form/CustomForm/components/Item.d.ts.map +0 -1
- package/lib/tntd-form/CustomForm/components/Item.js +0 -50
- package/lib/tntd-form/CustomForm/components/Item.js.map +0 -1
- package/lib/tntd-form/CustomForm/components/ItemComp.d.ts +0 -5
- package/lib/tntd-form/CustomForm/components/ItemComp.d.ts.map +0 -1
- package/lib/tntd-form/CustomForm/components/ItemComp.js +0 -169
- package/lib/tntd-form/CustomForm/components/ItemComp.js.map +0 -1
- package/lib/tntd-form/CustomForm/components/List.d.ts +0 -5
- package/lib/tntd-form/CustomForm/components/List.d.ts.map +0 -1
- package/lib/tntd-form/CustomForm/components/List.js +0 -96
- package/lib/tntd-form/CustomForm/components/List.js.map +0 -1
- package/lib/tntd-form/CustomForm/index.d.ts +0 -10
- package/lib/tntd-form/CustomForm/index.d.ts.map +0 -1
- package/lib/tntd-form/CustomForm/index.js +0 -66
- package/lib/tntd-form/CustomForm/index.js.map +0 -1
- package/lib/tntd-form/CustomForm/interface.d.ts +0 -88
- package/lib/tntd-form/CustomForm/interface.d.ts.map +0 -1
- package/lib/tntd-form/CustomForm/interface.js +0 -5
- package/lib/tntd-form/CustomForm/interface.js.map +0 -1
- package/lib/tntd-form/CustomForm/store.d.ts +0 -4
- package/lib/tntd-form/CustomForm/store.d.ts.map +0 -1
- package/lib/tntd-form/CustomForm/store.js +0 -10
- package/lib/tntd-form/CustomForm/store.js.map +0 -1
- package/lib/tntd-form/CustomForm/utils.d.ts +0 -48
- package/lib/tntd-form/CustomForm/utils.d.ts.map +0 -1
- package/lib/tntd-form/CustomForm/utils.js +0 -235
- package/lib/tntd-form/CustomForm/utils.js.map +0 -1
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import type { IForm, ICustomFormProps } from './interface';
|
|
3
|
-
declare const CustomForm: {
|
|
4
|
-
({ form, initialValues, children }: ICustomFormProps): JSX.Element;
|
|
5
|
-
useForm(): IForm[];
|
|
6
|
-
List: React.NamedExoticComponent<import("./interface").IFormListProps>;
|
|
7
|
-
Item: React.NamedExoticComponent<import("./interface").IFormItem>;
|
|
8
|
-
};
|
|
9
|
-
export default CustomForm;
|
|
10
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/tntd-form/CustomForm/index.tsx"],"names":[],"mappings":"AAOA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAGhD,OAAO,KAAK,EAAE,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAI3D,QAAA,MAAM,UAAU;wCAAuC,gBAAgB;;;;CAgBtE,CAAC;AAwBF,eAAe,UAAU,CAAC"}
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
|
|
4
|
-
Object.defineProperty(exports, "__esModule", {
|
|
5
|
-
value: true
|
|
6
|
-
});
|
|
7
|
-
exports["default"] = void 0;
|
|
8
|
-
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
-
var _utils = require("./utils");
|
|
10
|
-
var _store = require("./store");
|
|
11
|
-
var _List = _interopRequireDefault(require("./components/List"));
|
|
12
|
-
var _Item = _interopRequireDefault(require("./components/Item"));
|
|
13
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
14
|
-
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
15
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
16
|
-
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
17
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
18
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
19
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
20
|
-
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0) { ; } } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i["return"] && (_r = _i["return"](), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
21
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
22
|
-
var CustomForm = function CustomForm(_ref) {
|
|
23
|
-
var form = _ref.form,
|
|
24
|
-
initialValues = _ref.initialValues,
|
|
25
|
-
children = _ref.children;
|
|
26
|
-
// 这个是为了获取当前是哪一个单元格在输入
|
|
27
|
-
var _useState = (0, _react.useState)([]),
|
|
28
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
29
|
-
currentChangeKeys = _useState2[0],
|
|
30
|
-
setCurrentChangeKeys = _useState2[1];
|
|
31
|
-
return _react["default"].createElement(_store.FormContext.Provider, {
|
|
32
|
-
value: {
|
|
33
|
-
form: form,
|
|
34
|
-
initialValues: initialValues,
|
|
35
|
-
currentChangeKeys: currentChangeKeys,
|
|
36
|
-
setCurrentChangeKeys: setCurrentChangeKeys
|
|
37
|
-
}
|
|
38
|
-
}, children);
|
|
39
|
-
};
|
|
40
|
-
CustomForm.useForm = function () {
|
|
41
|
-
var form = (0, _react.useRef)({
|
|
42
|
-
dataLevel: [],
|
|
43
|
-
formData: {},
|
|
44
|
-
validateFields: function validateFields() {
|
|
45
|
-
return (0, _utils.validateFields)(form.current);
|
|
46
|
-
},
|
|
47
|
-
getFieldsValue: function getFieldsValue() {
|
|
48
|
-
return (0, _utils.getFieldsValue)(form.current);
|
|
49
|
-
},
|
|
50
|
-
getFieldValue: function getFieldValue(field) {
|
|
51
|
-
return (0, _utils.getFieldValue)(form.current, field);
|
|
52
|
-
},
|
|
53
|
-
setFieldsValue: function setFieldsValue(obj) {
|
|
54
|
-
for (var i in obj) {
|
|
55
|
-
for (var attr in obj[i]) {
|
|
56
|
-
form.current.formData[i][attr].setItemValue(obj[i][attr]);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
});
|
|
61
|
-
return [form.current];
|
|
62
|
-
};
|
|
63
|
-
CustomForm.List = _List["default"];
|
|
64
|
-
CustomForm.Item = _Item["default"];
|
|
65
|
-
var _default = CustomForm;
|
|
66
|
-
exports["default"] = _default;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/tntd-form/CustomForm/index.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;;;GAMG;AACH,+CAAgD;AAChD,mCAAwE;AACxE,mCAAsC;AAEtC,6DAAqC;AACrC,6DAAqC;AAErC,MAAM,UAAU,GAAG,CAAC,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAoB,EAAE,EAAE;IACzE,sBAAsB;IACtB,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,IAAA,gBAAQ,EAAW,EAAE,CAAC,CAAC;IAEzE,OAAO,CACL,8BAAC,mBAAW,CAAC,QAAQ,IACnB,KAAK,EAAE;YACL,IAAI;YACJ,aAAa;YACb,iBAAiB;YACjB,oBAAoB;SACrB,IAEA,QAAQ,CACY,CACxB,CAAC;AACJ,CAAC,CAAC;AAEF,UAAU,CAAC,OAAO,GAAG,GAAG,EAAE;IACxB,MAAM,IAAI,GAAuB,IAAA,cAAM,EAAQ;QAC7C,SAAS,EAAE,EAAE;QACb,QAAQ,EAAE,EAAE;QACZ,cAAc,EAAE,GAAG,EAAE,CAAC,IAAA,sBAAc,EAAC,IAAI,CAAC,OAAO,CAAC;QAClD,cAAc,EAAE,GAAG,EAAE,CAAC,IAAA,sBAAc,EAAC,IAAI,CAAC,OAAO,CAAC;QAClD,aAAa,EAAE,CAAC,KAAoB,EAAE,EAAE,CAAC,IAAA,qBAAa,EAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC;QAC3E,cAAc,EAAE,CAAC,GAAe,EAAE,EAAE;YAClC,KAAK,MAAM,CAAC,IAAI,GAAG,EAAE;gBACnB,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE;oBACzB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;iBAC3D;aACF;QACH,CAAC;KACF,CAAC,CAAC;IAEH,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACxB,CAAC,CAAC;AAEF,UAAU,CAAC,IAAI,GAAG,cAAI,CAAC;AACvB,UAAU,CAAC,IAAI,GAAG,cAAI,CAAC;AAEvB,kBAAe,UAAU,CAAC","sourcesContent":["/*\n * @Descripttion: 高性能动态增删form表单\n * @Author: 郑泳健\n * @Date: 2023-02-16 10:43:03\n * @LastEditors: 郑泳健\n * @LastEditTime: 2023-03-17 16:49:01\n */\nimport React, { useState, useRef } from 'react';\nimport { validateFields, getFieldsValue, getFieldValue } from './utils';\nimport { FormContext } from './store';\nimport type { IForm, ICustomFormProps } from './interface';\nimport List from './components/List';\nimport Item from './components/Item';\n\nconst CustomForm = ({ form, initialValues, children }: ICustomFormProps) => {\n // 这个是为了获取当前是哪一个单元格在输入\n const [currentChangeKeys, setCurrentChangeKeys] = useState<string[]>([]);\n\n return (\n <FormContext.Provider\n value={{\n form,\n initialValues,\n currentChangeKeys,\n setCurrentChangeKeys,\n }}\n >\n {children}\n </FormContext.Provider>\n );\n};\n\nCustomForm.useForm = () => {\n const form: { current: IForm } = useRef<IForm>({\n dataLevel: [],\n formData: {},\n validateFields: () => validateFields(form.current),\n getFieldsValue: () => getFieldsValue(form.current),\n getFieldValue: (field: Array<string>) => getFieldValue(form.current, field),\n setFieldsValue: (obj: string[][]) => {\n for (const i in obj) {\n for (const attr in obj[i]) {\n form.current.formData[i][attr].setItemValue(obj[i][attr]);\n }\n }\n },\n });\n\n return [form.current];\n};\n\nCustomForm.List = List;\nCustomForm.Item = Item;\n\nexport default CustomForm;\n"]}
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
/**
|
|
3
|
-
* 层级
|
|
4
|
-
*/
|
|
5
|
-
export declare type ILevel = {
|
|
6
|
-
key?: number;
|
|
7
|
-
name?: string;
|
|
8
|
-
};
|
|
9
|
-
export declare type TinitialValueType = null | undefined | string | number | boolean;
|
|
10
|
-
/**
|
|
11
|
-
* 每一个单元格的信息
|
|
12
|
-
*/
|
|
13
|
-
export declare type IFormItemData = {
|
|
14
|
-
/** 每个formItem的值 */
|
|
15
|
-
value: TinitialValueType;
|
|
16
|
-
/** 每个formItem的错误信息 */
|
|
17
|
-
errorMsg: string | undefined;
|
|
18
|
-
/** 每个formItem的校验方法, 返回值为该formItem的错误信息,同时会在formItem下面显示错误信息 */
|
|
19
|
-
checkItem: () => string | undefined;
|
|
20
|
-
/** 给某个formItem设置值 */
|
|
21
|
-
setItemValue: (value: string | undefined, callback?: () => void) => void;
|
|
22
|
-
};
|
|
23
|
-
export interface IForm {
|
|
24
|
-
/** 记录每一层级的顺序 */
|
|
25
|
-
dataLevel: ILevel[];
|
|
26
|
-
/** 整个form的数据,{content.0: { id: IFormItemData, value: IFormItemData }} */
|
|
27
|
-
formData: IFormData;
|
|
28
|
-
/** 先校验,并将结果返回 */
|
|
29
|
-
validateFields: () => Promise<any>;
|
|
30
|
-
/** 获取form表单的数据 */
|
|
31
|
-
getFieldsValue: () => object;
|
|
32
|
-
/** 获取formItem的数据 */
|
|
33
|
-
getFieldValue: (field: Array<string>) => any;
|
|
34
|
-
/** 给某些formItem设置数据 */
|
|
35
|
-
setFieldsValue: (fileds: string[][]) => void;
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* CustomForm的props
|
|
39
|
-
*/
|
|
40
|
-
export interface ICustomFormProps {
|
|
41
|
-
form: IForm;
|
|
42
|
-
initialValues: object;
|
|
43
|
-
children: React.ReactNode;
|
|
44
|
-
}
|
|
45
|
-
export declare type IFormContext = {
|
|
46
|
-
form?: IForm;
|
|
47
|
-
initialValues?: object;
|
|
48
|
-
currentChangeKeys?: Array<string>;
|
|
49
|
-
setCurrentChangeKeys: React.Dispatch<React.SetStateAction<Array<string>>>;
|
|
50
|
-
};
|
|
51
|
-
/** formList的props */
|
|
52
|
-
export interface IFormListProps {
|
|
53
|
-
name: string[] | string;
|
|
54
|
-
children: (dataLevel: ILevel[], { add, remove }: {
|
|
55
|
-
add: TAddOrRemove;
|
|
56
|
-
remove: TAddOrRemove;
|
|
57
|
-
}) => void;
|
|
58
|
-
}
|
|
59
|
-
/** 增删事件 */
|
|
60
|
-
export declare type TAddOrRemove = (index: number) => void;
|
|
61
|
-
export declare type IFormItem = {
|
|
62
|
-
name: string[] | string;
|
|
63
|
-
children: React.ReactChild | React.ReactChild[];
|
|
64
|
-
style: React.CSSProperties;
|
|
65
|
-
rules: ValidationRule;
|
|
66
|
-
shouldUpdate: boolean;
|
|
67
|
-
initialValue: TinitialValueType;
|
|
68
|
-
dependencies?: Array<string[] | string>;
|
|
69
|
-
} & CustomRequired<IFormContext, 'setCurrentChangeKeys'>;
|
|
70
|
-
/** 将某个不可选属性变成必选 */
|
|
71
|
-
declare type CustomRequired<T, K extends keyof T> = {
|
|
72
|
-
[P in K]-?: T[P];
|
|
73
|
-
} & Omit<T, K>;
|
|
74
|
-
export declare type ValidationRule = {
|
|
75
|
-
/** validation error message */
|
|
76
|
-
message?: React.ReactNode;
|
|
77
|
-
/** indicates whether field is required */
|
|
78
|
-
required?: boolean;
|
|
79
|
-
/** custom validate function (Note: callback must be called) */
|
|
80
|
-
validator?: (rule: any, value: any, callback: any) => any;
|
|
81
|
-
};
|
|
82
|
-
export interface IFormData {
|
|
83
|
-
[name: string]: {
|
|
84
|
-
[attr: string]: IFormItemData;
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
export {};
|
|
88
|
-
//# sourceMappingURL=interface.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../src/tntd-form/CustomForm/interface.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"interface.js","sourceRoot":"","sources":["../../../src/tntd-form/CustomForm/interface.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * 层级\n */\nexport type ILevel = {\n key?: number;\n name?: string;\n};\n\nexport type TinitialValueType = null | undefined | string | number | boolean;\n\n/**\n * 每一个单元格的信息\n */\nexport type IFormItemData = {\n /** 每个formItem的值 */\n value: TinitialValueType;\n /** 每个formItem的错误信息 */\n errorMsg: string | undefined;\n /** 每个formItem的校验方法, 返回值为该formItem的错误信息,同时会在formItem下面显示错误信息 */\n checkItem: () => string | undefined;\n /** 给某个formItem设置值 */\n setItemValue: (value: string | undefined, callback?: () => void) => void;\n};\n\nexport interface IForm {\n /** 记录每一层级的顺序 */\n dataLevel: ILevel[];\n /** 整个form的数据,{content.0: { id: IFormItemData, value: IFormItemData }} */\n formData: IFormData;\n /** 先校验,并将结果返回 */\n validateFields: () => Promise<any>;\n /** 获取form表单的数据 */\n getFieldsValue: () => object;\n /** 获取formItem的数据 */\n getFieldValue: (field: Array<string>) => any;\n /** 给某些formItem设置数据 */\n setFieldsValue: (fileds: string[][]) => void;\n}\n\n/**\n * CustomForm的props\n */\nexport interface ICustomFormProps {\n form: IForm;\n initialValues: object;\n children: React.ReactNode;\n}\n\nexport type IFormContext = {\n form?: IForm;\n initialValues?: object;\n currentChangeKeys?: Array<string>;\n setCurrentChangeKeys: React.Dispatch<React.SetStateAction<Array<string>>>;\n};\n\n/** formList的props */\nexport interface IFormListProps {\n name: string[] | string;\n children: (\n dataLevel: ILevel[],\n { add, remove }: { add: TAddOrRemove; remove: TAddOrRemove },\n ) => void;\n}\n\n/** 增删事件 */\nexport type TAddOrRemove = (index: number) => void;\n\nexport type IFormItem = {\n name: string[] | string;\n children: React.ReactChild | React.ReactChild[];\n style: React.CSSProperties;\n rules: ValidationRule;\n shouldUpdate: boolean;\n initialValue: TinitialValueType;\n dependencies?: Array<string[] | string>;\n} & CustomRequired<IFormContext, 'setCurrentChangeKeys'>;\n\n/** 将某个不可选属性变成必选 */\ntype CustomRequired<T, K extends keyof T> = {\n [P in K]-?: T[P];\n} & Omit<T, K>;\n\nexport type ValidationRule = {\n /** validation error message */\n message?: React.ReactNode;\n /** indicates whether field is required */\n required?: boolean;\n /** custom validate function (Note: callback must be called) */\n validator?: (rule: any, value: any, callback: any) => any;\n};\n\nexport interface IFormData {\n [name: string]: {\n [attr: string]: IFormItemData;\n };\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/tntd-form/CustomForm/store.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,eAAO,MAAM,WAAW,6BAAwD,CAAC"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.FormContext = void 0;
|
|
7
|
-
var _react = _interopRequireDefault(require("react"));
|
|
8
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
9
|
-
var FormContext = _react["default"].createContext({});
|
|
10
|
-
exports.FormContext = FormContext;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../../src/tntd-form/CustomForm/store.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAGb,QAAA,WAAW,GAAG,eAAK,CAAC,aAAa,CAAe,EAAkB,CAAC,CAAC","sourcesContent":["import React from 'react';\nimport type { IFormContext } from './interface';\n\nexport const FormContext = React.createContext<IFormContext>({} as IFormContext);\n"]}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import type { TinitialValueType, ValidationRule, IForm, ILevel, IFormData } from './interface';
|
|
2
|
-
/**
|
|
3
|
-
* 将xx.xx.xx 转换为数组
|
|
4
|
-
* @param {*} name
|
|
5
|
-
* @returns
|
|
6
|
-
*/
|
|
7
|
-
export declare const getNames: (name: string[] | string) => string[];
|
|
8
|
-
/**
|
|
9
|
-
* 对数据进行校验
|
|
10
|
-
* @param {*} list
|
|
11
|
-
* @param {*} dataLevel
|
|
12
|
-
* @param {*} formData
|
|
13
|
-
* @returns
|
|
14
|
-
*/
|
|
15
|
-
export declare const recursionCheck: (list: any, dataLevel: ILevel[], formData: IFormData, errorList?: string[]) => string[];
|
|
16
|
-
/**
|
|
17
|
-
* 将数据进行排序
|
|
18
|
-
* @param {*} list
|
|
19
|
-
* @param {*} dataLevel
|
|
20
|
-
* @param {*} formData
|
|
21
|
-
* @param {*} errorList
|
|
22
|
-
* @returns
|
|
23
|
-
*/
|
|
24
|
-
export declare const recursionSort: (list: any, dataLevel: ILevel[], formData: IFormData) => any;
|
|
25
|
-
/**
|
|
26
|
-
* 获取form表单的value
|
|
27
|
-
* @param {*} formCurrent
|
|
28
|
-
* @returns
|
|
29
|
-
*/
|
|
30
|
-
export declare const getFieldsValue: (formCurrent: IForm) => any;
|
|
31
|
-
/**
|
|
32
|
-
* 获取form表单的value
|
|
33
|
-
* @param {*} formCurrent
|
|
34
|
-
* @returns
|
|
35
|
-
*/
|
|
36
|
-
export declare const getFieldValue: (formCurrent: IForm, field: string[]) => any;
|
|
37
|
-
/**
|
|
38
|
-
* 提交时候校验的方法
|
|
39
|
-
* @param {*} formCurrent
|
|
40
|
-
* @returns
|
|
41
|
-
*/
|
|
42
|
-
export declare const validateFields: (formCurrent: IForm) => Promise<unknown>;
|
|
43
|
-
/** 获取初始化的值 */
|
|
44
|
-
export declare const getInitValue: (initialValues: object | undefined, names: string[] | string) => object | undefined;
|
|
45
|
-
/** 校验表单是否正确的方法 */
|
|
46
|
-
export declare const handleCheckItem: (value: TinitialValueType, rules: ValidationRule) => string | undefined;
|
|
47
|
-
export declare const isValidKey: (key: string | number | symbol, object: object) => key is never;
|
|
48
|
-
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/tntd-form/CustomForm/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE/F;;;;GAIG;AACH,eAAO,MAAM,QAAQ,SAAU,MAAM,EAAE,GAAG,MAAM,aAS/C,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,SACnB,GAAG,aACE,MAAM,EAAE,YACT,SAAS,cACR,MAAM,EAAE,aA4BpB,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,aAAa,SAAU,GAAG,aAAa,MAAM,EAAE,YAAY,SAAS,QA6ChF,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,gBAAiB,KAAK,QAsBhD,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,gBAAiB,KAAK,SAAS,MAAM,EAAE,QAYhE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,cAAc,gBAAiB,KAAK,qBAiBhD,CAAC;AAEF,cAAc;AACd,eAAO,MAAM,YAAY,kBAAmB,MAAM,GAAG,SAAS,SAAS,MAAM,EAAE,GAAG,MAAM,uBAgBvF,CAAC;AAEF,kBAAkB;AAClB,eAAO,MAAM,eAAe,UAAW,iBAAiB,SAAS,cAAc,uBAuB9E,CAAC;AAEF,eAAO,MAAM,UAAU,QAChB,MAAM,GAAG,MAAM,GAAG,MAAM,UACrB,MAAM,iBAGf,CAAC"}
|
|
@@ -1,235 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.validateFields = exports.recursionSort = exports.recursionCheck = exports.isValidKey = exports.handleCheckItem = exports.getNames = exports.getInitValue = exports.getFieldsValue = exports.getFieldValue = void 0;
|
|
7
|
-
function _toArray(arr) { return _arrayWithHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableRest(); }
|
|
8
|
-
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
9
|
-
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
10
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
11
|
-
function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && iter[Symbol.iterator] != null || iter["@@iterator"] != null) return Array.from(iter); }
|
|
12
|
-
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
13
|
-
/**
|
|
14
|
-
* 将xx.xx.xx 转换为数组
|
|
15
|
-
* @param {*} name
|
|
16
|
-
* @returns
|
|
17
|
-
*/
|
|
18
|
-
var getNames = function getNames(name) {
|
|
19
|
-
var attrs = [];
|
|
20
|
-
if (Array.isArray(name)) {
|
|
21
|
-
var _name = _toArray(name),
|
|
22
|
-
str = _name[0],
|
|
23
|
-
rest = _name.slice(1);
|
|
24
|
-
attrs = str.split('.').concat(rest);
|
|
25
|
-
} else {
|
|
26
|
-
attrs = typeof name === 'string' ? name.split('.') : [];
|
|
27
|
-
}
|
|
28
|
-
return attrs;
|
|
29
|
-
};
|
|
30
|
-
/**
|
|
31
|
-
* 对数据进行校验
|
|
32
|
-
* @param {*} list
|
|
33
|
-
* @param {*} dataLevel
|
|
34
|
-
* @param {*} formData
|
|
35
|
-
* @returns
|
|
36
|
-
*/
|
|
37
|
-
exports.getNames = getNames;
|
|
38
|
-
var recursionCheck = function recursionCheck(list, dataLevel, formData) {
|
|
39
|
-
var errorList = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [];
|
|
40
|
-
try {
|
|
41
|
-
if (Array.isArray(list)) {
|
|
42
|
-
list.forEach(function (item) {
|
|
43
|
-
var key = item.name;
|
|
44
|
-
var attrs = Object.keys(formData[key]);
|
|
45
|
-
attrs.forEach(function (attr) {
|
|
46
|
-
var _a;
|
|
47
|
-
var error = (_a = formData[item.name][attr]) === null || _a === void 0 ? void 0 : _a.checkItem();
|
|
48
|
-
if (error) {
|
|
49
|
-
errorList.push("".concat([item.name + '.' + attr], ":"), error);
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
if (dataLevel[key]) {
|
|
53
|
-
recursionCheck(dataLevel[key], dataLevel, formData, errorList);
|
|
54
|
-
}
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
return errorList;
|
|
58
|
-
} catch (e) {
|
|
59
|
-
if (typeof e === 'string') {
|
|
60
|
-
throw e.toUpperCase();
|
|
61
|
-
} else if (e instanceof Error) {
|
|
62
|
-
throw e.message;
|
|
63
|
-
}
|
|
64
|
-
throw e;
|
|
65
|
-
}
|
|
66
|
-
};
|
|
67
|
-
/**
|
|
68
|
-
* 将数据进行排序
|
|
69
|
-
* @param {*} list
|
|
70
|
-
* @param {*} dataLevel
|
|
71
|
-
* @param {*} formData
|
|
72
|
-
* @param {*} errorList
|
|
73
|
-
* @returns
|
|
74
|
-
*/
|
|
75
|
-
exports.recursionCheck = recursionCheck;
|
|
76
|
-
var recursionSort = function recursionSort(list, dataLevel, formData) {
|
|
77
|
-
try {
|
|
78
|
-
if (Array.isArray(list)) {
|
|
79
|
-
var values = list.reduce(function (total, item, index) {
|
|
80
|
-
var attrObj = {};
|
|
81
|
-
var key = item.name;
|
|
82
|
-
var prefixs = key.split('.');
|
|
83
|
-
var attrs = Object.keys(formData[key]);
|
|
84
|
-
attrs.forEach(function (attr) {
|
|
85
|
-
var _a;
|
|
86
|
-
attrObj[attr] = (_a = formData[key][attr]) === null || _a === void 0 ? void 0 : _a.value;
|
|
87
|
-
});
|
|
88
|
-
var children = [];
|
|
89
|
-
if (dataLevel[key]) {
|
|
90
|
-
children = recursionSort(dataLevel[key], dataLevel, formData);
|
|
91
|
-
}
|
|
92
|
-
var len = prefixs.length - 2;
|
|
93
|
-
if (total[prefixs[len]]) {
|
|
94
|
-
total[prefixs[len]][index] = Object.assign(Object.assign({}, attrObj), children || []);
|
|
95
|
-
} else {
|
|
96
|
-
total[prefixs[len]] = [Object.assign(Object.assign({}, attrObj), children || [])];
|
|
97
|
-
}
|
|
98
|
-
return total;
|
|
99
|
-
}, {});
|
|
100
|
-
return values;
|
|
101
|
-
}
|
|
102
|
-
} catch (e) {
|
|
103
|
-
if (typeof e === 'string') {
|
|
104
|
-
console.error(e.toUpperCase());
|
|
105
|
-
throw e.toUpperCase();
|
|
106
|
-
} else if (e instanceof Error) {
|
|
107
|
-
console.error(e.message);
|
|
108
|
-
throw e.message;
|
|
109
|
-
}
|
|
110
|
-
throw e;
|
|
111
|
-
}
|
|
112
|
-
};
|
|
113
|
-
/**
|
|
114
|
-
* 获取form表单的value
|
|
115
|
-
* @param {*} formCurrent
|
|
116
|
-
* @returns
|
|
117
|
-
*/
|
|
118
|
-
exports.recursionSort = recursionSort;
|
|
119
|
-
var getFieldsValue = function getFieldsValue(formCurrent) {
|
|
120
|
-
try {
|
|
121
|
-
var formData = formCurrent.formData,
|
|
122
|
-
dataLevel = formCurrent.dataLevel;
|
|
123
|
-
var firstKey = '';
|
|
124
|
-
// 这里不直接用Object.keys的原因是Object.keys并不能保证一定是按照属性顺序
|
|
125
|
-
for (var i in dataLevel) {
|
|
126
|
-
firstKey = i;
|
|
127
|
-
break;
|
|
128
|
-
}
|
|
129
|
-
var recursionStart = dataLevel[firstKey];
|
|
130
|
-
var values = recursionSort(recursionStart, dataLevel, formData);
|
|
131
|
-
return values;
|
|
132
|
-
} catch (e) {
|
|
133
|
-
if (typeof e === 'string') {
|
|
134
|
-
console.error(e.toUpperCase());
|
|
135
|
-
return e.toUpperCase();
|
|
136
|
-
} else if (e instanceof Error) {
|
|
137
|
-
console.error(e.message);
|
|
138
|
-
return e.message;
|
|
139
|
-
}
|
|
140
|
-
return e;
|
|
141
|
-
}
|
|
142
|
-
};
|
|
143
|
-
/**
|
|
144
|
-
* 获取form表单的value
|
|
145
|
-
* @param {*} formCurrent
|
|
146
|
-
* @returns
|
|
147
|
-
*/
|
|
148
|
-
exports.getFieldsValue = getFieldsValue;
|
|
149
|
-
var getFieldValue = function getFieldValue(formCurrent, field) {
|
|
150
|
-
var _a, _b;
|
|
151
|
-
try {
|
|
152
|
-
var formData = formCurrent.formData;
|
|
153
|
-
return formData && ((_b = (_a = formData === null || formData === void 0 ? void 0 : formData[field[0]]) === null || _a === void 0 ? void 0 : _a[field[1]]) === null || _b === void 0 ? void 0 : _b.value);
|
|
154
|
-
} catch (e) {
|
|
155
|
-
if (typeof e === 'string') {
|
|
156
|
-
return e.toUpperCase();
|
|
157
|
-
} else if (e instanceof Error) {
|
|
158
|
-
return e.message;
|
|
159
|
-
}
|
|
160
|
-
return e;
|
|
161
|
-
}
|
|
162
|
-
};
|
|
163
|
-
/**
|
|
164
|
-
* 提交时候校验的方法
|
|
165
|
-
* @param {*} formCurrent
|
|
166
|
-
* @returns
|
|
167
|
-
*/
|
|
168
|
-
exports.getFieldValue = getFieldValue;
|
|
169
|
-
var validateFields = function validateFields(formCurrent) {
|
|
170
|
-
return new Promise(function (resolve) {
|
|
171
|
-
var formData = formCurrent.formData,
|
|
172
|
-
dataLevel = formCurrent.dataLevel;
|
|
173
|
-
var firstKey = '';
|
|
174
|
-
// 这里不直接用Object.keys的原因是Object.keys并不能保证一定是按照属性顺序
|
|
175
|
-
for (var i in dataLevel) {
|
|
176
|
-
firstKey = i;
|
|
177
|
-
break;
|
|
178
|
-
}
|
|
179
|
-
var recursionStart = dataLevel[firstKey];
|
|
180
|
-
var errorList = recursionCheck(recursionStart, dataLevel, formData);
|
|
181
|
-
if (Array.isArray(errorList) && errorList.length) {
|
|
182
|
-
console.error(JSON.stringify(errorList));
|
|
183
|
-
} else {
|
|
184
|
-
resolve(recursionSort(recursionStart, dataLevel, formData));
|
|
185
|
-
}
|
|
186
|
-
});
|
|
187
|
-
};
|
|
188
|
-
/** 获取初始化的值 */
|
|
189
|
-
exports.validateFields = validateFields;
|
|
190
|
-
var getInitValue = function getInitValue(initialValues, names) {
|
|
191
|
-
var keys;
|
|
192
|
-
if (Array.isArray(names)) {
|
|
193
|
-
var _names = _toArray(names),
|
|
194
|
-
str = _names[0],
|
|
195
|
-
rest = _names.slice(1);
|
|
196
|
-
keys = str.split('.').concat(rest);
|
|
197
|
-
}
|
|
198
|
-
if (Array.isArray(keys)) {
|
|
199
|
-
keys.forEach(function (i) {
|
|
200
|
-
initialValues = ['', null, undefined].includes(initialValues === null || initialValues === void 0 ? void 0 : initialValues[i]) ? undefined : initialValues === null || initialValues === void 0 ? void 0 : initialValues[i];
|
|
201
|
-
});
|
|
202
|
-
}
|
|
203
|
-
return initialValues;
|
|
204
|
-
};
|
|
205
|
-
/** 校验表单是否正确的方法 */
|
|
206
|
-
exports.getInitValue = getInitValue;
|
|
207
|
-
var handleCheckItem = function handleCheckItem(value, rules) {
|
|
208
|
-
try {
|
|
209
|
-
if (Array.isArray(rules)) {
|
|
210
|
-
rules.forEach(function (i) {
|
|
211
|
-
// @ts-ignore
|
|
212
|
-
if (i.required && ['', null, undefined].includes(value)) {
|
|
213
|
-
throw new Error((i === null || i === void 0 ? void 0 : i.message) || 'error');
|
|
214
|
-
}
|
|
215
|
-
if (i === null || i === void 0 ? void 0 : i.validator) {
|
|
216
|
-
i.validator(rules, value, function (_errorMsg) {
|
|
217
|
-
throw new Error(_errorMsg);
|
|
218
|
-
});
|
|
219
|
-
}
|
|
220
|
-
});
|
|
221
|
-
}
|
|
222
|
-
return;
|
|
223
|
-
} catch (e) {
|
|
224
|
-
if (typeof e === 'string') {
|
|
225
|
-
return e.toUpperCase();
|
|
226
|
-
} else if (e instanceof Error) {
|
|
227
|
-
return e.message;
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
};
|
|
231
|
-
exports.handleCheckItem = handleCheckItem;
|
|
232
|
-
var isValidKey = function isValidKey(key, object) {
|
|
233
|
-
return key in object;
|
|
234
|
-
};
|
|
235
|
-
exports.isValidKey = isValidKey;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/tntd-form/CustomForm/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import type { TinitialValueType, ValidationRule, IForm, ILevel, IFormData } from './interface';\n\n/**\n * 将xx.xx.xx 转换为数组\n * @param {*} name\n * @returns\n */\nexport const getNames = (name: string[] | string) => {\n let attrs = [];\n if (Array.isArray(name)) {\n const [str, ...rest] = name;\n attrs = str.split('.').concat(rest);\n } else {\n attrs = typeof name === 'string' ? name.split('.') : [];\n }\n return attrs;\n};\n\n/**\n * 对数据进行校验\n * @param {*} list\n * @param {*} dataLevel\n * @param {*} formData\n * @returns\n */\nexport const recursionCheck = (\n list: any,\n dataLevel: ILevel[],\n formData: IFormData,\n errorList: string[] = [],\n) => {\n try {\n if (Array.isArray(list)) {\n list.forEach((item) => {\n const key = item.name;\n const attrs = Object.keys(formData[key]);\n\n attrs.forEach((attr) => {\n const error = formData[item.name][attr]?.checkItem();\n if (error) {\n errorList.push(`${[item.name + '.' + attr]}:`, error);\n }\n });\n if (dataLevel[key]) {\n recursionCheck(dataLevel[key], dataLevel, formData, errorList);\n }\n });\n }\n return errorList;\n } catch (e) {\n if (typeof e === 'string') {\n throw e.toUpperCase();\n } else if (e instanceof Error) {\n throw e.message;\n }\n throw e;\n }\n};\n\n/**\n * 将数据进行排序\n * @param {*} list\n * @param {*} dataLevel\n * @param {*} formData\n * @param {*} errorList\n * @returns\n */\nexport const recursionSort = (list: any, dataLevel: ILevel[], formData: IFormData) => {\n try {\n if (Array.isArray(list)) {\n const values = list.reduce((total, item, index) => {\n const attrObj = {};\n const key = item.name;\n const prefixs = key.split('.');\n const attrs = Object.keys(formData[key]);\n\n attrs.forEach((attr) => {\n attrObj[attr] = formData[key][attr]?.value;\n });\n let children = [];\n if (dataLevel[key]) {\n children = recursionSort(dataLevel[key], dataLevel, formData);\n }\n\n const len = prefixs.length - 2;\n if (total[prefixs[len]]) {\n total[prefixs[len]][index] = {\n ...attrObj,\n ...(children || []),\n };\n } else {\n total[prefixs[len]] = [\n {\n ...attrObj,\n ...(children || []),\n },\n ];\n }\n return total;\n }, {});\n return values;\n }\n } catch (e) {\n if (typeof e === 'string') {\n console.error(e.toUpperCase());\n throw e.toUpperCase();\n } else if (e instanceof Error) {\n console.error(e.message);\n throw e.message;\n }\n throw e;\n }\n};\n\n/**\n * 获取form表单的value\n * @param {*} formCurrent\n * @returns\n */\nexport const getFieldsValue = (formCurrent: IForm) => {\n try {\n const { formData, dataLevel } = formCurrent;\n let firstKey = '';\n // 这里不直接用Object.keys的原因是Object.keys并不能保证一定是按照属性顺序\n for (const i in dataLevel) {\n firstKey = i;\n break;\n }\n const recursionStart = dataLevel[firstKey];\n const values = recursionSort(recursionStart, dataLevel, formData);\n return values;\n } catch (e) {\n if (typeof e === 'string') {\n console.error(e.toUpperCase());\n return e.toUpperCase();\n } else if (e instanceof Error) {\n console.error(e.message);\n return e.message;\n }\n return e;\n }\n};\n\n/**\n * 获取form表单的value\n * @param {*} formCurrent\n * @returns\n */\nexport const getFieldValue = (formCurrent: IForm, field: string[]) => {\n try {\n const { formData } = formCurrent;\n return formData && formData?.[field[0]]?.[field[1]]?.value;\n } catch (e) {\n if (typeof e === 'string') {\n return e.toUpperCase();\n } else if (e instanceof Error) {\n return e.message;\n }\n return e;\n }\n};\n\n/**\n * 提交时候校验的方法\n * @param {*} formCurrent\n * @returns\n */\nexport const validateFields = (formCurrent: IForm) => {\n return new Promise((resolve) => {\n const { formData, dataLevel } = formCurrent;\n let firstKey = '';\n // 这里不直接用Object.keys的原因是Object.keys并不能保证一定是按照属性顺序\n for (const i in dataLevel) {\n firstKey = i;\n break;\n }\n const recursionStart = dataLevel[firstKey];\n const errorList = recursionCheck(recursionStart, dataLevel, formData);\n if (Array.isArray(errorList) && errorList.length) {\n console.error(JSON.stringify(errorList));\n } else {\n resolve(recursionSort(recursionStart, dataLevel, formData));\n }\n });\n};\n\n/** 获取初始化的值 */\nexport const getInitValue = (initialValues: object | undefined, names: string[] | string) => {\n let keys;\n if (Array.isArray(names)) {\n const [str, ...rest] = names;\n keys = str.split('.').concat(rest);\n }\n\n if (Array.isArray(keys)) {\n keys.forEach((i) => {\n initialValues = ['', null, undefined].includes(initialValues?.[i])\n ? undefined\n : initialValues?.[i];\n });\n }\n\n return initialValues;\n};\n\n/** 校验表单是否正确的方法 */\nexport const handleCheckItem = (value: TinitialValueType, rules: ValidationRule) => {\n try {\n if (Array.isArray(rules)) {\n rules.forEach((i) => {\n // @ts-ignore\n if (i.required && ['', null, undefined].includes(value)) {\n throw new Error(i?.message || 'error');\n }\n if (i?.validator) {\n i.validator(rules, value, function (_errorMsg: string) {\n throw new Error(_errorMsg);\n });\n }\n });\n }\n return;\n } catch (e) {\n if (typeof e === 'string') {\n return e.toUpperCase();\n } else if (e instanceof Error) {\n return e.message;\n }\n }\n};\n\nexport const isValidKey = (\n key: string | number | symbol,\n object: object,\n): key is keyof typeof object => {\n return key in object;\n};\n"]}
|