cnhis-design-vue 3.1.16-beta.7 → 3.1.16

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 (77) hide show
  1. package/es/packages/big-table/index.d.ts +1 -1
  2. package/es/packages/big-table/src/BigTable.vue.d.ts +3 -19
  3. package/es/packages/big-table/src/BigTable.vue_vue_type_script_setup_true_lang.js +6 -4
  4. package/es/packages/big-table/src/components/edit-form/edit-date.js +13 -3
  5. package/es/packages/big-table/src/components/edit-form/edit-time.js +1 -0
  6. package/es/packages/big-table/src/hooks/useAnchor.d.ts +1 -1
  7. package/es/packages/big-table/src/hooks/useAnchor.js +20 -12
  8. package/es/packages/big-table/src/hooks/useSeparateRow.js +5 -2
  9. package/es/packages/button-print/index.d.ts +4 -1
  10. package/es/packages/button-print/src/ButtonPrint.vue.d.ts +4 -1
  11. package/es/packages/button-print/src/ButtonPrint.vue_vue_type_script_setup_true_lang.js +2 -1
  12. package/es/packages/button-print/src/components/IdentityVerification.js +5 -7
  13. package/es/packages/button-print/src/components/IdentityVerification.vue.d.ts +4 -1
  14. package/es/packages/fabric-chart/src/FabricChart.js +1 -1
  15. package/es/packages/fabric-chart/src/components/PopupTip.js +2 -2
  16. package/es/packages/fabric-chart/src/hooks/constant.js +5 -5
  17. package/es/packages/fabric-chart/src/hooks/useCenter.js +31 -25
  18. package/es/packages/fabric-chart/src/hooks/useDraw.js +11 -4
  19. package/es/packages/fabric-chart/src/hooks/useEvent.js +11 -3
  20. package/es/packages/fabric-chart/src/hooks/useOther.js +63 -13
  21. package/es/packages/fabric-chart/src/hooks/useTop.js +5 -8
  22. package/es/packages/form-config/index.d.ts +89 -3337
  23. package/es/packages/form-config/src/FormConfig.js +42 -34
  24. package/es/packages/form-config/src/FormConfig.vue.d.ts +132 -3380
  25. package/es/packages/form-config/src/components/FormConfigCreator.js +13 -11
  26. package/es/packages/form-config/src/components/FormConfigCreator.vue.d.ts +13 -8
  27. package/es/packages/form-config/src/components/FormConfigEdit.js +1 -1
  28. package/es/packages/form-config/src/components/FormConfigEdit.vue.d.ts +64 -33
  29. package/es/packages/form-config/src/constants/index.d.ts +20 -20
  30. package/es/packages/form-config/src/constants/index.js +27 -36
  31. package/es/packages/form-config/src/hooks/useConfigurationField.d.ts +2 -1
  32. package/es/packages/form-config/src/hooks/useConfigurationField.js +28 -42
  33. package/es/packages/form-config/src/hooks/usePresetRenderer.d.ts +2 -3
  34. package/es/packages/form-config/src/hooks/usePresetRenderer.js +16 -19
  35. package/es/packages/form-config/src/hooks/useSortable.js +1 -1
  36. package/es/packages/form-config/src/types/index.d.ts +22 -4
  37. package/es/packages/form-config/src/utils/index.d.ts +2 -0
  38. package/es/packages/form-config/src/utils/index.js +15 -0
  39. package/es/packages/form-config/style/index.css +27 -3
  40. package/es/packages/form-render/index.d.ts +3 -1
  41. package/es/packages/form-render/index.js +0 -1
  42. package/es/packages/form-render/src/FormRender.js +7 -8
  43. package/es/packages/form-render/src/FormRender.vue.d.ts +3 -1
  44. package/es/packages/form-render/src/components/renderer/cascader.d.ts +2 -14
  45. package/es/packages/form-render/src/components/renderer/{combination/index.d.ts → combination.d.ts} +3 -3
  46. package/es/packages/form-render/src/components/renderer/combination.js +92 -0
  47. package/es/packages/form-render/src/components/renderer/date.js +12 -4
  48. package/es/packages/form-render/src/components/renderer/formItem.js +11 -3
  49. package/es/packages/form-render/src/components/renderer/index.d.ts +1 -0
  50. package/es/packages/form-render/src/components/renderer/index.js +2 -1
  51. package/es/packages/form-render/src/components/renderer/{combination → jsonCombination}/hooks/useDeepValidate.d.ts +0 -0
  52. package/es/packages/form-render/src/components/renderer/{combination → jsonCombination}/hooks/useDeepValidate.js +0 -0
  53. package/es/packages/form-render/src/components/renderer/jsonCombination/index.d.ts +44 -0
  54. package/es/packages/form-render/src/components/renderer/{combination → jsonCombination}/index.js +29 -14
  55. package/es/packages/form-render/src/components/renderer/select.d.ts +1 -10
  56. package/es/packages/form-render/src/components/renderer/select.js +7 -4
  57. package/es/packages/form-render/src/hooks/index.d.ts +0 -1
  58. package/es/packages/form-render/src/hooks/index.js +0 -1
  59. package/es/packages/form-render/src/hooks/useFieldListAdaptor.d.ts +1 -1
  60. package/es/packages/form-render/src/hooks/useFieldListAdaptor.js +12 -5
  61. package/es/packages/form-render/src/hooks/useTypeNormalize.js +2 -1
  62. package/es/packages/form-render/src/types/fieldItem.d.ts +15 -12
  63. package/es/packages/form-render/src/types/index.d.ts +2 -2
  64. package/es/packages/form-render/src/utils/index.js +3 -2
  65. package/es/packages/form-render/src/utils/schema.d.ts +60 -0
  66. package/es/packages/form-render/src/utils/schema.js +5 -2
  67. package/es/packages/form-render/style/index.css +11 -8
  68. package/es/packages/index.css +38 -11
  69. package/es/packages/index.js +0 -1
  70. package/es/packages/shortcut-provider/src/hooks/useShortcuts.js +1 -0
  71. package/es/packages/shortcut-setter/index.d.ts +9 -6
  72. package/es/packages/shortcut-setter/src/ShortcutSetter.vue.d.ts +9 -6
  73. package/es/src/utils/index.d.ts +1 -0
  74. package/es/src/utils/index.js +11 -1
  75. package/package.json +4 -4
  76. package/es/packages/form-render/src/hooks/useInitialData.d.ts +0 -5
  77. package/es/packages/form-render/src/hooks/useInitialData.js +0 -16
