cnhis-design-vue 3.3.1-beta.61 → 3.3.1-beta.62

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 (94) hide show
  1. package/README.md +87 -87
  2. package/es/components/audio-sdk/src/Index.vue2.js +1 -1
  3. package/es/components/audio-sdk/src/utils/recorder/fft.d.ts +4 -0
  4. package/es/components/audio-sdk/src/utils/recorder/mp3-engine.d.ts +4 -0
  5. package/es/components/audio-sdk/src/utils/recorder/mp3.d.ts +4 -0
  6. package/es/components/audio-sdk/src/utils/recorder/recorder.d.ts +4 -0
  7. package/es/components/audio-sdk/src/utils/recorder/wave.d.ts +4 -0
  8. package/es/components/bpmn-workflow/src/BpmnWorkflow.d.ts +0 -0
  9. package/es/components/bpmn-workflow/types/BpmnViewer.d.ts +1 -0
  10. package/es/components/bpmn-workflow/types/ModelingModule.d.ts +1 -0
  11. package/es/components/bpmn-workflow/types/MoveCanvasModule.d.ts +1 -0
  12. package/es/components/callback/src/components/render/popupMaps.d.ts +11 -0
  13. package/es/components/card-render/src/components/index.d.ts +23 -23
  14. package/es/components/classification/src/components/table-modal/index.vue.d.ts +0 -3
  15. package/es/components/field-editor/index.d.ts +11 -0
  16. package/es/components/field-editor/src/FieldEditor.vue.d.ts +11 -0
  17. package/es/components/form-config/index.d.ts +49 -0
  18. package/es/components/form-config/src/FormConfig.vue.d.ts +49 -0
  19. package/es/components/form-config/src/components/FormConfigCreator.vue.d.ts +11 -0
  20. package/es/components/form-config/src/components/FormConfigEdit.vue.d.ts +22 -0
  21. package/es/components/form-config/src/components/FormConfigEventSetting.vue.d.ts +13 -0
  22. package/es/components/form-render/index.d.ts +11 -0
  23. package/es/components/form-render/src/FormRender.vue.d.ts +11 -0
  24. package/es/components/form-render/src/FormRender.vue2.js +6 -3
  25. package/es/components/form-render/src/FormRenderWrapper.vue.d.ts +11 -0
  26. package/es/components/form-render/src/components/renderer/combination/combination.js +1 -1
  27. package/es/components/form-render/src/components/renderer/input.d.ts +14 -4
  28. package/es/components/form-render/src/components/renderer/input.js +22 -7
  29. package/es/components/form-render/src/components/renderer/lineBar/FormCollapse.vue.d.ts +1 -0
  30. package/es/components/form-render/src/components/renderer/lineBar/index.d.ts +1 -0
  31. package/es/components/form-render/src/components/renderer/text.js +1 -1
  32. package/es/components/form-render/src/components/renderer/textarea.d.ts +12 -1
  33. package/es/components/form-render/src/components/renderer/textarea.js +19 -3
  34. package/es/components/form-render/src/hooks/useBusinessBinding.js +1 -0
  35. package/es/components/form-render/src/hooks/useComplexOptions.js +3 -2
  36. package/es/components/form-render/src/hooks/useFieldListAdaptor.d.ts +2 -2
  37. package/es/components/form-render/src/hooks/useFieldListAdaptor.js +4 -3
  38. package/es/components/form-render/src/hooks/useFieldNormalize.d.ts +2 -0
  39. package/es/components/form-render/src/hooks/useFormField.d.ts +2 -0
  40. package/es/components/form-render/src/hooks/useFormField.js +5 -1
  41. package/es/components/form-render/src/hooks/useFormValidator.js +1 -0
  42. package/es/components/form-render/src/hooks/usePresetScope.js +1 -0
  43. package/es/components/form-render/src/types/fieldItem.d.ts +2 -0
  44. package/es/components/form-render/src/types/index.d.ts +2 -1
  45. package/es/components/form-render/src/utils/index.js +1 -0
  46. package/es/components/form-render/src/utils/schema.js +51 -4
  47. package/es/components/iho-chat/src/components/PersonProfile.vue2.js +1 -1
  48. package/es/components/info-header/index.d.ts +27 -0
  49. package/es/components/info-header/src/InfoHeader.vue.d.ts +27 -0
  50. package/es/components/info-header/src/components/infoDescription/DescriptionItem.vue.d.ts +1 -0
  51. package/es/components/info-header/src/components/infoDescription/DescriptionList.vue.d.ts +1 -0
  52. package/es/components/info-header/src/components/infoDescription/index.vue.d.ts +12 -0
  53. package/es/components/info-header/src/components/patientInfo/index.vue.d.ts +11 -0
  54. package/es/components/scale-view/src/ScaleView.vue2.js +1 -1
  55. package/es/components/shortcut-setter/index.d.ts +13 -0
  56. package/es/components/shortcut-setter/src/ShortcutSetter.vue.d.ts +13 -0
  57. package/es/env.d.ts +25 -25
  58. package/es/shared/assets/img/ai__avatar.png.js +1 -1
  59. package/es/shared/assets/img/defaultCover/10review_successful.png.js +1 -1
  60. package/es/shared/assets/img/defaultCover/11review_fail.png.js +1 -1
  61. package/es/shared/assets/img/defaultCover/12no_setting.png.js +1 -1
  62. package/es/shared/assets/img/defaultCover/13no_menu_setting.png.js +1 -1
  63. package/es/shared/assets/img/defaultCover/14no_call_setting.png.js +1 -1
  64. package/es/shared/assets/img/defaultCover/15no_use_tag.png.js +1 -1
  65. package/es/shared/assets/img/defaultCover/16no_table_data.png.js +1 -1
  66. package/es/shared/assets/img/defaultCover/1location.png.js +1 -1
  67. package/es/shared/assets/img/defaultCover/2notfound.png.js +1 -1
  68. package/es/shared/assets/img/defaultCover/3loading.png.js +1 -1
  69. package/es/shared/assets/img/defaultCover/4no_permission.png.js +1 -1
  70. package/es/shared/assets/img/defaultCover/5no_data.png.js +1 -1
  71. package/es/shared/assets/img/defaultCover/6no_network.png.js +1 -1
  72. package/es/shared/assets/img/defaultCover/7no_doctor.png.js +1 -1
  73. package/es/shared/assets/img/defaultCover/8system_error.png.js +1 -1
  74. package/es/shared/assets/img/defaultCover/9system_upgrade.png.js +1 -1
  75. package/es/shared/assets/img/failure.png.js +1 -1
  76. package/es/shared/assets/img/file-emr.png.js +1 -1
  77. package/es/shared/assets/img/file.png.js +1 -1
  78. package/es/shared/assets/img/logo.png.js +1 -1
  79. package/es/shared/assets/img/no-permission.png.js +1 -1
  80. package/es/shared/assets/img/nodata.png.js +1 -1
  81. package/es/shared/assets/img/notfound.png.js +1 -1
  82. package/es/shared/assets/img/qr.png.js +1 -1
  83. package/es/shared/assets/img/success.png.js +1 -1
  84. package/es/shared/assets/img/table_style_2.png.js +1 -1
  85. package/es/shared/assets/img/use.png.js +1 -1
  86. package/es/shared/assets/img/video.png.js +1 -1
  87. package/es/shared/assets/img/video_default_cover.png.js +1 -1
  88. package/es/shared/assets/img/xb_big.png.js +1 -1
  89. package/es/shared/assets/img/xb_small.png.js +1 -1
  90. package/es/shared/components/VueDraggable/src/vuedraggable.d.ts +86 -0
  91. package/es/shared/package.json.js +1 -1
  92. package/es/shared/utils/fabricjs/index.d.ts +6823 -0
  93. package/es/shared/utils/tapable/index.d.ts +139 -0
  94. package/package.json +2 -2
