@kp-ui/lowcode 2.16.0-alpha.8 → 2.16.0
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.
- package/install.js +19 -21
- package/install.js.map +1 -1
- package/package.json +2 -2
- package/src/components/FormRender/FormContainer.vue.js +25 -27
- package/src/components/FormRender/FormContainer.vue.js.map +1 -1
- package/src/components/FormRender/useFormContext.js +56 -56
- package/src/components/FormRender/useFormContext.js.map +1 -1
- package/src/components/form-designer/form-widget/container-widget/useTableWidget.js +11 -9
- package/src/components/form-designer/form-widget/container-widget/useTableWidget.js.map +1 -1
- package/src/components/form-designer/form-widget/field-widget/form-item-wrapper.vue.js +1 -1
- package/src/components/form-designer/form-widget/field-widget/form-item-wrapper.vue2.js +65 -53
- package/src/components/form-designer/form-widget/field-widget/form-item-wrapper.vue2.js.map +1 -1
- package/src/components/form-designer/form-widget/field-widget/useField.js +111 -115
- package/src/components/form-designer/form-widget/field-widget/useField.js.map +1 -1
- package/src/components/form-designer/setting-panel/form-setting.vue.js +1 -1
- package/src/components/form-designer/setting-panel/form-setting.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/height-editor.vue2.js +16 -18
- package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/height-editor.vue2.js.map +1 -1
- package/src/components/form-designer/setting-panel/property-editor/labelIconClass-editor.vue2.js +29 -18
- package/src/components/form-designer/setting-panel/property-editor/labelIconClass-editor.vue2.js.map +1 -1
- package/src/components/form-designer/widget-panel/basicFields/input.js +4 -2
- package/src/components/form-designer/widget-panel/basicFields/input.js.map +1 -1
- package/src/components/form-render/container-items/data-table-widget.vue.js +3 -3
- package/src/components/form-render/container-items/data-table-widget.vue2.js +5 -7
- package/src/components/form-render/container-items/data-table-widget.vue2.js.map +1 -1
- package/src/components/form-render/dynamic-dialog.vue.js +63 -62
- package/src/components/form-render/dynamic-dialog.vue.js.map +1 -1
- package/src/components/public/ConfigView/CustomPageRender.vue.js +35 -27
- package/src/components/public/ConfigView/CustomPageRender.vue.js.map +1 -1
- package/src/components/public/CustomerModal/CustomerModal.vue2.js +63 -56
- package/src/components/public/CustomerModal/CustomerModal.vue2.js.map +1 -1
- package/src/lang/en-US.js +1 -0
- package/src/lang/en-US.js.map +1 -1
- package/src/lang/zh-CN.js +1 -0
- package/src/lang/zh-CN.js.map +1 -1
- package/src/utils/format.js +18 -11
- package/src/utils/format.js.map +1 -1
- package/src/utils/util.js +12 -22
- package/src/utils/util.js.map +1 -1
- package/stats.html +1 -1
- package/styles/style.css +1 -1
- package/src/components/form-render/SubmitButtonRender.vue.js +0 -92
- package/src/components/form-render/SubmitButtonRender.vue.js.map +0 -1
- package/src/components/form-render/SubmitButtonRender.vue2.js +0 -5
- package/src/components/form-render/SubmitButtonRender.vue2.js.map +0 -1
package/install.js
CHANGED
|
@@ -1,29 +1,27 @@
|
|
|
1
1
|
/* empty css */
|
|
2
2
|
import "./_virtual/virtual_svg-icons-register.js";
|
|
3
|
-
import
|
|
4
|
-
import { getLocat as s } from "@kp-ui/tool";
|
|
5
|
-
import { VxeTooltip as
|
|
6
|
-
import { basicFieldsEnums as
|
|
7
|
-
import { default as
|
|
3
|
+
import p from "dayjs";
|
|
4
|
+
import { getLocat as i, getUserInfo as s } from "@kp-ui/tool";
|
|
5
|
+
import { VxeTooltip as a } from "vxe-pc-ui";
|
|
6
|
+
import { basicFieldsEnums as L } from "./src/components/form-designer/widget-panel/basicFieldsEnums.js";
|
|
7
|
+
import { default as $ } from "./src/components/form-designer/index.vue.js";
|
|
8
8
|
/* empty css */
|
|
9
9
|
import { openCustomerModal as m } from "./src/components/public/CustomerModal/useCustomerModal.js";
|
|
10
|
-
import { default as
|
|
11
|
-
import { default as
|
|
12
|
-
import {
|
|
13
|
-
import {
|
|
14
|
-
|
|
15
|
-
const
|
|
16
|
-
|
|
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);
|
|
10
|
+
import { default as C } from "./src/components/public/ActionButtonListRender.vue.js";
|
|
11
|
+
import { default as F } from "./src/components/public/ConfigView/CustomPageRender.vue.js";
|
|
12
|
+
import { useLowcode as w } from "./src/hooks/useLowcode.js";
|
|
13
|
+
import { default as M } from "./src/components/FormRender/index.vue.js";
|
|
14
|
+
const x = (e) => {
|
|
15
|
+
const { app: o, factoryRender: r } = e;
|
|
16
|
+
o.config.globalProperties.$getLocat = i, o.config.globalProperties.$dayjs = p, o.config.globalProperties.$getUserInfo = s, o.config.globalProperties.$factoryRender = r, o.config.globalProperties.$openCustomerModal = (t) => m(t, o), o.component("VxeTooltip", a);
|
|
18
17
|
};
|
|
19
18
|
export {
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
I as useLowcode
|
|
19
|
+
C as ActionButtonListRender,
|
|
20
|
+
F as CustomPageRender,
|
|
21
|
+
$ as VFormDesigner,
|
|
22
|
+
M as VFormRender,
|
|
23
|
+
L as basicFieldsEnums,
|
|
24
|
+
x as registerLowcodeCore,
|
|
25
|
+
w as useLowcode
|
|
28
26
|
};
|
|
29
27
|
//# 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';\
|
|
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';\nimport { getUserInfo } from '@kp-ui/tool';\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';\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}\n\n// 注册 HTTP\nexport const registerLowcodeCore = (params: RegisterLowcodeCoreParams) => {\n const { app, factoryRender } = 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","getLocat","dayjs","getUserInfo","ops","openCustomerModal","VxeTooltip"],"mappings":";;;;;;;;;;;;;AA2BO,MAAMA,IAAsB,CAACC,MAAsC;AACtE,QAAM,EAAE,KAAAC,GAAK,eAAAC,EAAA,IAAkBF;AAC/B,EAAAC,EAAI,OAAO,iBAAiB,YAAYE,GACxCF,EAAI,OAAO,iBAAiB,SAASG,GACrCH,EAAI,OAAO,iBAAiB,eAAeI,GAC3CJ,EAAI,OAAO,iBAAiB,iBAAiBC,GAC7CD,EAAI,OAAO,iBAAiB,qBAAqB,CAAAK,MAAOC,EAAkBD,GAAKL,CAAG,GAClFA,EAAI,UAAU,cAAcO,CAAU;AAC1C;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kp-ui/lowcode",
|
|
3
|
-
"version": "2.16.0
|
|
3
|
+
"version": "2.16.0",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"sortablejs": "1.14.0",
|
|
25
25
|
"tailwindcss": "3.4.9",
|
|
26
26
|
"vite": "6.3.3",
|
|
27
|
-
"vite-plugin-lazy-import": "
|
|
27
|
+
"vite-plugin-lazy-import": "1.0.7",
|
|
28
28
|
"vue": "3.5.17",
|
|
29
29
|
"vue-router": "4.2.4"
|
|
30
30
|
},
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import { Form as
|
|
3
|
-
import
|
|
4
|
-
import { useEmitter as
|
|
5
|
-
const j = /* @__PURE__ */
|
|
1
|
+
import { defineComponent as x, ref as _, computed as t, onMounted as g, createBlock as C, openBlock as y, unref as F, withKeys as w, normalizeClass as M, withCtx as b, createVNode as h } from "vue";
|
|
2
|
+
import { Form as E } from "ant-design-vue";
|
|
3
|
+
import L from "../form-render/RenderWigetList.vue.js";
|
|
4
|
+
import { useEmitter as $ } from "../../utils/useEmitter.js";
|
|
5
|
+
const j = /* @__PURE__ */ x({
|
|
6
6
|
__name: "FormContainer",
|
|
7
7
|
props: {
|
|
8
8
|
context: {
|
|
@@ -11,39 +11,37 @@ const j = /* @__PURE__ */ _({
|
|
|
11
11
|
}
|
|
12
12
|
},
|
|
13
13
|
emits: ["form-submit", "form-cancel"],
|
|
14
|
-
setup(
|
|
15
|
-
const e =
|
|
14
|
+
setup(n, { expose: a, emit: k }) {
|
|
15
|
+
const e = n, r = _(), { emit$: l, on$: s, off$: m } = $(), c = t({
|
|
16
16
|
get: () => e.context.formDataModel.value,
|
|
17
17
|
set: (o) => {
|
|
18
18
|
e.context.formDataModel.value = o;
|
|
19
19
|
}
|
|
20
|
-
}),
|
|
20
|
+
}), i = t(() => e.context.readModeFlag.value), u = t(() => e.context.formConfig.value), d = t(() => e.context.widgetList.value), f = t(() => e.context.labelPosition.value), p = t(() => e.context.customClass.value), v = () => {
|
|
21
21
|
var o;
|
|
22
|
-
((o =
|
|
22
|
+
((o = u.value) == null ? void 0 : o.isEnterSubmit) === 1 && e.context.onFormUpdate();
|
|
23
23
|
};
|
|
24
|
-
return
|
|
25
|
-
}),
|
|
26
|
-
renderForm:
|
|
27
|
-
off$:
|
|
28
|
-
on$:
|
|
29
|
-
emit$:
|
|
30
|
-
}), (o,
|
|
24
|
+
return g(() => {
|
|
25
|
+
}), a({
|
|
26
|
+
renderForm: r,
|
|
27
|
+
off$: m,
|
|
28
|
+
on$: s,
|
|
29
|
+
emit$: l
|
|
30
|
+
}), (o, D) => (y(), C(F(E), {
|
|
31
31
|
ref_key: "renderForm",
|
|
32
|
-
ref:
|
|
33
|
-
layout:
|
|
34
|
-
class:
|
|
32
|
+
ref: r,
|
|
33
|
+
layout: f.value,
|
|
34
|
+
class: M(["render-form", "tpf-form", p.value, i.value ? "readonly-mode-form" : ""]),
|
|
35
35
|
scrollToFirstError: !0,
|
|
36
36
|
validateOnRuleChange: !1,
|
|
37
|
-
model:
|
|
38
|
-
onKeydown:
|
|
37
|
+
model: c.value,
|
|
38
|
+
onKeydown: w(v, ["enter"])
|
|
39
39
|
}, {
|
|
40
|
-
default:
|
|
41
|
-
L
|
|
40
|
+
default: b(() => [
|
|
41
|
+
h(L, {
|
|
42
42
|
parentWidget: null,
|
|
43
|
-
widgetList:
|
|
44
|
-
|
|
45
|
-
"onUpdate:formDataModel": n[0] || (n[0] = (g) => r.value = g)
|
|
46
|
-
}, null, 8, ["widgetList", "formDataModel"])
|
|
43
|
+
widgetList: d.value
|
|
44
|
+
}, null, 8, ["widgetList"])
|
|
47
45
|
]),
|
|
48
46
|
_: 1
|
|
49
47
|
}, 8, ["layout", "class", "model"]));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormContainer.vue.js","sources":["../../../../src/components/FormRender/FormContainer.vue"],"sourcesContent":["<template>\n <Form\n ref=\"renderForm\"\n :layout=\"labelPosition\"\n :class=\"['render-form', 'tpf-form', customClass, readModeFlag ? 'readonly-mode-form' : '']\"\n :scrollToFirstError=\"true\"\n :validateOnRuleChange=\"false\"\n :model=\"formDataModel\"\n @keydown.enter=\"handleEnterKey\"\n >\n <RenderWigetList
|
|
1
|
+
{"version":3,"file":"FormContainer.vue.js","sources":["../../../../src/components/FormRender/FormContainer.vue"],"sourcesContent":["<template>\n <Form\n ref=\"renderForm\"\n :layout=\"labelPosition\"\n :class=\"['render-form', 'tpf-form', customClass, readModeFlag ? 'readonly-mode-form' : '']\"\n :scrollToFirstError=\"true\"\n :validateOnRuleChange=\"false\"\n :model=\"formDataModel\"\n @keydown.enter=\"handleEnterKey\"\n >\n <RenderWigetList :parentWidget=\"null\" :widgetList=\"widgetList\" />\n </Form>\n</template>\n\n<script lang=\"ts\" setup>\n import { computed, ref, onMounted, type PropType } from 'vue';\n import { Form } from 'ant-design-vue';\n import RenderWigetList from '@/components/form-render/RenderWigetList.vue';\n import { useEmitter } from '@/utils/useEmitter';\n\n /**\n * 表单容器组件\n * 负责渲染表单及其子组件\n */\n\n const props = defineProps({\n context: {\n type: Object as PropType<any>,\n required: true\n }\n });\n\n const emit = defineEmits(['form-submit', 'form-cancel']);\n\n // 组件引用\n const renderForm = ref();\n const { emit$, on$, off$ } = useEmitter();\n\n // 从上下文中获取数据\n const formDataModel = computed({\n get: () => props.context.formDataModel.value,\n set: val => {\n props.context.formDataModel.value = val;\n }\n });\n const readModeFlag = computed(() => props.context.readModeFlag.value);\n const formConfig = computed(() => props.context.formConfig.value);\n const widgetList = computed(() => props.context.widgetList.value);\n const labelPosition = computed(() => props.context.labelPosition.value);\n const customClass = computed(() => props.context.customClass.value);\n\n /**\n * 处理回车键事件\n */\n const handleEnterKey = () => {\n if (formConfig.value?.isEnterSubmit === 1) {\n props.context.onFormUpdate();\n }\n };\n\n onMounted(() => {});\n\n // 暴露方法\n defineExpose({\n renderForm,\n off$,\n on$,\n emit$\n });\n</script>\n"],"names":["props","__props","renderForm","ref","emit$","on$","off$","useEmitter","formDataModel","computed","val","readModeFlag","formConfig","widgetList","labelPosition","customClass","handleEnterKey","_a","onMounted","__expose","_createBlock","_unref","Form","_normalizeClass","_createVNode","RenderWigetList"],"mappings":";;;;;;;;;;;;;;AAyBI,UAAMA,IAAQC,GAURC,IAAaC,EAAA,GACb,EAAE,OAAAC,GAAO,KAAAC,GAAK,MAAAC,EAAA,IAASC,EAAA,GAGvBC,IAAgBC,EAAS;AAAA,MAC3B,KAAK,MAAMT,EAAM,QAAQ,cAAc;AAAA,MACvC,KAAK,CAAAU,MAAO;AACR,QAAAV,EAAM,QAAQ,cAAc,QAAQU;AAAA,MACxC;AAAA,IAAA,CACH,GACKC,IAAeF,EAAS,MAAMT,EAAM,QAAQ,aAAa,KAAK,GAC9DY,IAAaH,EAAS,MAAMT,EAAM,QAAQ,WAAW,KAAK,GAC1Da,IAAaJ,EAAS,MAAMT,EAAM,QAAQ,WAAW,KAAK,GAC1Dc,IAAgBL,EAAS,MAAMT,EAAM,QAAQ,cAAc,KAAK,GAChEe,IAAcN,EAAS,MAAMT,EAAM,QAAQ,YAAY,KAAK,GAK5DgB,IAAiB,MAAM;;AACzB,QAAIC,IAAAL,EAAW,UAAX,gBAAAK,EAAkB,mBAAkB,KACpCjB,EAAM,QAAQ,aAAA;AAAA,IAEtB;AAEA,WAAAkB,EAAU,MAAM;AAAA,IAAC,CAAC,GAGlBC,EAAa;AAAA,MACT,YAAAjB;AAAA,MACA,MAAAI;AAAA,MACA,KAAAD;AAAA,MACA,OAAAD;AAAA,IAAA,CACH,mBAnEDgB,EAUOC,EAAAC,CAAA,GAAA;AAAA,eATC;AAAA,MAAJ,KAAIpB;AAAA,MACH,QAAQY,EAAA;AAAA,MACR,OAAKS,EAAA,CAAA,eAAA,YAA8BR,EAAA,OAAaJ,EAAA,QAAY,uBAAA,EAAA,CAAA;AAAA,MAC5D,oBAAoB;AAAA,MACpB,sBAAsB;AAAA,MACtB,OAAOH,EAAA;AAAA,MACP,aAAeQ,GAAc,CAAA,OAAA,CAAA;AAAA,IAAA;iBAE9B,MAAiE;AAAA,QAAjEQ,EAAiEC,GAAA;AAAA,UAA/C,cAAc;AAAA,UAAO,YAAYZ,EAAA;AAAA,QAAA;;;;;;"}
|
|
@@ -1,90 +1,90 @@
|
|
|
1
|
-
import { ref as l, provide as
|
|
1
|
+
import { ref as l, provide as f, 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";
|
|
5
5
|
import { message as J } from "ant-design-vue";
|
|
6
6
|
import { useI18n as he } from "../../utils/i18n.js";
|
|
7
7
|
import { getUuidKey as xe } from "@kp-ui/tool";
|
|
8
|
-
import { useComRef as
|
|
9
|
-
import
|
|
8
|
+
import { useComRef as Re, useRef as De, useExecFunction as ye } from "tmgc2-share";
|
|
9
|
+
import Le from "../form-render/dynamic-dialog.vue.js";
|
|
10
10
|
/* empty css */
|
|
11
|
-
import { useEmitter as
|
|
11
|
+
import { useEmitter as be } from "../../utils/useEmitter.js";
|
|
12
12
|
import { useAppRef as Me } from "../form-designer/useAppRef.js";
|
|
13
|
-
const
|
|
14
|
-
const { formJson:
|
|
15
|
-
|
|
16
|
-
const
|
|
13
|
+
const Ue = ({ renderForm: x, props: i }) => {
|
|
14
|
+
const { formJson: R } = i, p = Re(Le), { i18nt: d } = he(), [D, P] = De(!1), C = be(), v = l(), s = l({}), y = l(!1), F = l(/* @__PURE__ */ new Map()), L = l({}), T = l(), w = Symbol("formWidget");
|
|
15
|
+
f("refList", F), f("getFormConfig", () => o.value), f("formData", s), f("getReadMode", () => D.value), f("designState", !1);
|
|
16
|
+
const b = l(), { executeFunction: $, context: g, execHttpFunction: M } = ye(), { getFormRef: h, getWidgetRef: k, registerToRefList: U } = Me(F, w), o = m(() => {
|
|
17
17
|
var e;
|
|
18
18
|
return ((e = v.value) == null ? void 0 : e.formConfig) || {};
|
|
19
19
|
});
|
|
20
|
-
|
|
20
|
+
f("formConfig", o), f("formWidgetId", w);
|
|
21
21
|
const W = m(() => {
|
|
22
22
|
var e;
|
|
23
23
|
return ((e = v.value) == null ? void 0 : e.widgetList) || [];
|
|
24
|
-
}),
|
|
24
|
+
}), _ = m(() => {
|
|
25
25
|
var e;
|
|
26
26
|
return ((e = o.value) == null ? void 0 : e.labelPosition) || "horizontal";
|
|
27
|
-
}),
|
|
27
|
+
}), j = (e) => {
|
|
28
28
|
T.value = e;
|
|
29
|
-
},
|
|
29
|
+
}, q = m(() => {
|
|
30
30
|
var e;
|
|
31
31
|
return (e = o.value) != null && e.labelWidth ? `${o.value.labelWidth}px` : "80px";
|
|
32
|
-
}),
|
|
32
|
+
}), S = m(() => {
|
|
33
33
|
var e;
|
|
34
34
|
return ((e = o.value) == null ? void 0 : e.customClass) || "";
|
|
35
35
|
});
|
|
36
|
-
let
|
|
36
|
+
let c = B(x);
|
|
37
37
|
ue(() => {
|
|
38
|
-
|
|
38
|
+
c = B(x);
|
|
39
39
|
});
|
|
40
40
|
const V = async (e) => {
|
|
41
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
|
+
Object.prototype.hasOwnProperty.call(s.value, t) && (s.value[t] = e[t]);
|
|
45
45
|
});
|
|
46
46
|
}, G = (e) => {
|
|
47
|
-
|
|
47
|
+
y.value = e;
|
|
48
48
|
}, K = () => {
|
|
49
|
-
|
|
49
|
+
c.resetValidation();
|
|
50
50
|
}, Q = () => {
|
|
51
|
-
|
|
51
|
+
c.clearValidate();
|
|
52
52
|
}, X = (e) => {
|
|
53
|
-
|
|
53
|
+
b.value = e;
|
|
54
54
|
}, Y = () => {
|
|
55
|
-
if (!
|
|
55
|
+
if (!i.parentForm)
|
|
56
56
|
return h();
|
|
57
|
-
let e =
|
|
57
|
+
let e = i.parentForm;
|
|
58
58
|
for (; e.parentForm; )
|
|
59
59
|
e = e.parentForm;
|
|
60
60
|
return e;
|
|
61
61
|
}, Z = (e, t = {}, r = {}) => {
|
|
62
62
|
var I, O;
|
|
63
|
-
const n = Y(),
|
|
64
|
-
if (
|
|
63
|
+
const n = Y(), a = H((n == null ? void 0 : n.widgetList) || [], e) || H(W.value || [], e);
|
|
64
|
+
if (a === null) {
|
|
65
65
|
J.error(d("render.hint.refNotFound") + e);
|
|
66
66
|
return;
|
|
67
67
|
}
|
|
68
|
-
if (!e ||
|
|
68
|
+
if (!e || a.type !== "vf-dialog") {
|
|
69
69
|
J.error(d("render.hint.refNotFound") + e);
|
|
70
70
|
return;
|
|
71
71
|
}
|
|
72
72
|
const u = {
|
|
73
|
-
widgetList: we((
|
|
73
|
+
widgetList: we((a == null ? void 0 : a.widgetList) || []),
|
|
74
74
|
formConfig: pe(((I = n == null ? void 0 : n.formConfig) == null ? void 0 : I.value) || {})
|
|
75
|
-
},
|
|
76
|
-
|
|
77
|
-
options:
|
|
75
|
+
}, ce = xe();
|
|
76
|
+
L.value = {
|
|
77
|
+
options: a.options,
|
|
78
78
|
formJson: u,
|
|
79
79
|
formData: { ...t },
|
|
80
80
|
optionData: n.optionData,
|
|
81
81
|
globalDsv: n.globalDsv,
|
|
82
82
|
parentFormRef: g.value,
|
|
83
83
|
extraData: r,
|
|
84
|
-
wrapperId:
|
|
84
|
+
wrapperId: ce,
|
|
85
85
|
vfCtx: { ...t }
|
|
86
86
|
}, (O = p.value) == null || O.show();
|
|
87
|
-
}, N = () =>
|
|
87
|
+
}, N = () => i.parentForm, ee = () => {
|
|
88
88
|
var e;
|
|
89
89
|
return (e = p.value) == null ? void 0 : e.getFormRef();
|
|
90
90
|
}, te = () => {
|
|
@@ -93,14 +93,14 @@ const _e = ({ renderForm: x, props: a }) => {
|
|
|
93
93
|
});
|
|
94
94
|
}, oe = async () => {
|
|
95
95
|
const e = o.value.serveList, t = await M(e.vformDetail, {
|
|
96
|
-
vfCtx:
|
|
96
|
+
vfCtx: i.vfCtx
|
|
97
97
|
});
|
|
98
98
|
return console.log("res: ", t), t;
|
|
99
99
|
}, ne = async () => {
|
|
100
|
-
if (!await
|
|
100
|
+
if (!await c.validate()) throw new Error(d("表单验证失败"));
|
|
101
101
|
const t = o.value.serveList, r = await M(t.vformUpdate, {
|
|
102
102
|
data: s.value,
|
|
103
|
-
vfCtx:
|
|
103
|
+
vfCtx: i.vfCtx
|
|
104
104
|
});
|
|
105
105
|
return console.log("res: ", r), r;
|
|
106
106
|
}, re = () => {
|
|
@@ -111,7 +111,7 @@ const _e = ({ renderForm: x, props: a }) => {
|
|
|
111
111
|
}, se = () => {
|
|
112
112
|
const e = "vfRender" + Ce(), { cssCode: t, functions: r } = o.value;
|
|
113
113
|
t && ve(t, e || ""), r && ge(r, e || "");
|
|
114
|
-
},
|
|
114
|
+
}, ae = () => {
|
|
115
115
|
var t;
|
|
116
116
|
const e = (t = g.value) == null ? void 0 : t.$router;
|
|
117
117
|
e == null || e.replace({
|
|
@@ -120,31 +120,32 @@ const _e = ({ renderForm: x, props: a }) => {
|
|
|
120
120
|
_t: Date.now()
|
|
121
121
|
}
|
|
122
122
|
});
|
|
123
|
-
},
|
|
124
|
-
var n,
|
|
123
|
+
}, ie = (e, t) => {
|
|
124
|
+
var n, a;
|
|
125
125
|
const r = (n = h().vfCtx) == null ? void 0 : n.goBack;
|
|
126
126
|
if (typeof r == "function")
|
|
127
127
|
r(e, t);
|
|
128
128
|
else {
|
|
129
|
-
const u = (
|
|
129
|
+
const u = (a = g.value) == null ? void 0 : a.$router;
|
|
130
130
|
u == null || u.go(-1);
|
|
131
131
|
}
|
|
132
|
-
}, le = (e) => s.value[e],
|
|
132
|
+
}, le = (e) => s.value[e], fe = () => i.vfCtx;
|
|
133
133
|
me(() => {
|
|
134
|
-
|
|
134
|
+
R && V(R), te(), se();
|
|
135
135
|
});
|
|
136
136
|
const E = {
|
|
137
137
|
context: g,
|
|
138
138
|
i18nt: d,
|
|
139
|
-
goBack:
|
|
140
|
-
reload:
|
|
139
|
+
goBack: ie,
|
|
140
|
+
reload: ae,
|
|
141
|
+
formValidator: c,
|
|
141
142
|
getFieldValue: le,
|
|
142
143
|
resetValidation: K,
|
|
143
144
|
clearValidate: Q,
|
|
144
|
-
getVfCtx:
|
|
145
|
+
getVfCtx: fe,
|
|
145
146
|
getParentFormRef: N,
|
|
146
147
|
getFormRef: h,
|
|
147
|
-
getWidgetRef:
|
|
148
|
+
getWidgetRef: k,
|
|
148
149
|
showDialog: Z,
|
|
149
150
|
getFormData: z,
|
|
150
151
|
getChildFormRef: ee,
|
|
@@ -155,35 +156,34 @@ const _e = ({ renderForm: x, props: a }) => {
|
|
|
155
156
|
onFormDetail: oe,
|
|
156
157
|
onFormUpdate: ne,
|
|
157
158
|
formDataModel: s,
|
|
158
|
-
isLoading:
|
|
159
|
-
vfCtx:
|
|
159
|
+
isLoading: y,
|
|
160
|
+
vfCtx: i.vfCtx,
|
|
160
161
|
// 计算属性
|
|
161
162
|
formConfig: o,
|
|
162
163
|
dynamicDialgRef: p,
|
|
163
|
-
setChildFormRef:
|
|
164
|
+
setChildFormRef: j,
|
|
164
165
|
setDialogOrDrawerRef: X
|
|
165
166
|
};
|
|
166
167
|
return {
|
|
167
168
|
formWidgetId: w,
|
|
168
|
-
registerToRefList:
|
|
169
|
-
dialogOrDrawerRef:
|
|
169
|
+
registerToRefList: U,
|
|
170
|
+
dialogOrDrawerRef: b,
|
|
170
171
|
emitter: C,
|
|
171
172
|
// 状态
|
|
172
173
|
formJsonObj: v,
|
|
173
|
-
readModeFlag:
|
|
174
|
+
readModeFlag: D,
|
|
174
175
|
// 引用
|
|
175
176
|
widgetRefList: F,
|
|
176
|
-
formValidator: f,
|
|
177
177
|
widgetList: W,
|
|
178
|
-
labelPosition:
|
|
179
|
-
labelWidth:
|
|
180
|
-
customClass:
|
|
181
|
-
dialogProps:
|
|
178
|
+
labelPosition: _,
|
|
179
|
+
labelWidth: q,
|
|
180
|
+
customClass: S,
|
|
181
|
+
dialogProps: L,
|
|
182
182
|
expose: E,
|
|
183
183
|
...E
|
|
184
184
|
};
|
|
185
185
|
};
|
|
186
186
|
export {
|
|
187
|
-
|
|
187
|
+
Ue as useFormContext
|
|
188
188
|
};
|
|
189
189
|
//# sourceMappingURL=useFormContext.js.map
|
|
@@ -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 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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"}
|
|
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 (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 formValidator,\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\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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"}
|
|
@@ -4,9 +4,9 @@ import Q from "../../../public/ActionButtonListRender.vue.js";
|
|
|
4
4
|
import { useI18n as U } from "../../../../utils/i18n.js";
|
|
5
5
|
import { useExecFunction as X, tranformAntTableColumnToVxetableColumn as Y, tranformAntSizzVxetableSize as Z, TpfDelConfirm as $ } from "tmgc2-share";
|
|
6
6
|
import { useDataHttp as M } from "../../../../hooks/useDataHttp.js";
|
|
7
|
-
import {
|
|
8
|
-
function
|
|
9
|
-
const S = T(), b = T(!1), { widget: o } = r, { i18nt: g } = U(), { executeFunction: u, context: R } = X(), { loadataSource:
|
|
7
|
+
import { Space as tt, message as et } from "ant-design-vue";
|
|
8
|
+
function ht({ props: r, fieldModel: a }) {
|
|
9
|
+
const S = T(), b = T(!1), { widget: o } = r, { i18nt: g } = U(), { executeFunction: u, context: R } = X(), { loadataSource: z, setPagination: h, getPagination: p, pagintion: D } = M({
|
|
10
10
|
props: r
|
|
11
11
|
}), B = c(() => {
|
|
12
12
|
const t = [], e = (o == null ? void 0 : o.options) || {}, { rowSelection: n, showIndex: i, tableColumns: f = [] } = (o == null ? void 0 : o.options) ?? {};
|
|
@@ -73,13 +73,15 @@ function ft({ props: r, fieldModel: a }) {
|
|
|
73
73
|
}
|
|
74
74
|
});
|
|
75
75
|
return k(
|
|
76
|
-
|
|
76
|
+
tt,
|
|
77
77
|
{
|
|
78
|
+
align: "center",
|
|
79
|
+
size: 5,
|
|
78
80
|
onClick: (l) => {
|
|
79
81
|
l.stopPropagation();
|
|
80
82
|
}
|
|
81
83
|
},
|
|
82
|
-
|
|
84
|
+
f
|
|
83
85
|
);
|
|
84
86
|
}
|
|
85
87
|
}
|
|
@@ -135,7 +137,7 @@ function ft({ props: r, fieldModel: a }) {
|
|
|
135
137
|
if (r.field.options.dsEnabled) {
|
|
136
138
|
b.value = !0;
|
|
137
139
|
try {
|
|
138
|
-
const e = await
|
|
140
|
+
const e = await z(), n = e.list || [];
|
|
139
141
|
a.value = x(n || []), h(e);
|
|
140
142
|
} catch (e) {
|
|
141
143
|
console.error(e);
|
|
@@ -182,7 +184,7 @@ function ft({ props: r, fieldModel: a }) {
|
|
|
182
184
|
try {
|
|
183
185
|
await $({ content: g("确定删除选中的数据吗") });
|
|
184
186
|
const e = a.value.filter((n) => !(t != null && t.includes(n[v.value])));
|
|
185
|
-
C(e),
|
|
187
|
+
C(e), et.success(g("操作成功"));
|
|
186
188
|
} catch {
|
|
187
189
|
}
|
|
188
190
|
},
|
|
@@ -207,7 +209,7 @@ function ft({ props: r, fieldModel: a }) {
|
|
|
207
209
|
onCheckboxChange: V,
|
|
208
210
|
tableDefinExpoed: K,
|
|
209
211
|
onSortChange: I,
|
|
210
|
-
pagintion:
|
|
212
|
+
pagintion: D,
|
|
211
213
|
setPagination: h,
|
|
212
214
|
getPagination: p,
|
|
213
215
|
handleTableChange: N,
|
|
@@ -224,6 +226,6 @@ function ft({ props: r, fieldModel: a }) {
|
|
|
224
226
|
};
|
|
225
227
|
}
|
|
226
228
|
export {
|
|
227
|
-
|
|
229
|
+
ht as useTableWidget
|
|
228
230
|
};
|
|
229
231
|
//# sourceMappingURL=useTableWidget.js.map
|