@@ -1,24 +1,25 @@
1
- import { defineComponent, ref, computed, watch, onMounted, createVNode, createTextVNode } from 'vue';
1
+ import { defineComponent, ref, computed, watch, onMounted, createVNode } from 'vue';
2
2
  import { isField } from '@formily/core';
3
3
  import { Path } from '@formily/path';
4
- import { isNumber, isEqual } from 'lodash-es';
5
- import { useDeepValidate } from '../../../../../../packages/form-render/src/components/renderer/combination/hooks/useDeepValidate';
6
- import { mergeDeepProperties, formRenderLog } from '../../../utils/index.js';
4
+ import { AddCircleOutline, RemoveCircle } from '@vicons/ionicons5';
5
+ import { isNumber, isArray, isEqual } from 'lodash-es';
6
+ import { useDeepValidate } from '../../../../../../packages/form-render/src/components/renderer/jsonCombination/hooks/useDeepValidate';
7
+ import { formRenderLog, mergeDeepProperties } from '../../../utils/index.js';
7
8
  import { connect, mapProps } from '@formily/vue';
8
9
  import { useDebounceFn, isObject } from '@vueuse/core';
9
- import { NButton } from 'naive-ui';
10
+ import { NButton, NIcon } from 'naive-ui';
10
11
  import FormRender from '../../../FormRender.js';
11
12
  import { assignUpdateValue } from '../../../utils/schema.js';
12
13
 
