@kp-ui/lowcode 2.16.0-alpha.5 → 2.16.0-alpha.8

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 (26) hide show
  1. package/install.js +15 -15
  2. package/install.js.map +1 -1
  3. package/package.json +1 -1
  4. package/src/components/FormRender/index.vue.js +1 -1
  5. package/src/components/FormRender/index.vue2.js +30 -27
  6. package/src/components/FormRender/index.vue2.js.map +1 -1
  7. package/src/components/FormRender/useFormContext.js +29 -30
  8. package/src/components/FormRender/useFormContext.js.map +1 -1
  9. package/src/components/form-designer/form-widget/container-widget/useTableWidget.js +54 -53
  10. package/src/components/form-designer/form-widget/container-widget/useTableWidget.js.map +1 -1
  11. package/src/components/form-render/container-items/data-table-widget.vue.js +3 -3
  12. package/src/components/form-render/container-items/data-table-widget.vue2.js +7 -5
  13. package/src/components/form-render/container-items/data-table-widget.vue2.js.map +1 -1
  14. package/src/components/form-render/dynamic-dialog.vue.js +7 -7
  15. package/src/components/form-render/dynamic-dialog.vue.js.map +1 -1
  16. package/src/components/public/ActionButtonListDialog.vue.js +2 -2
  17. package/src/components/public/ActionButtonListDialog.vue2.js +2 -2
  18. package/src/components/public/ActionButtonListDialog.vue2.js.map +1 -1
  19. package/src/components/public/ActionButtonListRender.vue.js +12 -12
  20. package/src/components/public/ActionButtonListRender.vue.js.map +1 -1
  21. package/src/components/public/ActionButtonListRender.vue2.js +29 -29
  22. package/src/components/public/ActionButtonListRender.vue2.js.map +1 -1
  23. package/src/hooks/useDataHttp.js +8 -7
  24. package/src/hooks/useDataHttp.js.map +1 -1
  25. package/stats.html +1 -1
  26. package/styles/style.css +1 -1
package/install.js CHANGED
@@ -1,29 +1,29 @@
1
1
  /* empty css */
2
2
  import "./_virtual/virtual_svg-icons-register.js";
3
3
  import a from "dayjs";
4
- import { getLocat as i } from "@kp-ui/tool";
5
- import { VxeTooltip as m } from "vxe-pc-ui";
6
- import { basicFieldsEnums as R } from "./src/components/form-designer/widget-panel/basicFieldsEnums.js";
7
- import { default as $ } from "./src/components/form-designer/index.vue.js";
4
+ import { getLocat as s } from "@kp-ui/tool";
5
+ import { VxeTooltip as f } from "vxe-pc-ui";
6
+ import { basicFieldsEnums as $ } from "./src/components/form-designer/widget-panel/basicFieldsEnums.js";
7
+ import { default as y } from "./src/components/form-designer/index.vue.js";
8
8
  /* empty css */
9
- import { openCustomerModal as s } from "./src/components/public/CustomerModal/useCustomerModal.js";
10
- import { default as C } from "./src/components/form-render/SubmitButtonRender.vue.js";
11
- import { default as F } from "./src/components/public/ActionButtonListRender.vue.js";
9
+ import { openCustomerModal as m } from "./src/components/public/CustomerModal/useCustomerModal.js";
10
+ import { default as V } from "./src/components/form-render/SubmitButtonRender.vue.js";
11
+ import { default as h } from "./src/components/public/ActionButtonListRender.vue.js";
12
12
  import { default as w } from "./src/components/public/ConfigView/CustomPageRender.vue.js";
13
13
  import { useLowcode as I } from "./src/hooks/useLowcode.js";
14
14
  import { default as T } from "./src/components/FormRender/index.vue.js";
