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.
Files changed (97) hide show
  1. package/CHANGELOG.md +90 -0
  2. package/es/packages/big-table/index.d.ts +3 -2
  3. package/es/packages/big-table/src/BigTable.vue.d.ts +3 -2
  4. package/es/packages/big-table/src/BigTable.vue_vue_type_script_setup_true_lang.mjs +44 -71
  5. package/es/packages/big-table/src/bigTableEmits2.mjs +2 -1
  6. package/es/packages/button-print/index.d.ts +51 -87
  7. package/es/packages/button-print/src/ButtonPrint.vue.d.ts +60 -87
  8. package/es/packages/button-print/src/ButtonPrint.vue_vue_type_script_setup_true_lang.mjs +27 -39
  9. package/es/packages/form-render/index.d.ts +281 -3
  10. package/es/packages/form-render/index.mjs +2 -0
  11. package/es/packages/form-render/index2.mjs +1 -0
  12. package/es/packages/form-render/src/FormRender.vue.d.ts +283 -5
  13. package/es/packages/form-render/src/FormRender.vue_vue_type_script_setup_true_lang.mjs +47 -23
  14. package/es/packages/form-render/src/components/cascader.d.ts +10 -2
  15. package/es/packages/form-render/src/components/cascader2.mjs +38 -20
  16. package/es/packages/form-render/src/components/combination2.mjs +2 -2
  17. package/es/packages/form-render/src/components/complex.d.ts +13 -0
  18. package/es/packages/form-render/src/components/complex.mjs +1 -0
  19. package/es/packages/form-render/src/components/complex2.mjs +31 -0
  20. package/es/packages/form-render/src/components/date.d.ts +6 -5037
  21. package/es/packages/form-render/src/components/date2.mjs +20 -3
  22. package/es/packages/form-render/src/components/index.d.ts +1 -0
  23. package/es/packages/form-render/src/components/index.mjs +1 -0
  24. package/es/packages/form-render/src/components/index2.mjs +1 -0
  25. package/es/packages/form-render/src/components/inputNumber.d.ts +4 -2182
  26. package/es/packages/form-render/src/components/inputNumber2.mjs +12 -1
  27. package/es/packages/form-render/src/components/select.d.ts +20 -4
  28. package/es/packages/form-render/src/components/select2.mjs +70 -30
  29. package/es/packages/form-render/src/components/switch.d.ts +3 -1
  30. package/es/packages/form-render/src/components/switch2.mjs +6 -7
  31. package/es/packages/form-render/src/constants/index.d.ts +8 -3
  32. package/es/packages/form-render/src/constants/index.mjs +1 -1
  33. package/es/packages/form-render/src/constants/index2.mjs +5 -1
  34. package/es/packages/form-render/src/hooks/index.d.ts +11 -9
  35. package/es/packages/form-render/src/hooks/index.mjs +2 -0
  36. package/es/packages/form-render/src/hooks/useAsyncQueue.d.ts +13 -33
  37. package/es/packages/form-render/src/hooks/useBusinessBinding.d.ts +7 -5
  38. package/es/packages/form-render/src/hooks/useBusinessBinding2.mjs +25 -13
  39. package/es/packages/form-render/src/hooks/useChangeContext.d.ts +11 -0
  40. package/es/packages/form-render/src/hooks/useChangeContext.mjs +1 -0
  41. package/es/packages/form-render/src/hooks/useChangeContext2.mjs +21 -0
  42. package/es/packages/form-render/src/hooks/useFieldList2Schema2.mjs +10 -1
  43. package/es/packages/form-render/src/hooks/useFormField.d.ts +1 -0
  44. package/es/packages/form-render/src/hooks/useFormField2.mjs +7 -1
  45. package/es/packages/form-render/src/hooks/useFormItemDeps.d.ts +8 -0
  46. package/es/packages/form-render/src/hooks/useFormItemDeps.mjs +1 -0
  47. package/es/packages/form-render/src/hooks/useFormItemDeps2.mjs +29 -0
  48. package/es/packages/form-render/src/hooks/useFormValidator2.mjs +1 -1
  49. package/es/packages/form-render/src/types/fieldItem.d.ts +2 -0
  50. package/es/packages/form-render/src/types/index.d.ts +16 -6
  51. package/es/packages/form-render/src/utils/index.d.ts +5 -3
  52. package/es/packages/form-render/src/utils/index.mjs +1 -1
  53. package/es/packages/form-render/src/utils/index2.mjs +13 -1
  54. package/es/packages/form-render/style/index.css +8 -0
  55. package/es/packages/form-render/style/index.less +8 -0
  56. package/es/packages/index.css +35 -23
  57. package/es/packages/index.d.ts +2 -2
  58. package/es/packages/index.less +25 -14
  59. package/es/packages/index.mjs +3 -1
  60. package/es/packages/index2.mjs +2 -2
  61. package/es/packages/info-header/index.d.ts +38 -18
  62. package/es/packages/info-header/src/HiddenContent.vue.d.ts +29 -13
  63. package/es/packages/info-header/src/HiddenContent.vue_vue_type_script_setup_true_lang.mjs +6 -4
  64. package/es/packages/info-header/src/InfoHeader.vue.d.ts +38 -18
  65. package/es/packages/info-header/src/InfoHeader.vue_vue_type_script_setup_true_lang.mjs +22 -10
  66. package/es/packages/info-header/style/index.css +0 -3
  67. package/es/packages/info-header/style/index.less +0 -4
  68. package/es/packages/scale-view/index.d.ts +13 -12
  69. package/es/packages/scale-view/src/ScaleView.vue.d.ts +13 -15
  70. package/es/packages/scale-view/src/ScaleView.vue_vue_type_script_setup_true_lang.mjs +11 -4
  71. package/es/packages/scale-view/src/components/formitem/r-address2.mjs +1 -1
  72. package/es/packages/scale-view/src/components/formitem/r-checkbox2.mjs +10 -4
  73. package/es/packages/scale-view/src/components/formitem/r-collection2.mjs +0 -1
  74. package/es/packages/scale-view/src/components/formitem/r-datetime2.mjs +20 -11
  75. package/es/packages/scale-view/src/components/formitem/r-input2.mjs +1 -1
  76. package/es/packages/scale-view/src/components/formitem/r-map2.mjs +2 -1
  77. package/es/packages/scale-view/src/components/formitem/r-radio2.mjs +10 -4
  78. package/es/packages/scale-view/src/components/formitem/r-select2.mjs +6 -1
  79. package/es/packages/scale-view/src/hooks/scaleview-computed2.mjs +11 -12
  80. package/es/packages/scale-view/src/hooks/scaleview-init2.mjs +4 -3
  81. package/es/packages/scale-view/src/hooks/scaleview-props.d.ts +3 -3
  82. package/es/packages/scale-view/src/hooks/scaleview-props2.mjs +3 -3
  83. package/es/packages/scale-view/src/hooks/scaleview-validate2.mjs +85 -64
  84. package/es/packages/scale-view/src/hooks/use-component.d.ts +10 -6
  85. package/es/packages/scale-view/src/hooks/use-component2.mjs +4 -4
  86. package/es/packages/scale-view/style/index.css +27 -20
  87. package/es/packages/scale-view/style/index.less +17 -10
  88. package/es/packages/select-label/index.d.ts +8 -4
  89. package/es/packages/select-label/src/SelectLabel.vue.d.ts +13 -15
  90. package/es/packages/select-label/src/SelectLabel.vue_vue_type_script_setup_true_lang.mjs +4 -4
  91. package/es/packages/select-person/src/SelectPerson.vue.d.ts +3 -4
  92. package/es/packages/select-person/src/SelectPerson.vue_vue_type_script_setup_true_lang.mjs +49 -33
  93. package/es/packages/select-person/src/utils/index.d.ts +4 -4
  94. package/es/packages/select-person/src/utils/index2.mjs +32 -5
  95. package/es/src/types/index.d.ts +1 -0
  96. package/package.json +132 -127
  97. 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 INPUT_NUMBER = connect(NInputNumber, mapProps(assignUpdateValue));
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 "../types";
3
- import { PropType } from "vue";
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
- }, () => 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<{
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, mergeProps } from 'vue';
2
- import { InjectAsyncQueue } from '../constants/index2.mjs';
3
- import { assignUpdateValue, formRenderLog } from '../utils/index2.mjs';
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
- attrs
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 && cachedOptions)
33
- return;
34
- lastSearch = content;
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.filter((option) => {
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[config.nameKey]) == null ? void 0 : _a.includes(content)) || !content) {
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
- return _options.value || props.options || [];
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
- watch(() => props.urlConfig, () => {
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(() => attrs.value, (n, o) => {
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
- return () => {
80
- var _a, _b, _c, _d;
81
- return createVNode(NSelect, mergeProps(attrs, {
82
- "remote": true,
83
- "filterable": true,
84
- "labelField": (_b = (_a = props.urlConfig) == null ? void 0 : _a.nameKey) != null ? _b : "text",
85
- "valueField": (_d = (_c = props.urlConfig) == null ? void 0 : _c.valueKey) != null ? _d : "value",
86
- "onSearch": fetchData,
87
- "onUpdate:show": (show) => show && fetchData(),
88
- "options": renderOptions.value
89
- }), slots);
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 "vue";
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, mergeProps, createTextVNode } from 'vue';
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, mergeProps(attrs, {
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 { BusinessCollector } from "../hooks";
2
- import { FormAsyncQueue } from "../types";
3
- import { Component, InjectionKey } from "vue";
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 "./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";
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 "../types";
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
- processor: Processor<T, R>;
40
- getKey: AsyncQueueOptions<T, K>["getKey"];
41
- parallelism: number;
42
- _queued: ArrayQueue<K>;
43
- _entries: Map<K, AsyncQueueEntry<K>>;
44
- _activeTasks: number;
45
- _processingLock: boolean;
46
- _stopped: boolean;
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(): void;
51
- _startProcess(entry: AsyncQueueEntry): void;
52
- _handlerResult(entry: AsyncQueueEntry, e?: any, r?: any): void;
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 "@formily/core";
2
- import { FIELD_BUSINESS_TYPE } from "../constants";
1
+ import { Form } from '@formily/core';
2
+ import { FIELD_BUSINESS_TYPE } from '../constants';
3
3
  export declare class BusinessCollector {
4
- typeCollector: Map<FIELD_BUSINESS_TYPE, Set<string>>;
5
- fieldNameCollector: Map<string, FIELD_BUSINESS_TYPE>;
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 = collector.getField(FIELD_BUSINESS_TYPE.AGE);
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
- const handlerMap = /* @__PURE__ */ new Map([[FIELD_BUSINESS_TYPE.ID_CARD, handlerIdCardType]]);
39
- function trigger(collector, formModel, fieldName, value) {
40
- const type = collector.fieldNameCollector.get(fieldName);
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, collector, value);
50
+ this.handlerMap.get(type)(formModel, value);
51
+ }
52
+ }
53
+ function useBusinessBinding() {
54
+ function create() {
55
+ return new BusinessCollector();
44
56
  }
45
- return { create, trigger };
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)
@@ -1,4 +1,5 @@
1
1
  export declare function useFormField(): {
2
2
  field: import("vue").Ref<import("@formily/core").GeneralField>;
3
3
  title: import("vue").ComputedRef<any>;
4
+ fieldKey: import("vue").ComputedRef<string>;
4
5
  };
@@ -3,7 +3,13 @@ import { computed } from 'vue';
3
3
 
4
4
  function useFormField() {
5
5
  const field = useField();
6
- return { field, title: computed(() => field.value.title) };
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 };