@kp-ui/lowcode-pc 1.0.0-alpha.12 → 1.0.0-alpha.13

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 (47) hide show
  1. package/assets/styles/style.css +22 -18
  2. package/core/src/components/common/render/useFormContext.js +3 -2
  3. package/core/src/components/common/render/useFormContext.js.map +1 -1
  4. package/core/src/hooks/useDataHttp.js +3 -3
  5. package/core/src/hooks/useDataHttp.js.map +1 -1
  6. package/core/src/hooks/useField.js +94 -77
  7. package/core/src/hooks/useField.js.map +1 -1
  8. package/core/src/lang/zh-CN.js +1 -1
  9. package/core/src/lang/zh-CN.js.map +1 -1
  10. package/package.json +1 -1
  11. package/src/components/desginer/form-widget/container-widget/vf-box-widget.vue.js +1 -1
  12. package/src/components/desginer/form-widget/container-widget/vf-box-widget.vue2.js.map +1 -1
  13. package/src/components/desginer/widget-panel/advanced/data-table.js +1 -0
  14. package/src/components/desginer/widget-panel/advanced/data-table.js.map +1 -1
  15. package/src/components/field-widget/bpmn-editor-widget.vue.js +1 -1
  16. package/src/components/field-widget/bpmn-editor-widget.vue2.js +1 -1
  17. package/src/components/field-widget/bpmn-editor-widget.vue2.js.map +1 -1
  18. package/src/components/field-widget/button-list-widget.vue.js +1 -1
  19. package/src/components/field-widget/button-list-widget.vue2.js +1 -1
  20. package/src/components/field-widget/button-list-widget.vue2.js.map +1 -1
  21. package/src/components/field-widget/code-editor-widget.vue.js +1 -1
  22. package/src/components/field-widget/code-editor-widget.vue2.js +1 -1
  23. package/src/components/field-widget/code-editor-widget.vue2.js.map +1 -1
  24. package/src/components/field-widget/divider-widget.vue2.js +1 -1
  25. package/src/components/field-widget/divider-widget.vue2.js.map +1 -1
  26. package/src/components/field-widget/diy-compontent-widget.vue2.js +1 -1
  27. package/src/components/field-widget/diy-compontent-widget.vue2.js.map +1 -1
  28. package/src/components/field-widget/dropdown-widget.vue.js +1 -1
  29. package/src/components/field-widget/dropdown-widget.vue2.js +1 -1
  30. package/src/components/field-widget/dropdown-widget.vue2.js.map +1 -1
  31. package/src/components/field-widget/form-item-wrapper.vue.js +1 -1
  32. package/src/components/field-widget/form-item-wrapper.vue2.js.map +1 -1
  33. package/src/components/field-widget/number-widget.vue2.js +1 -1
  34. package/src/components/field-widget/number-widget.vue2.js.map +1 -1
  35. package/src/components/field-widget/rich-editor-widget.vue.js +1 -1
  36. package/src/components/field-widget/rich-editor-widget.vue2.js +1 -1
  37. package/src/components/field-widget/rich-editor-widget.vue2.js.map +1 -1
  38. package/src/components/field-widget/textarea-widget.vue.js +1 -1
  39. package/src/components/field-widget/textarea-widget.vue2.js +1 -1
  40. package/src/components/field-widget/textarea-widget.vue2.js.map +1 -1
  41. package/src/components/field-widget/treeSelect-widget.vue2.js +1 -1
  42. package/src/components/field-widget/treeSelect-widget.vue2.js.map +1 -1
  43. package/src/components/field-widget/vue-render-widget.vue2.js +1 -1
  44. package/src/components/field-widget/vue-render-widget.vue2.js.map +1 -1
  45. package/stats.html +1 -1
  46. package/src/components/field-widget/useField.js +0 -578
  47. package/src/components/field-widget/useField.js.map +0 -1
@@ -410,41 +410,41 @@ div.row-no-column[data-v-80b2c408] {
410
410
  color: #333;
411
411
  }
412
412
 
