@usethink/shared-frontend 0.1.3 → 0.1.5

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 (42) hide show
  1. package/dist/src/components/basic/excel/index.js +1 -1
  2. package/dist/src/components/core/Modal/src/BasicModal2.vue.js +18 -17
  3. package/dist/src/components/core/Modal/src/BasicModal2.vue.js.map +1 -1
  4. package/dist/src/components/core/schema-form/src/hooks/useFormMethods.js +48 -47
  5. package/dist/src/components/core/schema-form/src/hooks/useFormMethods.js.map +1 -1
  6. package/dist/src/index.js +663 -651
  7. package/dist/src/index.js.map +1 -1
  8. package/dist/src/node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/actualApply.js +5 -5
  9. package/dist/src/node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/actualApply.js.map +1 -1
  10. package/dist/src/node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/functionCall.js +5 -2
  11. package/dist/src/node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/functionCall.js.map +1 -1
  12. package/dist/src/node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/index.js +7 -7
  13. package/dist/src/node_modules/.pnpm/call-bind-apply-helpers@1.0.2/node_modules/call-bind-apply-helpers/index.js.map +1 -1
  14. package/dist/src/node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/implementation.js +45 -38
  15. package/dist/src/node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/implementation.js.map +1 -1
  16. package/dist/src/node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/index.js +10 -3
  17. package/dist/src/node_modules/.pnpm/function-bind@1.1.2/node_modules/function-bind/index.js.map +1 -1
  18. package/dist/src/node_modules/.pnpm/get-intrinsic@1.3.0/node_modules/get-intrinsic/index.js +62 -62
  19. package/dist/src/node_modules/.pnpm/get-intrinsic@1.3.0/node_modules/get-intrinsic/index.js.map +1 -1
  20. package/dist/src/node_modules/.pnpm/hasown@2.0.4/node_modules/hasown/index.js +8 -8
  21. package/dist/src/node_modules/.pnpm/hasown@2.0.4/node_modules/hasown/index.js.map +1 -1
  22. package/dist/src/style.css +1 -1
  23. package/dist/src/styles/antdv.override.less +154 -0
  24. package/dist/src/styles/common.less +23 -0
  25. package/dist/src/styles/index.less +8 -0
  26. package/dist/src/styles/loading.less +64 -0
  27. package/dist/src/styles/login.css +81 -0
  28. package/dist/src/styles/reset.css +12 -0
  29. package/dist/src/styles/theme.less +50 -0
  30. package/dist/src/styles/transition.less +60 -0
  31. package/dist/src/styles/variables.less +51 -0
  32. package/dist/src/utils/index.js +64 -63
  33. package/dist/src/utils/index.js.map +1 -1
  34. package/dist/src/utils/tableConfig.js +17 -0
  35. package/dist/src/utils/tableConfig.js.map +1 -0
  36. package/dist/src/utils/useBufferStatus.js +35 -0
  37. package/dist/src/utils/useBufferStatus.js.map +1 -0
  38. package/dist/src/utils/useDownloadBlob.js +28 -0
  39. package/dist/src/utils/useDownloadBlob.js.map +1 -0
  40. package/dist/src/utils/useExeSubscription.js +66 -0
  41. package/dist/src/utils/useExeSubscription.js.map +1 -0
  42. package/package.json +8 -4
@@ -15,10 +15,10 @@ import "../../../utils/propTypes.js";
15
15
  import "../../../utils/request.js";
16
16
  import "../../../utils/Storage.js";
17
17
  import "../../../utils/uuid.js";
18
+ import "ant-design-vue";
18
19
  import "../../../locales/index.js";
19
20
  import "vue/jsx-runtime";
20
21
  import "../../../hooks/useModal/modal.js";
21
- import "ant-design-vue";
22
22
  import "../../core/schema-form/src/componentMap.js";
23
23
  import "@vueuse/core";
24
24
  /* empty css */
@@ -4,7 +4,7 @@ import y from "./components/ModalWrapper.vue.js";
4
4
  import A from "./components/ModalClose.vue.js";
5
5
  import D from "./components/ModalFooter.vue.js";
6
6
  import I from "./components/ModalHeader.vue.js";
7
- import { omit as m, isFunction as L } from "lodash-es";
7
+ import { omit as f, isFunction as L } from "lodash-es";
8
8
  import "dayjs";
9
9
  import "../../../../utils/dateUtil.js";
10
10
  import "../../../../utils/eventBus.js";
@@ -19,28 +19,29 @@ import "../../../../utils/propTypes.js";
19
19
  import "../../../../utils/request.js";
20
20
  import "../../../../utils/Storage.js";
21
21
  import "../../../../utils/uuid.js";
22
+ import "ant-design-vue";
22
23
  import { basicProps as $ } from "./props.js";
23
24
  import { useFullScreen as j } from "./hooks/useModalFullScreen.js";
