cnhis-design-vue 3.1.38-beta.5 → 3.1.38-beta.7

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 (57) hide show
  1. package/README.md +123 -123
  2. package/es/components/big-table/src/BigTable.vue2.js +4 -3
  3. package/es/components/bpmn-workflow/src/BpmnWorkflow.d.ts +0 -0
  4. package/es/components/bpmn-workflow/types/BpmnViewer.d.ts +1 -0
  5. package/es/components/bpmn-workflow/types/ModelingModule.d.ts +1 -0
  6. package/es/components/bpmn-workflow/types/MoveCanvasModule.d.ts +1 -0
  7. package/es/components/button-print/src/utils/print.js +16 -1
  8. package/es/components/fabric-chart/src/utils/index.d.ts +6823 -0
  9. package/es/components/form-config/index.d.ts +1 -0
  10. package/es/components/form-config/src/FormConfig.vue.d.ts +1 -0
  11. package/es/components/form-config/src/components/FormConfigEdit.vue.d.ts +1 -0
  12. package/es/components/form-render/src/components/renderer/checkbox.js +83 -24
  13. package/es/components/form-render/src/components/renderer/combination.d.ts +1 -1
  14. package/es/components/form-render/src/components/renderer/combination.js +9 -5
  15. package/es/components/form-render/src/components/renderer/formItem.d.ts +11 -3
  16. package/es/components/form-render/src/components/renderer/formItem.js +28 -20
  17. package/es/components/form-render/src/hooks/useComplexOptions.d.ts +8 -0
  18. package/es/components/form-render/src/hooks/useComplexOptions.js +137 -0
  19. package/es/components/form-render/src/hooks/useFieldListAdaptor.js +2 -2
  20. package/es/components/form-render/src/hooks/useFormField.d.ts +3 -2
  21. package/es/components/form-render/src/hooks/useFormRenderOptions.js +4 -6
  22. package/es/components/form-render/src/types/fieldItem.d.ts +4 -3
  23. package/es/components/form-render/src/utils/schema.d.ts +1 -60
  24. package/es/components/form-render/style/index.css +1 -1
  25. package/es/components/index.css +1 -1
  26. package/es/components/scale-view/style/index.css +1 -1
  27. package/es/components/shortcut-setter/index.d.ts +1 -0
  28. package/es/components/shortcut-setter/src/ShortcutSetter.vue.d.ts +1 -0
  29. package/es/shared/assets/img/failure.js +1 -1
  30. package/es/shared/assets/img/failure.png.js +1 -1
  31. package/es/shared/assets/img/icon-asc.js +1 -1
  32. package/es/shared/assets/img/icon-desc.js +1 -1
  33. package/es/shared/assets/img/no-permission.js +1 -1
  34. package/es/shared/assets/img/no-permission.png.js +1 -1
  35. package/es/shared/assets/img/nodata.js +1 -1
  36. package/es/shared/assets/img/nodata.png.js +1 -1
  37. package/es/shared/assets/img/notfound.js +1 -1
  38. package/es/shared/assets/img/notfound.png.js +1 -1
  39. package/es/shared/assets/img/qr.js +1 -1
  40. package/es/shared/assets/img/qr.png.js +1 -1
  41. package/es/shared/assets/img/success.js +1 -1
  42. package/es/shared/assets/img/success.png.js +1 -1
  43. package/es/shared/assets/img/video.js +1 -1
  44. package/es/shared/assets/img/video.png.js +1 -1
  45. package/es/shared/assets/img/video_default_cover.js +1 -1
  46. package/es/shared/assets/img/video_default_cover.png.js +1 -1
  47. package/es/shared/assets/img/video_hover.js +1 -1
  48. package/es/shared/assets/img/video_play_hover.js +1 -1
  49. package/es/shared/assets/img/xb_big.js +1 -1
  50. package/es/shared/assets/img/xb_big.png.js +1 -1
  51. package/es/shared/assets/img/xb_small.js +1 -1
  52. package/es/shared/assets/img/xb_small.png.js +1 -1
  53. package/es/shared/components/VueDraggable/src/vuedraggable.d.ts +86 -0
  54. package/es/shared/utils/index.d.ts +1 -0
  55. package/es/shared/utils/index.js +6 -1
  56. package/es/shared/utils/tapable/index.d.ts +139 -0
  57. package/package.json +2 -2
@@ -1002,6 +1002,7 @@ declare const FormConfig: SFCWithInstall<import("vue").DefineComponent<{
1002
1002
  keyword?: string | undefined;
1003
1003
  disabled?: boolean | undefined;
1004
1004
  children?: any[] | undefined;
1005
+ childrenFields?: any[] | undefined;
1005
1006
  }[] | undefined;
1006
1007
  multi_select?: import("..").FormCommonState | undefined;
1007
1008
  multi_select_value?: string | number | undefined;
@@ -1003,6 +1003,7 @@ declare const _default: import("vue").DefineComponent<{
1003
1003
  keyword?: string | undefined;
1004
1004
  disabled?: boolean | undefined;
1005
1005
  children?: any[] | undefined;
1006
+ childrenFields?: any[] | undefined;
1006
1007
  }[] | undefined;
1007
1008
  multi_select?: import("../..").FormCommonState | undefined;
1008
1009
  multi_select_value?: string | number | undefined;
@@ -71,6 +71,7 @@ declare const _default: import("vue").DefineComponent<{
71
71
  keyword?: string | undefined;
72
72
  disabled?: boolean | undefined;
73
73
  children?: any[] | undefined;
74
+ childrenFields?: any[] | undefined;
74
75
  }[] | undefined;
75
76
  multi_select?: import("../../../../../es/components/form-render").FormCommonState | undefined;