15
- const x = (e) => {
16
- const { app: o, factoryRender: r, getUserInfo: t } = e;
17
- o.config.globalProperties.$getLocat = i, o.config.globalProperties.$dayjs = a, o.config.globalProperties.$getUserInfo = t, o.config.globalProperties.$factoryRender = r, o.config.globalProperties.$openCustomerModal = (p) => s(p, o), o.component("VxeTooltip", m);
15
+ const b = (e) => {
16
+ const { app: o, http: r, factoryRender: t, getUserInfo: p } = e;
17
+ o.config.globalProperties.$getLocat = s, o.config.globalProperties.$dayjs = a, o.config.globalProperties.$http = r, o.config.globalProperties.$getUserInfo = p, o.config.globalProperties.$factoryRender = t, o.config.globalProperties.$openCustomerModal = (i) => m(i, o), o.component("VxeTooltip", f);
18
18
  };
19
19
  export {
20
- F as ActionButtonListRender,
20
+ h as ActionButtonListRender,
21
21
  w as CustomPageRender,
22
- C as SubmitButtonRender,
23
- $ as VFormDesigner,
22
+ V as SubmitButtonRender,
23
+ y as VFormDesigner,
24
24
  T as VFormRender,
25
- R as basicFieldsEnums,
26
- x as registerLowcodeCore,
25
+ $ as basicFieldsEnums,
26
+ b as registerLowcodeCore,
27
27
  I as useLowcode
28
28
  };
29
29
  //# sourceMappingURL=install.js.map
package/install.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sources":["../install.ts"],"sourcesContent":["// 导出基础组件\nimport '@/styles/global.less';\nimport 'virtual:svg-icons-register';\nimport dayjs from 'dayjs';\nimport { getLocat } from '@kp-ui/tool';\nimport { VxeTooltip } from 'vxe-pc-ui';\n\nexport { basicFieldsEnums } from '@/components/form-designer/widget-panel/basicFieldsEnums';\n\nexport { default as VFormDesigner } from '@/components/form-designer/index.vue';\n\nimport { openCustomerModal } from '@/components/public/CustomerModal/useCustomerModal';\nimport type { App } from 'vue';\nexport { default as SubmitButtonRender } from '@/components/form-render/SubmitButtonRender.vue';\n\nexport { default as ActionButtonListRender } from '@/components/public/ActionButtonListRender.vue';\n\nexport { default as CustomPageRender } from '@/components/public/ConfigView/CustomPageRender.vue';\n\nexport { useLowcode, VFormRender } from '@/hooks/useLowcode';\nexport type { ActionButton } from '@/types/button';\n\ninterface RegisterLowcodeCoreParams {\n app: App;\n factoryRender: (name: any, props: any, ...args: any[]) => any;\n getUserInfo?: () => any;\n}\n\n// 注册 HTTP\nexport const registerLowcodeCore = (params: RegisterLowcodeCoreParams) => {\n const { app, factoryRender, getUserInfo } = params;\n app.config.globalProperties.$getLocat = getLocat;\n app.config.globalProperties.$dayjs = dayjs;\n app.config.globalProperties.$getUserInfo = getUserInfo;\n app.config.globalProperties.$factoryRender = factoryRender;\n app.config.globalProperties.$openCustomerModal = ops => openCustomerModal(ops, app);\n app.component('VxeTooltip', VxeTooltip);\n};\n"],"names":["registerLowcodeCore","params","app","factoryRender","getUserInfo","getLocat","dayjs","ops","openCustomerModal","VxeTooltip"],"mappings":";;;;;;;;;;;;;;AA6BO,MAAMA,IAAsB,CAACC,MAAsC;AACtE,QAAM,EAAE,KAAAC,GAAK,eAAAC,GAAe,aAAAC,EAAA,IAAgBH;AAC5C,EAAAC,EAAI,OAAO,iBAAiB,YAAYG,GACxCH,EAAI,OAAO,iBAAiB,SAASI,GACrCJ,EAAI,OAAO,iBAAiB,eAAeE,GAC3CF,EAAI,OAAO,iBAAiB,iBAAiBC,GAC7CD,EAAI,OAAO,iBAAiB,qBAAqB,CAAAK,MAAOC,EAAkBD,GAAKL,CAAG,GAClFA,EAAI,UAAU,cAAcO,CAAU;AAC1C;"}
1
+ {"version":3,"file":"install.js","sources":["../install.ts"],"sourcesContent":["// 导出基础组件\nimport '@/styles/global.less';\nimport 'virtual:svg-icons-register';\nimport dayjs from 'dayjs';\nimport { getLocat } from '@kp-ui/tool';\nimport { VxeTooltip } from 'vxe-pc-ui';\n\nexport { basicFieldsEnums } from '@/components/form-designer/widget-panel/basicFieldsEnums';\n\nexport { default as VFormDesigner } from '@/components/form-designer/index.vue';\n\nimport { openCustomerModal } from '@/components/public/CustomerModal/useCustomerModal';\nimport type { App } from 'vue';\nexport { default as SubmitButtonRender } from '@/components/form-render/SubmitButtonRender.vue';\n\nexport { default as ActionButtonListRender } from '@/components/public/ActionButtonListRender.vue';\n\nexport { default as CustomPageRender } from '@/components/public/ConfigView/CustomPageRender.vue';\n\nexport { useLowcode, VFormRender } from '@/hooks/useLowcode';\nexport type { ActionButton } from '@/types/button';\n\ninterface RegisterLowcodeCoreParams {\n app: App;\n http: any;\n factoryRender: (name: any, props: any, ...args: any[]) => any;\n getUserInfo?: () => any;\n}\n\n// 注册 HTTP\nexport const registerLowcodeCore = (params: RegisterLowcodeCoreParams) => {\n const { app, http, factoryRender, getUserInfo } = params;\n app.config.globalProperties.$getLocat = getLocat;\n app.config.globalProperties.$dayjs = dayjs;\n app.config.globalProperties.$http = http;\n app.config.globalProperties.$getUserInfo = getUserInfo;\n app.config.globalProperties.$factoryRender = factoryRender;\n app.config.globalProperties.$openCustomerModal = ops => openCustomerModal(ops, app);\n app.component('VxeTooltip', VxeTooltip);\n};\n"],"names":["registerLowcodeCore","params","app","http","factoryRender","getUserInfo","getLocat","dayjs","ops","openCustomerModal","VxeTooltip"],"mappings":";;;;;;;;;;;;;;AA8BO,MAAMA,IAAsB,CAACC,MAAsC;AACtE,QAAM,EAAE,KAAAC,GAAK,MAAAC,GAAM,eAAAC,GAAe,aAAAC,MAAgBJ;AAClD,EAAAC,EAAI,OAAO,iBAAiB,YAAYI,GACxCJ,EAAI,OAAO,iBAAiB,SAASK,GACrCL,EAAI,OAAO,iBAAiB,QAAQC,GACpCD,EAAI,OAAO,iBAAiB,eAAeG,GAC3CH,EAAI,OAAO,iBAAiB,iBAAiBE,GAC7CF,EAAI,OAAO,iBAAiB,qBAAqB,CAAAM,MAAOC,EAAkBD,GAAKN,CAAG,GAClFA,EAAI,UAAU,cAAcQ,CAAU;AAC1C;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kp-ui/lowcode",
3
- "version": "2.16.0-alpha.5",
3
+ "version": "2.16.0-alpha.8",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -1,7 +1,7 @@
1
1
  import o from "./index.vue2.js";
2
2
  /* empty css */
3
3
  import r from "../../../_virtual/_plugin-vue_export-helper.js";
4
- const e = /* @__PURE__ */ r(o, [["__scopeId", "data-v-32ab7c81"]]);
4
+ const e = /* @__PURE__ */ r(o, [["__scopeId", "data-v-97ab4c5a"]]);
5
5
  export {
6
6
  e as default
7
7
  };
@@ -1,18 +1,18 @@
1
- import { defineComponent as L, computed as u, ref as R, useTemplateRef as V, onMounted as D, watch as h, createElementBlock as c, openBlock as n, Fragment as w, createElementVNode as J, createBlock as S, createCommentVNode as p, createVNode as a, unref as e, mergeProps as T } from "vue";
2
- import { Skeleton as E } from "ant-design-vue";
3
- import I from "../form-render/dynamic-dialog.vue.js";
1
+ import { defineComponent as D, computed as c, ref as L, useTemplateRef as V, onMounted as h, watch as w, createElementBlock as u, openBlock as n, Fragment as J, createElementVNode as S, createBlock as T, createCommentVNode as p, createVNode as a, unref as e, mergeProps as E } from "vue";
2
+ import { Skeleton as I } from "ant-design-vue";
3
+ import M from "../form-render/dynamic-dialog.vue.js";
4
4
  /* empty css */
5
- import M from "./FormContainer.vue.js";
6
- import { useFormContext as P } from "./useFormContext.js";
7
- import { useI18n as $ } from "../../utils/i18n.js";
8
- import { storeToRefs as z } from "pinia";
9
- import { useLocaleStore as A } from "@kp-ui/i18n";
10
- import { getLocat as U } from "@kp-ui/tool";
11
- import W from "./Debugger.vue.js";
12
- const j = { class: "form-render-wrapper" }, q = {
5
+ import P from "./FormContainer.vue.js";
6
+ import { useFormContext as $ } from "./useFormContext.js";
7
+ import { useI18n as z } from "../../utils/i18n.js";
8
+ import { storeToRefs as A } from "pinia";
9
+ import { useLocaleStore as U } from "@kp-ui/i18n";
10
+ import { getLocat as W } from "@kp-ui/tool";
11
+ import j from "./Debugger.vue.js";
12
+ const q = { class: "form-render-wrapper" }, G = {
13
13
  key: 0,
14
14
  class: "loading-wrapper"
15
- }, ne = /* @__PURE__ */ L({
15
+ }, ae = /* @__PURE__ */ D({
16
16
  name: "VFormRender",
17
17
  componentName: "VFormRender",
18
18
  inheritAttrs: !1,
@@ -30,17 +30,17 @@ const j = { class: "form-render-wrapper" }, q = {
30
30
  debug: { type: Boolean }
31
31
  },
32
32
  emits: ["form-submit", "form-cancel"],
33
- setup(g, { expose: v, emit: G }) {
34
- const { initLocale: _ } = $(), b = A(), { locale: m } = z(b), C = u(() => U().debug === "1"), i = R(!1), l = g, o = V("formContainer"), s = u(() => {
33
+ setup(g, { expose: v, emit: H }) {
34
+ const { initLocale: _ } = z(), b = U(), { locale: m } = A(b), C = c(() => W().debug === "1"), i = L(!1), l = g, o = V("formContainer"), s = c(() => {
35
35
  var r;
36
36
  return (r = o.value) == null ? void 0 : r.renderForm;
37
- }), t = P({
37
+ }), t = $({
38
38
  props: l,
39
39
  renderForm: s
40
- }), x = () => o.value, { dialogProps: y, emitter: F, isLoading: f, registerToRefList: k, formWidgetId: N } = t;
41
- return D(() => {
42
- k(N);
43
- }), h(
40
+ }), x = () => o.value, { dynamicDialgRef: y, dialogProps: k, emitter: F, isLoading: f, registerToRefList: N, formWidgetId: R } = t;
41
+ return h(() => {
42
+ N(R);
43
+ }), w(
44
44
  m,
45
45
  () => {
46
46
  _(m.value);
@@ -54,19 +54,22 @@ const j = { class: "form-render-wrapper" }, q = {
54
54
  getNativeForm: x,
55
55
  formJson: l.formJson,
56
56
  renderForm: s
57
- }), (r, d) => (n(), c(w, null, [
58
- J("div", j, [
59
- e(f) ? (n(), c("div", q, [
60
- a(e(E), { active: e(f) }, null, 8, ["active"])
57
+ }), (r, d) => (n(), u(J, null, [
58
+ S("div", q, [
59
+ e(f) ? (n(), u("div", G, [
60
+ a(e(I), { active: e(f) }, null, 8, ["active"])
61
61
  ])) : p("", !0),
62
- a(M, {
62
+ a(P, {
63
63
  ref_key: "formContainer",
64
64
  ref: o,
65
65
  context: e(t)
66
66
  }, null, 8, ["context"]),
67
- a(I, T(e(y), { ref: "dynamicDialgRef" }), null, 16)
67
+ a(M, E(e(k), {
68
+ ref_key: "dynamicDialgRef",
69
+ ref: y
70
+ }), null, 16)
68
71
  ]),
69
- C.value ? (n(), S(W, {
72
+ C.value ? (n(), T(j, {
70
73
  key: 0,
71
74
  visible: i.value,
72
75
  "onUpdate:visible": d[0] || (d[0] = (B) => i.value = B)
@@ -75,6 +78,6 @@ const j = { class: "form-render-wrapper" }, q = {
75
78
  }
76
79
  });
77
80
  export {
78
- ne as default
81
+ ae as default
79
82
  };
80
83
  //# sourceMappingURL=index.vue2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.vue2.js","sources":["../../../../src/components/FormRender/index.vue"],"sourcesContent":["<template>\n <div class=\"form-render-wrapper\">\n <div class=\"loading-wrapper\" v-if=\"isLoading\">\n <Skeleton :active=\"isLoading\" />\n </div>\n <FormContainer ref=\"formContainer\" :context=\"formContext\" />\n <DynamicDialog v-bind=\"dialogProps\" ref=\"dynamicDialgRef\" />\n </div>\n <Debugger v-if=\"debug\" v-model:visible=\"debugVisible\" />\n</template>\n\n<script lang=\"ts\" setup>\n import { onMounted, ref, watch, computed, useTemplateRef } from 'vue';\n import { Skeleton } from 'ant-design-vue';\n import DynamicDialog from '@/components/form-render/dynamic-dialog.vue';\n import FormContainer from './FormContainer.vue';\n import { type FormRenderProps, useFormContext } from './useFormContext';\n import { useI18n } from '@/utils/i18n';\n import { storeToRefs } from 'pinia';\n import { useLocaleStore } from '@kp-ui/i18n';\n import { getLocat } from '@kp-ui/tool';\n import Debugger from './Debugger.vue';\n\n const { initLocale } = useI18n();\n defineOptions({\n name: 'VFormRender',\n componentName: 'VFormRender',\n inheritAttrs: false\n });\n const localeStore = useLocaleStore();\n const { locale } = storeToRefs(localeStore);\n\n const debug = computed(() => getLocat().debug === '1');\n const debugVisible = ref(false);\n\n const props = withDefaults(defineProps<FormRenderProps>(), {\n vfCtx: () => ({}),\n formJson: () => ({ widgetList: [], formConfig: {} }),\n formData: () => ({}),\n optionData: () => ({}),\n disabledMode: false,\n renderConfig: () => ({ languageName: 'zh-CN' }),\n globalDsv: () => ({}),\n parentForm: null,\n dynamicCreation: false\n });\n\n // 组件引用\n const formContainer = useTemplateRef('formContainer');\n\n const renderForm = computed(() => formContainer.value?.renderForm);\n\n // 组件事件\n const emit = defineEmits<{\n (e: 'form-submit', formData: any): void;\n (e: 'form-cancel'): void;\n }>();\n\n // 创建表单上下文\n const formContext = useFormContext({\n props,\n renderForm\n });\n\n //获取原生form引用\n const getNativeForm = () => {\n return formContainer.value;\n };\n const { dialogProps, emitter, isLoading, registerToRefList, formWidgetId } = formContext;\n\n // 生命周期钩子\n onMounted(() => {\n registerToRefList(formWidgetId);\n });\n\n watch(\n locale,\n () => {\n initLocale(locale.value);\n },\n {\n immediate: true\n }\n );\n\n // 暴露方法\n defineExpose({\n ...emitter,\n ...formContext.expose,\n getNativeForm,\n formJson: props.formJson,\n renderForm\n });\n</script>\n\n<style lang=\"less\" scoped>\n .loading-wrapper {\n min-height: 300px;\n padding: 20px;\n }\n .ant-form .ant-form-item-explain.ant-form-item-explain-connected {\n display: none;\n }\n</style>\n"],"names":["initLocale","useI18n","localeStore","useLocaleStore","locale","storeToRefs","debug","computed","getLocat","debugVisible","ref","props","__props","formContainer","useTemplateRef","renderForm","_a","formContext","useFormContext","getNativeForm","dialogProps","emitter","isLoading","registerToRefList","formWidgetId","onMounted","watch","__expose","_createElementVNode","_hoisted_1","_unref","_openBlock","_createElementBlock","_hoisted_2","_createVNode","Skeleton","FormContainer","DynamicDialog","_mergeProps","_createBlock","Debugger","$event"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBI,UAAM,EAAE,YAAAA,EAAA,IAAeC,EAAA,GAMjBC,IAAcC,EAAA,GACd,EAAE,QAAAC,EAAA,IAAWC,EAAYH,CAAW,GAEpCI,IAAQC,EAAS,MAAMC,EAAA,EAAW,UAAU,GAAG,GAC/CC,IAAeC,EAAI,EAAK,GAExBC,IAAQC,GAaRC,IAAgBC,EAAe,eAAe,GAE9CC,IAAaR,EAAS,MAAA;;AAAM,cAAAS,IAAAH,EAAc,UAAd,gBAAAG,EAAqB;AAAA,KAAU,GAS3DC,IAAcC,EAAe;AAAA,MAC/B,OAAAP;AAAA,MACA,YAAAI;AAAA,IAAA,CACH,GAGKI,IAAgB,MACXN,EAAc,OAEnB,EAAE,aAAAO,GAAa,SAAAC,GAAS,WAAAC,GAAW,mBAAAC,GAAmB,cAAAC,MAAiBP;AAG7E,WAAAQ,EAAU,MAAM;AACZ,MAAAF,EAAkBC,CAAY;AAAA,IAClC,CAAC,GAEDE;AAAA,MACItB;AAAA,MACA,MAAM;AACF,QAAAJ,EAAWI,EAAO,KAAK;AAAA,MAC3B;AAAA,MACA;AAAA,QACI,WAAW;AAAA,MAAA;AAAA,IACf,GAIJuB,EAAa;AAAA,MACT,GAAGN;AAAA,MACH,GAAGJ,EAAY;AAAA,MACf,eAAAE;AAAA,MACA,UAAUR,EAAM;AAAA,MAChB,YAAAI;AAAA,IAAA,CACH;MA3FDa,EAMM,OANNC,GAMM;AAAA,QALiCC,EAAAR,CAAA,KAAnCS,KAAAC,EAEM,OAFNC,GAEM;AAAA,UADFC,EAAgCJ,EAAAK,CAAA,GAAA,EAArB,QAAQL,EAAAR,CAAA,KAAS,MAAA,GAAA,CAAA,QAAA,CAAA;AAAA,QAAA;QAEhCY,EAA4DE,GAAA;AAAA,mBAAzC;AAAA,UAAJ,KAAIvB;AAAA,UAAiB,SAASiB,EAAAb,CAAA;AAAA,QAAA;QAC7CiB,EAA4DG,GAA5DC,EAA4DR,MAA1B,EAAE,KAAI,kBAAA,CAAiB,GAAA,MAAA,EAAA;AAAA,MAAA;MAE7CxB,EAAA,cAAhBiC,EAAwDC,GAAA;AAAA;QAAzB,SAAS/B,EAAA;AAAA,mDAAAA,EAAY,QAAAgC;AAAA,MAAA;;;;"}
1
+ {"version":3,"file":"index.vue2.js","sources":["../../../../src/components/FormRender/index.vue"],"sourcesContent":["<template>\n <div class=\"form-render-wrapper\">\n <div class=\"loading-wrapper\" v-if=\"isLoading\">\n <Skeleton :active=\"isLoading\" />\n </div>\n <FormContainer ref=\"formContainer\" :context=\"formContext\" />\n <DynamicDialog v-bind=\"dialogProps\" ref=\"dynamicDialgRef\" />\n </div>\n <Debugger v-if=\"debug\" v-model:visible=\"debugVisible\" />\n</template>\n\n<script lang=\"ts\" setup>\n import { onMounted, ref, watch, computed, useTemplateRef } from 'vue';\n import { Skeleton } from 'ant-design-vue';\n import DynamicDialog from '@/components/form-render/dynamic-dialog.vue';\n import FormContainer from './FormContainer.vue';\n import { type FormRenderProps, useFormContext } from './useFormContext';\n import { useI18n } from '@/utils/i18n';\n import { storeToRefs } from 'pinia';\n import { useLocaleStore } from '@kp-ui/i18n';\n import { getLocat } from '@kp-ui/tool';\n import Debugger from './Debugger.vue';\n\n const { initLocale } = useI18n();\n defineOptions({\n name: 'VFormRender',\n componentName: 'VFormRender',\n inheritAttrs: false\n });\n const localeStore = useLocaleStore();\n const { locale } = storeToRefs(localeStore);\n\n const debug = computed(() => getLocat().debug === '1');\n const debugVisible = ref(false);\n\n const props = withDefaults(defineProps<FormRenderProps>(), {\n vfCtx: () => ({}),\n formJson: () => ({ widgetList: [], formConfig: {} }),\n formData: () => ({}),\n optionData: () => ({}),\n disabledMode: false,\n renderConfig: () => ({ languageName: 'zh-CN' }),\n globalDsv: () => ({}),\n parentForm: null,\n dynamicCreation: false\n });\n\n // 组件引用\n const formContainer = useTemplateRef('formContainer');\n\n const renderForm = computed(() => formContainer.value?.renderForm);\n\n // 组件事件\n const emit = defineEmits<{\n (e: 'form-submit', formData: any): void;\n (e: 'form-cancel'): void;\n }>();\n\n // 创建表单上下文\n const formContext = useFormContext({\n props,\n renderForm\n });\n\n //获取原生form引用\n const getNativeForm = () => {\n return formContainer.value;\n };\n const { dynamicDialgRef, dialogProps, emitter, isLoading, registerToRefList, formWidgetId } =\n formContext;\n\n // 生命周期钩子\n onMounted(() => {\n registerToRefList(formWidgetId);\n });\n\n watch(\n locale,\n () => {\n initLocale(locale.value);\n },\n {\n immediate: true\n }\n );\n\n // 暴露方法\n defineExpose({\n ...emitter,\n ...formContext.expose,\n getNativeForm,\n formJson: props.formJson,\n renderForm\n });\n</script>\n\n<style lang=\"less\" scoped>\n .loading-wrapper {\n min-height: 300px;\n padding: 20px;\n }\n .ant-form .ant-form-item-explain.ant-form-item-explain-connected {\n display: none;\n }\n</style>\n"],"names":["initLocale","useI18n","localeStore","useLocaleStore","locale","storeToRefs","debug","computed","getLocat","debugVisible","ref","props","__props","formContainer","useTemplateRef","renderForm","_a","formContext","useFormContext","getNativeForm","dynamicDialgRef","dialogProps","emitter","isLoading","registerToRefList","formWidgetId","onMounted","watch","__expose","_createElementVNode","_hoisted_1","_unref","_openBlock","_createElementBlock","_hoisted_2","_createVNode","Skeleton","FormContainer","DynamicDialog","_mergeProps","_createBlock","Debugger","$event"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBI,UAAM,EAAE,YAAAA,EAAA,IAAeC,EAAA,GAMjBC,IAAcC,EAAA,GACd,EAAE,QAAAC,EAAA,IAAWC,EAAYH,CAAW,GAEpCI,IAAQC,EAAS,MAAMC,EAAA,EAAW,UAAU,GAAG,GAC/CC,IAAeC,EAAI,EAAK,GAExBC,IAAQC,GAaRC,IAAgBC,EAAe,eAAe,GAE9CC,IAAaR,EAAS,MAAA;;AAAM,cAAAS,IAAAH,EAAc,UAAd,gBAAAG,EAAqB;AAAA,KAAU,GAS3DC,IAAcC,EAAe;AAAA,MAC/B,OAAAP;AAAA,MACA,YAAAI;AAAA,IAAA,CACH,GAGKI,IAAgB,MACXN,EAAc,OAEnB,EAAE,iBAAAO,GAAiB,aAAAC,GAAa,SAAAC,GAAS,WAAAC,GAAW,mBAAAC,GAAmB,cAAAC,MACzER;AAGJ,WAAAS,EAAU,MAAM;AACZ,MAAAF,EAAkBC,CAAY;AAAA,IAClC,CAAC,GAEDE;AAAA,MACIvB;AAAA,MACA,MAAM;AACF,QAAAJ,EAAWI,EAAO,KAAK;AAAA,MAC3B;AAAA,MACA;AAAA,QACI,WAAW;AAAA,MAAA;AAAA,IACf,GAIJwB,EAAa;AAAA,MACT,GAAGN;AAAA,MACH,GAAGL,EAAY;AAAA,MACf,eAAAE;AAAA,MACA,UAAUR,EAAM;AAAA,MAChB,YAAAI;AAAA,IAAA,CACH;MA5FDc,EAMM,OANNC,GAMM;AAAA,QALiCC,EAAAR,CAAA,KAAnCS,KAAAC,EAEM,OAFNC,GAEM;AAAA,UADFC,EAAgCJ,EAAAK,CAAA,GAAA,EAArB,QAAQL,EAAAR,CAAA,KAAS,MAAA,GAAA,CAAA,QAAA,CAAA;AAAA,QAAA;QAEhCY,EAA4DE,GAAA;AAAA,mBAAzC;AAAA,UAAJ,KAAIxB;AAAA,UAAiB,SAASkB,EAAAd,CAAA;AAAA,QAAA;QAC7CkB,EAA4DG,GAA5DC,EAA4DR,EAAAV,CAAA,GAA1B;AAAA,mBAAM;AAAA,UAAJ,KAAID;AAAA,QAAA;;MAE5Bd,EAAA,cAAhBkC,EAAwDC,GAAA;AAAA;QAAzB,SAAShC,EAAA;AAAA,mDAAAA,EAAY,QAAAiC;AAAA,MAAA;;;;"}
@@ -1,4 +1,4 @@
1
- import { ref as l, provide as c, computed as d, watchEffect as ue, onMounted as me, nextTick as de } from "vue";
1
+ import { ref as l, provide as c, computed as m, watchEffect as ue, onMounted as me, nextTick as de } from "vue";
2
2
  import { useFormValidation as B } from "./formValidation.js";
3
3
  import { insertCustomCssToHead as ve, insertGlobalFunctionsToHtml as ge, getContainerWidgetByName as H, cloneFormConfigWithoutEventHandler as pe, generateId as Ce } from "../../utils/util.js";
4
4
  import { set as Fe, cloneDeep as we } from "lodash-es";
@@ -11,34 +11,34 @@ import be from "../form-render/dynamic-dialog.vue.js";
11
11
  import { useEmitter as ye } from "../../utils/useEmitter.js";
12
12
  import { useAppRef as Me } from "../form-designer/useAppRef.js";
13
13
  const _e = ({ renderForm: x, props: a }) => {
14
- const { formJson: D } = a, p = De(be), { i18nt: v } = he(), [R, P] = Re(!1), C = ye(), g = l(), s = l({}), L = l(!1), F = l(/* @__PURE__ */ new Map()), b = l({}), T = l(), w = Symbol("formWidget");
14
+ const { formJson: D } = a, p = De(be), { i18nt: d } = he(), [R, P] = Re(!1), C = ye(), v = l(), s = l({}), L = l(!1), F = l(/* @__PURE__ */ new Map()), b = l({}), T = l(), w = Symbol("formWidget");
15
15
  c("refList", F), c("getFormConfig", () => o.value), c("formData", s), c("getReadMode", () => R.value), c("designState", !1);
16
- const y = l(), { executeFunction: $, context: f, execHttpFunction: M } = Le(), { getFormRef: h, getWidgetRef: U, registerToRefList: _ } = Me(F, w), o = d(() => {
16
+ const y = l(), { executeFunction: $, context: g, execHttpFunction: M } = Le(), { getFormRef: h, getWidgetRef: U, registerToRefList: _ } = Me(F, w), o = m(() => {
17
17
  var e;
18
- return ((e = g.value) == null ? void 0 : e.formConfig) || {};
18
+ return ((e = v.value) == null ? void 0 : e.formConfig) || {};
19
19
  });
20
20
  c("formConfig", o), c("formWidgetId", w);
21
- const W = d(() => {
21
+ const W = m(() => {
22
22
  var e;
23
- return ((e = g.value) == null ? void 0 : e.widgetList) || [];
24
- }), j = d(() => {
23
+ return ((e = v.value) == null ? void 0 : e.widgetList) || [];
24
+ }), j = m(() => {
25
25
  var e;
26
26
  return ((e = o.value) == null ? void 0 : e.labelPosition) || "horizontal";
27
27
  }), q = (e) => {
28
28
  T.value = e;
29
- }, S = d(() => {
29
+ }, S = m(() => {
30
30
  var e;
31
31
  return (e = o.value) != null && e.labelWidth ? `${o.value.labelWidth}px` : "80px";
32
- }), k = d(() => {
32
+ }), k = m(() => {
33
33
  var e;
34
34
  return ((e = o.value) == null ? void 0 : e.customClass) || "";
35
35
  });
36
- let u = B(x);
36
+ let f = B(x);
37
37
  ue(() => {
38
- u = B(x);
38
+ f = B(x);
39
39
  });
40
40
  const V = async (e) => {
41
- console.log({ json: e }), g.value = e || { widgetList: [], formConfig: {} }, s.value = {}, await de(), re();
41
+ console.log({ json: e }), v.value = e || { widgetList: [], formConfig: {} }, s.value = {}, await de(), re();
42
42
  }, z = () => s.value || {}, A = (e) => {
43
43
  e && Object.keys(e).forEach((t) => {
44
44
  t === "processingDescribe" && console.log(e[t]), Object.prototype.hasOwnProperty.call(s.value, t) && (s.value[t] = e[t]);
@@ -46,9 +46,9 @@ const _e = ({ renderForm: x, props: a }) => {
46
46
  }, G = (e) => {
47
47
  L.value = e;
48
48
  }, K = () => {
49
- u.resetValidation();
49
+ f.resetValidation();
50
50
  }, Q = () => {
51
- u.clearValidate();
51
+ f.clearValidate();
52
52
  }, X = (e) => {
53
53
  y.value = e;
54
54
  }, Y = () => {
@@ -62,24 +62,24 @@ const _e = ({ renderForm: x, props: a }) => {
62
62
  var I, O;
63
63
  const n = Y(), i = H((n == null ? void 0 : n.widgetList) || [], e) || H(W.value || [], e);
64
64
  if (i === null) {
65
- J.error(v("render.hint.refNotFound") + e);
65
+ J.error(d("render.hint.refNotFound") + e);
66
66
  return;
67
67
  }
68
68
  if (!e || i.type !== "vf-dialog") {
69
- J.error(v("render.hint.refNotFound") + e);
69
+ J.error(d("render.hint.refNotFound") + e);
70
70
  return;
71
71
  }
72
- const m = {
72
+ const u = {
73
73
  widgetList: we((i == null ? void 0 : i.widgetList) || []),
74
74
  formConfig: pe(((I = n == null ? void 0 : n.formConfig) == null ? void 0 : I.value) || {})
75
75
  }, fe = xe();
76
76
  b.value = {
77
77
  options: i.options,
78
- formJson: m,
78
+ formJson: u,
79
79
  formData: { ...t },
80
80
  optionData: n.optionData,
81
81
  globalDsv: n.globalDsv,
82
- parentFormRef: f.value,
82
+ parentFormRef: g.value,
83
83
  extraData: r,
84
84
  wrapperId: fe,
85
85
  vfCtx: { ...t }
@@ -97,7 +97,7 @@ const _e = ({ renderForm: x, props: a }) => {
97
97
  });
98
98
  return console.log("res: ", t), t;
99
99
  }, ne = async () => {
100
- if (!await u.validate()) throw new Error(v("表单验证失败"));
100
+ if (!await f.validate()) throw new Error(d("表单验证失败"));
101
101
  const t = o.value.serveList, r = await M(t.vformUpdate, {
102
102
  data: s.value,
103
103
  vfCtx: a.vfCtx
@@ -113,7 +113,7 @@ const _e = ({ renderForm: x, props: a }) => {
113
113
  t && ve(t, e || ""), r && ge(r, e || "");
114
114
  }, ie = () => {
115
115
  var t;
116
- const e = (t = f.value) == null ? void 0 : t.$router;
116
+ const e = (t = g.value) == null ? void 0 : t.$router;
117
117
  e == null || e.replace({
118
118
  query: {
119
119
  ...e.currentRoute.value.query,
@@ -126,16 +126,16 @@ const _e = ({ renderForm: x, props: a }) => {
126
126
  if (typeof r == "function")
127
127
  r(e, t);
128
128
  else {
129
- const m = (i = f.value) == null ? void 0 : i.$router;
130
- m == null || m.go(-1);
129
+ const u = (i = g.value) == null ? void 0 : i.$router;
130
+ u == null || u.go(-1);
131
131
  }
132
132
  }, le = (e) => s.value[e], ce = () => a.vfCtx;
133
133
  me(() => {
134
134
  D && V(D), te(), se();
135
135
  });
136
136
  const E = {
137
- context: f,
138
- i18nt: v,
137
+ context: g,
138
+ i18nt: d,
139
139
  goBack: ae,
140
140
  reload: ie,
141
141
  getFieldValue: le,
@@ -160,21 +160,20 @@ const _e = ({ renderForm: x, props: a }) => {
160
160
  // 计算属性
161
161
  formConfig: o,
162
162
  dynamicDialgRef: p,
163
- setChildFormRef: q
163
+ setChildFormRef: q,
164
+ setDialogOrDrawerRef: X
164
165
  };
165
166
  return {
166
167
  formWidgetId: w,
167
168
  registerToRefList: _,
168
169
  dialogOrDrawerRef: y,
169
- setDialogOrDrawerRef: X,
170
170
  emitter: C,
171
- context: f,
172
171
  // 状态
173
- formJsonObj: g,
172
+ formJsonObj: v,
174
173
  readModeFlag: R,
175
174
  // 引用
176
175
  widgetRefList: F,
177
- formValidator: u,
176
+ formValidator: f,
178
177
  widgetList: W,
179
178
  labelPosition: j,
180
179
  labelWidth: S,
@@ -1 +1 @@
1
- {"version":3,"file":"useFormContext.js","sources":["../../../../src/components/FormRender/useFormContext.ts"],"sourcesContent":["import { computed, nextTick, onMounted, provide, ref, watchEffect } from 'vue';\nimport { useFormValidation } from './formValidation';\n\n/**\n * 表单上下文接口\n */\nimport { Widget } from '@/types/schema';\nimport {\n cloneFormConfigWithoutEventHandler,\n generateId,\n getContainerWidgetByName,\n insertCustomCssToHead,\n insertGlobalFunctionsToHtml\n} from '@/utils/util';\nimport { cloneDeep, set } from 'lodash-es';\nimport { message } from 'ant-design-vue';\nimport { useI18n } from '@/utils/i18n';\nimport { getUuidKey } from '@kp-ui/tool';\nimport { routerReloadStatus, useComRef, useExecFunction, useRef } from 'tmgc2-share';\nimport DynamicDialog from '../form-render/dynamic-dialog.vue';\nimport { useEmitter } from '@/utils/useEmitter';\nimport { useAppRef } from '../form-designer/useAppRef';\nexport interface FormRenderProps {\n vfCtx?: Record<string, any>;\n formJson?: any;\n formData?: Record<string, any>;\n optionData?: Record<string, any>;\n disabledMode?: boolean;\n renderConfig?: {\n languageName?: string;\n };\n globalDsv?: Record<string, any>;\n parentForm?: any;\n dynamicCreation?: boolean;\n debug?: boolean;\n}\n\n/**\n * 表单上下文配置\n */\nexport interface FormContextOptions {\n props: FormRenderProps;\n renderForm: any;\n}\n\n/**\n * 创建表单上下文\n * @param options 表单上下文配置\n * @returns 表单上下文\n */\nexport const useFormContext = ({ renderForm, props }: FormContextOptions) => {\n const { formJson } = props;\n const dynamicDialgRef = useComRef(DynamicDialog);\n const { i18nt } = useI18n();\n const [readModeFlag, setReadMode] = useRef(false);\n\n const emitter = useEmitter();\n\n const formJsonObj = ref();\n // 状态变量\n const formDataModel = ref<Record<string, any>>({});\n const isLoading = ref(false);\n const widgetRefList = ref<Map<string, any>>(new Map());\n const dialogProps = ref({});\n const childFormRef = ref();\n\n const formWidgetId = Symbol('formWidget');\n\n // 提供给子组件的数据\n provide('refList', widgetRefList);\n provide('getFormConfig', () => formConfig.value);\n provide('formData', formDataModel);\n provide('getReadMode', () => readModeFlag.value);\n provide('designState', false); // 设计态标识\n\n const dialogOrDrawerRef = ref();\n\n const { executeFunction, context, execHttpFunction } = useExecFunction();\n const { getFormRef, getWidgetRef, registerToRefList } = useAppRef(widgetRefList, formWidgetId);\n\n // 计算属性\n const formConfig = computed(() => formJsonObj.value?.formConfig || {});\n\n provide('formConfig', formConfig);\n provide('formWidgetId', formWidgetId);\n\n const widgetList = computed(() => formJsonObj.value?.widgetList || []);\n const labelPosition = computed(() => {\n return formConfig.value?.labelPosition || 'horizontal';\n });\n\n const setChildFormRef = chid => {\n childFormRef.value = chid;\n };\n\n const labelWidth = computed(() => {\n return formConfig.value?.labelWidth ? `${formConfig.value.labelWidth}px` : '80px';\n });\n\n const customClass = computed(() => {\n return formConfig.value?.customClass || '';\n });\n\n // 初始化表单验证器\n let formValidator = useFormValidation(renderForm);\n\n // 监听 widgetList 变化,重新初始化验证器\n watchEffect(() => {\n formValidator = useFormValidation(renderForm);\n });\n\n /**\n * 设置表单JSON数据\n */\n const setFormJson = async (json: any) => {\n console.log({ json });\n\n formJsonObj.value = json || { widgetList: [], formConfig: {} };\n // 重新构建表单数据模型\n formDataModel.value = {};\n\n await nextTick();\n handleOnMounted();\n };\n\n /**\n * 获取表单数据\n */\n const getFormData = () => {\n return formDataModel.value || {};\n };\n\n /**\n * 设置表单数据\n */\n const setFormData = (data: Record<string, any>) => {\n if (!data) return;\n // 更新表单数据模型\n Object.keys(data).forEach(key => {\n if (key === 'processingDescribe') {\n console.log(data[key]);\n }\n if (Object.prototype.hasOwnProperty.call(formDataModel.value, key)) {\n formDataModel.value[key] = data[key];\n }\n });\n };\n\n /**\n * 设置加载状态\n */\n const setLoading = (loading: boolean) => {\n isLoading.value = loading;\n };\n\n /**\n * 重置表单验证\n */\n const resetValidation = () => {\n formValidator.resetValidation();\n };\n\n /**\n * 清除表单验证\n */\n const clearValidate = () => {\n formValidator.clearValidate();\n };\n\n const setDialogOrDrawerRef = (ddRef: any) => {\n dialogOrDrawerRef.value = ddRef;\n };\n\n /**\n * 当显示多级嵌套弹窗或抽屉时,获取最顶层VFormRender组件实例\n * @returns {object}\n */\n const getTopFormRef = () => {\n if (!props.parentForm) {\n return getFormRef();\n }\n\n let topFormRef = props.parentForm;\n while (topFormRef.parentForm) {\n topFormRef = topFormRef.parentForm;\n }\n\n return topFormRef;\n };\n\n /**\n * 显示弹窗表单,动态创建v-form-render组件,option-data、global-dsv等属性继承父级表单\n * @param dialogName\n * @param formData\n * @param extraData\n */\n const showDialog = (dialogName, formData = {}, extraData = {}) => {\n const topFormRef = getTopFormRef();\n const dialogCon = (getContainerWidgetByName(topFormRef?.widgetList || [], dialogName) ||\n getContainerWidgetByName(widgetList.value || [], dialogName)) as Widget | null;\n\n if (dialogCon === null) {\n message.error(i18nt('render.hint.refNotFound') + dialogName);\n return;\n }\n\n if (!dialogName || dialogCon.type !== 'vf-dialog') {\n message.error(i18nt('render.hint.refNotFound') + dialogName);\n return;\n }\n const dFormJson = {\n widgetList: cloneDeep(dialogCon?.widgetList || []),\n formConfig: cloneFormConfigWithoutEventHandler(topFormRef?.formConfig?.value || {})\n };\n const wrapperDivId = getUuidKey();\n dialogProps.value = {\n options: dialogCon.options,\n formJson: dFormJson,\n formData: { ...formData },\n optionData: topFormRef.optionData,\n globalDsv: topFormRef.globalDsv,\n parentFormRef: context.value,\n extraData: extraData,\n wrapperId: wrapperDivId,\n vfCtx: { ...formData }\n };\n\n dynamicDialgRef.value?.show();\n };\n /**\n * 获取父级VFormRender组件实例\n * @returns {object}\n */\n const getParentFormRef = () => {\n return props.parentForm;\n };\n\n const getChildFormRef = () => {\n return dynamicDialgRef.value?.getFormRef();\n };\n\n /**\n * 字段值变化事件处理器\n */\n const fieldChangeEventHandler = () => {\n emitter.off$('fieldChange');\n emitter.on$('fieldChange', ({ fieldName, value }) => {\n // 过滤掉错误值\n if (typeof fieldName !== 'undefined' && typeof value !== 'undefined') {\n set(formDataModel.value, fieldName, value);\n }\n });\n };\n\n const onFormDetail = async () => {\n const serveList = formConfig.value.serveList;\n const res = await execHttpFunction(serveList.vformDetail, {\n vfCtx: props.vfCtx\n });\n console.log('res: ', res);\n return res;\n };\n\n const onFormUpdate = async () => {\n const valid = await formValidator.validate();\n if (!valid) throw new Error(i18nt('表单验证失败'));\n\n const serveList = formConfig.value.serveList;\n const res = await execHttpFunction(serveList.vformUpdate, {\n data: formDataModel.value,\n vfCtx: props.vfCtx\n });\n console.log('res: ', res);\n return res;\n };\n\n const handleOnMounted = () => {\n if (formConfig.value?.onFormMounted) {\n console.log('onFormMounted: ');\n executeFunction({\n functionBody: formConfig.value?.onFormMounted\n });\n }\n };\n\n /**\n * 插入自定义样式和脚本\n * @param cssCode CSS代码\n * @param functions 自定义函数\n * @param formId 表单ID\n */\n const insertCustomCode = () => {\n const formId = 'vfRender' + generateId();\n const { cssCode, functions } = formConfig.value;\n if (cssCode) {\n insertCustomCssToHead(cssCode, formId || '');\n }\n if (functions) {\n insertGlobalFunctionsToHtml(functions, formId || '');\n }\n };\n\n const reload = () => {\n const router = context.value?.$router;\n router?.replace({\n query: {\n ...router.currentRoute.value.query,\n _t: Date.now()\n }\n });\n };\n\n const goBack = (reloadStatus?: routerReloadStatus, cb?: () => void) => {\n const goBack = getFormRef().vfCtx?.goBack;\n if (typeof goBack === 'function') {\n goBack(reloadStatus, cb);\n } else {\n const router = context.value?.$router;\n router?.go(-1);\n }\n };\n\n const getFieldValue = (field: string) => {\n return formDataModel.value[field];\n };\n\n const getVfCtx = () => {\n return props.vfCtx;\n };\n\n onMounted(() => {\n if (formJson) {\n setFormJson(formJson);\n }\n fieldChangeEventHandler();\n insertCustomCode();\n });\n\n const expose = {\n context,\n i18nt,\n goBack,\n reload,\n getFieldValue,\n resetValidation,\n clearValidate,\n getVfCtx,\n getParentFormRef,\n getFormRef,\n getWidgetRef,\n showDialog,\n getFormData,\n getChildFormRef,\n setFormData,\n setReadMode,\n setFormJson,\n setLoading,\n onFormDetail,\n onFormUpdate,\n formDataModel,\n isLoading,\n vfCtx: props.vfCtx,\n // 计算属性\n formConfig,\n dynamicDialgRef,\n setChildFormRef\n };\n\n return {\n formWidgetId,\n registerToRefList,\n dialogOrDrawerRef,\n setDialogOrDrawerRef,\n\n emitter,\n context,\n // 状态\n formJsonObj,\n readModeFlag,\n // 引用\n widgetRefList,\n formValidator,\n\n widgetList,\n labelPosition,\n labelWidth,\n customClass,\n dialogProps,\n\n expose,\n ...expose\n };\n};\n"],"names":["useFormContext","renderForm","props","formJson","dynamicDialgRef","useComRef","DynamicDialog","i18nt","useI18n","readModeFlag","setReadMode","useRef","emitter","useEmitter","formJsonObj","ref","formDataModel","isLoading","widgetRefList","dialogProps","childFormRef","formWidgetId","provide","formConfig","dialogOrDrawerRef","executeFunction","context","execHttpFunction","useExecFunction","getFormRef","getWidgetRef","registerToRefList","useAppRef","computed","_a","widgetList","labelPosition","setChildFormRef","chid","labelWidth","customClass","formValidator","useFormValidation","watchEffect","setFormJson","json","nextTick","handleOnMounted","getFormData","setFormData","data","key","setLoading","loading","resetValidation","clearValidate","setDialogOrDrawerRef","ddRef","getTopFormRef","topFormRef","showDialog","dialogName","formData","extraData","dialogCon","getContainerWidgetByName","message","dFormJson","cloneDeep","cloneFormConfigWithoutEventHandler","wrapperDivId","getUuidKey","_b","getParentFormRef","getChildFormRef","fieldChangeEventHandler","fieldName","value","set","onFormDetail","serveList","res","onFormUpdate","insertCustomCode","formId","generateId","cssCode","functions","insertCustomCssToHead","insertGlobalFunctionsToHtml","reload","router","goBack","reloadStatus","cb","getFieldValue","field","getVfCtx","onMounted","expose"],"mappings":"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"}
1
+ {"version":3,"file":"useFormContext.js","sources":["../../../../src/components/FormRender/useFormContext.ts"],"sourcesContent":["import { computed, nextTick, onMounted, provide, ref, watchEffect } from 'vue';\nimport { useFormValidation } from './formValidation';\n\n/**\n * 表单上下文接口\n */\nimport { Widget } from '@/types/schema';\nimport {\n cloneFormConfigWithoutEventHandler,\n generateId,\n getContainerWidgetByName,\n insertCustomCssToHead,\n insertGlobalFunctionsToHtml\n} from '@/utils/util';\nimport { cloneDeep, set } from 'lodash-es';\nimport { message } from 'ant-design-vue';\nimport { useI18n } from '@/utils/i18n';\nimport { getUuidKey } from '@kp-ui/tool';\nimport { routerReloadStatus, useComRef, useExecFunction, useRef } from 'tmgc2-share';\nimport DynamicDialog from '../form-render/dynamic-dialog.vue';\nimport { useEmitter } from '@/utils/useEmitter';\nimport { useAppRef } from '../form-designer/useAppRef';\nexport interface FormRenderProps {\n vfCtx?: Record<string, any>;\n formJson?: any;\n formData?: Record<string, any>;\n optionData?: Record<string, any>;\n disabledMode?: boolean;\n renderConfig?: {\n languageName?: string;\n };\n globalDsv?: Record<string, any>;\n parentForm?: any;\n dynamicCreation?: boolean;\n debug?: boolean;\n}\n\n/**\n * 表单上下文配置\n */\nexport interface FormContextOptions {\n props: FormRenderProps;\n renderForm: any;\n}\n\n/**\n * 创建表单上下文\n * @param options 表单上下文配置\n * @returns 表单上下文\n */\nexport const useFormContext = ({ renderForm, props }: FormContextOptions) => {\n const { formJson } = props;\n const dynamicDialgRef = useComRef(DynamicDialog);\n const { i18nt } = useI18n();\n const [readModeFlag, setReadMode] = useRef(false);\n\n const emitter = useEmitter();\n\n const formJsonObj = ref();\n // 状态变量\n const formDataModel = ref<Record<string, any>>({});\n const isLoading = ref(false);\n const widgetRefList = ref<Map<string, any>>(new Map());\n const dialogProps = ref({});\n const childFormRef = ref();\n\n const formWidgetId = Symbol('formWidget');\n\n // 提供给子组件的数据\n provide('refList', widgetRefList);\n provide('getFormConfig', () => formConfig.value);\n provide('formData', formDataModel);\n provide('getReadMode', () => readModeFlag.value);\n provide('designState', false); // 设计态标识\n\n const dialogOrDrawerRef = ref();\n\n const { executeFunction, context, execHttpFunction } = useExecFunction();\n const { getFormRef, getWidgetRef, registerToRefList } = useAppRef(widgetRefList, formWidgetId);\n\n // 计算属性\n const formConfig = computed(() => formJsonObj.value?.formConfig || {});\n\n provide('formConfig', formConfig);\n provide('formWidgetId', formWidgetId);\n\n const widgetList = computed(() => formJsonObj.value?.widgetList || []);\n const labelPosition = computed(() => {\n return formConfig.value?.labelPosition || 'horizontal';\n });\n\n const setChildFormRef = chid => {\n childFormRef.value = chid;\n };\n\n const labelWidth = computed(() => {\n return formConfig.value?.labelWidth ? `${formConfig.value.labelWidth}px` : '80px';\n });\n\n const customClass = computed(() => {\n return formConfig.value?.customClass || '';\n });\n\n // 初始化表单验证器\n let formValidator = useFormValidation(renderForm);\n\n // 监听 widgetList 变化,重新初始化验证器\n watchEffect(() => {\n formValidator = useFormValidation(renderForm);\n });\n\n /**\n * 设置表单JSON数据\n */\n const setFormJson = async (json: any) => {\n console.log({ json });\n\n formJsonObj.value = json || { widgetList: [], formConfig: {} };\n // 重新构建表单数据模型\n formDataModel.value = {};\n\n await nextTick();\n handleOnMounted();\n };\n\n /**\n * 获取表单数据\n */\n const getFormData = () => {\n return formDataModel.value || {};\n };\n\n /**\n * 设置表单数据\n */\n const setFormData = (data: Record<string, any>) => {\n if (!data) return;\n // 更新表单数据模型\n Object.keys(data).forEach(key => {\n if (key === 'processingDescribe') {\n console.log(data[key]);\n }\n if (Object.prototype.hasOwnProperty.call(formDataModel.value, key)) {\n formDataModel.value[key] = data[key];\n }\n });\n };\n\n /**\n * 设置加载状态\n */\n const setLoading = (loading: boolean) => {\n isLoading.value = loading;\n };\n\n /**\n * 重置表单验证\n */\n const resetValidation = () => {\n formValidator.resetValidation();\n };\n\n /**\n * 清除表单验证\n */\n const clearValidate = () => {\n formValidator.clearValidate();\n };\n\n const setDialogOrDrawerRef = (ddRef: any) => {\n dialogOrDrawerRef.value = ddRef;\n };\n\n /**\n * 当显示多级嵌套弹窗或抽屉时,获取最顶层VFormRender组件实例\n * @returns {object}\n */\n const getTopFormRef = () => {\n if (!props.parentForm) {\n return getFormRef();\n }\n\n let topFormRef = props.parentForm;\n while (topFormRef.parentForm) {\n topFormRef = topFormRef.parentForm;\n }\n\n return topFormRef;\n };\n\n /**\n * 显示弹窗表单,动态创建v-form-render组件,option-data、global-dsv等属性继承父级表单\n * @param dialogName\n * @param formData\n * @param extraData\n */\n const showDialog = (dialogName, formData = {}, extraData = {}) => {\n const topFormRef = getTopFormRef();\n const dialogCon = (getContainerWidgetByName(topFormRef?.widgetList || [], dialogName) ||\n getContainerWidgetByName(widgetList.value || [], dialogName)) as Widget | null;\n\n if (dialogCon === null) {\n message.error(i18nt('render.hint.refNotFound') + dialogName);\n return;\n }\n\n if (!dialogName || dialogCon.type !== 'vf-dialog') {\n message.error(i18nt('render.hint.refNotFound') + dialogName);\n return;\n }\n const dFormJson = {\n widgetList: cloneDeep(dialogCon?.widgetList || []),\n formConfig: cloneFormConfigWithoutEventHandler(topFormRef?.formConfig?.value || {})\n };\n const wrapperDivId = getUuidKey();\n dialogProps.value = {\n options: dialogCon.options,\n formJson: dFormJson,\n formData: { ...formData },\n optionData: topFormRef.optionData,\n globalDsv: topFormRef.globalDsv,\n parentFormRef: context.value,\n extraData: extraData,\n wrapperId: wrapperDivId,\n vfCtx: { ...formData }\n };\n\n dynamicDialgRef.value?.show();\n };\n /**\n * 获取父级VFormRender组件实例\n * @returns {object}\n */\n const getParentFormRef = () => {\n return props.parentForm;\n };\n\n const getChildFormRef = () => {\n return dynamicDialgRef.value?.getFormRef();\n };\n\n /**\n * 字段值变化事件处理器\n */\n const fieldChangeEventHandler = () => {\n emitter.off$('fieldChange');\n emitter.on$('fieldChange', ({ fieldName, value }) => {\n // 过滤掉错误值\n if (typeof fieldName !== 'undefined' && typeof value !== 'undefined') {\n set(formDataModel.value, fieldName, value);\n }\n });\n };\n\n const onFormDetail = async () => {\n const serveList = formConfig.value.serveList;\n const res = await execHttpFunction(serveList.vformDetail, {\n vfCtx: props.vfCtx\n });\n console.log('res: ', res);\n return res;\n };\n\n const onFormUpdate = async () => {\n const valid = await formValidator.validate();\n if (!valid) throw new Error(i18nt('表单验证失败'));\n\n const serveList = formConfig.value.serveList;\n const res = await execHttpFunction(serveList.vformUpdate, {\n data: formDataModel.value,\n vfCtx: props.vfCtx\n });\n console.log('res: ', res);\n return res;\n };\n\n const handleOnMounted = () => {\n if (formConfig.value?.onFormMounted) {\n console.log('onFormMounted: ');\n executeFunction({\n functionBody: formConfig.value?.onFormMounted\n });\n }\n };\n\n /**\n * 插入自定义样式和脚本\n * @param cssCode CSS代码\n * @param functions 自定义函数\n * @param formId 表单ID\n */\n const insertCustomCode = () => {\n const formId = 'vfRender' + generateId();\n const { cssCode, functions } = formConfig.value;\n if (cssCode) {\n insertCustomCssToHead(cssCode, formId || '');\n }\n if (functions) {\n insertGlobalFunctionsToHtml(functions, formId || '');\n }\n };\n\n const reload = () => {\n const router = context.value?.$router;\n router?.replace({\n query: {\n ...router.currentRoute.value.query,\n _t: Date.now()\n }\n });\n };\n\n const goBack = (reloadStatus?: routerReloadStatus, cb?: () => void) => {\n const goBack = getFormRef().vfCtx?.goBack;\n if (typeof goBack === 'function') {\n goBack(reloadStatus, cb);\n } else {\n const router = context.value?.$router;\n router?.go(-1);\n }\n };\n\n const getFieldValue = (field: string) => {\n return formDataModel.value[field];\n };\n\n const getVfCtx = () => {\n return props.vfCtx;\n };\n\n onMounted(() => {\n if (formJson) {\n setFormJson(formJson);\n }\n fieldChangeEventHandler();\n insertCustomCode();\n });\n\n const expose = {\n context,\n i18nt,\n goBack,\n reload,\n getFieldValue,\n resetValidation,\n clearValidate,\n getVfCtx,\n getParentFormRef,\n getFormRef,\n getWidgetRef,\n showDialog,\n getFormData,\n getChildFormRef,\n setFormData,\n setReadMode,\n setFormJson,\n setLoading,\n onFormDetail,\n onFormUpdate,\n formDataModel,\n isLoading,\n vfCtx: props.vfCtx,\n // 计算属性\n formConfig,\n dynamicDialgRef,\n setChildFormRef,\n setDialogOrDrawerRef\n };\n\n return {\n formWidgetId,\n registerToRefList,\n dialogOrDrawerRef,\n\n emitter,\n // 状态\n formJsonObj,\n readModeFlag,\n // 引用\n widgetRefList,\n formValidator,\n\n widgetList,\n labelPosition,\n labelWidth,\n customClass,\n dialogProps,\n\n expose,\n ...expose\n };\n};\n"],"names":["useFormContext","renderForm","props","formJson","dynamicDialgRef","useComRef","DynamicDialog","i18nt","useI18n","readModeFlag","setReadMode","useRef","emitter","useEmitter","formJsonObj","ref","formDataModel","isLoading","widgetRefList","dialogProps","childFormRef","formWidgetId","provide","formConfig","dialogOrDrawerRef","executeFunction","context","execHttpFunction","useExecFunction","getFormRef","getWidgetRef","registerToRefList","useAppRef","computed","_a","widgetList","labelPosition","setChildFormRef","chid","labelWidth","customClass","formValidator","useFormValidation","watchEffect","setFormJson","json","nextTick","handleOnMounted","getFormData","setFormData","data","key","setLoading","loading","resetValidation","clearValidate","setDialogOrDrawerRef","ddRef","getTopFormRef","topFormRef","showDialog","dialogName","formData","extraData","dialogCon","getContainerWidgetByName","message","dFormJson","cloneDeep","cloneFormConfigWithoutEventHandler","wrapperDivId","getUuidKey","_b","getParentFormRef","getChildFormRef","fieldChangeEventHandler","fieldName","value","set","onFormDetail","serveList","res","onFormUpdate","insertCustomCode","formId","generateId","cssCode","functions","insertCustomCssToHead","insertGlobalFunctionsToHtml","reload","router","goBack","reloadStatus","cb","getFieldValue","field","getVfCtx","onMounted","expose"],"mappings":"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"}