24
- const pe = T({
25
+ const de = T({
25
26
  name: "BasicModal",
26
27
  components: { Modal: _, ModalWrapper: y, ModalClose: A, ModalFooter: D, ModalHeader: I },
27
28
  inheritAttrs: !1,
28
29
  props: $,
29
30
  emits: ["open-change", "height-change", "cancel", "ok", "register", "update:open"],
30
- setup(o, { emit: a, attrs: M }) {
31
- const n = c(!1), f = c(null), r = c(null), v = "mom-basic-modal", F = c(0), p = {
31
+ setup(o, { emit: r, attrs: M }) {
32
+ const n = c(!1), m = c(null), a = c(null), v = "mom-basic-modal", F = c(0), p = {
32
33
  setModalProps: H,
33
34
  emitVisible: void 0,
34
35
  redoModalHeight: () => {
35
36
  C(() => {
36
- t(r) && t(r).setModalHeight();
37
+ t(a) && t(a).setModalHeight();
37
38
  });
38
39
  }
39
40
  }, l = W();
40
- l && a("register", p, l.uid);
41
+ l && r("register", p, l.uid);
41
42
  const s = u(() => ({
42
43
  ...o,
43
- ...t(f)
44
+ ...t(m)
44
45
  })), { handleFullScreen: d, getWrapClassName: h, fullScreenRef: i } = j({
45
46
  wrapClassName: S(s.value, "wrapClassName")
46
47
  }), g = u(() => ({
@@ -59,7 +60,7 @@ const pe = T({
59
60
  open: t(n),
60
61
  wrapClassName: t(h)
61
62
  };
62
- return t(i) ? m(e, ["height", "title"]) : m(e, "title");
63
+ return t(i) ? f(e, ["height", "title"]) : f(e, "title");
63
64
  }), R = u(() => {
64
65
  if (!t(i))
65
66
  return t(g).height;
@@ -69,8 +70,8 @@ const pe = T({
69
70
  }), E(
70
71
  () => t(n),
71
72
  (e) => {
72
- a("open-change", e), a("update:open", e), l && p.emitVisible?.(e, l.uid), C(() => {
73
- o.scrollTop && e && t(r) && t(r).scrollTop();
73
+ r("open-change", e), r("update:open", e), l && p.emitVisible?.(e, l.uid), C(() => {
74
+ o.scrollTop && e && t(a) && t(a).scrollTop();
74
75
  });
75
76
  },
76
77
  {
@@ -84,17 +85,17 @@ const pe = T({
84
85
  n.value = !B;
85
86
  return;
86
87
  }
87
- n.value = !1, a("cancel", e);
88
+ n.value = !1, r("cancel", e);
88
89
  }
89
90
  }
90
91
  function H(e) {
91
- f.value = O(t(f) || {}, e), Reflect.has(e, "open") && (n.value = !!e.open), Reflect.has(e, "defaultFullscreen") && (i.value = !!e.defaultFullscreen);
92
+ m.value = O(t(m) || {}, e), Reflect.has(e, "open") && (n.value = !!e.open), Reflect.has(e, "defaultFullscreen") && (i.value = !!e.defaultFullscreen);
92
93
  }
93
94
  function k(e) {
94
- a("ok", e);
95
+ r("ok", e);
95
96
  }
96
97
  function b(e) {
97
- a("height-change", e);
98
+ r("height-change", e);
98
99
  }
99
100
  function x(e) {
100
101
  F.value = e;
@@ -111,8 +112,8 @@ const pe = T({
111
112
  getMergeProps: s,
112
113
  handleOk: k,
113
114
  openRef: n,
114
- omit: m,
115
- modalWrapperRef: r,
115
+ omit: f,
116
+ modalWrapperRef: a,
116
117
  handleExtHeight: x,
117
118
  handleHeightChange: b,
118
119
  handleTitleDbClick: N,
@@ -121,6 +122,6 @@ const pe = T({
121
122
  }
122
123
  });
123
124
  export {
124
- pe as default
125
+ de as default
125
126
  };
126
127
  //# sourceMappingURL=BasicModal2.vue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BasicModal2.vue.js","sources":["../../../../../../src/components/core/Modal/src/BasicModal.vue"],"sourcesContent":["<template>\n <Modal v-bind=\"getBindValue\" class=\"mom-modal\" @cancel=\"handleCancel\">\n <template v-if=\"!$slots.closeIcon\" #closeIcon>\n <ModalClose\n :can-fullscreen=\"getProps.canFullscreen\"\n :full-screen=\"fullScreenRef\"\n @cancel=\"handleCancel\"\n @fullscreen=\"handleFullScreen\"\n />\n </template>\n\n <template v-if=\"!$slots.title\" #title>\n <ModalHeader\n :help-message=\"getProps.helpMessage\"\n :title=\"getMergeProps.title\"\n @dblclick=\"handleTitleDbClick\"\n />\n </template>\n\n <template v-if=\"!$slots.footer\" #footer>\n <ModalFooter v-bind=\"getBindValue\" @ok=\"handleOk\" @cancel=\"handleCancel\">\n <template v-for=\"item in Object.keys($slots)\" #[item]=\"data\">\n <slot :name=\"item\" v-bind=\"data || {}\"></slot>\n </template>\n </ModalFooter>\n </template>\n\n <ModalWrapper\n ref=\"modalWrapperRef\"\n :use-wrapper=\"getProps.useWrapper\"\n :footer-offset=\"wrapperFooterOffset\"\n :full-screen=\"fullScreenRef\"\n :loading=\"getProps.loading\"\n :loading-tip=\"getProps.loadingTip\"\n :min-height=\"getProps.minHeight\"\n :height=\"getWrapperHeight\"\n :open=\"openRef\"\n :modal-footer-height=\"footer !== undefined && !footer ? 0 : undefined\"\n v-bind=\"omit(getProps.wrapperProps, 'open', 'height', 'modalFooterHeight')\"\n @ext-height=\"handleExtHeight\"\n @height-change=\"handleHeightChange\"\n >\n <slot></slot>\n </ModalWrapper>\n\n <template v-for=\"item in Object.keys(omit($slots, 'default'))\" #[item]=\"data\">\n <slot :name=\"item\" v-bind=\"data || {}\"></slot>\n </template>\n </Modal>\n</template>\n<script lang=\"ts\">\n import type { ModalProps, ModalMethods } from './typing'\n\n import {\n defineComponent,\n computed,\n ref,\n watch,\n unref,\n watchEffect,\n toRef,\n getCurrentInstance,\n nextTick,\n } from 'vue'\n import Modal from './components/Modal'\n import ModalWrapper from './components/ModalWrapper.vue'\n import ModalClose from './components/ModalClose.vue'\n import ModalFooter from './components/ModalFooter.vue'\n import ModalHeader from './components/ModalHeader.vue'\n import { isFunction } from '@/utils/is'\n import { deepMerge } from '@/utils'\n import { basicProps } from './props'\n import { useFullScreen } from './hooks/useModalFullScreen'\n import { omit } from 'lodash-es'\n\n export default defineComponent({\n name: 'BasicModal',\n components: { Modal, ModalWrapper, ModalClose, ModalFooter, ModalHeader },\n inheritAttrs: false,\n props: basicProps,\n emits: ['open-change', 'height-change', 'cancel', 'ok', 'register', 'update:open'],\n setup(props, { emit, attrs }) {\n const openRef = ref(false)\n const propsRef = ref<Partial<ModalProps> | null>(null)\n const modalWrapperRef = ref<any>(null)\n const prefixCls = 'mom-basic-modal'\n\n // modal Bottom and top height\n const extHeightRef = ref(0)\n const modalMethods: ModalMethods = {\n setModalProps,\n emitVisible: undefined,\n redoModalHeight: () => {\n nextTick(() => {\n if (unref(modalWrapperRef)) {\n ;(unref(modalWrapperRef) as any).setModalHeight()\n }\n })\n },\n }\n\n const instance = getCurrentInstance()\n if (instance) {\n emit('register', modalMethods, instance.uid)\n }\n\n // Custom title component: get title\n const getMergeProps = computed((): Recordable => {\n return {\n ...props,\n ...(unref(propsRef) as any),\n }\n })\n\n const { handleFullScreen, getWrapClassName, fullScreenRef } = useFullScreen({\n modalWrapperRef,\n extHeightRef,\n wrapClassName: toRef(getMergeProps.value, 'wrapClassName'),\n })\n\n // modal component does not need title and origin buttons\n const getProps = computed((): Recordable => {\n const opt = {\n ...unref(getMergeProps),\n open: unref(openRef),\n okButtonProps: undefined,\n cancelButtonProps: undefined,\n title: undefined,\n }\n return {\n ...opt,\n wrapClassName: unref(getWrapClassName),\n }\n })\n\n const getBindValue = computed((): Recordable => {\n const attr = {\n ...attrs,\n ...unref(getMergeProps),\n open: unref(openRef),\n wrapClassName: unref(getWrapClassName),\n }\n if (unref(fullScreenRef)) {\n return omit(attr, ['height', 'title'])\n }\n return omit(attr, 'title')\n })\n\n const getWrapperHeight = computed(() => {\n if (unref(fullScreenRef)) return undefined\n return unref(getProps).height\n })\n\n watchEffect(() => {\n openRef.value = !!props.open\n fullScreenRef.value = !!props.defaultFullscreen\n })\n\n watch(\n () => unref(openRef),\n v => {\n emit('open-change', v)\n emit('update:open', v)\n instance && modalMethods.emitVisible?.(v, instance.uid)\n nextTick(() => {\n if (props.scrollTop && v && unref(modalWrapperRef)) {\n ;(unref(modalWrapperRef) as any).scrollTop()\n }\n })\n },\n {\n immediate: false,\n },\n )\n\n // 取消事件\n async function handleCancel(e: Event) {\n e?.stopPropagation()\n // 过滤自定义关闭按钮的空白区域\n if ((e.target as HTMLElement)?.classList?.contains(`${prefixCls}-close--custom`)) return\n if (props.closeFunc && isFunction(props.closeFunc)) {\n const isClose: boolean = await props.closeFunc()\n openRef.value = !isClose\n return\n }\n\n openRef.value = false\n emit('cancel', e)\n }\n\n /**\n * @description: 设置modal参数\n */\n function setModalProps(props: Partial<ModalProps>): void {\n // Keep the last setModalProps\n propsRef.value = deepMerge(unref(propsRef) || ({} as any), props)\n if (Reflect.has(props, 'open')) {\n openRef.value = !!props.open\n }\n if (Reflect.has(props, 'defaultFullscreen')) {\n fullScreenRef.value = !!props.defaultFullscreen\n }\n }\n\n function handleOk(e: Event) {\n emit('ok', e)\n }\n\n function handleHeightChange(height: string) {\n emit('height-change', height)\n }\n\n function handleExtHeight(height: number) {\n extHeightRef.value = height\n }\n\n function handleTitleDbClick(e) {\n if (!props.canFullscreen) return\n e.stopPropagation()\n handleFullScreen(e)\n }\n\n return {\n handleCancel,\n getBindValue,\n getProps,\n handleFullScreen,\n fullScreenRef,\n getMergeProps,\n handleOk,\n openRef,\n omit,\n modalWrapperRef,\n handleExtHeight,\n handleHeightChange,\n handleTitleDbClick,\n getWrapperHeight,\n }\n },\n })\n</script>\n<style lang=\"less\">\n .ant-modal-close {\n background-color: transparent;\n }\n</style>\n"],"names":["_sfc_main","defineComponent","Modal","ModalWrapper","ModalClose","ModalFooter","ModalHeader","basicProps","props","emit","attrs","openRef","ref","propsRef","modalWrapperRef","prefixCls","extHeightRef","modalMethods","setModalProps","nextTick","unref","instance","getCurrentInstance","getMergeProps","computed","handleFullScreen","getWrapClassName","fullScreenRef","useFullScreen","toRef","getProps","getBindValue","attr","omit","getWrapperHeight","watchEffect","watch","v","handleCancel","isFunction","isClose","deepMerge","handleOk","handleHeightChange","height","handleExtHeight","handleTitleDbClick"],"mappings":"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"}
1
+ {"version":3,"file":"BasicModal2.vue.js","sources":["../../../../../../src/components/core/Modal/src/BasicModal.vue"],"sourcesContent":["<template>\n <Modal v-bind=\"getBindValue\" class=\"mom-modal\" @cancel=\"handleCancel\">\n <template v-if=\"!$slots.closeIcon\" #closeIcon>\n <ModalClose\n :can-fullscreen=\"getProps.canFullscreen\"\n :full-screen=\"fullScreenRef\"\n @cancel=\"handleCancel\"\n @fullscreen=\"handleFullScreen\"\n />\n </template>\n\n <template v-if=\"!$slots.title\" #title>\n <ModalHeader\n :help-message=\"getProps.helpMessage\"\n :title=\"getMergeProps.title\"\n @dblclick=\"handleTitleDbClick\"\n />\n </template>\n\n <template v-if=\"!$slots.footer\" #footer>\n <ModalFooter v-bind=\"getBindValue\" @ok=\"handleOk\" @cancel=\"handleCancel\">\n <template v-for=\"item in Object.keys($slots)\" #[item]=\"data\">\n <slot :name=\"item\" v-bind=\"data || {}\"></slot>\n </template>\n </ModalFooter>\n </template>\n\n <ModalWrapper\n ref=\"modalWrapperRef\"\n :use-wrapper=\"getProps.useWrapper\"\n :footer-offset=\"wrapperFooterOffset\"\n :full-screen=\"fullScreenRef\"\n :loading=\"getProps.loading\"\n :loading-tip=\"getProps.loadingTip\"\n :min-height=\"getProps.minHeight\"\n :height=\"getWrapperHeight\"\n :open=\"openRef\"\n :modal-footer-height=\"footer !== undefined && !footer ? 0 : undefined\"\n v-bind=\"omit(getProps.wrapperProps, 'open', 'height', 'modalFooterHeight')\"\n @ext-height=\"handleExtHeight\"\n @height-change=\"handleHeightChange\"\n >\n <slot></slot>\n </ModalWrapper>\n\n <template v-for=\"item in Object.keys(omit($slots, 'default'))\" #[item]=\"data\">\n <slot :name=\"item\" v-bind=\"data || {}\"></slot>\n </template>\n </Modal>\n</template>\n<script lang=\"ts\">\n import type { ModalProps, ModalMethods } from './typing'\n\n import {\n defineComponent,\n computed,\n ref,\n watch,\n unref,\n watchEffect,\n toRef,\n getCurrentInstance,\n nextTick,\n } from 'vue'\n import Modal from './components/Modal'\n import ModalWrapper from './components/ModalWrapper.vue'\n import ModalClose from './components/ModalClose.vue'\n import ModalFooter from './components/ModalFooter.vue'\n import ModalHeader from './components/ModalHeader.vue'\n import { isFunction } from '@/utils/is'\n import { deepMerge } from '@/utils'\n import { basicProps } from './props'\n import { useFullScreen } from './hooks/useModalFullScreen'\n import { omit } from 'lodash-es'\n\n export default defineComponent({\n name: 'BasicModal',\n components: { Modal, ModalWrapper, ModalClose, ModalFooter, ModalHeader },\n inheritAttrs: false,\n props: basicProps,\n emits: ['open-change', 'height-change', 'cancel', 'ok', 'register', 'update:open'],\n setup(props, { emit, attrs }) {\n const openRef = ref(false)\n const propsRef = ref<Partial<ModalProps> | null>(null)\n const modalWrapperRef = ref<any>(null)\n const prefixCls = 'mom-basic-modal'\n\n // modal Bottom and top height\n const extHeightRef = ref(0)\n const modalMethods: ModalMethods = {\n setModalProps,\n emitVisible: undefined,\n redoModalHeight: () => {\n nextTick(() => {\n if (unref(modalWrapperRef)) {\n ;(unref(modalWrapperRef) as any).setModalHeight()\n }\n })\n },\n }\n\n const instance = getCurrentInstance()\n if (instance) {\n emit('register', modalMethods, instance.uid)\n }\n\n // Custom title component: get title\n const getMergeProps = computed((): Recordable => {\n return {\n ...props,\n ...(unref(propsRef) as any),\n }\n })\n\n const { handleFullScreen, getWrapClassName, fullScreenRef } = useFullScreen({\n modalWrapperRef,\n extHeightRef,\n wrapClassName: toRef(getMergeProps.value, 'wrapClassName'),\n })\n\n // modal component does not need title and origin buttons\n const getProps = computed((): Recordable => {\n const opt = {\n ...unref(getMergeProps),\n open: unref(openRef),\n okButtonProps: undefined,\n cancelButtonProps: undefined,\n title: undefined,\n }\n return {\n ...opt,\n wrapClassName: unref(getWrapClassName),\n }\n })\n\n const getBindValue = computed((): Recordable => {\n const attr = {\n ...attrs,\n ...unref(getMergeProps),\n open: unref(openRef),\n wrapClassName: unref(getWrapClassName),\n }\n if (unref(fullScreenRef)) {\n return omit(attr, ['height', 'title'])\n }\n return omit(attr, 'title')\n })\n\n const getWrapperHeight = computed(() => {\n if (unref(fullScreenRef)) return undefined\n return unref(getProps).height\n })\n\n watchEffect(() => {\n openRef.value = !!props.open\n fullScreenRef.value = !!props.defaultFullscreen\n })\n\n watch(\n () => unref(openRef),\n v => {\n emit('open-change', v)\n emit('update:open', v)\n instance && modalMethods.emitVisible?.(v, instance.uid)\n nextTick(() => {\n if (props.scrollTop && v && unref(modalWrapperRef)) {\n ;(unref(modalWrapperRef) as any).scrollTop()\n }\n })\n },\n {\n immediate: false,\n },\n )\n\n // 取消事件\n async function handleCancel(e: Event) {\n e?.stopPropagation()\n // 过滤自定义关闭按钮的空白区域\n if ((e.target as HTMLElement)?.classList?.contains(`${prefixCls}-close--custom`)) return\n if (props.closeFunc && isFunction(props.closeFunc)) {\n const isClose: boolean = await props.closeFunc()\n openRef.value = !isClose\n return\n }\n\n openRef.value = false\n emit('cancel', e)\n }\n\n /**\n * @description: 设置modal参数\n */\n function setModalProps(props: Partial<ModalProps>): void {\n // Keep the last setModalProps\n propsRef.value = deepMerge(unref(propsRef) || ({} as any), props)\n if (Reflect.has(props, 'open')) {\n openRef.value = !!props.open\n }\n if (Reflect.has(props, 'defaultFullscreen')) {\n fullScreenRef.value = !!props.defaultFullscreen\n }\n }\n\n function handleOk(e: Event) {\n emit('ok', e)\n }\n\n function handleHeightChange(height: string) {\n emit('height-change', height)\n }\n\n function handleExtHeight(height: number) {\n extHeightRef.value = height\n }\n\n function handleTitleDbClick(e) {\n if (!props.canFullscreen) return\n e.stopPropagation()\n handleFullScreen(e)\n }\n\n return {\n handleCancel,\n getBindValue,\n getProps,\n handleFullScreen,\n fullScreenRef,\n getMergeProps,\n handleOk,\n openRef,\n omit,\n modalWrapperRef,\n handleExtHeight,\n handleHeightChange,\n handleTitleDbClick,\n getWrapperHeight,\n }\n },\n })\n</script>\n<style lang=\"less\">\n .ant-modal-close {\n background-color: transparent;\n }\n</style>\n"],"names":["_sfc_main","defineComponent","Modal","ModalWrapper","ModalClose","ModalFooter","ModalHeader","basicProps","props","emit","attrs","openRef","ref","propsRef","modalWrapperRef","prefixCls","extHeightRef","modalMethods","setModalProps","nextTick","unref","instance","getCurrentInstance","getMergeProps","computed","handleFullScreen","getWrapClassName","fullScreenRef","useFullScreen","toRef","getProps","getBindValue","attr","omit","getWrapperHeight","watchEffect","watch","v","handleCancel","isFunction","isClose","deepMerge","handleOk","handleHeightChange","height","handleExtHeight","handleTitleDbClick"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { unref as i, toRaw as ee } from "vue";
2
2
  import { isArray as g, isFunction as T, isString as h, set as d, unset as v, isNil as A, cloneDeep as x, uniqBy as te } from "lodash-es";
3
3
  import B from "dayjs";
4
- import { handleInputNumberValue as ne, dateItemType as oe } from "../helper.js";
4
+ import { handleInputNumberValue as oe, dateItemType as ne } from "../helper.js";
5
5
  import { useFormContext as se } from "./useFormContext.js";
6
6
  import { dateUtil as C } from "../../../../../utils/dateUtil.js";
7
7
  import "../../../../../utils/eventBus.js";
@@ -17,7 +17,8 @@ import "../../../../../utils/propTypes.js";
17
17
  import "../../../../../utils/request.js";
18
18
  import "../../../../../utils/Storage.js";
19
19
  import "../../../../../utils/uuid.js";
20
- const Ee = () => {
20
+ import "ant-design-vue";
21
+ const Se = () => {
21
22
  const M = se(), {
22
23
  compRefMap: K,
23
24
  formModel: l,
@@ -36,35 +37,35 @@ const Ee = () => {
36
37
  return i(p) ? w(ee(i(l))) : {};
37
38
  }
38
39
  function q(e) {
39
- return i(c).schemas?.some((s) => s.field === e && h(s.component) ? oe.includes(s.component) : !1);
40
+ return i(c).schemas?.some((s) => s.field === e && h(s.component) ? ne.includes(s.component) : !1);
40
41
  }
41
42
  async function S(e) {
42
- const t = i(y), s = t.map((o) => o.field).filter(Boolean);
43
+ const t = i(y), s = t.map((n) => n.field).filter(Boolean);
43
44
  Object.assign(R, e);
44
45
  const r = [];
45
- Object.entries(e).forEach(([o, n]) => {
46
- const f = t.find((a) => a.field === o), m = Reflect.has(e, o);
47
- if (h(f?.component) && (n = ne(f?.component, n)), m && s.includes(o)) {
48
- if (q(o))
49
- if (Array.isArray(n)) {
46
+ Object.entries(e).forEach(([n, o]) => {
47
+ const f = t.find((a) => a.field === n), m = Reflect.has(e, n);
48
+ if (h(f?.component) && (o = oe(f?.component, o)), m && s.includes(n)) {
49
+ if (q(n))
50
+ if (Array.isArray(o)) {
50
51
  const a = [];
51
- for (const u of n)
52
+ for (const u of o)
52
53
  a.push(u ? B(u) : null);
53
- d(l, o, a);
54
+ d(l, n, a);
54
55
  } else {
55
56
  const { componentProps: a } = f || {};
56
57
  let u = a;
57
58
  T(a) && (u = u({ formPropsRef: c, formModel: l })), d(
58
59
  l,
59
- o,
60
- n ? u?.valueFormat ? n : B(n) : null
60
+ n,
61
+ o ? u?.valueFormat ? o : B(o) : null
61
62
  );
62
63
  }
63
64
  else
64
- d(l, o, n);
65
- r.push(o);
65
+ d(l, n, o);
66
+ r.push(n);
66
67
  }
67
- }), await j(r).catch((o) => {
68
+ }), await j(r).catch((n) => {
68
69
  });
69
70
  }
70
71
  async function H(e) {
@@ -72,14 +73,14 @@ const Ee = () => {
72
73
  F(e) && t.push(e), g(e) && (t = [...e]), i(c).schemas = t;
73
74
  }
74
75
  async function _(e, t, s = !1) {
75
- const r = x(i(y)), o = r.findIndex(
76
- (n) => n.field === t
76
+ const r = x(i(y)), n = r.findIndex(
77
+ (o) => o.field === t
77
78
  );
78
- if (!t || o === -1 || s) {
79
+ if (!t || n === -1 || s) {
79
80
  s ? r.unshift(e) : r.push(e), c.value.schemas = r;
80
81
  return;
81
82
  }
82
- o !== -1 && r.splice(o + 1, 0, e), c.value.schemas = r, P(c.value.schemas);
83
+ n !== -1 && r.splice(n + 1, 0, e), c.value.schemas = r, P(c.value.schemas);
83
84
  }
84
85
  async function z(e) {
85
86
  const t = x(i(y));
@@ -89,8 +90,8 @@ const Ee = () => {
89
90
  h(e) && (s = [e]);
90
91
  for (const r of s)
91
92
  if (h(r)) {
92
- const o = t.findIndex((n) => n.field === r);
93
- o !== -1 && (v(l, r), t.splice(o, 1));
93
+ const n = t.findIndex((o) => o.field === r);
94
+ n !== -1 && (v(l, r), t.splice(n, 1));
94
95
  }
95
96
  c.value.schemas = t;
96
97
  }
@@ -100,37 +101,37 @@ const Ee = () => {
100
101
  const G = (e) => {
101
102
  let t = [];
102
103
  if (F(e) && t.push(e), g(e) && (t = [...e]), !t.every(
103
- (n) => n.component === "Divider" || Reflect.has(n, "field") && n.field
104
+ (o) => o.component === "Divider" || Reflect.has(o, "field") && o.field
104
105
  )) {
105
106
  console.error(
106
107
  "All children of the form Schema array that need to be updated must contain the `field` field"
107
108
  );
108
109
  return;
109
110
  }
110
- const r = [], o = [];
111
- i(y).forEach((n) => {
112
- const f = t.find((m) => n.field === m.field);
111
+ const r = [], n = [];
112
+ i(y).forEach((o) => {
113
+ const f = t.find((m) => o.field === m.field);
113
114
  if (f) {
114
- const m = f.componentProps, a = N(n, f);
115
- if (V.has(n.field)) {
116
- const u = V.get(n.field);
115
+ const m = f.componentProps, a = N(o, f);
116
+ if (V.has(o.field)) {
117
+ const u = V.get(o.field);
117
118
  a.componentProps = (I) => ({
118
119
  ...u(I),
119
120
  // @ts-ignore
120
121
  ...T(m) ? m(I) : m
121
122
  });
122
123
  }
123
- o.push(a), r.push(a);
124
+ n.push(a), r.push(a);
124
125
  } else
125
- r.push(n);
126
- }), P(o), c.value.schemas = te(r, "field");
126
+ r.push(o);
127
+ }), P(n), c.value.schemas = te(r, "field");
127
128
  };
128
129
  function P(e) {
129
130
  let t = [];
130
131
  F(e) && t.push(e), g(e) && (t = [...e]);
131
132
  const s = {}, r = E();
132
- t.forEach((o) => {
133
- o.component != "Divider" && Reflect.has(o, "field") && o.field && !A(o.defaultValue) && (!(o.field in r) || A(r[o.field])) && (s[o.field] = o.defaultValue);
133
+ t.forEach((n) => {
134
+ n.component != "Divider" && Reflect.has(n, "field") && n.field && !A(n.defaultValue) && (!(n.field in r) || A(r[n.field])) && (s[n.field] = n.defaultValue);
134
135
  }), S(s);
135
136
  }
136
137
  async function J() {
@@ -163,21 +164,21 @@ const Ee = () => {
163
164
  if (!F(e))
164
165
  return {};
165
166
  const t = {};
166
- for (let [o, n] of Object.entries(e)) {
167
- if (!o || g(n) && n.length === 0 || T(n))
167
+ for (let [n, o] of Object.entries(e)) {
168
+ if (!n || g(o) && o.length === 0 || T(o))
168
169
  continue;
169
170
  const { transformDateFunc: f } = i(b);
170
- F(n) && (n = f?.(n)), g(n) && n[0]?.format && n[1]?.format && (n = n.map((a) => f?.(a))), h(n) && (n = n.trim());
171
- const m = D(o);
172
- if (T(m?.transform) && (n = m?.transform(n), F(n))) {
173
- Object.assign(t, n), Reflect.deleteProperty(t, o);
171
+ F(o) && (o = f?.(o)), g(o) && o[0]?.format && o[1]?.format && (o = o.map((a) => f?.(a))), h(o) && (o = o.trim());
172
+ const m = D(n);
173
+ if (T(m?.transform) && (o = m?.transform(o), F(o))) {
174
+ Object.assign(t, o), Reflect.deleteProperty(t, n);
174
175
  continue;
175
176
  }
176
- d(t, o, n);
177
+ d(t, n, o);
177
178
  }
178
179
  const s = [], { schemas: r } = c.value;
179
180
  return r?.forEach(
180
- (o) => s.push({ field: o.field, type: o.component })
181
+ (n) => s.push({ field: n.field, type: n.component })
181
182
  ), d(t, "HeaderUniqForm", { form: s }), k(t);
182
183
  }
183
184
  function k(e) {
@@ -186,13 +187,13 @@ const Ee = () => {
186
187
  return e;
187
188
  for (const [
188
189
  s,
189
- [r, o],
190
- n = "YYYY-MM-DD"
190
+ [r, n],
191
+ o = "YYYY-MM-DD"
191
192
  ] of t) {
192
- if (!s || !r || !o || !e[s])
193
+ if (!s || !r || !n || !e[s])
193
194
  continue;
194
195
  const [f, m] = e[s];
195
- e[r] = C(f).format(n), e[o] = C(m).format(n), Reflect.deleteProperty(e, s);
196
+ e[r] = C(f).format(o), e[n] = C(m).format(o), Reflect.deleteProperty(e, s);
196
197
  }
197
198
  return e;
198
199
  }
@@ -225,6 +226,6 @@ const Ee = () => {
225
226
  };
226
227
  };
227
228
  export {
228
- Ee as useFormMethods
229
+ Se as useFormMethods
229
230
  };
230
231
  //# sourceMappingURL=useFormMethods.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useFormMethods.js","sources":["../../../../../../../src/components/core/schema-form/src/hooks/useFormMethods.ts"],"sourcesContent":["import { toRaw, unref } from \"vue\";\nimport { cloneDeep, set, unset, isNil, uniqBy } from \"lodash-es\";\nimport dayjs from \"dayjs\";\nimport { dateItemType, handleInputNumberValue } from \"../helper\";\nimport { useFormContext } from \"./useFormContext\";\nimport type { SchemaFormProps } from \"../schema-form\";\nimport type { UnwrapFormSchema } from \"../types/form\";\nimport type { NamePath } from \"ant-design-vue/lib/form/interface\";\nimport { deepMerge } from \"@/utils\";\nimport { isFunction, isObject, isArray, isString } from \"@/utils/is\";\nimport { dateUtil } from \"@/utils/dateUtil\";\n\ntype FormSchema = UnwrapFormSchema;\n\nexport type FormMethods = ReturnType<typeof useFormMethods>;\n\nexport const useFormMethods = () => {\n const schemaFormContext = useFormContext();\n const {\n compRefMap,\n formModel,\n formPropsRef,\n cacheFormModel,\n schemaFormRef,\n getFormProps,\n formSchemasRef,\n defaultFormValues,\n originComponentPropsFnMap,\n emit,\n } = schemaFormContext;\n\n // 将所有的表单组件实例保存起来, 方便外面通过表单组件实例操作\n const setItemRef = (field: string) => {\n return (el) => {\n if (el) {\n compRefMap.set(field, el);\n }\n };\n };\n\n function getFieldsValue(): Recordable {\n const formEl = unref(schemaFormRef);\n if (!formEl) return {};\n return handleFormValues(toRaw(unref(formModel)));\n }\n\n /**\n * @description: Is it time\n */\n function itemIsDateType(key: string) {\n const schemas = unref(formPropsRef).schemas as FormSchema[] | undefined;\n return schemas?.some((item: FormSchema) => {\n return item.field === key && isString(item.component)\n ? dateItemType.includes(item.component)\n : false;\n });\n }\n\n /**\n * @description: 设置表单字段值\n */\n async function setFieldsValue(values: Recordable) {\n const schemas = unref(formSchemasRef) as FormSchema[];\n // @ts-ignore\n const fields = schemas.map((item) => item.field).filter(Boolean);\n\n Object.assign(cacheFormModel, values);\n\n const validKeys: string[] = [];\n Object.entries(values).forEach(([key, value]) => {\n const schema = schemas.find((item) => item.field === key);\n\n const hasKey = Reflect.has(values, key);\n if (isString(schema?.component)) {\n value = handleInputNumberValue(schema?.component, value);\n }\n // 0| '' is allow\n if (hasKey && fields.includes(key)) {\n // time type\n if (itemIsDateType(key)) {\n if (Array.isArray(value)) {\n const arr: any[] = [];\n for (const ele of value) {\n arr.push(ele ? dayjs(ele) : null);\n }\n set(formModel, key, arr);\n } else {\n const { componentProps } = schema || {};\n let _props = componentProps as any;\n if (isFunction(componentProps)) {\n _props = _props({ formPropsRef, formModel });\n }\n set(\n formModel,\n key,\n value ? (_props?.valueFormat ? value : dayjs(value)) : null,\n );\n }\n } else {\n set(formModel, key, value);\n }\n validKeys.push(key);\n }\n });\n // console.log('formModel', formModel);\n await validateFields(validKeys).catch((_) => {});\n }\n\n async function resetSchema(\n data: Partial<FormSchema> | Partial<FormSchema>[],\n ) {\n let updateData: Partial<FormSchema>[] = [];\n if (isObject(data)) {\n updateData.push(data as FormSchema);\n }\n if (isArray(data)) {\n updateData = [...data];\n }\n unref(formPropsRef).schemas = updateData as FormSchema[];\n }\n\n /**\n * @description: 插入到指定 field 后面,如果没传指定 field,则插入到最后,当 first = true 时插入到第一个位置\n */\n async function appendSchemaByField(\n schemaItem: FormSchema,\n prefixField?: string,\n first = false,\n ) {\n const schemaList = cloneDeep(unref(formSchemasRef)) as FormSchema[];\n\n const index = schemaList.findIndex(\n (schema) => schema.field === prefixField,\n );\n\n if (!prefixField || index === -1 || first) {\n first ? schemaList.unshift(schemaItem) : schemaList.push(schemaItem);\n formPropsRef.value.schemas = schemaList;\n return;\n }\n if (index !== -1) {\n schemaList.splice(index + 1, 0, schemaItem);\n }\n formPropsRef.value.schemas = schemaList;\n setDefaultValue(formPropsRef.value.schemas);\n }\n\n /**\n * @description: 根据 field 删除 Schema\n */\n async function removeSchemaByField(fields: string | string[]): Promise<void> {\n const schemaList = cloneDeep(unref(formSchemasRef)) as FormSchema[];\n\n if (!fields) {\n return;\n }\n\n let fieldList: string[] = isString(fields) ? [fields] : fields;\n if (isString(fields)) {\n fieldList = [fields];\n }\n for (const field of fieldList) {\n if (isString(field)) {\n const index = schemaList.findIndex((schema) => schema.field === field);\n if (index !== -1) {\n unset(formModel, field);\n schemaList.splice(index, 1);\n }\n }\n }\n\n formPropsRef.value.schemas = schemaList;\n }\n\n /**\n * @description: 根据 field 查找 Schema\n */\n function getSchemaByField(field: string): FormSchema | undefined {\n return (unref(formSchemasRef) as FormSchema[]).find((schema) => field === schema.field);\n }\n\n /**\n * @description 更新formItemSchema\n */\n const updateSchema = (data: Partial<FormSchema> | Partial<FormSchema>[]) => {\n let updateData: Partial<FormSchema>[] = [];\n if (isObject(data)) {\n updateData.push(data as FormSchema);\n }\n if (isArray(data)) {\n updateData = [...data];\n }\n\n const hasField = updateData.every(\n (item) =>\n item.component === \"Divider\" ||\n (Reflect.has(item, \"field\") && item.field),\n );\n\n if (!hasField) {\n console.error(\n \"All children of the form Schema array that need to be updated must contain the `field` field\",\n );\n return;\n }\n const schemas: FormSchema[] = [];\n const updatedSchemas: FormSchema[] = [];\n\n (unref(formSchemasRef) as FormSchema[]).forEach((val) => {\n const updateItem = updateData.find((n) => val.field === n.field);\n if (updateItem) {\n const compProps = updateItem.componentProps;\n const newSchema = deepMerge(val, updateItem);\n\n if (originComponentPropsFnMap.has(val.field)) {\n const originCompPropsFn = originComponentPropsFnMap.get(val.field)!;\n\n newSchema.componentProps = (opt) => {\n return {\n ...originCompPropsFn(opt),\n // @ts-ignore\n ...(isFunction(compProps) ? compProps(opt) : compProps),\n };\n };\n }\n\n updatedSchemas.push(newSchema);\n schemas.push(newSchema);\n } else {\n schemas.push(val);\n }\n });\n\n setDefaultValue(updatedSchemas);\n formPropsRef.value.schemas = uniqBy<UnwrapFormSchema>(schemas, \"field\");\n };\n\n function setDefaultValue(data: FormSchema | FormSchema[]) {\n let schemas: FormSchema[] = [];\n if (isObject(data)) {\n schemas.push(data as FormSchema);\n }\n if (isArray(data)) {\n schemas = [...data];\n }\n\n const obj: Recordable = {};\n const currentFieldsValue = getFieldsValue();\n schemas.forEach((item) => {\n if (\n item.component != \"Divider\" &&\n Reflect.has(item, \"field\") &&\n item.field &&\n !isNil(item.defaultValue) &&\n (!(item.field in currentFieldsValue) ||\n isNil(currentFieldsValue[item.field]))\n ) {\n obj[item.field] = item.defaultValue;\n }\n });\n setFieldsValue(obj);\n }\n\n async function resetFields(): Promise<void> {\n const { resetFunc, submitOnReset } = unref(getFormProps);\n resetFunc && isFunction(resetFunc) && (await resetFunc());\n\n Object.keys(formModel).forEach((key) => {\n set(formModel, key, defaultFormValues[key]);\n });\n\n emit(\"reset\", formModel);\n submitOnReset && schemaFormContext.submit();\n setTimeout(clearValidate);\n }\n\n async function validateFields(nameList?: NamePath[] | undefined) {\n return schemaFormRef.value?.validateFields(nameList);\n }\n\n async function validate(nameList?: NamePath[] | undefined) {\n return await schemaFormRef.value!.validate(nameList);\n }\n\n async function clearValidate(name?: string | string[]) {\n await schemaFormRef.value?.clearValidate(name);\n }\n\n async function scrollToField(\n name: NamePath,\n options?: ScrollOptions | undefined,\n ) {\n await schemaFormRef.value?.scrollToField(name, options);\n }\n\n // 设置某个字段的值\n const setFormModel = (key: Key, value: any) => {\n set(formModel, key, value);\n set(cacheFormModel, key, value);\n const { validateTrigger } = unref(getFormProps);\n if (!validateTrigger || validateTrigger === \"change\") {\n schemaFormRef.value?.validateFields([key]);\n }\n };\n\n // 删除某个字段\n const delFormModel = (key: Key) => {\n return unset(formModel, key);\n };\n\n const setSchemaFormProps = (formProps: Partial<SchemaFormProps>) => {\n const { schemas } = formPropsRef.value;\n formPropsRef.value = deepMerge(unref(formPropsRef) || {}, formProps);\n // @ts-ignore\n formPropsRef.value.schemas = schemas?.length ? schemas : formProps.schemas;\n };\n\n // Processing form values\n function handleFormValues(values: Recordable) {\n if (!isObject(values)) {\n return {};\n }\n const res: Recordable = {};\n for (let [key, value] of Object.entries(values)) {\n if (!key || (isArray(value) && value.length === 0) || isFunction(value)) {\n continue;\n }\n\n const { transformDateFunc } = unref(getFormProps);\n if (isObject(value)) {\n value = transformDateFunc?.(value);\n }\n\n if (isArray(value) && value[0]?.format && value[1]?.format) {\n value = value.map((item) => transformDateFunc?.(item));\n }\n // Remove spaces\n if (isString(value)) {\n value = value.trim();\n }\n\n const schemaItem = getSchemaByField(key);\n\n if (isFunction(schemaItem?.transform)) {\n value = schemaItem?.transform(value);\n if (isObject(value)) {\n Object.assign(res, value);\n Reflect.deleteProperty(res, key);\n continue;\n }\n }\n\n set(res, key, value);\n }\n // 给后端传递form的field及组件类型, 后端统一处理分页查询\n const fieldValue = [] as any;\n const { schemas } = formPropsRef.value;\n schemas?.forEach((x) =>\n fieldValue.push({ field: x.field, type: x.component }),\n );\n set(res, \"HeaderUniqForm\", { form: fieldValue });\n return handleRangeTimeValue(res);\n }\n\n /**\n * @description: Processing time interval parameters\n */\n function handleRangeTimeValue(values: Recordable) {\n const fieldMapToTime = unref(getFormProps).fieldMapToTime;\n\n if (!fieldMapToTime || !Array.isArray(fieldMapToTime)) {\n return values;\n }\n\n for (const [\n field,\n [startTimeKey, endTimeKey],\n format = \"YYYY-MM-DD\",\n ] of fieldMapToTime) {\n if (!field || !startTimeKey || !endTimeKey || !values[field]) {\n continue;\n }\n\n const [startTime, endTime]: string[] = values[field];\n\n values[startTimeKey] = dateUtil(startTime).format(format);\n values[endTimeKey] = dateUtil(endTime).format(format);\n Reflect.deleteProperty(values, field);\n }\n\n return values;\n }\n\n const handleEnterPress = (e: KeyboardEvent) => {\n const { autoSubmitOnEnter } = unref(formPropsRef);\n if (!autoSubmitOnEnter) return;\n if (e.key === \"Enter\" && e.target && e.target instanceof HTMLElement) {\n const target: HTMLElement = e.target as HTMLElement;\n if (target && target.tagName && target.tagName.toUpperCase() == \"INPUT\") {\n schemaFormContext.submit(e);\n }\n }\n };\n\n return {\n setItemRef,\n clearValidate,\n validate,\n validateFields,\n getFieldsValue,\n updateSchema,\n resetSchema,\n getSchemaByField,\n appendSchemaByField,\n removeSchemaByField,\n resetFields,\n setFieldsValue,\n scrollToField,\n setDefaultValue,\n setFormModel,\n delFormModel,\n setSchemaFormProps,\n handleFormValues,\n handleEnterPress,\n };\n};\n"],"names":["useFormMethods","schemaFormContext","useFormContext","compRefMap","formModel","formPropsRef","cacheFormModel","schemaFormRef","getFormProps","formSchemasRef","defaultFormValues","originComponentPropsFnMap","emit","setItemRef","field","el","getFieldsValue","unref","handleFormValues","toRaw","itemIsDateType","key","item","isString","dateItemType","setFieldsValue","values","schemas","fields","validKeys","value","schema","hasKey","handleInputNumberValue","arr","ele","dayjs","set","componentProps","_props","isFunction","validateFields","_","resetSchema","data","updateData","isObject","isArray","appendSchemaByField","schemaItem","prefixField","first","schemaList","cloneDeep","index","setDefaultValue","removeSchemaByField","fieldList","unset","getSchemaByField","updateSchema","updatedSchemas","val","updateItem","n","compProps","newSchema","deepMerge","originCompPropsFn","opt","uniqBy","obj","currentFieldsValue","isNil","resetFields","resetFunc","submitOnReset","clearValidate","nameList","validate","name","scrollToField","options","setFormModel","validateTrigger","delFormModel","setSchemaFormProps","formProps","res","transformDateFunc","fieldValue","x","handleRangeTimeValue","fieldMapToTime","startTimeKey","endTimeKey","format","startTime","endTime","dateUtil","autoSubmitOnEnter","target"],"mappings":"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"}
1
+ {"version":3,"file":"useFormMethods.js","sources":["../../../../../../../src/components/core/schema-form/src/hooks/useFormMethods.ts"],"sourcesContent":["import { toRaw, unref } from \"vue\";\nimport { cloneDeep, set, unset, isNil, uniqBy } from \"lodash-es\";\nimport dayjs from \"dayjs\";\nimport { dateItemType, handleInputNumberValue } from \"../helper\";\nimport { useFormContext } from \"./useFormContext\";\nimport type { SchemaFormProps } from \"../schema-form\";\nimport type { UnwrapFormSchema } from \"../types/form\";\nimport type { NamePath } from \"ant-design-vue/lib/form/interface\";\nimport { deepMerge } from \"@/utils\";\nimport { isFunction, isObject, isArray, isString } from \"@/utils/is\";\nimport { dateUtil } from \"@/utils/dateUtil\";\n\ntype FormSchema = UnwrapFormSchema;\n\nexport type FormMethods = ReturnType<typeof useFormMethods>;\n\nexport const useFormMethods = () => {\n const schemaFormContext = useFormContext();\n const {\n compRefMap,\n formModel,\n formPropsRef,\n cacheFormModel,\n schemaFormRef,\n getFormProps,\n formSchemasRef,\n defaultFormValues,\n originComponentPropsFnMap,\n emit,\n } = schemaFormContext;\n\n // 将所有的表单组件实例保存起来, 方便外面通过表单组件实例操作\n const setItemRef = (field: string) => {\n return (el) => {\n if (el) {\n compRefMap.set(field, el);\n }\n };\n };\n\n function getFieldsValue(): Recordable {\n const formEl = unref(schemaFormRef);\n if (!formEl) return {};\n return handleFormValues(toRaw(unref(formModel)));\n }\n\n /**\n * @description: Is it time\n */\n function itemIsDateType(key: string) {\n const schemas = unref(formPropsRef).schemas as FormSchema[] | undefined;\n return schemas?.some((item: FormSchema) => {\n return item.field === key && isString(item.component)\n ? dateItemType.includes(item.component)\n : false;\n });\n }\n\n /**\n * @description: 设置表单字段值\n */\n async function setFieldsValue(values: Recordable) {\n const schemas = unref(formSchemasRef) as FormSchema[];\n // @ts-ignore\n const fields = schemas.map((item) => item.field).filter(Boolean);\n\n Object.assign(cacheFormModel, values);\n\n const validKeys: string[] = [];\n Object.entries(values).forEach(([key, value]) => {\n const schema = schemas.find((item) => item.field === key);\n\n const hasKey = Reflect.has(values, key);\n if (isString(schema?.component)) {\n value = handleInputNumberValue(schema?.component, value);\n }\n // 0| '' is allow\n if (hasKey && fields.includes(key)) {\n // time type\n if (itemIsDateType(key)) {\n if (Array.isArray(value)) {\n const arr: any[] = [];\n for (const ele of value) {\n arr.push(ele ? dayjs(ele) : null);\n }\n set(formModel, key, arr);\n } else {\n const { componentProps } = schema || {};\n let _props = componentProps as any;\n if (isFunction(componentProps)) {\n _props = _props({ formPropsRef, formModel });\n }\n set(\n formModel,\n key,\n value ? (_props?.valueFormat ? value : dayjs(value)) : null,\n );\n }\n } else {\n set(formModel, key, value);\n }\n validKeys.push(key);\n }\n });\n // console.log('formModel', formModel);\n await validateFields(validKeys).catch((_) => {});\n }\n\n async function resetSchema(\n data: Partial<FormSchema> | Partial<FormSchema>[],\n ) {\n let updateData: Partial<FormSchema>[] = [];\n if (isObject(data)) {\n updateData.push(data as FormSchema);\n }\n if (isArray(data)) {\n updateData = [...data];\n }\n unref(formPropsRef).schemas = updateData as FormSchema[];\n }\n\n /**\n * @description: 插入到指定 field 后面,如果没传指定 field,则插入到最后,当 first = true 时插入到第一个位置\n */\n async function appendSchemaByField(\n schemaItem: FormSchema,\n prefixField?: string,\n first = false,\n ) {\n const schemaList = cloneDeep(unref(formSchemasRef)) as FormSchema[];\n\n const index = schemaList.findIndex(\n (schema) => schema.field === prefixField,\n );\n\n if (!prefixField || index === -1 || first) {\n first ? schemaList.unshift(schemaItem) : schemaList.push(schemaItem);\n formPropsRef.value.schemas = schemaList;\n return;\n }\n if (index !== -1) {\n schemaList.splice(index + 1, 0, schemaItem);\n }\n formPropsRef.value.schemas = schemaList;\n setDefaultValue(formPropsRef.value.schemas);\n }\n\n /**\n * @description: 根据 field 删除 Schema\n */\n async function removeSchemaByField(fields: string | string[]): Promise<void> {\n const schemaList = cloneDeep(unref(formSchemasRef)) as FormSchema[];\n\n if (!fields) {\n return;\n }\n\n let fieldList: string[] = isString(fields) ? [fields] : fields;\n if (isString(fields)) {\n fieldList = [fields];\n }\n for (const field of fieldList) {\n if (isString(field)) {\n const index = schemaList.findIndex((schema) => schema.field === field);\n if (index !== -1) {\n unset(formModel, field);\n schemaList.splice(index, 1);\n }\n }\n }\n\n formPropsRef.value.schemas = schemaList;\n }\n\n /**\n * @description: 根据 field 查找 Schema\n */\n function getSchemaByField(field: string): FormSchema | undefined {\n return (unref(formSchemasRef) as FormSchema[]).find((schema) => field === schema.field);\n }\n\n /**\n * @description 更新formItemSchema\n */\n const updateSchema = (data: Partial<FormSchema> | Partial<FormSchema>[]) => {\n let updateData: Partial<FormSchema>[] = [];\n if (isObject(data)) {\n updateData.push(data as FormSchema);\n }\n if (isArray(data)) {\n updateData = [...data];\n }\n\n const hasField = updateData.every(\n (item) =>\n item.component === \"Divider\" ||\n (Reflect.has(item, \"field\") && item.field),\n );\n\n if (!hasField) {\n console.error(\n \"All children of the form Schema array that need to be updated must contain the `field` field\",\n );\n return;\n }\n const schemas: FormSchema[] = [];\n const updatedSchemas: FormSchema[] = [];\n\n (unref(formSchemasRef) as FormSchema[]).forEach((val) => {\n const updateItem = updateData.find((n) => val.field === n.field);\n if (updateItem) {\n const compProps = updateItem.componentProps;\n const newSchema = deepMerge(val, updateItem);\n\n if (originComponentPropsFnMap.has(val.field)) {\n const originCompPropsFn = originComponentPropsFnMap.get(val.field)!;\n\n newSchema.componentProps = (opt) => {\n return {\n ...originCompPropsFn(opt),\n // @ts-ignore\n ...(isFunction(compProps) ? compProps(opt) : compProps),\n };\n };\n }\n\n updatedSchemas.push(newSchema);\n schemas.push(newSchema);\n } else {\n schemas.push(val);\n }\n });\n\n setDefaultValue(updatedSchemas);\n formPropsRef.value.schemas = uniqBy<UnwrapFormSchema>(schemas, \"field\");\n };\n\n function setDefaultValue(data: FormSchema | FormSchema[]) {\n let schemas: FormSchema[] = [];\n if (isObject(data)) {\n schemas.push(data as FormSchema);\n }\n if (isArray(data)) {\n schemas = [...data];\n }\n\n const obj: Recordable = {};\n const currentFieldsValue = getFieldsValue();\n schemas.forEach((item) => {\n if (\n item.component != \"Divider\" &&\n Reflect.has(item, \"field\") &&\n item.field &&\n !isNil(item.defaultValue) &&\n (!(item.field in currentFieldsValue) ||\n isNil(currentFieldsValue[item.field]))\n ) {\n obj[item.field] = item.defaultValue;\n }\n });\n setFieldsValue(obj);\n }\n\n async function resetFields(): Promise<void> {\n const { resetFunc, submitOnReset } = unref(getFormProps);\n resetFunc && isFunction(resetFunc) && (await resetFunc());\n\n Object.keys(formModel).forEach((key) => {\n set(formModel, key, defaultFormValues[key]);\n });\n\n emit(\"reset\", formModel);\n submitOnReset && schemaFormContext.submit();\n setTimeout(clearValidate);\n }\n\n async function validateFields(nameList?: NamePath[] | undefined) {\n return schemaFormRef.value?.validateFields(nameList);\n }\n\n async function validate(nameList?: NamePath[] | undefined) {\n return await schemaFormRef.value!.validate(nameList);\n }\n\n async function clearValidate(name?: string | string[]) {\n await schemaFormRef.value?.clearValidate(name);\n }\n\n async function scrollToField(\n name: NamePath,\n options?: ScrollOptions | undefined,\n ) {\n await schemaFormRef.value?.scrollToField(name, options);\n }\n\n // 设置某个字段的值\n const setFormModel = (key: Key, value: any) => {\n set(formModel, key, value);\n set(cacheFormModel, key, value);\n const { validateTrigger } = unref(getFormProps);\n if (!validateTrigger || validateTrigger === \"change\") {\n schemaFormRef.value?.validateFields([key]);\n }\n };\n\n // 删除某个字段\n const delFormModel = (key: Key) => {\n return unset(formModel, key);\n };\n\n const setSchemaFormProps = (formProps: Partial<SchemaFormProps>) => {\n const { schemas } = formPropsRef.value;\n formPropsRef.value = deepMerge(unref(formPropsRef) || {}, formProps);\n // @ts-ignore\n formPropsRef.value.schemas = schemas?.length ? schemas : formProps.schemas;\n };\n\n // Processing form values\n function handleFormValues(values: Recordable) {\n if (!isObject(values)) {\n return {};\n }\n const res: Recordable = {};\n for (let [key, value] of Object.entries(values)) {\n if (!key || (isArray(value) && value.length === 0) || isFunction(value)) {\n continue;\n }\n\n const { transformDateFunc } = unref(getFormProps);\n if (isObject(value)) {\n value = transformDateFunc?.(value);\n }\n\n if (isArray(value) && value[0]?.format && value[1]?.format) {\n value = value.map((item) => transformDateFunc?.(item));\n }\n // Remove spaces\n if (isString(value)) {\n value = value.trim();\n }\n\n const schemaItem = getSchemaByField(key);\n\n if (isFunction(schemaItem?.transform)) {\n value = schemaItem?.transform(value);\n if (isObject(value)) {\n Object.assign(res, value);\n Reflect.deleteProperty(res, key);\n continue;\n }\n }\n\n set(res, key, value);\n }\n // 给后端传递form的field及组件类型, 后端统一处理分页查询\n const fieldValue = [] as any;\n const { schemas } = formPropsRef.value;\n schemas?.forEach((x) =>\n fieldValue.push({ field: x.field, type: x.component }),\n );\n set(res, \"HeaderUniqForm\", { form: fieldValue });\n return handleRangeTimeValue(res);\n }\n\n /**\n * @description: Processing time interval parameters\n */\n function handleRangeTimeValue(values: Recordable) {\n const fieldMapToTime = unref(getFormProps).fieldMapToTime;\n\n if (!fieldMapToTime || !Array.isArray(fieldMapToTime)) {\n return values;\n }\n\n for (const [\n field,\n [startTimeKey, endTimeKey],\n format = \"YYYY-MM-DD\",\n ] of fieldMapToTime) {\n if (!field || !startTimeKey || !endTimeKey || !values[field]) {\n continue;\n }\n\n const [startTime, endTime]: string[] = values[field];\n\n values[startTimeKey] = dateUtil(startTime).format(format);\n values[endTimeKey] = dateUtil(endTime).format(format);\n Reflect.deleteProperty(values, field);\n }\n\n return values;\n }\n\n const handleEnterPress = (e: KeyboardEvent) => {\n const { autoSubmitOnEnter } = unref(formPropsRef);\n if (!autoSubmitOnEnter) return;\n if (e.key === \"Enter\" && e.target && e.target instanceof HTMLElement) {\n const target: HTMLElement = e.target as HTMLElement;\n if (target && target.tagName && target.tagName.toUpperCase() == \"INPUT\") {\n schemaFormContext.submit(e);\n }\n }\n };\n\n return {\n setItemRef,\n clearValidate,\n validate,\n validateFields,\n getFieldsValue,\n updateSchema,\n resetSchema,\n getSchemaByField,\n appendSchemaByField,\n removeSchemaByField,\n resetFields,\n setFieldsValue,\n scrollToField,\n setDefaultValue,\n setFormModel,\n delFormModel,\n setSchemaFormProps,\n handleFormValues,\n handleEnterPress,\n };\n};\n"],"names":["useFormMethods","schemaFormContext","useFormContext","compRefMap","formModel","formPropsRef","cacheFormModel","schemaFormRef","getFormProps","formSchemasRef","defaultFormValues","originComponentPropsFnMap","emit","setItemRef","field","el","getFieldsValue","unref","handleFormValues","toRaw","itemIsDateType","key","item","isString","dateItemType","setFieldsValue","values","schemas","fields","validKeys","value","schema","hasKey","handleInputNumberValue","arr","ele","dayjs","set","componentProps","_props","isFunction","validateFields","_","resetSchema","data","updateData","isObject","isArray","appendSchemaByField","schemaItem","prefixField","first","schemaList","cloneDeep","index","setDefaultValue","removeSchemaByField","fieldList","unset","getSchemaByField","updateSchema","updatedSchemas","val","updateItem","n","compProps","newSchema","deepMerge","originCompPropsFn","opt","uniqBy","obj","currentFieldsValue","isNil","resetFields","resetFunc","submitOnReset","clearValidate","nameList","validate","name","scrollToField","options","setFormModel","validateTrigger","delFormModel","setSchemaFormProps","formProps","res","transformDateFunc","fieldValue","x","handleRangeTimeValue","fieldMapToTime","startTimeKey","endTimeKey","format","startTime","endTime","dateUtil","autoSubmitOnEnter","target"],"mappings":"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"}