13
14
  const script = defineComponent({
14
- name: "FormCombination",
15
+ name: "FormJsonCombination",
15
16
  props: {
16
17
  title: {
17
18
  type: String,
18
19
  default: ""
19
20
  },
20
21
  value: {
21
- type: String
22
+ type: [String, Array]
22
23
  },
23
24
  maxGroupNum: {
24
25
  type: Number
@@ -35,12 +36,18 @@ const script = defineComponent({
35
36
  setup(props, {
36
37
  emit
37
38
  }) {
39
+ formRenderLog("\u5F53\u524DCOMBINATION\u63A7\u4EF6\u4E3Ajson\u6A21\u5F0F,\u63A8\u8350\u4F7F\u7528\u975Ejson\u6A21\u5F0F,FieldItem.jsonCombination=false", "warn");
38
40
  const emitChange = useDebounceFn(function emitChange2() {
39
41
  emit("update:value", JSON.stringify(combinationData.value));
40
42
  }, 300);
41
43
  const combinationData = ref([]);
42
44
  const currentGroupNum = computed(() => combinationData.value.length);
43
45
  function setCombinationData(data, withInitialData = false) {
46
+ if (isArray(data)) {
47
+ if (!data.length)
48
+ data.push({});
49
+ data = JSON.stringify(data);
50
+ }
44
51
  const parsedData = getParsedData(data);
45
52
  if (!needLoad(parsedData))
46
53
  return;
@@ -66,7 +73,6 @@ const script = defineComponent({
66
73
  return null;
67
74
  return result;
68
75
  } catch (e) {
69
- formRenderLog(`invalid JSON value ${data2} in COMBINATION => ${props.title}`, "warn");
70
76
  return null;
71
77
  }
72
78
  }
@@ -137,22 +143,31 @@ const script = defineComponent({
137
143
  "text": true,
138
144
  "disabled": currentGroupNum.value >= maxGroupNum.value
139
145
  }, {
140
- default: () => [createTextVNode("\u65B0\u589E")]
146
+ icon: () => createVNode(NIcon, {
147
+ "component": AddCircleOutline
148
+ }, null),
149
+ default: () => "\u65B0\u589E"
141
150
  })]), Array.from({
142
151
  length: currentGroupNum.value
143
152
  }).map((_, idx) => createVNode("section", {
144
- "class": "form-render__combinationContent"
153
+ "class": "form-render__combinationContentJson"
145
154
  }, [createVNode(FormRenderComponent, {
146
155
  "ref": (_ref) => setFormRenderRef(idx, _ref),
147
156
  "fieldList": props.getProperties(),
148
157
  "onFormChange": (payload) => onChange(idx, payload)
149
- }, null), idx === 0 ? null : createVNode("i", {
158
+ }, null), idx === 0 ? null : createVNode(NButton, {
159
+ "text": true,
150
160
  "class": "form-render__combinationClose",
161
+ "type": "error",
151
162
  "onClick": () => removeGroup(idx)
152
- }, ["-"])]))]);
163
+ }, {
164
+ icon: () => createVNode(NIcon, {
165
+ "component": RemoveCircle
166
+ }, null)
167
+ })]))]);
153
168
  };
154
169
  }
155
170
  });
156
- const COMBINATION = connect(script, mapProps(assignUpdateValue));
171
+ const JSON_COMBINATION = connect(script, mapProps(assignUpdateValue));
157
172
 
158
- export { COMBINATION };
173
+ export { JSON_COMBINATION };
@@ -1,14 +1,6 @@
1
1
  import { AnyObject, Func } from '../../../../../../es/src/types';
2
- import { FormRequestType } from '../../types';
2
+ import { UrlConfig } from '../../types';
3
3
  import { PropType } from 'vue';