76
77
  multi_select_value?: string | number | undefined;
@@ -1,12 +1,15 @@
1
- import { defineComponent, createVNode } from 'vue';
2
- import { useVModel } from '@vueuse/core';
3
- import '../../../index.js';
4
- import '../../utils/index.js';
1
+ import { defineComponent, computed, ref, watch, createVNode } from 'vue';
2
+ import { jsonParse } from '../../../../../shared/utils/index.js';
5
3
  import { connect, mapProps } from '@formily/vue';
4
+ import { isArray, isObject, isString } from 'lodash-es';
6
5
  import { NCheckboxGroup, NSpace, NCheckbox } from 'naive-ui';
6
+ import '../../../index.js';
7
+ import { useComplexOptions } from '../../hooks/useComplexOptions.js';
8
+ import '../../utils/index.js';
7
9
  import { useAutographOptions } from '../../hooks/useFormRenderOptions.js';
8
10
  import { assignUpdateValue } from '../../utils/schema.js';
9
11
  import { useCommonInjection } from '../../hooks/useCommonInjection.js';
12
+ import { useFormField } from '../../hooks/useFormField.js';
10
13
 
11
14
  const script = defineComponent({
12
15
  name: "FormCheckbox",
@@ -40,7 +43,58 @@ const script = defineComponent({
40
43
  setup(props, {
41
44
  emit
42
45
  }) {
43
- const valueRef = useVModel(props, "value", emit);
46
+ const hasComplexOption = computed(() => {
47
+ return props.options.some((option) => {
48
+ return isArray(option.childrenFields) && option.childrenFields.length;
49
+ });
50
+ });
51
+ const {
52
+ fieldKey
53
+ } = useFormField();
54
+ const checkValue = ref([]);
55
+ const valueRef = computed({
56
+ get() {
57
+ return hasComplexOption.value ? checkValue.value : props.value;
58
+ },
59
+ set(value) {
60
+ if (!hasComplexOption.value)
61
+ return emit("update:value", value);
62
+ if (!isObject(props.value))
63
+ return;
64
+ props.value[fieldKey.value] = value;
65
+ checkValue.value = value;
66
+ }
67
+ });
68
+ watch(checkValue, () => {
69
+ if (!hasComplexOption.value || !isObject(props.value))
70
+ return;
71
+ props.value[fieldKey.value] = checkValue.value;
72
+ }, {
73
+ deep: true
74
+ });
75
+ watch([() => props.value, hasComplexOption], ([v, _has]) => {
76
+ if (!_has)
77
+ return;
78
+ if (isString(v)) {
79
+ const result = jsonParse(v);
80
+ checkValue.value = result[fieldKey.value];
81
+ return emit("update:value", result);
82
+ }
83
+ if (isArray(v)) {
84
+ checkValue.value = v;
85
+ return emit("update:value", {
86
+ [fieldKey.value]: v
87
+ });
88
+ }
89
+ if (!isObject(v)) {
90
+ checkValue.value = [];
91
+ emit("update:value", {});
92
+ } else {
93
+ checkValue.value = v[fieldKey.value];
94
+ }
95
+ }, {
96
+ immediate: true
97
+ });
44
98
  const {
45
99
  labelKey,
46
100
  valueKey,
@@ -50,26 +104,31 @@ const script = defineComponent({
50
104
  injectValueBindKey
51
105
  } = useCommonInjection();
52
106
  const key = injectValueBindKey(valueRef);
53
- return () => createVNode(NCheckboxGroup, {
54
- "key": key.value,
55
- "value": valueRef.value,
56
- "onUpdate:value": ($event) => valueRef.value = $event
57
- }, {
58
- default: () => [createVNode(NSpace, {
59
- "vertical": props.vertical
107
+ const {
108
+ render: renderComplexOption
109
+ } = useComplexOptions(valueKey);
110
+ return () => {
111
+ return createVNode(NCheckboxGroup, {
112
+ "key": key.value,
113
+ "value": checkValue.value,
114
+ "onUpdate:value": ($event) => checkValue.value = $event
60
115
  }, {
61
- default: () => {
62
- var _a;
63
- return [(_a = options.value) == null ? void 0 : _a.map((option) => createVNode(NCheckbox, {
64
- "key": option[valueKey.value],
65
- "value": option[valueKey.value],
66
- "disabled": option.disabled
67
- }, {
68
- default: () => [option[labelKey.value]]
69
- }))];
70
- }
71
- })]
72
- });
116
+ default: () => [createVNode(NSpace, {
117
+ "vertical": props.vertical
118
+ }, {
119
+ default: () => {
120
+ var _a;
121
+ return [(_a = options.value) == null ? void 0 : _a.map((option) => createVNode(NCheckbox, {
122
+ "key": option[valueKey.value],
123
+ "value": option[valueKey.value],
124
+ "disabled": option.disabled
125
+ }, {
126
+ default: () => [hasComplexOption.value ? [option[labelKey.value], renderComplexOption(checkValue.value, option)] : option[labelKey.value]]
127
+ }))];
128
+ }
129
+ })]
130
+ });
131
+ };
73
132
  }
74
133
  });
75
134
  const CHECKBOX = connect(script, mapProps({
@@ -1,5 +1,5 @@
1
- import { FieldItem } from '../../../../../../es/components/form-render';
2
1
  import { PropType } from 'vue';
2
+ import { FieldItem } from '../../../../../../es/components/form-render';
3
3
  export declare const COMBINATION: import("vue").DefineComponent<{
4
4
  title: {
5
5
  type: StringConstructor;
@@ -1,12 +1,13 @@
1
1
  import { defineComponent, ref, computed, watch, inject, createVNode } from 'vue';
2
2
  import { isObjectField } from '@formily/core';
3
+ import { RecursionField, connect } from '@formily/vue';
4
+ import { AddCircleOutline, RemoveCircle } from '@vicons/ionicons5';
3
5
  import { isNumber, isArray, range } from 'lodash-es';
4
- import '../../../index.js';
5
- import { useField, RecursionField, connect } from '@formily/vue';
6
6
  import { NButton, NIcon } from 'naive-ui';
7
+ import '../../../index.js';
7
8
  import { InjectionBusinessCollector } from '../../constants/index.js';
8
9
  import '../../utils/index.js';
9
- import { AddCircleOutline, RemoveCircle } from '@vicons/ionicons5';
10
+ import { useFormField } from '../../hooks/useFormField.js';
10
11
  import { useFieldListAdaptor } from '../../hooks/useFieldListAdaptor.js';
11
12
  import { createObjSchema } from '../../utils/schema.js';
12
13
 
@@ -36,7 +37,10 @@ const script = defineComponent({
36
37
  },
37
38
  emits: ["update:value"],
38
39
  setup(props) {
39
- const field = useField();
40
+ const {
41
+ field,
42
+ fieldKey
43
+ } = useFormField();
40
44
  const currentGroupNum = ref(1);
41
45
  const maxGroupNum = computed(() => {
42
46
  if (!isNumber(props.maxGroupNum))
@@ -60,7 +64,7 @@ const script = defineComponent({
60
64
  currentGroupNum.value--;
61
65
  await field.value.remove(idx);
62
66
  } else {
63
- const currentField = field.value.query(`${field.value.path.toString()}.${idx}`).take();
67
+ const currentField = field.value.query(`${fieldKey.value}.${idx}`).take();
64
68
  if (!currentField || !isObjectField(currentField))
65
69
  return;
66
70
  await currentField.reset();
@@ -2,14 +2,22 @@ export declare const FORM_ITEM: import("vue").DefineComponent<{
2
2
  label: StringConstructor;
3
3
  propertyKey: StringConstructor;
4
4
  remark: StringConstructor;
5
- span: NumberConstructor;
5
+ span: {
6
+ type: NumberConstructor;
7
+ default: number;
8
+ };
6
9
  annotation: {};
7
10
  fieldItem: {};
8
11
  }, () => JSX.Element, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
9
12
  label: StringConstructor;
10
13
  propertyKey: StringConstructor;
11
14
  remark: StringConstructor;
12
- span: NumberConstructor;
15
+ span: {
16
+ type: NumberConstructor;
17
+ default: number;
18
+ };
13
19
  annotation: {};
14
20
  fieldItem: {};
15
- }>>, {}>;
21
+ }>>, {
22
+ span: number;
23
+ }>;
@@ -1,22 +1,27 @@
1
1
  import { defineComponent, inject, computed, createVNode, mergeProps } from 'vue';
2
2
  import { arrayed, widthAppend } from '../../../../../shared/utils/index.js';
3
3
  import { isVoidField } from '@formily/core';
4
- import { useField, connect, mapProps } from '@formily/vue';
4
+ import { connect, mapProps } from '@formily/vue';
5
5
  import { isString } from 'lodash-es';
6
6
  import { NFormItem } from 'naive-ui';
7
7
  import Annotation from '../../../../annotation-edit/index.js';
8
8
  import '../../../index.js';
9
9
  import TooltipMessage from '../tooltipMessage.vue.js';
10
10
  import { InjectionAnnotation, InjectionFormUUID } from '../../constants/index.js';
11
+ import { useComplexOptionsSpan } from '../../hooks/useComplexOptions.js';
11
12
  import { dotEscape } from '../../utils/schema.js';
12
13
  import { validateMessageParser } from '../../utils/index.js';
14
+ import { useFormField } from '../../hooks/useFormField.js';
13
15
 
14
16
  const script = defineComponent({
15
17
  props: {
16
18
  label: String,
17
19
  propertyKey: String,
18
20
  remark: String,
19
- span: Number,
21
+ span: {
22
+ type: Number,
23
+ default: 6
24
+ },
20
25
  annotation: {},
21
26
  fieldItem: {}
22
27
  },
@@ -47,10 +52,13 @@ const script = defineComponent({
47
52
  return annotation.value && props.annotation !== false;
48
53
  });
49
54
  const needRenderLabel = computed(() => props.label && props.label !== " ");
50
- const field = useField();
55
+ const {
56
+ field,
57
+ fieldKey
58
+ } = useFormField();
51
59
  const uuid = inject(InjectionFormUUID);
52
60
  const id = computed(() => {
53
- return dotEscape(`${uuid}-${field.value.path.toString()}`);
61
+ return dotEscape(`${uuid}-${fieldKey.value}`);
54
62
  });
55
63
  const marginRight = computed(() => {
56
64
  let result = 0;
@@ -74,22 +82,22 @@ const script = defineComponent({
74
82
  "message": props.remark
75
83
  }, null)]) : null, showAnnotation.value ? renderAnnotation() : null]) : null]) : null;
76
84
  }
77
- return () => {
78
- var _a;
79
- return createVNode(NFormItem, mergeProps({
80
- "class": "form-render__formItem",
81
- "style": {
82
- "--form-item-column": ((_a = props.span) != null ? _a : 3) * 2
83
- }
84
- }, {
85
- id: id.value,
86
- "widget-type": field.value.componentType,
87
- "form-field": field.value.path.toString()
88
- }), {
89
- ...slots,
90
- label: renderLabel
91
- });
92
- };
85
+ const {
86
+ calcFieldItemSpan
87
+ } = useComplexOptionsSpan();
88
+ return () => createVNode(NFormItem, mergeProps({
89
+ "class": "form-render__formItem",
90
+ "style": {
91
+ "--form-item-column": calcFieldItemSpan(props.span)
92
+ }
93
+ }, {
94
+ id: id.value,
95
+ "widget-type": field.value.componentType,
96
+ "form-field": fieldKey.value
97
+ }), {
98
+ ...slots,
99
+ label: renderLabel
100
+ });
93
101
  }
94
102
  });
95
103
  const FORM_ITEM = connect(script, mapProps({
@@ -0,0 +1,8 @@
1
+ import { MaybeRef } from '@vueuse/core';
2
+ import { FormOptionItem } from '../../../../../es/components/form-render';
3
+ export declare function useComplexOptions(valueKey: MaybeRef<string>): {
4
+ render: (value: unknown, option: FormOptionItem) => JSX.Element | null;
5
+ };
6
+ export declare function useComplexOptionsSpan(): {
7
+ calcFieldItemSpan: (span: number) => number;
8
+ };
@@ -0,0 +1,137 @@
1
+ import { reactive, defineComponent, inject, computed, watch, onUnmounted, onMounted, createVNode, withModifiers, unref } from 'vue';
2
+ import { checkInSetupEnv } from '../../../../shared/utils/index.js';
3
+ import { isField } from '@formily/core';
4
+ import { RecursionField } from '@formily/vue';
5
+ import { sumBy, property, noop, isArray } from 'lodash-es';
6
+ import '../../index.js';
7
+ import { InjectionFormUUID, InjectionBusinessCollector } from '../constants/index.js';
8
+ import { useFormField } from './useFormField.js';
9
+ import { useFieldListAdaptor } from './useFieldListAdaptor.js';
10
+ import { createObjSchema } from '../utils/schema.js';
11
+
12
+ const spanMap = reactive(/* @__PURE__ */ new Map());
13
+ function setSpan(uuid, field, span = 0) {
14
+ spanMap.set(uuid, spanMap.get(uuid) || {});
15
+ const spanObj = spanMap.get(uuid);
16
+ Reflect.set(spanObj, field.address.toString(), span);
17
+ }
18
+ function getSpan(uuid, field) {
19
+ const spanObj = spanMap.get(uuid);
20
+ if (!spanObj)
21
+ return 0;
22
+ const fieldKey = field.address.toString();
23
+ return Object.entries(spanObj).reduce((res, [k, v]) => {
24
+ if (k === fieldKey || k.startsWith(`${fieldKey}.`))
25
+ return res + v;
26
+ return res;
27
+ }, 0);
28
+ }
29
+ function deleteSpan(uuid, field) {
30
+ const spanObj = spanMap.get(uuid);
31
+ spanObj && Reflect.deleteProperty(spanObj, field.address.toString());
32
+ }
33
+ const ChildSchemaField = defineComponent({
34
+ props: {
35
+ fields: {
36
+ type: Array,
37
+ default: () => []
38
+ },
39
+ name: {
40
+ type: String,
41
+ required: true
42
+ }
43
+ },
44
+ setup(props) {
45
+ const uuid = inject(InjectionFormUUID);
46
+ const {
47
+ field
48
+ } = useFormField();
49
+ const collector = inject(InjectionBusinessCollector);
50
+ const {
51
+ schemaAdaptor
52
+ } = useFieldListAdaptor(collector);
53
+ function assignConfig(field2) {
54
+ return Object.assign({}, field2, {
55
+ decoratorProps: {
56
+ ...field2.decoratorProps,
57
+ labelPlacement: "left",
58
+ showFeedback: false
59
+ },
60
+ componentProps: {
61
+ ...field2.componentProps,
62
+ size: "small"
63
+ }
64
+ });
65
+ }
66
+ const schema = computed(() => {
67
+ return createObjSchema(schemaAdaptor(props.fields.map(assignConfig)));
68
+ });
69
+ const column = computed(() => {
70
+ return sumBy(Object.values(schema.value.properties || []), property("x-decorator-props.span"));
71
+ });
72
+ watch(column, (_column) => {
73
+ setSpan(uuid, field.value, _column);
74
+ }, {
75
+ immediate: true
76
+ });
77
+ function getRecursionField() {
78
+ const formModel = field.value.form;
79
+ const address = `${field.value.address.toString()}.${props.name}`;
80
+ return formModel.query(address).take();
81
+ }
82
+ onUnmounted(() => {
83
+ const recursionField = getRecursionField();
84
+ recursionField && (recursionField.display = "none");
85
+ deleteSpan(uuid, field.value);
86
+ });
87
+ onMounted(() => {
88
+ const recursionField = getRecursionField();
89
+ if (!recursionField)
90
+ return;
91
+ recursionField.display = "visible";
92
+ });
93
+ return () => createVNode("section", {
94
+ "onClick": withModifiers(noop, ["stop"]),
95
+ "class": "form-render__labelField",
96
+ "style": {
97
+ "--column": getSpan(uuid, field.value)
98
+ }
99
+ }, [createVNode(RecursionField, {
100
+ "name": props.name,
101
+ "schema": schema.value
102
+ }, null)]);
103
+ }
104
+ });
105
+ function useComplexOptions(valueKey) {
106
+ function valueMatcher(value, option) {
107
+ if (isArray(value))
108
+ return value.includes(option[unref(valueKey)]);
109
+ return value === option[unref(valueKey)] && isArray(option.childrenFields) && option.childrenFields.length;
110
+ }
111
+ function render(value, option) {
112
+ return valueMatcher(value, option) ? createVNode(ChildSchemaField, {
113
+ "fields": option.childrenFields,
114
+ "name": option[unref(valueKey)]
115
+ }, null) : null;
116
+ }
117
+ return {
118
+ render
119
+ };
120
+ }
121
+ function useComplexOptionsSpan() {
122
+ checkInSetupEnv();
123
+ const uuid = inject(InjectionFormUUID);
124
+ const {
125
+ field
126
+ } = useFormField();
127
+ function calcFieldItemSpan(span) {
128
+ if (!isField(field.value))
129
+ return span;
130
+ return getSpan(uuid, field.value) + span;
131
+ }
132
+ return {
133
+ calcFieldItemSpan
134
+ };
135
+ }
136
+
137
+ export { useComplexOptions, useComplexOptionsSpan };
@@ -49,7 +49,7 @@ function useFieldListAdaptor(collector) {
49
49
  "x-decorator": "FORM_ITEM",
50
50
  "x-decorator-props": {
51
51
  fieldItem: deepOmit(item, ["reactions"]),
52
- span: item.elem_width,
52
+ span: (item.elem_width || 3) * 2,
53
53
  showLabel: item.hide_title !== "1",
54
54
  remark: item.remark,
55
55
  propertyKey: item.val_key,
@@ -255,7 +255,7 @@ function useFieldListAdaptor(collector) {
255
255
  name: fieldKeyEscape(fieldList),
256
256
  title: item.alias || item.name,
257
257
  "x-component": "INPUT_GROUP",
258
- "x-component-props": { span: item.elem_width },
258
+ "x-component-props": { span: (item.elem_width || 3) * 2 },
259
259
  properties: schemaAdaptor(fieldList)
260
260
  };
261
261
  };
@@ -1,5 +1,6 @@
1
- export declare function useFormField(): {
2
- field: import("vue").Ref<import("@formily/core").GeneralField>;
1
+ import { GeneralField } from '@formily/core';
2
+ export declare function useFormField<T extends GeneralField>(): {
3
+ field: import("vue").Ref<T>;
3
4
  title: import("vue").ComputedRef<any>;
4
5
  fieldKey: import("vue").ComputedRef<string>;
5
6
  };
@@ -1,7 +1,7 @@
1
- import { jsonParse } from '../../../../shared/utils/index.js';
1
+ import { checkInSetupEnv, jsonParse } from '../../../../shared/utils/index.js';
2
2
  import { useDebounceFn } from '@vueuse/core';
3
3
  import { isString, isEqual, omit, isFunction } from 'lodash-es';
4
- import { computed, inject, getCurrentInstance, ref, watch } from 'vue';
4
+ import { computed, inject, ref, watch } from 'vue';
5
5
  import '../../index.js';
6
6
  import { InjectionAsyncQueue, InjectionFormItemDepsCollector } from '../constants/index.js';
7
7
  import { createUrlConfigParams, formRenderLog, optionMatcherWithKeyword } from '../utils/index.js';
@@ -115,8 +115,7 @@ function useRecommendOptions(props, options, emit, valueKey) {
115
115
  };
116
116
  }
117
117
  function useUrlConfigOptions(props, valueRef) {
118
- if (!getCurrentInstance())
119
- throw new Error("can't use this hook out of setup environment");
118
+ checkInSetupEnv();
120
119
  const asyncQueue = inject(InjectionAsyncQueue);
121
120
  const labelKey = computed(() => {
122
121
  var _a, _b;
@@ -174,8 +173,7 @@ function useUrlConfigOptions(props, valueRef) {
174
173
  return { labelKey, valueKey, options, fetchData };
175
174
  }
176
175
  function useAutographOptions(props, valueRef) {
177
- if (!getCurrentInstance())
178
- throw new Error("can't use this hook out of setup environment");
176
+ checkInSetupEnv();
179
177
  const asyncQueue = inject(InjectionAsyncQueue);
180
178
  const labelKey = computed(() => {
181
179
  var _a, _b, _c;
@@ -22,12 +22,13 @@ export declare type ValidateItem = Partial<{
22
22
  regular_error_tip: string;
23
23
  [key: string]: any;
24
24
  }>;
25
- interface OptionItem {
25
+ export interface FormOptionItem {
26
26
  text: string;
27
27
  value: any;
28
28
  keyword?: string;
29
29
  disabled?: boolean;
30
- children?: OptionItem[];
30
+ children?: FormOptionItem[];
31
+ childrenFields?: FieldItem[];
31
32
  }
32
33
  interface FormRendererPayload {
33
34
  clearable: boolean;
@@ -139,7 +140,7 @@ export declare type FieldItem = {
139
140
  hide_title: FormCommonState;
140
141
  placeholder: string;
141
142
  validate: ValidateItem;
142
- option: OptionItem[];
143
+ option: FormOptionItem[];
143
144
  /**
144
145
  * 是否开启多选('0'表示开启, 值是反的)
145
146
  */
@@ -20,64 +20,5 @@ export declare function assignValueBindKey(props: AnyObject, field: GeneralField
20
20
  export declare function assignClearBindVisited(props: AnyObject, field: GeneralField): {
21
21
  [x: string]: any;
22
22
  };
23
- export declare function createObjSchema(properties: Record<string, ISchema>): {
24
- type: string;
25
- properties: Record<string, import("@formily/json-schema/esm/types").Stringify<{
26
- [key: symbol]: any;
27
- [key: `x-${string}`]: any;
28
- [key: `x-${number}`]: any;
29
- version?: string | undefined;
30
- name?: import("@formily/json-schema/esm/types").SchemaKey | undefined;
31
- title?: any;
32
- description?: any;
33
- default?: any;
34
- readOnly?: boolean | undefined;
35
- writeOnly?: boolean | undefined;
36
- type?: import("@formily/json-schema/esm/types").SchemaTypes | undefined;
37
- enum?: import("@formily/json-schema/esm/types").SchemaEnum<any> | undefined;
38
- const?: any;
39
- multipleOf?: number | undefined;
40
- maximum?: number | undefined;
41
- exclusiveMaximum?: number | undefined;
42
- minimum?: number | undefined;
43
- exclusiveMinimum?: number | undefined;
44
- maxLength?: number | undefined;
45
- minLength?: number | undefined;
46
- pattern?: string | RegExp | undefined;
47
- maxItems?: number | undefined;
48
- minItems?: number | undefined;
49
- uniqueItems?: boolean | undefined;
50
- maxProperties?: number | undefined;
51
- minProperties?: number | undefined;
52
- required?: string | boolean | string[] | undefined;
53
- format?: string | undefined;
54
- $ref?: string | undefined;
55
- $namespace?: string | undefined;
56
- definitions?: import("@formily/json-schema/esm/types").SchemaProperties<any, any, any, any, any, any, any, any> | undefined;
57
- properties?: import("@formily/json-schema/esm/types").SchemaProperties<any, any, any, any, any, any, any, any> | undefined;
58
- items?: import("@formily/json-schema/esm/types").SchemaItems<any, any, any, any, any, any, any, any> | undefined;
59
- additionalItems?: import("@formily/json-schema/esm/types").Stringify<any> | undefined;
60
- patternProperties?: import("@formily/json-schema/esm/types").SchemaProperties<any, any, any, any, any, any, any, any> | undefined;
61
- additionalProperties?: import("@formily/json-schema/esm/types").Stringify<any> | undefined;
62
- "x-value"?: any;
63
- "x-index"?: number | undefined;
64
- "x-pattern"?: any;
65
- "x-display"?: any;
66
- "x-validator"?: any;
67
- "x-decorator"?: any;
68
- "x-decorator-props"?: any;
69
- "x-component"?: any;
70
- "x-component-props"?: any;
71
- "x-reactions"?: import("@formily/json-schema/esm/types").SchemaReactions<any> | undefined;
72
- "x-content"?: any;
73
- "x-data"?: any;
74
- "x-visible"?: boolean | undefined;
75
- "x-hidden"?: boolean | undefined;
76
- "x-disabled"?: boolean | undefined;
77
- "x-editable"?: boolean | undefined;
78
- "x-read-only"?: boolean | undefined;
79
- "x-read-pretty"?: boolean | undefined;
80
- "x-compile-omitted"?: string[] | undefined;
81
- }>>;
82
- };
23
+ export declare function createObjSchema(properties: Record<string, ISchema>): ISchema;
83
24
  export declare function createVisitedSetter(field: Ref<GeneralField>, callback?: Func): (...args: unknown[]) => any;
@@ -1 +1 @@
1
- .annotation-edit{align-items:center;color:#0067ee;cursor:pointer;display:inline-flex;font-size:16px;user-select:none}.annotation-edit.is-active{color:#ff9828}.annotation-edit__icon{align-items:center;display:inline-flex}.annotation-edit__textarea{min-width:200px}.annotation-edit__footer{align-items:center;display:flex;flex-wrap:nowrap;gap:8px;justify-content:space-between;opacity:.5}.annotation-edit__footer>div{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.annotation-edit__footer>div:first-of-type{min-width:30%}.recommend-search__menu{min-height:100px}.recommend-search__menuRecommendList{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.recommend-search__menuRecommendList .n-tag{cursor:pointer}.recommend-search__recentRecommend{margin-bottom:8px}.recommend-search__recentRecommend>header{align-items:center;color:rgba(0,0,0,.4);display:flex;justify-content:space-between}.recommend-search__recentRecommend>header .n-icon:hover{color:rgba(0,0,0,.6);cursor:pointer}.recommend-search__commonRecommend{margin-bottom:8px}.recommend-search__commonRecommend>header{align-items:center;color:rgba(0,0,0,.4);display:flex;justify-content:space-between}.recommend-search__commonRecommend>header .n-icon:hover{color:rgba(0,0,0,.6);cursor:pointer}.recommend-search__option{align-items:center;border-radius:4px;cursor:pointer;display:flex;height:32px;justify-content:space-between;padding:0 8px}.recommend-search__optionText{max-width:calc(100% - 24px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recommend-search__option.is-active{color:var(--n-color)!important}.recommend-search__option.is-active .n-icon{font-size:20px}.recommend-search__option:hover{background:rgba(0,0,0,.03)}.recommend-search__optionContainer{margin:-8px -10px}.recommend-search__empty{align-items:center;color:rgba(0,0,0,.3);display:flex;height:100px;justify-content:center}.search-cascader__menuWrapper{display:flex;flex-wrap:nowrap;margin:-8px -14px}.search-cascader__input input{cursor:pointer!important}.search-cascader__option{align-items:center;border-radius:4px;box-sizing:border-box;display:flex;height:32px;justify-content:space-between;padding:0 8px 0 16px;width:100%}.search-cascader__option--active{background:#f8f8f8}.search-cascader__option:hover{background:#f5f5f5;cursor:pointer}.search-cascader__optionWrapper{background:#fff;height:256px;overflow-x:auto;width:calc(var(--menu-width)*1px)}.search-cascader__optionWrapper:not(:last-of-type){border:solid #e5e5e5;border-width:0 1px 0 0}.search-cascader__optionText{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:calc(100% - 20px)}.search-cascader__option svg{color:#bfbfbf;flex-shrink:0;font-size:12px;width:20px}.search-cascader__option svg.rotate{animation:rotate 1s linear infinite}.search-cascader__emptyWrapper{align-items:center;background:#fff;box-sizing:border-box;display:flex;height:300px;justify-content:center;padding:16px;width:100%}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.form-render__wrapper{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr));max-height:var(--form-height);overflow-y:auto;position:relative}.form-render__formItem{grid-column:span min(var(--column),var(--form-item-column)) /span min(var(--column),var(--form-item-column))}.form-render__formItem .n-date-picker,.form-render__formItem .n-input-number{width:100%}.form-render__formItemLabel{align-items:center;display:inline-flex;justify-content:space-between;position:relative}.form-render__formItemLabel--operation{align-items:center;display:flex;gap:2px;position:absolute;right:0;top:50%;transform:translateY(-50%)}.form-render__formItemLabel--tooltip{font-size:0;line-height:1;width:16px}.form-render__formItemLabel--text{white-space:nowrap}.form-render__formItem .n-form-item-label{display:inline-flex}.form-render__formItem .n-form-item-label [annotation-hover-show=true]{visibility:hidden}.form-render__formItem .n-form-item-label:hover [annotation-hover-show=true]{visibility:visible}.form-render__linebar{grid-column:span min(var(--column),var(--column)) /span min(var(--column),var(--column))}.form-render__linebarHeader{align-items:center;background:#f2f2f2;border-radius:4px;cursor:pointer;display:flex;font-size:14px;font-weight:500;height:32px;justify-content:space-between;margin-bottom:8px;padding:0 16px}.form-render__linebarHeader>svg{color:rgba(33,33,33,.4);width:14px}.form-render__linebarHeaderTitle{align-items:center;display:flex;gap:4px;vertical-align:middle}.form-render__linebarHeaderTitle svg{height:16px;transform:translateY(-1px)}.form-render__linebarItem{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr))}.form-render__linebreaks{grid-column:span min(var(--column),var(--form-item-column)) /span min(var(--column),var(--form-item-column))}.form-render__inputGroup{align-items:flex-start;display:flex;grid-column:span min(var(--column),var(--column)) /span min(var(--column),var(--column))}.form-render__inputGroup>div{flex:1}.form-render__inputGroup>div:not(:last-of-type) .n-base-selection__border,.form-render__inputGroup>div:not(:last-of-type) .n-input__border{border-bottom-right-radius:0;border-right:0;border-top-right-radius:0}.form-render__inputGroup>div:last-of-type .n-base-selection__border,.form-render__inputGroup>div:last-of-type .n-input__border{border-bottom-left-radius:0;border-top-left-radius:0}.form-render__inputGroup .n-form-item--left-labelled:not(:first-of-type)>label{display:none}.form-render__combination{width:100%}.form-render__combinationHeader{display:flex;gap:12px}.form-render__combinationHeader>h3{font-size:16px;font-weight:700;margin:0;padding:0}.form-render__combinationHeader .n-button__icon{font-size:14px;margin:0 2px 0 0}.form-render__combinationHeaderText{font-size:16px;font-weight:500}.form-render__combinationClose{font-size:16px;height:14px;position:absolute;right:5px;top:5px;width:14px}.form-render__combinationContentJson{position:relative}.form-render__combinationContent{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr));position:relative}.form-render__complex{width:100%}.form-render__complexContent--grid{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr))}.form-render__complexContent--flex{display:flex!important;gap:0 8px}.form-render__selectMenu .n-scrollbar-rail__scrollbar{display:none!important}.form-render__selectMenu .n-virtual-list::-webkit-scrollbar,.form-render__selectMenu .n-virtual-list::-webkit-scrollbar-thumb{display:unset!important;height:6px;width:6px}.form-render__selectMenu .n-virtual-list::-webkit-scrollbar-thumb{background:#bfbfbf;border-radius:4px}.form-render__selectMenu .v-vl-items{min-width:100%;width:max-content}.form-render__selectOption .n-base-select-option__content{overflow:visible!important;text-overflow:unset!important;word-break:keep-all!important}
1
+ .annotation-edit{align-items:center;color:#0067ee;cursor:pointer;display:inline-flex;font-size:16px;user-select:none}.annotation-edit.is-active{color:#ff9828}.annotation-edit__icon{align-items:center;display:inline-flex}.annotation-edit__textarea{min-width:200px}.annotation-edit__footer{align-items:center;display:flex;flex-wrap:nowrap;gap:8px;justify-content:space-between;opacity:.5}.annotation-edit__footer>div{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.annotation-edit__footer>div:first-of-type{min-width:30%}.recommend-search__menu{min-height:100px}.recommend-search__menuRecommendList{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.recommend-search__menuRecommendList .n-tag{cursor:pointer}.recommend-search__recentRecommend{margin-bottom:8px}.recommend-search__recentRecommend>header{align-items:center;color:rgba(0,0,0,.4);display:flex;justify-content:space-between}.recommend-search__recentRecommend>header .n-icon:hover{color:rgba(0,0,0,.6);cursor:pointer}.recommend-search__commonRecommend{margin-bottom:8px}.recommend-search__commonRecommend>header{align-items:center;color:rgba(0,0,0,.4);display:flex;justify-content:space-between}.recommend-search__commonRecommend>header .n-icon:hover{color:rgba(0,0,0,.6);cursor:pointer}.recommend-search__option{align-items:center;border-radius:4px;cursor:pointer;display:flex;height:32px;justify-content:space-between;padding:0 8px}.recommend-search__optionText{max-width:calc(100% - 24px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recommend-search__option.is-active{color:var(--n-color)!important}.recommend-search__option.is-active .n-icon{font-size:20px}.recommend-search__option:hover{background:rgba(0,0,0,.03)}.recommend-search__optionContainer{margin:-8px -10px}.recommend-search__empty{align-items:center;color:rgba(0,0,0,.3);display:flex;height:100px;justify-content:center}.search-cascader__menuWrapper{display:flex;flex-wrap:nowrap;margin:-8px -14px}.search-cascader__input input{cursor:pointer!important}.search-cascader__option{align-items:center;border-radius:4px;box-sizing:border-box;display:flex;height:32px;justify-content:space-between;padding:0 8px 0 16px;width:100%}.search-cascader__option--active{background:#f8f8f8}.search-cascader__option:hover{background:#f5f5f5;cursor:pointer}.search-cascader__optionWrapper{background:#fff;height:256px;overflow-x:auto;width:calc(var(--menu-width)*1px)}.search-cascader__optionWrapper:not(:last-of-type){border:solid #e5e5e5;border-width:0 1px 0 0}.search-cascader__optionText{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:calc(100% - 20px)}.search-cascader__option svg{color:#bfbfbf;flex-shrink:0;font-size:12px;width:20px}.search-cascader__option svg.rotate{animation:rotate 1s linear infinite}.search-cascader__emptyWrapper{align-items:center;background:#fff;box-sizing:border-box;display:flex;height:300px;justify-content:center;padding:16px;width:100%}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(1turn)}}.form-render__wrapper{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr));max-height:var(--form-height);overflow-y:auto;position:relative}.form-render__formItem{grid-column:span min(var(--column),var(--form-item-column)) /span min(var(--column),var(--form-item-column))}.form-render__formItem .n-date-picker,.form-render__formItem .n-input-number{width:100%}.form-render__formItemLabel{align-items:center;display:inline-flex;justify-content:space-between;position:relative}.form-render__formItemLabel--operation{align-items:center;display:flex;gap:2px;position:absolute;right:0;top:50%;transform:translateY(-50%)}.form-render__formItemLabel--tooltip{font-size:0;line-height:1;width:16px}.form-render__formItemLabel--text{white-space:nowrap}.form-render__formItem .n-form-item-label{display:inline-flex}.form-render__formItem .n-form-item-label [annotation-hover-show=true]{visibility:hidden}.form-render__formItem .n-form-item-label:hover [annotation-hover-show=true]{visibility:visible}.form-render__linebar{grid-column:span min(var(--column),var(--column)) /span min(var(--column),var(--column))}.form-render__linebarHeader{align-items:center;background:#f2f2f2;border-radius:4px;cursor:pointer;display:flex;font-size:14px;font-weight:500;height:32px;justify-content:space-between;margin-bottom:8px;padding:0 16px}.form-render__linebarHeader>svg{color:rgba(33,33,33,.4);width:14px}.form-render__linebarHeaderTitle{align-items:center;display:flex;gap:4px;vertical-align:middle}.form-render__linebarHeaderTitle svg{height:16px;transform:translateY(-1px)}.form-render__linebarItem{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr))}.form-render__linebreaks{grid-column:span min(var(--column),var(--form-item-column)) /span min(var(--column),var(--form-item-column))}.form-render__inputGroup{align-items:flex-start;display:flex;grid-column:span min(var(--column),var(--column)) /span min(var(--column),var(--column))}.form-render__inputGroup>div{flex:1}.form-render__inputGroup>div:not(:last-of-type) .n-base-selection__border,.form-render__inputGroup>div:not(:last-of-type) .n-input__border{border-bottom-right-radius:0;border-right:0;border-top-right-radius:0}.form-render__inputGroup>div:last-of-type .n-base-selection__border,.form-render__inputGroup>div:last-of-type .n-input__border{border-bottom-left-radius:0;border-top-left-radius:0}.form-render__inputGroup .n-form-item--left-labelled:not(:first-of-type)>label{display:none}.form-render__combination{width:100%}.form-render__combinationHeader{display:flex;gap:12px}.form-render__combinationHeader>h3{font-size:16px;font-weight:700;margin:0;padding:0}.form-render__combinationHeader .n-button__icon{font-size:14px;margin:0 2px 0 0}.form-render__combinationHeaderText{font-size:16px;font-weight:500}.form-render__combinationClose{font-size:16px;height:14px;position:absolute;right:5px;top:5px;width:14px}.form-render__combinationContentJson{position:relative}.form-render__combinationContent{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr));position:relative}.form-render__complex{width:100%}.form-render__complexContent--grid{align-items:start;display:grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr))}.form-render__complexContent--flex{display:flex!important;gap:0 8px}.form-render__selectMenu .n-scrollbar-rail__scrollbar{display:none!important}.form-render__selectMenu .n-virtual-list::-webkit-scrollbar,.form-render__selectMenu .n-virtual-list::-webkit-scrollbar-thumb{display:unset!important;height:6px;width:6px}.form-render__selectMenu .n-virtual-list::-webkit-scrollbar-thumb{background:#bfbfbf;border-radius:4px}.form-render__selectMenu .v-vl-items{min-width:100%;width:max-content}.form-render__selectOption .n-base-select-option__content{overflow:visible!important;text-overflow:unset!important;word-break:keep-all!important}.form-render__labelField{align-items:start;display:grid!important;display:inline-grid!important;gap:0 16px;grid-template-columns:repeat(var(--column),minmax(0,1fr));margin-left:16px}.form-render__labelField label.n-form-item-label.n-form-item-label--left-mark{align-items:center}.form-render__labelField .n-checkbox[aria-checked=false] .n-checkbox-box{background-color:transparent}.form-render__labelField .n-checkbox[aria-checked=false] .n-checkbox-icon .check-icon{opacity:0}.form-render__labelField .n-checkbox[aria-checked=false] .n-checkbox-box__border{border:var(--n-border)}.form-render .n-form-item--left-labelled.form-render__formItem .n-checkbox{align-items:center}.form-render .n-form-item--left-labelled.form-render__formItem .n-checkbox-group>.n-space{align-items:center!important;flex-wrap:nowrap!important}.form-render .n-form-item--left-labelled.form-render__formItem .n-checkbox__label{align-items:center;display:inline-flex}