cnhis-design-vue 3.1.16-beta.9 → 3.1.17-beta.1
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/packages/big-table/src/BigTable.vue.d.ts +6 -1
- package/es/packages/big-table/src/BigTable.vue_vue_type_script_setup_true_lang.js +2 -2
- package/es/packages/big-table/src/components/edit-form/edit-date.js +13 -3
- package/es/packages/big-table/src/components/edit-form/edit-time.js +1 -0
- package/es/packages/big-table/src/components/separate.js +1 -1
- package/es/packages/big-table/src/hooks/useSeparateRow.js +7 -4
- package/es/packages/button-print/index.d.ts +4 -1
- package/es/packages/button-print/src/ButtonPrint.vue.d.ts +4 -1
- package/es/packages/button-print/src/components/IdentityVerification.js +5 -7
- package/es/packages/button-print/src/components/IdentityVerification.vue.d.ts +4 -1
- package/es/packages/fabric-chart/index.d.ts +2 -0
- package/es/packages/fabric-chart/src/FabricChart.js +21 -6
- package/es/packages/fabric-chart/src/FabricChart.vue.d.ts +2 -0
- package/es/packages/fabric-chart/src/components/PopupTip.js +2 -2
- package/es/packages/fabric-chart/src/hooks/constant.js +1 -1
- package/es/packages/fabric-chart/src/hooks/useCenter.js +30 -20
- package/es/packages/fabric-chart/src/hooks/useLeft.d.ts +3 -1
- package/es/packages/fabric-chart/src/hooks/useLeft.js +30 -12
- package/es/packages/fabric-chart/src/hooks/useOther.js +63 -13
- package/es/packages/fabric-chart/src/hooks/useRight.d.ts +1 -1
- package/es/packages/fabric-chart/src/hooks/useRight.js +11 -69
- package/es/packages/fabric-chart/src/interface.d.ts +3 -0
- package/es/packages/form-config/index.d.ts +14 -9
- package/es/packages/form-config/src/FormConfig.vue.d.ts +14 -9
- package/es/packages/form-config/src/components/FormConfigCreator.js +2 -0
- package/es/packages/form-config/src/components/FormConfigCreator.vue.d.ts +6 -4
- package/es/packages/form-config/src/components/FormConfigEdit.js +1 -0
- package/es/packages/form-config/src/components/FormConfigEdit.vue.d.ts +8 -5
- package/es/packages/form-config/src/constants/index.d.ts +2 -2
- package/es/packages/form-config/src/hooks/useConfigurationField.js +9 -9
- package/es/packages/form-config/src/types/index.d.ts +1 -0
- package/es/packages/form-config/style/index.css +1 -1
- package/es/packages/form-render/index.d.ts +6 -4
- package/es/packages/form-render/index.js +1 -2
- package/es/packages/form-render/src/FormRender.js +8 -9
- package/es/packages/form-render/src/FormRender.vue.d.ts +6 -4
- package/es/packages/form-render/src/components/renderer/{combination/index.d.ts → combination.d.ts} +3 -3
- package/es/packages/form-render/src/components/renderer/combination.js +92 -0
- package/es/packages/form-render/src/components/renderer/date.js +12 -4
- package/es/packages/form-render/src/components/renderer/formItem.js +12 -5
- package/es/packages/form-render/src/components/renderer/index.d.ts +1 -0
- package/es/packages/form-render/src/components/renderer/index.js +2 -1
- package/es/packages/form-render/src/components/renderer/inputGroup.js +1 -1
- package/es/packages/form-render/src/components/renderer/{combination → jsonCombination}/hooks/useDeepValidate.d.ts +0 -0
- package/es/packages/form-render/src/components/renderer/{combination → jsonCombination}/hooks/useDeepValidate.js +0 -0
- package/es/packages/form-render/src/components/renderer/jsonCombination/index.d.ts +44 -0
- package/es/packages/form-render/src/components/renderer/{combination → jsonCombination}/index.js +29 -14
- package/es/packages/form-render/src/components/renderer/select.js +11 -8
- package/es/packages/form-render/src/constants/index.d.ts +2 -2
- package/es/packages/form-render/src/hooks/index.d.ts +1 -2
- package/es/packages/form-render/src/hooks/index.js +1 -2
- package/es/packages/form-render/src/hooks/useAnchor.d.ts +3 -3
- package/es/packages/form-render/src/hooks/useAsyncQueue.d.ts +2 -2
- package/es/packages/form-render/src/hooks/useBusinessBinding.d.ts +5 -6
- package/es/packages/form-render/src/hooks/useBusinessBinding.js +22 -20
- package/es/packages/form-render/src/hooks/useFieldListAdaptor.d.ts +1 -1
- package/es/packages/form-render/src/hooks/useFieldListAdaptor.js +11 -7
- package/es/packages/form-render/src/hooks/useFieldNormalize.d.ts +5 -0
- package/es/packages/form-render/src/hooks/useFieldNormalize.js +58 -0
- package/es/packages/form-render/src/hooks/useFieldVisitor.js +2 -5
- package/es/packages/form-render/src/hooks/useFormRenderLifeCycle.d.ts +4 -4
- package/es/packages/form-render/src/hooks/useFormRequest.d.ts +2 -2
- package/es/packages/form-render/src/types/fieldItem.d.ts +4 -0
- package/es/packages/form-render/src/types/index.d.ts +4 -4
- package/es/packages/form-render/src/utils/dom.d.ts +2 -2
- package/es/packages/form-render/src/utils/index.js +3 -2
- package/es/packages/form-render/src/utils/schema.d.ts +62 -2
- package/es/packages/form-render/src/utils/schema.js +5 -2
- package/es/packages/form-render/style/index.css +11 -8
- package/es/packages/index.css +12 -9
- package/es/packages/index.js +1 -2
- package/es/packages/shortcut-provider/src/hooks/useShortcuts.js +1 -0
- package/es/packages/shortcut-setter/index.d.ts +7 -4
- package/es/packages/shortcut-setter/src/ShortcutSetter.vue.d.ts +7 -4
- package/es/src/types/index.d.ts +2 -2
- package/es/src/utils/index.d.ts +1 -0
- package/es/src/utils/index.js +11 -1
- package/es/src/utils/tapable/AsyncParallelBailHook.d.ts +3 -0
- package/es/src/utils/tapable/AsyncParallelBailHook.js +78 -0
- package/es/src/utils/tapable/AsyncParallelHook.d.ts +3 -0
- package/es/src/utils/tapable/AsyncParallelHook.js +27 -0
- package/es/src/utils/tapable/AsyncSeriesBailHook.d.ts +3 -0
- package/es/src/utils/tapable/AsyncSeriesBailHook.js +33 -0
- package/es/src/utils/tapable/AsyncSeriesHook.d.ts +3 -0
- package/es/src/utils/tapable/AsyncSeriesHook.js +27 -0
- package/es/src/utils/tapable/AsyncSeriesLoopHook.d.ts +3 -0
- package/es/src/utils/tapable/AsyncSeriesLoopHook.js +27 -0
- package/es/src/utils/tapable/AsyncSeriesWaterfallHook.d.ts +3 -0
- package/es/src/utils/tapable/AsyncSeriesWaterfallHook.js +40 -0
- package/es/src/utils/tapable/Hook.d.ts +50 -0
- package/es/src/utils/tapable/Hook.js +140 -0
- package/es/src/utils/tapable/HookCodeFactory.d.ts +58 -0
- package/es/src/utils/tapable/HookCodeFactory.js +444 -0
- package/es/src/utils/tapable/HookMap.d.ts +11 -0
- package/es/src/utils/tapable/HookMap.js +32 -0
- package/es/src/utils/tapable/MultiHook.d.ts +12 -0
- package/es/src/utils/tapable/MultiHook.js +38 -0
- package/es/src/utils/tapable/SyncBailHook.d.ts +3 -0
- package/es/src/utils/tapable/SyncBailHook.js +40 -0
- package/es/src/utils/tapable/SyncHook.d.ts +3 -0
- package/es/src/utils/tapable/SyncHook.js +34 -0
- package/es/src/utils/tapable/SyncLoopHook.d.ts +3 -0
- package/es/src/utils/tapable/SyncLoopHook.js +34 -0
- package/es/src/utils/tapable/SyncWaterfallHook.d.ts +3 -0
- package/es/src/utils/tapable/SyncWaterfallHook.js +48 -0
- package/es/src/utils/tapable/index.d.ts +139 -0
- package/es/src/utils/tapable/index.js +12 -0
- package/package.json +4 -4
- package/es/packages/form-render/src/hooks/useInitialData.d.ts +0 -5
- package/es/packages/form-render/src/hooks/useInitialData.js +0 -16
- package/es/packages/form-render/src/hooks/useTypeNormalize.d.ts +0 -4
- package/es/packages/form-render/src/hooks/useTypeNormalize.js +0 -45
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { isObject } from '@vueuse/core';
|
|
2
|
-
import { pick } from 'lodash-es';
|
|
3
|
-
import { useFormValidator,
|
|
2
|
+
import { cloneDeep, pick } from 'lodash-es';
|
|
3
|
+
import { useFormValidator, useFieldNormalize } from '../../../../packages/form-render';
|
|
4
4
|
import { arrayed, parseNumberFromMaybeString, formRenderLog } from '../utils/index.js';
|
|
5
|
-
import { fieldKeyEscape, createLinebarId
|
|
5
|
+
import { fieldKeyEscape, createLinebarId } from '../utils/schema.js';
|
|
6
6
|
import { transformDateFormat } from '../utils/business.js';
|
|
7
7
|
|
|
8
|
-
function useFieldListAdaptor(collector
|
|
8
|
+
function useFieldListAdaptor(collector) {
|
|
9
9
|
const { createValidatorSchema } = useFormValidator();
|
|
10
10
|
const createStandardSchema = (item) => {
|
|
11
11
|
var _a;
|
|
@@ -14,6 +14,7 @@ function useFieldListAdaptor(collector, uuid) {
|
|
|
14
14
|
type: (_a = item.fieldType) != null ? _a : "string",
|
|
15
15
|
title: item.alias || item.name,
|
|
16
16
|
"x-component": item.html_type,
|
|
17
|
+
default: item.default_val,
|
|
17
18
|
"x-component-props": {
|
|
18
19
|
placeholder: item.placeholder,
|
|
19
20
|
clearable: item.is_empty === "0",
|
|
@@ -38,7 +39,6 @@ function useFieldListAdaptor(collector, uuid) {
|
|
|
38
39
|
showLabel: item.hide_title !== "1",
|
|
39
40
|
propertyKey: item.val_key,
|
|
40
41
|
annotation: item.annotation,
|
|
41
|
-
id: elementIdEscape(`${uuid}-${item.val_key}`),
|
|
42
42
|
...item.decoratorProps || {}
|
|
43
43
|
}
|
|
44
44
|
});
|
|
@@ -102,6 +102,10 @@ function useFieldListAdaptor(collector, uuid) {
|
|
|
102
102
|
};
|
|
103
103
|
const createCombinationSchema = (item) => {
|
|
104
104
|
const schema = createStandardSchema(item);
|
|
105
|
+
schema.type = "array";
|
|
106
|
+
if (item.jsonCombination !== false) {
|
|
107
|
+
schema["x-component"] = "JSON_COMBINATION";
|
|
108
|
+
}
|
|
105
109
|
Object.assign(schema["x-decorator-props"], {
|
|
106
110
|
showLabel: false,
|
|
107
111
|
showFeedback: false
|
|
@@ -204,12 +208,12 @@ function useFieldListAdaptor(collector, uuid) {
|
|
|
204
208
|
properties: schemaAdaptor(fieldList)
|
|
205
209
|
};
|
|
206
210
|
};
|
|
207
|
-
const {
|
|
211
|
+
const { FieldNormalizeWaterfallHook } = useFieldNormalize();
|
|
208
212
|
function schemaAdaptor(fieldList) {
|
|
209
213
|
let prevLinebar = null;
|
|
210
214
|
return fieldList.reduce((fin, cur, idx) => {
|
|
211
215
|
var _a;
|
|
212
|
-
|
|
216
|
+
cur = FieldNormalizeWaterfallHook.call(cloneDeep(cur));
|
|
213
217
|
const obj_type = (_a = cur.validate) == null ? void 0 : _a.obj_type;
|
|
214
218
|
obj_type && collector.collect(obj_type, cur.val_key);
|
|
215
219
|
if (cur.html_type === "LINEBAR") {
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { SyncWaterfallHook } from '../../../../../es/src/utils/tapable';
|
|
2
|
+
import { FieldItem } from '../types';
|
|
3
|
+
export declare function useFieldNormalize(): {
|
|
4
|
+
FieldNormalizeWaterfallHook: SyncWaterfallHook<FieldItem, import("../../../../../es/src/utils/tapable").UnsetAdditionalOptions>;
|
|
5
|
+
};
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { SyncWaterfallHook } from '../../../../src/utils/tapable';
|
|
2
|
+
import { FIELD_BUSINESS_TYPE } from '../../../../packages/form-render/src/constants';
|
|
3
|
+
|
|
4
|
+
function useFieldNormalize() {
|
|
5
|
+
const FieldNormalizeWaterfallHook = new SyncWaterfallHook(["fieldItem"]);
|
|
6
|
+
FieldNormalizeWaterfallHook.tap("__block", (fieldItem) => {
|
|
7
|
+
if (["CHECKBOX_BLOCK", "RADIO_BLOCK"].includes(fieldItem.html_type)) {
|
|
8
|
+
fieldItem.__vertical = true;
|
|
9
|
+
}
|
|
10
|
+
return fieldItem;
|
|
11
|
+
});
|
|
12
|
+
FieldNormalizeWaterfallHook.tap("__line", (fieldItem) => {
|
|
13
|
+
if (["LINE_BREAKS"].includes(fieldItem.html_type)) {
|
|
14
|
+
fieldItem.__line = true;
|
|
15
|
+
fieldItem.is_show = "1";
|
|
16
|
+
}
|
|
17
|
+
return fieldItem;
|
|
18
|
+
});
|
|
19
|
+
FieldNormalizeWaterfallHook.tap("__age", (fieldItem) => {
|
|
20
|
+
if (fieldItem.html_type === "AGE") {
|
|
21
|
+
fieldItem.html_type = "INPUT_NUMBER";
|
|
22
|
+
fieldItem.suffixConfig = [
|
|
23
|
+
{
|
|
24
|
+
validate: { obj_type: FIELD_BUSINESS_TYPE.AGE_UNIT },
|
|
25
|
+
val_key: fieldItem.val_key_unit,
|
|
26
|
+
html_type: "SELECT",
|
|
27
|
+
option: fieldItem.option,
|
|
28
|
+
urlConfig: fieldItem.urlConfig
|
|
29
|
+
}
|
|
30
|
+
];
|
|
31
|
+
}
|
|
32
|
+
return fieldItem;
|
|
33
|
+
});
|
|
34
|
+
const types = [
|
|
35
|
+
[["SEARCH", "PHONE_TYPE", "IDCARD_TYPE"], "SELECT"],
|
|
36
|
+
["DIGITAL", "INPUT_NUMBER"],
|
|
37
|
+
["CHECKBOX_BLOCK", "CHECKBOX"],
|
|
38
|
+
["RADIO_BLOCK", "RADIO"],
|
|
39
|
+
[["DATE-INPUT", "DATETIME-INPUT"], "DATE"],
|
|
40
|
+
["SWITCH_COMPONENT", "SWITCH"],
|
|
41
|
+
["SLIDER_COMPONENT", "SLIDER"],
|
|
42
|
+
["LINE_BREAKS", "LINEBAR"]
|
|
43
|
+
];
|
|
44
|
+
FieldNormalizeWaterfallHook.tap("__normalize", (fieldItem) => {
|
|
45
|
+
types.some(([rule, target]) => {
|
|
46
|
+
const match = Array.isArray(rule) ? rule.includes(fieldItem.html_type) : rule === fieldItem.html_type;
|
|
47
|
+
return match && (fieldItem.html_type = target);
|
|
48
|
+
});
|
|
49
|
+
return fieldItem;
|
|
50
|
+
});
|
|
51
|
+
FieldNormalizeWaterfallHook.tap("__elem_width", (fieldItem) => {
|
|
52
|
+
fieldItem.elem_width = ~~((fieldItem.elem_width || 3) * 2);
|
|
53
|
+
return fieldItem;
|
|
54
|
+
});
|
|
55
|
+
return { FieldNormalizeWaterfallHook };
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
export { useFieldNormalize };
|
|
@@ -3,8 +3,6 @@ import { isFunction } from '@vueuse/core';
|
|
|
3
3
|
|
|
4
4
|
function useFieldVisitor() {
|
|
5
5
|
function traverse(fieldList, visitorMap, key = "val_key") {
|
|
6
|
-
if (!visitorMap)
|
|
7
|
-
return fieldList;
|
|
8
6
|
return fieldList.reduce((fin, field) => {
|
|
9
7
|
if (Array.isArray(field.children)) {
|
|
10
8
|
field.children = traverse(field.children, visitorMap, key);
|
|
@@ -15,7 +13,7 @@ function useFieldVisitor() {
|
|
|
15
13
|
if (field.suffixConfig) {
|
|
16
14
|
field.suffixConfig = traverse(arrayed(field.suffixConfig), visitorMap, key);
|
|
17
15
|
}
|
|
18
|
-
const visitor = visitorMap[field[key]];
|
|
16
|
+
const visitor = visitorMap == null ? void 0 : visitorMap[field[key]];
|
|
19
17
|
let current = field;
|
|
20
18
|
const before = [];
|
|
21
19
|
const after = [];
|
|
@@ -31,8 +29,7 @@ function useFieldVisitor() {
|
|
|
31
29
|
after.push(...arrayed(field2));
|
|
32
30
|
}
|
|
33
31
|
});
|
|
34
|
-
fin.
|
|
35
|
-
return fin;
|
|
32
|
+
return fin.concat([...before, current, ...after]);
|
|
36
33
|
}, []);
|
|
37
34
|
}
|
|
38
35
|
return { traverse };
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UndefinedAble } from '../../../../../es/src/types';
|
|
2
2
|
import { FormRenderLifeCycle, FormRenderProps } from '../../../../../es/packages/form-render';
|
|
3
3
|
export declare function useFormRenderLifeCycle(props: FormRenderProps): {
|
|
4
4
|
callLifeCycle: <T extends "onSetup" | "beforeRequest" | "afterRequest">(lifeCycleName: T, payload?: Parameters<Required<Partial<{
|
|
5
5
|
onSetup(): void;
|
|
6
|
-
beforeRequest(fieldKey: string, params?: import("../../../../../es/src/types").AnyObject | undefined): void |
|
|
6
|
+
beforeRequest(fieldKey: string, params?: import("../../../../../es/src/types").AnyObject | undefined): void | UndefinedAble<import("../../../../../es/src/types").AnyObject>;
|
|
7
7
|
afterRequest(fieldKey: string, payload?: any): import("../../../../../es/src/types").AnyObject[];
|
|
8
|
-
}>>[T]> | undefined) =>
|
|
8
|
+
}>>[T]> | undefined) => UndefinedAble<ReturnType<Required<Partial<{
|
|
9
9
|
onSetup(): void;
|
|
10
|
-
beforeRequest(fieldKey: string, params?: import("../../../../../es/src/types").AnyObject | undefined): void |
|
|
10
|
+
beforeRequest(fieldKey: string, params?: import("../../../../../es/src/types").AnyObject | undefined): void | UndefinedAble<import("../../../../../es/src/types").AnyObject>;
|
|
11
11
|
afterRequest(fieldKey: string, payload?: any): import("../../../../../es/src/types").AnyObject[];
|
|
12
12
|
}>>[T]>>;
|
|
13
13
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Func,
|
|
1
|
+
import { Func, Nullable } from '../../../../../es/src/types';
|
|
2
2
|
declare type RequestInstance = Record<string, Func>;
|
|
3
3
|
export declare function useFormRequest(): {
|
|
4
|
-
getHttpInstance: () =>
|
|
4
|
+
getHttpInstance: () => Nullable<RequestInstance>;
|
|
5
5
|
registGlobHttpInstance: (instance: RequestInstance) => void;
|
|
6
6
|
};
|
|
7
7
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AnyObject,
|
|
1
|
+
import { AnyObject, UndefinedAble } from '../../../../../es/src/types';
|
|
2
2
|
import { DataField, Field } from '@formily/core';
|
|
3
3
|
import { ISchema } from '@formily/json-schema/esm/types';
|
|
4
4
|
import { Component, FunctionalComponent } from 'vue';
|
|
@@ -25,7 +25,7 @@ export declare type FormAsyncQueue = AsyncQueue<FormAsyncQueueItem, any, AnyObje
|
|
|
25
25
|
export declare type AgeContext = Record<'age' | 'day' | 'month' | 'year', number>;
|
|
26
26
|
export declare type IdCardParseInfo = Record<'sex' | 'birthday', string> & AgeContext;
|
|
27
27
|
export declare type FormRenderExpose = {
|
|
28
|
-
validate(path?: string): Promise<
|
|
28
|
+
validate(path?: string): Promise<unknown>;
|
|
29
29
|
getFormValues(): AnyObject;
|
|
30
30
|
setFieldState(path: string, setter: (field: Field) => void): void;
|
|
31
31
|
resetFields(path?: string): void;
|
|
@@ -43,7 +43,7 @@ export declare type FormChangePayload = {
|
|
|
43
43
|
fieldKey: string;
|
|
44
44
|
fieldName: string;
|
|
45
45
|
fieldInstance: DataField;
|
|
46
|
-
context
|
|
46
|
+
context?: FormChangeContext;
|
|
47
47
|
};
|
|
48
48
|
export declare type DependKeyType = string | Record<string, string> | Array<{
|
|
49
49
|
paramName: string;
|
|
@@ -52,7 +52,7 @@ export declare type DependKeyType = string | Record<string, string> | Array<{
|
|
|
52
52
|
} | string>;
|
|
53
53
|
export declare type FormRenderLifeCycle = Partial<{
|
|
54
54
|
onSetup(): void;
|
|
55
|
-
beforeRequest(fieldKey: string, params?: AnyObject):
|
|
55
|
+
beforeRequest(fieldKey: string, params?: AnyObject): UndefinedAble<AnyObject> | void;
|
|
56
56
|
afterRequest(fieldKey: string, payload?: any): AnyObject[];
|
|
57
57
|
}>;
|
|
58
58
|
export declare type FormRenderProps = Partial<{
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Nullable } from '../../../../../es/src/types';
|
|
2
2
|
export declare function queryDecorator(key: string, wrapperElement: HTMLElement, formUUID: string): HTMLElement | null;
|
|
3
|
-
export declare function queryInput(decoratorElement?:
|
|
3
|
+
export declare function queryInput(decoratorElement?: Nullable<HTMLElement>): {
|
|
4
4
|
widgetElement: HTMLInputElement | null | undefined;
|
|
5
5
|
widgetElementList: HTMLInputElement[];
|
|
6
6
|
};
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { inject, provide, computed, createVNode, Fragment } from 'vue';
|
|
2
|
+
import { Path } from '@formily/path';
|
|
2
3
|
import { isObject } from '@vue/shared';
|
|
3
4
|
import { isNumber, isString, isFunction } from 'lodash-es';
|
|
4
5
|
export { isIdCard, isMobile, parseAge2Birthday, parseAge2FromContext, parseBirthday, parseIdCard, transformDateFormat } from './business.js';
|
|
5
6
|
export { queryDecorator, queryInput } from './dom.js';
|
|
6
|
-
export { assignUpdateValue, createLinebarId, elementIdEscape, fieldKeyEscape, getParentLinebar, traverseDependKey, traverseFieldList, traverseSchema } from './schema.js';
|
|
7
|
+
export { assignUpdateValue, createLinebarId, createObjSchema, elementIdEscape, fieldKeyEscape, getParentLinebar, traverseDependKey, traverseFieldList, traverseSchema } from './schema.js';
|
|
7
8
|
|
|
8
9
|
function formRenderLog(message, type = "log") {
|
|
9
10
|
console[type](`[FormRender]: ${message}`);
|
|
@@ -19,7 +20,7 @@ function mergeDeepProperties(target, fieldList, traverseProperties = ["children"
|
|
|
19
20
|
if (!isObject(field))
|
|
20
21
|
return;
|
|
21
22
|
if (targetPropertyFor(field) != null && _target[propertyFor(field)] == null) {
|
|
22
|
-
_target
|
|
23
|
+
Path.setIn(_target, propertyFor(field), targetPropertyFor(field));
|
|
23
24
|
}
|
|
24
25
|
traverseProperties.forEach((p) => {
|
|
25
26
|
if (!field[p])
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AnyObject
|
|
1
|
+
import { AnyObject } from '../../../../../es/src/types';
|
|
2
2
|
import { GeneralField } from '@formily/core';
|
|
3
3
|
import { ISchema } from '@formily/json-schema/esm/types';
|
|
4
4
|
import { DependKeyType, FieldItem } from '../../../../../es/packages/form-render';
|
|
@@ -9,8 +9,68 @@ export declare function createLinebarId(id: string): string;
|
|
|
9
9
|
export declare function traverseDependKey(dependKeys: DependKeyType, handler: {
|
|
10
10
|
(dependKey: string, valueKey: string, required?: boolean): void;
|
|
11
11
|
}): void;
|
|
12
|
-
export declare function getParentLinebar(key: string, fieldList: FieldItem[]):
|
|
12
|
+
export declare function getParentLinebar(key: string, fieldList: FieldItem[]): string | null;
|
|
13
13
|
export declare function assignUpdateValue(props: AnyObject, field: GeneralField): {
|
|
14
14
|
[x: string]: any;
|
|
15
15
|
};
|
|
16
16
|
export declare function traverseFieldList(fieldList: FieldItem[], handler: (field: FieldItem) => void): void;
|
|
17
|
+
export declare function createObjSchema(properties: Record<string, ISchema>): {
|
|
18
|
+
type: string;
|
|
19
|
+
properties: Record<string, import("@formily/json-schema/esm/types").Stringify<{
|
|
20
|
+
[key: symbol]: any;
|
|
21
|
+
[key: `x-${string}`]: any;
|
|
22
|
+
[key: `x-${number}`]: any;
|
|
23
|
+
version?: string | undefined;
|
|
24
|
+
name?: import("@formily/json-schema/esm/types").SchemaKey | undefined;
|
|
25
|
+
title?: any;
|
|
26
|
+
description?: any;
|
|
27
|
+
default?: any;
|
|
28
|
+
readOnly?: boolean | undefined;
|
|
29
|
+
writeOnly?: boolean | undefined;
|
|
30
|
+
type?: import("@formily/json-schema/esm/types").SchemaTypes | undefined;
|
|
31
|
+
enum?: import("@formily/json-schema/esm/types").SchemaEnum<any> | undefined;
|
|
32
|
+
const?: any;
|
|
33
|
+
multipleOf?: number | undefined;
|
|
34
|
+
maximum?: number | undefined;
|
|
35
|
+
exclusiveMaximum?: number | undefined;
|
|
36
|
+
minimum?: number | undefined;
|
|
37
|
+
exclusiveMinimum?: number | undefined;
|
|
38
|
+
maxLength?: number | undefined;
|
|
39
|
+
minLength?: number | undefined;
|
|
40
|
+
pattern?: string | RegExp | undefined;
|
|
41
|
+
maxItems?: number | undefined;
|
|
42
|
+
minItems?: number | undefined;
|
|
43
|
+
uniqueItems?: boolean | undefined;
|
|
44
|
+
maxProperties?: number | undefined;
|
|
45
|
+
minProperties?: number | undefined;
|
|
46
|
+
required?: string | boolean | string[] | undefined;
|
|
47
|
+
format?: string | undefined;
|
|
48
|
+
$ref?: string | undefined;
|
|
49
|
+
$namespace?: string | undefined;
|
|
50
|
+
definitions?: import("@formily/json-schema/esm/types").SchemaProperties<any, any, any, any, any, any, any, any> | undefined;
|
|
51
|
+
properties?: import("@formily/json-schema/esm/types").SchemaProperties<any, any, any, any, any, any, any, any> | undefined;
|
|
52
|
+
items?: import("@formily/json-schema/esm/types").SchemaItems<any, any, any, any, any, any, any, any> | undefined;
|
|
53
|
+
additionalItems?: import("@formily/json-schema/esm/types").Stringify<any> | undefined;
|
|
54
|
+
patternProperties?: import("@formily/json-schema/esm/types").SchemaProperties<any, any, any, any, any, any, any, any> | undefined;
|
|
55
|
+
additionalProperties?: import("@formily/json-schema/esm/types").Stringify<any> | undefined;
|
|
56
|
+
"x-value"?: any;
|
|
57
|
+
"x-index"?: number | undefined;
|
|
58
|
+
"x-pattern"?: any;
|
|
59
|
+
"x-display"?: any;
|
|
60
|
+
"x-validator"?: any;
|
|
61
|
+
"x-decorator"?: any;
|
|
62
|
+
"x-decorator-props"?: any;
|
|
63
|
+
"x-component"?: any;
|
|
64
|
+
"x-component-props"?: any;
|
|
65
|
+
"x-reactions"?: import("@formily/json-schema/esm/types").SchemaReactions<any> | undefined;
|
|
66
|
+
"x-content"?: any;
|
|
67
|
+
"x-data"?: any;
|
|
68
|
+
"x-visible"?: boolean | undefined;
|
|
69
|
+
"x-hidden"?: boolean | undefined;
|
|
70
|
+
"x-disabled"?: boolean | undefined;
|
|
71
|
+
"x-editable"?: boolean | undefined;
|
|
72
|
+
"x-read-only"?: boolean | undefined;
|
|
73
|
+
"x-read-pretty"?: boolean | undefined;
|
|
74
|
+
"x-compile-omitted"?: string[] | undefined;
|
|
75
|
+
}>>;
|
|
76
|
+
};
|
|
@@ -14,7 +14,7 @@ function fieldKeyEscape(fieldList) {
|
|
|
14
14
|
return fieldList.map((f) => f.val_key).join("-").replace(/[.]/g, "_");
|
|
15
15
|
}
|
|
16
16
|
function elementIdEscape(id) {
|
|
17
|
-
return id.replace(
|
|
17
|
+
return id.replace(/[.]/g, "-");
|
|
18
18
|
}
|
|
19
19
|
function createLinebarId(id) {
|
|
20
20
|
return elementIdEscape(`id-${id}`);
|
|
@@ -90,5 +90,8 @@ function traverseFieldList(fieldList, handler) {
|
|
|
90
90
|
}
|
|
91
91
|
traverse(fieldList);
|
|
92
92
|
}
|
|
93
|
+
function createObjSchema(properties) {
|
|
94
|
+
return { type: "object", properties };
|
|
95
|
+
}
|
|
93
96
|
|
|
94
|
-
export { assignUpdateValue, createLinebarId, elementIdEscape, fieldKeyEscape, getParentLinebar, traverseDependKey, traverseFieldList, traverseSchema };
|
|
97
|
+
export { assignUpdateValue, createLinebarId, createObjSchema, elementIdEscape, fieldKeyEscape, getParentLinebar, traverseDependKey, traverseFieldList, traverseSchema };
|
|
@@ -105,6 +105,10 @@
|
|
|
105
105
|
padding: 0;
|
|
106
106
|
margin: 0;
|
|
107
107
|
}
|
|
108
|
+
.form-render__combinationHeader .n-button__icon {
|
|
109
|
+
font-size: 14px;
|
|
110
|
+
margin: 0 2px 0 0;
|
|
111
|
+
}
|
|
108
112
|
.form-render__combinationHeaderText {
|
|
109
113
|
font-size: 16px;
|
|
110
114
|
font-weight: 500;
|
|
@@ -115,18 +119,17 @@
|
|
|
115
119
|
top: 5px;
|
|
116
120
|
width: 14px;
|
|
117
121
|
height: 14px;
|
|
118
|
-
border-radius: 50%;
|
|
119
|
-
background: red;
|
|
120
|
-
cursor: pointer;
|
|
121
|
-
display: inline-flex;
|
|
122
|
-
align-items: center;
|
|
123
|
-
justify-content: center;
|
|
124
|
-
color: white;
|
|
125
|
-
vertical-align: middle;
|
|
126
122
|
font-size: 16px;
|
|
127
123
|
}
|
|
124
|
+
.form-render__combinationContentJson {
|
|
125
|
+
position: relative;
|
|
126
|
+
}
|
|
128
127
|
.form-render__combinationContent {
|
|
129
128
|
position: relative;
|
|
129
|
+
display: grid !important;
|
|
130
|
+
grid-template-columns: repeat(var(--column), minmax(0px, 1fr));
|
|
131
|
+
align-items: start;
|
|
132
|
+
gap: 0 16px;
|
|
130
133
|
}
|
|
131
134
|
.form-render__complex {
|
|
132
135
|
width: 100%;
|
package/es/packages/index.css
CHANGED
|
@@ -2926,6 +2926,10 @@ body > .vxe-table--tooltip-wrapper {
|
|
|
2926
2926
|
padding: 0;
|
|
2927
2927
|
margin: 0;
|
|
2928
2928
|
}
|
|
2929
|
+
.form-render__combinationHeader .n-button__icon {
|
|
2930
|
+
font-size: 14px;
|
|
2931
|
+
margin: 0 2px 0 0;
|
|
2932
|
+
}
|
|
2929
2933
|
.form-render__combinationHeaderText {
|
|
2930
2934
|
font-size: 16px;
|
|
2931
2935
|
font-weight: 500;
|
|
@@ -2936,18 +2940,17 @@ body > .vxe-table--tooltip-wrapper {
|
|
|
2936
2940
|
top: 5px;
|
|
2937
2941
|
width: 14px;
|
|
2938
2942
|
height: 14px;
|
|
2939
|
-
border-radius: 50%;
|
|
2940
|
-
background: red;
|
|
2941
|
-
cursor: pointer;
|
|
2942
|
-
display: inline-flex;
|
|
2943
|
-
align-items: center;
|
|
2944
|
-
justify-content: center;
|
|
2945
|
-
color: white;
|
|
2946
|
-
vertical-align: middle;
|
|
2947
2943
|
font-size: 16px;
|
|
2948
2944
|
}
|
|
2945
|
+
.form-render__combinationContentJson {
|
|
2946
|
+
position: relative;
|
|
2947
|
+
}
|
|
2949
2948
|
.form-render__combinationContent {
|
|
2950
2949
|
position: relative;
|
|
2950
|
+
display: grid !important;
|
|
2951
|
+
grid-template-columns: repeat(var(--column), minmax(0px, 1fr));
|
|
2952
|
+
align-items: start;
|
|
2953
|
+
gap: 0 16px;
|
|
2951
2954
|
}
|
|
2952
2955
|
.form-render__complex {
|
|
2953
2956
|
width: 100%;
|
|
@@ -3248,7 +3251,7 @@ body > .vxe-table--tooltip-wrapper {
|
|
|
3248
3251
|
padding: 16px;
|
|
3249
3252
|
box-sizing: border-box;
|
|
3250
3253
|
flex-shrink: 0;
|
|
3251
|
-
width:
|
|
3254
|
+
width: 240px;
|
|
3252
3255
|
background: white;
|
|
3253
3256
|
}
|
|
3254
3257
|
.form-config__configHeader {
|
package/es/packages/index.js
CHANGED
|
@@ -46,12 +46,11 @@ export { useCommonLog } from './form-render/src/hooks/useCommonLog.js';
|
|
|
46
46
|
export { useFormField } from './form-render/src/hooks/useFormField.js';
|
|
47
47
|
export { AsyncQueue, useAsyncQueue } from './form-render/src/hooks/useAsyncQueue.js';
|
|
48
48
|
export { useFieldVisitor } from './form-render/src/hooks/useFieldVisitor.js';
|
|
49
|
-
export {
|
|
49
|
+
export { useFieldNormalize } from './form-render/src/hooks/useFieldNormalize.js';
|
|
50
50
|
export { useFormValidator } from './form-render/src/hooks/useFormValidator.js';
|
|
51
51
|
export { BusinessCollector, useBusinessBinding } from './form-render/src/hooks/useBusinessBinding.js';
|
|
52
52
|
export { ContextCollector, useChangeContext } from './form-render/src/hooks/useChangeContext.js';
|
|
53
53
|
export { FormItemDepsCollector, useFormItemDeps } from './form-render/src/hooks/useFormItemDeps.js';
|
|
54
|
-
export { useInitialData } from './form-render/src/hooks/useInitialData.js';
|
|
55
54
|
export { useAnchor } from './form-render/src/hooks/useAnchor.js';
|
|
56
55
|
export { useFormContext } from './form-render/src/hooks/useFormContext.js';
|
|
57
56
|
export { GlobalShortcutProvider, ShortcutManager, useShortcuts } from './shortcut-provider/src/hooks/useShortcuts.js';
|
|
@@ -88,6 +88,7 @@ class ShortcutManager {
|
|
|
88
88
|
const callback = this.shortcutCallbackMap.get(keySignature);
|
|
89
89
|
if (!callback)
|
|
90
90
|
return;
|
|
91
|
+
event.preventDefault();
|
|
91
92
|
const shortcutItem = Object.values(this.shortcutCache.value).find((item) => item.currentKeySignature === keySignature);
|
|
92
93
|
if (!shortcutItem || shortcutItem.status !== ShortcutStatus.ACTIVE || shortcutItem.disabled)
|
|
93
94
|
return;
|
|
@@ -122,6 +122,7 @@ declare const ShortcutSetter: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
122
122
|
content?: string | import("..").FormRenderer | Record<string, import("..").FormRenderer> | undefined;
|
|
123
123
|
lazyRequest?: boolean | undefined;
|
|
124
124
|
maxGroupNum?: number | undefined;
|
|
125
|
+
jsonCombination?: boolean | undefined;
|
|
125
126
|
children?: any[] | undefined;
|
|
126
127
|
properties?: any[] | undefined;
|
|
127
128
|
componentProps?: import("../../../es/src/types").AnyObject | undefined;
|
|
@@ -1807,7 +1808,7 @@ declare const ShortcutSetter: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
1807
1808
|
lifeCycle: {
|
|
1808
1809
|
type: import("vue").PropType<Partial<{
|
|
1809
1810
|
onSetup(): void;
|
|
1810
|
-
beforeRequest(fieldKey: string, params?: import("../../../es/src/types").AnyObject | undefined): void | import("../../../es/src/types").
|
|
1811
|
+
beforeRequest(fieldKey: string, params?: import("../../../es/src/types").AnyObject | undefined): void | import("../../../es/src/types").UndefinedAble<import("../../../es/src/types").AnyObject>;
|
|
1811
1812
|
afterRequest(fieldKey: string, payload?: any): import("../../../es/src/types").AnyObject[];
|
|
1812
1813
|
}>>;
|
|
1813
1814
|
};
|
|
@@ -1922,7 +1923,7 @@ declare const ShortcutSetter: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
1922
1923
|
lifeCycle: {
|
|
1923
1924
|
type: import("vue").PropType<Partial<{
|
|
1924
1925
|
onSetup(): void;
|
|
1925
|
-
beforeRequest(fieldKey: string, params?: import("../../../es/src/types").AnyObject | undefined): void | import("../../../es/src/types").
|
|
1926
|
+
beforeRequest(fieldKey: string, params?: import("../../../es/src/types").AnyObject | undefined): void | import("../../../es/src/types").UndefinedAble<import("../../../es/src/types").AnyObject>;
|
|
1926
1927
|
afterRequest(fieldKey: string, payload?: any): import("../../../es/src/types").AnyObject[];
|
|
1927
1928
|
}>>;
|
|
1928
1929
|
};
|
|
@@ -1931,7 +1932,9 @@ declare const ShortcutSetter: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
1931
1932
|
}>>;
|
|
1932
1933
|
emit: (event: "formChange", ...args: any[]) => void;
|
|
1933
1934
|
nuiThemeOverrides: import("naive-ui").GlobalThemeOverrides;
|
|
1934
|
-
formModel: import("@formily/core").Form<
|
|
1935
|
+
formModel: import("@formily/core").Form<{
|
|
1936
|
+
[x: string]: any;
|
|
1937
|
+
}>;
|
|
1935
1938
|
SchemaField: import("vue").Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>;
|
|
1936
1939
|
businessCollector: import("..").BusinessCollector;
|
|
1937
1940
|
formItemDepsCollector: import("..").FormItemDepsCollector;
|
|
@@ -3422,7 +3425,7 @@ declare const ShortcutSetter: SFCWithInstall<import("vue").DefineComponent<{
|
|
|
3422
3425
|
lifeCycle: {
|
|
3423
3426
|
type: import("vue").PropType<Partial<{
|
|
3424
3427
|
onSetup(): void;
|
|
3425
|
-
beforeRequest(fieldKey: string, params?: import("../../../es/src/types").AnyObject | undefined): void | import("../../../es/src/types").
|
|
3428
|
+
beforeRequest(fieldKey: string, params?: import("../../../es/src/types").AnyObject | undefined): void | import("../../../es/src/types").UndefinedAble<import("../../../es/src/types").AnyObject>;
|
|
3426
3429
|
afterRequest(fieldKey: string, payload?: any): import("../../../es/src/types").AnyObject[];
|
|
3427
3430
|
}>>;
|
|
3428
3431
|
};
|
|
@@ -124,6 +124,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
124
124
|
content?: string | import("../../../../es/packages/form-render").FormRenderer | Record<string, import("../../../../es/packages/form-render").FormRenderer> | undefined;
|
|
125
125
|
lazyRequest?: boolean | undefined;
|
|
126
126
|
maxGroupNum?: number | undefined;
|
|
127
|
+
jsonCombination?: boolean | undefined;
|
|
127
128
|
children?: any[] | undefined;
|
|
128
129
|
properties?: any[] | undefined;
|
|
129
130
|
componentProps?: import("../../../../es/src/types").AnyObject | undefined;
|
|
@@ -1809,7 +1810,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
1809
1810
|
lifeCycle: {
|
|
1810
1811
|
type: import("vue").PropType<Partial<{
|
|
1811
1812
|
onSetup(): void;
|
|
1812
|
-
beforeRequest(fieldKey: string, params?: import("../../../../es/src/types").AnyObject | undefined): void | import("../../../../es/src/types").
|
|
1813
|
+
beforeRequest(fieldKey: string, params?: import("../../../../es/src/types").AnyObject | undefined): void | import("../../../../es/src/types").UndefinedAble<import("../../../../es/src/types").AnyObject>;
|
|
1813
1814
|
afterRequest(fieldKey: string, payload?: any): import("../../../../es/src/types").AnyObject[];
|
|
1814
1815
|
}>>;
|
|
1815
1816
|
};
|
|
@@ -1924,7 +1925,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
1924
1925
|
lifeCycle: {
|
|
1925
1926
|
type: import("vue").PropType<Partial<{
|
|
1926
1927
|
onSetup(): void;
|
|
1927
|
-
beforeRequest(fieldKey: string, params?: import("../../../../es/src/types").AnyObject | undefined): void | import("../../../../es/src/types").
|
|
1928
|
+
beforeRequest(fieldKey: string, params?: import("../../../../es/src/types").AnyObject | undefined): void | import("../../../../es/src/types").UndefinedAble<import("../../../../es/src/types").AnyObject>;
|
|
1928
1929
|
afterRequest(fieldKey: string, payload?: any): import("../../../../es/src/types").AnyObject[];
|
|
1929
1930
|
}>>;
|
|
1930
1931
|
};
|
|
@@ -1933,7 +1934,9 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
1933
1934
|
}>>;
|
|
1934
1935
|
emit: (event: "formChange", ...args: any[]) => void;
|
|
1935
1936
|
nuiThemeOverrides: import("naive-ui").GlobalThemeOverrides;
|
|
1936
|
-
formModel: import("@formily/core").Form<
|
|
1937
|
+
formModel: import("@formily/core").Form<{
|
|
1938
|
+
[x: string]: any;
|
|
1939
|
+
}>;
|
|
1937
1940
|
SchemaField: Component<any, any, any, import("vue").ComputedOptions, import("vue").MethodOptions>;
|
|
1938
1941
|
businessCollector: import("../../../../es/packages/form-render").BusinessCollector;
|
|
1939
1942
|
formItemDepsCollector: import("../../../../es/packages/form-render").FormItemDepsCollector;
|
|
@@ -3424,7 +3427,7 @@ declare const _default: import("vue").DefineComponent<{
|
|
|
3424
3427
|
lifeCycle: {
|
|
3425
3428
|
type: import("vue").PropType<Partial<{
|
|
3426
3429
|
onSetup(): void;
|
|
3427
|
-
beforeRequest(fieldKey: string, params?: import("../../../../es/src/types").AnyObject | undefined): void | import("../../../../es/src/types").
|
|
3430
|
+
beforeRequest(fieldKey: string, params?: import("../../../../es/src/types").AnyObject | undefined): void | import("../../../../es/src/types").UndefinedAble<import("../../../../es/src/types").AnyObject>;
|
|
3428
3431
|
afterRequest(fieldKey: string, payload?: any): import("../../../../es/src/types").AnyObject[];
|
|
3429
3432
|
}>>;
|
|
3430
3433
|
};
|
package/es/src/types/index.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ export declare type SFCWithInstall<T> = T & {
|
|
|
4
4
|
};
|
|
5
5
|
export declare type AnyObject = Record<string, any>;
|
|
6
6
|
export declare type Func<T extends Array<any> = any[], P = any> = (...args: T) => P;
|
|
7
|
-
export declare type
|
|
8
|
-
export declare type
|
|
7
|
+
export declare type Nullable<T> = T | null | undefined;
|
|
8
|
+
export declare type UndefinedAble<T> = T | undefined;
|
|
9
9
|
export declare type ArrayAble<T> = T | T[];
|
|
10
10
|
export declare type MapValue<T> = T extends Map<any, infer P> ? P : any;
|
package/es/src/utils/index.d.ts
CHANGED
package/es/src/utils/index.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { isString } from 'lodash-es';
|
|
2
|
+
|
|
1
3
|
function safeComponentRegister(app, component, cName = component.name, scheduler) {
|
|
2
4
|
if (!cName)
|
|
3
5
|
throw new Error(`[CUI]: invalid component name for ${component}`);
|
|
@@ -11,5 +13,13 @@ function safeComponentRegister(app, component, cName = component.name, scheduler
|
|
|
11
13
|
app.component(cName, component);
|
|
12
14
|
}
|
|
13
15
|
}
|
|
16
|
+
function generateTimeFormat(format) {
|
|
17
|
+
if (!isString(format))
|
|
18
|
+
return;
|
|
19
|
+
const matched = format.match(/[Hms:]+/);
|
|
20
|
+
if (!matched)
|
|
21
|
+
return;
|
|
22
|
+
return matched[0];
|
|
23
|
+
}
|
|
14
24
|
|
|
15
|
-
export { safeComponentRegister };
|
|
25
|
+
export { generateTimeFormat, safeComponentRegister };
|