4
- declare type UrlConfig = {
5
- method: FormRequestType;
6
- dependKey?: string | string[];
7
- nameKey: string;
8
- url: string;
9
- params?: AnyObject;
10
- valueKey: string;
11
- };
12
4
  export declare const SELECT: import("vue").DefineComponent<{
13
5
  value: {
14
6
  type: StringConstructor;
@@ -53,4 +45,3 @@ export declare const SELECT: import("vue").DefineComponent<{
53
45
  options: AnyObject[];
54
46
  lazyRequest: boolean;
55
47
  }>;
56
- export {};
@@ -1,8 +1,9 @@
1
1
  import { defineComponent, computed, ref, inject, nextTick, watch, createVNode } from 'vue';
2
2
  import { isField } from '@formily/core';
3
- import { cloneDeep, isEqual } from 'lodash-es';
3
+ import { cloneDeep, isEqual, isString } from 'lodash-es';
4
4
  import { useCommonInjection } from '../../../../../packages/form-render/src/hooks/useCommonInjection';
5
5
  import { InjectAsyncQueue, InjectionChangeContextCollector, InjectionFormItemDepsCollector } from '../../constants/index.js';
6
+ import { formRenderLog } from '../../utils/index.js';
6
7
  import { connect, mapProps } from '@formily/vue';
7
8
  import { NSelect } from 'naive-ui';
8
9
  import { useFormField } from '../../hooks/useFormField.js';
@@ -61,9 +62,11 @@ const script = defineComponent({
61
62
  }
62
63
  if (remoteOptions.value)
63
64
  return;
64
- remoteOptions.value = await asyncQueue.addAsync({
65
- ...await createParams(configFor(props), field.value, fieldKey.value)
66
- });
65
+ try {
66
+ remoteOptions.value = await asyncQueue.addAsync(await createParams(configFor(props), field.value, fieldKey.value));
67
+ } catch (e) {
68
+ isString(e) && formRenderLog(e, "warn");
69
+ }
67
70
  async function createParams(config, field2, key) {
68
71
  const _params = {};
69
72
  try {
@@ -9,6 +9,5 @@ export * from './useFormValidator';
9
9
  export * from './useBusinessBinding';
10
10
  export * from './useChangeContext';
11
11
  export * from './useFormItemDeps';
12
- export * from './useInitialData';
13
12
  export * from './useAnchor';
14
13
  export * from './useFormContext';
@@ -9,6 +9,5 @@ export { useFormValidator } from './useFormValidator.js';
9
9
  export { BusinessCollector, useBusinessBinding } from './useBusinessBinding.js';
10
10
  export { ContextCollector, useChangeContext } from './useChangeContext.js';
11
11
  export { FormItemDepsCollector, useFormItemDeps } from './useFormItemDeps.js';
12
- export { useInitialData } from './useInitialData.js';
13
12
  export { useAnchor } from './useAnchor.js';
14
13
  export { useFormContext } from './useFormContext.js';
@@ -3,7 +3,7 @@ import { FieldItem } from '../types';
3
3
  /**
4
4
  * @description 胶水层, 将低代码平台中的fieldList转换为JSONSchema
5
5
  */
6
- export declare function useFieldListAdaptor(collector: BusinessCollector, uuid: string): {
6
+ export declare function useFieldListAdaptor(collector: BusinessCollector): {
7
7
  schemaAdaptor: (fieldList: FieldItem[]) => Record<string, import("@formily/json-schema/esm/types").Stringify<{
8
8
  [key: symbol]: any;
9
9
  [key: `x-${string}`]: any;
@@ -1,11 +1,11 @@
1
1
  import { isObject } from '@vueuse/core';
2
2
  import { pick } from 'lodash-es';
3
3
  import { useFormValidator, useTypeNormalize } from '../../../../packages/form-render';
4
- import { arrayed, parseNumberFromMaybeString } from '../utils/index.js';
5
- import { fieldKeyEscape, createLinebarId, elementIdEscape } from '../utils/schema.js';
4
+ import { arrayed, parseNumberFromMaybeString, formRenderLog } from '../utils/index.js';
5
+ import { fieldKeyEscape, createLinebarId } from '../utils/schema.js';
6
6
  import { transformDateFormat } from '../utils/business.js';
7
7
 
8
- function useFieldListAdaptor(collector, uuid) {
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
@@ -158,7 +162,10 @@ function useFieldListAdaptor(collector, uuid) {
158
162
  };
159
163
  const createComplexSchema = (item) => {
160
164
  const schema = createStandardSchema(item);
161
- const properties = Array.isArray(item.properties) ? schemaAdaptor(item.properties) : {};
165
+ if (Array.isArray(item.properties)) {
166
+ formRenderLog("COMPLEX\u63A7\u4EF6\u7684properties\u5C5E\u6027\u5DF2\u7ECF\u5E9F\u5F03, \u8BF7\u4F7F\u7528children\u4F5C\u4E3A\u66FF\u4EE3, \u5728\u4E4B\u540E\u7684\u7248\u672C\u4E2Dproperties\u5C5E\u6027\u5C06\u4E0D\u518D\u652F\u6301", "warn");
167
+ }
168
+ const properties = Array.isArray(item.properties || item.children) ? schemaAdaptor(item.properties || item.children) : {};
162
169
  schema.type = item.fieldType || "void";
163
170
  schema.properties = properties;
164
171
  Object.assign(schema["x-decorator-props"], { showFeedback: false });
@@ -8,7 +8,8 @@ function useTypeNormalize() {
8
8
  validate: { obj_type: FIELD_BUSINESS_TYPE.AGE_UNIT },
9
9
  val_key: item.val_key_unit,
10
10
  html_type: "SELECT",
11
- option: item.option
11
+ option: item.option,
12
+ urlConfig: item.urlConfig
12
13
  }
13
14
  ];
14
15
  }
@@ -1,7 +1,7 @@
1
1
  import { AnyObject, ArrayAble } from '../../../../../es/src/types';
2
2
  import { SchemaTypes } from '@formily/vue';
3
3
  import { CSSProperties, VNode } from 'vue';
4
- import { DependKeyType, FormCommonState } from '../../../../../es/packages/form-render';
4
+ import { DependKeyType, FormCommonState, FormRequestType } from '../../../../../es/packages/form-render';
5
5
  declare type FieldBusinessType = 'password' | 'id_card' | 'age' | 'age_unit' | 'mobile' | 'telephone' | 'email' | 'sex' | 'birthday' | 'bank_card' | 'website' | 'gestational_weeks' | 'gestational_stage' | 'customer_name';
6
6
  export declare type ValidateItem = Partial<{
7
7
  /**
@@ -36,6 +36,15 @@ interface FormRendererPayload {
36
36
  export interface FormRenderer {
37
37
  (payload: FormRendererPayload): ArrayAble<VNode> | any;
38
38
  }
39
+ export declare type UrlConfig = {
40
+ url: string;
41
+ } & Partial<{
42
+ method?: FormRequestType;
43
+ nameKey?: string;
44
+ valueKey?: string;
45
+ params?: AnyObject;
46
+ dependKey?: DependKeyType;
47
+ }>;
39
48
  interface SwitchProperty {
40
49
  value?: any;
41
50
  describe?: string;
@@ -141,17 +150,7 @@ export declare type FieldItem = {
141
150
  * slider控件间距
142
151
  */
143
152
  step_length: string | number;
144
- urlConfig: Partial<{
145
- url: string;
146
- method: 'post' | 'get' | 'put' | 'patch' | 'delete';
147
- /**
148
- * 请求参数依赖关系
149
- */
150
- dependKey: DependKeyType;
151
- params: AnyObject;
152
- nameKey: string;
153
- valueKey: string;
154
- }>;
153
+ urlConfig: UrlConfig;
155
154
  /**
156
155
  * 控件组
157
156
  */
@@ -172,6 +171,10 @@ export declare type FieldItem = {
172
171
  * COMBINATION控件最大表单组数量
173
172
  */
174
173
  maxGroupNum: number;
174
+ /**
175
+ * COMBINATION json format
176
+ */
177
+ jsonCombination: boolean;
175
178
  /**
176
179
  * COMBINATION控件子项
177
180
  */
@@ -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<void>;
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: FormChangeContext;
46
+ context?: FormChangeContext;
47
47
  };
48
48
  export declare type DependKeyType = string | Record<string, string> | Array<{
49
49
  paramName: string;
@@ -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[propertyFor(field)] = targetPropertyFor(field);
23
+ Path.setIn(_target, propertyFor(field), targetPropertyFor(field));
23
24
  }
24
25
  traverseProperties.forEach((p) => {
25
26
  if (!field[p])
@@ -14,3 +14,63 @@ 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%;
@@ -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%;
@@ -3184,6 +3187,7 @@ body > .vxe-table--tooltip-wrapper {
3184
3187
  .form-config__material {
3185
3188
  padding: 16px;
3186
3189
  box-sizing: border-box;
3190
+ flex-shrink: 0;
3187
3191
  width: 200px;
3188
3192
  background: white;
3189
3193
  }
@@ -3194,8 +3198,12 @@ body > .vxe-table--tooltip-wrapper {
3194
3198
  height: 40px;
3195
3199
  }
3196
3200
  .form-config__materialContent {
3197
- padding: 8px;
3198
- min-height: 400px;
3201
+ padding: 16px;
3202
+ box-sizing: border-box;
3203
+ flex-shrink: 0;
3204
+ overflow-y: auto;
3205
+ max-height: var(--max-height);
3206
+ min-height: 200px;
3199
3207
  display: flex;
3200
3208
  flex-direction: column;
3201
3209
  gap: 8px;
@@ -3212,6 +3220,8 @@ body > .vxe-table--tooltip-wrapper {
3212
3220
  .form-config__displayWrapper {
3213
3221
  padding: 16px;
3214
3222
  box-sizing: border-box;
3223
+ flex-shrink: 0;
3224
+ min-width: 400px;
3215
3225
  flex: 1;
3216
3226
  padding: 16px 0;
3217
3227
  }
@@ -3224,6 +3234,9 @@ body > .vxe-table--tooltip-wrapper {
3224
3234
  .form-config__displayContent {
3225
3235
  padding: 16px;
3226
3236
  box-sizing: border-box;
3237
+ flex-shrink: 0;
3238
+ overflow-y: auto;
3239
+ max-height: var(--max-height);
3227
3240
  height: fit-content;
3228
3241
  background: #eeeeee;
3229
3242
  display: grid !important;
@@ -3237,9 +3250,23 @@ body > .vxe-table--tooltip-wrapper {
3237
3250
  .form-config__config {
3238
3251
  padding: 16px;
3239
3252
  box-sizing: border-box;
3240
- width: 220px;
3253
+ flex-shrink: 0;
3254
+ width: 240px;
3241
3255
  background: white;
3242
3256
  }
3257
+ .form-config__configHeader {
3258
+ display: flex;
3259
+ align-items: center;
3260
+ justify-content: space-between;
3261
+ height: 40px;
3262
+ }
3263
+ .form-config__configContent {
3264
+ padding: 16px;
3265
+ box-sizing: border-box;
3266
+ flex-shrink: 0;
3267
+ overflow-y: auto;
3268
+ max-height: var(--max-height);
3269
+ }
3243
3270
  .form-config__renderer--default {
3244
3271
  display: flex;
3245
3272
  align-items: center;
@@ -51,7 +51,6 @@ 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;
@@ -106,22 +106,23 @@ declare const ShortcutSetter: SFCWithInstall<import("vue").DefineComponent<{
106
106
  date_format?: string | undefined;
107
107
  step_length?: string | number | undefined;
108
108
  urlConfig?: {
109
- url?: string | undefined;
110
- method?: "delete" | "post" | "get" | "patch" | "put" | undefined;
109
+ url: string;
110
+ method?: import("..").FormRequestType | undefined;
111
+ nameKey?: string | undefined;
112
+ valueKey?: string | undefined;
113
+ params?: import("../../../es/src/types").AnyObject | undefined;
111
114
  dependKey?: string | Record<string, string> | (string | {
112
115
  paramName: string;
113
116
  paramValue?: string | undefined;
114
117
  required?: boolean | undefined;
115
118
  })[] | undefined;
116
- params?: import("../../../es/src/types").AnyObject | undefined;
117
- nameKey?: string | undefined;
118
- valueKey?: string | undefined;
119
119
  } | undefined;
120
120
  suffixConfig?: any | any[] | undefined;
121
121
  fieldType?: import("@formily/json-schema").SchemaTypes | undefined;
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;
@@ -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<any>;
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;
@@ -108,22 +108,23 @@ declare const _default: import("vue").DefineComponent<{
108
108
  date_format?: string | undefined;
109
109
  step_length?: string | number | undefined;
110
110
  urlConfig?: {
111
- url?: string | undefined;
112
- method?: "delete" | "post" | "get" | "patch" | "put" | undefined;
111
+ url: string;
112
+ method?: import("../../../../es/packages/form-render").FormRequestType | undefined;
113
+ nameKey?: string | undefined;
114
+ valueKey?: string | undefined;
115
+ params?: import("../../../../es/src/types").AnyObject | undefined;
113
116
  dependKey?: string | Record<string, string> | (string | {
114
117
  paramName: string;
115
118
  paramValue?: string | undefined;
116
119
  required?: boolean | undefined;
117
120
  })[] | undefined;
118
- params?: import("../../../../es/src/types").AnyObject | undefined;
119
- nameKey?: string | undefined;
120
- valueKey?: string | undefined;
121
121
  } | undefined;
122
122
  suffixConfig?: any | any[] | undefined;
123
123
  fieldType?: import("@formily/json-schema").SchemaTypes | undefined;
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;
@@ -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<any>;
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;
@@ -1,2 +1,3 @@
1
1
  import { App, Component } from 'vue';
2
2
  export declare function safeComponentRegister(app: App, component: Component, cName?: string | undefined, scheduler?: () => void): void;
3
+ export declare function generateTimeFormat(format: string): string | undefined;