@kp-ui/lowcode 2.15.0-beta.8 → 2.16.0-alpha.11

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 (89) hide show
  1. package/install.js +17 -15
  2. package/install.js.map +1 -1
  3. package/package.json +3 -2
  4. package/src/components/FormRender/FormContainer.vue.js +55 -0
  5. package/src/components/FormRender/FormContainer.vue.js.map +1 -0
  6. package/src/components/FormRender/FormContainer.vue2.js +5 -0
  7. package/src/components/FormRender/FormContainer.vue2.js.map +1 -0
  8. package/src/components/FormRender/index.vue.js +2 -2
  9. package/src/components/FormRender/index.vue2.js +28 -30
  10. package/src/components/FormRender/index.vue2.js.map +1 -1
  11. package/src/components/FormRender/useFormContext.js +119 -112
  12. package/src/components/FormRender/useFormContext.js.map +1 -1
  13. package/src/components/form-designer/form-widget/container-widget/useTableWidget.js +143 -138
  14. package/src/components/form-designer/form-widget/container-widget/useTableWidget.js.map +1 -1
  15. package/src/components/form-designer/form-widget/container-widget/vf-dialog-widget.vue.js +2 -2
  16. package/src/components/form-designer/form-widget/container-widget/vf-dialog-widget.vue2.js +22 -16
  17. package/src/components/form-designer/form-widget/container-widget/vf-dialog-widget.vue2.js.map +1 -1
  18. package/src/components/form-designer/form-widget/field-widget/form-item-wrapper.vue.js +1 -1
  19. package/src/components/form-designer/form-widget/field-widget/form-item-wrapper.vue2.js +65 -53
  20. package/src/components/form-designer/form-widget/field-widget/form-item-wrapper.vue2.js.map +1 -1
  21. package/src/components/form-designer/form-widget/field-widget/rich-editor-widget.vue2.js.map +1 -1
  22. package/src/components/form-designer/form-widget/field-widget/useField.js +33 -33
  23. package/src/components/form-designer/form-widget/field-widget/useField.js.map +1 -1
  24. package/src/components/form-designer/setting-panel/form-setting.vue.js +2 -2
  25. package/src/components/form-designer/setting-panel/form-setting.vue2.js +100 -126
  26. package/src/components/form-designer/setting-panel/form-setting.vue2.js.map +1 -1
  27. package/src/components/form-designer/setting-panel/property-editor/button-list-editor.vue2.js +45 -39
  28. package/src/components/form-designer/setting-panel/property-editor/button-list-editor.vue2.js.map +1 -1
  29. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-showButtonsColumn-editor.vue.js +2 -2
  30. package/src/components/form-designer/setting-panel/property-editor/container-data-table/data-table-showButtonsColumn-editor.vue2.js.map +1 -1
  31. package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/cancelButtonLabel-editor.vue2.js.map +1 -1
  32. package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/left-editor.vue.js +5 -0
  33. package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/left-editor.vue.js.map +1 -0
  34. package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/left-editor.vue2.js +38 -0
  35. package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/left-editor.vue2.js.map +1 -0
  36. package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/top-editor.vue.js +5 -0
  37. package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/top-editor.vue.js.map +1 -0
  38. package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/top-editor.vue2.js +38 -0
  39. package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/top-editor.vue2.js.map +1 -0
  40. package/src/components/form-designer/setting-panel/property-editor/container-vf-dialog/width-editor.vue2.js.map +1 -1
  41. package/src/components/form-designer/setting-panel/property-editor/event-handler/onTableChange-editor.vue2.js +4 -4
  42. package/src/components/form-designer/setting-panel/property-editor/event-handler/onTableChange-editor.vue2.js.map +1 -1
  43. package/src/components/form-designer/setting-panel/property-editor/index.js +158 -156
  44. package/src/components/form-designer/setting-panel/property-editor/index.js.map +1 -1
  45. package/src/components/form-designer/setting-panel/property-editor/labelIconClass-editor.vue2.js +29 -18
  46. package/src/components/form-designer/setting-panel/property-editor/labelIconClass-editor.vue2.js.map +1 -1
  47. package/src/components/form-designer/setting-panel/propertyRegister.js +2 -0
  48. package/src/components/form-designer/setting-panel/propertyRegister.js.map +1 -1
  49. package/src/components/form-designer/widget-panel/basicFields/input.js +4 -2
  50. package/src/components/form-designer/widget-panel/basicFields/input.js.map +1 -1
  51. package/src/components/form-designer/widget-panel/containers/vf-dialog.js +34 -10
  52. package/src/components/form-designer/widget-panel/containers/vf-dialog.js.map +1 -1
  53. package/src/components/form-render/container-items/data-table-widget.vue.js +1 -1
  54. package/src/components/form-render/container-items/data-table-widget.vue2.js +60 -61
  55. package/src/components/form-render/container-items/data-table-widget.vue2.js.map +1 -1
  56. package/src/components/form-render/dynamic-dialog.vue.js +79 -82
  57. package/src/components/form-render/dynamic-dialog.vue.js.map +1 -1
  58. package/src/components/public/ActionButtonListDialog.vue.js +2 -2
  59. package/src/components/public/ActionButtonListDialog.vue2.js +117 -96
  60. package/src/components/public/ActionButtonListDialog.vue2.js.map +1 -1
  61. package/src/components/public/ActionButtonListRender.vue.js +17 -15
  62. package/src/components/public/ActionButtonListRender.vue.js.map +1 -1
  63. package/src/components/public/ActionButtonListRender.vue2.js +48 -38
  64. package/src/components/public/ActionButtonListRender.vue2.js.map +1 -1
  65. package/src/components/public/ConfigView/CustomPageRender.vue.js +58 -0
  66. package/src/components/public/ConfigView/CustomPageRender.vue.js.map +1 -0
  67. package/src/components/public/ConfigView/CustomPageRender.vue2.js +5 -0
  68. package/src/components/public/ConfigView/CustomPageRender.vue2.js.map +1 -0
  69. package/src/components/public/CustomerModal/CustomerModal.vue2.js +63 -56
  70. package/src/components/public/CustomerModal/CustomerModal.vue2.js.map +1 -1
  71. package/src/constants/EditorTypeEnum.js +1 -1
  72. package/src/constants/EditorTypeEnum.js.map +1 -1
  73. package/src/hooks/useDataHttp.js +8 -7
  74. package/src/hooks/useDataHttp.js.map +1 -1
  75. package/src/hooks/useLowcode.js.map +1 -1
  76. package/src/lang/en-US.js +2 -0
  77. package/src/lang/en-US.js.map +1 -1
  78. package/src/lang/zh-CN.js +2 -0
  79. package/src/lang/zh-CN.js.map +1 -1
  80. package/src/utils/util.js +25 -34
  81. package/src/utils/util.js.map +1 -1
  82. package/stats.html +1 -1
  83. package/styles/style.css +1 -1
  84. package/src/components/FormRender/FormContainer.js +0 -52
  85. package/src/components/FormRender/FormContainer.js.map +0 -1
  86. package/src/components/form-render/SubmitButtonRender.vue.js +0 -92
  87. package/src/components/form-render/SubmitButtonRender.vue.js.map +0 -1
  88. package/src/components/form-render/SubmitButtonRender.vue2.js +0 -5
  89. package/src/components/form-render/SubmitButtonRender.vue2.js.map +0 -1
