@kp-ui/lowcode-pc 1.0.0-alpha.12 → 1.0.0-alpha.14
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/assets/styles/style.css +38 -32
- package/core/src/components/common/render/useFormContext.js +3 -2
- package/core/src/components/common/render/useFormContext.js.map +1 -1
- package/core/src/hooks/useDataHttp.js +3 -3
- package/core/src/hooks/useDataHttp.js.map +1 -1
- package/core/src/hooks/useField.js +94 -77
- package/core/src/hooks/useField.js.map +1 -1
- package/core/src/lang/zh-CN.js +1 -1
- package/core/src/lang/zh-CN.js.map +1 -1
- package/package.json +1 -1
- package/src/components/desginer/form-widget/container-widget/vf-box-widget.vue.js +1 -1
- package/src/components/desginer/form-widget/container-widget/vf-box-widget.vue2.js.map +1 -1
- package/src/components/desginer/widget-panel/advanced/data-table.js +1 -0
- package/src/components/desginer/widget-panel/advanced/data-table.js.map +1 -1
- package/src/components/field-widget/bpmn-editor-widget.vue.js +1 -1
- package/src/components/field-widget/bpmn-editor-widget.vue2.js +1 -1
- package/src/components/field-widget/bpmn-editor-widget.vue2.js.map +1 -1
- package/src/components/field-widget/button-list-widget.vue.js +1 -1
- package/src/components/field-widget/button-list-widget.vue2.js +1 -1
- package/src/components/field-widget/button-list-widget.vue2.js.map +1 -1
- package/src/components/field-widget/code-editor-widget.vue.js +1 -1
- package/src/components/field-widget/code-editor-widget.vue2.js +1 -1
- package/src/components/field-widget/code-editor-widget.vue2.js.map +1 -1
- package/src/components/field-widget/divider-widget.vue2.js +1 -1
- package/src/components/field-widget/divider-widget.vue2.js.map +1 -1
- package/src/components/field-widget/diy-compontent-widget.vue2.js +1 -1
- package/src/components/field-widget/diy-compontent-widget.vue2.js.map +1 -1
- package/src/components/field-widget/dropdown-widget.vue.js +1 -1
- package/src/components/field-widget/dropdown-widget.vue2.js +1 -1
- package/src/components/field-widget/dropdown-widget.vue2.js.map +1 -1
- package/src/components/field-widget/form-item-wrapper.vue.js +1 -1
- package/src/components/field-widget/form-item-wrapper.vue2.js.map +1 -1
- package/src/components/field-widget/number-widget.vue2.js +1 -1
- package/src/components/field-widget/number-widget.vue2.js.map +1 -1
- package/src/components/field-widget/rich-editor-widget.vue.js +1 -1
- package/src/components/field-widget/rich-editor-widget.vue2.js +1 -1
- package/src/components/field-widget/rich-editor-widget.vue2.js.map +1 -1
- package/src/components/field-widget/textarea-widget.vue.js +1 -1
- package/src/components/field-widget/textarea-widget.vue2.js +1 -1
- package/src/components/field-widget/textarea-widget.vue2.js.map +1 -1
- package/src/components/field-widget/treeSelect-widget.vue2.js +1 -1
- package/src/components/field-widget/treeSelect-widget.vue2.js.map +1 -1
- package/src/components/field-widget/vue-render-widget.vue2.js +1 -1
- package/src/components/field-widget/vue-render-widget.vue2.js.map +1 -1
- package/src/components/form-render/container-items/grid-sub-form-widget.vue.js +1 -1
- package/src/components/form-render/container-items/grid-sub-form-widget.vue2.js +3 -2
- package/src/components/form-render/container-items/grid-sub-form-widget.vue2.js.map +1 -1
- package/stats.html +1 -1
- package/src/components/field-widget/useField.js +0 -578
- package/src/components/field-widget/useField.js.map +0 -1
package/assets/styles/style.css
CHANGED
|
@@ -30,20 +30,20 @@
|
|
|
30
30
|
}
|
|
31
31
|
@tailwind components;
|
|
32
32
|
@tailwind utilities;
|
|
33
|
-
.sub-form-container[data-v-
|
|
33
|
+
.sub-form-container[data-v-417a33c5] {
|
|
34
34
|
margin-bottom: 16px;
|
|
35
35
|
text-align: left;
|
|
36
36
|
background: #fafafa;
|
|
37
37
|
border-radius: 8px;
|
|
38
38
|
padding: 10px;
|
|
39
39
|
}
|
|
40
|
-
.sub-form-container .header-row[data-v-
|
|
40
|
+
.sub-form-container .header-row[data-v-417a33c5] {
|
|
41
41
|
margin-top: 15px;
|
|
42
42
|
}
|
|
43
|
-
.sub-form-container .header-row[data-v-
|
|
43
|
+
.sub-form-container .header-row[data-v-417a33c5] .action-button {
|
|
44
44
|
height: 35px;
|
|
45
45
|
}
|
|
46
|
-
.sub-form-container .sub-form-row[data-v-
|
|
46
|
+
.sub-form-container .sub-form-row[data-v-417a33c5] {
|
|
47
47
|
display: flex;
|
|
48
48
|
align-items: center;
|
|
49
49
|
background: white;
|
|
@@ -51,22 +51,22 @@
|
|
|
51
51
|
border-radius: 6px;
|
|
52
52
|
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.03);
|
|
53
53
|
}
|
|
54
|
-
.sub-form-container .sub-form-row .row-number-span[data-v-
|
|
54
|
+
.sub-form-container .sub-form-row .row-number-span[data-v-417a33c5] {
|
|
55
55
|
margin-left: 16px;
|
|
56
56
|
}
|
|
57
|
-
.sub-form-action-column[data-v-
|
|
57
|
+
.sub-form-action-column[data-v-417a33c5] {
|
|
58
58
|
display: inline-block;
|
|
59
59
|
align-items: center;
|
|
60
60
|
text-align: center;
|
|
61
61
|
padding: 8px;
|
|
62
62
|
}
|
|
63
|
-
.grid-sub-form-data-row[data-v-
|
|
63
|
+
.grid-sub-form-data-row[data-v-417a33c5] {
|
|
64
64
|
display: inline-block;
|
|
65
65
|
flex: 1;
|
|
66
66
|
padding: 10px;
|
|
67
67
|
position: relative;
|
|
68
68
|
}
|
|
69
|
-
.grid-sub-form-data-row[data-v-
|
|
69
|
+
.grid-sub-form-data-row[data-v-417a33c5]:before, .grid-sub-form-data-row[data-v-417a33c5]:after {
|
|
70
70
|
content: "";
|
|
71
71
|
display: inline-block;
|
|
72
72
|
width: 1px;
|
|
@@ -76,16 +76,16 @@
|
|
|
76
76
|
top: 50%;
|
|
77
77
|
transform: translateY(-50%);
|
|
78
78
|
}
|
|
79
|
-
.grid-sub-form-data-row[data-v-
|
|
79
|
+
.grid-sub-form-data-row[data-v-417a33c5]:before {
|
|
80
80
|
left: 0;
|
|
81
81
|
}
|
|
82
|
-
.grid-sub-form-data-row[data-v-
|
|
82
|
+
.grid-sub-form-data-row[data-v-417a33c5]:after {
|
|
83
83
|
right: 0;
|
|
84
84
|
}
|
|
85
|
-
.grid-sub-form-data-row[data-v-
|
|
85
|
+
.grid-sub-form-data-row[data-v-417a33c5] .ant-form-item {
|
|
86
86
|
margin-bottom: 0;
|
|
87
87
|
}
|
|
88
|
-
div.row-no-column[data-v-
|
|
88
|
+
div.row-no-column[data-v-417a33c5] {
|
|
89
89
|
display: flex;
|
|
90
90
|
align-items: center;
|
|
91
91
|
width: 50px;
|
|
@@ -96,7 +96,7 @@ div.row-no-column[data-v-80b2c408] {
|
|
|
96
96
|
font-size: 14px;
|
|
97
97
|
color: #666;
|
|
98
98
|
}
|
|
99
|
-
.action-button-column[data-v-
|
|
99
|
+
.action-button-column[data-v-417a33c5] {
|
|
100
100
|
width: 140px;
|
|
101
101
|
}.grid-cell[data-v-13ad810a] {
|
|
102
102
|
padding: 3px;
|
|
@@ -410,41 +410,43 @@ div.row-no-column[data-v-80b2c408] {
|
|
|
410
410
|
color: #333;
|
|
411
411
|
}
|
|
412
412
|
|
|
413
|
-
.field-wrapper[data-v-
|
|
413
|
+
.field-wrapper[data-v-fe290edb] {
|
|
414
414
|
position: relative;
|
|
415
415
|
}
|
|
416
|
-
.ant-form-item[data-v-
|
|
416
|
+
.ant-form-item[data-v-fe290edb] {
|
|
417
417
|
position: relative;
|
|
418
|
-
/* 隐藏Chrome浏览器中el-input数字输入框右侧的上下调整小箭头 */
|
|
419
418
|
}
|
|
420
|
-
.ant-form-item[data-v-
|
|
419
|
+
.ant-form-item[data-v-fe290edb] .ant-form-item-label {
|
|
421
420
|
white-space: nowrap;
|
|
422
421
|
text-overflow: ellipsis;
|
|
423
422
|
}
|
|
424
|
-
.ant-form-item span.custom-label[data-v-
|
|
423
|
+
.ant-form-item span.custom-label[data-v-fe290edb] {
|
|
425
424
|
display: flex;
|
|
426
425
|
}
|
|
427
|
-
.ant-form-item span.custom-label i[data-v-
|
|
426
|
+
.ant-form-item span.custom-label i[data-v-fe290edb] {
|
|
428
427
|
margin: 0 3px;
|
|
429
428
|
}
|
|
430
|
-
.ant-form-item[data-v-
|
|
431
|
-
|
|
429
|
+
.ant-form-item[data-v-fe290edb] {
|
|
430
|
+
/* 隐藏Chrome浏览器中el-input数字输入框右侧的上下调整小箭头 */
|
|
431
|
+
}
|
|
432
|
+
.ant-form-item[data-v-fe290edb] .hide-spin-button input::-webkit-outer-spin-button,
|
|
433
|
+
.ant-form-item[data-v-fe290edb] .hide-spin-button input::-webkit-inner-spin-button {
|
|
432
434
|
-webkit-appearance: none !important;
|
|
433
|
-
}[data-v-
|
|
435
|
+
}[data-v-3974eef4] .bjs-powered-by {
|
|
434
436
|
display: none;
|
|
435
437
|
}
|
|
436
|
-
[data-v-
|
|
438
|
+
[data-v-3974eef4] .bjs-breadcrumbs {
|
|
437
439
|
display: none;
|
|
438
|
-
}.flex[data-v-
|
|
440
|
+
}.flex[data-v-198d712e] {
|
|
439
441
|
flex: 1;
|
|
440
442
|
display: flex;
|
|
441
443
|
justify-content: var(--flex);
|
|
442
444
|
}.hide-text-span[data-v-f3a8f507] span {
|
|
443
445
|
display: none;
|
|
444
|
-
}.designer[data-v-
|
|
446
|
+
}.designer[data-v-7291d54f] {
|
|
445
447
|
position: relative;
|
|
446
448
|
}
|
|
447
|
-
.designer[data-v-
|
|
449
|
+
.designer[data-v-7291d54f]::before {
|
|
448
450
|
position: absolute;
|
|
449
451
|
z-index: 99;
|
|
450
452
|
content: "";
|
|
@@ -466,7 +468,7 @@ div.row-no-column[data-v-80b2c408] {
|
|
|
466
468
|
}
|
|
467
469
|
.auto-full-width[data-v-4aad080a] .ant-picker {
|
|
468
470
|
width: 100% !important;
|
|
469
|
-
}.hide-text-span[data-v-
|
|
471
|
+
}.hide-text-span[data-v-b35a7763] span {
|
|
470
472
|
display: none;
|
|
471
473
|
}.fileUploadTip[data-v-98bac580] {
|
|
472
474
|
font-size: 12px;
|
|
@@ -474,12 +476,12 @@ div.row-no-column[data-v-80b2c408] {
|
|
|
474
476
|
}
|
|
475
477
|
/* form-item-wrapper已引入,还需要重复引入吗? */
|
|
476
478
|
/* form-item-wrapper已引入,还需要重复引入吗? */
|
|
477
|
-
/* form-item-wrapper已引入,还需要重复引入吗? */.rich-editor-widget[data-v-
|
|
479
|
+
/* form-item-wrapper已引入,还需要重复引入吗? */.rich-editor-widget[data-v-4fccf1cc] .ql-toolbar.ql-snow {
|
|
478
480
|
border-color: #d9d9d9;
|
|
479
481
|
border-top-left-radius: 8px;
|
|
480
482
|
border-top-right-radius: 8px;
|
|
481
483
|
}
|
|
482
|
-
.rich-editor-widget[data-v-
|
|
484
|
+
.rich-editor-widget[data-v-4fccf1cc] .ql-container.ql-snow {
|
|
483
485
|
border-bottom-left-radius: 8px;
|
|
484
486
|
border-bottom-right-radius: 8px;
|
|
485
487
|
border-color: #d9d9d9;
|
|
@@ -511,7 +513,7 @@ div.row-no-column[data-v-80b2c408] {
|
|
|
511
513
|
/* form-item-wrapper已引入,还需要重复引入吗? */
|
|
512
514
|
.readonly-mode-switch[data-v-abb9e521] {
|
|
513
515
|
display: none;
|
|
514
|
-
}.readonly-mode-field[data-v-
|
|
516
|
+
}.readonly-mode-field[data-v-ee000014] {
|
|
515
517
|
display: inline-block;
|
|
516
518
|
white-space: pre-wrap;
|
|
517
519
|
line-height: 1.5;
|
|
@@ -678,12 +680,16 @@ div.row-no-column[data-v-80b2c408] {
|
|
|
678
680
|
display: flex;
|
|
679
681
|
align-items: center;
|
|
680
682
|
height: 35px;
|
|
681
|
-
}.box-container[data-v-
|
|
683
|
+
}.box-container[data-v-e857478a] {
|
|
682
684
|
width: 100%;
|
|
683
685
|
position: relative;
|
|
684
686
|
padding-bottom: 20px;
|
|
685
687
|
display: flex;
|
|
688
|
+
min-width: 0;
|
|
689
|
+
overflow: hidden;
|
|
686
690
|
}
|
|
687
|
-
.box-container[data-v-
|
|
691
|
+
.box-container[data-v-e857478a] .designer-widget-list {
|
|
688
692
|
flex: 1;
|
|
693
|
+
overflow: hidden;
|
|
694
|
+
min-width: 0;
|
|
689
695
|
}
|
|
@@ -130,8 +130,9 @@ const useFormContext = ({ renderForm, props }) => {
|
|
|
130
130
|
const fieldChangeEventHandler = () => {
|
|
131
131
|
emitter.off$("fieldChange");
|
|
132
132
|
emitter.on$("fieldChange", ({ fieldName, value }) => {
|
|
133
|
-
|
|
134
|
-
|
|
133
|
+
if (fieldName) {
|
|
134
|
+
set(formDataModel.value, fieldName, value);
|
|
135
|
+
}
|
|
135
136
|
});
|
|
136
137
|
};
|
|
137
138
|
const onFormDetail = async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useFormContext.js","sources":["../../../../../../../core/src/components/common/render/useFormContext.ts"],"sourcesContent":["import { computed, nextTick, onMounted, provide, ref, useTemplateRef, watchEffect } from 'vue';\nimport {\n useFormValidation,\n FormConfig,\n Widget,\n cloneFormConfigWithoutEventHandler,\n generateId,\n getContainerWidgetByName,\n insertCustomCssToHead,\n insertGlobalFunctionsToHtml\n} from '@kp-ui/lowcode-core';\nimport { cloneDeep, set } from 'lodash-es';\nimport { message } from 'ant-design-vue';\nimport { getUuidKey } from '@kp-ui/tool';\nimport { routerReloadStatus, useComRef, useExecFunction, useRef } from 'tmgc2-share';\nimport { useEmitter } from '@kp-ui/lowcode-core/src/utils/useEmitter';\nimport { useI18n, useAppRef } from '@kp-ui/lowcode-core';\n\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 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 dynamicDialogRef = useTemplateRef<any>('dynamicDialogRef');\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 const dialogOrDrawerRef = ref();\n\n const { executeFunction, context, execHttpFunction } = useExecFunction();\n const { getFormRef, getWidgetRef, registerToRefList } = useAppRef(widgetRefList, formWidgetId);\n\n // 计算属性\n const formConfig = computed<FormConfig>(() => formJsonObj.value?.formConfig || {});\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 formJsonObj.value = json || { widgetList: [], formConfig: {} };\n\n // 重新构建表单数据模型\n formDataModel.value = {};\n insertCustomCode();\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 parentFormRef: context.value,\n extraData: extraData,\n wrapperId: wrapperDivId,\n vfCtx: { ...formData }\n };\n\n dynamicDialogRef.value?.show();\n };\n /**\n * 获取父级VFormRender组件实例\n * @returns {object}\n */\n const getParentFormRef = () => {\n return props.parentForm;\n };\n\n const getChildFormRef = () => {\n return dynamicDialogRef.value?.getFormRef();\n };\n\n /**\n * 字段值变化事件处理器\n */\n const fieldChangeEventHandler = () => {\n emitter.off$('fieldChange');\n emitter.on$('fieldChange', ({ fieldName, value }) => {\n // 过滤掉错误值\n value = value ?? '';\n set(formDataModel.value, fieldName, value);\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 console.log({ cssCode });\n\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 });\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 dynamicDialogRef,\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":["goBack"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useFormContext.js","sources":["../../../../../../../core/src/components/common/render/useFormContext.ts"],"sourcesContent":["import { computed, nextTick, onMounted, provide, ref, useTemplateRef, watchEffect } from 'vue';\nimport {\n useFormValidation,\n FormConfig,\n Widget,\n cloneFormConfigWithoutEventHandler,\n generateId,\n getContainerWidgetByName,\n insertCustomCssToHead,\n insertGlobalFunctionsToHtml\n} from '@kp-ui/lowcode-core';\nimport { cloneDeep, set } from 'lodash-es';\nimport { message } from 'ant-design-vue';\nimport { getUuidKey } from '@kp-ui/tool';\nimport { routerReloadStatus, useComRef, useExecFunction, useRef } from 'tmgc2-share';\nimport { useEmitter } from '@kp-ui/lowcode-core/src/utils/useEmitter';\nimport { useI18n, useAppRef } from '@kp-ui/lowcode-core';\n\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 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 dynamicDialogRef = useTemplateRef<any>('dynamicDialogRef');\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 const dialogOrDrawerRef = ref();\n\n const { executeFunction, context, execHttpFunction } = useExecFunction();\n const { getFormRef, getWidgetRef, registerToRefList } = useAppRef(widgetRefList, formWidgetId);\n\n // 计算属性\n const formConfig = computed<FormConfig>(() => formJsonObj.value?.formConfig || {});\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 formJsonObj.value = json || { widgetList: [], formConfig: {} };\n\n // 重新构建表单数据模型\n formDataModel.value = {};\n insertCustomCode();\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 parentFormRef: context.value,\n extraData: extraData,\n wrapperId: wrapperDivId,\n vfCtx: { ...formData }\n };\n\n dynamicDialogRef.value?.show();\n };\n /**\n * 获取父级VFormRender组件实例\n * @returns {object}\n */\n const getParentFormRef = () => {\n return props.parentForm;\n };\n\n const getChildFormRef = () => {\n return dynamicDialogRef.value?.getFormRef();\n };\n\n /**\n * 字段值变化事件处理器\n */\n const fieldChangeEventHandler = () => {\n emitter.off$('fieldChange');\n emitter.on$('fieldChange', ({ fieldName, value }) => {\n if (fieldName) {\n // 过滤掉错误值\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 console.log({ cssCode });\n\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 });\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 dynamicDialogRef,\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":["goBack"],"mappings":"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"}
|
|
@@ -38,15 +38,15 @@ function useDataHttp({ props }) {
|
|
|
38
38
|
return pagintion.value;
|
|
39
39
|
};
|
|
40
40
|
const setPagination = (pagination) => {
|
|
41
|
-
if (pagination.current !== void 0) {
|
|
41
|
+
if ((pagination == null ? void 0 : pagination.current) !== void 0) {
|
|
42
42
|
pagintion.value.current = pagination.current;
|
|
43
43
|
props.field.options.pagination.current = pagination.current;
|
|
44
44
|
}
|
|
45
|
-
if (pagination.page !== void 0) {
|
|
45
|
+
if ((pagination == null ? void 0 : pagination.page) !== void 0) {
|
|
46
46
|
pagintion.value.current = pagination.page;
|
|
47
47
|
props.field.options.pagination.current = pagination.page;
|
|
48
48
|
}
|
|
49
|
-
if (pagination.total !== void 0) {
|
|
49
|
+
if ((pagination == null ? void 0 : pagination.total) !== void 0) {
|
|
50
50
|
pagintion.value.total = pagination.total;
|
|
51
51
|
props.field.options.pagination.total = pagination.total;
|
|
52
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDataHttp.js","sources":["../../../../../core/src/hooks/useDataHttp.ts"],"sourcesContent":["import { ref } from 'vue';\nimport { PaginationProps } from 'ant-design-vue';\nimport { useI18n, WidgetProps } from '@kp-ui/lowcode-core';\nimport { useExecFunction } from 'tmgc2-share';\n\nexport function useDataHttp({ props }: { props: WidgetProps<any> }) {\n const { http, dataHandlerCode, dataReqHandlerCode } = props.field.options;\n\n const { i18nt } = useI18n();\n const isLoading = ref(false);\n\n const { execHttpFunction } = useExecFunction();\n const pagintion = ref<PaginationProps>({\n ...(props.widget.options.pagination as any),\n onShowSizeChange: (current, pageSize) => {\n props.field.options.pagination.pageSize = pageSize;\n props.field.options.pagination.current = 1;\n pagintion.value.current = 1;\n },\n showTotal: total => i18nt('designer.showTotal', { total })\n });\n\n const loadataSource = async (): Promise<any> => {\n try {\n isLoading.value = true;\n const data = await execHttpFunction(\n {\n http,\n dataHandlerCode,\n dataReqHandlerCode\n },\n {}\n );\n return data;\n } catch (error) {\n console.error(error);\n return {};\n } finally {\n isLoading.value = false;\n }\n };\n\n const getPagination = () => {\n return pagintion.value;\n };\n\n /**\n * 设置表格分页\n * @param pagination\n */\n const setPagination = pagination => {\n if (pagination
|
|
1
|
+
{"version":3,"file":"useDataHttp.js","sources":["../../../../../core/src/hooks/useDataHttp.ts"],"sourcesContent":["import { ref } from 'vue';\nimport { PaginationProps } from 'ant-design-vue';\nimport { useI18n, WidgetProps } from '@kp-ui/lowcode-core';\nimport { useExecFunction } from 'tmgc2-share';\n\nexport function useDataHttp({ props }: { props: WidgetProps<any> }) {\n const { http, dataHandlerCode, dataReqHandlerCode } = props.field.options;\n\n const { i18nt } = useI18n();\n const isLoading = ref(false);\n\n const { execHttpFunction } = useExecFunction();\n const pagintion = ref<PaginationProps>({\n ...(props.widget.options.pagination as any),\n onShowSizeChange: (current, pageSize) => {\n props.field.options.pagination.pageSize = pageSize;\n props.field.options.pagination.current = 1;\n pagintion.value.current = 1;\n },\n showTotal: total => i18nt('designer.showTotal', { total })\n });\n\n const loadataSource = async (): Promise<any> => {\n try {\n isLoading.value = true;\n const data = await execHttpFunction(\n {\n http,\n dataHandlerCode,\n dataReqHandlerCode\n },\n {}\n );\n return data;\n } catch (error) {\n console.error(error);\n return {};\n } finally {\n isLoading.value = false;\n }\n };\n\n const getPagination = () => {\n return pagintion.value;\n };\n\n /**\n * 设置表格分页\n * @param pagination\n */\n const setPagination = pagination => {\n if (pagination?.current !== undefined) {\n pagintion.value.current = pagination.current;\n props.field.options.pagination.current = pagination.current;\n }\n\n if (pagination?.page !== undefined) {\n pagintion.value.current = pagination.page;\n props.field.options.pagination.current = pagination.page;\n }\n\n if (pagination?.total !== undefined) {\n pagintion.value.total = pagination.total;\n props.field.options.pagination.total = pagination.total;\n }\n };\n\n return {\n pagintion,\n setPagination,\n getPagination,\n loadataSource,\n isLoading\n };\n}\n"],"names":[],"mappings":";;;AAKO,SAAS,YAAY,EAAE,SAAsC;AAChE,QAAM,EAAE,MAAM,iBAAiB,mBAAA,IAAuB,MAAM,MAAM;AAElE,QAAM,EAAE,MAAA,IAAU,QAAA;AAClB,QAAM,YAAY,IAAI,KAAK;AAE3B,QAAM,EAAE,iBAAA,IAAqB,gBAAA;AAC7B,QAAM,YAAY,IAAqB;AAAA,IACnC,GAAI,MAAM,OAAO,QAAQ;AAAA,IACzB,kBAAkB,CAAC,SAAS,aAAa;AACrC,YAAM,MAAM,QAAQ,WAAW,WAAW;AAC1C,YAAM,MAAM,QAAQ,WAAW,UAAU;AACzC,gBAAU,MAAM,UAAU;AAAA,IAC9B;AAAA,IACA,WAAW,CAAA,UAAS,MAAM,sBAAsB,EAAE,OAAO;AAAA,EAAA,CAC5D;AAED,QAAM,gBAAgB,YAA0B;AAC5C,QAAI;AACA,gBAAU,QAAQ;AAClB,YAAM,OAAO,MAAM;AAAA,QACf;AAAA,UACI;AAAA,UACA;AAAA,UACA;AAAA,QAAA;AAAA,QAEJ,CAAA;AAAA,MAAC;AAEL,aAAO;AAAA,IACX,SAAS,OAAO;AACZ,cAAQ,MAAM,KAAK;AACnB,aAAO,CAAA;AAAA,IACX,UAAA;AACI,gBAAU,QAAQ;AAAA,IACtB;AAAA,EACJ;AAEA,QAAM,gBAAgB,MAAM;AACxB,WAAO,UAAU;AAAA,EACrB;AAMA,QAAM,gBAAgB,CAAA,eAAc;AAChC,SAAI,yCAAY,aAAY,QAAW;AACnC,gBAAU,MAAM,UAAU,WAAW;AACrC,YAAM,MAAM,QAAQ,WAAW,UAAU,WAAW;AAAA,IACxD;AAEA,SAAI,yCAAY,UAAS,QAAW;AAChC,gBAAU,MAAM,UAAU,WAAW;AACrC,YAAM,MAAM,QAAQ,WAAW,UAAU,WAAW;AAAA,IACxD;AAEA,SAAI,yCAAY,WAAU,QAAW;AACjC,gBAAU,MAAM,QAAQ,WAAW;AACnC,YAAM,MAAM,QAAQ,WAAW,QAAQ,WAAW;AAAA,IACtD;AAAA,EACJ;AAEA,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAER;"}
|