413
- .field-wrapper[data-v-0930180b] {
413
+ .field-wrapper[data-v-fe290edb] {
414
414
  position: relative;
415
415
  }
416
- .ant-form-item[data-v-0930180b] {
416
+ .ant-form-item[data-v-fe290edb] {
417
417
  position: relative;
418
418
  /* 隐藏Chrome浏览器中el-input数字输入框右侧的上下调整小箭头 */
419
419
  }
420
- .ant-form-item[data-v-0930180b] .ant-form-item-label {
420
+ .ant-form-item[data-v-fe290edb] .ant-form-item-label {
421
421
  white-space: nowrap;
422
422
  text-overflow: ellipsis;
423
423
  }
424
- .ant-form-item span.custom-label[data-v-0930180b] {
424
+ .ant-form-item span.custom-label[data-v-fe290edb] {
425
425
  display: flex;
426
426
  }
427
- .ant-form-item span.custom-label i[data-v-0930180b] {
427
+ .ant-form-item span.custom-label i[data-v-fe290edb] {
428
428
  margin: 0 3px;
429
429
  }
430
- .ant-form-item[data-v-0930180b] .hide-spin-button input::-webkit-outer-spin-button,
431
- .ant-form-item[data-v-0930180b] .hide-spin-button input::-webkit-inner-spin-button {
430
+ .ant-form-item[data-v-fe290edb] .hide-spin-button input::-webkit-outer-spin-button,
431
+ .ant-form-item[data-v-fe290edb] .hide-spin-button input::-webkit-inner-spin-button {
432
432
  -webkit-appearance: none !important;
433
- }[data-v-fb5e5201] .bjs-powered-by {
433
+ }[data-v-3974eef4] .bjs-powered-by {
434
434
  display: none;
435
435
  }
436
- [data-v-fb5e5201] .bjs-breadcrumbs {
436
+ [data-v-3974eef4] .bjs-breadcrumbs {
437
437
  display: none;
438
- }.flex[data-v-b51e000d] {
438
+ }.flex[data-v-198d712e] {
439
439
  flex: 1;
440
440
  display: flex;
441
441
  justify-content: var(--flex);
442
442
  }.hide-text-span[data-v-f3a8f507] span {
443
443
  display: none;
444
- }.designer[data-v-6c36fd38] {
444
+ }.designer[data-v-7291d54f] {
445
445
  position: relative;
446
446
  }
447
- .designer[data-v-6c36fd38]::before {
447
+ .designer[data-v-7291d54f]::before {
448
448
  position: absolute;
449
449
  z-index: 99;
450
450
  content: "";
@@ -466,7 +466,7 @@ div.row-no-column[data-v-80b2c408] {
466
466
  }
467
467
  .auto-full-width[data-v-4aad080a] .ant-picker {
468
468
  width: 100% !important;
469
- }.hide-text-span[data-v-41213ad4] span {
469
+ }.hide-text-span[data-v-b35a7763] span {
470
470
  display: none;
471
471
  }.fileUploadTip[data-v-98bac580] {
472
472
  font-size: 12px;
@@ -474,12 +474,12 @@ div.row-no-column[data-v-80b2c408] {
474
474
  }
475
475
  /* form-item-wrapper已引入,还需要重复引入吗? */
476
476
  /* form-item-wrapper已引入,还需要重复引入吗? */
477
- /* form-item-wrapper已引入,还需要重复引入吗? */.rich-editor-widget[data-v-c4e08a91] .ql-toolbar.ql-snow {
477
+ /* form-item-wrapper已引入,还需要重复引入吗? */.rich-editor-widget[data-v-4fccf1cc] .ql-toolbar.ql-snow {
478
478
  border-color: #d9d9d9;
479
479
  border-top-left-radius: 8px;
480
480
  border-top-right-radius: 8px;
481
481
  }
482
- .rich-editor-widget[data-v-c4e08a91] .ql-container.ql-snow {
482
+ .rich-editor-widget[data-v-4fccf1cc] .ql-container.ql-snow {
483
483
  border-bottom-left-radius: 8px;
484
484
  border-bottom-right-radius: 8px;
485
485
  border-color: #d9d9d9;
@@ -511,7 +511,7 @@ div.row-no-column[data-v-80b2c408] {
511
511
  /* form-item-wrapper已引入,还需要重复引入吗? */
512
512
  .readonly-mode-switch[data-v-abb9e521] {
513
513
  display: none;
514
- }.readonly-mode-field[data-v-04869c36] {
514
+ }.readonly-mode-field[data-v-ee000014] {
515
515
  display: inline-block;
516
516
  white-space: pre-wrap;
517
517
  line-height: 1.5;
@@ -678,12 +678,16 @@ div.row-no-column[data-v-80b2c408] {
678
678
  display: flex;
679
679
  align-items: center;
680
680
  height: 35px;
681
- }.box-container[data-v-c1520bd7] {
681
+ }.box-container[data-v-e857478a] {
682
682
  width: 100%;
683
683
  position: relative;
684
684
  padding-bottom: 20px;
685
685
  display: flex;
686
+ min-width: 0;
687
+ overflow: hidden;
686
688
  }
687
- .box-container[data-v-c1520bd7] .designer-widget-list {
689
+ .box-container[data-v-e857478a] .designer-widget-list {
688
690
  flex: 1;
691
+ overflow: hidden;
692
+ min-width: 0;
689
693
  }
@@ -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
- value = value ?? "";
134
- set(formDataModel.value, fieldName, value);
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.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,QAAI,WAAW,YAAY,QAAW;AAClC,gBAAU,MAAM,UAAU,WAAW;AACrC,YAAM,MAAM,QAAQ,WAAW,UAAU,WAAW;AAAA,IACxD;AAEA,QAAI,WAAW,SAAS,QAAW;AAC/B,gBAAU,MAAM,UAAU,WAAW;AACrC,YAAM,MAAM,QAAQ,WAAW,UAAU,WAAW;AAAA,IACxD;AAEA,QAAI,WAAW,UAAU,QAAW;AAChC,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;"}
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;"}