@@ -1,5 +1,6 @@
1
1
  import { defineComponent, inject, createVNode, ref, createTextVNode, nextTick } from 'vue';
2
2
  import { useVModel } from '@vueuse/core';
3
+ import '../../../index.js';
3
4
  import { InjectionFormGlobalProps } from '../../constants/index.js';
4
5
  import { useCommonInjection } from '../../hooks/useCommonInjection.js';
5
6
  import { createInputSlot } from '../../utils/index.js';
@@ -7,6 +8,7 @@ import { connect, mapProps } from '@formily/vue';
7
8
  import { NInput } from 'naive-ui';
8
9
  import useLocale from 'naive-ui/es/_mixins/use-locale';
9
10
  import { assignUpdateValue, assignClearBindVisited } from '../../utils/schema.js';
11
+ import { useFormField } from '../../hooks/useFormField.js';
10
12
 
11
13
  const script = /* @__PURE__ */ defineComponent({
12
14
  name: "FormInput",
@@ -22,16 +24,18 @@ const script = /* @__PURE__ */ defineComponent({
22
24
  },
23
25
  placeholder: String,
24
26
  disabled: Boolean,
27
+ onChange: {},
28
+ eventType: {
29
+ type: String,
30
+ default: "input"
31
+ },
25
32
  password: {
26
33
  type: Boolean
27
34
  }
28
35
  },
29
- emits: ["update:value"],
30
- setup(props, {
31
- emit
32
- }) {
36
+ setup(props) {
33
37
  const globProps = inject(InjectionFormGlobalProps);
34
- const valueRef = useVModel(props, "value", emit);
38
+ const valueRef = useVModel(props, "value");
35
39
  const key = useCommonInjection().injectValueBindKey(valueRef);
36
40
  const _slots = createInputSlot(props, (v) => {
37
41
  return [createVNode("i", {
@@ -56,8 +60,11 @@ const script = /* @__PURE__ */ defineComponent({
56
60
  const {
57
61
  localeRef
58
62
  } = useLocale("Input");
63
+ const {
64
+ getFieldItem
65
+ } = useFormField();
59
66
  return () => {
60
- var _a;
67
+ var _a, _b;
61
68
  return (globProps == null ? void 0 : globProps.lazyRender) && showText.value ? createVNode("div", {
62
69
  "class": ["form-render__textMode--input n-input", {
63
70
  "form-render__textMode--inputDisabled": props.disabled
@@ -66,7 +73,15 @@ const script = /* @__PURE__ */ defineComponent({
66
73
  "onFocus": onFocus
67
74
  }, [[renderSlotContent("prefix"), valueRef.value ? createVNode("span", null, [valueRef.value]) : createVNode("span", {
68
75
  "class": "form-render__textMode--inputPlaceholder"
69
- }, [props.placeholder || ((_a = localeRef.value) == null ? void 0 : _a.placeholder)]), renderSlotContent("suffix")]]) : createVNode(NInput, {
76
+ }, [props.placeholder || ((_a = localeRef.value) == null ? void 0 : _a.placeholder)]), renderSlotContent("suffix")]]) : props.eventType === "change" || ((_b = getFieldItem()) == null ? void 0 : _b.confirmBeforeValueChange) ? createVNode(NInput, {
77
+ "ref": inputRef,
78
+ "type": props.password ? "password" : "text",
79
+ "key": key.value,
80
+ "disabled": props.disabled,
81
+ "placeholder": props.placeholder,
82
+ "defaultValue": valueRef.value,
83
+ "onChange": (value) => valueRef.value = value
84
+ }, _slots.value) : createVNode(NInput, {
70
85
  "ref": inputRef,
71
86
  "type": props.password ? "password" : "text",
72
87
  "key": key.value,
@@ -159,6 +159,7 @@ declare const _default: import("vue").DefineComponent<{
159
159
  feedbackType: "default" | "tooltip";
160
160
  fixMemoLeak: boolean;
161
161
  lazyRender: boolean;
162
+ dialogFn: import("../../../../../../shared/types").AnyFn;
162
163
  }>>;
163
164
  isVerticalLinebar: import("vue").ComputedRef<boolean>;
164
165
  wrapperClass: import("vue").ComputedRef<string[] | "">;
@@ -158,6 +158,7 @@ export declare const LINEBAR: import("@vue/runtime-core").DefineComponent<{
158
158
  feedbackType: "default" | "tooltip";
159
159
  fixMemoLeak: boolean;
160
160
  lazyRender: boolean;
161
+ dialogFn: import("../../../../../../shared/types").AnyFn;
161
162
  }>>;
162
163
  isVerticalLinebar: import("vue").ComputedRef<boolean>;
163
164
  wrapperClass: import("vue").ComputedRef<string[] | "">;
@@ -69,7 +69,7 @@ const script = /* @__PURE__ */ defineComponent({
69
69
  const globProps = inject(InjectionFormGlobalProps);
70
70
  const {
71
71
  schemaAdaptor
72
- } = useFieldListAdaptor(collector, globProps.lifeCycle);
72
+ } = useFieldListAdaptor(collector, globProps);
73
73
  return () => {
74
74
  var _a;
75
75
  if (!hasWidget.value)
@@ -1,3 +1,4 @@
1
+ import { PropType } from 'vue';
1
2
  export declare const TEXTAREA: import("vue").DefineComponent<{
2
3
  value: {
3
4
  type: StringConstructor;
@@ -5,6 +6,10 @@ export declare const TEXTAREA: import("vue").DefineComponent<{
5
6
  rows: {
6
7
  type: NumberConstructor;
7
8
  };
9
+ eventType: {
10
+ type: PropType<"change" | "input">;
11
+ default: string;
12
+ };
8
13
  }, () => 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<{
9
14
  value: {
10
15
  type: StringConstructor;
@@ -12,6 +17,12 @@ export declare const TEXTAREA: import("vue").DefineComponent<{
12
17
  rows: {
13
18
  type: NumberConstructor;
14
19
  };
20
+ eventType: {
21
+ type: PropType<"change" | "input">;
22
+ default: string;
23
+ };
15
24
  }>> & {
16
25
  "onUpdate:value"?: ((...args: any[]) => any) | undefined;
17
- }, {}>;
26
+ }, {
27
+ eventType: "change" | "input";
28
+ }>;
@@ -1,4 +1,5 @@
1
1
  import { defineComponent, computed, inject, createVNode, mergeProps } from 'vue';
2
+ import '../../../index.js';
2
3
  import { InjectionFormGlobalProps } from '../../constants/index.js';
3
4
  import { useCommonInjection } from '../../hooks/useCommonInjection.js';
4
5
  import '../../../../../shared/utils/index.js';
@@ -12,7 +13,8 @@ import { NInput } from 'naive-ui';
12
13
  import './text.js';
13
14
  import '../../utils/business.js';
14
15
  import { assignUpdateValue, assignClearBindVisited } from '../../utils/schema.js';
15
- import { connect, mapProps, useField } from '@formily/vue';
16
+ import { connect, mapProps } from '@formily/vue';
17
+ import { useFormField } from '../../hooks/useFormField.js';
16
18
 
17
19
  const script = /* @__PURE__ */ defineComponent({
18
20
  name: "FormTextarea",
@@ -22,6 +24,10 @@ const script = /* @__PURE__ */ defineComponent({
22
24
  },
23
25
  rows: {
24
26
  type: Number
27
+ },
28
+ eventType: {
29
+ type: String,
30
+ default: "input"
25
31
  }
26
32
  },
27
33
  emits: ["update:value"],
@@ -33,7 +39,10 @@ const script = /* @__PURE__ */ defineComponent({
33
39
  set: (v) => emit("update:value", v)
34
40
  });
35
41
  const key = useCommonInjection().injectValueBindKey(valueRef);
36
- const field = useField();
42
+ const {
43
+ getFieldItem,
44
+ field
45
+ } = useFormField();
37
46
  const globProps = inject(InjectionFormGlobalProps, {});
38
47
  const borderState = computed(() => {
39
48
  var _a, _b, _c;
@@ -50,7 +59,14 @@ const script = /* @__PURE__ */ defineComponent({
50
59
  };
51
60
  });
52
61
  return () => {
53
- return createVNode(NInput, mergeProps({
62
+ var _a;
63
+ return props.eventType === "change" || ((_a = getFieldItem()) == null ? void 0 : _a.confirmBeforeValueChange) ? createVNode(NInput, mergeProps({
64
+ "type": "textarea"
65
+ }, rowsProps.value, {
66
+ "key": key.value,
67
+ "defaultValue": valueRef.value,
68
+ "onChange": (value) => valueRef.value = value
69
+ }), null) : createVNode(NInput, mergeProps({
54
70
  "type": "textarea"
55
71
  }, rowsProps.value, {
56
72
  "key": key.value,
@@ -11,6 +11,7 @@ import '@vueuse/core';
11
11
  import 'naive-ui';
12
12
  import '../components/renderer/text.js';
13
13
  import { isIdCard, parseIdCard, parseAgeFromContext, parseBirthday, parseAge2Birthday } from '../utils/business.js';
14
+ import '../../index.js';
14
15
 
15
16
  class BusinessCollector {
16
17
  constructor(businessFormatter) {
@@ -3,7 +3,7 @@ import { checkInSetupEnv } from '../../../../shared/utils/index.js';
3
3
  import { useField, useForm, RecursionField } from '@formily/vue';
4
4
  import { isArray, noop, isEmpty } from 'lodash-es';
5
5
  import '../../index.js';
6
- import { InjectionFormUUID, InjectionBusinessCollector } from '../constants/index.js';
6
+ import { InjectionFormUUID, InjectionBusinessCollector, InjectionFormGlobalProps } from '../constants/index.js';
7
7
  import { renderOptionLabel, renderDescOption } from '../utils/index.js';
8
8
  import { useFieldListAdaptor } from './useFieldListAdaptor.js';
9
9
  import { createObjSchema } from '../utils/schema.js';
@@ -60,9 +60,10 @@ const ChildSchemaField = /* @__PURE__ */ defineComponent({
60
60
  function prepend(fieldKey) {
61
61
  return `${virtualField}.${fieldKey}`;
62
62
  }
63
+ const globProps = inject(InjectionFormGlobalProps);
63
64
  const {
64
65
  schemaAdaptor
65
- } = useFieldListAdaptor(collector);
66
+ } = useFieldListAdaptor(collector, globProps);
66
67
  function assignConfig(schema2) {
67
68
  var _a, _b, _c, _d;
68
69
  return Object.assign(schema2, {
@@ -1,9 +1,9 @@
1
- import { BusinessCollector, FormRenderProps, FormRenderLifeCycle } from '../../../../components/form-render';
1
+ import { BusinessCollector, FormRenderProps } from '../../../../components/form-render';
2
2
  import { FieldItem } from '../types';
3
3
  /**
4
4
  * @description 胶水层, 将低代码平台中的fieldList转换为JSONSchema
5
5
  */
6
- export declare function useFieldListAdaptor(collector?: BusinessCollector, hooks?: FormRenderLifeCycle): {
6
+ export declare function useFieldListAdaptor(collector?: BusinessCollector, globProps?: FormRenderProps): {
7
7
  schemaAdaptor: (fieldList: FieldItem[], options?: FormRenderProps) => Record<string, import("@formily/json-schema/esm/types").Stringify<{
8
8
  [key: symbol]: any;
9
9
  [key: `x-${string}`]: any;
@@ -17,12 +17,12 @@ function bindUrlProps(schema, item) {
17
17
  ...pick(item, ["urlConfig", "wordbook"])
18
18
  });
19
19
  }
20
- function useFieldListAdaptor(collector, hooks) {
20
+ function useFieldListAdaptor(collector, globProps) {
21
21
  const {
22
22
  createValidatorSchema
23
23
  } = useFormValidator();
24
24
  const createStandardSchema = (item) => {
25
- var _a;
25
+ var _a, _b;
26
26
  const result = {
27
27
  name: item.val_key,
28
28
  type: (_a = item.fieldType) != null ? _a : "string",
@@ -57,7 +57,8 @@ function useFieldListAdaptor(collector, hooks) {
57
57
  "x-decorator": "FORM_ITEM",
58
58
  "x-decorator-props": {
59
59
  fieldItem: item,
60
- beforeSetValue: hooks == null ? void 0 : hooks.beforeSetValue,
60
+ beforeSetValue: (_b = globProps == null ? void 0 : globProps.lifeCycle) == null ? void 0 : _b.beforeSetValue,
61
+ dialogFn: globProps == null ? void 0 : globProps.dialogFn,
61
62
  span: (item.elem_width || 3) * 2,
62
63
  showLabel: !isPositive(item.hide_title),
63
64
  remark: item.remark,
@@ -107,6 +107,7 @@ export declare function useFieldNormalize(): {
107
107
  feedbackType: "default" | "tooltip";
108
108
  fixMemoLeak: boolean;
109
109
  lazyRender: boolean;
110
+ dialogFn: import("../../../../shared/types").AnyFn;
110
111
  }>], import("../../../../shared/utils/tapable").UnsetAdditionalOptions>;
111
112
  FieldListNormalizeWaterfallHook: SyncWaterfallHook<[FieldItem[], Partial<{
112
113
  fieldList: FieldItem[];
@@ -214,5 +215,6 @@ export declare function useFieldNormalize(): {
214
215
  feedbackType: "default" | "tooltip";
215
216
  fixMemoLeak: boolean;
216
217
  lazyRender: boolean;
218
+ dialogFn: import("../../../../shared/types").AnyFn;
217
219
  }>], import("../../../../shared/utils/tapable").UnsetAdditionalOptions>;
218
220
  };
@@ -1,7 +1,9 @@
1
1
  import { GeneralField } from '@formily/core';
2
+ import { FieldItem } from '../../../../components/form-render';
2
3
  export declare function useFormField<T extends GeneralField>(): {
3
4
  field: import("vue").Ref<T>;
4
5
  title: import("vue").ComputedRef<any>;
5
6
  fieldKey: import("vue").ComputedRef<string>;
6
7
  fieldAddress: import("vue").ComputedRef<string>;
8
+ getFieldItem(): FieldItem | undefined;
7
9
  };
@@ -7,7 +7,11 @@ function useFormField() {
7
7
  field,
8
8
  title: computed(() => field.value.title),
9
9
  fieldKey: computed(() => field.value.props.name.toString()),
10
- fieldAddress: computed(() => field.value.address.toString())
10
+ fieldAddress: computed(() => field.value.address.toString()),
11
+ getFieldItem() {
12
+ var _a, _b;
13
+ return (_b = (_a = field.value) == null ? void 0 : _a.decoratorProps) == null ? void 0 : _b.fieldItem;
14
+ }
11
15
  };
12
16
  }
13
17
 
@@ -9,6 +9,7 @@ import { isFunction } from '@vueuse/core';
9
9
  import 'naive-ui';
10
10
  import '../components/renderer/text.js';
11
11
  import { isIdCard } from '../utils/business.js';
12
+ import '../../index.js';
12
13
 
13
14
  function useFormValidator() {
14
15
  const validateMap = /* @__PURE__ */ new Map([["mobile", ({
@@ -9,6 +9,7 @@ import '@vueuse/core';
9
9
  import 'naive-ui';
10
10
  import '../components/renderer/text.js';
11
11
  import { isIdCard, isMobile } from '../utils/business.js';
12
+ import '../../index.js';
12
13
 
13
14
  function usePresetScope() {
14
15
  return {
@@ -138,6 +138,8 @@ export type FieldItem = {
138
138
  linebarTextDirection: 'horizontal' | 'vertical';
139
139
  labelColor: string;
140
140
  fieldTitleRed: FormCommonState | boolean;
141
+ confirmBeforeValueChange: boolean;
142
+ confirmBeforeValueChangeText: string;
141
143
  fieldTitleColor: string;
142
144
  fieldType: SchemaTypes;
143
145
  content: string | FormRenderer | Record<string, FormRenderer>;
@@ -1,5 +1,5 @@
1
1
  import { FormRequestDefine } from '../../../../shared/hooks';
2
- import { AnyObject, LowCodeTypes, UndefinedAble } from '../../../../shared/types';
2
+ import { AnyFn, AnyObject, LowCodeTypes, UndefinedAble } from '../../../../shared/types';
3
3
  import { DataField, Field, Form, GeneralField } from '@formily/core';
4
4
  import { ISchema } from '@formily/json-schema/esm/types';
5
5
  import { Component, FunctionalComponent } from 'vue';
@@ -175,6 +175,7 @@ export type FormRenderProps = Partial<{
175
175
  feedbackType: 'tooltip' | 'default';
176
176
  fixMemoLeak: boolean;
177
177
  lazyRender: boolean;
178
+ dialogFn: AnyFn;
178
179
  }>;
179
180
  export type FormBusinessFormatter = (payload: {
180
181
  fieldKey: string;
@@ -10,6 +10,7 @@ import { NTooltip, NIcon } from 'naive-ui';
10
10
  import { NESTED_FORM_ITEM_TYPE } from '../constants/index.js';
11
11
  import { TEXT } from '../components/renderer/text.js';
12
12
  export { businessDateParser, isForeignerID, isIdCard, isMobile, parseAge2Birthday, parseAgeFromContext, parseBirthday, parseIdCard, transformDateFormat } from './business.js';
13
+ import '../../index.js';
13
14
 
14
15
  function formRenderLog(message) {
15
16
  console.warn(`[FormRender]: ${message}`);
@@ -1,6 +1,8 @@
1
1
  import { isField } from '@formily/core';
2
2
  import { isObject, isPromise } from '@vue/shared';
3
3
  import { isString, isArray, isFunction, noop } from 'lodash-es';
4
+ import '../../index.js';
5
+ import { parseEnhanceText } from './index.js';
4
6
 
5
7
  function traverseSchema(schema, handler, parent) {
6
8
  handler(schema, parent);
@@ -77,13 +79,58 @@ function assignUpdateValue(props, field) {
77
79
  };
78
80
  if (isField(field)) {
79
81
  Object.assign(_props, {
80
- "onUpdate:value"(value) {
81
- var _a;
82
- const beforeSetValue = (_a = field.decoratorProps) == null ? void 0 : _a.beforeSetValue;
82
+ async "onUpdate:value"(value) {
83
+ var _a, _b;
84
+ const $dialog = field.decoratorProps.dialogFn;
85
+ const fieldItem = field.decoratorProps.fieldItem;
86
+ const fieldName = field.title;
87
+ const oldValue = (_a = fieldItem.__oldValue) != null ? _a : fieldItem.__oldValue = field.value;
88
+ const valueMap = {
89
+ newValue: value,
90
+ oldValue,
91
+ fieldName
92
+ };
93
+ if ((fieldItem == null ? void 0 : fieldItem.confirmBeforeValueChange) && $dialog && oldValue != null && value !== oldValue) {
94
+ const confirmBeforeValueChangeText = (_b = fieldItem.confirmBeforeValueChangeText) != null ? _b : '\u60A8\u5C06\u628A\u654F\u611F\u5B57\u6BB5"#{fieldName}"\u7531#{oldValue}\u6539\u4E3A#{newValue}\uFF0C\u8BF7\u52A1\u5FC5\u786E\u8BA4\u66F4\u6539\u524D\u540E\u7684\u6863\u6848\u5747\u4E3A\u540C\u4E00\u4EBA\uFF0C\u5426\u5219\u53EF\u80FD\u4F1A\u9020\u6210\u60A3\u8005\u6863\u6848\u6DF7\u4E71\u7684\u4E25\u91CD\u540E\u679C\uFF01\uFF01\uFF01';
95
+ const content = parseEnhanceText(confirmBeforeValueChangeText).reduce((res, item) => {
96
+ var _a2;
97
+ if (item.type === "text")
98
+ res += item.content;
99
+ if (item.type === "widget")
100
+ res += (_a2 = valueMap[item.content]) != null ? _a2 : item.content;
101
+ return res;
102
+ }, "");
103
+ try {
104
+ await new Promise((resolve, reject) => {
105
+ var _a2, _b2, _c;
106
+ $dialog.warning({
107
+ title: ((_a2 = window.getLanguageByCode) == null ? void 0 : _a2.call(window, "10010.1.228")) || "\u8B66\u544A",
108
+ content,
109
+ positiveText: ((_b2 = window.getLanguageByCode) == null ? void 0 : _b2.call(window, "10010.1.27")) || "\u786E\u5B9A",
110
+ negativeText: ((_c = window.getLanguageByCode) == null ? void 0 : _c.call(window, "10010.1.28")) || "\u53D6\u6D88",
111
+ onPositiveClick: resolve,
112
+ onNegativeClick: reject
113
+ });
114
+ });
115
+ } catch (e) {
116
+ const eleKey = {
117
+ INPUT: `[field-address=${createFieldAddressId(field.address.toString())}] input`,
118
+ TEXTAREA: `[field-address=${createFieldAddressId(field.address.toString())}] textarea`
119
+ }[field.componentType];
120
+ if (eleKey) {
121
+ const targetInput = document.querySelector(eleKey);
122
+ if (!targetInput)
123
+ return;
124
+ targetInput.value = oldValue;
125
+ }
126
+ return;
127
+ }
128
+ }
129
+ const beforeSetValue = field.decoratorProps.beforeSetValue;
83
130
  if (isFunction(beforeSetValue)) {
84
131
  const res = beforeSetValue(field.path.toString(), value, {
85
132
  field,
86
- oldValue: field.value
133
+ oldValue
87
134
  });
88
135
  if (isPromise(res)) {
89
136
  return res.then((v) => field.setValue(v), noop);
@@ -170,7 +170,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
170
170
  round: "",
171
171
  size: 100,
172
172
  onClickCapture: _cache[0] || (_cache[0] = ($event) => showLargeAvatar.value = true)
173
- }, null, 8, ["src"]), createCommentVNode(' <n-upload abstract accept="image/*" @change="onChange">\r\n <n-upload-trigger #="{ handleClick }" abstract>\r\n <n-button\r\n circle\r\n secondary\r\n class="edit-avatar"\r\n v-show="userDetail.id === state.userInfo.id"\r\n @click="handleClick"\r\n >\r\n <template #icon>\r\n <n-icon size="16" color="#666666" :component="Camera" />\r\n </template>\r\n </n-button>\r\n </n-upload-trigger>\r\n </n-upload> '), createElementVNode("div", _hoisted_4, [createElementVNode("h4", null, [createElementVNode("label", _hoisted_5, toDisplayString(userDetail.name), 1), withDirectives(createElementVNode("label", {
173
+ }, null, 8, ["src"]), createCommentVNode(' <n-upload abstract accept="image/*" @change="onChange">\n <n-upload-trigger #="{ handleClick }" abstract>\n <n-button\n circle\n secondary\n class="edit-avatar"\n v-show="userDetail.id === state.userInfo.id"\n @click="handleClick"\n >\n <template #icon>\n <n-icon size="16" color="#666666" :component="Camera" />\n </template>\n </n-button>\n </n-upload-trigger>\n </n-upload> '), createElementVNode("div", _hoisted_4, [createElementVNode("h4", null, [createElementVNode("label", _hoisted_5, toDisplayString(userDetail.name), 1), withDirectives(createElementVNode("label", {
174
174
  class: normalizeClass(["iho-chatRole", unref(isDoctorRole)(userDetail.roleInfo) ? "isDoctor" : ""])
175
175
  }, toDisplayString(unref(getRoleName)(userDetail.roleInfo)), 3), [[vShow, unref(getRoleName)(userDetail.roleInfo)]])]), createElementVNode("p", null, toDisplayString(userDetail.orgName), 1)]), createVNode(unref(NButton), {
176
176
  strong: "",
@@ -178,6 +178,7 @@ declare const InfoHeader: SFCWithInstall<import("vue").DefineComponent<{
178
178
  feedbackType: "default" | "tooltip";
179
179
  fixMemoLeak: boolean;
180
180
  lazyRender: boolean;
181
+ dialogFn: import("../../shared/types").AnyFn;
181
182
  }>>>;
182
183
  };
183
184
  encrypted: {
@@ -363,6 +364,7 @@ declare const InfoHeader: SFCWithInstall<import("vue").DefineComponent<{
363
364
  feedbackType: "default" | "tooltip";
364
365
  fixMemoLeak: boolean;
365
366
  lazyRender: boolean;
367
+ dialogFn: import("../../shared/types").AnyFn;
366
368
  }>>>;
367
369
  };
368
370
  encrypted: {
@@ -559,6 +561,7 @@ declare const InfoHeader: SFCWithInstall<import("vue").DefineComponent<{
559
561
  feedbackType: "default" | "tooltip";
560
562
  fixMemoLeak: boolean;
561
563
  lazyRender: boolean;
564
+ dialogFn: import("../../shared/types").AnyFn;
562
565
  }>>;
563
566
  encrypted: boolean;
564
567
  };
@@ -813,6 +816,7 @@ declare const InfoHeader: SFCWithInstall<import("vue").DefineComponent<{
813
816
  feedbackType: "default" | "tooltip";
814
817
  fixMemoLeak: boolean;
815
818
  lazyRender: boolean;
819
+ dialogFn: import("../../shared/types").AnyFn;
816
820
  }>) => Record<string, import("@formily/json-schema").Stringify<{
817
821
  [key: symbol]: any;
818
822
  [key: `x-${string}`]: any;
@@ -1365,6 +1369,9 @@ declare const InfoHeader: SFCWithInstall<import("vue").DefineComponent<{
1365
1369
  type: BooleanConstructor;
1366
1370
  };
1367
1371
  lazyRender: BooleanConstructor;
1372
+ dialogFn: {
1373
+ default: () => (...args: any[]) => void;
1374
+ };
1368
1375
  }, {
1369
1376
  props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
1370
1377
  fieldList: {
@@ -1568,6 +1575,9 @@ declare const InfoHeader: SFCWithInstall<import("vue").DefineComponent<{
1568
1575
  type: BooleanConstructor;
1569
1576
  };
1570
1577
  lazyRender: BooleanConstructor;
1578
+ dialogFn: {
1579
+ default: () => (...args: any[]) => void;
1580
+ };
1571
1581
  }>> & {
1572
1582
  onFormChange?: ((...args: any[]) => any) | undefined;
1573
1583
  onScroll?: ((...args: any[]) => any) | undefined;
@@ -1744,6 +1754,7 @@ declare const InfoHeader: SFCWithInstall<import("vue").DefineComponent<{
1744
1754
  feedbackType: "default" | "tooltip";
1745
1755
  fixMemoLeak: boolean;
1746
1756
  lazyRender: boolean;
1757
+ dialogFn: import("../../shared/types").AnyFn;
1747
1758
  }>) => Record<string, import("@formily/json-schema").Stringify<{
1748
1759
  [key: symbol]: any;
1749
1760
  [key: `x-${string}`]: any;
@@ -2131,6 +2142,9 @@ declare const InfoHeader: SFCWithInstall<import("vue").DefineComponent<{
2131
2142
  type: BooleanConstructor;
2132
2143
  };
2133
2144
  lazyRender: BooleanConstructor;
2145
+ dialogFn: {
2146
+ default: () => (...args: any[]) => void;
2147
+ };
2134
2148
  }>> & {
2135
2149
  onFormChange?: ((...args: any[]) => any) | undefined;
2136
2150
  onScroll?: ((...args: any[]) => any) | undefined;
@@ -2164,6 +2178,7 @@ declare const InfoHeader: SFCWithInstall<import("vue").DefineComponent<{
2164
2178
  feedbackType: "default" | "tooltip";
2165
2179
  fixMemoLeak: boolean;
2166
2180
  lazyRender: boolean;
2181
+ dialogFn: (...args: any[]) => void;
2167
2182
  operationalFormInit: boolean;
2168
2183
  incrementalRender: boolean;
2169
2184
  }>;
@@ -2495,6 +2510,9 @@ declare const InfoHeader: SFCWithInstall<import("vue").DefineComponent<{
2495
2510
  type: BooleanConstructor;
2496
2511
  };
2497
2512
  lazyRender: BooleanConstructor;
2513
+ dialogFn: {
2514
+ default: () => (...args: any[]) => void;
2515
+ };
2498
2516
  }, {
2499
2517
  props: Readonly<import("@vue/shared").LooseRequired<Readonly<import("vue").ExtractPropTypes<{
2500
2518
  fieldList: {
@@ -2698,6 +2716,9 @@ declare const InfoHeader: SFCWithInstall<import("vue").DefineComponent<{
2698
2716
  type: BooleanConstructor;
2699
2717
  };
2700
2718
  lazyRender: BooleanConstructor;
2719
+ dialogFn: {
2720
+ default: () => (...args: any[]) => void;
2721
+ };
2701
2722
  }>> & {
2702
2723
  onFormChange?: ((...args: any[]) => any) | undefined;
2703
2724
  onScroll?: ((...args: any[]) => any) | undefined;
@@ -2874,6 +2895,7 @@ declare const InfoHeader: SFCWithInstall<import("vue").DefineComponent<{
2874
2895
  feedbackType: "default" | "tooltip";
2875
2896
  fixMemoLeak: boolean;
2876
2897
  lazyRender: boolean;
2898
+ dialogFn: import("../../shared/types").AnyFn;
2877
2899
  }>) => Record<string, import("@formily/json-schema").Stringify<{
2878
2900
  [key: symbol]: any;
2879
2901
  [key: `x-${string}`]: any;
@@ -3261,6 +3283,9 @@ declare const InfoHeader: SFCWithInstall<import("vue").DefineComponent<{
3261
3283
  type: BooleanConstructor;
3262
3284
  };
3263
3285
  lazyRender: BooleanConstructor;
3286
+ dialogFn: {
3287
+ default: () => (...args: any[]) => void;
3288
+ };
3264
3289
  }>> & {
3265
3290
  onFormChange?: ((...args: any[]) => any) | undefined;
3266
3291
  onScroll?: ((...args: any[]) => any) | undefined;
@@ -3294,6 +3319,7 @@ declare const InfoHeader: SFCWithInstall<import("vue").DefineComponent<{
3294
3319
  feedbackType: "default" | "tooltip";
3295
3320
  fixMemoLeak: boolean;
3296
3321
  lazyRender: boolean;
3322
+ dialogFn: (...args: any[]) => void;
3297
3323
  operationalFormInit: boolean;
3298
3324
  incrementalRender: boolean;
3299
3325
  }>;
@@ -3489,6 +3515,7 @@ declare const InfoHeader: SFCWithInstall<import("vue").DefineComponent<{
3489
3515
  feedbackType: "default" | "tooltip";
3490
3516
  fixMemoLeak: boolean;
3491
3517
  lazyRender: boolean;
3518
+ dialogFn: import("../../shared/types").AnyFn;
3492
3519
  }>>>;
3493
3520
  };
3494
3521
  encrypted: {