@@ -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, widgetList.value || []);\n\n // 监听 widgetList 变化,重新初始化验证器\n watchEffect(() => {\n formValidator = useFormValidation(renderForm, widgetList.value || []);\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 onMounted(() => {\n if (formJson) {\n setFormJson(formJson);\n }\n fieldChangeEventHandler();\n insertCustomCode();\n });\n\n return {\n i18nt,\n goBack,\n reload,\n formWidgetId,\n vfCtx: props.vfCtx,\n getParentFormRef,\n getFormRef,\n getWidgetRef,\n registerToRefList,\n dialogOrDrawerRef,\n setDialogOrDrawerRef,\n showDialog,\n setFormData,\n setReadMode,\n setFormJson,\n setLoading,\n onFormDetail,\n onFormUpdate,\n emitter,\n context,\n getFormData,\n getChildFormRef,\n // 状态\n formJsonObj,\n formDataModel,\n isLoading,\n readModeFlag,\n\n // 引用\n widgetRefList,\n\n formValidator,\n\n // 计算属性\n formConfig,\n widgetList,\n labelPosition,\n labelWidth,\n customClass,\n dynamicDialgRef,\n dialogProps,\n\n setChildFormRef,\n resetValidation,\n clearValidate\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","onMounted"],"mappings":"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"}
1
+ {"version":3,"file":"useFormContext.js","sources":["../../../../src/components/FormRender/useFormContext.ts"],"sourcesContent":["import { computed, nextTick, onMounted, provide, ref, watchEffect } from 'vue';\nimport { useFormValidation } from './formValidation';\n\n/**\n * 表单上下文接口\n */\nimport { Widget } from '@/types/schema';\nimport {\n cloneFormConfigWithoutEventHandler,\n generateId,\n getContainerWidgetByName,\n insertCustomCssToHead,\n insertGlobalFunctionsToHtml\n} from '@/utils/util';\nimport { cloneDeep, set } from 'lodash-es';\nimport { message } from 'ant-design-vue';\nimport { useI18n } from '@/utils/i18n';\nimport { getUuidKey } from '@kp-ui/tool';\nimport { routerReloadStatus, useComRef, useExecFunction, useRef } from 'tmgc2-share';\nimport DynamicDialog from '../form-render/dynamic-dialog.vue';\nimport { useEmitter } from '@/utils/useEmitter';\nimport { useAppRef } from '../form-designer/useAppRef';\nexport interface FormRenderProps {\n vfCtx?: Record<string, any>;\n formJson?: any;\n formData?: Record<string, any>;\n optionData?: Record<string, any>;\n disabledMode?: boolean;\n renderConfig?: {\n languageName?: string;\n };\n globalDsv?: Record<string, any>;\n parentForm?: any;\n dynamicCreation?: boolean;\n debug?: boolean;\n}\n\n/**\n * 表单上下文配置\n */\nexport interface FormContextOptions {\n props: FormRenderProps;\n renderForm: any;\n}\n\n/**\n * 创建表单上下文\n * @param options 表单上下文配置\n * @returns 表单上下文\n */\nexport const useFormContext = ({ renderForm, props }: FormContextOptions) => {\n const { formJson } = props;\n const dynamicDialgRef = useComRef(DynamicDialog);\n const { i18nt } = useI18n();\n const [readModeFlag, setReadMode] = useRef(false);\n\n const emitter = useEmitter();\n\n const formJsonObj = ref();\n // 状态变量\n const formDataModel = ref<Record<string, any>>({});\n const isLoading = ref(false);\n const widgetRefList = ref<Map<string, any>>(new Map());\n const dialogProps = ref({});\n const childFormRef = ref();\n\n const formWidgetId = Symbol('formWidget');\n\n // 提供给子组件的数据\n provide('refList', widgetRefList);\n provide('getFormConfig', () => formConfig.value);\n provide('formData', formDataModel);\n provide('getReadMode', () => readModeFlag.value);\n provide('designState', false); // 设计态标识\n\n const dialogOrDrawerRef = ref();\n\n const { executeFunction, context, execHttpFunction } = useExecFunction();\n const { getFormRef, getWidgetRef, registerToRefList } = useAppRef(widgetRefList, formWidgetId);\n\n // 计算属性\n const formConfig = computed(() => formJsonObj.value?.formConfig || {});\n\n provide('formConfig', formConfig);\n provide('formWidgetId', formWidgetId);\n\n const widgetList = computed(() => formJsonObj.value?.widgetList || []);\n const labelPosition = computed(() => {\n return formConfig.value?.labelPosition || 'horizontal';\n });\n\n const setChildFormRef = chid => {\n childFormRef.value = chid;\n };\n\n const labelWidth = computed(() => {\n return formConfig.value?.labelWidth ? `${formConfig.value.labelWidth}px` : '80px';\n });\n\n const customClass = computed(() => {\n return formConfig.value?.customClass || '';\n });\n\n // 初始化表单验证器\n let formValidator = useFormValidation(renderForm);\n\n // 监听 widgetList 变化,重新初始化验证器\n watchEffect(() => {\n formValidator = useFormValidation(renderForm);\n });\n\n /**\n * 设置表单JSON数据\n */\n const setFormJson = async (json: any) => {\n console.log({ json });\n\n formJsonObj.value = json || { widgetList: [], formConfig: {} };\n // 重新构建表单数据模型\n formDataModel.value = {};\n\n await nextTick();\n handleOnMounted();\n };\n\n /**\n * 获取表单数据\n */\n const getFormData = () => {\n return formDataModel.value || {};\n };\n\n /**\n * 设置表单数据\n */\n const setFormData = (data: Record<string, any>) => {\n if (!data) return;\n // 更新表单数据模型\n Object.keys(data).forEach(key => {\n if (key === 'processingDescribe') {\n console.log(data[key]);\n }\n if (Object.prototype.hasOwnProperty.call(formDataModel.value, key)) {\n formDataModel.value[key] = data[key];\n }\n });\n };\n\n /**\n * 设置加载状态\n */\n const setLoading = (loading: boolean) => {\n isLoading.value = loading;\n };\n\n /**\n * 重置表单验证\n */\n const resetValidation = () => {\n formValidator.resetValidation();\n };\n\n /**\n * 清除表单验证\n */\n const clearValidate = () => {\n formValidator.clearValidate();\n };\n\n const setDialogOrDrawerRef = (ddRef: any) => {\n dialogOrDrawerRef.value = ddRef;\n };\n\n /**\n * 当显示多级嵌套弹窗或抽屉时,获取最顶层VFormRender组件实例\n * @returns {object}\n */\n const getTopFormRef = () => {\n if (!props.parentForm) {\n return getFormRef();\n }\n\n let topFormRef = props.parentForm;\n while (topFormRef.parentForm) {\n topFormRef = topFormRef.parentForm;\n }\n\n return topFormRef;\n };\n\n /**\n * 显示弹窗表单,动态创建v-form-render组件,option-data、global-dsv等属性继承父级表单\n * @param dialogName\n * @param formData\n * @param extraData\n */\n const showDialog = (dialogName, formData = {}, extraData = {}) => {\n const topFormRef = getTopFormRef();\n const dialogCon = (getContainerWidgetByName(topFormRef?.widgetList || [], dialogName) ||\n getContainerWidgetByName(widgetList.value || [], dialogName)) as Widget | null;\n\n if (dialogCon === null) {\n message.error(i18nt('render.hint.refNotFound') + dialogName);\n return;\n }\n\n if (!dialogName || dialogCon.type !== 'vf-dialog') {\n message.error(i18nt('render.hint.refNotFound') + dialogName);\n return;\n }\n const dFormJson = {\n widgetList: cloneDeep(dialogCon?.widgetList || []),\n formConfig: cloneFormConfigWithoutEventHandler(topFormRef?.formConfig?.value || {})\n };\n const wrapperDivId = getUuidKey();\n dialogProps.value = {\n options: dialogCon.options,\n formJson: dFormJson,\n formData: { ...formData },\n optionData: topFormRef.optionData,\n globalDsv: topFormRef.globalDsv,\n parentFormRef: context.value,\n extraData: extraData,\n wrapperId: wrapperDivId,\n vfCtx: { ...formData }\n };\n\n dynamicDialgRef.value?.show();\n };\n /**\n * 获取父级VFormRender组件实例\n * @returns {object}\n */\n const getParentFormRef = () => {\n return props.parentForm;\n };\n\n const getChildFormRef = () => {\n return dynamicDialgRef.value?.getFormRef();\n };\n\n /**\n * 字段值变化事件处理器\n */\n const fieldChangeEventHandler = () => {\n emitter.off$('fieldChange');\n emitter.on$('fieldChange', ({ fieldName, value }) => {\n // 过滤掉错误值\n if (typeof fieldName !== 'undefined' && typeof value !== 'undefined') {\n set(formDataModel.value, fieldName, value);\n }\n });\n };\n\n const onFormDetail = async () => {\n const serveList = formConfig.value.serveList;\n const res = await execHttpFunction(serveList.vformDetail, {\n vfCtx: props.vfCtx\n });\n console.log('res: ', res);\n return res;\n };\n\n const onFormUpdate = async () => {\n const valid = await formValidator.validate();\n if (!valid) throw new Error(i18nt('表单验证失败'));\n\n const serveList = formConfig.value.serveList;\n const res = await execHttpFunction(serveList.vformUpdate, {\n data: formDataModel.value,\n vfCtx: props.vfCtx\n });\n console.log('res: ', res);\n return res;\n };\n\n const handleOnMounted = () => {\n if (formConfig.value?.onFormMounted) {\n console.log('onFormMounted: ');\n executeFunction({\n functionBody: formConfig.value?.onFormMounted\n });\n }\n };\n\n /**\n * 插入自定义样式和脚本\n * @param cssCode CSS代码\n * @param functions 自定义函数\n * @param formId 表单ID\n */\n const insertCustomCode = () => {\n const formId = 'vfRender' + generateId();\n const { cssCode, functions } = formConfig.value;\n if (cssCode) {\n insertCustomCssToHead(cssCode, formId || '');\n }\n if (functions) {\n insertGlobalFunctionsToHtml(functions, formId || '');\n }\n };\n\n const reload = () => {\n const router = context.value?.$router;\n router?.replace({\n query: {\n ...router.currentRoute.value.query,\n _t: Date.now()\n }\n });\n };\n\n const goBack = (reloadStatus?: routerReloadStatus, cb?: () => void) => {\n const goBack = getFormRef().vfCtx?.goBack;\n if (typeof goBack === 'function') {\n goBack(reloadStatus, cb);\n } else {\n const router = context.value?.$router;\n router?.go(-1);\n }\n };\n\n const getFieldValue = (field: string) => {\n return formDataModel.value[field];\n };\n\n const getVfCtx = () => {\n return props.vfCtx;\n };\n\n onMounted(() => {\n if (formJson) {\n setFormJson(formJson);\n }\n fieldChangeEventHandler();\n insertCustomCode();\n });\n\n const expose = {\n context,\n i18nt,\n goBack,\n reload,\n getFieldValue,\n resetValidation,\n clearValidate,\n getVfCtx,\n getParentFormRef,\n getFormRef,\n getWidgetRef,\n showDialog,\n getFormData,\n getChildFormRef,\n setFormData,\n setReadMode,\n setFormJson,\n setLoading,\n onFormDetail,\n onFormUpdate,\n formDataModel,\n isLoading,\n vfCtx: props.vfCtx,\n // 计算属性\n formConfig,\n dynamicDialgRef,\n setChildFormRef,\n setDialogOrDrawerRef\n };\n\n return {\n formWidgetId,\n registerToRefList,\n dialogOrDrawerRef,\n\n emitter,\n // 状态\n formJsonObj,\n readModeFlag,\n // 引用\n widgetRefList,\n formValidator,\n\n widgetList,\n labelPosition,\n labelWidth,\n customClass,\n dialogProps,\n\n expose,\n ...expose\n };\n};\n"],"names":["useFormContext","renderForm","props","formJson","dynamicDialgRef","useComRef","DynamicDialog","i18nt","useI18n","readModeFlag","setReadMode","useRef","emitter","useEmitter","formJsonObj","ref","formDataModel","isLoading","widgetRefList","dialogProps","childFormRef","formWidgetId","provide","formConfig","dialogOrDrawerRef","executeFunction","context","execHttpFunction","useExecFunction","getFormRef","getWidgetRef","registerToRefList","useAppRef","computed","_a","widgetList","labelPosition","setChildFormRef","chid","labelWidth","customClass","formValidator","useFormValidation","watchEffect","setFormJson","json","nextTick","handleOnMounted","getFormData","setFormData","data","key","setLoading","loading","resetValidation","clearValidate","setDialogOrDrawerRef","ddRef","getTopFormRef","topFormRef","showDialog","dialogName","formData","extraData","dialogCon","getContainerWidgetByName","message","dFormJson","cloneDeep","cloneFormConfigWithoutEventHandler","wrapperDivId","getUuidKey","_b","getParentFormRef","getChildFormRef","fieldChangeEventHandler","fieldName","value","set","onFormDetail","serveList","res","onFormUpdate","insertCustomCode","formId","generateId","cssCode","functions","insertCustomCssToHead","insertGlobalFunctionsToHtml","reload","router","goBack","reloadStatus","cb","getFieldValue","field","getVfCtx","onMounted","expose"],"mappings":"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"}
@@ -1,24 +1,24 @@
1
- import { ref as y, computed as u, h as T } from "vue";
2
- import { omit as G, cloneDeep as w, isArray as J } from "lodash-es";
3
- import O from "../../../public/ActionButtonListRender.vue.js";
4
- import { useI18n as Q } from "../../../../utils/i18n.js";
5
- import { useExecFunction as U, tranformAntTableColumnToVxetableColumn as X, tranformAntSizzVxetableSize as Y, TpfDelConfirm as Z } from "tmgc2-share";
6
- import { useDataHttp as $ } from "../../../../hooks/useDataHttp.js";
7
- import { message as M } from "ant-design-vue";
8
- function ft({ props: l, fieldModel: s }) {
9
- const x = y(), b = y(!1), { widget: n } = l, { i18nt: p } = Q(), { executeFunction: f, context: k } = U(), { loadataSource: R, setPagination: h, getPagination: S, pagintion: D } = $({
10
- props: l
11
- }), z = u(() => {
12
- const t = [], o = (n == null ? void 0 : n.options) || {}, { rowSelection: e, showIndex: a, tableColumns: i = [] } = (n == null ? void 0 : n.options) ?? {};
13
- e != null && e.hasRowSelection && t.push({
14
- title: e.columnTitle,
15
- width: e.columnWidth,
1
+ import { ref as T, computed as c, h as k, watch as G } from "vue";
2
+ import { omit as J, cloneDeep as x, isArray as O } from "lodash-es";
3
+ import Q from "../../../public/ActionButtonListRender.vue.js";
4
+ import { useI18n as U } from "../../../../utils/i18n.js";
5
+ import { useExecFunction as X, tranformAntTableColumnToVxetableColumn as Y, tranformAntSizzVxetableSize as Z, TpfDelConfirm as $ } from "tmgc2-share";
6
+ import { useDataHttp as M } from "../../../../hooks/useDataHttp.js";
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
+ props: r
11
+ }), B = c(() => {
12
+ const t = [], e = (o == null ? void 0 : o.options) || {}, { rowSelection: n, showIndex: i, tableColumns: f = [] } = (o == null ? void 0 : o.options) ?? {};
13
+ n != null && n.hasRowSelection && t.push({
14
+ title: n.columnTitle,
15
+ width: n.columnWidth,
16
16
  align: "left",
17
17
  fixed: "left",
18
18
  dataIndex: "checkbox",
19
19
  type: "checkbox"
20
- }), a && t.push({
21
- title: p("designer.setting.seq"),
20
+ }), i && t.push({
21
+ title: g("designer.setting.seq"),
22
22
  align: "left",
23
23
  width: 90,
24
24
  fixed: "left",
@@ -27,24 +27,24 @@ function ft({ props: l, fieldModel: s }) {
27
27
  resizable: !0,
28
28
  type: "seq"
29
29
  });
30
- const c = i.filter((r) => r.show).map((r) => ({
31
- ...r,
32
- ...B(r),
33
- titleSuffix: r.titleSuffix ? { content: r.titleSuffixContent } : !1
34
- })), d = [];
35
- if (o.showButtonsColumn) {
36
- const r = o.operationButtons ?? [];
37
- d.push({
30
+ const l = f.filter((s) => s.show).map((s) => ({
31
+ ...s,
32
+ ...W(s),
33
+ titleSuffix: s.titleSuffix ? { content: s.titleSuffixContent } : !1
34
+ })), m = [];
35
+ if (e.showButtonsColumn) {
36
+ const s = e.operationButtons ?? [];
37
+ m.push({
38
38
  fixed: "right",
39
39
  align: "center",
40
- title: o.buttonsColumnTitle,
41
- width: o.buttonsColumnWidth,
40
+ title: e.buttonsColumnTitle,
41
+ width: e.buttonsColumnWidth,
42
42
  slots: {
43
- default: (_) => T(O, {
44
- buttonList: r,
43
+ default: (_) => k(Q, {
44
+ buttonList: s,
45
45
  flex: "center",
46
46
  scope: _,
47
- ctx: k.value,
47
+ ctx: R.value,
48
48
  onClick: (j) => {
49
49
  j.stopPropagation();
50
50
  }
@@ -52,175 +52,180 @@ function ft({ props: l, fieldModel: s }) {
52
52
  }
53
53
  });
54
54
  }
55
- const m = [...t, ...c, ...d];
56
- return X(m);
57
- }), B = (t) => {
58
- const o = G(t, ["customRender"]), e = t.customRender;
59
- return t.minWidth = 50, t.maxWidth = 1200, t.isAutoWidth ? (t.width = null, delete t.width) : t.width = isNaN(Number(t.width)) ? t.width : Number(t.width), e ? {
60
- ...o,
55
+ const w = [...t, ...l, ...m];
56
+ return Y(w);
57
+ }), W = (t) => {
58
+ const e = J(t, ["customRender"]), n = t.customRender;
59
+ return t.minWidth = 50, t.maxWidth = 1200, t.isAutoWidth ? (t.width = null, delete t.width) : t.width = isNaN(Number(t.width)) ? t.width : Number(t.width), n ? {
60
+ ...e,
61
61
  slots: {
62
- default(a) {
63
- const i = f({
64
- source: l.field.options.name,
65
- functionBody: e,
62
+ default(i) {
63
+ const f = u({
64
+ source: r.field.options.name,
65
+ functionBody: n,
66
66
  params: {
67
- index: a.rowIndex,
68
- record: a.row,
69
- ...a
67
+ index: i.rowIndex,
68
+ record: i.row,
69
+ ...i
70
70
  },
71
- errorCallback: (c) => {
72
- console.error("Custom render error:", c);
71
+ errorCallback: (l) => {
72
+ console.error("Custom render error:", l);
73
73
  }
74
74
  });
75
- return T(
76
- "div",
75
+ return k(
76
+ tt,
77
77
  {
78
- onClick: (c) => {
79
- c.stopPropagation();
78
+ align: "center",
79
+ size: 5,
80
+ onClick: (l) => {
81
+ l.stopPropagation();
80
82
  }
81
83
  },
82
- [i]
84
+ f
83
85
  );
84
86
  }
85
87
  }
86
88
  } : t;
87
- }, P = u(() => n.options.tableWidth), W = u(() => n.options.tableSize), F = () => {
88
- g();
89
- }, v = u(() => n.options.rowKey), I = u(() => {
89
+ }, P = c(() => o.options.tableWidth), F = c(() => o.options.tableSize), I = () => {
90
+ d();
91
+ }, v = c(() => o.options.rowKey), A = c(() => {
90
92
  const {
91
93
  tableSize: t,
92
- rowKey: o,
93
- tableHeight: e = 300,
94
- border: a = !1,
95
- lineHeight: i = 50,
96
- colorRow: c = !1
97
- } = n.options;
94
+ rowKey: e,
95
+ tableHeight: n = 300,
96
+ border: i = !1,
97
+ lineHeight: f = 50,
98
+ colorRow: l = !1,
99
+ showPagination: m = !0
100
+ } = o.options;
98
101
  return {
99
- showPagination: n.options.showPagination,
100
- size: Y(t),
101
- height: e,
102
- border: a ?? !1,
103
- data: s.value || [],
104
- columns: z.value,
102
+ showPagination: m,
103
+ size: Z(t),
104
+ height: n,
105
+ border: i ?? !1,
106
+ data: a.value || [],
107
+ columns: B.value,
105
108
  sortConfig: {
106
109
  trigger: "cell",
107
110
  remote: !0,
108
111
  orders: ["ascend", "descend", null]
109
112
  },
110
113
  rowConfig: {
111
- keyField: o,
112
- isCurrent: c,
114
+ keyField: e,
115
+ isCurrent: l,
113
116
  isHover: !0
114
117
  },
115
118
  checkboxConfig: {
116
119
  isShiftKey: !0,
117
- checkMethod: (d) => {
118
- var m;
119
- return f({
120
- functionBody: (m = n.options.rowSelection) == null ? void 0 : m.checkMethod,
121
- params: d,
120
+ checkMethod: (w) => {
121
+ var s;
122
+ return u({
123
+ functionBody: (s = o.options.rowSelection) == null ? void 0 : s.checkMethod,
124
+ params: w,
122
125
  keys: ["row"]
123
126
  });
124
127
  }
125
128
  },
126
129
  cellConfig: {
127
- height: i
130
+ height: f
128
131
  }
129
132
  };
130
- }), A = (t) => {
131
- x.value = t;
132
- }, g = async () => {
133
+ }), E = (t) => {
134
+ S.value = t;
135
+ }, d = async () => {
133
136
  var t;
134
- if (l.field.options.dsEnabled) {
137
+ if (r.field.options.dsEnabled) {
135
138
  b.value = !0;
136
139
  try {
137
- const o = await R(), e = o.list || [];
138
- s.value = w(e || []), h(o);
139
- } catch (o) {
140
- console.error(o);
140
+ const e = await z(), n = e.list || [];
141
+ a.value = x(n || []), h(e);
142
+ } catch (e) {
143
+ console.error(e);
141
144
  }
142
145
  } else
143
- s.value = n.options.dataSource || [], h({
144
- total: ((t = n.options.dataSource) == null ? void 0 : t.length) || 0
146
+ a.value = o.options.dataSource || [], h({
147
+ total: ((t = o.options.dataSource) == null ? void 0 : t.length) || 0
145
148
  });
146
149
  b.value = !1;
147
- }, E = ({ row: t, $event: o }, e) => {
148
- f({
149
- functionBody: n.options.customRow[e],
150
- params: [t, o],
150
+ }, H = ({ row: t, $event: e }, n) => {
151
+ u({
152
+ functionBody: o.options.customRow[n],
153
+ params: [t, e],
151
154
  keys: ["record", "event"]
152
155
  });
153
- }, H = (t) => {
156
+ }, L = (t) => {
154
157
  C(t);
155
- }, L = () => {
156
- g();
157
- }, N = (t, o, e, a) => {
158
- const i = n.options.onTableChange;
159
- i && f({
160
- functionBody: i,
158
+ }, N = ({ sorts: t }) => {
159
+ const e = o.options.onTableChange;
160
+ e && u({
161
+ functionBody: e,
161
162
  params: {
162
- pagination: t,
163
- filters: o,
164
- sorter: e,
165
- currentDataSource: a
163
+ pagination: p(),
164
+ currentDataSource: y(),
165
+ sorter: t
166
166
  },
167
- keys: ["pagination", "filters", "sorter", "currentDataSource"]
167
+ keys: ["pagination", "sorter", "currentDataSource"]
168
168
  });
169
169
  }, V = (t) => {
170
- f({
171
- functionBody: n.options.rowSelection.onChange,
170
+ u({
171
+ functionBody: o.options.rowSelection.onChange,
172
172
  keys: ["selectedRowKeys", "selectedRows"],
173
173
  params: t
174
174
  });
175
- }, q = () => s.value, K = (t) => {
176
- s.value || (s.value = []), s.value.push(w(t));
175
+ }, y = () => a.value, q = (t) => {
176
+ a.value || (a.value = []), a.value.push(x(t));
177
177
  }, C = (t) => {
178
- if (!J(t))
178
+ if (!O(t))
179
179
  return console.error("表格数据类型错误");
180
- s.value = w(t);
180
+ a.value = x(t);
181
+ }, K = {
182
+ delSelectRow: async (t) => {
183
+ if (t.length)
184
+ try {
185
+ await $({ content: g("确定删除选中的数据吗") });
186
+ const e = a.value.filter((n) => !(t != null && t.includes(n[v.value])));
187
+ C(e), et.success(g("操作成功"));
188
+ } catch {
189
+ }
190
+ },
191
+ getTableColumns: () => r.field.options.tableColumns,
192
+ setTableColumns: (t) => {
193
+ r.field.options.tableColumns = t;
194
+ },
195
+ setValue: C,
196
+ insertTableValue: q,
197
+ setPagination: h,
198
+ getDataSource: y,
199
+ getPagination: p,
200
+ initTableSoureData: d
181
201
  };
182
- return {
202
+ return G(
203
+ () => r.field.options.dsEnabled,
204
+ () => {
205
+ d();
206
+ }
207
+ ), {
183
208
  rowKey: v,
184
209
  onCheckboxChange: V,
185
- tableDefinExpoed: {
186
- delSelectRow: async (t) => {
187
- if (t.length)
188
- try {
189
- await Z({ content: p("确定删除选中的数据吗") });
190
- const o = s.value.filter((e) => !(t != null && t.includes(e[v.value])));
191
- C(o), M.success(p("操作成功"));
192
- } catch {
193
- }
194
- },
195
- getTableColumns: () => l.field.options.tableColumns,
196
- setTableColumns: (t) => {
197
- l.field.options.tableColumns = t;
198
- },
199
- setValue: C,
200
- insertTableValue: K,
201
- setPagination: h,
202
- getDataSource: q,
203
- getPagination: S
204
- },
205
- onSortChange: F,
210
+ tableDefinExpoed: K,
211
+ onSortChange: I,
206
212
  pagintion: D,
207
213
  setPagination: h,
208
- getPagination: S,
214
+ getPagination: p,
209
215
  handleTableChange: N,
210
- setTableData: H,
211
- loadDataTableDataSource: L,
212
- showPagination: u(() => !!l.field.options.showPagination),
213
- onRunEvent: E,
216
+ setTableData: L,
217
+ showPagination: c(() => !!r.field.options.showPagination),
218
+ onRunEvent: H,
214
219
  isLoading: b,
215
- initTableSoureData: g,
216
- setTableRef: A,
217
- tableSize: W,
220
+ initTableSoureData: d,
221
+ setTableRef: E,
222
+ tableSize: F,
218
223
  tableWidth: P,
219
- tableProps: I,
220
- tableRef: x
224
+ tableProps: A,
225
+ tableRef: S
221
226
  };
222
227
  }
223
228
  export {
224
- ft as useTableWidget
229
+ ht as useTableWidget
225
230
  };
226
231
  //# sourceMappingURL=useTableWidget.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useTableWidget.js","sources":["../../../../../../src/components/form-designer/form-widget/container-widget/useTableWidget.ts"],"sourcesContent":["import { computed, Ref, h, ref } from 'vue';\nimport { VxeGridInstance } from 'vxe-table';\nimport { cloneDeep, isArray, omit } from 'lodash-es';\nimport ActionButtonListRender from '@/components/public/ActionButtonListRender.vue';\n\nimport { useI18n } from '@/utils/i18n';\nimport { WidgetProps } from './useContainerWidget';\nimport {\n tranformAntTableColumnToVxetableColumn,\n tranformAntSizzVxetableSize,\n ImeTableProps,\n useExecFunction,\n TpfDelConfirm\n} from 'tmgc2-share';\nimport { useDataHttp } from '@/hooks/useDataHttp';\nimport { message } from 'ant-design-vue';\ntype useTableWidgetProps = {\n props: WidgetProps;\n fieldModel: Ref<any>;\n};\n\nexport function useTableWidget<T>({ props, fieldModel }: useTableWidgetProps) {\n const tableRef = ref<VxeGridInstance>();\n const isLoading = ref(false);\n const { widget } = props;\n const { i18nt } = useI18n();\n const { executeFunction, context } = useExecFunction();\n const { loadataSource, setPagination, getPagination, pagintion } = useDataHttp({\n props\n });\n\n const columns = computed(() => {\n const leftFixedColumns: any[] = [];\n const optins = widget?.options || {};\n const { rowSelection, showIndex, tableColumns = [] } = widget?.options ?? {};\n if (rowSelection?.hasRowSelection) {\n leftFixedColumns.push({\n title: rowSelection.columnTitle,\n width: rowSelection.columnWidth,\n align: 'left',\n fixed: 'left',\n dataIndex: 'checkbox',\n type: 'checkbox'\n });\n }\n if (showIndex) {\n leftFixedColumns.push({\n title: i18nt('designer.setting.seq'),\n align: 'left',\n width: 90,\n fixed: 'left',\n maxWidth: 100,\n dataIndex: 'seq',\n resizable: true,\n type: 'seq'\n });\n }\n\n const centerColumns = tableColumns\n .filter(item => item.show)\n .map(item => {\n // titleSuffix: ),\n return {\n ...item,\n ...handleColumnItem(item),\n titleSuffix: item.titleSuffix ? { content: item.titleSuffixContent } : false\n };\n });\n const rightFixedColumns: any[] = [];\n if (optins.showButtonsColumn) {\n const operationButtons = optins.operationButtons ?? [];\n rightFixedColumns.push({\n fixed: 'right',\n align: 'center',\n title: optins.buttonsColumnTitle,\n width: optins.buttonsColumnWidth,\n slots: {\n default: scope => {\n return h(ActionButtonListRender, {\n buttonList: operationButtons,\n flex: 'center',\n scope: scope,\n ctx: context.value,\n onClick: (e: Event) => {\n e.stopPropagation();\n }\n });\n }\n }\n });\n }\n\n // 把customRender渲染成 bodyCell 插槽\n const _columns = [...leftFixedColumns, ...centerColumns, ...rightFixedColumns];\n\n return tranformAntTableColumnToVxetableColumn(_columns);\n });\n\n // 处理列配置\n const handleColumnItem = item => {\n const res = omit(item, ['customRender']);\n const customRenderFn = item.customRender;\n item.minWidth = 50;\n item.maxWidth = 1200;\n if (item.isAutoWidth) {\n item.width = null;\n delete item.width;\n } else {\n item.width = isNaN(Number(item.width)) ? item.width : Number(item.width);\n }\n if (!customRenderFn) return item;\n\n return {\n ...res,\n slots: {\n default(scope) {\n const com = executeFunction({\n source: props.field.options.name,\n functionBody: customRenderFn,\n params: {\n index: scope.rowIndex,\n record: scope.row,\n ...scope\n },\n errorCallback: error => {\n console.error('Custom render error:', error);\n }\n });\n\n return h(\n 'div',\n {\n onClick: (e: Event) => {\n e.stopPropagation();\n }\n },\n [com]\n );\n }\n }\n };\n };\n\n const tableWidth = computed(() => widget.options.tableWidth);\n const tableSize = computed(() => widget.options.tableSize);\n\n const onSortChange = () => {\n initTableSoureData();\n };\n\n const rowKey = computed(() => widget.options.rowKey);\n\n const tableProps = computed<ImeTableProps>(() => {\n const {\n tableSize,\n rowKey,\n tableHeight = 300,\n border = false,\n lineHeight = 50,\n colorRow = false\n } = widget.options;\n\n return {\n showPagination: widget.options.showPagination,\n size: tranformAntSizzVxetableSize(tableSize),\n height: tableHeight,\n border: border ?? false,\n data: fieldModel.value || [],\n columns: columns.value,\n sortConfig: {\n trigger: 'cell',\n remote: true,\n orders: ['ascend', 'descend', null]\n },\n rowConfig: {\n keyField: rowKey,\n isCurrent: colorRow,\n isHover: true\n },\n checkboxConfig: {\n isShiftKey: true,\n checkMethod: data => {\n return executeFunction({\n functionBody: widget.options.rowSelection?.checkMethod,\n params: data,\n keys: ['row']\n });\n }\n },\n cellConfig: {\n height: lineHeight\n }\n } as ImeTableProps;\n });\n\n const setTableRef = _tableRef => {\n tableRef.value = _tableRef;\n };\n\n const initTableSoureData = async () => {\n if (props.field.options.dsEnabled) {\n isLoading.value = true;\n try {\n const data = await loadataSource();\n const tableData = data.list || [];\n fieldModel.value = cloneDeep(tableData || []);\n setPagination(data);\n } catch (error) {\n console.error(error);\n }\n } else {\n fieldModel.value = widget.options.dataSource || [];\n setPagination({\n total: widget.options.dataSource?.length || 0\n });\n }\n isLoading.value = false;\n };\n\n type EventType = 'onDblclick' | 'onMouseenter' | 'onMouseleave' | 'onClick';\n const onRunEvent = ({ row, $event }: any, type: EventType) => {\n executeFunction({\n functionBody: widget.options.customRow[type],\n params: [row, $event],\n keys: ['record', 'event']\n });\n };\n\n const setTableData = (data: T[]) => {\n setValue(data);\n };\n\n /**\n * 加载表格数据\n * @deprecated 兼容老 API\n */\n const loadDataTableDataSource = () => {\n initTableSoureData();\n };\n\n const handleTableChange = (pagination, filters, sorter, currentDataSource) => {\n const fn = widget.options.onTableChange;\n if (fn) {\n executeFunction({\n functionBody: fn,\n params: {\n pagination,\n filters,\n sorter,\n currentDataSource: currentDataSource\n },\n keys: ['pagination', 'filters', 'sorter', 'currentDataSource']\n });\n }\n };\n\n // 选中 checkbox回调\n const onCheckboxChange = (selectedRowInfo: any) => {\n executeFunction({\n functionBody: widget.options.rowSelection.onChange,\n keys: ['selectedRowKeys', 'selectedRows'],\n params: selectedRowInfo\n });\n };\n\n const getDataSource = () => {\n return fieldModel.value;\n };\n\n const insertTableValue = (data: T) => {\n if (!fieldModel.value) {\n fieldModel.value = [];\n }\n fieldModel.value.push(cloneDeep(data));\n };\n\n const setValue = (data: T[]) => {\n if (!isArray(data)) {\n return console.error('表格数据类型错误');\n }\n fieldModel.value = cloneDeep(data);\n };\n\n const getTableColumns = () => {\n return props.field.options.tableColumns;\n };\n\n const setTableColumns = (data: any[]) => {\n props.field.options.tableColumns = data;\n };\n\n const delSelectRow = async delKeys => {\n if (!delKeys.length) return;\n try {\n await TpfDelConfirm({ content: i18nt('确定删除选中的数据吗') });\n const newList = fieldModel.value.filter(item => !delKeys?.includes(item[rowKey.value]));\n setValue(newList);\n message.success(i18nt('操作成功'));\n } catch {}\n };\n\n const tableDefinExpoed = {\n delSelectRow,\n getTableColumns,\n setTableColumns,\n setValue,\n insertTableValue,\n setPagination,\n getDataSource,\n getPagination\n };\n\n return {\n rowKey,\n onCheckboxChange,\n tableDefinExpoed,\n onSortChange,\n pagintion,\n setPagination,\n getPagination,\n handleTableChange,\n setTableData,\n loadDataTableDataSource,\n showPagination: computed(() => !!props.field.options.showPagination),\n onRunEvent,\n isLoading,\n initTableSoureData,\n setTableRef,\n tableSize,\n tableWidth,\n tableProps,\n tableRef\n };\n}\n"],"names":["useTableWidget","props","fieldModel","tableRef","ref","isLoading","widget","i18nt","useI18n","executeFunction","context","useExecFunction","loadataSource","setPagination","getPagination","pagintion","useDataHttp","columns","computed","leftFixedColumns","optins","rowSelection","showIndex","tableColumns","centerColumns","item","handleColumnItem","rightFixedColumns","operationButtons","scope","h","ActionButtonListRender","e","_columns","tranformAntTableColumnToVxetableColumn","res","omit","customRenderFn","com","error","tableWidth","tableSize","onSortChange","initTableSoureData","rowKey","tableProps","tableHeight","border","lineHeight","colorRow","tranformAntSizzVxetableSize","data","_a","setTableRef","_tableRef","tableData","cloneDeep","onRunEvent","row","$event","type","setTableData","setValue","loadDataTableDataSource","handleTableChange","pagination","filters","sorter","currentDataSource","fn","onCheckboxChange","selectedRowInfo","getDataSource","insertTableValue","isArray","delKeys","TpfDelConfirm","newList","message"],"mappings":"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"}
1
+ {"version":3,"file":"useTableWidget.js","sources":["../../../../../../src/components/form-designer/form-widget/container-widget/useTableWidget.ts"],"sourcesContent":["import { computed, Ref, h, ref, watchEffect, watch } from 'vue';\nimport { VxeGridInstance } from 'vxe-table';\nimport { cloneDeep, isArray, omit } from 'lodash-es';\nimport ActionButtonListRender from '@/components/public/ActionButtonListRender.vue';\n\nimport { useI18n } from '@/utils/i18n';\nimport { WidgetProps } from './useContainerWidget';\nimport {\n tranformAntTableColumnToVxetableColumn,\n tranformAntSizzVxetableSize,\n ImeTableProps,\n useExecFunction,\n TpfDelConfirm\n} from 'tmgc2-share';\nimport { useDataHttp } from '@/hooks/useDataHttp';\nimport { message, Space } from 'ant-design-vue';\ntype useTableWidgetProps = {\n props: WidgetProps;\n fieldModel: Ref<any>;\n};\n\nexport function useTableWidget<T>({ props, fieldModel }: useTableWidgetProps) {\n const tableRef = ref<VxeGridInstance>();\n const isLoading = ref(false);\n const { widget } = props;\n const { i18nt } = useI18n();\n const { executeFunction, context } = useExecFunction();\n const { loadataSource, setPagination, getPagination, pagintion } = useDataHttp({\n props\n });\n\n const columns = computed(() => {\n const leftFixedColumns: any[] = [];\n const optins = widget?.options || {};\n const { rowSelection, showIndex, tableColumns = [] } = widget?.options ?? {};\n if (rowSelection?.hasRowSelection) {\n leftFixedColumns.push({\n title: rowSelection.columnTitle,\n width: rowSelection.columnWidth,\n align: 'left',\n fixed: 'left',\n dataIndex: 'checkbox',\n type: 'checkbox'\n });\n }\n if (showIndex) {\n leftFixedColumns.push({\n title: i18nt('designer.setting.seq'),\n align: 'left',\n width: 90,\n fixed: 'left',\n maxWidth: 100,\n dataIndex: 'seq',\n resizable: true,\n type: 'seq'\n });\n }\n\n const centerColumns = tableColumns\n .filter(item => item.show)\n .map(item => {\n // titleSuffix: ),\n return {\n ...item,\n ...handleColumnItem(item),\n titleSuffix: item.titleSuffix ? { content: item.titleSuffixContent } : false\n };\n });\n const rightFixedColumns: any[] = [];\n if (optins.showButtonsColumn) {\n const operationButtons = optins.operationButtons ?? [];\n rightFixedColumns.push({\n fixed: 'right',\n align: 'center',\n title: optins.buttonsColumnTitle,\n width: optins.buttonsColumnWidth,\n slots: {\n default: scope => {\n return h(ActionButtonListRender, {\n buttonList: operationButtons,\n flex: 'center',\n scope: scope,\n ctx: context.value,\n onClick: (e: Event) => {\n e.stopPropagation();\n }\n });\n }\n }\n });\n }\n\n // 把customRender渲染成 bodyCell 插槽\n const _columns = [...leftFixedColumns, ...centerColumns, ...rightFixedColumns];\n\n return tranformAntTableColumnToVxetableColumn(_columns);\n });\n\n // 处理列配置\n const handleColumnItem = item => {\n const res = omit(item, ['customRender']);\n const customRenderFn = item.customRender;\n item.minWidth = 50;\n item.maxWidth = 1200;\n if (item.isAutoWidth) {\n item.width = null;\n delete item.width;\n } else {\n item.width = isNaN(Number(item.width)) ? item.width : Number(item.width);\n }\n if (!customRenderFn) return item;\n\n return {\n ...res,\n slots: {\n default(scope) {\n const Com = executeFunction({\n source: props.field.options.name,\n functionBody: customRenderFn,\n params: {\n index: scope.rowIndex,\n record: scope.row,\n ...scope\n },\n errorCallback: error => {\n console.error('Custom render error:', error);\n }\n });\n return h(\n Space,\n {\n align: 'center',\n size: 5,\n onClick: (e: Event) => {\n e.stopPropagation();\n }\n },\n Com\n );\n }\n }\n };\n };\n\n const tableWidth = computed(() => widget.options.tableWidth);\n const tableSize = computed(() => widget.options.tableSize);\n\n const onSortChange = () => {\n initTableSoureData();\n };\n\n const rowKey = computed(() => widget.options.rowKey);\n\n const tableProps = computed<ImeTableProps>(() => {\n const {\n tableSize,\n rowKey,\n tableHeight = 300,\n border = false,\n lineHeight = 50,\n colorRow = false,\n showPagination = true\n } = widget.options;\n\n return {\n showPagination,\n size: tranformAntSizzVxetableSize(tableSize),\n height: tableHeight,\n border: border ?? false,\n data: fieldModel.value || [],\n columns: columns.value,\n sortConfig: {\n trigger: 'cell',\n remote: true,\n orders: ['ascend', 'descend', null]\n },\n rowConfig: {\n keyField: rowKey,\n isCurrent: colorRow,\n isHover: true\n },\n checkboxConfig: {\n isShiftKey: true,\n checkMethod: data => {\n return executeFunction({\n functionBody: widget.options.rowSelection?.checkMethod,\n params: data,\n keys: ['row']\n });\n }\n },\n cellConfig: {\n height: lineHeight\n }\n } as ImeTableProps;\n });\n\n const setTableRef = _tableRef => {\n tableRef.value = _tableRef;\n };\n\n const initTableSoureData = async () => {\n if (props.field.options.dsEnabled) {\n isLoading.value = true;\n try {\n const data = await loadataSource();\n const tableData = data.list || [];\n fieldModel.value = cloneDeep(tableData || []);\n setPagination(data);\n } catch (error) {\n console.error(error);\n }\n } else {\n fieldModel.value = widget.options.dataSource || [];\n setPagination({\n total: widget.options.dataSource?.length || 0\n });\n }\n isLoading.value = false;\n };\n\n type EventType = 'onDblclick' | 'onMouseenter' | 'onMouseleave' | 'onClick';\n const onRunEvent = ({ row, $event }: any, type: EventType) => {\n executeFunction({\n functionBody: widget.options.customRow[type],\n params: [row, $event],\n keys: ['record', 'event']\n });\n };\n\n const setTableData = (data: T[]) => {\n setValue(data);\n };\n\n const handleTableChange = ({ sorts }) => {\n const fn = widget.options.onTableChange;\n if (fn) {\n executeFunction({\n functionBody: fn,\n params: {\n pagination: getPagination(),\n currentDataSource: getDataSource(),\n sorter: sorts\n },\n keys: ['pagination', 'sorter', 'currentDataSource']\n });\n }\n };\n\n // 选中 checkbox回调\n const onCheckboxChange = (selectedRowInfo: any) => {\n executeFunction({\n functionBody: widget.options.rowSelection.onChange,\n keys: ['selectedRowKeys', 'selectedRows'],\n params: selectedRowInfo\n });\n };\n\n const getDataSource = () => {\n return fieldModel.value;\n };\n\n const insertTableValue = (data: T) => {\n if (!fieldModel.value) {\n fieldModel.value = [];\n }\n fieldModel.value.push(cloneDeep(data));\n };\n\n const setValue = (data: T[]) => {\n if (!isArray(data)) {\n return console.error('表格数据类型错误');\n }\n fieldModel.value = cloneDeep(data);\n };\n\n const getTableColumns = () => {\n return props.field.options.tableColumns;\n };\n\n const setTableColumns = (data: any[]) => {\n props.field.options.tableColumns = data;\n };\n\n const delSelectRow = async delKeys => {\n if (!delKeys.length) return;\n try {\n await TpfDelConfirm({ content: i18nt('确定删除选中的数据吗') });\n const newList = fieldModel.value.filter(item => !delKeys?.includes(item[rowKey.value]));\n setValue(newList);\n message.success(i18nt('操作成功'));\n } catch {}\n };\n\n const tableDefinExpoed = {\n delSelectRow,\n getTableColumns,\n setTableColumns,\n setValue,\n insertTableValue,\n setPagination,\n getDataSource,\n getPagination,\n initTableSoureData\n };\n\n watch(\n () => props.field.options.dsEnabled,\n () => {\n initTableSoureData();\n }\n );\n\n return {\n rowKey,\n onCheckboxChange,\n tableDefinExpoed,\n onSortChange,\n pagintion,\n setPagination,\n getPagination,\n handleTableChange,\n setTableData,\n showPagination: computed(() => !!props.field.options.showPagination),\n onRunEvent,\n isLoading,\n initTableSoureData,\n setTableRef,\n tableSize,\n tableWidth,\n tableProps,\n tableRef\n };\n}\n"],"names":["useTableWidget","props","fieldModel","tableRef","ref","isLoading","widget","i18nt","useI18n","executeFunction","context","useExecFunction","loadataSource","setPagination","getPagination","pagintion","useDataHttp","columns","computed","leftFixedColumns","optins","rowSelection","showIndex","tableColumns","centerColumns","item","handleColumnItem","rightFixedColumns","operationButtons","scope","h","ActionButtonListRender","e","_columns","tranformAntTableColumnToVxetableColumn","res","omit","customRenderFn","Com","error","Space","tableWidth","tableSize","onSortChange","initTableSoureData","rowKey","tableProps","tableHeight","border","lineHeight","colorRow","showPagination","tranformAntSizzVxetableSize","data","_a","setTableRef","_tableRef","tableData","cloneDeep","onRunEvent","row","$event","type","setTableData","setValue","handleTableChange","sorts","fn","getDataSource","onCheckboxChange","selectedRowInfo","insertTableValue","isArray","tableDefinExpoed","delKeys","TpfDelConfirm","newList","message","watch"],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import o from "./vf-dialog-widget.vue2.js";
2
2
  /* empty css */
3
3
  import t from "../../../../../_virtual/_plugin-vue_export-helper.js";
4
- const e = /* @__PURE__ */ t(o, [["__scopeId", "data-v-3fc6eab3"]]);
4
+ const i = /* @__PURE__ */ t(o, [["__scopeId", "data-v-651578b1"]]);
5
5
  export {
6
- e as default
6
+ i as default
7
7
  };
8
8
  //# sourceMappingURL=vf-dialog-widget.vue.js.map
@@ -1,10 +1,11 @@
1
- import { defineComponent as p, createBlock as l, openBlock as n, normalizeProps as c, guardReactiveProps as f, withCtx as g, createElementBlock as w, createElementVNode as r, toDisplayString as u } from "vue";
2
- import h from "./container-wrapper.vue.js";
3
- import { useAppRef as C } from "../../useAppRef.js";
4
- import { ComponentNameEnum as k, ContainerTypeEnum as _ } from "../../../../constants/WidgetTypeEnum.js";
5
- const P = { class: "dialog-title" }, W = /* @__PURE__ */ p({
1
+ import { defineComponent as l, createBlock as p, openBlock as r, normalizeProps as c, guardReactiveProps as f, withCtx as g, createElementBlock as u, createElementVNode as e, toDisplayString as w, createVNode as h } from "vue";
2
+ import C from "./container-wrapper.vue.js";
3
+ import { useAppRef as k } from "../../useAppRef.js";
4
+ import { ComponentNameEnum as L, ContainerTypeEnum as _ } from "../../../../constants/WidgetTypeEnum.js";
5
+ import R from "../../../public/ActionButtonListRender.vue.js";
6
+ const b = { class: "dialog-title" }, P = { class: "right-btns" }, W = /* @__PURE__ */ l({
6
7
  name: _.VfDialogWidget,
7
- componentName: k.VfDialogWidget,
8
+ componentName: L.VfDialogWidget,
8
9
  __name: "vf-dialog-widget",
9
10
  props: {
10
11
  widget: {},
@@ -15,22 +16,27 @@ const P = { class: "dialog-title" }, W = /* @__PURE__ */ p({
15
16
  subFormRowIndex: {},
16
17
  subFormRowId: {}
17
18
  },
18
- setup(a) {
19
- const t = a, { initRefList: s } = C(t), d = () => {
20
- const e = new URL(window.location.href), { title: o, formCode: m, formId: i } = t.widget.options;
21
- i && (e.searchParams.set("formCode", m), e.searchParams.set("remark", o), e.searchParams.set("id", i), window.open(e.href));
19
+ setup(s) {
20
+ const o = s, { initRefList: a } = k(), d = () => {
21
+ const t = new URL(window.location.href), { title: i, formCode: m, formId: n } = o.widget.options;
22
+ n && (t.searchParams.set("formCode", m), t.searchParams.set("remark", i), t.searchParams.set("id", n), window.open(t.href));
22
23
  };
23
- return s(), (e, o) => (n(), l(h, c(f(t)), {
24
+ return a(), (t, i) => (r(), p(C, c(f(o)), {
24
25
  default: g(() => [
25
- (n(), w("div", {
26
+ (r(), u("div", {
26
27
  class: "dialog-container",
27
- key: e.widget.id
28
+ key: t.widget.id
28
29
  }, [
29
- r("div", P, [
30
- r("span", {
30
+ e("div", b, [
31
+ e("span", {
31
32
  class: "tpf-link",
32
33
  onClick: d
33
- }, u(e.widget.options.title), 1)
34
+ }, w(t.widget.options.title), 1)
35
+ ]),
36
+ e("div", P, [
37
+ h(R, {
38
+ buttonList: t.widget.options.buttonList || []
39
+ }, null, 8, ["buttonList"])
34
40
  ])
35
41
  ]))
36
42
  ]),