vap1 0.3.2 → 0.3.4
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/components/SearchBar/_register.d.ts +1 -1
- package/components/SearchBar/_register.js +1 -1
- package/components/TreeSelect/BaseTreeSelect.js +0 -1
- package/components/TreeSelect/DTreeSelect.js +1 -5
- package/components/TreeSelect/FTreeSelect.js +1 -3
- package/components/TreeSelect/STreeSelect.js +1 -1
- package/components/Trees/COTree/COButton.js +1 -1
- package/components/Trees/COTree/COSelect.js +1 -1
- package/components/UForm/UForm.js +12 -13
- package/components/UForm/_input.d.ts +1 -1
- package/components/UForm/index.d.ts +2 -2
- package/components/_common/Upagination.js +0 -1
- package/hooks/useApiBase.d.ts +36 -1
- package/hooks/useApiBase.js +21 -10
- package/package.json +1 -1
- package/uform/FormEditor.d.ts +20 -3
- package/uform/FormEditor.js +5 -5
- package/uform/FormViewer.d.ts +10 -1
- package/uform/FormViewer.js +10 -1
- package/uform/hooks/useEditor.d.ts +5 -2
- package/uform/hooks/useEditor.js +33 -1
- package/uform/index.js +31 -21
- package/uform/panel/Editor/GroupEditor.d.ts +3 -1
- package/uform/panel/Editor/GroupEditor.js +8 -2
- package/uform/panel/Editor/ListEditor.d.ts +3 -1
- package/uform/panel/Editor/ListEditor.js +7 -1
- package/uform/panel/Editor/index.js +55 -14
- package/uform/panel/Items/Fields.d.ts +3 -0
- package/uform/panel/Items/Fields.js +42 -0
- package/uform/panel/Items/InputSelector.d.ts +6 -0
- package/uform/panel/Items/InputSelector.js +122 -0
- package/uform/panel/Items/Inputs.d.ts +4 -0
- package/uform/panel/Items/Inputs.js +38 -0
- package/uform/panel/Items/index.d.ts +2 -1
- package/uform/panel/Items/index.js +8 -28
- package/uform/panel/Propreties/_ItemBase.js +4 -1
- package/uform/plugins/index.js +1 -1
- package/uform/schema.d.ts +5 -1
- package/uform/utils/arr.d.ts +2 -2
- package/uform/utils/arr.js +6 -1
- package/utils/Const.d.ts +10 -11
- package/utils/Const.js +43 -29
- package/utils/CustomApp.d.ts +96 -83
- package/utils/Renders/ApiGetRender.js +4 -4
- package/utils/Renders/ApiPostRender.js +2 -2
- package/utils/Renders/StringRender.d.ts +1 -1
- package/utils/Renders/_define.d.ts +5 -1
- package/utils/Renders/_define.js +12 -2
- package/utils/VAP.d.ts +1 -0
- package/utils/VAP.js +7 -1
- package/utils/index.d.ts +2 -0
- package/utils/index.js +7 -1
|
@@ -4,7 +4,7 @@ exports.getSearchField = exports.registerSearchField = void 0;
|
|
|
4
4
|
var _Support_1 = require("../../utils/_Support");
|
|
5
5
|
var StringUtil_1 = require("../../utils/StringUtil");
|
|
6
6
|
var _RegisterUtil_1 = require("../_RegisterUtil");
|
|
7
|
-
var DEFAULT = { outside: false,
|
|
7
|
+
var DEFAULT = { outside: false, fieldNum: 1, defaultSpan: 1, };
|
|
8
8
|
var _C_SEARCH_FIELD = (0, _Support_1.globalDefault)('_C_SEARCH_FIELD', new Map());
|
|
9
9
|
/**
|
|
10
10
|
* @param type
|
|
@@ -64,7 +64,6 @@ var lodash_1 = __importStar(require("lodash"));
|
|
|
64
64
|
var react_1 = __importStar(require("react"));
|
|
65
65
|
var antd_1 = require("antd");
|
|
66
66
|
var HighLight_1 = require("../_common/HighLight");
|
|
67
|
-
;
|
|
68
67
|
var Icon_1 = require("../_adapt/Icon");
|
|
69
68
|
var utils_1 = require("../../utils");
|
|
70
69
|
var hooks_1 = require("../../hooks");
|
|
@@ -224,8 +224,6 @@ var _DTreeSelect = function (props) {
|
|
|
224
224
|
var key = treeState.treeData[0][treeState.keyField];
|
|
225
225
|
treeProps.treeDefaultExpandedKeys = [key];
|
|
226
226
|
}
|
|
227
|
-
if (treeState.valueField == null)
|
|
228
|
-
treeProps.value = value;
|
|
229
227
|
var loadData = function (dataNode) { return __awaiter(void 0, void 0, void 0, function () {
|
|
230
228
|
var data, children;
|
|
231
229
|
return __generator(this, function (_a) {
|
|
@@ -241,9 +239,7 @@ var _DTreeSelect = function (props) {
|
|
|
241
239
|
}
|
|
242
240
|
});
|
|
243
241
|
}); };
|
|
244
|
-
|
|
245
|
-
return utils_1.Const.NONE;
|
|
246
|
-
return react_1.default.createElement(antd_1.TreeSelect, __assign({}, baseProps, treeProps, extraProps, { disabled: props.disabled, loadData: loadData }), (0, BaseTreeSelect_1.renderRoot)(props, treeState));
|
|
242
|
+
return react_1.default.createElement(antd_1.TreeSelect, __assign({}, baseProps, treeProps, extraProps, { value: value == null ? undefined : value, disabled: props.disabled, loadData: loadData }), (0, BaseTreeSelect_1.renderRoot)(props, treeState));
|
|
247
243
|
};
|
|
248
244
|
var DTreeSelect = function (props) { return react_1.default.createElement(BaseTreeSelect_1.BaseTreeSelect, __assign({}, props),
|
|
249
245
|
react_1.default.createElement(_DTreeSelect, __assign({}, props))); };
|
|
@@ -80,11 +80,9 @@ var _FTreeSelect = function (props) {
|
|
|
80
80
|
// 如果根节点只有一个,则自动展开这个根结点
|
|
81
81
|
if (treeState.treeData.length == 1)
|
|
82
82
|
treeProps.treeDefaultExpandedKeys = [treeState.treeData[0][treeState.keyField]];
|
|
83
|
-
if (treeState.valueField == null)
|
|
84
|
-
treeProps.value = value;
|
|
85
83
|
if (!treeState.inited)
|
|
86
84
|
return utils_1.Const.NONE;
|
|
87
|
-
return react_1.default.createElement(antd_1.TreeSelect, __assign({}, baseProps, treeProps, extraProps, { disabled: props.disabled }), (0, BaseTreeSelect_1.renderRoot)(props, treeState));
|
|
85
|
+
return react_1.default.createElement(antd_1.TreeSelect, __assign({}, baseProps, treeProps, extraProps, { value: value == null ? undefined : value, disabled: props.disabled }), (0, BaseTreeSelect_1.renderRoot)(props, treeState));
|
|
88
86
|
};
|
|
89
87
|
var FTreeSelect = function (props) { return react_1.default.createElement(BaseTreeSelect_1.BaseTreeSelect, __assign({}, props),
|
|
90
88
|
react_1.default.createElement(_FTreeSelect, __assign({}, props))); };
|
|
@@ -26,7 +26,7 @@ var _STreeSelect = function (props) {
|
|
|
26
26
|
// 说明,等待数据处理好了再绑定,让 defaultExpand 之类的默认属性能生效
|
|
27
27
|
if (!treeState.inited)
|
|
28
28
|
return utils_1.Const.NONE;
|
|
29
|
-
return react_1.default.createElement(antd_1.TreeSelect, __assign({}, baseProps, extraProps, { value:
|
|
29
|
+
return react_1.default.createElement(antd_1.TreeSelect, __assign({}, baseProps, extraProps, { value: value == null ? undefined : value, disabled: props.disabled }), (0, BaseTreeSelect_1.renderRoot)(props, treeState));
|
|
30
30
|
};
|
|
31
31
|
var STreeSelect = function (props) { return react_1.default.createElement(BaseTreeSelect_1.BaseTreeSelect, __assign({}, props),
|
|
32
32
|
react_1.default.createElement(_STreeSelect, __assign({}, props))); };
|
|
@@ -66,7 +66,7 @@ var COButton = function (props) {
|
|
|
66
66
|
var orgCodeRender = (0, react_1.useMemo)(function () { return utils_1.Renders.ApiPostRender({
|
|
67
67
|
api: props.api || utils_1.GLOBAL.CONFIG.BASIC.ORG_API,
|
|
68
68
|
nameField: props.titleField || utils_1.GLOBAL.CONFIG.BASIC.ORG_FIELDS[1],
|
|
69
|
-
|
|
69
|
+
valueField: props.keyField || utils_1.GLOBAL.CONFIG.BASIC.ORG_FIELDS[0],
|
|
70
70
|
render: function (info) {
|
|
71
71
|
if (info.label)
|
|
72
72
|
return react_1.default.createElement("span", { title: info.label }, info.label);
|
|
@@ -49,7 +49,7 @@ var SelectedTable = function (props) {
|
|
|
49
49
|
var orgCodeRender = (0, react_1.useMemo)(function () { return utils_1.Renders.ApiPostRender({
|
|
50
50
|
api: props.api || utils_1.GLOBAL.CONFIG.BASIC.ORG_API,
|
|
51
51
|
nameField: props.titleField || utils_1.GLOBAL.CONFIG.BASIC.ORG_FIELDS[1],
|
|
52
|
-
|
|
52
|
+
valueField: props.keyField || utils_1.GLOBAL.CONFIG.BASIC.ORG_FIELDS[0],
|
|
53
53
|
render: function (info) {
|
|
54
54
|
if (info.label)
|
|
55
55
|
return react_1.default.createElement("span", { title: info.label }, info.label);
|
|
@@ -137,12 +137,12 @@ var onChangeEvent = function (state, field, form, update, values, extra) {
|
|
|
137
137
|
var needUpdate = false;
|
|
138
138
|
var pushBus = function (targetField, result) {
|
|
139
139
|
if (result === null) {
|
|
140
|
-
value
|
|
140
|
+
lodash_1.default.unset(value, targetField);
|
|
141
141
|
}
|
|
142
142
|
else if (lodash_1.default.isPlainObject(result)) {
|
|
143
143
|
var data = result;
|
|
144
144
|
if (lodash_1.default.has(data, 'value'))
|
|
145
|
-
value
|
|
145
|
+
lodash_1.default.set(value, targetField, data.value);
|
|
146
146
|
if (lodash_1.default.has(data, 'required')) {
|
|
147
147
|
if (!requireFields.current.has(targetField)) {
|
|
148
148
|
needUpdate = true;
|
|
@@ -191,7 +191,7 @@ var onChangeEvent = function (state, field, form, update, values, extra) {
|
|
|
191
191
|
}
|
|
192
192
|
}
|
|
193
193
|
else {
|
|
194
|
-
value
|
|
194
|
+
lodash_1.default.set(value, targetField, result);
|
|
195
195
|
}
|
|
196
196
|
size++;
|
|
197
197
|
if (size == field.link.length) {
|
|
@@ -380,11 +380,11 @@ var getValue = function (multipleFields, values, initRef) {
|
|
|
380
380
|
var RTNData = __assign(__assign({}, initRef === null || initRef === void 0 ? void 0 : initRef.current), values);
|
|
381
381
|
lodash_1.default.keys(RTNData).map(function (property) {
|
|
382
382
|
if (multipleFields.has(property)) {
|
|
383
|
-
var conbined_1 = RTNData
|
|
383
|
+
var conbined_1 = lodash_1.default.get(RTNData, property);
|
|
384
384
|
var fields = property.split(',').map(lodash_1.default.trim);
|
|
385
385
|
fields.map(function (field) {
|
|
386
386
|
if (lodash_1.default.has(conbined_1, field))
|
|
387
|
-
data
|
|
387
|
+
lodash_1.default.set(data, field, lodash_1.default.get(conbined_1, field));
|
|
388
388
|
});
|
|
389
389
|
return;
|
|
390
390
|
}
|
|
@@ -405,14 +405,13 @@ var initValue = function (props) {
|
|
|
405
405
|
var e_1, _a;
|
|
406
406
|
var values = __assign(__assign({}, props.default), props.data);
|
|
407
407
|
var _loop_1 = function (key) {
|
|
408
|
-
var _d;
|
|
409
408
|
var fields = key.split(',').map(lodash_1.default.trim);
|
|
410
409
|
if (fields.length == 1) {
|
|
411
410
|
if (lodash_1.default.has(values, key)) {
|
|
412
|
-
values
|
|
411
|
+
lodash_1.default.set(values, key, lodash_1.default.get(values, key));
|
|
413
412
|
}
|
|
414
413
|
else {
|
|
415
|
-
values
|
|
414
|
+
lodash_1.default.set(values, key, {});
|
|
416
415
|
}
|
|
417
416
|
}
|
|
418
417
|
else {
|
|
@@ -420,7 +419,7 @@ var initValue = function (props) {
|
|
|
420
419
|
if (lodash_1.default.has(values, item)) {
|
|
421
420
|
if (!lodash_1.default.has(values, key))
|
|
422
421
|
values[key] = {};
|
|
423
|
-
values[key]
|
|
422
|
+
lodash_1.default.set(values[key], item, lodash_1.default.get(values, item));
|
|
424
423
|
}
|
|
425
424
|
});
|
|
426
425
|
}
|
|
@@ -451,11 +450,11 @@ var _FormField = function (props) {
|
|
|
451
450
|
props.fields.map(function (field) {
|
|
452
451
|
if (field == null || field == false)
|
|
453
452
|
return;
|
|
454
|
-
if (!lodash_1.default.has(values, field.field) || values
|
|
453
|
+
if (!lodash_1.default.has(values, field.field) || lodash_1.default.get(values, field.field) === null || lodash_1.default.get(values, field.field) === undefined)
|
|
455
454
|
return;
|
|
456
455
|
// setFieldsValue 要 render 后才能get ,延时执行 link事件
|
|
457
456
|
if (lodash_1.default.isArray(field.link) && field.link.length > 0)
|
|
458
|
-
setTimeout(function () { return onChangeEvent(props.state, field, form, update, values
|
|
457
|
+
setTimeout(function () { return onChangeEvent(props.state, field, form, update, lodash_1.default.get(values, field.field)); }, 2);
|
|
459
458
|
});
|
|
460
459
|
update();
|
|
461
460
|
}, []);
|
|
@@ -481,11 +480,11 @@ var _FormGroup = function (props) {
|
|
|
481
480
|
// @ts-ignore
|
|
482
481
|
if (field == null || field == false)
|
|
483
482
|
return;
|
|
484
|
-
if (!lodash_1.default.has(values, field.field) || values
|
|
483
|
+
if (!lodash_1.default.has(values, field.field) || lodash_1.default.get(values, field.field) === null || lodash_1.default.get(values, field.field) === undefined)
|
|
485
484
|
return;
|
|
486
485
|
// setFieldsValue 要 render 后才能get ,延时执行 link事件
|
|
487
486
|
if (lodash_1.default.isArray(field.link) && field.link.length > 0)
|
|
488
|
-
setTimeout(function () { return onChangeEvent(props.state, field, form, update, values
|
|
487
|
+
setTimeout(function () { return onChangeEvent(props.state, field, form, update, lodash_1.default.get(values, field.field)); }, 2);
|
|
489
488
|
});
|
|
490
489
|
});
|
|
491
490
|
update();
|
|
@@ -16,7 +16,7 @@ import type { ValidationRule } from 'antd/es/form/Form';
|
|
|
16
16
|
* 2. 大于8个字段时,默认使用 common
|
|
17
17
|
*/
|
|
18
18
|
export type UFormLayout = 'common' | 'simple' | 'compress';
|
|
19
|
-
export type FieldDataType = 'string' | 'array' | 'object';
|
|
19
|
+
export type FieldDataType = 'string' | 'number' | 'boolean' | 'array' | 'object';
|
|
20
20
|
/**
|
|
21
21
|
* 分组展示的方式 default = 默认 | tabs = 标签 | collapse = 折叠风琴
|
|
22
22
|
*/
|
|
@@ -66,7 +66,7 @@ export type Link = {
|
|
|
66
66
|
/**
|
|
67
67
|
* 联动事件
|
|
68
68
|
* 返回值为 string | number | boolean 时,改变目标field 的 value
|
|
69
|
-
* 返回值为 LinkResult, 类型时,根据返回结果改变目标
|
|
69
|
+
* 返回值为 LinkResult, 类型时,根据返回结果改变目标 field 的 显示/置灰/选项集/值的状态
|
|
70
70
|
* 支持 返回 Promise 对象,返回Promise时,resolve也必须为一个LinkResult
|
|
71
71
|
*
|
|
72
72
|
* 参数
|
|
@@ -16,7 +16,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
exports.UPagination = void 0;
|
|
18
18
|
var react_1 = __importDefault(require("react"));
|
|
19
|
-
// import { Pagination } from '../_adapt/Pagination';
|
|
20
19
|
var antd_1 = require("antd");
|
|
21
20
|
var utils_1 = require("../../utils");
|
|
22
21
|
var i18n_1 = require("../../utils/i18n");
|
package/hooks/useApiBase.d.ts
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
import type { Key, PlainObject } from '../basetype';
|
|
2
2
|
import type { ListInit, ApiListState, ListQueryState } from './_list';
|
|
3
|
+
type VList = {
|
|
4
|
+
list?: PlainObject[];
|
|
5
|
+
total?: number;
|
|
6
|
+
totalAcc?: number;
|
|
7
|
+
};
|
|
3
8
|
/**
|
|
4
9
|
* 自定义 单个 Api 的AOP行为
|
|
5
10
|
*
|
|
@@ -13,15 +18,45 @@ import type { ListInit, ApiListState, ListQueryState } from './_list';
|
|
|
13
18
|
*
|
|
14
19
|
*/
|
|
15
20
|
export type AOP = {
|
|
21
|
+
/**
|
|
22
|
+
* 查询前,可修改请求参数
|
|
23
|
+
*/
|
|
16
24
|
beforeQuery?: (queryParam: PlainObject) => PlainObject;
|
|
17
|
-
|
|
25
|
+
/**
|
|
26
|
+
* 查询后,可自定义行为,也可修改响应结果,
|
|
27
|
+
*/
|
|
28
|
+
afterQuery?: (isSuccess: boolean, queryParam: PlainObject, response: PlainObject) => void | VList;
|
|
29
|
+
/**
|
|
30
|
+
* 添加前,可修改请求参数
|
|
31
|
+
*/
|
|
18
32
|
beforeAdd?: (queryParam: PlainObject) => PlainObject;
|
|
33
|
+
/**
|
|
34
|
+
* 添加后,可自定义行为,如:清理缓存等
|
|
35
|
+
*/
|
|
19
36
|
afterAdd?: (isSuccess: boolean, data: PlainObject, response: PlainObject) => void;
|
|
37
|
+
/**
|
|
38
|
+
* 修改前,可修改请求参数
|
|
39
|
+
*/
|
|
20
40
|
beforeUpdate?: (queryParam: PlainObject) => PlainObject;
|
|
41
|
+
/**
|
|
42
|
+
* 修改后,可自定义行为,如:清理缓存等
|
|
43
|
+
*/
|
|
21
44
|
afterUpdate?: (isSuccess: boolean, data: PlainObject, response: PlainObject) => void;
|
|
45
|
+
/**
|
|
46
|
+
* 删除前,可修改请求参数
|
|
47
|
+
*/
|
|
22
48
|
beforeDelete?: (queryParam: PlainObject | PlainObject[] | Key | Key[]) => PlainObject | PlainObject[] | Key | Key[];
|
|
49
|
+
/**
|
|
50
|
+
* 删除后,可自定义行为,如:清理缓存等
|
|
51
|
+
*/
|
|
23
52
|
afterDelete?: (isSuccess: boolean, data: PlainObject | PlainObject[] | Key | Key[], response: PlainObject) => void;
|
|
53
|
+
/**
|
|
54
|
+
* 添加/修改 前,可修改请求参数
|
|
55
|
+
*/
|
|
24
56
|
beforeAll?: (queryParam: PlainObject) => PlainObject;
|
|
57
|
+
/**
|
|
58
|
+
* 添加/修改/删除 后,可自定义行为,如:清理缓存等
|
|
59
|
+
*/
|
|
25
60
|
afterAll?: (action: 'ADD' | 'UPDATE' | 'DELETE', isSuccess: boolean, data: PlainObject, response: PlainObject) => void;
|
|
26
61
|
};
|
|
27
62
|
export type ApiOption = ListInit & {
|
package/hooks/useApiBase.js
CHANGED
|
@@ -1,4 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
2
13
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
14
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
15
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -151,7 +162,7 @@ var useApiBase = function (config, state, doLoad, mode) {
|
|
|
151
162
|
}
|
|
152
163
|
}, [param, pageNo, pageSize]);
|
|
153
164
|
var _query = function (param) { return __awaiter(void 0, void 0, void 0, function () {
|
|
154
|
-
var _start, queryParam, response;
|
|
165
|
+
var _start, queryParam, response, rtnData;
|
|
155
166
|
return __generator(this, function (_a) {
|
|
156
167
|
switch (_a.label) {
|
|
157
168
|
case 0:
|
|
@@ -160,22 +171,22 @@ var useApiBase = function (config, state, doLoad, mode) {
|
|
|
160
171
|
return [4 /*yield*/, utils_1.Ajax.POST(config.api, queryParam)];
|
|
161
172
|
case 1:
|
|
162
173
|
response = _a.sent();
|
|
174
|
+
rtnData = null;
|
|
175
|
+
if (lodash_1.default.isFunction(AOP.afterQuery)) {
|
|
176
|
+
rtnData = AOP.afterQuery(response.code == '0', queryParam, response);
|
|
177
|
+
}
|
|
178
|
+
if (rtnData != null && lodash_1.default.isPlainObject(rtnData)) {
|
|
179
|
+
doLoad(__assign({ list: response.list || [], total: response.total || 0, totalAcc: response.totalAcc || response.total || 0, cost: Date.now() - _start, isQuerying: false }, rtnData));
|
|
180
|
+
return [2 /*return*/];
|
|
181
|
+
}
|
|
163
182
|
if (response.code != '0') {
|
|
164
|
-
doLoad({ isQuerying: false, cost: 0 }
|
|
165
|
-
if (lodash_1.default.isFunction(AOP.afterQuery)) {
|
|
166
|
-
AOP.afterQuery(false, queryParam, response);
|
|
167
|
-
}
|
|
168
|
-
});
|
|
183
|
+
doLoad({ isQuerying: false, cost: 0 });
|
|
169
184
|
throw response;
|
|
170
185
|
}
|
|
171
186
|
doLoad({
|
|
172
187
|
list: response.list, total: response.total, totalAcc: response.totalAcc || response.total,
|
|
173
188
|
cost: Date.now() - _start,
|
|
174
189
|
isQuerying: false
|
|
175
|
-
}, function () {
|
|
176
|
-
if (lodash_1.default.isFunction(AOP.afterQuery)) {
|
|
177
|
-
AOP.afterQuery(true, queryParam, response);
|
|
178
|
-
}
|
|
179
190
|
});
|
|
180
191
|
return [2 /*return*/];
|
|
181
192
|
}
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"name":"vap1","version":"0.3.
|
|
1
|
+
{"name":"vap1","version":"0.3.4","description":"vap1, Both support MicroService and SAP FrameWork, Support IE>9","main":"index.js","author":"Xiang da","license":"ISC"}
|
package/uform/FormEditor.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import type { FormSchema } from './schema';
|
|
2
|
+
import type { FormSchema, FixField } from './schema';
|
|
3
3
|
/**
|
|
4
4
|
* TODO
|
|
5
5
|
* 1. input-with-select
|
|
@@ -11,11 +11,28 @@ import type { FormSchema } from './schema';
|
|
|
11
11
|
* 5. dtree-select
|
|
12
12
|
* 6. 所有日期:日期格式设置
|
|
13
13
|
* */
|
|
14
|
-
type FormEditorProps = {
|
|
14
|
+
export type FormEditorProps = {
|
|
15
|
+
/**
|
|
16
|
+
* schema 数据,可以为 FormSchema 或 FormSchema序列化后的 JSON
|
|
17
|
+
*/
|
|
15
18
|
data?: string | FormSchema;
|
|
19
|
+
/**
|
|
20
|
+
* 表单名称
|
|
21
|
+
*/
|
|
16
22
|
name?: string;
|
|
23
|
+
/**
|
|
24
|
+
* 保存方法,
|
|
25
|
+
* isCtrls = true 时,代码使用快捷键保存
|
|
26
|
+
*/
|
|
17
27
|
onSave: (schema: string, isCtrlS?: boolean) => void;
|
|
28
|
+
/**
|
|
29
|
+
* 传 onBack 方法时,编辑器上会多出一个返回按钮
|
|
30
|
+
*/
|
|
18
31
|
onBack?: () => void;
|
|
32
|
+
/**
|
|
33
|
+
* 当传 fields 时,切换为字段模式
|
|
34
|
+
* 字段模式时,为字段选择,字段不可变
|
|
35
|
+
*/
|
|
36
|
+
fields?: FixField[];
|
|
19
37
|
};
|
|
20
38
|
export declare const FormEditor: React.FC<FormEditorProps>;
|
|
21
|
-
export {};
|
package/uform/FormEditor.js
CHANGED
|
@@ -46,8 +46,8 @@ exports.FormEditor = void 0;
|
|
|
46
46
|
var react_1 = __importStar(require("react"));
|
|
47
47
|
var lodash_1 = __importDefault(require("lodash"));
|
|
48
48
|
var index_1 = require("../index");
|
|
49
|
-
var
|
|
50
|
-
var
|
|
49
|
+
var Items_1 = __importDefault(require("./panel/Items"));
|
|
50
|
+
var index_2 = __importDefault(require("./panel/Editor/index"));
|
|
51
51
|
var useForm_1 = require("./hooks/useForm");
|
|
52
52
|
var FormViewer_1 = require("./FormViewer");
|
|
53
53
|
var CanvasProperties_1 = __importDefault(require("./panel/Propreties/CanvasProperties"));
|
|
@@ -57,7 +57,7 @@ var useEditor_1 = require("./hooks/useEditor");
|
|
|
57
57
|
var FormViewer_2 = require("./FormViewer");
|
|
58
58
|
var FormEditor = function (props) {
|
|
59
59
|
var schema = (0, react_1.useMemo)(function () { return (0, FormViewer_2.initSchama)(props.data); }, [props.data]);
|
|
60
|
-
var editor = (0, useEditor_1.useFormEditor)(schema);
|
|
60
|
+
var editor = (0, useEditor_1.useFormEditor)(schema, props.fields);
|
|
61
61
|
var _a = __read((0, react_1.useState)(false), 2), open = _a[0], setOpen = _a[1];
|
|
62
62
|
var save = function (isCtrlS) {
|
|
63
63
|
if (isCtrlS === void 0) { isCtrlS = false; }
|
|
@@ -78,7 +78,7 @@ var FormEditor = function (props) {
|
|
|
78
78
|
react_1.default.createElement(useEditor_1.FORM_EDITOR.Provider, { value: editor },
|
|
79
79
|
react_1.default.createElement(index_1.Row, { className: 'uform-editor' },
|
|
80
80
|
react_1.default.createElement(index_1.Col, { style: { width: 210, flexShrink: 0 } },
|
|
81
|
-
react_1.default.createElement(
|
|
81
|
+
react_1.default.createElement(Items_1.default, { fields: props.fields })),
|
|
82
82
|
react_1.default.createElement(index_1.Col, { style: { flexGrow: 1 } },
|
|
83
83
|
react_1.default.createElement("div", { className: 'panel-title' },
|
|
84
84
|
"\u8868\u5355 ",
|
|
@@ -94,7 +94,7 @@ var FormEditor = function (props) {
|
|
|
94
94
|
index_1.message.error('至少添加一个字段');
|
|
95
95
|
}
|
|
96
96
|
} }, "\u9884\u89C8"))),
|
|
97
|
-
react_1.default.createElement(
|
|
97
|
+
react_1.default.createElement(index_2.default, null)),
|
|
98
98
|
react_1.default.createElement(index_1.Col, { style: { width: 320, flexShrink: 0 }, className: "uform-prperties" },
|
|
99
99
|
react_1.default.createElement("div", { className: 'panel-title' },
|
|
100
100
|
"\u5C5E\u6027",
|
package/uform/FormViewer.d.ts
CHANGED
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
import type { FormSchema } from './schema';
|
|
2
2
|
import type { RefAttributes, ForwardRefExoticComponent, FC } from 'react';
|
|
3
3
|
import type { UModalProps, UFormRef, PlainObject } from '../index';
|
|
4
|
-
|
|
4
|
+
/**
|
|
5
|
+
* ˵���� �༭���� UFormϵ����� ����Ӧ��ϵ����
|
|
6
|
+
* InfoViewer �൱�� UInfo
|
|
7
|
+
* FormViewer �൱�� UForm
|
|
8
|
+
* FormModal �൱�� UFormModal
|
|
9
|
+
* InfoModal �൱�� UInfoModal
|
|
10
|
+
* FormInfoModal �൱�� UModal
|
|
11
|
+
*/
|
|
12
|
+
type ModalProps = Pick<UModalProps, 'open' | 'onOk' | 'onCancel' | 'title' | 'data' | 'isEdit' | 'autoTitle'>;
|
|
5
13
|
type FormViewProps = {
|
|
6
14
|
schema: FormSchema | string;
|
|
7
15
|
data?: PlainObject;
|
|
@@ -9,4 +17,5 @@ type FormViewProps = {
|
|
|
9
17
|
export declare const initSchama: (data: string | FormSchema) => FormSchema;
|
|
10
18
|
export declare const FormViewer: ForwardRefExoticComponent<FormViewProps & RefAttributes<UFormRef>>;
|
|
11
19
|
export declare const FormModal: FC<FormViewProps & ModalProps>;
|
|
20
|
+
export declare const FormInfoModal: FC<FormViewProps & ModalProps>;
|
|
12
21
|
export {};
|
package/uform/FormViewer.js
CHANGED
|
@@ -37,7 +37,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
37
37
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
38
38
|
};
|
|
39
39
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
-
exports.FormModal = exports.FormViewer = exports.initSchama = void 0;
|
|
40
|
+
exports.FormInfoModal = exports.FormModal = exports.FormViewer = exports.initSchama = void 0;
|
|
41
41
|
var lodash_1 = __importDefault(require("lodash"));
|
|
42
42
|
var react_1 = __importStar(require("react"));
|
|
43
43
|
var index_1 = require("../index");
|
|
@@ -70,6 +70,10 @@ var _ModalRender = function (props) {
|
|
|
70
70
|
modalProps.title = props.title || props.schema.title || '';
|
|
71
71
|
return react_1.default.createElement(index_1.UFormModal, __assign({}, uformProps, modalProps, { data: props.data, open: props.open, onOk: props.onOk, onCancel: props.onCancel }));
|
|
72
72
|
};
|
|
73
|
+
var _UModalRender = function (props) {
|
|
74
|
+
var uformProps = (0, react_1.useMemo)(function () { return (0, Convert_1.schemaToForm)(props.schema); }, [props]);
|
|
75
|
+
return react_1.default.createElement(index_1.UModal, __assign({}, props, uformProps));
|
|
76
|
+
};
|
|
73
77
|
exports.FormViewer = (0, react_1.forwardRef)(function (props, ref) {
|
|
74
78
|
var schema = (0, react_1.useMemo)(function () { return (0, exports.initSchama)(props.schema); }, [props.schema]);
|
|
75
79
|
return react_1.default.createElement(_FormRender, { schema: schema, data: props.data, ref: ref });
|
|
@@ -79,3 +83,8 @@ var FormModal = function (props) {
|
|
|
79
83
|
return react_1.default.createElement(_ModalRender, __assign({}, props, { schema: schema }));
|
|
80
84
|
};
|
|
81
85
|
exports.FormModal = FormModal;
|
|
86
|
+
var FormInfoModal = function (props) {
|
|
87
|
+
var schema = (0, react_1.useMemo)(function () { return (0, exports.initSchama)(props.schema); }, [props.schema]);
|
|
88
|
+
return react_1.default.createElement(_UModalRender, __assign({}, props, { schema: schema }));
|
|
89
|
+
};
|
|
90
|
+
exports.FormInfoModal = FormInfoModal;
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import type { FormGroup, FormItem, FormSchema, Cursor } from '../schema';
|
|
2
|
+
import type { FormGroup, FormItem, FormSchema, Cursor, FixField } from '../schema';
|
|
3
3
|
type CurrentSelected = {
|
|
4
4
|
group?: string;
|
|
5
5
|
field?: string;
|
|
6
6
|
};
|
|
7
7
|
type FormEditorContext = {
|
|
8
8
|
form: FormSchema;
|
|
9
|
+
fieldFixed: false | FixField[];
|
|
10
|
+
fieldUsed: Set<string>;
|
|
9
11
|
selected: CurrentSelected;
|
|
10
12
|
baseSpan: number;
|
|
11
13
|
getForm: () => FormSchema;
|
|
@@ -19,10 +21,11 @@ type FormEditorContext = {
|
|
|
19
21
|
getSelect: () => FormItem | FormGroup;
|
|
20
22
|
sortField: (itemId: string, targetPos: any, groupId?: string) => void;
|
|
21
23
|
addField: (type: string, pointer?: Cursor, groupId?: string) => void;
|
|
24
|
+
addFixedField: (field: FixField, pointer?: Cursor, groupId?: string) => void;
|
|
22
25
|
setFormProperties: (param: Partial<FormSchema>) => void;
|
|
23
26
|
setFieldProperties: (properties: string, value: any) => void;
|
|
24
27
|
};
|
|
25
28
|
export declare const FORM_EDITOR: import("react").Context<FormEditorContext>;
|
|
26
29
|
export declare const useEditor: () => FormEditorContext;
|
|
27
|
-
export declare const useFormEditor: (dataJson: FormSchema) => FormEditorContext;
|
|
30
|
+
export declare const useFormEditor: (dataJson: FormSchema, fixFields?: FixField[]) => FormEditorContext;
|
|
28
31
|
export {};
|
package/uform/hooks/useEditor.js
CHANGED
|
@@ -49,8 +49,25 @@ exports.FORM_EDITOR = (0, react_1.createContext)(null);
|
|
|
49
49
|
var useEditor = function () { return (0, react_1.useContext)(exports.FORM_EDITOR); };
|
|
50
50
|
exports.useEditor = useEditor;
|
|
51
51
|
var BASESPAN_MAP = new Map([['simple', 24], ['compress', 8], ['common', 12]]);
|
|
52
|
-
var useFormEditor = function (dataJson) {
|
|
52
|
+
var useFormEditor = function (dataJson, fixFields) {
|
|
53
53
|
var _a = __read((0, hooks_1.useSetState)(dataJson), 2), form = _a[0], setForm = _a[1];
|
|
54
|
+
var fieldFixed = (0, react_1.useMemo)(function () {
|
|
55
|
+
if (!lodash_1.default.isArray(fixFields) || fixFields.length == 0)
|
|
56
|
+
return false;
|
|
57
|
+
return fixFields;
|
|
58
|
+
}, [fixFields]);
|
|
59
|
+
var fieldUsed = (0, react_1.useMemo)(function () {
|
|
60
|
+
if (fieldFixed == false)
|
|
61
|
+
return null;
|
|
62
|
+
var used = new Set();
|
|
63
|
+
if (form.isGroup) {
|
|
64
|
+
form.fields.map(function (group) { return group.fields.map(function (field) { return used.add(field.field); }); });
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
form.fields.map(function (field) { return used.add(field.field); });
|
|
68
|
+
}
|
|
69
|
+
return used;
|
|
70
|
+
}, [fieldFixed, form]);
|
|
54
71
|
var FORM_REF = (0, react_1.useRef)(form);
|
|
55
72
|
var layout = form.layout, isGroup = form.isGroup, fields = form.fields;
|
|
56
73
|
(0, react_1.useLayoutEffect)(function () { FORM_REF.current = form; }, [form]);
|
|
@@ -65,6 +82,18 @@ var useFormEditor = function (dataJson) {
|
|
|
65
82
|
return len >= 8 ? 12 : 24;
|
|
66
83
|
}, [isGroup, layout, fields === null || fields === void 0 ? void 0 : fields.length]);
|
|
67
84
|
// 添加字段
|
|
85
|
+
var addFixedField = function (field, temPosition, groupId) {
|
|
86
|
+
if (groupId) {
|
|
87
|
+
// setFields(insertInGroup(type, fields as FormGroup[], groupId, temPosition))
|
|
88
|
+
// } else {
|
|
89
|
+
// setFields(insertInList(type, fields as FormItem[], temPosition))
|
|
90
|
+
}
|
|
91
|
+
else {
|
|
92
|
+
console.log(field);
|
|
93
|
+
setFields((0, arr_1.insertInList)(field.type, fields, temPosition, field));
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
// 添加字段
|
|
68
97
|
var addField = function (type, temPosition, groupId) {
|
|
69
98
|
if (groupId) {
|
|
70
99
|
setFields((0, arr_1.insertInGroup)(type, fields, groupId, temPosition));
|
|
@@ -163,6 +192,8 @@ var useFormEditor = function (dataJson) {
|
|
|
163
192
|
// const getForm = useCallback(()=>{})
|
|
164
193
|
return {
|
|
165
194
|
form: form,
|
|
195
|
+
fieldFixed: fieldFixed,
|
|
196
|
+
fieldUsed: fieldUsed,
|
|
166
197
|
selected: selected,
|
|
167
198
|
baseSpan: baseSpan,
|
|
168
199
|
getForm: function () { return FORM_REF.current; },
|
|
@@ -173,6 +204,7 @@ var useFormEditor = function (dataJson) {
|
|
|
173
204
|
sortField: sortField,
|
|
174
205
|
addGroup: addGroup,
|
|
175
206
|
addField: addField,
|
|
207
|
+
addFixedField: addFixedField,
|
|
176
208
|
setFormProperties: setForm,
|
|
177
209
|
setFieldProperties: setFieldProperties,
|
|
178
210
|
};
|
package/uform/index.js
CHANGED
|
@@ -1,12 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.registerCustom = exports.registerGroupPlugin = exports.registerFieldPlugin = exports.registerEditorPlugin = exports.FormModal = exports.FormViewer = exports.FormEditor = void 0;
|
|
7
|
-
var react_1 = __importDefault(require("react"));
|
|
8
|
-
var index_1 = require("../index");
|
|
9
|
-
var lodash_1 = __importDefault(require("lodash"));
|
|
10
4
|
var FormEditor_1 = require("./FormEditor");
|
|
11
5
|
Object.defineProperty(exports, "FormEditor", { enumerable: true, get: function () { return FormEditor_1.FormEditor; } });
|
|
12
6
|
var FormViewer_1 = require("./FormViewer");
|
|
@@ -18,18 +12,34 @@ Object.defineProperty(exports, "registerFieldPlugin", { enumerable: true, get: f
|
|
|
18
12
|
Object.defineProperty(exports, "registerGroupPlugin", { enumerable: true, get: function () { return plugins_1.registerGroupPlugin; } });
|
|
19
13
|
var register_1 = require("./inputs/register");
|
|
20
14
|
Object.defineProperty(exports, "registerCustom", { enumerable: true, get: function () { return register_1.registerCustom; } });
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
15
|
+
// const picOptions = _.range(1, 17).map((key) => ({ label: key, value: `/data/images/dashboard/${key}.png` }));
|
|
16
|
+
// registerCustom({
|
|
17
|
+
// type: 'dashboard-cover',
|
|
18
|
+
// title: '快速图片选择',
|
|
19
|
+
// icon: 'text.png',
|
|
20
|
+
// Component: () => {
|
|
21
|
+
// const width = 144, height = 81;
|
|
22
|
+
// return <div>
|
|
23
|
+
// <Upload
|
|
24
|
+
// name="file"
|
|
25
|
+
// withCredentials={true}
|
|
26
|
+
// listType="picture"
|
|
27
|
+
// showUploadList={false}
|
|
28
|
+
// onChange={() => { }}
|
|
29
|
+
// accept="image/*"
|
|
30
|
+
// className={'upload-icon-empty'}
|
|
31
|
+
// data={{ namespace: 'app-data', }}
|
|
32
|
+
// >{<div style={{ width, height, marginRight: 6, textAlign: 'center', paddingTop: 12, cursor: 'pointer', borderRadius: 4, marginBottom: 6, border: '1px solid rgb(24 144 255 / 24%)' }}>
|
|
33
|
+
// <Icon type={'plus'} />
|
|
34
|
+
// <div className="ant-upload-text">上传</div>
|
|
35
|
+
// </div>}</Upload >
|
|
36
|
+
// <Row style={{ height: 140, width: 436, overflowX: 'hidden', overflowY: 'auto', flexWrap: 'wrap' }} gutter={8}>
|
|
37
|
+
// {picOptions.map((img) => <Col span={6} style={{ height: 64, marginBottom: 6, cursor: 'pointer' }}><img
|
|
38
|
+
// style={{ height: '100%', width: '100%', borderWidth: 1, borderStyle: 'solid', borderRadius: 6, borderColor: 'transparent' }}
|
|
39
|
+
// src={img.value}
|
|
40
|
+
// // onClick={() => onChange(img.value)}
|
|
41
|
+
// /></Col>)}
|
|
42
|
+
// </Row>
|
|
43
|
+
// </div>
|
|
44
|
+
// }
|
|
45
|
+
// },)
|
|
@@ -3,5 +3,7 @@ export declare const getFieldInGroup: (el: HTMLElement) => {
|
|
|
3
3
|
group: HTMLElement;
|
|
4
4
|
field?: HTMLElement;
|
|
5
5
|
};
|
|
6
|
-
declare const _default: (
|
|
6
|
+
declare const _default: ({ showSelector }: {
|
|
7
|
+
showSelector: any;
|
|
8
|
+
}) => React.JSX.Element;
|
|
7
9
|
export default _default;
|