cnhis-design-vue 3.1.5-beta.10 → 3.1.5-beta.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +90 -0
- package/es/packages/big-table/index.d.ts +3 -2
- package/es/packages/big-table/src/BigTable.vue.d.ts +3 -2
- package/es/packages/big-table/src/BigTable.vue_vue_type_script_setup_true_lang.mjs +44 -71
- package/es/packages/big-table/src/bigTableEmits2.mjs +2 -1
- package/es/packages/button-print/index.d.ts +51 -87
- package/es/packages/button-print/src/ButtonPrint.vue.d.ts +60 -87
- package/es/packages/button-print/src/ButtonPrint.vue_vue_type_script_setup_true_lang.mjs +27 -39
- package/es/packages/form-render/index.d.ts +281 -3
- package/es/packages/form-render/index.mjs +2 -0
- package/es/packages/form-render/index2.mjs +1 -0
- package/es/packages/form-render/src/FormRender.vue.d.ts +283 -5
- package/es/packages/form-render/src/FormRender.vue_vue_type_script_setup_true_lang.mjs +47 -23
- package/es/packages/form-render/src/components/cascader.d.ts +10 -2
- package/es/packages/form-render/src/components/cascader2.mjs +38 -20
- package/es/packages/form-render/src/components/combination2.mjs +2 -2
- package/es/packages/form-render/src/components/complex.d.ts +13 -0
- package/es/packages/form-render/src/components/complex.mjs +1 -0
- package/es/packages/form-render/src/components/complex2.mjs +31 -0
- package/es/packages/form-render/src/components/date.d.ts +6 -5037
- package/es/packages/form-render/src/components/date2.mjs +20 -3
- package/es/packages/form-render/src/components/index.d.ts +1 -0
- package/es/packages/form-render/src/components/index.mjs +1 -0
- package/es/packages/form-render/src/components/index2.mjs +1 -0
- package/es/packages/form-render/src/components/inputNumber.d.ts +4 -2182
- package/es/packages/form-render/src/components/inputNumber2.mjs +12 -1
- package/es/packages/form-render/src/components/select.d.ts +20 -4
- package/es/packages/form-render/src/components/select2.mjs +70 -30
- package/es/packages/form-render/src/components/switch.d.ts +3 -1
- package/es/packages/form-render/src/components/switch2.mjs +6 -7
- package/es/packages/form-render/src/constants/index.d.ts +8 -3
- package/es/packages/form-render/src/constants/index.mjs +1 -1
- package/es/packages/form-render/src/constants/index2.mjs +5 -1
- package/es/packages/form-render/src/hooks/index.d.ts +11 -9
- package/es/packages/form-render/src/hooks/index.mjs +2 -0
- package/es/packages/form-render/src/hooks/useAsyncQueue.d.ts +13 -33
- package/es/packages/form-render/src/hooks/useBusinessBinding.d.ts +7 -5
- package/es/packages/form-render/src/hooks/useBusinessBinding2.mjs +25 -13
- package/es/packages/form-render/src/hooks/useChangeContext.d.ts +11 -0
- package/es/packages/form-render/src/hooks/useChangeContext.mjs +1 -0
- package/es/packages/form-render/src/hooks/useChangeContext2.mjs +21 -0
- package/es/packages/form-render/src/hooks/useFieldList2Schema2.mjs +10 -1
- package/es/packages/form-render/src/hooks/useFormField.d.ts +1 -0
- package/es/packages/form-render/src/hooks/useFormField2.mjs +7 -1
- package/es/packages/form-render/src/hooks/useFormItemDeps.d.ts +8 -0
- package/es/packages/form-render/src/hooks/useFormItemDeps.mjs +1 -0
- package/es/packages/form-render/src/hooks/useFormItemDeps2.mjs +29 -0
- package/es/packages/form-render/src/hooks/useFormValidator2.mjs +1 -1
- package/es/packages/form-render/src/types/fieldItem.d.ts +2 -0
- package/es/packages/form-render/src/types/index.d.ts +16 -6
- package/es/packages/form-render/src/utils/index.d.ts +5 -3
- package/es/packages/form-render/src/utils/index.mjs +1 -1
- package/es/packages/form-render/src/utils/index2.mjs +13 -1
- package/es/packages/form-render/style/index.css +8 -0
- package/es/packages/form-render/style/index.less +8 -0
- package/es/packages/index.css +35 -23
- package/es/packages/index.d.ts +2 -2
- package/es/packages/index.less +25 -14
- package/es/packages/index.mjs +3 -1
- package/es/packages/index2.mjs +2 -2
- package/es/packages/info-header/index.d.ts +38 -18
- package/es/packages/info-header/src/HiddenContent.vue.d.ts +29 -13
- package/es/packages/info-header/src/HiddenContent.vue_vue_type_script_setup_true_lang.mjs +6 -4
- package/es/packages/info-header/src/InfoHeader.vue.d.ts +38 -18
- package/es/packages/info-header/src/InfoHeader.vue_vue_type_script_setup_true_lang.mjs +22 -10
- package/es/packages/info-header/style/index.css +0 -3
- package/es/packages/info-header/style/index.less +0 -4
- package/es/packages/scale-view/index.d.ts +13 -12
- package/es/packages/scale-view/src/ScaleView.vue.d.ts +13 -15
- package/es/packages/scale-view/src/ScaleView.vue_vue_type_script_setup_true_lang.mjs +11 -4
- package/es/packages/scale-view/src/components/formitem/r-address2.mjs +1 -1
- package/es/packages/scale-view/src/components/formitem/r-checkbox2.mjs +10 -4
- package/es/packages/scale-view/src/components/formitem/r-collection2.mjs +0 -1
- package/es/packages/scale-view/src/components/formitem/r-datetime2.mjs +20 -11
- package/es/packages/scale-view/src/components/formitem/r-input2.mjs +1 -1
- package/es/packages/scale-view/src/components/formitem/r-map2.mjs +2 -1
- package/es/packages/scale-view/src/components/formitem/r-radio2.mjs +10 -4
- package/es/packages/scale-view/src/components/formitem/r-select2.mjs +6 -1
- package/es/packages/scale-view/src/hooks/scaleview-computed2.mjs +11 -12
- package/es/packages/scale-view/src/hooks/scaleview-init2.mjs +4 -3
- package/es/packages/scale-view/src/hooks/scaleview-props.d.ts +3 -3
- package/es/packages/scale-view/src/hooks/scaleview-props2.mjs +3 -3
- package/es/packages/scale-view/src/hooks/scaleview-validate2.mjs +85 -64
- package/es/packages/scale-view/src/hooks/use-component.d.ts +10 -6
- package/es/packages/scale-view/src/hooks/use-component2.mjs +4 -4
- package/es/packages/scale-view/style/index.css +27 -20
- package/es/packages/scale-view/style/index.less +17 -10
- package/es/packages/select-label/index.d.ts +8 -4
- package/es/packages/select-label/src/SelectLabel.vue.d.ts +13 -15
- package/es/packages/select-label/src/SelectLabel.vue_vue_type_script_setup_true_lang.mjs +4 -4
- package/es/packages/select-person/src/SelectPerson.vue.d.ts +3 -4
- package/es/packages/select-person/src/SelectPerson.vue_vue_type_script_setup_true_lang.mjs +49 -33
- package/es/packages/select-person/src/utils/index.d.ts +4 -4
- package/es/packages/select-person/src/utils/index2.mjs +32 -5
- package/es/src/types/index.d.ts +1 -0
- package/package.json +132 -127
- package/sync-w.sh +13 -0
|
@@ -1,7 +1,18 @@
|
|
|
1
|
+
import { defineComponent, createVNode } from 'vue';
|
|
1
2
|
import { assignUpdateValue } from '../utils/index2.mjs';
|
|
2
3
|
import { connect, mapProps } from '@formily/vue';
|
|
3
4
|
import { NInputNumber } from 'naive-ui';
|
|
4
5
|
|
|
5
|
-
const
|
|
6
|
+
const script = defineComponent({
|
|
7
|
+
props: {
|
|
8
|
+
onChange: {}
|
|
9
|
+
},
|
|
10
|
+
setup(_) {
|
|
11
|
+
return () => {
|
|
12
|
+
return createVNode(NInputNumber, null, null);
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
const INPUT_NUMBER = connect(script, mapProps(assignUpdateValue));
|
|
6
17
|
|
|
7
18
|
export { INPUT_NUMBER };
|
|
@@ -1,13 +1,18 @@
|
|
|
1
1
|
import { AnyObject } from 'cnhis-design-vue/es/src/types';
|
|
2
|
-
import { FormRequestType } from
|
|
3
|
-
import { PropType } from
|
|
2
|
+
import { FormRequestType } from '../types';
|
|
3
|
+
import { PropType } from 'vue';
|
|
4
4
|
declare type UrlConfig = {
|
|
5
5
|
method: FormRequestType;
|
|
6
|
+
dependKey?: string | string[];
|
|
6
7
|
nameKey: string;
|
|
7
8
|
url: string;
|
|
9
|
+
params?: AnyObject;
|
|
8
10
|
valueKey: string;
|
|
9
11
|
};
|
|
10
12
|
export declare const SELECT: import("vue").DefineComponent<{
|
|
13
|
+
value: {
|
|
14
|
+
type: StringConstructor;
|
|
15
|
+
};
|
|
11
16
|
options: {
|
|
12
17
|
type: PropType<AnyObject[]>;
|
|
13
18
|
default: () => never[];
|
|
@@ -15,7 +20,13 @@ export declare const SELECT: import("vue").DefineComponent<{
|
|
|
15
20
|
urlConfig: {
|
|
16
21
|
type: PropType<UrlConfig>;
|
|
17
22
|
};
|
|
18
|
-
|
|
23
|
+
onChange: {
|
|
24
|
+
type: FunctionConstructor;
|
|
25
|
+
};
|
|
26
|
+
}, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, "update:value"[], "update:value", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
27
|
+
value: {
|
|
28
|
+
type: StringConstructor;
|
|
29
|
+
};
|
|
19
30
|
options: {
|
|
20
31
|
type: PropType<AnyObject[]>;
|
|
21
32
|
default: () => never[];
|
|
@@ -23,7 +34,12 @@ export declare const SELECT: import("vue").DefineComponent<{
|
|
|
23
34
|
urlConfig: {
|
|
24
35
|
type: PropType<UrlConfig>;
|
|
25
36
|
};
|
|
26
|
-
|
|
37
|
+
onChange: {
|
|
38
|
+
type: FunctionConstructor;
|
|
39
|
+
};
|
|
40
|
+
}>> & {
|
|
41
|
+
"onUpdate:value"?: ((...args: any[]) => any) | undefined;
|
|
42
|
+
}, {
|
|
27
43
|
options: AnyObject[];
|
|
28
44
|
}>;
|
|
29
45
|
export {};
|
|
@@ -1,37 +1,56 @@
|
|
|
1
|
-
import { defineComponent, ref, inject, computed, watch, createVNode
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { defineComponent, ref, inject, computed, watch, createVNode } from 'vue';
|
|
2
|
+
import { cloneDeep } from 'lodash-es';
|
|
3
|
+
import { InjectAsyncQueue, InjectionFormItemDepsCollector, InjectionChangeContextCollector } from '../constants/index2.mjs';
|
|
4
|
+
import { assignUpdateValue, formRenderLog, generateUrlParams } from '../utils/index2.mjs';
|
|
4
5
|
import { isObject } from '@vueuse/core';
|
|
5
6
|
import { useFormField } from '../hooks/useFormField2.mjs';
|
|
7
|
+
import 'cnhis-design-vue/es/packages/form-render/src/utils';
|
|
6
8
|
import { connect, mapProps } from '@formily/vue';
|
|
7
9
|
import { NSelect } from 'naive-ui';
|
|
8
10
|
|
|
9
11
|
const script = defineComponent({
|
|
10
12
|
name: "FormSelect",
|
|
11
13
|
props: {
|
|
14
|
+
value: {
|
|
15
|
+
type: String
|
|
16
|
+
},
|
|
12
17
|
options: {
|
|
13
18
|
type: Array,
|
|
14
19
|
default: () => []
|
|
15
20
|
},
|
|
16
21
|
urlConfig: {
|
|
17
22
|
type: Object
|
|
23
|
+
},
|
|
24
|
+
onChange: {
|
|
25
|
+
type: Function
|
|
18
26
|
}
|
|
19
27
|
},
|
|
28
|
+
emits: ["update:value"],
|
|
20
29
|
setup(props, {
|
|
21
30
|
slots,
|
|
22
|
-
|
|
31
|
+
emit
|
|
23
32
|
}) {
|
|
24
33
|
const _options = ref(null);
|
|
25
34
|
let cachedOptions = null;
|
|
26
|
-
let lastSearch;
|
|
35
|
+
let lastSearch = ref("");
|
|
27
36
|
const asyncQueue = inject(InjectAsyncQueue);
|
|
28
37
|
const {
|
|
29
|
-
title
|
|
38
|
+
title,
|
|
39
|
+
field,
|
|
40
|
+
fieldKey
|
|
30
41
|
} = useFormField();
|
|
42
|
+
function filterOption(options, searchContent) {
|
|
43
|
+
return options.filter((option) => {
|
|
44
|
+
return !searchContent || String(option[labelKey.value]).includes(searchContent);
|
|
45
|
+
});
|
|
46
|
+
}
|
|
31
47
|
async function fetchData(content) {
|
|
32
|
-
if (content === lastSearch
|
|
33
|
-
|
|
34
|
-
|
|
48
|
+
if (content === lastSearch.value) {
|
|
49
|
+
if (cachedOptions)
|
|
50
|
+
return;
|
|
51
|
+
} else {
|
|
52
|
+
lastSearch.value = content || "";
|
|
53
|
+
}
|
|
35
54
|
const config = props.urlConfig;
|
|
36
55
|
if (!config) {
|
|
37
56
|
return cachedOptions = _options.value = null;
|
|
@@ -41,19 +60,17 @@ const script = defineComponent({
|
|
|
41
60
|
return cachedOptions = _options.value = null;
|
|
42
61
|
}
|
|
43
62
|
if (cachedOptions) {
|
|
44
|
-
return _options.value = cachedOptions
|
|
45
|
-
var _a;
|
|
46
|
-
return !content || ((_a = option[config.nameKey]) == null ? void 0 : _a.includes(content));
|
|
47
|
-
});
|
|
63
|
+
return _options.value = filterOption(cachedOptions, content);
|
|
48
64
|
}
|
|
49
65
|
try {
|
|
50
66
|
const data = await asyncQueue.addAsync({
|
|
51
67
|
...config,
|
|
52
|
-
key: title.value
|
|
68
|
+
key: title.value,
|
|
69
|
+
params: Object.assign({}, config.params, generateUrlParams(field.value, config.dependKey))
|
|
53
70
|
});
|
|
54
71
|
_options.value = data.reduce((res, d) => {
|
|
55
72
|
var _a;
|
|
56
|
-
if (((_a = d[
|
|
73
|
+
if (((_a = d[labelKey.value]) == null ? void 0 : _a.includes(content)) || !content) {
|
|
57
74
|
res.push(d);
|
|
58
75
|
}
|
|
59
76
|
return res;
|
|
@@ -64,30 +81,53 @@ const script = defineComponent({
|
|
|
64
81
|
}
|
|
65
82
|
}
|
|
66
83
|
const renderOptions = computed(() => {
|
|
67
|
-
|
|
84
|
+
if (_options.value)
|
|
85
|
+
return _options.value;
|
|
86
|
+
if (!Array.isArray(props.options))
|
|
87
|
+
return [];
|
|
88
|
+
return filterOption(props.options, lastSearch.value);
|
|
68
89
|
});
|
|
69
|
-
|
|
90
|
+
const formItemDepsCollector = inject(InjectionFormItemDepsCollector);
|
|
91
|
+
watch(() => props.urlConfig, (config) => {
|
|
70
92
|
cachedOptions = null;
|
|
93
|
+
config && formItemDepsCollector.setDeps(fieldKey.value, config.dependKey || [], () => {
|
|
94
|
+
cachedOptions = null;
|
|
95
|
+
props.value && fetchData();
|
|
96
|
+
});
|
|
97
|
+
}, {
|
|
98
|
+
immediate: true
|
|
71
99
|
});
|
|
72
|
-
watch(() =>
|
|
100
|
+
watch(() => props.value, (n, o) => {
|
|
73
101
|
if (o == null && n != null) {
|
|
74
102
|
fetchData();
|
|
75
103
|
}
|
|
76
104
|
}, {
|
|
77
105
|
immediate: true
|
|
78
106
|
});
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
107
|
+
const changeContextCollector = inject(InjectionChangeContextCollector);
|
|
108
|
+
function update(v, option) {
|
|
109
|
+
changeContextCollector == null ? void 0 : changeContextCollector.setContext(fieldKey.value, "currentOption", cloneDeep(option));
|
|
110
|
+
emit("update:value", v);
|
|
111
|
+
}
|
|
112
|
+
const labelKey = computed(() => {
|
|
113
|
+
var _a, _b;
|
|
114
|
+
return (_b = (_a = props.urlConfig) == null ? void 0 : _a.nameKey) != null ? _b : "text";
|
|
115
|
+
});
|
|
116
|
+
const valueKey = computed(() => {
|
|
117
|
+
var _a, _b;
|
|
118
|
+
return (_b = (_a = props.urlConfig) == null ? void 0 : _a.valueKey) != null ? _b : "value";
|
|
119
|
+
});
|
|
120
|
+
return () => createVNode(NSelect, {
|
|
121
|
+
"value": props.value,
|
|
122
|
+
"onUpdate:value": update,
|
|
123
|
+
"remote": true,
|
|
124
|
+
"filterable": true,
|
|
125
|
+
"labelField": labelKey.value,
|
|
126
|
+
"valueField": valueKey.value,
|
|
127
|
+
"onSearch": fetchData,
|
|
128
|
+
"onUpdate:show": (show) => show && fetchData(),
|
|
129
|
+
"options": renderOptions.value
|
|
130
|
+
}, slots);
|
|
91
131
|
}
|
|
92
132
|
});
|
|
93
133
|
const SELECT = connect(script, mapProps({
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PropType } from
|
|
1
|
+
import { PropType } from 'vue';
|
|
2
2
|
interface Description {
|
|
3
3
|
value: string;
|
|
4
4
|
describe: string;
|
|
@@ -10,6 +10,7 @@ export declare const SWITCH: import("vue").DefineComponent<{
|
|
|
10
10
|
closeDescription: {
|
|
11
11
|
type: PropType<Description>;
|
|
12
12
|
};
|
|
13
|
+
onChange: {};
|
|
13
14
|
}, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, Record<string, any>, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
14
15
|
openDescription: {
|
|
15
16
|
type: PropType<Description>;
|
|
@@ -17,5 +18,6 @@ export declare const SWITCH: import("vue").DefineComponent<{
|
|
|
17
18
|
closeDescription: {
|
|
18
19
|
type: PropType<Description>;
|
|
19
20
|
};
|
|
21
|
+
onChange: {};
|
|
20
22
|
}>>, {}>;
|
|
21
23
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent, computed, createVNode,
|
|
1
|
+
import { defineComponent, computed, createVNode, createTextVNode } from 'vue';
|
|
2
2
|
import { NSwitch } from 'naive-ui';
|
|
3
3
|
import { assignUpdateValue } from '../utils/index2.mjs';
|
|
4
4
|
import { connect, mapProps } from '@formily/vue';
|
|
@@ -11,11 +11,10 @@ const script = defineComponent({
|
|
|
11
11
|
},
|
|
12
12
|
closeDescription: {
|
|
13
13
|
type: Object
|
|
14
|
-
}
|
|
14
|
+
},
|
|
15
|
+
onChange: {}
|
|
15
16
|
},
|
|
16
|
-
setup(props
|
|
17
|
-
attrs
|
|
18
|
-
}) {
|
|
17
|
+
setup(props) {
|
|
19
18
|
return () => {
|
|
20
19
|
const checkedValue = computed(() => {
|
|
21
20
|
var _a, _b;
|
|
@@ -33,10 +32,10 @@ const script = defineComponent({
|
|
|
33
32
|
var _a, _b;
|
|
34
33
|
return createTextVNode((_b = (_a = props.closeDescription) == null ? void 0 : _a.describe) != null ? _b : "");
|
|
35
34
|
};
|
|
36
|
-
return createVNode(NSwitch,
|
|
35
|
+
return createVNode(NSwitch, {
|
|
37
36
|
"checkedValue": checkedValue.value,
|
|
38
37
|
"uncheckedValue": uncheckedValue.value
|
|
39
|
-
}
|
|
38
|
+
}, {
|
|
40
39
|
checked,
|
|
41
40
|
unchecked
|
|
42
41
|
});
|
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { ContextCollector } from 'cnhis-design-vue/es/packages/form-render/src/hooks/useChangeContext';
|
|
2
|
+
import { BusinessCollector, FormItemDepsCollector } from '../hooks';
|
|
3
|
+
import { FormAsyncQueue } from '../types';
|
|
4
|
+
import { Component, InjectionKey } from 'vue';
|
|
4
5
|
export declare const InjectAsyncQueue: InjectionKey<FormAsyncQueue>;
|
|
5
6
|
export declare const InjectionSchemaField: InjectionKey<Component>;
|
|
6
7
|
export declare const InjectionBusinessCollector: InjectionKey<BusinessCollector>;
|
|
8
|
+
export declare const InjectionChangeContextCollector: InjectionKey<ContextCollector>;
|
|
9
|
+
export declare const InjectionFormItemDepsCollector: InjectionKey<FormItemDepsCollector>;
|
|
7
10
|
export declare enum FIELD_BUSINESS_TYPE {
|
|
8
11
|
PASSWORD = "password",
|
|
9
12
|
ID_CARD = "id_card",
|
|
@@ -11,6 +14,8 @@ export declare enum FIELD_BUSINESS_TYPE {
|
|
|
11
14
|
MOBILE = "mobile",
|
|
12
15
|
TELEPHONE = "telephone",
|
|
13
16
|
EMAIL = "email",
|
|
17
|
+
SEX = "sex",
|
|
18
|
+
BIRTHDAY = "birthday",
|
|
14
19
|
BANK_CARD = "bank_card",
|
|
15
20
|
WEBSITE = "website",
|
|
16
21
|
GESTATIONAL_WEEKS = "gestational_weeks",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { FIELD_BUSINESS_TYPE, FIELD_SEX_VALUE, InjectAsyncQueue, InjectionBusinessCollector, InjectionSchemaField } from './index2.mjs';
|
|
1
|
+
export { FIELD_BUSINESS_TYPE, FIELD_SEX_VALUE, InjectAsyncQueue, InjectionBusinessCollector, InjectionChangeContextCollector, InjectionFormItemDepsCollector, InjectionSchemaField } from './index2.mjs';
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
const InjectAsyncQueue = Symbol("InjectAsyncQueue");
|
|
2
2
|
const InjectionSchemaField = Symbol("InjectionSchemaField");
|
|
3
3
|
const InjectionBusinessCollector = Symbol("InjectionBusinessCollector");
|
|
4
|
+
const InjectionChangeContextCollector = Symbol("InjectionChangeContextCollector");
|
|
5
|
+
const InjectionFormItemDepsCollector = Symbol("InjectionFormItemDepsCollector");
|
|
4
6
|
var FIELD_BUSINESS_TYPE = /* @__PURE__ */ ((FIELD_BUSINESS_TYPE2) => {
|
|
5
7
|
FIELD_BUSINESS_TYPE2["PASSWORD"] = "password";
|
|
6
8
|
FIELD_BUSINESS_TYPE2["ID_CARD"] = "id_card";
|
|
@@ -8,6 +10,8 @@ var FIELD_BUSINESS_TYPE = /* @__PURE__ */ ((FIELD_BUSINESS_TYPE2) => {
|
|
|
8
10
|
FIELD_BUSINESS_TYPE2["MOBILE"] = "mobile";
|
|
9
11
|
FIELD_BUSINESS_TYPE2["TELEPHONE"] = "telephone";
|
|
10
12
|
FIELD_BUSINESS_TYPE2["EMAIL"] = "email";
|
|
13
|
+
FIELD_BUSINESS_TYPE2["SEX"] = "sex";
|
|
14
|
+
FIELD_BUSINESS_TYPE2["BIRTHDAY"] = "birthday";
|
|
11
15
|
FIELD_BUSINESS_TYPE2["BANK_CARD"] = "bank_card";
|
|
12
16
|
FIELD_BUSINESS_TYPE2["WEBSITE"] = "website";
|
|
13
17
|
FIELD_BUSINESS_TYPE2["GESTATIONAL_WEEKS"] = "gestational_weeks";
|
|
@@ -21,4 +25,4 @@ var FIELD_SEX_VALUE = /* @__PURE__ */ ((FIELD_SEX_VALUE2) => {
|
|
|
21
25
|
return FIELD_SEX_VALUE2;
|
|
22
26
|
})(FIELD_SEX_VALUE || {});
|
|
23
27
|
|
|
24
|
-
export { FIELD_BUSINESS_TYPE, FIELD_SEX_VALUE, InjectAsyncQueue, InjectionBusinessCollector, InjectionSchemaField };
|
|
28
|
+
export { FIELD_BUSINESS_TYPE, FIELD_SEX_VALUE, InjectAsyncQueue, InjectionBusinessCollector, InjectionChangeContextCollector, InjectionFormItemDepsCollector, InjectionSchemaField };
|
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
export * from
|
|
2
|
-
export * from
|
|
3
|
-
export * from
|
|
4
|
-
export * from
|
|
5
|
-
export * from
|
|
6
|
-
export * from
|
|
7
|
-
export * from
|
|
8
|
-
export * from
|
|
9
|
-
export * from
|
|
1
|
+
export * from './useFieldList2Schema';
|
|
2
|
+
export * from './useFormRequest';
|
|
3
|
+
export * from './useCommonLog';
|
|
4
|
+
export * from './useFormField';
|
|
5
|
+
export * from './useAsyncQueue';
|
|
6
|
+
export * from './useFieldVisitor';
|
|
7
|
+
export * from './useTypeNormalize';
|
|
8
|
+
export * from './useFormValidator';
|
|
9
|
+
export * from './useBusinessBinding';
|
|
10
|
+
export * from './useChangeContext';
|
|
11
|
+
export * from './useFormItemDeps';
|
|
@@ -7,3 +7,5 @@ export { useFieldVisitor } from './useFieldVisitor2.mjs';
|
|
|
7
7
|
export { useTypeNormalize } from './useTypeNormalize2.mjs';
|
|
8
8
|
export { useFormValidator } from './useFormValidator2.mjs';
|
|
9
9
|
export { BusinessCollector, useBusinessBinding } from './useBusinessBinding2.mjs';
|
|
10
|
+
export { ContextCollector, useChangeContext } from './useChangeContext2.mjs';
|
|
11
|
+
export { FormItemDepsCollector, useFormItemDeps } from './useFormItemDeps2.mjs';
|
|
@@ -1,27 +1,7 @@
|
|
|
1
|
-
import { FormAsyncQueueItem } from
|
|
2
|
-
declare enum ENTRY_STATE {
|
|
3
|
-
PENDING = 0,
|
|
4
|
-
DONE = 1
|
|
5
|
-
}
|
|
1
|
+
import { FormAsyncQueueItem } from '../types';
|
|
6
2
|
interface EntryCallback {
|
|
7
3
|
(err?: any, result?: any): void;
|
|
8
4
|
}
|
|
9
|
-
declare class AsyncQueueEntry<K = any> {
|
|
10
|
-
key: K;
|
|
11
|
-
item: any;
|
|
12
|
-
state: ENTRY_STATE;
|
|
13
|
-
callback?: EntryCallback;
|
|
14
|
-
callbacks?: EntryCallback[];
|
|
15
|
-
result?: any;
|
|
16
|
-
error?: any;
|
|
17
|
-
constructor(item: any, key: K, callback: EntryCallback);
|
|
18
|
-
}
|
|
19
|
-
declare class ArrayQueue<K = any> {
|
|
20
|
-
_list: AsyncQueueEntry<K>[];
|
|
21
|
-
constructor(items?: AsyncQueueEntry<K>[]);
|
|
22
|
-
enqueue(item: AsyncQueueEntry<K>): void;
|
|
23
|
-
dequeue(): AsyncQueueEntry<K> | undefined;
|
|
24
|
-
}
|
|
25
5
|
interface Processor<T, R = any> {
|
|
26
6
|
(item: T, cb: (err?: any, result?: R) => void, removeCache: () => void): void;
|
|
27
7
|
}
|
|
@@ -35,21 +15,21 @@ interface AsyncQueueOptions<T = any, K = any> {
|
|
|
35
15
|
* @constructor 并发控制器
|
|
36
16
|
*/
|
|
37
17
|
export declare class AsyncQueue<T = any, K = any, R = any> {
|
|
38
|
-
name: string;
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
parallelism
|
|
42
|
-
_queued
|
|
43
|
-
|
|
44
|
-
_activeTasks
|
|
45
|
-
_processingLock
|
|
46
|
-
_stopped
|
|
18
|
+
readonly name: string;
|
|
19
|
+
private readonly processor;
|
|
20
|
+
private readonly getKey;
|
|
21
|
+
private readonly parallelism;
|
|
22
|
+
private readonly _queued;
|
|
23
|
+
private readonly _entries;
|
|
24
|
+
private _activeTasks;
|
|
25
|
+
private _processingLock;
|
|
26
|
+
private _stopped;
|
|
47
27
|
constructor({ name, processor, getKey, parallelism }: AsyncQueueOptions<T>);
|
|
48
28
|
add(item: T, callback: EntryCallback): void;
|
|
49
29
|
addAsync(item: T): Promise<R>;
|
|
50
|
-
_ensureProcessing
|
|
51
|
-
_startProcess
|
|
52
|
-
_handlerResult
|
|
30
|
+
private _ensureProcessing;
|
|
31
|
+
private _startProcess;
|
|
32
|
+
private _handlerResult;
|
|
53
33
|
}
|
|
54
34
|
export declare function useAsyncQueue(): {
|
|
55
35
|
create: (parallelism?: number) => AsyncQueue<FormAsyncQueueItem, any, {
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import { Form } from
|
|
2
|
-
import { FIELD_BUSINESS_TYPE } from
|
|
1
|
+
import { Form } from '@formily/core';
|
|
2
|
+
import { FIELD_BUSINESS_TYPE } from '../constants';
|
|
3
3
|
export declare class BusinessCollector {
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
private readonly typeCollector;
|
|
5
|
+
private readonly fieldNameCollector;
|
|
6
6
|
collect(type: FIELD_BUSINESS_TYPE, fieldName: string): void;
|
|
7
7
|
getField(type: FIELD_BUSINESS_TYPE): string[];
|
|
8
8
|
getType(fieldName: string): FIELD_BUSINESS_TYPE | undefined;
|
|
9
|
+
handlerIdCardType(formModel: Form, value: unknown): void;
|
|
10
|
+
handlerMap: Map<FIELD_BUSINESS_TYPE, (formModel: Form, value: unknown) => void>;
|
|
11
|
+
trigger(formModel: Form, fieldName: string, value: unknown): void;
|
|
9
12
|
}
|
|
10
13
|
export declare function useBusinessBinding(): {
|
|
11
14
|
create: () => BusinessCollector;
|
|
12
|
-
trigger: (collector: BusinessCollector, formModel: Form, fieldName: string, value: unknown) => void;
|
|
13
15
|
};
|
|
@@ -6,6 +6,7 @@ class BusinessCollector {
|
|
|
6
6
|
constructor() {
|
|
7
7
|
this.typeCollector = /* @__PURE__ */ new Map();
|
|
8
8
|
this.fieldNameCollector = /* @__PURE__ */ new Map();
|
|
9
|
+
this.handlerMap = /* @__PURE__ */ new Map([[FIELD_BUSINESS_TYPE.ID_CARD, this.handlerIdCardType.bind(this)]]);
|
|
9
10
|
}
|
|
10
11
|
collect(type, fieldName) {
|
|
11
12
|
const set = this.typeCollector.get(type) || /* @__PURE__ */ new Set();
|
|
@@ -19,30 +20,41 @@ class BusinessCollector {
|
|
|
19
20
|
getType(fieldName) {
|
|
20
21
|
return this.fieldNameCollector.get(fieldName);
|
|
21
22
|
}
|
|
22
|
-
|
|
23
|
-
function useBusinessBinding() {
|
|
24
|
-
function create() {
|
|
25
|
-
return new BusinessCollector();
|
|
26
|
-
}
|
|
27
|
-
function handlerIdCardType(formModel, collector, value) {
|
|
23
|
+
handlerIdCardType(formModel, value) {
|
|
28
24
|
if (!value || !isString(value) || !isIdCard(value))
|
|
29
25
|
return;
|
|
30
26
|
const info = parseIdCard(value);
|
|
31
|
-
const ageFields =
|
|
27
|
+
const ageFields = this.getField(FIELD_BUSINESS_TYPE.AGE);
|
|
32
28
|
ageFields.forEach((field) => {
|
|
33
29
|
formModel.setFieldState(field, (state) => {
|
|
34
30
|
state.value = info.age;
|
|
35
31
|
});
|
|
36
32
|
});
|
|
33
|
+
const sexFields = this.getField(FIELD_BUSINESS_TYPE.SEX);
|
|
34
|
+
sexFields.forEach((field) => {
|
|
35
|
+
formModel.setFieldState(field, (state) => {
|
|
36
|
+
state.value = info.sex;
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
const birthdayFields = this.getField(FIELD_BUSINESS_TYPE.BIRTHDAY);
|
|
40
|
+
birthdayFields.forEach((field) => {
|
|
41
|
+
formModel.setFieldState(field, (state) => {
|
|
42
|
+
state.value = info.birthday;
|
|
43
|
+
});
|
|
44
|
+
});
|
|
37
45
|
}
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
if (!type || !handlerMap.has(type))
|
|
46
|
+
trigger(formModel, fieldName, value) {
|
|
47
|
+
const type = this.getType(fieldName);
|
|
48
|
+
if (!type || !this.handlerMap.has(type))
|
|
42
49
|
return;
|
|
43
|
-
handlerMap.get(type)(formModel,
|
|
50
|
+
this.handlerMap.get(type)(formModel, value);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
function useBusinessBinding() {
|
|
54
|
+
function create() {
|
|
55
|
+
return new BusinessCollector();
|
|
44
56
|
}
|
|
45
|
-
return { create
|
|
57
|
+
return { create };
|
|
46
58
|
}
|
|
47
59
|
|
|
48
60
|
export { BusinessCollector, useBusinessBinding };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { FormChangeContext } from 'cnhis-design-vue/es/packages/form-render';
|
|
2
|
+
export declare class ContextCollector {
|
|
3
|
+
private readonly contextMap;
|
|
4
|
+
setContext(key: string, prop: keyof FormChangeContext, value: any): void;
|
|
5
|
+
getContext(key: string): Partial<{
|
|
6
|
+
currentOption: import("../../../../src/types").AnyObject;
|
|
7
|
+
}>;
|
|
8
|
+
}
|
|
9
|
+
export declare function useChangeContext(): {
|
|
10
|
+
create: () => ContextCollector;
|
|
11
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { ContextCollector, useChangeContext } from './useChangeContext2.mjs';
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
class ContextCollector {
|
|
2
|
+
constructor() {
|
|
3
|
+
this.contextMap = /* @__PURE__ */ new Map();
|
|
4
|
+
}
|
|
5
|
+
setContext(key, prop, value) {
|
|
6
|
+
const context = this.contextMap.get(key) || {};
|
|
7
|
+
Reflect.set(context, prop, value);
|
|
8
|
+
this.contextMap.set(key, context);
|
|
9
|
+
}
|
|
10
|
+
getContext(key) {
|
|
11
|
+
return this.contextMap.get(key) || {};
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
function useChangeContext() {
|
|
15
|
+
function create() {
|
|
16
|
+
return new ContextCollector();
|
|
17
|
+
}
|
|
18
|
+
return { create };
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export { ContextCollector, useChangeContext };
|
|
@@ -109,6 +109,7 @@ function useFieldList2Schema(collector) {
|
|
|
109
109
|
};
|
|
110
110
|
const createCustomSchema = (item) => {
|
|
111
111
|
const schema = createStandardSchema(item);
|
|
112
|
+
item.fieldType && (schema.type = item.fieldType);
|
|
112
113
|
Object.assign(schema["x-component-props"], {
|
|
113
114
|
fieldItem: item
|
|
114
115
|
});
|
|
@@ -126,6 +127,13 @@ function useFieldList2Schema(collector) {
|
|
|
126
127
|
}
|
|
127
128
|
};
|
|
128
129
|
};
|
|
130
|
+
const createComplexSchema = (item) => {
|
|
131
|
+
const schema = createStandardSchema(item);
|
|
132
|
+
const properties = Array.isArray(item.properties) ? transform(item.properties) : {};
|
|
133
|
+
schema.type = item.fieldType || "void";
|
|
134
|
+
schema.properties = properties;
|
|
135
|
+
return schema;
|
|
136
|
+
};
|
|
129
137
|
const creatorMap = /* @__PURE__ */ new Map([
|
|
130
138
|
["LINEBAR", createCollapseSchema],
|
|
131
139
|
["INPUT", createInputSchema],
|
|
@@ -137,7 +145,8 @@ function useFieldList2Schema(collector) {
|
|
|
137
145
|
["RADIO", createRadioSchema],
|
|
138
146
|
["CHECKBOX", createRadioSchema],
|
|
139
147
|
["SWITCH", createSwitchSchema],
|
|
140
|
-
["SLIDER", createSliderSchema]
|
|
148
|
+
["SLIDER", createSliderSchema],
|
|
149
|
+
["COMPLEX", createComplexSchema]
|
|
141
150
|
]);
|
|
142
151
|
const createWidgetSchema = (item) => {
|
|
143
152
|
if (item.suffixConfig)
|
|
@@ -3,7 +3,13 @@ import { computed } from 'vue';
|
|
|
3
3
|
|
|
4
4
|
function useFormField() {
|
|
5
5
|
const field = useField();
|
|
6
|
-
return {
|
|
6
|
+
return {
|
|
7
|
+
field,
|
|
8
|
+
title: computed(() => field.value.title),
|
|
9
|
+
fieldKey: computed(() => {
|
|
10
|
+
return field.value.props.name.toString();
|
|
11
|
+
})
|
|
12
|
+
};
|
|
7
13
|
}
|
|
8
14
|
|
|
9
15
|
export { useFormField };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export declare class FormItemDepsCollector {
|
|
2
|
+
private readonly collector;
|
|
3
|
+
setDeps(key: string, dependKey: string | string[], callback: Function): void;
|
|
4
|
+
trigger(dependKey: string): void;
|
|
5
|
+
}
|
|
6
|
+
export declare function useFormItemDeps(): {
|
|
7
|
+
create: () => FormItemDepsCollector;
|
|
8
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { FormItemDepsCollector, useFormItemDeps } from './useFormItemDeps2.mjs';
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { arrayed } from 'cnhis-design-vue/es/packages/form-render/src/utils';
|
|
2
|
+
|
|
3
|
+
class FormItemDepsCollector {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.collector = /* @__PURE__ */ new Map();
|
|
6
|
+
}
|
|
7
|
+
setDeps(key, dependKey, callback) {
|
|
8
|
+
dependKey = arrayed(dependKey);
|
|
9
|
+
dependKey.forEach((dependKey2) => {
|
|
10
|
+
const map = this.collector.get(dependKey2) || /* @__PURE__ */ new Map();
|
|
11
|
+
map.set(key, callback);
|
|
12
|
+
this.collector.set(dependKey2, map);
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
trigger(dependKey) {
|
|
16
|
+
const map = this.collector.get(dependKey);
|
|
17
|
+
map && map.forEach((cb) => {
|
|
18
|
+
typeof cb === "function" && cb();
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
function useFormItemDeps() {
|
|
23
|
+
function create() {
|
|
24
|
+
return new FormItemDepsCollector();
|
|
25
|
+
}
|
|
26
|
+
return { create };
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export { FormItemDepsCollector, useFormItemDeps };
|